From 2af33e397fff9695f1b6a599b50a3d38251d3e31 Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 6 Oct 2017 11:21:20 -0700 Subject: [PATCH 01/14] call transfer last --- contracts/Vault.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/Vault.sol b/contracts/Vault.sol index 1f1fe88..2901178 100644 --- a/contracts/Vault.sol +++ b/contracts/Vault.sol @@ -92,10 +92,10 @@ contract Vault is Owned { require(p.state == PaymentStatus.Pending); p.state = PaymentStatus.Paid; - p.dest.transfer(p.amount); // only ETH denominated in wei - liquidPledging.confirmPayment(uint64(p.ref), p.amount); + p.dest.transfer(p.amount); // only ETH denominated in wei + ConfirmPayment(_idPayment); } From 3fe03bca0e22556cdef588f01e2625c36555d226 Mon Sep 17 00:00:00 2001 From: ojones Date: Tue, 17 Oct 2017 22:56:43 -0700 Subject: [PATCH 02/14] readme header png --- README.md | 2 +- readme-header.png | Bin 0 -> 27758 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100755 readme-header.png diff --git a/README.md b/README.md index cdb71c1..9d2aa82 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Liquid Pledging +![Liquid Pledging](readme-header.png) > Ethereum contract to delegate donations to projects. diff --git a/readme-header.png b/readme-header.png new file mode 100755 index 0000000000000000000000000000000000000000..c27eec8f2f083d113b4b16c9dc8afe533418dbe7 GIT binary patch literal 27758 zcmd3Nc{r4N_%|UrNGDO+Xpt->B)ie7DEq#bWt1((&KS!{3nBYHO2}Sg-)13MRzK=TRT)#iw_n+TiZ`Y-3uHkvU-{)RF_vilH-{-Y~o;Lpxr}21CPgGXCvpwPC?#1&gyJzZnOt?Zkhy6tWCo{+bm{??mFJ}`YEfyvA} ze%X zzx!zEuXpO7+i5v=|L^Yczg+tNe%b#Y8~T6k!m^O(x3x}~qCUGgd+(X12_3(JdftiA zZ`qm{o`1N}nW3b3bU^t4rDS%*Oyhq_U|&*9Ff6rYP|RQoRm z@>ar}$(c`B^8u7&3-L}&(geh919f`J&}NItt9aSK?caS|w~D0m49c1m!sHMJvlK2` zM5f?B-p>0nag!-u-t6=Xy^v<`lAH{U$7|L&ITv=!eD zInbw_C;IF5;rAMx!kuaCtM~u=Vz1#GCzZR!mQ73PUlXtmi2eKVI(ia}6WN922Cpdc z3k*m9_XIwx1qvLn{>L&`+0x_x`&K?yixsb*JNi@0x)*14dMskCRb8N6q;GfnUGSnx{LkUPq|w3m>EJKj!KGaS5KAJ5JzY zDTw!vnJ~f`{=>s)1Z3j(?ZTr~XrpQ!z~WcKp0F`Na-F>SpAW{vu$^2mi8h*&T}ah7uC&6+PzJ_&p}=I0r1e*$$#CVJ zNWQQ<@BjQ7D^Ou+NksEOP^ZbpCnG7+OAH!IIjC{BjX8hvj}t-vI(&HME(!H{3^`v|fg%@#9DaJ)LFQjq z8ic@cRR#5~doO@xMIWkLHhV8U;^&He;f$~TXIaIaHbv)n5n=z^O$|Mrw@70tJ*@p~PrKgo`Gju0sjz-fz z22y?=I=e_JlD%K=+tJZcQflT4oz4k+K6_^$x}ZN>$AWN~K*bs2`@N}eJKsGBZ-{E1 zRz`WDjhu9pFXnxO)2=;YZte-q_LMa*Kh=BQPmLR?{CN1|T>D)TYefYDWYNU2RnlLv zzq2AdnnvfarXJ1&N3?Q;)YTytPz|*E&XtObyC9#*38Of1u@+xTr+0VH6@M6LD7Zao zpB+>c7`EwKUgsa~Es_5_%k$bAx%Tv1LJO5QhGRO4)9j@Cb2UVd*(2$H&qcYJ)u3st zsW&lrdH~GF7m+e;Uzogt3whqv+_q@vZUsXPGGdb1SjP+dQ`{#%ALF6I0_J+=fVdrg zWgsf?ZwQ`zh7@DLvej)v1Lj`ObxG(4Fep8%%)fK5Kn~JjBx&s!5(#97CX}7;76q~} zJ6Qe49gEhTGpDR4RktqSho=M9jqkFr{`kuEPXgx!CB6fhCxF^WYPEVYCl=!A{gve? zR7x9eWe7e!Jb`MlH|5%!&z~Hvl^@Bl7mnIGwGeM|K$+UtQjjgE#rkh!m)gi{ez+A~ zH33TUk6d{Mgo}m`jw{f)5hQezxgWe8Q3758xBBuYYY(^71_*l`+G+p!Z>C@GtMs%} zD4k*o9L`>L6W!*dvDU_76v9$v){`kDQzlW{)7tu}wbP$%+I8g+Bj4`xZ{?%t9y~i> z_M5_4Z0#5RiQ<84qQpbFtPUU`0Z166c%!Px1{*u$86lrxkM&76r*TtXyv2xy_nuM> zjkXWO$W)AJ=3#`>CoyHat(mlc3Y?b0M|Ucy1==19hmrx4n%k=mQNFM?WmzS=<8X$X z0%BJ-nDwFq!^%O~(n+jI-Ex$DnbWuzbs2QxeinVZ7)$TWVAUnxIKgEP4Gh_cKagqLbk0v{Oh~F1rBK&j}bDphsgMY8Q-aUDS_TKzm$JM~ehrMam zdF=DI{@cH5@2Y)MBi)B6YSUtLn`3xP{?Tt+4V=d4=StNcS8Ac);nv>XZt$&sF18k{ zrXQ;+u&~udg^uyKX9pk;##yH3hl|d)0=3CMlFjj7*w4Fpv@eXdrq*$H2we^Hoot)~ za7t=%SH-MImZ)w+U+(U?D|&%f;H+l7W2al0mGJr4CZ+!7;;7bigT{Xn{W0JX?@l<( zZ)g?BY^rP>Tnq*tXNsOy{_;@__OY>5DM0j$YgYG?>>DhG?lg-DS{3J&aX9g>QBE#3 z324X>!1mKkE%iL~YS~ zj8!l4wP9?i5sH+jzxhe{l5)sS&XYYF>)u8HYX*a&RH2wvu=4sHQl*p~U7uC3+rxtR zKj_j;V7*h(A(9#>@m5^~Q-WfO!BdBGpj-e+NUb~)oyl;P7t5bOKK+-B)NZGFoG@%J z4OZ~u@n@#Zz2Edni$i<}39+Y|n&%3P!Q3Ys?~3A;0^DT|Yx+~l#9+1D7SDjl#etrO ziqSf8Fw8lLuT4}&U+Q^$_jujR_vLGxpsHK{-fNx?gYB7jz?l0xd?`wGkcJ?yuoxib zoM{ITn36LTBt;0chXSC!UqhS;q7&TSOyio%EdVcDcJ&{K#I-=|2`W_RTNN`qT~nmm zhLiMcUy!ARH!;%`>M{S>LPh&viz(Z{CZ5z325{Hv-?T_e;hVWX${0P_#cduSTL5pR zOVsHlXBOvZv5xOdSy4mu6ZWFr0#tdHlqHM`-s@O8yem1{YLNY(>)Y(0D-XSUsWcq# z0!D(J`680u6DzCMEh;I&>d1Mi3nR(z;Xx8W{k`Mdg?V!1X4r|V|1gs9Xk7m^pK$@^xCEq#v0A_KjzfDSJLkzryOI;Jjr-WR>TUeAtJjQ85-Zy+ zQ1cu}$CKBVOWMPEx6WBm`N`K7Yyzsd9Lj+EK1$MJ6{Oj!E6yOx0C?B$nk0BOH(K~P zQ_2`7Jl&~mbdz<T)V~$_D}o~VX2;*BVH-~Wonw5KVp8^VgXJS zx>f6E+k4sh^Cp9%t43t`_Vulh%ELy9l`SX4Sgcju${HrFB!JBkfXh#%?zexw(5Ulg zoY{!ZScf|3+FM_^SdW_-ZEOB>I8h6vD=}bSQC31*ogsE`n^)Ql9(OmBK#y@kU5}hq zsds!pRD+MC!Je(5D63^H684cM5^*gCrA)(4@XzVj64ug~wi?0xgx32h_8Un=kZF4Xdz3tZmD>i<$=h274zT6?K&bz)LmK+v>U8;bwB(x>0W0JV`-jAm~ zz=PBKTWBY=d-!w;%`0j13%Erbu9+E@aclWD)xfc0@49v*Gl;%Z@yJ+dP~r{gjPlGb za_;okpqMWJ9$cTq28c=?*6^n^!{9-&<}=fU&uylWj*eee(R;_w6!Ed3l+!-)ZHE%R z3*7c0v>FY_rO1!ete&erL8T|6xW7=KG)vJ zu+8eK_}gsBT|OWwDBBbHh4xC2=iXNUouks&?;$SsCd@Ac>a6{`Wr2Sy>vooTo#&x= z(GbIYw$78CC)wDpJYLY!7h&r`s(N^OukTPGhF{w4aCrR|T3tWQJS zymvQ(`#ml;oPQu3uilt1)GgZ{AdxErv^#|YqW4~Df%w{7nmnO>L(*bj>uYNW2%ceRV&Rn5DU3$QO z06+v2sn^`o!b6un2G__a!&4$mM)s9V!}tz(Xv^HNx-ThBo~9qui` z)R3h#^r7N}&!H3epH!13r1z3U43*DefRp<8(B=y@^Ps%2IBsf!CZ}J50}S0&aPjm% zK1>!DSwXe9k;~u`lMH6a;VXNAJi(~V!3@gLTKkQ<@meI#P(=*?p15y=XRR&UGRpwngPf6VlbyayI zb55b@#<%V=FR+J%f!z*r=XeY2@3~EB^S-?R%gc1L*APjSnXPAsuzD?()zcO;c;fgV z)kaOcp4EOKshsRkq4S4jvNxgDuS(eYPFQL~WhF`TL%#g;-s|jq+DMsoTu^<@T&ejU zg^@~Phu#;BELm7mE*L;x&Ib$+n0=n`rqtzNhhQMAWnp%|Y-1YCLl9JM%XMa8k2UNJ zXyR-;j-t{* zJph-MLsREr9#A>o^|ql$A*6HmC-?F1+h%@#QU{^3MWq^#d9-0uuwIgE`mKRSinesB z)dJu@o!UAT`jmTIWWLH~UzdKZpLwQV!XG!@?B^Z1yVPzJgfJEcn9_)9F#J_el{D*(h7;vsW!j`d}7RH)9=deZNJoM7}z3fz^5neRQYbuLpv>2Qvc zdHeH~VSd{kN7}&B2s!n&^bj$?BY8yNgc|@c1wj=D$<-s{Pc1&P!{j9b14` zXkZjI#^50xQ%YgrIUfH0)m7v5DMW!zlTXDYB5{+EyU7cU+ zNY$qHN%*^GLtqF*_bLGSKm^F!29Gbh6chzVyl7v1a07;K#>NALX{m$y&H)yuq4D}s zO#2nOO9ChLy^FkxYvhrwb0?hO4UC1a!*9DA&3LK`k_+wL#6LR2A~eOjKL2I7<;en} zWH@Q+tb@f-^{eFE`9V3E5zzEYrOJ%$Duk52O9f#vem#(c$uPIB`;nO|&DCmTn+GVd z-BL?yay$3#T2e%3nyoJEb5M<-g8Xc#PzsN6OX=Z?`c;HceA)|+A@M9|cG=|f?N|_? zIz4%6Dp4giKaz$S-c*00zOSR@iHEdK2lqyG)CsJo8~T^=;mxnxPfrj|=GpgDtI)@$ z%iZ2QJD2Ch#+L6@0VVWigYS>hY#`@&-hk3d?2?LfprEvhT`j_PCGpU$E`VaMH>~Oy4$j3VI&r-UJqIMp+iyWbmf!N; zP*`Z)%5S@5aYv--fv5sspc7HJDE2c$jgk^JEM3hMcCZY%6aI+i6lJO^K+s|o5~Rq2M$(xC$GmV>Ash||qB8^UUEJb_ za0o&bMzK85P!5I_(EEdKRW{3EI|?>Wg># z+s>5ts17J?@v}KpUzB{W0BEtN6#7@h$KYSS*A+26z{T56WLd?)tQRT7`K`pateR)1ORzX{Lz%A^&~L-fsZ!RXHWJxQ>SR%MMF$NlF9&cy zcCr?Ym1NCr{4BA!Z%6|$AncKaGAJQiD7vtzl0^>FZ8qlXT&P zgdhho44EzyKJ^L3oX9EyRK_t0%nW|3cE zDa5aYc>E-7v8s>L{L+SSVr+`2Cd6xFGGJYrNah4gn|Jo;5&KEQ3e=f3*3Q?YjvtJ! z<9^vDcN$@F-os>oE#8h%zh~VUQs+rqnRblfw$9in~x@#gi@#gNMnSOD>PLX=efX(4C66&s(kFk}1 z9y~*kx7a7azX71FgK=3|XnY|x40#(4UuDfB!uxBgtTLLd0_GLV$+d8DjmFvRu-I6d z4{|9}0lSy^x}+fXg0&zte%g-P%d^f@`20C@tRfbQ>7p`|!4&)84fwAF?$= zvdI}3Pbtq94-e^C7?5gJh)qFGdjNap+Oy0tDxSS9v*7iqx&>@9AG4o^(O;`CHcf;{ zrm)Lv_NF(HTWo3Tk>8q0dz~*Dxb=i#Gm|!yzlpRdZ*_YgxO~f_QT-ea=h_ZxaY)3< zMLGHV2N>5b!pFXNkFGY`4SPghiYnl{EWexXHZp5uv+22{8<%v`>QY0ZWhQ%K9w>kG z<%H5n6&#JIHsm~4SMw%t^^!!?1ZP=p&?;AibgJ*|fk^2}>na3Z zYwMQJ)Cx8!^kpFqujZTVscfspjqU8wD@L$f`qFyJ)P26GG_&pyLOo!33U$w=EJ4ff z5+T(pxazRu+c5jvm6#ki6Iq57Hh1T*m6tQ+M<>>A$Lm9L^RItV?gzrjVHqM+*)r}& z_r>K}7cmK=WTBrkIoh74p#*u)UJJrbxuEXZQ_c?+vFS37^D=0g)xRS`NGe^oPnAWVdSI*A$SmUa-869 z38_5A>WE-($)p#O)5Bhc3pHu5k|LOSCxk+#n_hOCYtkb~XoK^*Yldnd$Qww% z$;P0nn?pHEUEdm@>$OD$If^q%r8qS;AkG` zC}&YkiiQC_M>vQX3m8K8AI%k&*gv$NeK@n#``5EG{k;#@YfGHeA*2tH?6F1W#4Dpo z{H|2VIOuA}#&md0(pD+geK(^~=)&G7pfuVPNc%71x!`g6!DThjd&WIYEA5*zDji zkIBfn{D6wAIL-lpZQpqsVj`z%W1bdPm6p{ZMRC7sYzNMvq1^BeodM%&J_#ck(dVo| zDTbL}9xPd(Fiyj$W8v-b)3%`uX>GT?@%?JPU6q~}bYQN$ZxtJsX_+HK094J7)mLJC za3~9Wot^49q%gn^Lh}RnpQC&LipO}Yw_9h~^wCWp{hT0%JMXo)LFRav8&$(-UE7K` zxK8g_rOde=@t8-*F9Ec&pf`Q|&F3wn*@1yCm3g2vhR+4@W*u4FhTf7LmhSv?=lZru z7neNwf#k&2ww-ROTqB|~#P|TVJ@>imvrcdm3$_#ot+}j#pHMkLl=-VMj)ZQGw(Q;+ z!q5rEj#S-e)eKW%;*#IU(?LUk9DIV0=2Cb~f^2o z1X_avDMwpa{$ZM&ZOM%PBLgehjT@awEIkapzrXh) znS-PyfXmcImYc?TO~eeQmDDKb&6VSher4%tzozQJSANvQzsWvsnFqoOA8HWY`vJ%~ z>x87Q-#y-0V6;XWU9FqcX>IKJ%LbVs3k^5`2^P6<;^V_I z@R6~vGOlf5sPY5~qY+G%nkagHZF$@8jmhan^f^`erdFRu$@Msw%Ry_?U3Em!PMOH} zz}6n3DE*q0=_#dfk31jD1g2gUB5irupnx+Q)uLqv6K0Qx_+U01Ww)TQCS2X=RtfOO zKv*t~3OnRwsI&VR(N2yX>lsp-RuGGz^c=3FYSLb6>($DC z!zXcZ*Ui*=x?_rB86hcbtoS%RVbP|&n~u+(Jswx_Xidl=BWap?LLOsVz=mepZ9>+s zZ`f!keZZ4GZNDGYoEGpB-P5qOC3TgaxhkttO54WHoDNho`Ht0A0RpKaft)2&X%Ij> z-KRL;s3_faDIr7SC}}$A(}v?)i1_yWC7r@yh=jfnhEI%OvmbDkPTvEviu5w5x4GlY zHIWTLxBi~j);sJJaVN)#c`oLC(*yPQkeE{X-X8lj zywzx*Ruv@+P=6lc+?(X&Kk;#`MsYO))QM^2$0i3i8`i&mc%!X;Yr7c}%a5$3y>bIb zIm^$Vx-Iom(={WxXJ#HP5!YJ38gZoqLLgO!zJG^gXEPwtNS;Q8$kmNUov}bGxvyGB zMr@y|sJQM*p8{sr0`YqNY8bc*S%0eLi=yUfiDIXLD|QJwhfHPv4wsjl7U)ZGPkmul z%?{~B&m_A=8`3>5>&o+-f*IF)Oy9rq%6jVU&j}+82e!XWR}5k!408EUqCksuL91lF z(4s~ITZk=sfmjwyeq z7cTNflw^hu?-vhsf6Mx>RI#1=7jbV9(8JB=UaG!~4Z8=Jvtm%Cz-A=yVnN zAMbji>**!ER;7c2he{E2hIn}j>6C8HeQ#o!U4P0=8NCOo_xmxU$QMaPR-oR$bF-U< zFe7w|A0Vst7nL|wZkrcU-}Wtjf9HmQNJ#u{jf(bOO^*7VIaMG7rJZe94GLfFY)}&F zif=Jk*_EOERPwUZ@UnLK;U*=)_d)*eYtGHn<*JUI#3&2p1I|FwSs^465Df!aoY;ew zogqk``7&h>aPt-Wu*YtL%CNIV4;9fVv)<$Q9iU-Utkn>f60wMWXab0xFSsZxz04>g z&)XHjQ#>~1xaW@m6{jYJlTr8Z4CQCUe8C!Q87LN}vW4A|$?dfG01Yr+)!Z7+GJ%(@ zp1z+_5V8i}a7-DJYGNp;jCqG6-*hAFRV1bXV}+ z##M)o8_Rzd#pO1>m$?w03xk{P23@pBCKzWhG;e-!GEM%1p0241HkBEDs(VBMf3q?I zOK(y~fSo$uJIgA68IBM&Ft6TX@LeZlS@?-W^%7T zOnp)Z^<3&Ta8DV{IQjEqU&2w;@PqzuQXE=5MvF@YaJJd4R{Kk}g3Urd!E!i$XSf8f zb1}A2!?Sd$NnUA!r`F^P_tc)l_dA3tdJfRv5bO7@u2Yuw*_H4F?6bK&4gG!a(oLUr z)=m!1YNTMW(>acOwEIzO@R3FJtgFyVA~G#u6_)pt+$8aNw1AQ`{XqjpA6RZZQ!67FI7KDYOsoJIqN2 ze;VCja<}ld@PUH2#(TvNqduMf?)#Lyl_9T*^|yb}+Eg)r^_RS{>hT_3g*&VDdi$oA zVj35hX*@-(Kg0I$p!p7XBz`$rj1?fTewk6v6KP@@UGWr`V#%r0ofz2g9-~-L z<^U^MtM?zZ2Eo6FLX|zN7k5q($<=+~E=_!wAia0&g`k(%Nj7+NE%GnpIlO!fnim8+ucysw`9^dFn%U)ajNJJWRgm-IzN zJ3qYie@c}982iLC-ByhtZ7q{rysEVnyVK%mUp$hf*&O88=C1M*^5~P)DJg6NB8t)T zbtPca7&oBA7T!41US|2ZaaL@7PuR-cprGXV38#k{SDG3vKlMSA7Fv9>=FuAOh-I#- zfC%cCaZx%1^~3*OZyr*t6fGRtVPSsD%(Cb)C!0c#>=!L^4l z#a?UE$XWVrV|9g zfNWIMutH7QnfITzU{4_`gNpo=Qq!Qhtybs-ertKL#P1U%a2PQ&MHlJP;D30z`O24P zx2Rr1v^d#|f`NPP#z+L8B$lbePqjZ&-L)2#NU)RYOcrv`m;COf|9kIP<&}w%QY+rQ zLURXQ;eaJKI9y$^dTp^eS4J2Wx?1zd-ZedZ?Mdfrk@myqFK1nRC56`(rkuPXggG7Z z9)Y$l4;jyS`G%yf%Bp?a(Dm&^SVa(%zBW>2(8ER8PeZHy&YbutyQXduTGxAL z&ZzQ&29C9Ss)hj65*B6GTKG#iiyleHvSKGs37nmPg^Jzm=X4@dskT3%uB_K{4?8NA zDr*kM)RR@ho^*BUbh%=3)u*lMCx~Y?Djh3OUaU3b-00lym*X)2NfU5l?|FjR?zj)? zCfqRZxeUyD9i;>Zoeu^in#!*+(iC=k!rd)GF3Z^gI%CQ3JoGW!BIJ0YX?@Tc9Bj=~ z^!Z(*Fk<6K=|O6C!=KM8Q)Ours1uK7NHQMgqX9aed4%D^8N(||18|{DOG#96&pB+r zOHSPis*>;NpWr4Bh4+-#M|Hrp6o1hrT5*(3Otc~U1uROYPm(azmkuk&n(RYZxM7v^ zWTRQeUcnR|9{`a}zZ)f@uWs}`m(pNPpSI1?EnU9xN^b4ATeT8YGrt)x)#aLTd^tca zOcST>1Aj-GD-n+0@~H?QcYjT~U3!lVpbIbMYLH(MDdR&$B{zQ@DTZEDrr^g-@VO%RjQzO+;mBuY*tp#fd?oK5p zF83@vT~>t;eIvXZ(MS2rrxCs&?f9T>S$j^~%$G|16>ourag<9^e5B?@wnAUtvs_Xc zyYupJ_K8(8Sl;73RO@(Yjcd@YUt6bN{AsyUTcBbW*90Zpv1cEMm0T*FO%5sO`_s4g zyneXy;y4~%hQXPd=15ud@danKcj$yTt+%{s-3k?gS<|p2(D&dO6;hK#KlcwZ2^N4Y zwDd@W%x)`yRzkeph48_&Pz>St8rbB}R{II5I(KIV0%@uJO^M#?%+PlQ2`|^ zXBpW910@|w`-zh;U+<`1)pGEasWI_W^6TG%=C_GsMJlGkkuyKZMP-N=`7jL|oqH%Z za8hTG-$bQa(rxD&LcPmX@ZS}Ov5WXi`YArycEY^B@cX*ufk9JQG0aBD^txX~*>3Dj z!8O}wE&=ispl=Ku#Z-Zz;}izZ2du5|`Q!$EQm97;M%wgDst+z|2b03rH=C!(C6$hf6#IV~zh&+Tsev|D=CH9MPVlQ$h zB_9|%@sSWau=p!=xKgmQ`Jy~phD$OzZan&bPEpJ>iO z?iz++F1WaDs{zrDYNWa190%Orjy4R0^w!oC)BtJ;n_nsyk26=H*Nl2dQ$v`rGkr?| zB=4rFY01!ieYXtvd|M0S_uy>ofnSz^M(`_K02@~7=fN{eX)07;__dc{QEkY(nP%xS zQ~!5O64e43YNJ5SN!yPq6YJXYQ_JLO6n@mqAm}}thcJYsR_|!$aHDMovBYiE32Suv zkoHB~czlwLZ%N%^k`e-U`+i@3qu1g@_KO4Y57ku&WV8w*{RPX?L4Fxi(D%om*JOa{ z_CP6OXRK^(J4apPvrzaz%)Z<=TB&~z6r=bigMQ$wu4^fKT8KY!>n!!%UG>^Rk&0w4 zqKr_!iKskkAP^lYt|i1_8w})2tR&c`!rKu5brQLHXg4x$)l9 znWj~sO3ewxkV2Q;N3$SVFBk(iYUO@&8VJGDL zCZn>MBgIF}lQ6Qs98t(s01sMykr=N8k$VE-6-5|mv~3nz)%{pSMh@k8qy^>3AFpz0 zp88l`klDy4QfLjlRCMhQeg+y#2=NL&l^aC-W(5oL%7GT8!Yz&As1kBOHf^BSm}8~U zp2OIan0Qp@!wB(oAq?nUEkeWa?>jj)QYWxEmD??Gjs9k`g4*~?_aJMbOMP=)m3}AO zlJ}6)`YWfLw}E-x^MkfG%i|m|U_e!YUkV*_k(((!~djkZB|YN=`fjnDgY`X#n*rFsy2;}Z8<%##uKfQI^>e_jwU+tR$a z^`@bXoN9Ej>(WS{IclLpoZN7jR`WXMijH|Zr8RpyR z3D{K6!D>LwY5jC~>Qn!=8z*f0T<2ZS^8)K2!_%tIZ4QDeavVRz(T=62IR8+M-fz3K zlCD2RkxM#td(+Ya1a^1dC3Wokxpu0y!h4(nQdhN9ucy88w(hZmJ-Vxz`RE?VAm*l- zc%|3Z1MFCy3IcGffg{-`#BwEF3vKgkd;3|j=#Mv+IUO!q;$`eeqrm7F@6D% z$KEpD_DjpQEPb@_wdTK}yf86tYso7spJA5Pilg$Ir}<q&8H`MO9W3rph8QJLpxuuoGv5eln4{Ix|8|1U7FMb~s3mbvMfhxG( zYtFGdKfflGOL0P4;IX=RYLn+uCZUHWOE|0MF%?u%D}7f}DX63uPmY+2JEO!;S8)CN zmVgCt@+|g!S+I=b^YoFR_=m$3XxzlioFCeu*{P3%;k^C6QTATXqf_~64~|&&0L|QNPrj%*(u++$xw1l_<{ErUxIiBKvp} zV1YxcfT0s>S-LNV`h&VJO30WB%g|@qC#}h1Ii|dV3t^tC8rXttSlyLlg7-0msYVZC zB>cM#!sDjllPCx-QajjaJ36GOcRsx17do5W(9Pjk z$+uWSUKNS0J#ty$LfMQ*5aSu#Z`|lv`BNIk5DeI2aCzqW@Epg$pP80l#`=C6>y^7Ki}W`zf%kk#PcG8)0I z^Dz;dspTVl{-SXhb?%$L3QNXrcaXz6`UZ*74jiy)2aayzLz)30l!BNM%?M_+^jR-J z&w_TIeDR!6mM7K3mNB!rEyJ%(8`*(r3e+~o0D)?+n?u0K_Y+c8r@b=@py=eIhJJF- zL}LA(O%_t#1Fyr3Np0A4$&{2Gu`?fBkh^Y}LF)%6-l_fQ1{UlJ0$^Sm+1UL6S>hy5 z_>fp~ayxM^$}IuVAo;8#kvwbxF8$``Zq63WxQQ#%UdH1z9NiQ9cAZ=)5L{|_2>1r8 z9V&CS+wDO(DCW{8Fkzw)h6Lp&7U@;3>M?u=O-HWtp4gmO(mCA2@RE|K#;1{+7&0G} z17~;3XrtBJpoYCRq;OT?lUw**-(qXt1%;Et4Y~NBX<@V2aNxzKSp4i~nL2kn<6cU7 zgq3Zq)xmlGNL0bj`{b^Y3%sg%%@0E-9qIw!WSHKT&qdF@c-)x(aWF#?_O$I=;LyI- zyuj{;Ll2wWk%deVh4;q{jtX6*#u=dZWQ7d zN8D83hfVbTO2jl|4d||>tZWAMW;Qc7ClY_m9NxrJsy=_fd3)nSwGV9Z4BJn%{~f(U zSd(dh*Akr1is7kw)MNjYUA+aTZCrukWMxa=TB>}q(3mUu+TkG^+LM*rj0dK%kM)mX z3iM)}^H#84ydMGLT3&WnN+jeW#L40px1Wy#ueH4Tg?8;E{iL^c1$G=&cotExqZD}S zLeWJhA-MOb@H4z7iL&Df2dD~;jS|u|9^`uOrzU3ms{*BePnC>JT(Rp&4ShISo5Je)wsW{F2ntvtG_s1J7WDmt~HV7L2%> zqUqE*Qzh;Ut0;YHFi`{Xt<1rsrZ;5sWNqKJC`;tY*H2Y03~_%ge!<%oyDyYHxDkwg zYksbaSadoxlo|(xxS)z2hDDA(=+7k0D8F_h&hFSuzCWY-{6lrCdr4&&wI5owE=N|y z|KVHLyXVE)y|ZzTr}CT-S6G4RmD$&pDGmxqdVANp=Ua-Z;P|FUO3nSMmNQ>%C=71m7#r`B3R2tG zOfNA?(aNN4n=6o8avWtbg$KVnub*kLFy*|~zjFHufI1$;c*R(Z-&J^->&=&h7E(*$ z_BL2|s!AEBFQ9*!7Z@d`yWxj`N~L%tohKWH^n2p4*rKpU=_tm_=w6!7J+rCoH-=@Z zLMhq5LO2f$Z^9e6o%V&i4oL?o1vLgbP~IWCo`MTIg+)#=dZW}_xQZ3*X&oAMdJJrN zIldQa6ZwtjL}fa)>BSPHO8HBloJXgYrTXW^+8TwhnX7o#?)RS28wZC-N@OojD;P}r zPbo^iZuw;zx)*HKmF;#|gP8Ef5c^Gmk_of!1YdV_rw{W&%=BLMvE$$6F?x+1r$f!2 z#=Ow1q=#9~&r9`h@0=K$I-P w@dLufu2eHI3pf5?uRaeEf=YaKTr;&hp!6htn=W zgNCHr?N?ctwwA&hGJ9&{M~bngj)IJc^=L7S^Amf|w6rbZOP?3b3tb|iq&=GNFdpWf3h zr+;e4PfrJ^iL^+buhSvN!Hs zYCzjr>;inEW_*VImz0cdvDdKI(Hx({T=6mVLsaa)#bD~yKG7elf21BKMx1WCVQO?& zlAXpKAWEdFiM(XA<*O}~EetdHj>f`~4r1`G&SH2#DhsZO>^&d(VqF}P9VN6T0S{U3 z_ux&HfE2e?9 z3*|?RE=fl9mQ1QdAyv(FPSj{7w?Qwx=5D|ew!(a0vtR8?jAc$Wr;dPph?)wsn#ch^ z&6I`@r z`lT!kJDqbp+o0VLwv8^PHTSwO_F3I%$>$r(FTz9w#Sdj`uY)SHgFS{g%F^uoy$N{U zZ^YWt1yjQaF^{y6;TP-1lR}FK2LwbW1q8;>oZf)cf}Zu?Jr;z^5VTmU^|Dk>C}B6X z=(`apqL7;r?2AkbEtJ*I(Qi-3TJ$x{7uo4{nhZtF z67TZo98K;&|DwQU0Nh{qCS*&-Y zW)TR=r)=ikj5b3&^R9Ex0v6@2b&2I0Z$2=Z!IoX>ZX!a=ibxP+J*OI|IhbyT8H$Xt zzRw5nZnj4<=uRt8x9ll2TJurn!b6y+Gu=N@(#BDN6%j!3PSq*PJL-I zOE4BacaBoX1PNM*uomC-G-ewULEzAL-nwX$LID$z?uS7Jf;WDN8v}eiiQtXBTaMKo zP9G@efzhB$bYEonlrcCPTh1BU86+})MX?*6xNFKeF-c~hK0O8dFnW_&5WA#8ck;4?*<+;&nBoateIh^$ARQVqU zcQf!M)WEt^)N+6@*Lqs3;cr#=e})~&*guJpUWWdGMEG z*|t;rsGOa6T}^bhv#`DSpRYW*qtlGO%Q`j_ux0LCT}AO#@?F$L4eQ{{c0JQEsoKl0 z`gnXp9(nZ{r{ooH+IfyQ2hUKl$&wqQ!2Bcn*)ZaMR=S9x>CX>j-l{V{F;89< z#kYL^$aV{DJ_A5ng+2PwQv!k_?wN)B^dap=KU+|5t=|E<;@WNEsc0wErE8=515!6j z$}Z~J8oTR(@>QImVgA8$p3Wj@Rk{Uj6kU6SLYI?`flBGVNerUSf-w=~Q` znKk?E6me7uNox+A47_;FdvQ3wr;VYI>a^jl*BT;Ln4Pb>Cad-Ex(~Bc4we& z26`E;FKfS4?spktD zjR=T8K}4j93Ra|vQbcM13sw+m(vdDjq<2C`rCBHw8N1Nhc!Tx>^)$+h!(7soN(q~!mqC9L`l065J;OI)p;tlJ49o9-{Q$b3y! zF0>|ueK3|ig=YjwPx!hOqIAe1KN}q9Fuh`BT;i1S8>uA}cMYn#_SW5yQ0yy$Ge1UL zoi8MYih=KayU;>~OHJQJ=rUyH(BK!=Oh8!(5D}_9FjBb5?|IJ5M3i^W#e9%SUx4h6 zO#$UzvV*+MCAkuoiRso5geJwZ&8_gZadeM}RApc2u?o_JY|cC9nki(#x!*!^gExSr zd61QFSHP&PwWgf?@&qyN~Ysc zf_qm0m;FtCO}o`sPmZ3y-dH3{>~t*)te;piJx`IGbPyL>nVN4jGQ0yl{5E*h?cUS~ zNq+cNUc*>;KQr;0d$Pg$`Tj$<%D6+2O$C>?vO}v`sWnaqDDRfmfm1RTC*XVPRMwT@ z`K8&M$t|eHg}ol*p{y1dbrnV~o^__cxUP7Xg!uxsX*O2}Zo0bo$1t#f2cxa)Pv<;1 zp37{X(qG#h;6ZD>-}GpyEo5wNJno7lapg&OQ(YO`V{s)%=?0h)ZmG);hx2<^uQL-q z=zDR?6Lp=KpthsExRrzV5$ezknldmbW-WS3a1&q&8Xc%W1l)=hKGoMFxI73Tsp+JV zmm^m>^FnDtRk%|jw({hd*gs8sIH`I%uwbmdxp5Zo^2TK9!DeG=;*VOH(pj~6b^5wR zMx8n%kD^;Sz49eT*KvBP$^S9-U97etw-BwFGe|7kY3<##3j z{V9fogP-CDBT9f0e*5S>`?T};$NmrE#Wes-b+)V6X!r8oCbo|Htff~SO{g_~&=zP2 z^WSPIGf<4p2-uzEHns;4v~|yhGvFm#q?HThNzc5L#MdCS;}f3-qyVkpJZO1t{|$J+ zj_jNFw4@Imq<#w{is|M3dD4m$Qqu{sbd6faQHN0^&+%AlTYHAe;=QF#aPaE-h?2=L z%dx!}&U%+0T~E)p$dEWmv@6%-J2WUaO&vNpY{+?Ah^*o}Ike-~=B7*jsm?^yxUWrF zPJWwlKAF@85E?B~zw@qygKn?5{?jmF!0gg6~zF(PGV)QPecrCKwv+D^LI==l!> zjp%nEU{%t#UNe3#9uS^d9M|4VI#qARF84=YHpaf1K^qN+f5UxJnqqVf9}de5TNY39 zKmQm_emV#k)oZ?3eF;Ht7hFzllp~yG243Om>SUWGM z3*6f@Z!FLyi1||nYSVWJ6s@u+<+uee6>dYaDb5lqEek)1Jy*)Soi2mqKp7%H38vv9 z#@B>113;x1Hf=DlJ48iKm>TbzVQIXS{#4{~lZ7#%`8WNDN)-I*yB~uTT|}gnU;(aM zg0Lo>DrLUAokfw59>t+eWJ(Se1Rds6e2~@sfXg}GoRlUqHk%u@2PHY{fcwd7AuuKu z*|;pV(hw7hb@$4#SkNMu0F_b3=C!#ijr9GtnY|*TC6 zbk&qFe3r_yWwOfCA0DMcfj?r3&Cc(3zr{;`rm|6l_`^f3`(Xnzni%D@++I=1vht^z zbfhn`3;CqlD?*jAn|i=(Ar`weIWL}N^U~8Ye|tslI%lTz5Mrs<(yK4gjBC zj?)5q8FtI)99(YQiWoRn;lUXl3WE64JS9=o1AM5L0A~c8g{k%H6a?XteJ!C_)e|i%9)zGmz!Qm7(c~h z^xJYy1I4jnpKk-Ds~BcXq~7G_HX8l|`Z?Yqi-nhVn|+}|KN9hz(u+NdTc;{-fI8gK z+flGSIeI({@)VVN*H}nq$4fT`9jthd6kuT~DgU`ltR4|kkwu$W{;D=}88drnRA&^~ zkanM=N-SDd)3enut!mn;Ue#d=iNF8rlWglX$6_cm-_iVqL`7aNq4i_m1q|VZCKP*v zMAB+U3vvQKV%g9_6brCIn;D{mE!jjgJE-0Ad|2?07#Gt+SLNDPeM)y*uE>ltJ{NjC zH^i?BF(3h`)R9RxPN0hYn_c>myO)3c3ZJXu*d0~7)}QRFlW&*pQoeT0c}>mfDZ(yn z3UDapKFbwra6h9IB(B@XyG25fh1M5j1tH9n!XTv!D=x`5)9E>#360!p{qI-3Mv>%> zh-N}=bF5e$ZLsr+cOWOa>WgN_wg<#j^yFyNabQlMoqCy`;OAv?`2coooxYlH zH2b)W_%mlB;LEO6POYCFzG{m9h2J|6#0396plnVxC*xdv5%$OkqW;K_2Bk=V-f7!4 zP*j@%`*x7%`}|C?n6?_eVG0@WDT`uJt7Oropyq1_E93jREvA{P`j%D&xQ7v} z%8O_@QUiXxfN|+UMmK36P4~w98z>IAi@Pc(LXZ?v}UHn0W zxea?DzkGbL)cX#bmzo_B5$A%Np$#}(Y28Yu1E}lmK_U<%J9FLWLf-1M3+NgbyV#iA z(vMKC$x9yf+*!yeGBgt#gDe0HYsUAhNUs1mCOWh!+=@lT}{5c42bm4!kz9;|{FL-=)y&+Z_UVE8FZ| z2*f92;?ySzbVY`1h^v`7`+SrJ_+cUIrBbWLqMB`3oB-!7zrzu-pt~`h>8!iD*~?0j z&kXj{;$!b&))Y;K-Y`%JJvL;$AP;RaN)pGu%X#^u60MQen68d^-^1|DNh0`RR~$oS z;prbrvwD+J7lkAZ4eC2W=Ov{6jMS+^3kSGNbsR>_DW?@(o8yw?<7xFidd5VQ-i`mq^w1Kdp5kEL24Ik^G*EqvCzx@wVC*$ z91vvioJ`RK+;2>Aql~?QLf?_!jzd+EkBj6%HNJ@vtn%GR>#O|{d-gfcwyBv6q?x1$ z_Y>UsO*`HPwW#>HX3Fs*(l+(@GZ+(vqw*n}&5=N~s9ML^eVZtUVTqBti>aXe&V~Q# z4yFJ%W9f!Vm)dt@S8yWT6pVlsZA2qScR`B%Hz^Z9+fc5}(+$EC7_r1!+GQDHZ^wdqz-vB5iUg?(<=7*ULx}2;y4H3)inY_YtIU+X|6W%>TZWjN*%jhOIuo> z^cZ|w(ITg_VjqXjs=taN1E^oxGlkKvRZM_W8w$1-z9|xa_|Npkd7s(aU&`p&Lx_Ye z-t8nIUFpEvQhljNw*8$jhVcPE1Jh;oxo@$AXEGzG^01FN5^RI^Gn&{lF~V2P=b|Eb z%J&#n9vVY}?OuI~LhUz}Tl5L(H0^))rgd;|Q z$m}t>X0vWs5<|i7xa8A=Y*djMmJ(9iD=BHH-`_an_jtveSH^+5Tct$nKgR=kW65i3 z4n<6c#@;vv*ty19C!r!FibqS<FD0WBa9_?Y=Y~VrA&=e$e z$1FtTEU#$&x{{r0?B2#28UYwz%*lcm+P`)Osp#7nL9n?m0P;sU-#G-}V)Uq6F~yQo zaM8Huj2-%%ve^FfOlq_+;@2-v2pxRJr5i1OEQDZ&YCzz~H763Kn+t7;2(*`;UXgLH z$)6-vISd1`*n%IxcYc4VR-a@LsOZIEIr?O+ zlZ`p^uvBstVL!M$kVLD^if#AY$M$27%`J>*@J47bNpCvn&l&bH5a4D%OUcYxpQ|pB zb_*uR09EIkSO6#^;0NHnV4@I;n%jhOzXVC$g8zga&vl`rW9#O(H@3?K+6bz5M?&E9 z68aHTlN+EPqRc&Z`HZsIi$Fu)!VcwzR2ceC)v{nBq>=G69xNt0Ed<52wgX{J>B_|k z#_uqKDVWK!XyLb-v4aP;#!lml(~MAJwln~AVdI?34#>8KMBuXyX{Rpl$hq?~R_Ayl zsGKQGe#qt*9q06fl<%n=);B5p{1vXbm)Vb*>)+q*$mR&ZKjCGoM1wnI0TqX52VY0O zh6Jv*hBuZOa9#7aUOW>6q$VG)f@|{1fDWix6FgM#)7 z63c-n)QZALx267?YeXC26Y!Tncp^WLi{UTlYPmirDS6M$IkR%D_*_Ahyv# zlzuV)dK-ZCkePd*ggsrCe*LH|1b5`#gxLGc#yS0u)^+i;tqQ5<9Tf7QtxV;#G5>+e z{ez=rmcwXtpy9XV1JlDlYb3!%j$cU+SI2R=dPxam^v5 z>^s`+wk;u(Zr~)!EQ?A|G=}>W_%;LQxp|QhE#wk<4sfWDb1!lL>l&EyRbcNZ0wsmI;XeSZ25$-DevOAU={bpJ zx_dhL*{ytgTVLjyhxLs;;=lOU5*Iuko!J6b+RXlR@mtvs6aav(_F5y7z=LuHsP>vDh}al|Gn)ZAm(Ugwmc9vEM({%ujc7ZeZs zx@CR^HGSjWCPhC|0?1khtpKDthQ<~~R7D8ZJuPtZ1n#T|e zcZM?44oyjTj1^rx;UGxNT zv!w~GjyR=xz&m?}U)W`g*CURobgOXx(!D=<4==G&I)%qli)veKFvQMqXYldt5O zpUfR2b1_iom!&cp%x9Wo%H8G(J$SzP1!<-Ns9r^J zOnw0K@0+{^*PuV00^awqV76td9@qFd#pqX+!zizsPc^q#Dc2}~@fYBE>pot0x;Q53 z*>!!PiDwrjX7eN(OyNFoM{IRpNnGwLixjezDn-i?s4yF>1Sg>aN9WYo|6Be6WwIth z6I*{&oNf109Kujdan{P8iVlp%xB$?wU3D=Q%+hz-(hZIi6DJHk^?tpZ;?5WIb(83h zxJN=D*;GRKZqdAbyr~yxUvKe8-Aap9=$*sjI)+^gE#g^}M48meU;M0$hxK%A zAV_2^H>J!8SI&-5V=vQCjw%^GW0q@MaQitPHHxF2jzgc${w_5R!6D;756K{G} zADRABD@>8{YH78(R?56A_4oR>#tO9zgq*a&3%43%V(56{f2>SiWv}Ju=-9Q?7uTru4 z(bWEdU^tP*L+04pxJW`t=&d$mTsyzE*`iR}I>cVPRf}HkC29QLLifxK8Dj;8ar+6{ ziM)Fn-cA?WNh$StMoK8|ExSz#zP*(^Uu1df7Co~GD8L+rXamen_1Gx>gqo}70Cx5D znfZ04rl5h9*u&ce4C+jCW|F{gpB~@I;fZ@`)8ye5Ka7|5GEOFcWfYvTQ;u$$^lKb2 zZR*b?Q(j&8!Ie!;i>*L?owU*UIq5%_z>Sp`xDdFBp?^F>obU)0MocMVYyVTq&t>il zo-Acj=yLGmkCwuY_Y6ggvw^aiOjIfVz3C7`)_>}3*}tL5=>6?_1fPc{{;U|j zs;rGV9J~tVA5vf%2GF}33)iDwZt|t{xUH?g4rmh}^q;9bk*i#L&HHrL$!lWGKdWW{ z&g7=HpCL#|kDTY@aE)3XK73W5Pf_a6kUD5ipcvCeTHn$WlH+%c;ZQV#5#oAH&g-e# z#g94+zPh5-eWYbUz)(9424UYb%wMX4vKVq4N_rPLNMg=U-DEk2)b@trb#%rdxG)g} zIE9CZ4j-;2Ae&gK0fU6cSK{Ww;mJ@ia^;mk0N{5{Q^K(rO%huj& zUKmIj!WiGj#>yldN;5Ofs3>KbfL9xaNYRPG;tA$%t56m7q>P1Lx{ZWIo$QXPv*jDO z_g55uu7Oz|>frH6rXK>DsCI5HSc@n;v4Wed63AUgHvPA&us58xFLBGqv=$q| z5q5%m9e}p-9@a=#RbfcO2pNk&7t?wIVVhtkBK^C@qX(OfI|1OwgtX|w7AI>{r;mp) zVo%j6O3N4&yrO)D(8^XrgiWZltgJOdVf+To7?O=V9IRUGMfnAZ86;>=R4AEBweK_z2CmXlVW0>HIx+1Dq~LP2K}C0Z9lDkwfD|)S7}OU9hM$2fnSOmx(MWwV*l) z+argLMAcdezQ6g~Qim3Dy@Ecq8;>;Fq|Vj}uE_4&x&N1~`n4R-7m-N}cxh*U?5TS| zpq7o_JTnj82_$}^4PlQ0FMO?_wfl-rJ3BhipDlOcdzwyGFv1zP;{fqMn%(HJf71ND z-KH-JdYa?!cMLo)ejntp5DQ!yn|*VbYT)(pXyU1K3QOF3ZG?nTQ&nd3}e2lm|mpRVhsft7&bP8!>p+Ft>ppKOYeZ3x4&BKDIfv)C5=Q_H5uFj>A}^H9LNl=z47dNWN<+Yq-k zJU1n8ma!lJd0RCllLmOwJMM@bJ*IB0x_l&4;+PJW(pRua!O*T)T%w5|qIQdG(X*0> zc3y6p?LwD6Yt6vDiE4hyG-@^(JI$6OGT(7?Z$|@r?&OP+HFpA^{!E#Bx5N_mOwmWi zk_h9hOSRQAo~B!4B0-gkie)`;zV~Ir#fO#*a8T|bcAoq+xm6J$o~6WkzKA}4_AEq4 zxL{1yM%_j-yfH{8d5tP6R=NI1I$sod@|oddRn=6wAxXxn$#oKy$41|HE`I3F0d}OJ z!nuT-9Dv<~;Xj~!_m}GiE7cz!Di*|!4Ls>(;Wzr3`zn$`k?;)NB#Ee2+G=7QFZDIE zv;FO(SB@n``t%X|aga>;2UkjYSFOgDeusxY7 zkovi_wD&2t^uas+yrJ(TO)g%he*)S=GcttW?ff)7loEc|=)-8S(*kCs=~5N^>I2i; zS4L(|!yy1AL2brSXgkTrb?UV=;k|!od5Ff+KuX3yIE!=gUkek4KKcaL93+F>Rk6_B z{xsXi7Re@`+tMm&4A_VhdtHIP@EL2D{#%p#6qWwB>JrVyB@%Wi%O+K1#Sep4(iU&4 zh=@>{-2Q_@#c^@#kC;vzXc`IP$5KC6;2N(LG)}l5Tbrg(UgcR`Un(-fX@m%wH{8AX z$B=>)E=X({mtE?4JPdyKWgAmdt`I^D!rTWUm=A1>B5Js@$0on+pV4SYOK6`D^=2KL zplK-Y1o}CjwruNF>?b+%~K>r$l2zsB<6epAy7_pYEOm5uV21D-ekC$f))UBlFm zB^EcqufhLD4C>(d*Ar;|#osjsfjn>gwUin^l)>h*92)EY4BeN5*IO}0G&Px&QbB)F zzyEhUvwhJ;2yAmbmQ(e$%D>k;--1BOopC<&VDS_nQc^m{^wdCuI&AN78Ll-3>K;D+ zTr}-}Z;5xpSV$T$F)-Z1f0Ur01A}y02s?j=S_uW<5e3>86CMJ1t7FES9{hB={Y43gu&Q)={=jlu zuFnc#Y5K3)_O7hD>P}5@f6CA2t02=jb}8gnh1Eow_s+7yevY9y&41IV9YCX#m6fmB zVGc#xj}sTV(>~j5Y7y`sKOTB&{mcCLsY^mq&{JHOt}p{Vpv~W5-PH<)zL~P&`11fH z3jQZ8(Cf4RSQx_F|tN!cWM^EnD)VWcrWgYSV06z6aHvj+t literal 0 HcmV?d00001 From 420d07d161e7f5f619a3035c982cabe7455dae3c Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 19 Oct 2017 09:49:16 -0700 Subject: [PATCH 03/14] prevent cancelPledge transfer to 0 note --- build/ILiquidPledgingPlugin.sol.js | 4 +- build/LiquidPledging.sol.js | 16 +++--- build/LiquidPledgingBase.sol.js | 10 ++-- build/LiquidPledgingMock.sol.js | 20 +++---- build/LiquidPledgingMock_all.sol | 1 + build/LiquidPledging_all.sol | 1 + build/Owned.sol.js | 6 +- build/Vault.sol.js | 12 ++-- contracts/LiquidPledging.sol | 1 + test/CancelPledge.js | 89 ++++++++++++++++++++++++++++++ test/VetoDelegation.js | 3 - 11 files changed, 126 insertions(+), 37 deletions(-) create mode 100644 test/CancelPledge.js diff --git a/build/ILiquidPledgingPlugin.sol.js b/build/ILiquidPledgingPlugin.sol.js index a11422b..8c29835 100644 --- a/build/ILiquidPledgingPlugin.sol.js +++ b/build/ILiquidPledgingPlugin.sol.js @@ -1,6 +1,6 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" exports._sha256 = "0xdca1f6e8e45033d2b165904df14f39c39500c42395eabcc79e156346438f3259" diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index 5717cff..bb357b7 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -1,12 +1,12 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b60405160208062004f6b833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000259565b8154818355818115116200009d576005028160050283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200014c565b5b505050565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001be565b62000117600283016000620001be565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff191690556200018360028301826200020a565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001e6575062000206565b601f01602090049060005260206000209081019062000206919062000235565b5b50565b50805460008255600301600490049060005260206000209081019062000206919062000235565b5b50565b6200014991905b808211156200014557600081556001016200023c565b5090565b90565b614d0280620002696000396000f300606060405236156101385763ffffffff60e060020a60003504166314e7b1dc811461013d5780632101a6ad146101f75780632a8ec8cc1461022a5780632ee888081461024f5780633f657a461461027357806343387983146102f157806347c5ef431461031557806350f8a8031461034657806352dc7dcc146103815780635503d9ba1461044957806357adafb61461046e57806372116e92146104bf578063796d5654146105975780637f61fa93146105b85780639398f5a214610680578063af9f4563146106d1578063bce0906d146106f5578063bde60ac914610760578063cc19ecf71461077c578063d639cd7314610839578063db7c2314146108a3578063e9c211e214610960578063eba8ba0614610984578063ef3766e414610adc578063f6b24b1c14610b2d578063fbfa77cf14610bea575b600080fd5b341561014857600080fd5b61015f6001604060020a0360043516602435610c19565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ba5780820151818401525b6020016101a1565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020257600080fd5b6102166001604060020a0360043516610d40565b604051901515815260200160405180910390f35b341561023557600080fd5b61023d610df2565b60405190815260200160405180910390f35b341561025a57600080fd5b6102716001604060020a0360043516602435610dfd565b005b341561027e57600080fd5b6102926001604060020a0360043516610f43565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d757fe5b60ff16815260200197505050505050505060405180910390f35b34156102fc57600080fd5b6102716001604060020a0360043516602435610fb0565b005b341561032057600080fd5b6102716001604060020a036004358116906024358116906044359060643516611355565b005b341561035157600080fd5b6103656001604060020a0360043516611a12565b6040516001604060020a03909116815260200160405180910390f35b341561038c57600080fd5b61036560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611bde915050565b6040516001604060020a03909116815260200160405180910390f35b341561045457600080fd5b61023d611dcf565b60405190815260200160405180910390f35b341561047957600080fd5b6102716004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611dda95505050505050565b005b34156104ca57600080fd5b61036560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611e4d9050565b6040516001604060020a03909116815260200160405180910390f35b34156105a257600080fd5b6102716001604060020a036004351661227d565b005b34156105c357600080fd5b61036560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124da915050565b6040516001604060020a03909116815260200160405180910390f35b341561068b57600080fd5b61027160046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506126ca95505050505050565b005b34156106dc57600080fd5b6102716001604060020a036004351660243561273d565b005b341561070057600080fd5b610365600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061298b95505050505050565b6040516001604060020a03909116815260200160405180910390f35b6102716001604060020a03600435811690602435166129d8565b005b341561078757600080fd5b610271600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612d13915050565b005b341561084457600080fd5b610271600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612e00915050565b005b34156108ae57600080fd5b610271600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612e77915050565b005b341561096b57600080fd5b6102716001604060020a0360043516602435612f64565b005b341561098f57600080fd5b6109a36001604060020a036004351661308e565b604051808960028111156109b357fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610a355780820151818401525b602001610a1c565b50505050905090810190601f168015610a625780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a995780820151818401525b602001610a80565b50505050905090810190601f168015610ac65780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610ae757600080fd5b610271600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061325495505050505050565b005b3415610b3857600080fd5b610271600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506132c7915050565b005b3415610bf557600080fd5b610bfd6133b4565b604051600160a060020a03909116815260200160405180910390f35b600080610c246148e1565b600080610c30876133c3565b91508160020160018703815481101515610c4657fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03169450610c7b8561340c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d2f5780601f10610d0457610100808354040283529160200191610d2f565b820191906000526020600020905b815481529060010190602001808311610d1257829003601f168201915b505050505092505b50509250925092565b600080610d4c8361340c565b905060005b815460ff166002811115610d6157fe5b1415610d705760009150610dec565b60025b815460ff166002811115610d8357fe5b14610d8a57fe5b6003810154608060020a900460ff1615610da75760019150610dec565b6003810154604060020a90046001604060020a03161515610dcb5760009150610dec565b6003810154610de990604060020a90046001604060020a0316610d40565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610e1d57600080fd5b610e26846133c3565b915060015b600383015460c060020a900460ff166002811115610e4557fe5b14610e4f57600080fd5b836001604060020a0316610e6285613457565b6001604060020a031614610e7557600080fd5b6001820154600283018054610f2e926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f0857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610ec55790505b505050506003860154600091508190608060020a90046001604060020a03166002613521565b9050610f3b848285613813565b5b5b50505050565b600080600080600080600080610f58896133c3565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b6000806000610fbe85611a12565b9450610fc9856133c3565b925060005b600384015460c060020a900460ff166002811115610fe857fe5b14610ff257600080fd5b6001830154611009906001604060020a031661340c565b91506111fe826101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60018301546002840180546112b7926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561129157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161124e5790505b505050506003870154600091508190608060020a90046001604060020a03166001613521565b90506112c4858286613813565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561133957600080fd5b6102c65a03f1151561134a57600080fd5b5050505b5050505050565b600080600080600061136688611a12565b9750611371886133c3565b945061137c8661340c565b93506113878961340c565b925061157c836101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60005b600386015460c060020a900460ff16600281111561159957fe5b146115a357600080fd5b60018501546001604060020a038a8116911614156116545760005b845460ff1660028111156115ce57fe5b14156115e4576115df888888613925565b61164c565b60025b845460ff1660028111156115f757fe5b141561160d576115df88888861396b565b61164c565b60015b845460ff16600281111561162057fe5b141561164a5761163888888760020180549050613bca565b97506115df888888613cd6565b61164c565bfe5b5b5b5b611a06565b6117858560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116db5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561177157fe5b600281111561177c57fe5b9052508a613e0a565b6001604060020a039081169250821461164a5760005b845460ff1660028111156117ab57fe5b14156117e25760018501546001604060020a038781169116146117ca57fe5b6117dc88888760020180549050613bca565b50611a06565b60015b845460ff1660028111156117f557fe5b14156119c15761192c8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118c557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118825790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561191857fe5b600281111561192357fe5b90525087613e0a565b6001604060020a03908116915081141561196957611638888860018589600201805490500303613bca565b97506115df888888613cd6565b61164c565b8181111561199a57611638888860018589600201805490500303613bca565b97506115df888888613cd6565b61164c565b81811161164c576117dc888860018489600201805490500303613bca565b505b5b5b611a06565b60025b845460ff1660028111156119d457fe5b141561164a576119f1888860018589600201805490500303613bca565b975061164c888888613e71565b611a06565b5bfe5b5b505050505050505050565b600080600080611a21856133c3565b925060005b600384015460c060020a900460ff166002811115611a4057fe5b14611a4d57849350611bd6565b600383015460006001604060020a03909116118015611a8657506003830154604060020a90046001604060020a0316611a846141d3565b115b15611ba4576001830154600284018054611b43926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b1e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611adb5790505b505050506003870154600091508190608060020a90046001604060020a031681613521565b6003840154909250611b84906001604060020a03166000604051805910611b675750595b908082528060200260200182016040525b50600080866000613521565b9050611b9585828560000154613813565b809450611ba1856133c3565b92505b611bad85613457565b90506001604060020a0380821690861614611bd157611bd185828560000154613813565b5b8093505b505050919050565b600180549081808201611bf183826148f3565b916000526020600020906005020160005b6101006040519081016040528060015b8152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c7257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cb8929160200190614925565b50606082015181600201908051611cd3929160200190614925565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b949350505050565b600154600019015b90565b600080805b8351831015610f3b576001604060020a03848481518110611dfc57fe5b90602001906020020151169150604060020a848481518110611e1a57fe5b90602001906020020151811515611e2d57fe5b049050611e3a8282610fb0565b5b600190920191611ddf565b5b50505050565b6000806001604060020a0385161561208657611e688561340c565b905060025b815460ff166002811115611e7d57fe5b14611e8757600080fd5b601461207c826101006040519081016040528154909190829060ff166002811115611eae57fe5b6002811115611eb957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120275780601f10611ffc57610100808354040283529160200191612027565b820191906000526020600020905b81548152906001019060200180831161200a57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526141d8565b1061208657600080fd5b5b6001805492508280820161209b83826148f3565b916000526020600020906005020160005b6101006040519081016040528060025b8152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561211d57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612163929160200190614925565b5060608201518160020190805161217e929160200190614925565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b509695505050505050565b60006122888261340c565b905061247d816101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25b5050565b6001805490818082016124ed83826148f3565b916000526020600020906005020160005b6101006040519081016040528060005b8152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125b4929160200190614925565b506060820151816002019080516125cf929160200190614925565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a25b949350505050565b600080805b8351831015610f3b576001604060020a038484815181106126ec57fe5b90602001906020020151169150604060020a84848151811061270a57fe5b9060200190602002015181151561271d57fe5b04905061272a8282610dfd565b5b6001909201916126cf565b5b50505050565b60008061274984611a12565b9350612754846133c3565b600181015490925061276e906001604060020a031661340c565b9050612963816101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b6003820154610f3b908590608060020a90046001604060020a031685613813565b5b50505050565b600080805b83518210156129d0576001604060020a038483815181106129ad57fe5b906020019060200201511690506129c381611a12565b505b600190910190612990565b5b5050919050565b60008080806001604060020a0386161515612a1e57612a1b6020604051908101604052806000815250602060405190810160405260008082526203f480906124da565b95505b612a278661340c565b9350612c1c846101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60005b845460ff166002811115612c2f57fe5b14612c3957600080fd5b34925060008311612c4957600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515612c7c57600080fd5b612cac866000604051805910612c8f5750595b908082528060200260200182016040525b50600080600080613521565b9150612cb7826133c3565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612d0a86838588611355565b5b505050505050565b6000612d1e8661340c565b905060015b815460ff166002811115612d3357fe5b14612d3d57600080fd5b805433600160a060020a039081166101009092041614612d5c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612d8f929160200190614925565b5060028101838051612da5929160200190614925565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8451831015612d0a576001604060020a03858481518110612e2257fe5b90602001906020020151169150604060020a858481518110612e4057fe5b90602001906020020151811515612e5357fe5b049050612e6286838387611355565b5b600190920191612e05565b5b505050505050565b6000612e828661340c565b905060005b815460ff166002811115612e9757fe5b14612ea157600080fd5b805433600160a060020a039081166101009092041614612ec057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ef3929160200190614925565b5060028101838051612f09929160200190614925565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25b505050505050565b600254600090819033600160a060020a03908116911614612f8457600080fd5b612f8d846133c3565b915060015b600383015460c060020a900460ff166002811115612fac57fe5b14612fb657600080fd5b600182015460028301805461306e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561304957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130065790505b505050506003860154600091508190608060020a90046001604060020a031681613521565b9050610f2e81611a12565b9050610f3b848285613813565b5b5b50505050565b6000806130996148e1565b6130a16148e1565b60008060008060006130b28a61340c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131685780601f1061313d57610100808354040283529160200191613168565b820191906000526020600020905b81548152906001019060200180831161314b57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132075780601f106131dc57610100808354040283529160200191613207565b820191906000526020600020905b8154815290600101906020018083116131ea57829003601f168201915b50505050600383015460048401549298506001604060020a038082169850604060020a8204169650608060020a900460ff16945050600160a060020a031691505b50919395975091939597565b600080805b8351831015610f3b576001604060020a0384848151811061327657fe5b90602001906020020151169150604060020a84848151811061329457fe5b906020019060200201518115156132a757fe5b0490506132b48282612f64565b5b600190920191613259565b5b50505050565b60006132d28661340c565b905060025b815460ff1660028111156132e757fe5b146132f157600080fd5b805433600160a060020a03908116610100909204161461331057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051613343929160200190614925565b5060028101838051613359929160200190614925565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b600254600160a060020a031681565b600080546001604060020a038316106133db57600080fd5b600080546001604060020a0384169081106133f257fe5b906000526020600020906004020160005b5090505b919050565b6001546000906001604060020a0383161061342657600080fd5b600180546001604060020a03841690811061343d57fe5b906000526020600020906005020160005b5090505b919050565b600080806001604060020a038416151561347457600092506129d0565b61347d846133c3565b6001810154909250613497906001604060020a031661340c565b905060005b815460ff1660028111156134ac57fe5b14156134ba578392506129d0565b60025b815460ff1660028111156134cd57fe5b146134d457fe5b60018201546134eb906001604060020a0316610d40565b15156134f9578392506129d0565b600382015461351790608060020a90046001604060020a0316613457565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561356f5780820151818401525b602001613556565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156135dc57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561364557809250613807565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a0383161790558154909190600181016136838382614a23565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156136f557fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051613740929160200190614a55565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a8360028111156137fb57fe5b02179055505050508092505b50509695505050505050565b6000806000613825600187878761441a565b9250846001604060020a0316866001604060020a0316141561384657612d0a565b82151561385257612d0a565b61385b866133c3565b9150613866856133c3565b82549091508390101561387857600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36138d3600087878661441a565b505b505050505050565b8060200151600160a060020a031633600160a060020a0316148061391657508060e00151600160a060020a031633600160a060020a0316145b151561392157600080fd5b5b50565b6000610f2e826000604051805910612c8f5750595b908082528060200260200182016040525b50600080600080613521565b9050610f3b848285613813565b5b50505050565b6000806000613979866133c3565b92506014613aad8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613a4757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a045790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613a9a57fe5b6002811115613aa557fe5b905250614442565b10613ab757600080fd5b613ac084610d40565b15613aca57600080fd5b6001830154600284018054613b82926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b1e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611adb5790505b505050506003870154600091508190608060020a90046001604060020a031681613521565b9150613bb4846000604051805910611b675750595b908082528060200260200182016040525b50600080866000613521565b9050612d0a868287613813565b5b505050505050565b600080613bd56148e1565b600080613be1886133c3565b6002810154909450869003604051805910613bf95750595b908082528060200260200182016040525b509250600091505b6002840154869003821015613c8a5760028401805483908110613c3157fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110613c6757fe5b6001604060020a039092166020928302909101909101525b600190910190613c12565b60018401546003850154613cba916001604060020a039081169186916000918291608060020a9091041681613521565b9050613cc7888289613813565b8094505b505050509392505050565b6000613ce06148e1565b600080613cec876133c3565b600281015490945060149010613d0157600080fd5b6002840154600101604051805910613d165750595b908082528060200260200182016040525b509250600091505b6002840154821015613da45760028401805483908110613d4b57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110613d8157fe5b6001604060020a039092166020928302909101909101525b600190910190613d2f565b60028401548590849081518110613db757fe5b6001604060020a039283166020918202909201015260018501546003860154613df3929182169186916000918291608060020a90041681613521565b90506138d3878288613813565b5b50505050505050565b6000805b836040015151811015613e5f57826001604060020a031684604001518281518110613e3557fe5b906020019060200201516001604060020a03161415613e5657809150613e6a565b5b600101613e0e565b6001604060020a0391505b5092915050565b600080613e7d856133c3565b91506014613fb18360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613a4757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a045790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613a9a57fe5b6002811115613aa557fe5b905250614442565b10613fbb57600080fd5b613fc483610d40565b15613fce57600080fd5b60018201546002830180546141be926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561406157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161401e5790505b5050505050856141978660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561413157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116140ee5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561418457fe5b600281111561418f57fe5b9052506145ad565b61419f6141d3565b6003880154910190608060020a90046001604060020a03166000613521565b905061134e858286613813565b5b5050505050565b425b90565b60008060025b835160028111156141eb57fe5b146141f257fe5b8260a001516001604060020a0316151561420f5760019150610dec565b61421c8360a0015161340c565b9050610de9816101006040519081016040528154909190829060ff166002811115611eae57fe5b6002811115611eb957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120275780601f10611ffc57610100808354040283529160200191612027565b820191906000526020600020905b81548152906001019060200180831161200a57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526141d8565b91505b50919050565b806144288585808685614640565b90506144378584868685614640565b90505b949350505050565b6000808260a001516001604060020a031615156144625760009150610dec565b61446f8360a001516133c3565b90506145a18160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613a4757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a045790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613a9a57fe5b6002811115613aa557fe5b905250614442565b60010191505b50919050565b60008060006145bf846020015161340c565b60038101546001604060020a031693509150600090505b8360400151518110156129d057614605846040015182815181106145f657fe5b9060200190602002015161340c565b60038101549092506001604060020a03168390111561462f5760038201546001604060020a031692505b5b6001016145d6565b5b5050919050565b600080600080866001604060020a0316886001604060020a0316146146675761010061466a565b60005b61ffff16925084935061467c886133c3565b600181015490925061469c908a906001604060020a031689898789614761565b9350600090505b60028201546001604060020a03821610156147195761470e8983600201836001604060020a03168154811015156146d657fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316898985880160010189614761565b93505b6001016146a3565b600382015460006001604060020a039091161115614754576003820154614751908a906001604060020a0316898960ff880189614761565b93505b5b50505095945050505050565b8060008061476e8861340c565b6004810154909150600160a060020a03161580159061478d5750600083115b15613807578815614848576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561481757600080fd5b6102c65a03f1151561482857600080fd5b50505060405180519250508282111561484057600080fd5b819250613807565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156148be57600080fd5b6102c65a03f115156148cf57600080fd5b5050505b5b5b50509695505050505050565b60206040519081016040526000815290565b81548183558181151161491f5760050281600502836000526020600020918201910161491f9190614b1f565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061496657805160ff1916838001178555614993565b82800160010185558215614993579182015b82811115614993578251825591602001919060010190614978565b5b506149a0929150614bb1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061496657805160ff1916838001178555614993565b82800160010185558215614993579182015b82811115614993578251825591602001919060010190614978565b5b506149a0929150614bb1565b5090565b81548183558181151161491f5760040281600402836000526020600020918201910161491f9190614bd2565b5b505050565b82805482825590600052602060002090600301600490048101928215614afd5791602002820160005b83821115614ac857835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302614a7e565b8015614afb5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302614ac8565b505b506149a0929150614c39565b5090565b60206040519081016040526000815290565b610dfa91905b808211156149a057805474ffffffffffffffffffffffffffffffffffffffffff191681556000614b586001830182614c65565b614b66600283016000614c65565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501614b25565b5090565b90565b610dfa91905b808211156149a05760008155600101614bb7565b5090565b90565b610dfa91905b808211156149a057600080825560018201805467ffffffffffffffff19169055614c056002830182614cad565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614bd8565b5090565b90565b610dfa91905b808211156149a057805467ffffffffffffffff19168155600101614c3f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10614c8b5750613921565b601f0160209004906000526020600020908101906139219190614bb1565b5b50565b5080546000825560030160049004906000526020600020908101906139219190614bb1565b5b505600a165627a7a723058202c436915f1bd792a6b40b5d1db7f01634d3820158d9a722453660e07b6fba7850029" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001fb4833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000255565b8154818355818115116200009957600502816005028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000148565b5b505050565b6200014591905b8082111562000141578054600160a860020a03191681556000620001036001830182620001ba565b62000113600283016000620001ba565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000db565b5090565b90565b6200014591905b808211156200014157600080825560018201805467ffffffffffffffff191690556200017f600283018262000206565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001e2575062000202565b601f01602090049060005260206000209081019062000202919062000231565b5b50565b50805460008255600301600490049060005260206000209081019062000202919062000231565b5b50565b6200014591905b8082111562000141576000815560010162000238565b5090565b90565b611d4f80620002656000396000f300606060405236156100c25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c75780632101a6ad146101835780632a8ec8cc146101b75780633f657a46146101dc57806352dc7dcc1461025c5780635503d9ba1461032657806372116e921461034b5780637f61fa9314610425578063cc19ecf7146104ef578063db7c2314146105ae578063eba8ba061461066d578063f6b24b1c146107c7578063fbfa77cf14610886575b600080fd5b34156100d257600080fd5b6100ea67ffffffffffffffff600435166024356108b5565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101465780820151818401525b60200161012d565b50505050905090810190601f1680156101735780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018e57600080fd5b6101a367ffffffffffffffff600435166109dd565b604051901515815260200160405180910390f35b34156101c257600080fd5b6101ca610a9b565b60405190815260200160405180910390f35b34156101e757600080fd5b6101fc67ffffffffffffffff60043516610aa6565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024257fe5b60ff16815260200197505050505050505060405180910390f35b341561026757600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610b2e915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033157600080fd5b6101ca610d24565b60405190815260200160405180910390f35b341561035657600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d2f9050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561043057600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a0316925061116b915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156104fa57600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611360915050565b005b34156105b957600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061144e915050565b005b341561067857600080fd5b61068d67ffffffffffffffff6004351661153c565b6040518089600281111561069d57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156107205780820151818401525b602001610707565b50505050905090810190601f16801561074d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156107845780820151818401525b60200161076b565b50505050905090810190601f1680156107b15780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34156107d257600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611708915050565b005b341561089157600080fd5b6108996117f6565b604051600160a060020a03909116815260200160405180910390f35b6000806108c0611ae6565b6000806108cc87611805565b915081600201600187038154811015156108e257fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff16945061091885611850565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109cc5780601f106109a1576101008083540402835291602001916109cc565b820191906000526020600020905b8154815290600101906020018083116109af57829003601f168201915b505050505092505b50509250925092565b6000806109e983611850565b905060005b815460ff1660028111156109fe57fe5b1415610a0d5760009150610a95565b60025b815460ff166002811115610a2057fe5b14610a2757fe5b6003810154608060020a900460ff1615610a445760019150610a95565b600381015468010000000000000000900467ffffffffffffffff161515610a6e5760009150610a95565b6003810154610a929068010000000000000000900467ffffffffffffffff166109dd565b91505b50919050565b600054600019015b90565b600080600080600080600080610abb89611805565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b600180549081808201610b418382611af8565b916000526020600020906005020160005b6101006040519081016040528060015b8152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610bc357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610c09929160200190611b2a565b50606082015181600201908051610c24929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b949350505050565b600154600019015b90565b60008067ffffffffffffffff851615610f6f57610d4b85611850565b905060025b815460ff166002811115610d6057fe5b14610d6a57600080fd5b6014610f65826101006040519081016040528154909190829060ff166002811115610d9157fe5b6002811115610d9c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f0a5780601f10610edf57610100808354040283529160200191610f0a565b820191906000526020600020905b815481529060010190602001808311610eed57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261189d565b10610f6f57600080fd5b5b60018054925082808201610f848382611af8565b916000526020600020906005020160005b6101006040519081016040528060025b8152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561100757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161104d929160200190611b2a565b50606082015181600201908051611068929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b509695505050505050565b60018054908180820161117e8382611af8565b916000526020600020906005020160005b6101006040519081016040528060005b8152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561120057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611246929160200190611b2a565b50606082015181600201908051611261929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a25b949350505050565b600061136b86611850565b905060015b815460ff16600281111561138057fe5b1461138a57600080fd5b805433600160a060020a0390811661010090920416146113a957600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113dc929160200190611b2a565b50600281018380516113f2929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600061145986611850565b905060005b815460ff16600281111561146e57fe5b1461147857600080fd5b805433600160a060020a03908116610100909204161461149757600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114ca929160200190611b2a565b50600281018380516114e0929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25b505050505050565b600080611547611ae6565b61154f611ae6565b60008060008060006115608a611850565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156116165780601f106115eb57610100808354040283529160200191611616565b820191906000526020600020905b8154815290600101906020018083116115f957829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116b55780601f1061168a576101008083540402835291602001916116b5565b820191906000526020600020905b81548152906001019060200180831161169857829003601f168201915b505050506003830154600484015492985067ffffffffffffffff8082169850680100000000000000008204169650608060020a900460ff16945050600160a060020a031691505b50919395975091939597565b600061171386611850565b905060025b815460ff16600281111561172857fe5b1461173257600080fd5b805433600160a060020a03908116610100909204161461175157600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611784929160200190611b2a565b506002810183805161179a929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff83161061181e57600080fd5b6000805467ffffffffffffffff841690811061183657fe5b906000526020600020906004020160005b5090505b919050565b60015460009067ffffffffffffffff83161061186b57600080fd5b6001805467ffffffffffffffff841690811061188357fe5b906000526020600020906005020160005b5090505b919050565b60008060025b835160028111156118b057fe5b146118b757fe5b8260a0015167ffffffffffffffff1615156118d55760019150610a95565b6118e28360a00151611850565b9050610a92816101006040519081016040528154909190829060ff166002811115610d9157fe5b6002811115610d9c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f0a5780601f10610edf57610100808354040283529160200191610f0a565b820191906000526020600020905b815481529060010190602001808311610eed57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261189d565b91505b50919050565b60206040519081016040526000815290565b815481835581811511611b2457600502816005028360005260206000209182019101611b249190611c28565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b6b57805160ff1916838001178555611b98565b82800160010185558215611b98579182015b82811115611b98578251825591602001919060010190611b7d565b5b50611ba5929150611cba565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b6b57805160ff1916838001178555611b98565b82800160010185558215611b98579182015b82811115611b98578251825591602001919060010190611b7d565b5b50611ba5929150611cba565b5090565b610aa391905b80821115611ba557805474ffffffffffffffffffffffffffffffffffffffffff191681556000611c616001830182611cdb565b611c6f600283016000611cdb565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611c2e565b5090565b90565b610aa391905b80821115611ba55760008155600101611cc0565b5090565b90565b50805460018160011615610100020316600290046000825580601f10611d015750611d1f565b601f016020900490600052602060002090810190611d1f9190611cba565b5b505600a165627a7a72305820a55ae68922ba313e34ff78d19cf73d0f517bf9c973505ad242c28d16f46005600029" -exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434583398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140fa806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061232295505050505050565b6102726001604060020a036004358116906024351661236d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124d7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125c2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061262f915050565b34156108d657600080fd5b6102726001604060020a036004351660243561271a565b34156108f857600080fd5b61090c6001604060020a036004351661282e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129f395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a5e915050565b3415610b5857600080fd5b610b60612b49565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d9a565b600080610b9387612b58565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b9c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b9c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b58565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612be2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612ca8565b9050610e99848285612f98565b50505050565b600080600080600080600080610eb489612b58565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b58565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b9c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613061565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612ca8565b9050611217858286612f98565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b58565b94506112ce86612b9c565b93506112d989612b9c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130a8565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130d8565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613301565b9750611361888888613406565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61352d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613301565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761352d565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613301565b818111156116e7576113b3888860018589600201805490500303613301565b8181116113c25761154e888860018489600201805490500303613301565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613301565b97506113c2888888613593565b505050505050505050565b60008060008061175b85612b58565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b6565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612ca8565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612ca8565b90506118cd85828560000154612f98565b8094506118d985612b58565b92505b6118e585612be2565b90506001604060020a03808216908616146119095761190985828560000154612f98565b8093505b505050919050565b6001805490818082016119288382613dac565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddd565b50606082015181600201908051611a08929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b9c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138ba565b10611db057600080fd5b60018054925082808201611dc48382613dac565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddd565b50606082015181600201908051611ea5929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b9c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dac565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddd565b50606082015181600201908051612124929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b58565b6003810154909250608060020a90046001604060020a031615156122c357600080fd5b60018201546122da906001604060020a0316612b9c565b9050612301816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f98565b600080805b8351821015612366576001604060020a0384838151811061234457fe5b9060200190602002015116905061235a8161174c565b50600190910190612327565b5050919050565b60008080806001604060020a03861615156123b3576123b06020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123bc86612b9c565b93506123e3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123f557fe5b146123ff57600080fd5b3492506000831161240f57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561244257600080fd5b6124718660006040518059106124555750595b9080825280602002602001820160405250600080600080612ca8565b915061247c82612b58565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124cf868385886112a7565b505050505050565b60006124e286612b9c565b90506001815460ff1660028111156124f657fe5b1461250057600080fd5b805433600160a060020a03908116610100909204161461251f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612552929160200190613ddd565b5060028101838051612568929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124cf576001604060020a038584815181106125e457fe5b90602001906020020151169150604060020a85848151811061260257fe5b9060200190602002015181151561261557fe5b049050612624868383876112a7565b6001909201916125c7565b600061263a86612b9c565b90506000815460ff16600281111561264e57fe5b1461265857600080fd5b805433600160a060020a03908116610100909204161461267757600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126aa929160200190613ddd565b50600281018380516126c0929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273a57600080fd5b61274384612b58565b91506001600383015460c060020a900460ff16600281111561276157fe5b1461276b57600080fd5b6001820154600283018054612823926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127fe57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127bb5790505b505050506003860154600091508190608060020a90046001604060020a031681612ca8565b9050610e8c8161174c565b600080612839613d9a565b612841613d9a565b60008060008060006128528a612b9c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a75780601f1061297c576101008083540402835291602001916129a7565b820191906000526020600020905b81548152906001019060200180831161298a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a1557fe5b90602001906020020151169150604060020a848481518110612a3357fe5b90602001906020020151811515612a4657fe5b049050612a53828261271a565b6001909201916129f8565b6000612a6986612b9c565b90506002815460ff166002811115612a7d57fe5b14612a8757600080fd5b805433600160a060020a039081166101009092041614612aa657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad9929160200190613ddd565b5060028101838051612aef929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b7057600080fd5b600080546001604060020a038416908110612b8757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb657600080fd5b600180546001604060020a038416908110612bcd57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bff5760009250612366565b612c0884612b58565b6001810154909250612c22906001604060020a0316612b9c565b90506000815460ff166002811115612c3657fe5b1415612c4457839250612366565b6002815460ff166002811115612c5657fe5b14612c5d57fe5b6001820154612c74906001604060020a0316610ca1565b1515612c8257839250612366565b6003820154612ca090608060020a90046001604060020a0316612be2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cf5578082015183820152602001612cdd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d6257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dcb57809250612f8c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e098382613e5b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e7a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ec5929160200190613e87565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f8057fe5b02179055505050508092505b50509695505050505050565b6000806000612faa6001878787613924565b9250846001604060020a0316866001604060020a03161415612fcb576124cf565b821515612fd7576124cf565b612fe086612b58565b9150612feb85612b58565b825490915083901015612ffd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130586000878786613924565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061309a57508060e00151600160a060020a031633600160a060020a0316145b15156130a557600080fd5b50565b6000610e8c8260006040518059106124555750599080825280602002602001820160405250600080600080612ca8565b60008060006130e686612b58565b9250601461321a8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131715790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b600281111561321257fe5b90525061394a565b1061322457600080fd5b61322d84610ca1565b1561323757600080fd5b60018301546002840180546132c4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612ca8565b91506132f48460006040518059106118a05750599080825280602002602001820160405250600080866000612ca8565b90506124cf868287612f98565b60008061330c613d9a565b60008061331888612b58565b60028101549094508690036040518059106133305750595b90808252806020026020018201604052509250600091505b60028401548690038210156133be576002840180548390811061336757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061339c57fe5b6001604060020a03909216602092830290910190910152600190910190613348565b600184015460038501546133ee916001604060020a039081169186916000918291608060020a9091041681612ca8565b90506133fb888289612f98565b979650505050505050565b6000613410613d9a565b60008061341c87612b58565b60028101549094506014901061343157600080fd5b60028401546001016040518059106134465750595b90808252806020026020018201604052509250600091505b60028401548210156134d1576002840180548390811061347a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134af57fe5b6001604060020a0390921660209283029091019091015260019091019061345e565b600284015485908490815181106134e457fe5b6001604060020a039283166020918202909201015260018501546003860154613520929182169186916000918291608060020a90041681612ca8565b9050613058878288612f98565b6000805b83604001515181101561358157826001604060020a03168460400151828151811061355857fe5b906020019060200201516001604060020a031614156135795780915061358c565b600101613531565b6001604060020a0391505b5092915050565b60008061359f85612b58565b915060146136958360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b1061369f57600080fd5b6136a883610ca1565b156136b257600080fd5b60018201546002830180546138a2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561374557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137025790505b50505050508561387b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561381557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137d25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561386857fe5b600281111561387357fe5b905250613a75565b6138836138b6565b6003880154910190608060020a90046001604060020a03166000612ca8565b90506138af858286612f98565b5050505050565b4290565b6000806002835160028111156138cc57fe5b146138d357fe5b8260a001516001604060020a031615156138f05760019150610d4b565b6138fd8360a00151612b9c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139328585808685613aff565b90506139418584868685613aff565b95945050505050565b6000808260a001516001604060020a0316151561396a5760009150610d4b565b6139778360a00151612b58565b9050613a6b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b6001019392505050565b6000806000613a878460200151612b9c565b60038101546001604060020a031693509150600090505b83604001515181101561236657613acd84604001518281518110613abe57fe5b90602001906020020151612b9c565b60038101549092506001604060020a031683901115613af75760038201546001604060020a031692505b600101613a9e565b600080600080866001604060020a0316886001604060020a031614613b2657610100613b29565b60005b61ffff169250849350613b3b88612b58565b6001810154909250613b5b908a906001604060020a031689898789613c1d565b9350600090505b60028201546001604060020a0382161015613bd657613bcc8983600201836001604060020a0316815481101515613b9557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1d565b9350600101613b62565b600382015460006001604060020a039091161115613c11576003820154613c0e908a906001604060020a0316898960ff880189613c1d565b93505b50505095945050505050565b80600080613c2a88612b9c565b6004810154909150600160a060020a031615801590613c495750600083115b15612f8c578815613d04576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805192505082821115613cfc57600080fd5b819250612f8c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7a57600080fd5b6102c65a03f11515613d8b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd857600502816005028360005260206000209182019101613dd89190613f3b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1e57805160ff1916838001178555613e4b565b82800160010185558215613e4b579182015b82811115613e4b578251825591602001919060010190613e30565b50613e57929150613fc6565b5090565b815481835581811511613dd857600402816004028360005260206000209182019101613dd89190613fe0565b82805482825590600052602060002090600301600490048101928215613f2f5791602002820160005b83821115613efa57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eb0565b8015613f2d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613efa565b505b50613e57929150614040565b610d5991905b80821115613e5757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f746001830182614065565b613f82600283016000614065565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f41565b610d5991905b80821115613e575760008155600101613fcc565b610d5991905b80821115613e5757600080825560018201805467ffffffffffffffff1916905561401360028301826140a9565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe6565b610d5991905b80821115613e5757805467ffffffffffffffff19168155600101614046565b50805460018160011615610100020316600290046000825580601f1061408b57506130a5565b601f0160209004906000526020600020908101906130a59190613fc6565b5080546000825560030160049004906000526020600020908101906130a59190613fc65600a165627a7a7230582013fe100f806fdce84031ba3b8c5601b70428706b64de2cd2f9f7eaf5100dfdb80029" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582090cd89169d3193d442dda8b8361da3b36c6aae048b490bbe84f1e36baaf059dd0029" +exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" -exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0x3719452f967025bd63183ec6e8e365cbb4558eb6426dba7749a47ab2d8ba80e0" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" +exports._sha256 = "0x33f930761a26fab0c07448cb4d99e71c442a818af41057250b6672288937f78b" diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js index 5768643..ebddda1 100644 --- a/build/LiquidPledgingBase.sol.js +++ b/build/LiquidPledgingBase.sol.js @@ -1,10 +1,10 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001fb4833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000255565b8154818355818115116200009957600502816005028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000148565b5b505050565b6200014591905b8082111562000141578054600160a860020a03191681556000620001036001830182620001ba565b62000113600283016000620001ba565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000db565b5090565b90565b6200014591905b808211156200014157600080825560018201805467ffffffffffffffff191690556200017f600283018262000206565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001e2575062000202565b601f01602090049060005260206000209081019062000202919062000231565b5b50565b50805460008255600301600490049060005260206000209081019062000202919062000231565b5b50565b6200014591905b8082111562000141576000815560010162000238565b5090565b90565b611d4f80620002656000396000f300606060405236156100c25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c75780632101a6ad146101835780632a8ec8cc146101b75780633f657a46146101dc57806352dc7dcc1461025c5780635503d9ba1461032657806372116e921461034b5780637f61fa9314610425578063cc19ecf7146104ef578063db7c2314146105ae578063eba8ba061461066d578063f6b24b1c146107c7578063fbfa77cf14610886575b600080fd5b34156100d257600080fd5b6100ea67ffffffffffffffff600435166024356108b5565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101465780820151818401525b60200161012d565b50505050905090810190601f1680156101735780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018e57600080fd5b6101a367ffffffffffffffff600435166109dd565b604051901515815260200160405180910390f35b34156101c257600080fd5b6101ca610a9b565b60405190815260200160405180910390f35b34156101e757600080fd5b6101fc67ffffffffffffffff60043516610aa6565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024257fe5b60ff16815260200197505050505050505060405180910390f35b341561026757600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610b2e915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033157600080fd5b6101ca610d24565b60405190815260200160405180910390f35b341561035657600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d2f9050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561043057600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a0316925061116b915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156104fa57600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611360915050565b005b34156105b957600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061144e915050565b005b341561067857600080fd5b61068d67ffffffffffffffff6004351661153c565b6040518089600281111561069d57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156107205780820151818401525b602001610707565b50505050905090810190601f16801561074d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156107845780820151818401525b60200161076b565b50505050905090810190601f1680156107b15780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34156107d257600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611708915050565b005b341561089157600080fd5b6108996117f6565b604051600160a060020a03909116815260200160405180910390f35b6000806108c0611ae6565b6000806108cc87611805565b915081600201600187038154811015156108e257fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff16945061091885611850565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109cc5780601f106109a1576101008083540402835291602001916109cc565b820191906000526020600020905b8154815290600101906020018083116109af57829003601f168201915b505050505092505b50509250925092565b6000806109e983611850565b905060005b815460ff1660028111156109fe57fe5b1415610a0d5760009150610a95565b60025b815460ff166002811115610a2057fe5b14610a2757fe5b6003810154608060020a900460ff1615610a445760019150610a95565b600381015468010000000000000000900467ffffffffffffffff161515610a6e5760009150610a95565b6003810154610a929068010000000000000000900467ffffffffffffffff166109dd565b91505b50919050565b600054600019015b90565b600080600080600080600080610abb89611805565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b600180549081808201610b418382611af8565b916000526020600020906005020160005b6101006040519081016040528060015b8152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610bc357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610c09929160200190611b2a565b50606082015181600201908051610c24929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b949350505050565b600154600019015b90565b60008067ffffffffffffffff851615610f6f57610d4b85611850565b905060025b815460ff166002811115610d6057fe5b14610d6a57600080fd5b6014610f65826101006040519081016040528154909190829060ff166002811115610d9157fe5b6002811115610d9c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f0a5780601f10610edf57610100808354040283529160200191610f0a565b820191906000526020600020905b815481529060010190602001808311610eed57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261189d565b10610f6f57600080fd5b5b60018054925082808201610f848382611af8565b916000526020600020906005020160005b6101006040519081016040528060025b8152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561100757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161104d929160200190611b2a565b50606082015181600201908051611068929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b509695505050505050565b60018054908180820161117e8382611af8565b916000526020600020906005020160005b6101006040519081016040528060005b8152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561120057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611246929160200190611b2a565b50606082015181600201908051611261929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a25b949350505050565b600061136b86611850565b905060015b815460ff16600281111561138057fe5b1461138a57600080fd5b805433600160a060020a0390811661010090920416146113a957600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113dc929160200190611b2a565b50600281018380516113f2929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600061145986611850565b905060005b815460ff16600281111561146e57fe5b1461147857600080fd5b805433600160a060020a03908116610100909204161461149757600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114ca929160200190611b2a565b50600281018380516114e0929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25b505050505050565b600080611547611ae6565b61154f611ae6565b60008060008060006115608a611850565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156116165780601f106115eb57610100808354040283529160200191611616565b820191906000526020600020905b8154815290600101906020018083116115f957829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116b55780601f1061168a576101008083540402835291602001916116b5565b820191906000526020600020905b81548152906001019060200180831161169857829003601f168201915b505050506003830154600484015492985067ffffffffffffffff8082169850680100000000000000008204169650608060020a900460ff16945050600160a060020a031691505b50919395975091939597565b600061171386611850565b905060025b815460ff16600281111561172857fe5b1461173257600080fd5b805433600160a060020a03908116610100909204161461175157600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611784929160200190611b2a565b506002810183805161179a929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff83161061181e57600080fd5b6000805467ffffffffffffffff841690811061183657fe5b906000526020600020906004020160005b5090505b919050565b60015460009067ffffffffffffffff83161061186b57600080fd5b6001805467ffffffffffffffff841690811061188357fe5b906000526020600020906005020160005b5090505b919050565b60008060025b835160028111156118b057fe5b146118b757fe5b8260a0015167ffffffffffffffff1615156118d55760019150610a95565b6118e28360a00151611850565b9050610a92816101006040519081016040528154909190829060ff166002811115610d9157fe5b6002811115610d9c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f0a5780601f10610edf57610100808354040283529160200191610f0a565b820191906000526020600020905b815481529060010190602001808311610eed57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261189d565b91505b50919050565b60206040519081016040526000815290565b815481835581811511611b2457600502816005028360005260206000209182019101611b249190611c28565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b6b57805160ff1916838001178555611b98565b82800160010185558215611b98579182015b82811115611b98578251825591602001919060010190611b7d565b5b50611ba5929150611cba565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b6b57805160ff1916838001178555611b98565b82800160010185558215611b98579182015b82811115611b98578251825591602001919060010190611b7d565b5b50611ba5929150611cba565b5090565b610aa391905b80821115611ba557805474ffffffffffffffffffffffffffffffffffffffffff191681556000611c616001830182611cdb565b611c6f600283016000611cdb565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611c2e565b5090565b90565b610aa391905b80821115611ba55760008155600101611cc0565b5090565b90565b50805460018160011615610100020316600290046000825580601f10611d015750611d1f565b601f016020900490600052602060002090810190611d1f9190611cba565b5b505600a165627a7a723058205e4b440a7a8060d5a055c4d8482d6fdb46539ad21e4c5923d38afe99fa37fd2f0029" -exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a723058201215bea8f006cb5c585a0631fcee8b723cd2817899dce7f4f50fcdf5cc157e480029" +exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" -exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" exports._sha256 = "0x4015d9fdc97a031838e6efed18f8963efc7f634dfd0f0c3a0077ef4dec1ada6b" diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js index b2647ac..2b482df 100644 --- a/build/LiquidPledgingMock.sol.js +++ b/build/LiquidPledgingMock.sol.js @@ -1,14 +1,14 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b60405160208062004f6b833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000259565b8154818355818115116200009d576005028160050283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200014c565b5b505050565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001be565b62000117600283016000620001be565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff191690556200018360028301826200020a565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001e6575062000206565b601f01602090049060005260206000209081019062000206919062000235565b5b50565b50805460008255600301600490049060005260206000209081019062000206919062000235565b5b50565b6200014991905b808211156200014557600081556001016200023c565b5090565b90565b614d0280620002696000396000f300606060405236156101385763ffffffff60e060020a60003504166314e7b1dc811461013d5780632101a6ad146101f75780632a8ec8cc1461022a5780632ee888081461024f5780633f657a461461027357806343387983146102f157806347c5ef431461031557806350f8a8031461034657806352dc7dcc146103815780635503d9ba1461044957806357adafb61461046e57806372116e92146104bf578063796d5654146105975780637f61fa93146105b85780639398f5a214610680578063af9f4563146106d1578063bce0906d146106f5578063bde60ac914610760578063cc19ecf71461077c578063d639cd7314610839578063db7c2314146108a3578063e9c211e214610960578063eba8ba0614610984578063ef3766e414610adc578063f6b24b1c14610b2d578063fbfa77cf14610bea575b600080fd5b341561014857600080fd5b61015f6001604060020a0360043516602435610c19565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ba5780820151818401525b6020016101a1565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020257600080fd5b6102166001604060020a0360043516610d40565b604051901515815260200160405180910390f35b341561023557600080fd5b61023d610df2565b60405190815260200160405180910390f35b341561025a57600080fd5b6102716001604060020a0360043516602435610dfd565b005b341561027e57600080fd5b6102926001604060020a0360043516610f43565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d757fe5b60ff16815260200197505050505050505060405180910390f35b34156102fc57600080fd5b6102716001604060020a0360043516602435610fb0565b005b341561032057600080fd5b6102716001604060020a036004358116906024358116906044359060643516611355565b005b341561035157600080fd5b6103656001604060020a0360043516611a12565b6040516001604060020a03909116815260200160405180910390f35b341561038c57600080fd5b61036560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611bde915050565b6040516001604060020a03909116815260200160405180910390f35b341561045457600080fd5b61023d611dcf565b60405190815260200160405180910390f35b341561047957600080fd5b6102716004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611dda95505050505050565b005b34156104ca57600080fd5b61036560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611e4d9050565b6040516001604060020a03909116815260200160405180910390f35b34156105a257600080fd5b6102716001604060020a036004351661227d565b005b34156105c357600080fd5b61036560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124da915050565b6040516001604060020a03909116815260200160405180910390f35b341561068b57600080fd5b61027160046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506126ca95505050505050565b005b34156106dc57600080fd5b6102716001604060020a036004351660243561273d565b005b341561070057600080fd5b610365600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061298b95505050505050565b6040516001604060020a03909116815260200160405180910390f35b6102716001604060020a03600435811690602435166129d8565b005b341561078757600080fd5b610271600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612d13915050565b005b341561084457600080fd5b610271600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612e00915050565b005b34156108ae57600080fd5b610271600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612e77915050565b005b341561096b57600080fd5b6102716001604060020a0360043516602435612f64565b005b341561098f57600080fd5b6109a36001604060020a036004351661308e565b604051808960028111156109b357fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610a355780820151818401525b602001610a1c565b50505050905090810190601f168015610a625780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a995780820151818401525b602001610a80565b50505050905090810190601f168015610ac65780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610ae757600080fd5b610271600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061325495505050505050565b005b3415610b3857600080fd5b610271600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506132c7915050565b005b3415610bf557600080fd5b610bfd6133b4565b604051600160a060020a03909116815260200160405180910390f35b600080610c246148e1565b600080610c30876133c3565b91508160020160018703815481101515610c4657fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03169450610c7b8561340c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d2f5780601f10610d0457610100808354040283529160200191610d2f565b820191906000526020600020905b815481529060010190602001808311610d1257829003601f168201915b505050505092505b50509250925092565b600080610d4c8361340c565b905060005b815460ff166002811115610d6157fe5b1415610d705760009150610dec565b60025b815460ff166002811115610d8357fe5b14610d8a57fe5b6003810154608060020a900460ff1615610da75760019150610dec565b6003810154604060020a90046001604060020a03161515610dcb5760009150610dec565b6003810154610de990604060020a90046001604060020a0316610d40565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610e1d57600080fd5b610e26846133c3565b915060015b600383015460c060020a900460ff166002811115610e4557fe5b14610e4f57600080fd5b836001604060020a0316610e6285613457565b6001604060020a031614610e7557600080fd5b6001820154600283018054610f2e926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f0857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610ec55790505b505050506003860154600091508190608060020a90046001604060020a03166002613521565b9050610f3b848285613813565b5b5b50505050565b600080600080600080600080610f58896133c3565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b6000806000610fbe85611a12565b9450610fc9856133c3565b925060005b600384015460c060020a900460ff166002811115610fe857fe5b14610ff257600080fd5b6001830154611009906001604060020a031661340c565b91506111fe826101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60018301546002840180546112b7926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561129157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161124e5790505b505050506003870154600091508190608060020a90046001604060020a03166001613521565b90506112c4858286613813565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561133957600080fd5b6102c65a03f1151561134a57600080fd5b5050505b5050505050565b600080600080600061136688611a12565b9750611371886133c3565b945061137c8661340c565b93506113878961340c565b925061157c836101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60005b600386015460c060020a900460ff16600281111561159957fe5b146115a357600080fd5b60018501546001604060020a038a8116911614156116545760005b845460ff1660028111156115ce57fe5b14156115e4576115df888888613925565b61164c565b60025b845460ff1660028111156115f757fe5b141561160d576115df88888861396b565b61164c565b60015b845460ff16600281111561162057fe5b141561164a5761163888888760020180549050613bca565b97506115df888888613cd6565b61164c565bfe5b5b5b5b611a06565b6117858560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116db5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561177157fe5b600281111561177c57fe5b9052508a613e0a565b6001604060020a039081169250821461164a5760005b845460ff1660028111156117ab57fe5b14156117e25760018501546001604060020a038781169116146117ca57fe5b6117dc88888760020180549050613bca565b50611a06565b60015b845460ff1660028111156117f557fe5b14156119c15761192c8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118c557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118825790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561191857fe5b600281111561192357fe5b90525087613e0a565b6001604060020a03908116915081141561196957611638888860018589600201805490500303613bca565b97506115df888888613cd6565b61164c565b8181111561199a57611638888860018589600201805490500303613bca565b97506115df888888613cd6565b61164c565b81811161164c576117dc888860018489600201805490500303613bca565b505b5b5b611a06565b60025b845460ff1660028111156119d457fe5b141561164a576119f1888860018589600201805490500303613bca565b975061164c888888613e71565b611a06565b5bfe5b5b505050505050505050565b600080600080611a21856133c3565b925060005b600384015460c060020a900460ff166002811115611a4057fe5b14611a4d57849350611bd6565b600383015460006001604060020a03909116118015611a8657506003830154604060020a90046001604060020a0316611a846141d3565b115b15611ba4576001830154600284018054611b43926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b1e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611adb5790505b505050506003870154600091508190608060020a90046001604060020a031681613521565b6003840154909250611b84906001604060020a03166000604051805910611b675750595b908082528060200260200182016040525b50600080866000613521565b9050611b9585828560000154613813565b809450611ba1856133c3565b92505b611bad85613457565b90506001604060020a0380821690861614611bd157611bd185828560000154613813565b5b8093505b505050919050565b600180549081808201611bf183826148f3565b916000526020600020906005020160005b6101006040519081016040528060015b8152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c7257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cb8929160200190614925565b50606082015181600201908051611cd3929160200190614925565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b949350505050565b600154600019015b90565b600080805b8351831015610f3b576001604060020a03848481518110611dfc57fe5b90602001906020020151169150604060020a848481518110611e1a57fe5b90602001906020020151811515611e2d57fe5b049050611e3a8282610fb0565b5b600190920191611ddf565b5b50505050565b6000806001604060020a0385161561208657611e688561340c565b905060025b815460ff166002811115611e7d57fe5b14611e8757600080fd5b601461207c826101006040519081016040528154909190829060ff166002811115611eae57fe5b6002811115611eb957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120275780601f10611ffc57610100808354040283529160200191612027565b820191906000526020600020905b81548152906001019060200180831161200a57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526141d8565b1061208657600080fd5b5b6001805492508280820161209b83826148f3565b916000526020600020906005020160005b6101006040519081016040528060025b8152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561211d57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612163929160200190614925565b5060608201518160020190805161217e929160200190614925565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b509695505050505050565b60006122888261340c565b905061247d816101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25b5050565b6001805490818082016124ed83826148f3565b916000526020600020906005020160005b6101006040519081016040528060005b8152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125b4929160200190614925565b506060820151816002019080516125cf929160200190614925565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a25b949350505050565b600080805b8351831015610f3b576001604060020a038484815181106126ec57fe5b90602001906020020151169150604060020a84848151811061270a57fe5b9060200190602002015181151561271d57fe5b04905061272a8282610dfd565b5b6001909201916126cf565b5b50505050565b60008061274984611a12565b9350612754846133c3565b600181015490925061276e906001604060020a031661340c565b9050612963816101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b6003820154610f3b908590608060020a90046001604060020a031685613813565b5b50505050565b600080805b83518210156129d0576001604060020a038483815181106129ad57fe5b906020019060200201511690506129c381611a12565b505b600190910190612990565b5b5050919050565b60008080806001604060020a0386161515612a1e57612a1b6020604051908101604052806000815250602060405190810160405260008082526203f480906124da565b95505b612a278661340c565b9350612c1c846101006040519081016040528154909190829060ff16600281111561103057fe5b600281111561103b57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111075780601f106110dc57610100808354040283529160200191611107565b820191906000526020600020905b8154815290600101906020018083116110ea57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138dd565b60005b845460ff166002811115612c2f57fe5b14612c3957600080fd5b34925060008311612c4957600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515612c7c57600080fd5b612cac866000604051805910612c8f5750595b908082528060200260200182016040525b50600080600080613521565b9150612cb7826133c3565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612d0a86838588611355565b5b505050505050565b6000612d1e8661340c565b905060015b815460ff166002811115612d3357fe5b14612d3d57600080fd5b805433600160a060020a039081166101009092041614612d5c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612d8f929160200190614925565b5060028101838051612da5929160200190614925565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8451831015612d0a576001604060020a03858481518110612e2257fe5b90602001906020020151169150604060020a858481518110612e4057fe5b90602001906020020151811515612e5357fe5b049050612e6286838387611355565b5b600190920191612e05565b5b505050505050565b6000612e828661340c565b905060005b815460ff166002811115612e9757fe5b14612ea157600080fd5b805433600160a060020a039081166101009092041614612ec057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ef3929160200190614925565b5060028101838051612f09929160200190614925565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25b505050505050565b600254600090819033600160a060020a03908116911614612f8457600080fd5b612f8d846133c3565b915060015b600383015460c060020a900460ff166002811115612fac57fe5b14612fb657600080fd5b600182015460028301805461306e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561304957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130065790505b505050506003860154600091508190608060020a90046001604060020a031681613521565b9050610f2e81611a12565b9050610f3b848285613813565b5b5b50505050565b6000806130996148e1565b6130a16148e1565b60008060008060006130b28a61340c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131685780601f1061313d57610100808354040283529160200191613168565b820191906000526020600020905b81548152906001019060200180831161314b57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132075780601f106131dc57610100808354040283529160200191613207565b820191906000526020600020905b8154815290600101906020018083116131ea57829003601f168201915b50505050600383015460048401549298506001604060020a038082169850604060020a8204169650608060020a900460ff16945050600160a060020a031691505b50919395975091939597565b600080805b8351831015610f3b576001604060020a0384848151811061327657fe5b90602001906020020151169150604060020a84848151811061329457fe5b906020019060200201518115156132a757fe5b0490506132b48282612f64565b5b600190920191613259565b5b50505050565b60006132d28661340c565b905060025b815460ff1660028111156132e757fe5b146132f157600080fd5b805433600160a060020a03908116610100909204161461331057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051613343929160200190614925565b5060028101838051613359929160200190614925565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b600254600160a060020a031681565b600080546001604060020a038316106133db57600080fd5b600080546001604060020a0384169081106133f257fe5b906000526020600020906004020160005b5090505b919050565b6001546000906001604060020a0383161061342657600080fd5b600180546001604060020a03841690811061343d57fe5b906000526020600020906005020160005b5090505b919050565b600080806001604060020a038416151561347457600092506129d0565b61347d846133c3565b6001810154909250613497906001604060020a031661340c565b905060005b815460ff1660028111156134ac57fe5b14156134ba578392506129d0565b60025b815460ff1660028111156134cd57fe5b146134d457fe5b60018201546134eb906001604060020a0316610d40565b15156134f9578392506129d0565b600382015461351790608060020a90046001604060020a0316613457565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561356f5780820151818401525b602001613556565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156135dc57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561364557809250613807565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a0383161790558154909190600181016136838382614a23565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156136f557fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051613740929160200190614a55565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a8360028111156137fb57fe5b02179055505050508092505b50509695505050505050565b6000806000613825600187878761441a565b9250846001604060020a0316866001604060020a0316141561384657612d0a565b82151561385257612d0a565b61385b866133c3565b9150613866856133c3565b82549091508390101561387857600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36138d3600087878661441a565b505b505050505050565b8060200151600160a060020a031633600160a060020a0316148061391657508060e00151600160a060020a031633600160a060020a0316145b151561392157600080fd5b5b50565b6000610f2e826000604051805910612c8f5750595b908082528060200260200182016040525b50600080600080613521565b9050610f3b848285613813565b5b50505050565b6000806000613979866133c3565b92506014613aad8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613a4757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a045790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613a9a57fe5b6002811115613aa557fe5b905250614442565b10613ab757600080fd5b613ac084610d40565b15613aca57600080fd5b6001830154600284018054613b82926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b1e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611adb5790505b505050506003870154600091508190608060020a90046001604060020a031681613521565b9150613bb4846000604051805910611b675750595b908082528060200260200182016040525b50600080866000613521565b9050612d0a868287613813565b5b505050505050565b600080613bd56148e1565b600080613be1886133c3565b6002810154909450869003604051805910613bf95750595b908082528060200260200182016040525b509250600091505b6002840154869003821015613c8a5760028401805483908110613c3157fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110613c6757fe5b6001604060020a039092166020928302909101909101525b600190910190613c12565b60018401546003850154613cba916001604060020a039081169186916000918291608060020a9091041681613521565b9050613cc7888289613813565b8094505b505050509392505050565b6000613ce06148e1565b600080613cec876133c3565b600281015490945060149010613d0157600080fd5b6002840154600101604051805910613d165750595b908082528060200260200182016040525b509250600091505b6002840154821015613da45760028401805483908110613d4b57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110613d8157fe5b6001604060020a039092166020928302909101909101525b600190910190613d2f565b60028401548590849081518110613db757fe5b6001604060020a039283166020918202909201015260018501546003860154613df3929182169186916000918291608060020a90041681613521565b90506138d3878288613813565b5b50505050505050565b6000805b836040015151811015613e5f57826001604060020a031684604001518281518110613e3557fe5b906020019060200201516001604060020a03161415613e5657809150613e6a565b5b600101613e0e565b6001604060020a0391505b5092915050565b600080613e7d856133c3565b91506014613fb18360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613a4757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a045790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613a9a57fe5b6002811115613aa557fe5b905250614442565b10613fbb57600080fd5b613fc483610d40565b15613fce57600080fd5b60018201546002830180546141be926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561406157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161401e5790505b5050505050856141978660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561413157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116140ee5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561418457fe5b600281111561418f57fe5b9052506145ad565b61419f6141d3565b6003880154910190608060020a90046001604060020a03166000613521565b905061134e858286613813565b5b5050505050565b425b90565b60008060025b835160028111156141eb57fe5b146141f257fe5b8260a001516001604060020a0316151561420f5760019150610dec565b61421c8360a0015161340c565b9050610de9816101006040519081016040528154909190829060ff166002811115611eae57fe5b6002811115611eb957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120275780601f10611ffc57610100808354040283529160200191612027565b820191906000526020600020905b81548152906001019060200180831161200a57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526141d8565b91505b50919050565b806144288585808685614640565b90506144378584868685614640565b90505b949350505050565b6000808260a001516001604060020a031615156144625760009150610dec565b61446f8360a001516133c3565b90506145a18160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613a4757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a045790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613a9a57fe5b6002811115613aa557fe5b905250614442565b60010191505b50919050565b60008060006145bf846020015161340c565b60038101546001604060020a031693509150600090505b8360400151518110156129d057614605846040015182815181106145f657fe5b9060200190602002015161340c565b60038101549092506001604060020a03168390111561462f5760038201546001604060020a031692505b5b6001016145d6565b5b5050919050565b600080600080866001604060020a0316886001604060020a0316146146675761010061466a565b60005b61ffff16925084935061467c886133c3565b600181015490925061469c908a906001604060020a031689898789614761565b9350600090505b60028201546001604060020a03821610156147195761470e8983600201836001604060020a03168154811015156146d657fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316898985880160010189614761565b93505b6001016146a3565b600382015460006001604060020a039091161115614754576003820154614751908a906001604060020a0316898960ff880189614761565b93505b5b50505095945050505050565b8060008061476e8861340c565b6004810154909150600160a060020a03161580159061478d5750600083115b15613807578815614848576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561481757600080fd5b6102c65a03f1151561482857600080fd5b50505060405180519250508282111561484057600080fd5b819250613807565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156148be57600080fd5b6102c65a03f115156148cf57600080fd5b5050505b5b5b50509695505050505050565b60206040519081016040526000815290565b81548183558181151161491f5760050281600502836000526020600020918201910161491f9190614b1f565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061496657805160ff1916838001178555614993565b82800160010185558215614993579182015b82811115614993578251825591602001919060010190614978565b5b506149a0929150614bb1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061496657805160ff1916838001178555614993565b82800160010185558215614993579182015b82811115614993578251825591602001919060010190614978565b5b506149a0929150614bb1565b5090565b81548183558181151161491f5760040281600402836000526020600020918201910161491f9190614bd2565b5b505050565b82805482825590600052602060002090600301600490048101928215614afd5791602002820160005b83821115614ac857835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302614a7e565b8015614afb5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302614ac8565b505b506149a0929150614c39565b5090565b60206040519081016040526000815290565b610dfa91905b808211156149a057805474ffffffffffffffffffffffffffffffffffffffffff191681556000614b586001830182614c65565b614b66600283016000614c65565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501614b25565b5090565b90565b610dfa91905b808211156149a05760008155600101614bb7565b5090565b90565b610dfa91905b808211156149a057600080825560018201805467ffffffffffffffff19169055614c056002830182614cad565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614bd8565b5090565b90565b610dfa91905b808211156149a057805467ffffffffffffffff19168155600101614c3f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10614c8b5750613921565b601f0160209004906000526020600020908101906139219190614bb1565b5b50565b5080546000825560030160049004906000526020600020908101906139219190614bb1565b5b505600a165627a7a72305820c792feb9df1401717c161c2d2812185beb9de7d5b88f36a880a3c0498717d19a0029" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001fb4833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000255565b8154818355818115116200009957600502816005028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000148565b5b505050565b6200014591905b8082111562000141578054600160a860020a03191681556000620001036001830182620001ba565b62000113600283016000620001ba565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000db565b5090565b90565b6200014591905b808211156200014157600080825560018201805467ffffffffffffffff191690556200017f600283018262000206565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001e2575062000202565b601f01602090049060005260206000209081019062000202919062000231565b5b50565b50805460008255600301600490049060005260206000209081019062000202919062000231565b5b50565b6200014591905b8082111562000141576000815560010162000238565b5090565b90565b611d4f80620002656000396000f300606060405236156100c25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c75780632101a6ad146101835780632a8ec8cc146101b75780633f657a46146101dc57806352dc7dcc1461025c5780635503d9ba1461032657806372116e921461034b5780637f61fa9314610425578063cc19ecf7146104ef578063db7c2314146105ae578063eba8ba061461066d578063f6b24b1c146107c7578063fbfa77cf14610886575b600080fd5b34156100d257600080fd5b6100ea67ffffffffffffffff600435166024356108b5565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101465780820151818401525b60200161012d565b50505050905090810190601f1680156101735780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018e57600080fd5b6101a367ffffffffffffffff600435166109dd565b604051901515815260200160405180910390f35b34156101c257600080fd5b6101ca610a9b565b60405190815260200160405180910390f35b34156101e757600080fd5b6101fc67ffffffffffffffff60043516610aa6565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024257fe5b60ff16815260200197505050505050505060405180910390f35b341561026757600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610b2e915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033157600080fd5b6101ca610d24565b60405190815260200160405180910390f35b341561035657600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d2f9050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561043057600080fd5b61030960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a0316925061116b915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156104fa57600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611360915050565b005b34156105b957600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061144e915050565b005b341561067857600080fd5b61068d67ffffffffffffffff6004351661153c565b6040518089600281111561069d57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156107205780820151818401525b602001610707565b50505050905090810190601f16801561074d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156107845780820151818401525b60200161076b565b50505050905090810190601f1680156107b15780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34156107d257600080fd5b6105ac6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611708915050565b005b341561089157600080fd5b6108996117f6565b604051600160a060020a03909116815260200160405180910390f35b6000806108c0611ae6565b6000806108cc87611805565b915081600201600187038154811015156108e257fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff16945061091885611850565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109cc5780601f106109a1576101008083540402835291602001916109cc565b820191906000526020600020905b8154815290600101906020018083116109af57829003601f168201915b505050505092505b50509250925092565b6000806109e983611850565b905060005b815460ff1660028111156109fe57fe5b1415610a0d5760009150610a95565b60025b815460ff166002811115610a2057fe5b14610a2757fe5b6003810154608060020a900460ff1615610a445760019150610a95565b600381015468010000000000000000900467ffffffffffffffff161515610a6e5760009150610a95565b6003810154610a929068010000000000000000900467ffffffffffffffff166109dd565b91505b50919050565b600054600019015b90565b600080600080600080600080610abb89611805565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b600180549081808201610b418382611af8565b916000526020600020906005020160005b6101006040519081016040528060015b8152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610bc357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610c09929160200190611b2a565b50606082015181600201908051610c24929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b949350505050565b600154600019015b90565b60008067ffffffffffffffff851615610f6f57610d4b85611850565b905060025b815460ff166002811115610d6057fe5b14610d6a57600080fd5b6014610f65826101006040519081016040528154909190829060ff166002811115610d9157fe5b6002811115610d9c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f0a5780601f10610edf57610100808354040283529160200191610f0a565b820191906000526020600020905b815481529060010190602001808311610eed57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261189d565b10610f6f57600080fd5b5b60018054925082808201610f848382611af8565b916000526020600020906005020160005b6101006040519081016040528060025b8152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561100757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161104d929160200190611b2a565b50606082015181600201908051611068929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b509695505050505050565b60018054908180820161117e8382611af8565b916000526020600020906005020160005b6101006040519081016040528060005b8152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561120057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611246929160200190611b2a565b50606082015181600201908051611261929160200190611b2a565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a25b949350505050565b600061136b86611850565b905060015b815460ff16600281111561138057fe5b1461138a57600080fd5b805433600160a060020a0390811661010090920416146113a957600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113dc929160200190611b2a565b50600281018380516113f2929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600061145986611850565b905060005b815460ff16600281111561146e57fe5b1461147857600080fd5b805433600160a060020a03908116610100909204161461149757600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114ca929160200190611b2a565b50600281018380516114e0929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25b505050505050565b600080611547611ae6565b61154f611ae6565b60008060008060006115608a611850565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156116165780601f106115eb57610100808354040283529160200191611616565b820191906000526020600020905b8154815290600101906020018083116115f957829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116b55780601f1061168a576101008083540402835291602001916116b5565b820191906000526020600020905b81548152906001019060200180831161169857829003601f168201915b505050506003830154600484015492985067ffffffffffffffff8082169850680100000000000000008204169650608060020a900460ff16945050600160a060020a031691505b50919395975091939597565b600061171386611850565b905060025b815460ff16600281111561172857fe5b1461173257600080fd5b805433600160a060020a03908116610100909204161461175157600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611784929160200190611b2a565b506002810183805161179a929160200190611b2a565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff83161061181e57600080fd5b6000805467ffffffffffffffff841690811061183657fe5b906000526020600020906004020160005b5090505b919050565b60015460009067ffffffffffffffff83161061186b57600080fd5b6001805467ffffffffffffffff841690811061188357fe5b906000526020600020906005020160005b5090505b919050565b60008060025b835160028111156118b057fe5b146118b757fe5b8260a0015167ffffffffffffffff1615156118d55760019150610a95565b6118e28360a00151611850565b9050610a92816101006040519081016040528154909190829060ff166002811115610d9157fe5b6002811115610d9c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f0a5780601f10610edf57610100808354040283529160200191610f0a565b820191906000526020600020905b815481529060010190602001808311610eed57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261189d565b91505b50919050565b60206040519081016040526000815290565b815481835581811511611b2457600502816005028360005260206000209182019101611b249190611c28565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b6b57805160ff1916838001178555611b98565b82800160010185558215611b98579182015b82811115611b98578251825591602001919060010190611b7d565b5b50611ba5929150611cba565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b6b57805160ff1916838001178555611b98565b82800160010185558215611b98579182015b82811115611b98578251825591602001919060010190611b7d565b5b50611ba5929150611cba565b5090565b610aa391905b80821115611ba557805474ffffffffffffffffffffffffffffffffffffffffff191681556000611c616001830182611cdb565b611c6f600283016000611cdb565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611c2e565b5090565b90565b610aa391905b80821115611ba55760008155600101611cc0565b5090565b90565b50805460018160011615610100020316600290046000825580601f10611d015750611d1f565b601f016020900490600052602060002090810190611d1f9190611cba565b5b505600a165627a7a723058203f7b0aa3dc7065aea974169f7b77637d8fa151e561b988e273970aab45e201300029" -exports.LiquidPledgingMockAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b60405160208062004fd7833981016040528080519150505b805b805b60016200003a818062000076565b5060016200004a600082620000ab565b5060028054600160a060020a031916600160a060020a0383161790555b505b50426004555b5062000261565b815481835581811511620000a557600502816005028360005260206000209182019101620000a59190620000e0565b5b505050565b815481835581811511620000a557600402816004028360005260206000209182019101620000a5919062000154565b5b505050565b6200015191905b808211156200014d578054600160a860020a031916815560006200010f6001830182620001c6565b6200011f600283016000620001c6565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000e7565b5090565b90565b6200015191905b808211156200014d57600080825560018201805467ffffffffffffffff191690556200018b600283018262000212565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200015b565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001ee57506200020e565b601f0160209004906000526020600020908101906200020e91906200023d565b5b50565b5080546000825560030160049004906000526020600020908101906200020e91906200023d565b5b50565b6200015191905b808211156200014d576000815560010162000244565b5090565b90565b614d6680620002716000396000f3006060604052361561014e5763ffffffff60e060020a60003504166314e7b1dc81146101535780632101a6ad1461020d5780632a8ec8cc146102405780632ee88808146102655780633f657a4614610289578063433879831461030757806347c5ef431461032b57806350f8a8031461035c57806352dc7dcc146103975780635503d9ba1461045f57806357adafb61461048457806372116e92146104d5578063796d5654146105ad5780637f61fa93146105ce5780639398f5a2146106965780639da47a6b146106e7578063ab8be2311461070c578063af9f456314610724578063bce0906d14610748578063bde60ac9146107b3578063cc19ecf7146107cf578063d639cd731461088c578063db7c2314146108f6578063e9c211e2146109b3578063eba8ba06146109d7578063ef3766e414610b2f578063f6b24b1c14610b80578063fbfa77cf14610c3d575b600080fd5b341561015e57600080fd5b6101756001604060020a0360043516602435610c6c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d05780820151818401525b6020016101b7565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021857600080fd5b61022c6001604060020a0360043516610d93565b604051901515815260200160405180910390f35b341561024b57600080fd5b610253610e45565b60405190815260200160405180910390f35b341561027057600080fd5b6102876001604060020a0360043516602435610e50565b005b341561029457600080fd5b6102a86001604060020a0360043516610f96565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ed57fe5b60ff16815260200197505050505050505060405180910390f35b341561031257600080fd5b6102876001604060020a0360043516602435611003565b005b341561033657600080fd5b6102876001604060020a0360043581169060243581169060443590606435166113a8565b005b341561036757600080fd5b61037b6001604060020a0360043516611a65565b6040516001604060020a03909116815260200160405180910390f35b34156103a257600080fd5b61037b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611c31915050565b6040516001604060020a03909116815260200160405180910390f35b341561046a57600080fd5b610253611e22565b60405190815260200160405180910390f35b341561048f57600080fd5b6102876004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611e2d95505050505050565b005b34156104e057600080fd5b61037b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611ea09050565b6040516001604060020a03909116815260200160405180910390f35b34156105b857600080fd5b6102876001604060020a03600435166122d0565b005b34156105d957600080fd5b61037b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061252d915050565b6040516001604060020a03909116815260200160405180910390f35b34156106a157600080fd5b610287600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061271d95505050505050565b005b34156106f257600080fd5b610253612790565b60405190815260200160405180910390f35b341561071757600080fd5b610287600435612796565b005b341561072f57600080fd5b6102876001604060020a036004351660243561279f565b005b341561075357600080fd5b61037b60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129ed95505050505050565b6040516001604060020a03909116815260200160405180910390f35b6102876001604060020a0360043581169060243516612a3a565b005b34156107da57600080fd5b610287600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612d75915050565b005b341561089757600080fd5b610287600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612e62915050565b005b341561090157600080fd5b610287600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612ed9915050565b005b34156109be57600080fd5b6102876001604060020a0360043516602435612fc6565b005b34156109e257600080fd5b6109f66001604060020a03600435166130f0565b60405180896002811115610a0657fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610a885780820151818401525b602001610a6f565b50505050905090810190601f168015610ab55780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610aec5780820151818401525b602001610ad3565b50505050905090810190601f168015610b195780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610b3a57600080fd5b61028760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506132b695505050505050565b005b3415610b8b57600080fd5b610287600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250613329915050565b005b3415610c4857600080fd5b610c50613416565b604051600160a060020a03909116815260200160405180910390f35b600080610c77614945565b600080610c8387613425565b91508160020160018703815481101515610c9957fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03169450610cce8561346e565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d825780601f10610d5757610100808354040283529160200191610d82565b820191906000526020600020905b815481529060010190602001808311610d6557829003601f168201915b505050505092505b50509250925092565b600080610d9f8361346e565b905060005b815460ff166002811115610db457fe5b1415610dc35760009150610e3f565b60025b815460ff166002811115610dd657fe5b14610ddd57fe5b6003810154608060020a900460ff1615610dfa5760019150610e3f565b6003810154604060020a90046001604060020a03161515610e1e5760009150610e3f565b6003810154610e3c90604060020a90046001604060020a0316610d93565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610e7057600080fd5b610e7984613425565b915060015b600383015460c060020a900460ff166002811115610e9857fe5b14610ea257600080fd5b836001604060020a0316610eb5856134b9565b6001604060020a031614610ec857600080fd5b6001820154600283018054610f81926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f5b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610f185790505b505050506003860154600091508190608060020a90046001604060020a03166002613583565b9050610f8e848285613875565b5b5b50505050565b600080600080600080600080610fab89613425565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080600061101185611a65565b945061101c85613425565b925060005b600384015460c060020a900460ff16600281111561103b57fe5b1461104557600080fd5b600183015461105c906001604060020a031661346e565b9150611251826101006040519081016040528154909190829060ff16600281111561108357fe5b600281111561108e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115a5780601f1061112f5761010080835404028352916020019161115a565b820191906000526020600020905b81548152906001019060200180831161113d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fc5780601f106111d1576101008083540402835291602001916111fc565b820191906000526020600020905b8154815290600101906020018083116111df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261393f565b600183015460028401805461130a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112a15790505b505050506003870154600091508190608060020a90046001604060020a03166001613583565b9050611317858286613875565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561138c57600080fd5b6102c65a03f1151561139d57600080fd5b5050505b5050505050565b60008060008060006113b988611a65565b97506113c488613425565b94506113cf8661346e565b93506113da8961346e565b92506115cf836101006040519081016040528154909190829060ff16600281111561108357fe5b600281111561108e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115a5780601f1061112f5761010080835404028352916020019161115a565b820191906000526020600020905b81548152906001019060200180831161113d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fc5780601f106111d1576101008083540402835291602001916111fc565b820191906000526020600020905b8154815290600101906020018083116111df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261393f565b60005b600386015460c060020a900460ff1660028111156115ec57fe5b146115f657600080fd5b60018501546001604060020a038a8116911614156116a75760005b845460ff16600281111561162157fe5b141561163757611632888888613987565b61169f565b60025b845460ff16600281111561164a57fe5b1415611660576116328888886139cd565b61169f565b60015b845460ff16600281111561167357fe5b141561169d5761168b88888760020180549050613c2c565b9750611632888888613d38565b61169f565bfe5b5b5b5b611a59565b6117d88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561177157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161172e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156117c457fe5b60028111156117cf57fe5b9052508a613e6c565b6001604060020a039081169250821461169d5760005b845460ff1660028111156117fe57fe5b14156118355760018501546001604060020a0387811691161461181d57fe5b61182f88888760020180549050613c2c565b50611a59565b60015b845460ff16600281111561184857fe5b1415611a145761197f8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561191857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118d55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561196b57fe5b600281111561197657fe5b90525087613e6c565b6001604060020a0390811691508114156119bc5761168b888860018589600201805490500303613c2c565b9750611632888888613d38565b61169f565b818111156119ed5761168b888860018589600201805490500303613c2c565b9750611632888888613d38565b61169f565b81811161169f5761182f888860018489600201805490500303613c2c565b505b5b5b611a59565b60025b845460ff166002811115611a2757fe5b141561169d57611a44888860018589600201805490500303613c2c565b975061169f888888613ed3565b611a59565b5bfe5b5b505050505050505050565b600080600080611a7485613425565b925060005b600384015460c060020a900460ff166002811115611a9357fe5b14611aa057849350611c29565b600383015460006001604060020a03909116118015611ad957506003830154604060020a90046001604060020a0316611ad7614235565b115b15611bf7576001830154600284018054611b96926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b7157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611b2e5790505b505050506003870154600091508190608060020a90046001604060020a031681613583565b6003840154909250611bd7906001604060020a03166000604051805910611bba5750595b908082528060200260200182016040525b50600080866000613583565b9050611be885828560000154613875565b809450611bf485613425565b92505b611c00856134b9565b90506001604060020a0380821690861614611c2457611c2485828560000154613875565b5b8093505b505050919050565b600180549081808201611c448382614957565b916000526020600020906005020160005b6101006040519081016040528060015b8152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611cc557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611d0b929160200190614989565b50606082015181600201908051611d26929160200190614989565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b949350505050565b600154600019015b90565b600080805b8351831015610f8e576001604060020a03848481518110611e4f57fe5b90602001906020020151169150604060020a848481518110611e6d57fe5b90602001906020020151811515611e8057fe5b049050611e8d8282611003565b5b600190920191611e32565b5b50505050565b6000806001604060020a038516156120d957611ebb8561346e565b905060025b815460ff166002811115611ed057fe5b14611eda57600080fd5b60146120cf826101006040519081016040528154909190829060ff166002811115611f0157fe5b6002811115611f0c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd85780601f10611fad57610100808354040283529160200191611fd8565b820191906000526020600020905b815481529060010190602001808311611fbb57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561207a5780601f1061204f5761010080835404028352916020019161207a565b820191906000526020600020905b81548152906001019060200180831161205d57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261423c565b106120d957600080fd5b5b600180549250828082016120ee8382614957565b916000526020600020906005020160005b6101006040519081016040528060025b8152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561217057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516121b6929160200190614989565b506060820151816002019080516121d1929160200190614989565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b509695505050505050565b60006122db8261346e565b90506124d0816101006040519081016040528154909190829060ff16600281111561108357fe5b600281111561108e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115a5780601f1061112f5761010080835404028352916020019161115a565b820191906000526020600020905b81548152906001019060200180831161113d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fc5780601f106111d1576101008083540402835291602001916111fc565b820191906000526020600020905b8154815290600101906020018083116111df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261393f565b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25b5050565b6001805490818082016125408382614957565b916000526020600020906005020160005b6101006040519081016040528060005b8152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156125c157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612607929160200190614989565b50606082015181600201908051612622929160200190614989565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a25b949350505050565b600080805b8351831015610f8e576001604060020a0384848151811061273f57fe5b90602001906020020151169150604060020a84848151811061275d57fe5b9060200190602002015181151561277057fe5b04905061277d8282610e50565b5b600190920191612722565b5b50505050565b60045481565b60048190555b50565b6000806127ab84611a65565b93506127b684613425565b60018101549092506127d0906001604060020a031661346e565b90506129c5816101006040519081016040528154909190829060ff16600281111561108357fe5b600281111561108e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115a5780601f1061112f5761010080835404028352916020019161115a565b820191906000526020600020905b81548152906001019060200180831161113d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fc5780601f106111d1576101008083540402835291602001916111fc565b820191906000526020600020905b8154815290600101906020018083116111df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261393f565b6003820154610f8e908590608060020a90046001604060020a031685613875565b5b50505050565b600080805b8351821015612a32576001604060020a03848381518110612a0f57fe5b90602001906020020151169050612a2581611a65565b505b6001909101906129f2565b5b5050919050565b60008080806001604060020a0386161515612a8057612a7d6020604051908101604052806000815250602060405190810160405260008082526203f4809061252d565b95505b612a898661346e565b9350612c7e846101006040519081016040528154909190829060ff16600281111561108357fe5b600281111561108e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115a5780601f1061112f5761010080835404028352916020019161115a565b820191906000526020600020905b81548152906001019060200180831161113d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fc5780601f106111d1576101008083540402835291602001916111fc565b820191906000526020600020905b8154815290600101906020018083116111df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261393f565b60005b845460ff166002811115612c9157fe5b14612c9b57600080fd5b34925060008311612cab57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515612cde57600080fd5b612d0e866000604051805910612cf15750595b908082528060200260200182016040525b50600080600080613583565b9150612d1982613425565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612d6c868385886113a8565b5b505050505050565b6000612d808661346e565b905060015b815460ff166002811115612d9557fe5b14612d9f57600080fd5b805433600160a060020a039081166101009092041614612dbe57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612df1929160200190614989565b5060028101838051612e07929160200190614989565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8451831015612d6c576001604060020a03858481518110612e8457fe5b90602001906020020151169150604060020a858481518110612ea257fe5b90602001906020020151811515612eb557fe5b049050612ec4868383876113a8565b5b600190920191612e67565b5b505050505050565b6000612ee48661346e565b905060005b815460ff166002811115612ef957fe5b14612f0357600080fd5b805433600160a060020a039081166101009092041614612f2257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612f55929160200190614989565b5060028101838051612f6b929160200190614989565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25b505050505050565b600254600090819033600160a060020a03908116911614612fe657600080fd5b612fef84613425565b915060015b600383015460c060020a900460ff16600281111561300e57fe5b1461301857600080fd5b60018201546002830180546130d0926001604060020a031691906020808202016040519081016040528092919081815260200182805480156130ab57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130685790505b505050506003860154600091508190608060020a90046001604060020a031681613583565b9050610f8181611a65565b9050610f8e848285613875565b5b5b50505050565b6000806130fb614945565b613103614945565b60008060008060006131148a61346e565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131ca5780601f1061319f576101008083540402835291602001916131ca565b820191906000526020600020905b8154815290600101906020018083116131ad57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132695780601f1061323e57610100808354040283529160200191613269565b820191906000526020600020905b81548152906001019060200180831161324c57829003601f168201915b50505050600383015460048401549298506001604060020a038082169850604060020a8204169650608060020a900460ff16945050600160a060020a031691505b50919395975091939597565b600080805b8351831015610f8e576001604060020a038484815181106132d857fe5b90602001906020020151169150604060020a8484815181106132f657fe5b9060200190602002015181151561330957fe5b0490506133168282612fc6565b5b6001909201916132bb565b5b50505050565b60006133348661346e565b905060025b815460ff16600281111561334957fe5b1461335357600080fd5b805433600160a060020a03908116610100909204161461337257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516133a5929160200190614989565b50600281018380516133bb929160200190614989565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b600254600160a060020a031681565b600080546001604060020a0383161061343d57600080fd5b600080546001604060020a03841690811061345457fe5b906000526020600020906004020160005b5090505b919050565b6001546000906001604060020a0383161061348857600080fd5b600180546001604060020a03841690811061349f57fe5b906000526020600020906005020160005b5090505b919050565b600080806001604060020a03841615156134d65760009250612a32565b6134df84613425565b60018101549092506134f9906001604060020a031661346e565b905060005b815460ff16600281111561350e57fe5b141561351c57839250612a32565b60025b815460ff16600281111561352f57fe5b1461353657fe5b600182015461354d906001604060020a0316610d93565b151561355b57839250612a32565b600382015461357990608060020a90046001604060020a03166134b9565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156135d15780820151818401525b6020016135b8565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a02815260080182600281111561363e57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a0390911691508111156136a757809250613869565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a0383161790558154909190600181016136e58382614a87565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a0316815260200188600281111561375757fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516137a2929160200190614ab9565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561385d57fe5b02179055505050508092505b50509695505050505050565b6000806000613887600187878761447e565b9250846001604060020a0316866001604060020a031614156138a857612d6c565b8215156138b457612d6c565b6138bd86613425565b91506138c885613425565b8254909150839010156138da57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3613935600087878661447e565b505b505050505050565b8060200151600160a060020a031633600160a060020a0316148061397857508060e00151600160a060020a031633600160a060020a0316145b151561279c57600080fd5b5b50565b6000610f81826000604051805910612cf15750595b908082528060200260200182016040525b50600080600080613583565b9050610f8e848285613875565b5b50505050565b60008060006139db86613425565b92506014613b0f8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613aa957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a665790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613afc57fe5b6002811115613b0757fe5b9052506144a6565b10613b1957600080fd5b613b2284610d93565b15613b2c57600080fd5b6001830154600284018054613be4926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b7157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611b2e5790505b505050506003870154600091508190608060020a90046001604060020a031681613583565b9150613c16846000604051805910611bba5750595b908082528060200260200182016040525b50600080866000613583565b9050612d6c868287613875565b5b505050505050565b600080613c37614945565b600080613c4388613425565b6002810154909450869003604051805910613c5b5750595b908082528060200260200182016040525b509250600091505b6002840154869003821015613cec5760028401805483908110613c9357fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110613cc957fe5b6001604060020a039092166020928302909101909101525b600190910190613c74565b60018401546003850154613d1c916001604060020a039081169186916000918291608060020a9091041681613583565b9050613d29888289613875565b8094505b505050509392505050565b6000613d42614945565b600080613d4e87613425565b600281015490945060149010613d6357600080fd5b6002840154600101604051805910613d785750595b908082528060200260200182016040525b509250600091505b6002840154821015613e065760028401805483908110613dad57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110613de357fe5b6001604060020a039092166020928302909101909101525b600190910190613d91565b60028401548590849081518110613e1957fe5b6001604060020a039283166020918202909201015260018501546003860154613e55929182169186916000918291608060020a90041681613583565b9050613935878288613875565b5b50505050505050565b6000805b836040015151811015613ec157826001604060020a031684604001518281518110613e9757fe5b906020019060200201516001604060020a03161415613eb857809150613ecc565b5b600101613e70565b6001604060020a0391505b5092915050565b600080613edf85613425565b915060146140138360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613aa957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a665790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613afc57fe5b6002811115613b0757fe5b9052506144a6565b1061401d57600080fd5b61402683610d93565b1561403057600080fd5b6001820154600283018054614220926001604060020a031691906020808202016040519081016040528092919081815260200182805480156140c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116140805790505b5050505050856141f98660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561419357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116141505790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156141e657fe5b60028111156141f157fe5b905250614611565b614201614235565b6003880154910190608060020a90046001604060020a03166000613583565b90506113a1858286613875565b5b5050505050565b6004545b90565b60008060025b8351600281111561424f57fe5b1461425657fe5b8260a001516001604060020a031615156142735760019150610e3f565b6142808360a0015161346e565b9050610e3c816101006040519081016040528154909190829060ff166002811115611f0157fe5b6002811115611f0c57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd85780601f10611fad57610100808354040283529160200191611fd8565b820191906000526020600020905b815481529060010190602001808311611fbb57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561207a5780601f1061204f5761010080835404028352916020019161207a565b820191906000526020600020905b81548152906001019060200180831161205d57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261423c565b91505b50919050565b8061448c85858086856146a4565b905061449b85848686856146a4565b90505b949350505050565b6000808260a001516001604060020a031615156144c65760009150610e3f565b6144d38360a00151613425565b90506146058160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613aa957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a665790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613afc57fe5b6002811115613b0757fe5b9052506144a6565b60010191505b50919050565b6000806000614623846020015161346e565b60038101546001604060020a031693509150600090505b836040015151811015612a32576146698460400151828151811061465a57fe5b9060200190602002015161346e565b60038101549092506001604060020a0316839011156146935760038201546001604060020a031692505b5b60010161463a565b5b5050919050565b600080600080866001604060020a0316886001604060020a0316146146cb576101006146ce565b60005b61ffff1692508493506146e088613425565b6001810154909250614700908a906001604060020a0316898987896147c5565b9350600090505b60028201546001604060020a038216101561477d576147728983600201836001604060020a031681548110151561473a57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03168989858801600101896147c5565b93505b600101614707565b600382015460006001604060020a0390911611156147b85760038201546147b5908a906001604060020a0316898960ff8801896147c5565b93505b5b50505095945050505050565b806000806147d28861346e565b6004810154909150600160a060020a0316158015906147f15750600083115b156138695788156148ac576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561487b57600080fd5b6102c65a03f1151561488c57600080fd5b5050506040518051925050828211156148a457600080fd5b819250613869565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b151561492257600080fd5b6102c65a03f1151561493357600080fd5b5050505b5b5b50509695505050505050565b60206040519081016040526000815290565b815481835581811511614983576005028160050283600052602060002091820191016149839190614b83565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106149ca57805160ff19168380011785556149f7565b828001600101855582156149f7579182015b828111156149f75782518255916020019190600101906149dc565b5b50614a04929150614c15565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106149ca57805160ff19168380011785556149f7565b828001600101855582156149f7579182015b828111156149f75782518255916020019190600101906149dc565b5b50614a04929150614c15565b5090565b815481835581811511614983576004028160040283600052602060002091820191016149839190614c36565b5b505050565b82805482825590600052602060002090600301600490048101928215614b615791602002820160005b83821115614b2c57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302614ae2565b8015614b5f5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302614b2c565b505b50614a04929150614c9d565b5090565b60206040519081016040526000815290565b610e4d91905b80821115614a0457805474ffffffffffffffffffffffffffffffffffffffffff191681556000614bbc6001830182614cc9565b614bca600283016000614cc9565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501614b89565b5090565b90565b610e4d91905b80821115614a045760008155600101614c1b565b5090565b90565b610e4d91905b80821115614a0457600080825560018201805467ffffffffffffffff19169055614c696002830182614d11565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614c3c565b5090565b90565b610e4d91905b80821115614a0457805467ffffffffffffffff19168155600101614ca3565b5090565b90565b50805460018160011615610100020316600290046000825580601f10614cef575061279c565b601f01602090049060005260206000209081019061279c9190614c15565b5b50565b50805460008255600301600490049060005260206000209081019061279c9190614c15565b5b505600a165627a7a72305820b9c0248006724243357afb193eb50e51660adb6264126c7caeef005ec6f58d530029" -exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434583398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140fa806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061232295505050505050565b6102726001604060020a036004358116906024351661236d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124d7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125c2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061262f915050565b34156108d657600080fd5b6102726001604060020a036004351660243561271a565b34156108f857600080fd5b61090c6001604060020a036004351661282e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129f395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a5e915050565b3415610b5857600080fd5b610b60612b49565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d9a565b600080610b9387612b58565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b9c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b9c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b58565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612be2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612ca8565b9050610e99848285612f98565b50505050565b600080600080600080600080610eb489612b58565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b58565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b9c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613061565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612ca8565b9050611217858286612f98565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b58565b94506112ce86612b9c565b93506112d989612b9c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130a8565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130d8565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613301565b9750611361888888613406565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61352d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613301565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761352d565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613301565b818111156116e7576113b3888860018589600201805490500303613301565b8181116113c25761154e888860018489600201805490500303613301565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613301565b97506113c2888888613593565b505050505050505050565b60008060008061175b85612b58565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b6565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612ca8565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612ca8565b90506118cd85828560000154612f98565b8094506118d985612b58565b92505b6118e585612be2565b90506001604060020a03808216908616146119095761190985828560000154612f98565b8093505b505050919050565b6001805490818082016119288382613dac565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddd565b50606082015181600201908051611a08929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b9c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138ba565b10611db057600080fd5b60018054925082808201611dc48382613dac565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddd565b50606082015181600201908051611ea5929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b9c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dac565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddd565b50606082015181600201908051612124929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b58565b6003810154909250608060020a90046001604060020a031615156122c357600080fd5b60018201546122da906001604060020a0316612b9c565b9050612301816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f98565b600080805b8351821015612366576001604060020a0384838151811061234457fe5b9060200190602002015116905061235a8161174c565b50600190910190612327565b5050919050565b60008080806001604060020a03861615156123b3576123b06020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123bc86612b9c565b93506123e3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123f557fe5b146123ff57600080fd5b3492506000831161240f57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561244257600080fd5b6124718660006040518059106124555750595b9080825280602002602001820160405250600080600080612ca8565b915061247c82612b58565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124cf868385886112a7565b505050505050565b60006124e286612b9c565b90506001815460ff1660028111156124f657fe5b1461250057600080fd5b805433600160a060020a03908116610100909204161461251f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612552929160200190613ddd565b5060028101838051612568929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124cf576001604060020a038584815181106125e457fe5b90602001906020020151169150604060020a85848151811061260257fe5b9060200190602002015181151561261557fe5b049050612624868383876112a7565b6001909201916125c7565b600061263a86612b9c565b90506000815460ff16600281111561264e57fe5b1461265857600080fd5b805433600160a060020a03908116610100909204161461267757600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126aa929160200190613ddd565b50600281018380516126c0929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273a57600080fd5b61274384612b58565b91506001600383015460c060020a900460ff16600281111561276157fe5b1461276b57600080fd5b6001820154600283018054612823926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127fe57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127bb5790505b505050506003860154600091508190608060020a90046001604060020a031681612ca8565b9050610e8c8161174c565b600080612839613d9a565b612841613d9a565b60008060008060006128528a612b9c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a75780601f1061297c576101008083540402835291602001916129a7565b820191906000526020600020905b81548152906001019060200180831161298a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a1557fe5b90602001906020020151169150604060020a848481518110612a3357fe5b90602001906020020151811515612a4657fe5b049050612a53828261271a565b6001909201916129f8565b6000612a6986612b9c565b90506002815460ff166002811115612a7d57fe5b14612a8757600080fd5b805433600160a060020a039081166101009092041614612aa657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad9929160200190613ddd565b5060028101838051612aef929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b7057600080fd5b600080546001604060020a038416908110612b8757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb657600080fd5b600180546001604060020a038416908110612bcd57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bff5760009250612366565b612c0884612b58565b6001810154909250612c22906001604060020a0316612b9c565b90506000815460ff166002811115612c3657fe5b1415612c4457839250612366565b6002815460ff166002811115612c5657fe5b14612c5d57fe5b6001820154612c74906001604060020a0316610ca1565b1515612c8257839250612366565b6003820154612ca090608060020a90046001604060020a0316612be2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cf5578082015183820152602001612cdd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d6257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dcb57809250612f8c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e098382613e5b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e7a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ec5929160200190613e87565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f8057fe5b02179055505050508092505b50509695505050505050565b6000806000612faa6001878787613924565b9250846001604060020a0316866001604060020a03161415612fcb576124cf565b821515612fd7576124cf565b612fe086612b58565b9150612feb85612b58565b825490915083901015612ffd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130586000878786613924565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061309a57508060e00151600160a060020a031633600160a060020a0316145b15156130a557600080fd5b50565b6000610e8c8260006040518059106124555750599080825280602002602001820160405250600080600080612ca8565b60008060006130e686612b58565b9250601461321a8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131715790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b600281111561321257fe5b90525061394a565b1061322457600080fd5b61322d84610ca1565b1561323757600080fd5b60018301546002840180546132c4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612ca8565b91506132f48460006040518059106118a05750599080825280602002602001820160405250600080866000612ca8565b90506124cf868287612f98565b60008061330c613d9a565b60008061331888612b58565b60028101549094508690036040518059106133305750595b90808252806020026020018201604052509250600091505b60028401548690038210156133be576002840180548390811061336757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061339c57fe5b6001604060020a03909216602092830290910190910152600190910190613348565b600184015460038501546133ee916001604060020a039081169186916000918291608060020a9091041681612ca8565b90506133fb888289612f98565b979650505050505050565b6000613410613d9a565b60008061341c87612b58565b60028101549094506014901061343157600080fd5b60028401546001016040518059106134465750595b90808252806020026020018201604052509250600091505b60028401548210156134d1576002840180548390811061347a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134af57fe5b6001604060020a0390921660209283029091019091015260019091019061345e565b600284015485908490815181106134e457fe5b6001604060020a039283166020918202909201015260018501546003860154613520929182169186916000918291608060020a90041681612ca8565b9050613058878288612f98565b6000805b83604001515181101561358157826001604060020a03168460400151828151811061355857fe5b906020019060200201516001604060020a031614156135795780915061358c565b600101613531565b6001604060020a0391505b5092915050565b60008061359f85612b58565b915060146136958360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b1061369f57600080fd5b6136a883610ca1565b156136b257600080fd5b60018201546002830180546138a2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561374557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137025790505b50505050508561387b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561381557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137d25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561386857fe5b600281111561387357fe5b905250613a75565b6138836138b6565b6003880154910190608060020a90046001604060020a03166000612ca8565b90506138af858286612f98565b5050505050565b4290565b6000806002835160028111156138cc57fe5b146138d357fe5b8260a001516001604060020a031615156138f05760019150610d4b565b6138fd8360a00151612b9c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139328585808685613aff565b90506139418584868685613aff565b95945050505050565b6000808260a001516001604060020a0316151561396a5760009150610d4b565b6139778360a00151612b58565b9050613a6b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b6001019392505050565b6000806000613a878460200151612b9c565b60038101546001604060020a031693509150600090505b83604001515181101561236657613acd84604001518281518110613abe57fe5b90602001906020020151612b9c565b60038101549092506001604060020a031683901115613af75760038201546001604060020a031692505b600101613a9e565b600080600080866001604060020a0316886001604060020a031614613b2657610100613b29565b60005b61ffff169250849350613b3b88612b58565b6001810154909250613b5b908a906001604060020a031689898789613c1d565b9350600090505b60028201546001604060020a0382161015613bd657613bcc8983600201836001604060020a0316815481101515613b9557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1d565b9350600101613b62565b600382015460006001604060020a039091161115613c11576003820154613c0e908a906001604060020a0316898960ff880189613c1d565b93505b50505095945050505050565b80600080613c2a88612b9c565b6004810154909150600160a060020a031615801590613c495750600083115b15612f8c578815613d04576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805192505082821115613cfc57600080fd5b819250612f8c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7a57600080fd5b6102c65a03f11515613d8b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd857600502816005028360005260206000209182019101613dd89190613f3b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1e57805160ff1916838001178555613e4b565b82800160010185558215613e4b579182015b82811115613e4b578251825591602001919060010190613e30565b50613e57929150613fc6565b5090565b815481835581811511613dd857600402816004028360005260206000209182019101613dd89190613fe0565b82805482825590600052602060002090600301600490048101928215613f2f5791602002820160005b83821115613efa57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eb0565b8015613f2d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613efa565b505b50613e57929150614040565b610d5991905b80821115613e5757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f746001830182614065565b613f82600283016000614065565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f41565b610d5991905b80821115613e575760008155600101613fcc565b610d5991905b80821115613e5757600080825560018201805467ffffffffffffffff1916905561401360028301826140a9565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe6565b610d5991905b80821115613e5757805467ffffffffffffffff19168155600101614046565b50805460018160011615610100020316600290046000825580601f1061408b57506130a5565b601f0160209004906000526020600020908101906130a59190613fc6565b5080546000825560030160049004906000526020600020908101906130a59190613fc65600a165627a7a72305820aa3e1164ad7cb60a04a3a2be32f54de72f7fc51592d26648429d2c66db69b0750029" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a72305820e5e2d9335ad8fd65f1c0f461bffc62b533c98c864c82c33addf1b05188f548990029" +exports.LiquidPledgingMockAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b6040516020806200439783398101604052808051915081905080600162000038818062000075565b50600162000048600082620000a9565b5060028054600160a060020a031916600160a060020a039290921691909117905550504260045562000241565b815481835581811511620000a457600502816005028360005260206000209182019101620000a49190620000d8565b505050565b815481835581811511620000a457600402816004028360005260206000209182019101620000a491906200014c565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001b7565b62000117600283016000620001b7565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff1916905562000183600283018262000202565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b50805460018160011615610100020316600290046000825580601f10620001df5750620001ff565b601f016020900490600052602060002090810190620001ff919062000224565b50565b508054600082556003016004900490600052602060002090810190620001ff91905b6200014991905b808211156200014557600081556001016200022b565b61414680620002516000396000f3006060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bce0906d146106c3578063bde60ac914610712578063cc19ecf71461072c578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ede565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f43565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e6565b341561036457600080fd5b6103786001604060020a036004351661178b565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611954915050565b341561044b57600080fd5b610254611b42565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4c95505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb79050565b341561056957600080fd5b6102886001604060020a0360043516611fe2565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612070915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225d95505050505050565b341561068357600080fd5b6102546122c8565b341561069657600080fd5b6102886004356122ce565b34156106ac57600080fd5b6102886001604060020a03600435166024356122d3565b34156106ce57600080fd5b610378600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061236c95505050505050565b6102886001604060020a03600435811690602435166123b7565b341561073757600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612521915050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a0316925061260c915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612679915050565b341561091557600080fd5b6102886001604060020a0360043516602435612764565b341561093757600080fd5b61094b6001604060020a0360043516612878565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a3d95505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612aa8915050565b3415610b9757600080fd5b610b9f612b93565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613de6565b600080610bd287612ba2565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612be6565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612be6565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612ba2565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b836001604060020a0316610dff85612c2c565b6001604060020a031614610e1257600080fd5b6001820154600283018054610ecb926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e625790505b505050506003860154600091508190608060020a90046001604060020a03166002612cf2565b9050610ed8848285612fe2565b50505050565b600080600080600080600080610ef389612ba2565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f518561178b565b9450610f5c85612ba2565b92506000600384015460c060020a900460ff166002811115610f7a57fe5b14610f8457600080fd5b6001830154610f9b906001604060020a0316612be6565b9150611190826101006040519081016040528154909190829060ff166002811115610fc257fe5b6002811115610fcd57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110995780601f1061106e57610100808354040283529160200191611099565b820191906000526020600020905b81548152906001019060200180831161107c57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526130ab565b6001830154600284018054611249926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561122357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111e05790505b505050506003870154600091508190608060020a90046001604060020a03166001612cf2565b9050611256858286612fe2565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112cb57600080fd5b6102c65a03f115156112dc57600080fd5b5050505050505050565b60008060008060006112f78861178b565b975061130288612ba2565b945061130d86612be6565b935061131889612be6565b925061133f836101006040519081016040528154909190829060ff166002811115610fc257fe5b6000600386015460c060020a900460ff16600281111561135b57fe5b1461136557600080fd5b60018501546001604060020a038a811691161415611406576000845460ff16600281111561138f57fe5b14156113a5576113a08888886130f2565b611401565b6002845460ff1660028111156113b757fe5b14156113c8576113a0888888613122565b6001845460ff1660028111156113da57fe5b14156113ff576113f28888876002018054905061334b565b97506113a0888888613450565bfe5b611780565b6115378560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114d057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161148d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561152357fe5b600281111561152e57fe5b9052508a613577565b6001604060020a03908116925082146113ff576000845460ff16600281111561155c57fe5b14156115935760018501546001604060020a0387811691161461157b57fe5b61158d8888876002018054905061334b565b50611780565b6001845460ff1660028111156115a557fe5b1415611744576116dc8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116325790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c857fe5b60028111156116d357fe5b90525087613577565b6001604060020a039081169150811415611707576113f288886001858960020180549050030361334b565b81811115611726576113f288886001858960020180549050030361334b565b8181116114015761158d88886001848960020180549050030361334b565b6002845460ff16600281111561175657fe5b14156113ff5761177388886001858960020180549050030361334b565b97506114018888886135dd565b505050505050505050565b60008060008061179a85612ba2565b92506000600384015460c060020a900460ff1660028111156117b857fe5b146117c55784935061194c565b600383015460006001604060020a039091161180156117fe57506003830154604060020a90046001604060020a03166117fc613900565b115b1561191b5760018301546002840180546118bb926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118535790505b505050506003870154600091508190608060020a90046001604060020a031681612cf2565b60038401549092506118fb906001604060020a031660006040518059106118df5750595b9080825280602002602001820160405250600080866000612cf2565b905061190c85828560000154612fe2565b80945061191885612ba2565b92505b61192485612c2c565b90506001604060020a03808216908616146119485761194885828560000154612fe2565b8093505b505050919050565b6001805490818082016119678382613df8565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a2c929160200190613e29565b50606082015181600201908051611a47929160200190613e29565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed8576001604060020a03848481518110611b6e57fe5b90602001906020020151169150604060020a848481518110611b8c57fe5b90602001906020020151811515611b9f57fe5b049050611bac8282610f43565b600190920191611b51565b6000806001604060020a03851615611def57611bd285612be6565b90506002815460ff166002811115611be657fe5b14611bf057600080fd5b6014611de5826101006040519081016040528154909190829060ff166002811115611c1757fe5b6002811115611c2257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cee5780601f10611cc357610100808354040283529160200191611cee565b820191906000526020600020905b815481529060010190602001808311611cd157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d905780601f10611d6557610100808354040283529160200191611d90565b820191906000526020600020905b815481529060010190602001808311611d7357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613906565b10611def57600080fd5b60018054925082808201611e038382613df8565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e8357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec9929160200190613e29565b50606082015181600201908051611ee4929160200190613e29565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fed82612be6565b9050612014816101006040519081016040528154909190829060ff166002811115610fc257fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120838382613df8565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561210257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612148929160200190613e29565b50606082015181600201908051612163929160200190613e29565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed8576001604060020a0384848151811061227f57fe5b90602001906020020151169150604060020a84848151811061229d57fe5b906020019060200201518115156122b057fe5b0490506122bd8282610d9b565b600190920191612262565b60045481565b600455565b6000806122df8461178b565b93506122ea84612ba2565b6003810154909250608060020a90046001604060020a0316151561230d57600080fd5b6001820154612324906001604060020a0316612be6565b905061234b816101006040519081016040528154909190829060ff166002811115610fc257fe5b6003820154610ed8908590608060020a90046001604060020a031685612fe2565b600080805b83518210156123b0576001604060020a0384838151811061238e57fe5b906020019060200201511690506123a48161178b565b50600190910190612371565b5050919050565b60008080806001604060020a03861615156123fd576123fa6020604051908101604052806000815250602060405190810160405260008082526203f48090612070565b95505b61240686612be6565b935061242d846101006040519081016040528154909190829060ff166002811115610fc257fe5b6000845460ff16600281111561243f57fe5b1461244957600080fd5b3492506000831161245957600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561248c57600080fd5b6124bb86600060405180591061249f5750595b9080825280602002602001820160405250600080600080612cf2565b91506124c682612ba2565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612519868385886112e6565b505050505050565b600061252c86612be6565b90506001815460ff16600281111561254057fe5b1461254a57600080fd5b805433600160a060020a03908116610100909204161461256957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161259c929160200190613e29565b50600281018380516125b2929160200190613e29565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b8451831015612519576001604060020a0385848151811061262e57fe5b90602001906020020151169150604060020a85848151811061264c57fe5b9060200190602002015181151561265f57fe5b04905061266e868383876112e6565b600190920191612611565b600061268486612be6565b90506000815460ff16600281111561269857fe5b146126a257600080fd5b805433600160a060020a0390811661010090920416146126c157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126f4929160200190613e29565b506002810183805161270a929160200190613e29565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461278457600080fd5b61278d84612ba2565b91506001600383015460c060020a900460ff1660028111156127ab57fe5b146127b557600080fd5b600182015460028301805461286d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561284857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116128055790505b505050506003860154600091508190608060020a90046001604060020a031681612cf2565b9050610ecb8161178b565b600080612883613de6565b61288b613de6565b600080600080600061289c8a612be6565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129525780601f1061292757610100808354040283529160200191612952565b820191906000526020600020905b81548152906001019060200180831161293557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129f15780601f106129c6576101008083540402835291602001916129f1565b820191906000526020600020905b8154815290600101906020018083116129d457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed8576001604060020a03848481518110612a5f57fe5b90602001906020020151169150604060020a848481518110612a7d57fe5b90602001906020020151811515612a9057fe5b049050612a9d8282612764565b600190920191612a42565b6000612ab386612be6565b90506002815460ff166002811115612ac757fe5b14612ad157600080fd5b805433600160a060020a039081166101009092041614612af057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b23929160200190613e29565b5060028101838051612b39929160200190613e29565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612bba57600080fd5b600080546001604060020a038416908110612bd157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612c0057600080fd5b600180546001604060020a038416908110612c1757fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c4957600092506123b0565b612c5284612ba2565b6001810154909250612c6c906001604060020a0316612be6565b90506000815460ff166002811115612c8057fe5b1415612c8e578392506123b0565b6002815460ff166002811115612ca057fe5b14612ca757fe5b6001820154612cbe906001604060020a0316610ce0565b1515612ccc578392506123b0565b6003820154612cea90608060020a90046001604060020a0316612c2c565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d3f578082015183820152602001612d27565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612dac57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612e1557809250612fd6565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e538382613ea7565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612ec457fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612f0f929160200190613ed3565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612fca57fe5b02179055505050508092505b50509695505050505050565b6000806000612ff46001878787613970565b9250846001604060020a0316866001604060020a0316141561301557612519565b82151561302157612519565b61302a86612ba2565b915061303585612ba2565b82549091508390101561304757600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130a26000878786613970565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130e457508060e00151600160a060020a031633600160a060020a0316145b15156130ef57600080fd5b50565b6000610ecb82600060405180591061249f5750599080825280602002602001820160405250600080600080612cf2565b600080600061313086612ba2565b925060146132648460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131fe57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131bb5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561325157fe5b600281111561325c57fe5b905250613996565b1061326e57600080fd5b61327784610ce0565b1561328157600080fd5b600183015460028401805461330e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657600091825260209182902080546001604060020a031684529082028301929091600891018084116118535750505050600388015460009250829150608060020a90046001604060020a031681612cf2565b915061333e8460006040518059106118df5750599080825280602002602001820160405250600080866000612cf2565b9050612519868287612fe2565b600080613356613de6565b60008061336288612ba2565b600281015490945086900360405180591061337a5750595b90808252806020026020018201604052509250600091505b600284015486900382101561340857600284018054839081106133b157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133e657fe5b6001604060020a03909216602092830290910190910152600190910190613392565b60018401546003850154613438916001604060020a039081169186916000918291608060020a9091041681612cf2565b9050613445888289612fe2565b979650505050505050565b600061345a613de6565b60008061346687612ba2565b60028101549094506014901061347b57600080fd5b60028401546001016040518059106134905750595b90808252806020026020018201604052509250600091505b600284015482101561351b57600284018054839081106134c457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134f957fe5b6001604060020a039092166020928302909101909101526001909101906134a8565b6002840154859084908151811061352e57fe5b6001604060020a03928316602091820290920101526001850154600386015461356a929182169186916000918291608060020a90041681612cf2565b90506130a2878288612fe2565b6000805b8360400151518110156135cb57826001604060020a0316846040015182815181106135a257fe5b906020019060200201516001604060020a031614156135c3578091506135d6565b60010161357b565b6001604060020a0391505b5092915050565b6000806135e985612ba2565b915060146136df8360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131fe57600091825260209182902080546001604060020a031684529082028301929091600891018084116131bb5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561325157fe5b106136e957600080fd5b6136f283610ce0565b156136fc57600080fd5b60018201546002830180546138ec926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561378f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161374c5790505b5050505050856138c58660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561385f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161381c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156138b257fe5b60028111156138bd57fe5b905250613ac1565b6138cd613900565b6003880154910190608060020a90046001604060020a03166000612cf2565b90506138f9858286612fe2565b5050505050565b60045490565b60008060028351600281111561391857fe5b1461391f57fe5b8260a001516001604060020a0316151561393c5760019150610d8a565b6139498360a00151612be6565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1757fe5b8061397e8585808685613b4b565b905061398d8584868685613b4b565b95945050505050565b6000808260a001516001604060020a031615156139b65760009150610d8a565b6139c38360a00151612ba2565b9050613ab78160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131fe57600091825260209182902080546001604060020a031684529082028301929091600891018084116131bb5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561325157fe5b6001019392505050565b6000806000613ad38460200151612be6565b60038101546001604060020a031693509150600090505b8360400151518110156123b057613b1984604001518281518110613b0a57fe5b90602001906020020151612be6565b60038101549092506001604060020a031683901115613b435760038201546001604060020a031692505b600101613aea565b600080600080866001604060020a0316886001604060020a031614613b7257610100613b75565b60005b61ffff169250849350613b8788612ba2565b6001810154909250613ba7908a906001604060020a031689898789613c69565b9350600090505b60028201546001604060020a0382161015613c2257613c188983600201836001604060020a0316815481101515613be157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c69565b9350600101613bae565b600382015460006001604060020a039091161115613c5d576003820154613c5a908a906001604060020a0316898960ff880189613c69565b93505b50505095945050505050565b80600080613c7688612be6565b6004810154909150600160a060020a031615801590613c955750600083115b15612fd6578815613d50576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613d1f57600080fd5b6102c65a03f11515613d3057600080fd5b505050604051805192505082821115613d4857600080fd5b819250612fd6565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613dc657600080fd5b6102c65a03f11515613dd757600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e2457600502816005028360005260206000209182019101613e249190613f87565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e6a57805160ff1916838001178555613e97565b82800160010185558215613e97579182015b82811115613e97578251825591602001919060010190613e7c565b50613ea3929150614012565b5090565b815481835581811511613e2457600402816004028360005260206000209182019101613e24919061402c565b82805482825590600052602060002090600301600490048101928215613f7b5791602002820160005b83821115613f4657835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613efc565b8015613f795782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f46565b505b50613ea392915061408c565b610d9891905b80821115613ea357805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fc060018301826140b1565b613fce6002830160006140b1565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f8d565b610d9891905b80821115613ea35760008155600101614018565b610d9891905b80821115613ea357600080825560018201805467ffffffffffffffff1916905561405f60028301826140f5565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614032565b610d9891905b80821115613ea357805467ffffffffffffffff19168155600101614092565b50805460018160011615610100020316600290046000825580601f106140d757506130ef565b601f0160209004906000526020600020908101906130ef9190614012565b5080546000825560030160049004906000526020600020908101906130ef91906140125600a165627a7a7230582030268ebc864e6cbec7b1db1bc8fa69c2d07389cec98a65ef6db4899b762710730029" +exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" -exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0x5504b905d268eb180b6f677b071573999687d1d9b3bbca60a995b6d76307e3e9" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" +exports._sha256 = "0x21c1c1c93b578926ea534107c0d4b9923d420634e8085d365ab444cb13b8f1ff" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol index 96c9d75..2849aef 100644 --- a/build/LiquidPledgingMock_all.sol +++ b/build/LiquidPledgingMock_all.sol @@ -646,6 +646,7 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { idPledge = normalizePledge(idPledge); Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol index bb20d40..d76360c 100644 --- a/build/LiquidPledging_all.sol +++ b/build/LiquidPledging_all.sol @@ -646,6 +646,7 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { idPledge = normalizePledge(idPledge); Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); diff --git a/build/Owned.sol.js b/build/Owned.sol.js index 61f3ab3..55f206c 100644 --- a/build/Owned.sol.js +++ b/build/Owned.sol.js @@ -1,6 +1,6 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.OwnedAbi = [{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"}] -exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b5b60008054600160a060020a03191633600160a060020a03161790555b5b6101d18061003c6000396000f300606060405263ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba5097811461005e5780638da5cb5b14610073578063a6f9dae1146100a2578063d4ee1d90146100c3575b600080fd5b341561006957600080fd5b6100716100f2565b005b341561007e57600080fd5b61008661013f565b604051600160a060020a03909116815260200160405180910390f35b34156100ad57600080fd5b610071600160a060020a036004351661014e565b005b34156100ce57600080fd5b610086610196565b604051600160a060020a03909116815260200160405180910390f35b60015433600160a060020a0390811691161461010d57600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b600054600160a060020a031681565b60005433600160a060020a0390811691161461016957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600154600160a060020a0316815600a165627a7a72305820e68440031004354b3db9d740fb2b8896f5bedd56653beb65edd62e94e414a7ad0029" -exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" +exports.OwnedAbi = [{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101bc8061003b6000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007b578063a6f9dae1146100aa578063d4ee1d90146100c9575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e610128565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b610079600160a060020a0360043516610137565b34156100d457600080fd5b61008e610181565b60015433600160a060020a039081169116146100f757600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461015257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a0316815600a165627a7a7230582093915e2078cf23efe265b372c026c6cbc79ddd13f04e6e31d52efe53c70380790029" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" exports._sha256 = "0xf61824cbb7f4765beceba9899e284825b9c60abba4179558d6b40e6976076b6b" diff --git a/build/Vault.sol.js b/build/Vault.sol.js index 54d8914..5a7ef82 100644 --- a/build/Vault.sol.js +++ b/build/Vault.sol.js @@ -1,10 +1,10 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"}] +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.LiquidPledgingByteCode = "0x" -exports.OwnedAbi = [{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"}] -exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b5b60008054600160a060020a03191633600160a060020a03161790555b5b6101d18061003c6000396000f300606060405263ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba5097811461005e5780638da5cb5b14610073578063a6f9dae1146100a2578063d4ee1d90146100c3575b600080fd5b341561006957600080fd5b6100716100f2565b005b341561007e57600080fd5b61008661013f565b604051600160a060020a03909116815260200160405180910390f35b34156100ad57600080fd5b610071600160a060020a036004351661014e565b005b34156100ce57600080fd5b610086610196565b604051600160a060020a03909116815260200160405180910390f35b60015433600160a060020a0390811691161461010d57600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b600054600160a060020a031681565b60005433600160a060020a0390811691161461016957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600154600160a060020a0316815600a165627a7a723058206a8fea8a6be1bef5d767c60630c0553a5c81aea6d4751c10e110a74f895c33830029" -exports.VaultAbi = [{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"state","type":"uint8"},{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"VaultMock","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newLiquidPledging","type":"address"}],"name":"setLiquidPledging","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"}] -exports.VaultByteCode = "0x60606040525b60008054600160a060020a03191633600160a060020a03161790555b5b610b0e806100316000396000f300606060405236156100ca5763ffffffff60e060020a6000350416633baf35fb81146100ce57806374041d1f146100f357806379ba5097146101225780638422927d14610137578063876ca09f1461014f57806387d81789146101675780638da5cb5b146101c5578063a4500c33146101f4578063a6f9dae11461020e578063b796105c1461022f578063bb4f28df14610280578063bbc32820146102b7578063cd6b8caf146102de578063d4ee1d90146102f3578063e99996b114610322578063ffd82d2114610343575b5b5b005b34156100d957600080fd5b6100e1610394565b60405190815260200160405180910390f35b34156100fe57600080fd5b61010661039b565b604051600160a060020a03909116815260200160405180910390f35b341561012d57600080fd5b6100ca6103aa565b005b341561014257600080fd5b6100ca6004356103f7565b005b341561015a57600080fd5b6100ca600435610420565b005b341561017257600080fd5b61017d600435610449565b6040518085600281111561018d57fe5b60ff168152602081019490945250600160a060020a039091166040808401919091526060830191909152608090910191505180910390f35b34156101d057600080fd5b610106610490565b604051600160a060020a03909116815260200160405180910390f35b34156101ff57600080fd5b6100ca600435151561049f565b005b341561021957600080fd5b6100ca600160a060020a03600435166104f8565b005b341561023a57600080fd5b6100ca600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061054095505050505050565b005b341561028b57600080fd5b6100e1600435600160a060020a0360243516604435610596565b60405190815260200160405180910390f35b34156102c257600080fd5b6102ca61071f565b604051901515815260200160405180910390f35b34156102e957600080fd5b6100ca6103f5565b005b34156102fe57600080fd5b610106610743565b604051600160a060020a03909116815260200160405180910390f35b341561032d57600080fd5b6100ca600160a060020a0360043516610752565b005b341561034e57600080fd5b6100ca60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506107b095505050505050565b005b6003545b90565b600254600160a060020a031681565b60015433600160a060020a039081169116146103c557600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b60005433600160a060020a0390811691161461041257600080fd5b61041b81610806565b5b5b50565b60005433600160a060020a0390811691161461043b57600080fd5b61041b81610914565b5b5b50565b600380548290811061045757fe5b906000526020600020906004020160005b5080546001820154600283015460039093015460ff909216935091600160a060020a03169084565b600054600160a060020a031681565b60005433600160a060020a039081169116146104ba57600080fd5b6002805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515021790555b5b50565b60005433600160a060020a0390811691161461051357600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000805433600160a060020a0390811691161461055c57600080fd5b5060005b81518110156105905761058782828151811061057857fe5b90602001906020020151610806565b5b600101610560565b5b5b5050565b600254600090819033600160a060020a039081169116146105b657600080fd5b50600380549081906105cb9060018301610a5e565b5060006003828154811015156105dd57fe5b906000526020600020906004020160005b50805460ff1916600183600281111561060357fe5b02179055508460038281548110151561061857fe5b906000526020600020906004020160005b5060010155600380548591908390811061063f57fe5b906000526020600020906004020160005b50600201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600380548491908390811061069057fe5b906000526020600020906004020160005b5060030155600160a060020a03841685827fb025fbd648b47675e5160bb9a938180cda38f285280e390d3aac0c3c0002ba088660405190815260200160405180910390a460025474010000000000000000000000000000000000000000900460ff16156107115761071181610914565b5b8091505b5b509392505050565b60025474010000000000000000000000000000000000000000900460ff1681565b5b565b600154600160a060020a031681565b60005433600160a060020a0390811691161461076d57600080fd5b600254600160a060020a03161561078357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000805433600160a060020a039081169116146107cc57600080fd5b5060005b8151811015610590576107f78282815181106107e857fe5b90602001906020020151610914565b5b6001016107d0565b5b5b5050565b600354600090821061081757600080fd5b600380548390811061082557fe5b906000526020600020906004020160005b50905060005b815460ff16600281111561084c57fe5b1461085657600080fd5b8054600290829060ff19166001835b021790555060025460018201546003830154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156108ce57600080fd5b6102c65a03f115156108df57600080fd5b505050817ff1a1a3c38f42dc56b083903c7f8fb342b64c15e710c3a4179a4ba5c36733e91d60405160405180910390a25b5050565b600354600090821061092557600080fd5b600380548390811061093357fe5b906000526020600020906004020160005b50905060005b815460ff16600281111561095a57fe5b1461096457600080fd5b8054600190829060ff191682805b021790555060028101546003820154600160a060020a039091169080156108fc0290604051600060405180830381858888f1935050505015156109b457600080fd5b60025460018201546003830154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b1515610a1857600080fd5b6102c65a03f11515610a2957600080fd5b505050817fe46ac4851953c525120fe90499f529bf6236f067292c975d33ad0afb2c585be660405160405180910390a25b5050565b815481835581811511610a8a57600402816004028360005260206000209182019101610a8a9190610a90565b5b505050565b61039891905b80821115610adb57805460ff1916815560006001820181905560028201805473ffffffffffffffffffffffffffffffffffffffff191690556003820155600401610a96565b5090565b905600a165627a7a7230582089d4f70c572dccc9382e705b36c8488331b5d5488a6793173458a9da9f0cb0c80029" -exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" +exports.OwnedAbi = [{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101bc8061003b6000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007b578063a6f9dae1146100aa578063d4ee1d90146100c9575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e610128565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b610079600160a060020a0360043516610137565b34156100d457600080fd5b61008e610181565b60015433600160a060020a039081169116146100f757600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461015257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a0316815600a165627a7a72305820885574d1a0e8ce290bfa7a88060f12652b15d02606bfe818c0778bcfe49198070029" +exports.VaultAbi = [{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"state","type":"uint8"},{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"VaultMock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newLiquidPledging","type":"address"}],"name":"setLiquidPledging","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"}] +exports.VaultByteCode = "0x606060405260008054600160a060020a033316600160a060020a0319909116179055610a68806100306000396000f3006060604052600436106100cc5763ffffffff60e060020a6000350416633baf35fb81146100ce57806374041d1f146100f357806379ba5097146101225780638422927d14610135578063876ca09f1461014b57806387d81789146101615780638da5cb5b146101bf578063a4500c33146101d2578063a6f9dae1146101ea578063b796105c14610209578063bb4f28df14610258578063bbc328201461027d578063cd6b8caf146102a4578063d4ee1d90146102b7578063e99996b1146102ca578063ffd82d21146102e9575b005b34156100d957600080fd5b6100e1610338565b60405190815260200160405180910390f35b34156100fe57600080fd5b61010661033f565b604051600160a060020a03909116815260200160405180910390f35b341561012d57600080fd5b6100cc61034e565b341561014057600080fd5b6100cc60043561039a565b341561015657600080fd5b6100cc6004356103c1565b341561016c57600080fd5b6101776004356103e5565b6040518085600281111561018757fe5b60ff168152602081019490945250600160a060020a039091166040808401919091526060830191909152608090910191505180910390f35b34156101ca57600080fd5b61010661042a565b34156101dd57600080fd5b6100cc6004351515610439565b34156101f557600080fd5b6100cc600160a060020a0360043516610494565b341561021457600080fd5b6100cc60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506104de95505050505050565b341561026357600080fd5b6100e1600435600160a060020a0360243516604435610531565b341561028857600080fd5b6102906106a2565b604051901515815260200160405180910390f35b34156102af57600080fd5b6100cc6106c3565b34156102c257600080fd5b6101066106c5565b34156102d557600080fd5b6100cc600160a060020a03600435166106d4565b34156102f457600080fd5b6100cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061073495505050505050565b6003545b90565b600254600160a060020a031681565b60015433600160a060020a0390811691161461036957600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60005433600160a060020a039081169116146103b557600080fd5b6103be81610783565b50565b60005433600160a060020a039081169116146103dc57600080fd5b6103be81610881565b60038054829081106103f357fe5b6000918252602090912060049091020180546001820154600283015460039093015460ff909216935091600160a060020a03169084565b600054600160a060020a031681565b60005433600160a060020a0390811691161461045457600080fd5b60028054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a039081169116146104af57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a039081169116146104fa57600080fd5b5060005b815181101561052d5761052582828151811061051657fe5b90602001906020020151610783565b6001016104fe565b5050565b600254600090819033600160a060020a0390811691161461055157600080fd5b506003805490819061056690600183016109bc565b50600060038281548110151561057857fe5b60009182526020909120600490910201805460ff1916600183600281111561059c57fe5b0217905550846003828154811015156105b157fe5b600091825260209091206001600490920201015560038054859190839081106105d657fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055508260038281548110151561061b57fe5b6000918252602090912060036004909202010155600160a060020a03841685827fb025fbd648b47675e5160bb9a938180cda38f285280e390d3aac0c3c0002ba088660405190815260200160405180910390a460025474010000000000000000000000000000000000000000900460ff161561069a5761069a81610881565b949350505050565b60025474010000000000000000000000000000000000000000900460ff1681565b565b600154600160a060020a031681565b60005433600160a060020a039081169116146106ef57600080fd5b600254600160a060020a03161561070557600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a0390811691161461075057600080fd5b5060005b815181101561052d5761077b82828151811061076c57fe5b90602001906020020151610881565b600101610754565b600354600090821061079457600080fd5b60038054839081106107a257fe5b6000918252602082206004909102019150815460ff1660028111156107c357fe5b146107cd57600080fd5b805460ff1916600290811782555460018201546003830154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561083c57600080fd5b6102c65a03f1151561084d57600080fd5b505050817ff1a1a3c38f42dc56b083903c7f8fb342b64c15e710c3a4179a4ba5c36733e91d60405160405180910390a25050565b600354600090821061089257600080fd5b60038054839081106108a057fe5b6000918252602082206004909102019150815460ff1660028111156108c157fe5b146108cb57600080fd5b805460ff1916600117815560028101546003820154600160a060020a03909116906108fc81150290604051600060405180830381858888f19350505050151561091357600080fd5b60025460018201546003830154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561097757600080fd5b6102c65a03f1151561098857600080fd5b505050817fe46ac4851953c525120fe90499f529bf6236f067292c975d33ad0afb2c585be660405160405180910390a25050565b8154818355818115116109e8576004028160040283600052602060002091820191016109e891906109ed565b505050565b61033c91905b80821115610a3857805460ff1916815560006001820181905560028201805473ffffffffffffffffffffffffffffffffffffffff1916905560038201556004016109f3565b50905600a165627a7a72305820aff4581a87d38cad743a6d7ee5d05b3093a02b882cdfd5a325adf857ea35deec0029" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" exports._sha256 = "0x55fb3ff315e3297664118d0d8d4eefb81be1c0f350996fb5657a68a41491d8be" diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index d6a2135..da9461f 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -232,6 +232,7 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { idPledge = normalizePledge(idPledge); Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); diff --git a/test/CancelPledge.js b/test/CancelPledge.js new file mode 100644 index 0000000..d4d1bad --- /dev/null +++ b/test/CancelPledge.js @@ -0,0 +1,89 @@ +/* eslint-env mocha */ +/* eslint-disable no-await-in-loop */ +const TestRPC = require('ethereumjs-testrpc'); +const Web3 = require('web3'); +const chai = require('chai'); +const liquidpledging = require('../index.js'); +const assertFail = require('./helpers/assertFail'); + +const LiquidPledging = liquidpledging.LiquidPledgingMock; +const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const Vault = liquidpledging.Vault; +const assert = chai.assert; + +const printState = async (liquidPledgingState) => { + const st = await liquidPledgingState.getState(); + console.log(JSON.stringify(st, null, 2)); +}; + +describe('LiquidPledging cancelPledge normal scenario', function () { + this.timeout(0); + + let testrpc; + let web3; + let accounts; + let liquidPledging; + let liquidPledgingState; + let vault; + let giver1; + let adminProject1; + let adminProject2; + + before(async () => { + testrpc = TestRPC.server({ + ws: true, + gasLimit: 5800000, + total_accounts: 10, + }); + + testrpc.listen(8546, '127.0.0.1'); + + web3 = new Web3('ws://localhost:8546'); + accounts = await web3.eth.getAccounts(); + giver1 = accounts[ 1 ]; + adminProject1 = accounts[ 2 ]; + adminProject2 = accounts[ 3 ]; + }); + + after((done) => { + testrpc.close(); + done(); + }); + + it('Should deploy LiquidPledging contract', async () => { + vault = await Vault.new(web3); + liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); + }); + + it('Should add project and donate ', async () => { + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, '0x0', { from: adminProject1 }); + await liquidPledging.donate(0, 1, { from: giver1, value: '1000', gas: 500000 }); + + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(nAdmins, 2); + }); + + it('Should only allow pledge owner to cancel pledge', async () => { + await assertFail(async () => { + await liquidPledging.cancelPledge(2, 1000, { from: giver1, gas: 500000 }); + }); + }); + + it('Should cancel pledge and return to oldPledge', async () => { + await liquidPledging.cancelPledge(2, 1000, { from: adminProject1, gas: 500000 }); + + const st = await liquidPledgingState.getState(); + + assert.equal(st.pledges[1].amount, 1000); + assert.equal(st.pledges[2].amount, 0); + }); + + it('Should not allow to cancel pledge if oldPledge === 0', async () => { + await assertFail(async () => { + await liquidPledging.cancelPledge(1, 1000, { from: giver1, gas: 500000 }); + }); + }) +}); + diff --git a/test/VetoDelegation.js b/test/VetoDelegation.js index 2617e8f..4af1494 100644 --- a/test/VetoDelegation.js +++ b/test/VetoDelegation.js @@ -89,14 +89,11 @@ describe('LiquidPledging test', () => { const origPledge = await liquidPledging.getPledge(2); assert.equal(origPledge.amount, '0'); -// await printState(liquidPledgingState); // veto the delegation await liquidPledging.transfer(2, 3, '1000', 1, { from: giver1, gas: 400000 }); const currentPledge = await liquidPledging.getPledge(2); -// await printState(liquidPledgingState); - assert.equal(currentPledge.amount, '1000'); assert.equal(currentPledge.nDelegates, 1); }); From 34adef5505c28ddee3ffa2ef3ea7beb552f39d25 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 19 Oct 2017 10:32:06 -0700 Subject: [PATCH 04/14] cancelPledge getOldestPledgeNotCanceled This will eliminate the bug when pledge.oldPledge is a canceled project w/ a plugin and the plugin rejects transfers when canceled. This would prevent the pledge from being canceled. We address this by transfering the pledge amount to the oldestPledgeNotCanceled. --- build/LiquidPledging.sol.js | 6 +++--- build/LiquidPledgingMock.sol.js | 8 ++++---- build/LiquidPledgingMock_all.sol | 3 ++- build/LiquidPledging_all.sol | 3 ++- contracts/LiquidPledging.sol | 3 ++- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index bb357b7..c91602e 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -3,10 +3,10 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434583398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140fa806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061232295505050505050565b6102726001604060020a036004358116906024351661236d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124d7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125c2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061262f915050565b34156108d657600080fd5b6102726001604060020a036004351660243561271a565b34156108f857600080fd5b61090c6001604060020a036004351661282e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129f395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a5e915050565b3415610b5857600080fd5b610b60612b49565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d9a565b600080610b9387612b58565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b9c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b9c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b58565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612be2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612ca8565b9050610e99848285612f98565b50505050565b600080600080600080600080610eb489612b58565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b58565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b9c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613061565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612ca8565b9050611217858286612f98565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b58565b94506112ce86612b9c565b93506112d989612b9c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130a8565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130d8565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613301565b9750611361888888613406565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61352d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613301565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761352d565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613301565b818111156116e7576113b3888860018589600201805490500303613301565b8181116113c25761154e888860018489600201805490500303613301565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613301565b97506113c2888888613593565b505050505050505050565b60008060008061175b85612b58565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b6565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612ca8565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612ca8565b90506118cd85828560000154612f98565b8094506118d985612b58565b92505b6118e585612be2565b90506001604060020a03808216908616146119095761190985828560000154612f98565b8093505b505050919050565b6001805490818082016119288382613dac565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddd565b50606082015181600201908051611a08929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b9c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138ba565b10611db057600080fd5b60018054925082808201611dc48382613dac565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddd565b50606082015181600201908051611ea5929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b9c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dac565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddd565b50606082015181600201908051612124929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b58565b6003810154909250608060020a90046001604060020a031615156122c357600080fd5b60018201546122da906001604060020a0316612b9c565b9050612301816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f98565b600080805b8351821015612366576001604060020a0384838151811061234457fe5b9060200190602002015116905061235a8161174c565b50600190910190612327565b5050919050565b60008080806001604060020a03861615156123b3576123b06020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123bc86612b9c565b93506123e3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123f557fe5b146123ff57600080fd5b3492506000831161240f57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561244257600080fd5b6124718660006040518059106124555750595b9080825280602002602001820160405250600080600080612ca8565b915061247c82612b58565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124cf868385886112a7565b505050505050565b60006124e286612b9c565b90506001815460ff1660028111156124f657fe5b1461250057600080fd5b805433600160a060020a03908116610100909204161461251f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612552929160200190613ddd565b5060028101838051612568929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124cf576001604060020a038584815181106125e457fe5b90602001906020020151169150604060020a85848151811061260257fe5b9060200190602002015181151561261557fe5b049050612624868383876112a7565b6001909201916125c7565b600061263a86612b9c565b90506000815460ff16600281111561264e57fe5b1461265857600080fd5b805433600160a060020a03908116610100909204161461267757600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126aa929160200190613ddd565b50600281018380516126c0929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273a57600080fd5b61274384612b58565b91506001600383015460c060020a900460ff16600281111561276157fe5b1461276b57600080fd5b6001820154600283018054612823926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127fe57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127bb5790505b505050506003860154600091508190608060020a90046001604060020a031681612ca8565b9050610e8c8161174c565b600080612839613d9a565b612841613d9a565b60008060008060006128528a612b9c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a75780601f1061297c576101008083540402835291602001916129a7565b820191906000526020600020905b81548152906001019060200180831161298a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a1557fe5b90602001906020020151169150604060020a848481518110612a3357fe5b90602001906020020151811515612a4657fe5b049050612a53828261271a565b6001909201916129f8565b6000612a6986612b9c565b90506002815460ff166002811115612a7d57fe5b14612a8757600080fd5b805433600160a060020a039081166101009092041614612aa657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad9929160200190613ddd565b5060028101838051612aef929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b7057600080fd5b600080546001604060020a038416908110612b8757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb657600080fd5b600180546001604060020a038416908110612bcd57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bff5760009250612366565b612c0884612b58565b6001810154909250612c22906001604060020a0316612b9c565b90506000815460ff166002811115612c3657fe5b1415612c4457839250612366565b6002815460ff166002811115612c5657fe5b14612c5d57fe5b6001820154612c74906001604060020a0316610ca1565b1515612c8257839250612366565b6003820154612ca090608060020a90046001604060020a0316612be2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cf5578082015183820152602001612cdd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d6257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dcb57809250612f8c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e098382613e5b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e7a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ec5929160200190613e87565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f8057fe5b02179055505050508092505b50509695505050505050565b6000806000612faa6001878787613924565b9250846001604060020a0316866001604060020a03161415612fcb576124cf565b821515612fd7576124cf565b612fe086612b58565b9150612feb85612b58565b825490915083901015612ffd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130586000878786613924565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061309a57508060e00151600160a060020a031633600160a060020a0316145b15156130a557600080fd5b50565b6000610e8c8260006040518059106124555750599080825280602002602001820160405250600080600080612ca8565b60008060006130e686612b58565b9250601461321a8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131715790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b600281111561321257fe5b90525061394a565b1061322457600080fd5b61322d84610ca1565b1561323757600080fd5b60018301546002840180546132c4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612ca8565b91506132f48460006040518059106118a05750599080825280602002602001820160405250600080866000612ca8565b90506124cf868287612f98565b60008061330c613d9a565b60008061331888612b58565b60028101549094508690036040518059106133305750595b90808252806020026020018201604052509250600091505b60028401548690038210156133be576002840180548390811061336757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061339c57fe5b6001604060020a03909216602092830290910190910152600190910190613348565b600184015460038501546133ee916001604060020a039081169186916000918291608060020a9091041681612ca8565b90506133fb888289612f98565b979650505050505050565b6000613410613d9a565b60008061341c87612b58565b60028101549094506014901061343157600080fd5b60028401546001016040518059106134465750595b90808252806020026020018201604052509250600091505b60028401548210156134d1576002840180548390811061347a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134af57fe5b6001604060020a0390921660209283029091019091015260019091019061345e565b600284015485908490815181106134e457fe5b6001604060020a039283166020918202909201015260018501546003860154613520929182169186916000918291608060020a90041681612ca8565b9050613058878288612f98565b6000805b83604001515181101561358157826001604060020a03168460400151828151811061355857fe5b906020019060200201516001604060020a031614156135795780915061358c565b600101613531565b6001604060020a0391505b5092915050565b60008061359f85612b58565b915060146136958360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b1061369f57600080fd5b6136a883610ca1565b156136b257600080fd5b60018201546002830180546138a2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561374557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137025790505b50505050508561387b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561381557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137d25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561386857fe5b600281111561387357fe5b905250613a75565b6138836138b6565b6003880154910190608060020a90046001604060020a03166000612ca8565b90506138af858286612f98565b5050505050565b4290565b6000806002835160028111156138cc57fe5b146138d357fe5b8260a001516001604060020a031615156138f05760019150610d4b565b6138fd8360a00151612b9c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139328585808685613aff565b90506139418584868685613aff565b95945050505050565b6000808260a001516001604060020a0316151561396a5760009150610d4b565b6139778360a00151612b58565b9050613a6b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b6001019392505050565b6000806000613a878460200151612b9c565b60038101546001604060020a031693509150600090505b83604001515181101561236657613acd84604001518281518110613abe57fe5b90602001906020020151612b9c565b60038101549092506001604060020a031683901115613af75760038201546001604060020a031692505b600101613a9e565b600080600080866001604060020a0316886001604060020a031614613b2657610100613b29565b60005b61ffff169250849350613b3b88612b58565b6001810154909250613b5b908a906001604060020a031689898789613c1d565b9350600090505b60028201546001604060020a0382161015613bd657613bcc8983600201836001604060020a0316815481101515613b9557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1d565b9350600101613b62565b600382015460006001604060020a039091161115613c11576003820154613c0e908a906001604060020a0316898960ff880189613c1d565b93505b50505095945050505050565b80600080613c2a88612b9c565b6004810154909150600160a060020a031615801590613c495750600083115b15612f8c578815613d04576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805192505082821115613cfc57600080fd5b819250612f8c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7a57600080fd5b6102c65a03f11515613d8b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd857600502816005028360005260206000209182019101613dd89190613f3b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1e57805160ff1916838001178555613e4b565b82800160010185558215613e4b579182015b82811115613e4b578251825591602001919060010190613e30565b50613e57929150613fc6565b5090565b815481835581811511613dd857600402816004028360005260206000209182019101613dd89190613fe0565b82805482825590600052602060002090600301600490048101928215613f2f5791602002820160005b83821115613efa57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eb0565b8015613f2d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613efa565b505b50613e57929150614040565b610d5991905b80821115613e5757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f746001830182614065565b613f82600283016000614065565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f41565b610d5991905b80821115613e575760008155600101613fcc565b610d5991905b80821115613e5757600080825560018201805467ffffffffffffffff1916905561401360028301826140a9565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe6565b610d5991905b80821115613e5757805467ffffffffffffffff19168155600101614046565b50805460018160011615610100020316600290046000825580601f1061408b57506130a5565b601f0160209004906000526020600020908101906130a59190613fc6565b5080546000825560030160049004906000526020600020908101906130a59190613fc65600a165627a7a7230582013fe100f806fdce84031ba3b8c5601b70428706b64de2cd2f9f7eaf5100dfdb80029" +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434483398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140f9806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061233595505050505050565b6102726001604060020a0360043581169060243516612380565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124ea915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125d5915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612642915050565b34156108d657600080fd5b6102726001604060020a036004351660243561272d565b34156108f857600080fd5b61090c6001604060020a0360043516612841565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a0695505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a71915050565b3415610b5857600080fd5b610b60612b5c565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d99565b600080610b9387612b6b565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612baf565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612baf565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b6b565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bf5565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612cbb565b9050610e99848285612fab565b50505050565b600080600080600080600080610eb489612b6b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b6b565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612baf565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613074565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612cbb565b9050611217858286612fab565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b6b565b94506112ce86612baf565b93506112d989612baf565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130bb565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130eb565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613314565b9750611361888888613419565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a613540565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613314565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b90525087613540565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613314565b818111156116e7576113b3888860018589600201805490500303613314565b8181116113c25761154e888860018489600201805490500303613314565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613314565b97506113c28888886135a6565b505050505050505050565b60008060008061175b85612b6b565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b5565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612cbb565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612cbb565b90506118cd85828560000154612fab565b8094506118d985612b6b565b92505b6118e585612bf5565b90506001604060020a03808216908616146119095761190985828560000154612fab565b8093505b505050919050565b6001805490818082016119288382613dab565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddc565b50606082015181600201908051611a08929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612baf565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138b9565b10611db057600080fd5b60018054925082808201611dc48382613dab565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddc565b50606082015181600201908051611ea5929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612baf565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dab565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddc565b50606082015181600201908051612124929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b60008060006122978561174c565b94506122a285612b6b565b6003810154909350608060020a90046001604060020a031615156122c557600080fd5b60018301546122dc906001604060020a0316612baf565b9150612303826101006040519081016040528154909190829060ff166002811115610f8357fe5b600383015461232190608060020a90046001604060020a0316612bf5565b905061232e858286612fab565b5050505050565b600080805b8351821015612379576001604060020a0384838151811061235757fe5b9060200190602002015116905061236d8161174c565b5060019091019061233a565b5050919050565b60008080806001604060020a03861615156123c6576123c36020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123cf86612baf565b93506123f6846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff16600281111561240857fe5b1461241257600080fd5b3492506000831161242257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561245557600080fd5b6124848660006040518059106124685750595b9080825280602002602001820160405250600080600080612cbb565b915061248f82612b6b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124e2868385886112a7565b505050505050565b60006124f586612baf565b90506001815460ff16600281111561250957fe5b1461251357600080fd5b805433600160a060020a03908116610100909204161461253257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612565929160200190613ddc565b506002810183805161257b929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124e2576001604060020a038584815181106125f757fe5b90602001906020020151169150604060020a85848151811061261557fe5b9060200190602002015181151561262857fe5b049050612637868383876112a7565b6001909201916125da565b600061264d86612baf565b90506000815460ff16600281111561266157fe5b1461266b57600080fd5b805433600160a060020a03908116610100909204161461268a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126bd929160200190613ddc565b50600281018380516126d3929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461274d57600080fd5b61275684612b6b565b91506001600383015460c060020a900460ff16600281111561277457fe5b1461277e57600080fd5b6001820154600283018054612836926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561281157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127ce5790505b505050506003860154600091508190608060020a90046001604060020a031681612cbb565b9050610e8c8161174c565b60008061284c613d99565b612854613d99565b60008060008060006128658a612baf565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f8201819004810201604051908101604052809291908181526020018280546001816001161561010002031660029004801561291b5780601f106128f05761010080835404028352916020019161291b565b820191906000526020600020905b8154815290600101906020018083116128fe57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129ba5780601f1061298f576101008083540402835291602001916129ba565b820191906000526020600020905b81548152906001019060200180831161299d57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a2857fe5b90602001906020020151169150604060020a848481518110612a4657fe5b90602001906020020151811515612a5957fe5b049050612a66828261272d565b600190920191612a0b565b6000612a7c86612baf565b90506002815460ff166002811115612a9057fe5b14612a9a57600080fd5b805433600160a060020a039081166101009092041614612ab957600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612aec929160200190613ddc565b5060028101838051612b02929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b8357600080fd5b600080546001604060020a038416908110612b9a57fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bc957600080fd5b600180546001604060020a038416908110612be057fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c125760009250612379565b612c1b84612b6b565b6001810154909250612c35906001604060020a0316612baf565b90506000815460ff166002811115612c4957fe5b1415612c5757839250612379565b6002815460ff166002811115612c6957fe5b14612c7057fe5b6001820154612c87906001604060020a0316610ca1565b1515612c9557839250612379565b6003820154612cb390608060020a90046001604060020a0316612bf5565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d08578082015183820152602001612cf0565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d7557fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dde57809250612f9f565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e1c8382613e5a565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e8d57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ed8929160200190613e86565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f9357fe5b02179055505050508092505b50509695505050505050565b6000806000612fbd6001878787613923565b9250846001604060020a0316866001604060020a03161415612fde576124e2565b821515612fea576124e2565b612ff386612b6b565b9150612ffe85612b6b565b82549091508390101561301057600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a361306b6000878786613923565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130ad57508060e00151600160a060020a031633600160a060020a0316145b15156130b857600080fd5b50565b6000610e8c8260006040518059106124685750599080825280602002602001820160405250600080600080612cbb565b60008060006130f986612b6b565b9250601461322d8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131845790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b600281111561322557fe5b905250613949565b1061323757600080fd5b61324084610ca1565b1561324a57600080fd5b60018301546002840180546132d7926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612cbb565b91506133078460006040518059106118a05750599080825280602002602001820160405250600080866000612cbb565b90506124e2868287612fab565b60008061331f613d99565b60008061332b88612b6b565b60028101549094508690036040518059106133435750595b90808252806020026020018201604052509250600091505b60028401548690038210156133d1576002840180548390811061337a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133af57fe5b6001604060020a0390921660209283029091019091015260019091019061335b565b60018401546003850154613401916001604060020a039081169186916000918291608060020a9091041681612cbb565b905061340e888289612fab565b979650505050505050565b6000613423613d99565b60008061342f87612b6b565b60028101549094506014901061344457600080fd5b60028401546001016040518059106134595750595b90808252806020026020018201604052509250600091505b60028401548210156134e4576002840180548390811061348d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134c257fe5b6001604060020a03909216602092830290910190910152600190910190613471565b600284015485908490815181106134f757fe5b6001604060020a039283166020918202909201015260018501546003860154613533929182169186916000918291608060020a90041681612cbb565b905061306b878288612fab565b6000805b83604001515181101561359457826001604060020a03168460400151828151811061356b57fe5b906020019060200201516001604060020a0316141561358c5780915061359f565b600101613544565b6001604060020a0391505b5092915050565b6000806135b285612b6b565b915060146136a88360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b106136b257600080fd5b6136bb83610ca1565b156136c557600080fd5b6001820154600283018054612321926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561375857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137155790505b50505050508561388e8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561382857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137e55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561387b57fe5b600281111561388657fe5b905250613a74565b6138966138b5565b6003880154910190608060020a90046001604060020a03166000612cbb565b4290565b6000806002835160028111156138cb57fe5b146138d257fe5b8260a001516001604060020a031615156138ef5760019150610d4b565b6138fc8360a00151612baf565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139318585808685613afe565b90506139408584868685613afe565b95945050505050565b6000808260a001516001604060020a031615156139695760009150610d4b565b6139768360a00151612b6b565b9050613a6a8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b6001019392505050565b6000806000613a868460200151612baf565b60038101546001604060020a031693509150600090505b83604001515181101561237957613acc84604001518281518110613abd57fe5b90602001906020020151612baf565b60038101549092506001604060020a031683901115613af65760038201546001604060020a031692505b600101613a9d565b600080600080866001604060020a0316886001604060020a031614613b2557610100613b28565b60005b61ffff169250849350613b3a88612b6b565b6001810154909250613b5a908a906001604060020a031689898789613c1c565b9350600090505b60028201546001604060020a0382161015613bd557613bcb8983600201836001604060020a0316815481101515613b9457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1c565b9350600101613b61565b600382015460006001604060020a039091161115613c10576003820154613c0d908a906001604060020a0316898960ff880189613c1c565b93505b50505095945050505050565b80600080613c2988612baf565b6004810154909150600160a060020a031615801590613c485750600083115b15612f9f578815613d03576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd257600080fd5b6102c65a03f11515613ce357600080fd5b505050604051805192505082821115613cfb57600080fd5b819250612f9f565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7957600080fd5b6102c65a03f11515613d8a57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd757600502816005028360005260206000209182019101613dd79190613f3a565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1d57805160ff1916838001178555613e4a565b82800160010185558215613e4a579182015b82811115613e4a578251825591602001919060010190613e2f565b50613e56929150613fc5565b5090565b815481835581811511613dd757600402816004028360005260206000209182019101613dd79190613fdf565b82805482825590600052602060002090600301600490048101928215613f2e5791602002820160005b83821115613ef957835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eaf565b8015613f2c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ef9565b505b50613e5692915061403f565b610d5991905b80821115613e5657805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f736001830182614064565b613f81600283016000614064565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f40565b610d5991905b80821115613e565760008155600101613fcb565b610d5991905b80821115613e5657600080825560018201805467ffffffffffffffff1916905561401260028301826140a8565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe5565b610d5991905b80821115613e5657805467ffffffffffffffff19168155600101614045565b50805460018160011615610100020316600290046000825580601f1061408a57506130b8565b601f0160209004906000526020600020908101906130b89190613fc5565b5080546000825560030160049004906000526020600020908101906130b89190613fc55600a165627a7a723058204d4b9a70b100a8aeb242b9259b86804bc77b7d1932bb1a401fd8dd6901da34300029" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582090cd89169d3193d442dda8b8361da3b36c6aae048b490bbe84f1e36baaf059dd0029" +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582048208e1b0e29be87e62a0a6ddee714204159b7252927614aeff513586ef533890029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0x33f930761a26fab0c07448cb4d99e71c442a818af41057250b6672288937f78b" +exports._sha256 = "0xf779b1ee136d7b63203d65207b5b9960eb240ff89493b65181a48999808f4fa1" diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js index 2b482df..b5afa1e 100644 --- a/build/LiquidPledgingMock.sol.js +++ b/build/LiquidPledgingMock.sol.js @@ -3,12 +3,12 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434583398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140fa806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061232295505050505050565b6102726001604060020a036004358116906024351661236d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124d7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125c2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061262f915050565b34156108d657600080fd5b6102726001604060020a036004351660243561271a565b34156108f857600080fd5b61090c6001604060020a036004351661282e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129f395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a5e915050565b3415610b5857600080fd5b610b60612b49565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d9a565b600080610b9387612b58565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b9c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b9c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b58565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612be2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612ca8565b9050610e99848285612f98565b50505050565b600080600080600080600080610eb489612b58565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b58565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b9c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613061565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612ca8565b9050611217858286612f98565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b58565b94506112ce86612b9c565b93506112d989612b9c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130a8565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130d8565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613301565b9750611361888888613406565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61352d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613301565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761352d565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613301565b818111156116e7576113b3888860018589600201805490500303613301565b8181116113c25761154e888860018489600201805490500303613301565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613301565b97506113c2888888613593565b505050505050505050565b60008060008061175b85612b58565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b6565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612ca8565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612ca8565b90506118cd85828560000154612f98565b8094506118d985612b58565b92505b6118e585612be2565b90506001604060020a03808216908616146119095761190985828560000154612f98565b8093505b505050919050565b6001805490818082016119288382613dac565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddd565b50606082015181600201908051611a08929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b9c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138ba565b10611db057600080fd5b60018054925082808201611dc48382613dac565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddd565b50606082015181600201908051611ea5929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b9c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dac565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddd565b50606082015181600201908051612124929160200190613ddd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b58565b6003810154909250608060020a90046001604060020a031615156122c357600080fd5b60018201546122da906001604060020a0316612b9c565b9050612301816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f98565b600080805b8351821015612366576001604060020a0384838151811061234457fe5b9060200190602002015116905061235a8161174c565b50600190910190612327565b5050919050565b60008080806001604060020a03861615156123b3576123b06020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123bc86612b9c565b93506123e3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123f557fe5b146123ff57600080fd5b3492506000831161240f57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561244257600080fd5b6124718660006040518059106124555750595b9080825280602002602001820160405250600080600080612ca8565b915061247c82612b58565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124cf868385886112a7565b505050505050565b60006124e286612b9c565b90506001815460ff1660028111156124f657fe5b1461250057600080fd5b805433600160a060020a03908116610100909204161461251f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612552929160200190613ddd565b5060028101838051612568929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124cf576001604060020a038584815181106125e457fe5b90602001906020020151169150604060020a85848151811061260257fe5b9060200190602002015181151561261557fe5b049050612624868383876112a7565b6001909201916125c7565b600061263a86612b9c565b90506000815460ff16600281111561264e57fe5b1461265857600080fd5b805433600160a060020a03908116610100909204161461267757600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126aa929160200190613ddd565b50600281018380516126c0929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273a57600080fd5b61274384612b58565b91506001600383015460c060020a900460ff16600281111561276157fe5b1461276b57600080fd5b6001820154600283018054612823926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127fe57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127bb5790505b505050506003860154600091508190608060020a90046001604060020a031681612ca8565b9050610e8c8161174c565b600080612839613d9a565b612841613d9a565b60008060008060006128528a612b9c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a75780601f1061297c576101008083540402835291602001916129a7565b820191906000526020600020905b81548152906001019060200180831161298a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a1557fe5b90602001906020020151169150604060020a848481518110612a3357fe5b90602001906020020151811515612a4657fe5b049050612a53828261271a565b6001909201916129f8565b6000612a6986612b9c565b90506002815460ff166002811115612a7d57fe5b14612a8757600080fd5b805433600160a060020a039081166101009092041614612aa657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad9929160200190613ddd565b5060028101838051612aef929160200190613ddd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b7057600080fd5b600080546001604060020a038416908110612b8757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb657600080fd5b600180546001604060020a038416908110612bcd57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bff5760009250612366565b612c0884612b58565b6001810154909250612c22906001604060020a0316612b9c565b90506000815460ff166002811115612c3657fe5b1415612c4457839250612366565b6002815460ff166002811115612c5657fe5b14612c5d57fe5b6001820154612c74906001604060020a0316610ca1565b1515612c8257839250612366565b6003820154612ca090608060020a90046001604060020a0316612be2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cf5578082015183820152602001612cdd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d6257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dcb57809250612f8c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e098382613e5b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e7a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ec5929160200190613e87565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f8057fe5b02179055505050508092505b50509695505050505050565b6000806000612faa6001878787613924565b9250846001604060020a0316866001604060020a03161415612fcb576124cf565b821515612fd7576124cf565b612fe086612b58565b9150612feb85612b58565b825490915083901015612ffd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130586000878786613924565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061309a57508060e00151600160a060020a031633600160a060020a0316145b15156130a557600080fd5b50565b6000610e8c8260006040518059106124555750599080825280602002602001820160405250600080600080612ca8565b60008060006130e686612b58565b9250601461321a8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131715790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b600281111561321257fe5b90525061394a565b1061322457600080fd5b61322d84610ca1565b1561323757600080fd5b60018301546002840180546132c4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612ca8565b91506132f48460006040518059106118a05750599080825280602002602001820160405250600080866000612ca8565b90506124cf868287612f98565b60008061330c613d9a565b60008061331888612b58565b60028101549094508690036040518059106133305750595b90808252806020026020018201604052509250600091505b60028401548690038210156133be576002840180548390811061336757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061339c57fe5b6001604060020a03909216602092830290910190910152600190910190613348565b600184015460038501546133ee916001604060020a039081169186916000918291608060020a9091041681612ca8565b90506133fb888289612f98565b979650505050505050565b6000613410613d9a565b60008061341c87612b58565b60028101549094506014901061343157600080fd5b60028401546001016040518059106134465750595b90808252806020026020018201604052509250600091505b60028401548210156134d1576002840180548390811061347a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134af57fe5b6001604060020a0390921660209283029091019091015260019091019061345e565b600284015485908490815181106134e457fe5b6001604060020a039283166020918202909201015260018501546003860154613520929182169186916000918291608060020a90041681612ca8565b9050613058878288612f98565b6000805b83604001515181101561358157826001604060020a03168460400151828151811061355857fe5b906020019060200201516001604060020a031614156135795780915061358c565b600101613531565b6001604060020a0391505b5092915050565b60008061359f85612b58565b915060146136958360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b1061369f57600080fd5b6136a883610ca1565b156136b257600080fd5b60018201546002830180546138a2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561374557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137025790505b50505050508561387b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561381557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137d25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561386857fe5b600281111561387357fe5b905250613a75565b6138836138b6565b6003880154910190608060020a90046001604060020a03166000612ca8565b90506138af858286612f98565b5050505050565b4290565b6000806002835160028111156138cc57fe5b146138d357fe5b8260a001516001604060020a031615156138f05760019150610d4b565b6138fd8360a00151612b9c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139328585808685613aff565b90506139418584868685613aff565b95945050505050565b6000808260a001516001604060020a0316151561396a5760009150610d4b565b6139778360a00151612b58565b9050613a6b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131b457600091825260209182902080546001604060020a031684529082028301929091600891018084116131715750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561320757fe5b6001019392505050565b6000806000613a878460200151612b9c565b60038101546001604060020a031693509150600090505b83604001515181101561236657613acd84604001518281518110613abe57fe5b90602001906020020151612b9c565b60038101549092506001604060020a031683901115613af75760038201546001604060020a031692505b600101613a9e565b600080600080866001604060020a0316886001604060020a031614613b2657610100613b29565b60005b61ffff169250849350613b3b88612b58565b6001810154909250613b5b908a906001604060020a031689898789613c1d565b9350600090505b60028201546001604060020a0382161015613bd657613bcc8983600201836001604060020a0316815481101515613b9557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1d565b9350600101613b62565b600382015460006001604060020a039091161115613c11576003820154613c0e908a906001604060020a0316898960ff880189613c1d565b93505b50505095945050505050565b80600080613c2a88612b9c565b6004810154909150600160a060020a031615801590613c495750600083115b15612f8c578815613d04576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805192505082821115613cfc57600080fd5b819250612f8c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7a57600080fd5b6102c65a03f11515613d8b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd857600502816005028360005260206000209182019101613dd89190613f3b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1e57805160ff1916838001178555613e4b565b82800160010185558215613e4b579182015b82811115613e4b578251825591602001919060010190613e30565b50613e57929150613fc6565b5090565b815481835581811511613dd857600402816004028360005260206000209182019101613dd89190613fe0565b82805482825590600052602060002090600301600490048101928215613f2f5791602002820160005b83821115613efa57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eb0565b8015613f2d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613efa565b505b50613e57929150614040565b610d5991905b80821115613e5757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f746001830182614065565b613f82600283016000614065565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f41565b610d5991905b80821115613e575760008155600101613fcc565b610d5991905b80821115613e5757600080825560018201805467ffffffffffffffff1916905561401360028301826140a9565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe6565b610d5991905b80821115613e5757805467ffffffffffffffff19168155600101614046565b50805460018160011615610100020316600290046000825580601f1061408b57506130a5565b601f0160209004906000526020600020908101906130a59190613fc6565b5080546000825560030160049004906000526020600020908101906130a59190613fc65600a165627a7a72305820aa3e1164ad7cb60a04a3a2be32f54de72f7fc51592d26648429d2c66db69b0750029" +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434483398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140f9806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061233595505050505050565b6102726001604060020a0360043581169060243516612380565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124ea915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125d5915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612642915050565b34156108d657600080fd5b6102726001604060020a036004351660243561272d565b34156108f857600080fd5b61090c6001604060020a0360043516612841565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a0695505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a71915050565b3415610b5857600080fd5b610b60612b5c565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d99565b600080610b9387612b6b565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612baf565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612baf565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b6b565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bf5565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612cbb565b9050610e99848285612fab565b50505050565b600080600080600080600080610eb489612b6b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b6b565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612baf565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613074565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612cbb565b9050611217858286612fab565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b6b565b94506112ce86612baf565b93506112d989612baf565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130bb565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130eb565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613314565b9750611361888888613419565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a613540565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613314565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b90525087613540565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613314565b818111156116e7576113b3888860018589600201805490500303613314565b8181116113c25761154e888860018489600201805490500303613314565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613314565b97506113c28888886135a6565b505050505050505050565b60008060008061175b85612b6b565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b5565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612cbb565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612cbb565b90506118cd85828560000154612fab565b8094506118d985612b6b565b92505b6118e585612bf5565b90506001604060020a03808216908616146119095761190985828560000154612fab565b8093505b505050919050565b6001805490818082016119288382613dab565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddc565b50606082015181600201908051611a08929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612baf565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138b9565b10611db057600080fd5b60018054925082808201611dc48382613dab565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddc565b50606082015181600201908051611ea5929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612baf565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dab565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddc565b50606082015181600201908051612124929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b60008060006122978561174c565b94506122a285612b6b565b6003810154909350608060020a90046001604060020a031615156122c557600080fd5b60018301546122dc906001604060020a0316612baf565b9150612303826101006040519081016040528154909190829060ff166002811115610f8357fe5b600383015461232190608060020a90046001604060020a0316612bf5565b905061232e858286612fab565b5050505050565b600080805b8351821015612379576001604060020a0384838151811061235757fe5b9060200190602002015116905061236d8161174c565b5060019091019061233a565b5050919050565b60008080806001604060020a03861615156123c6576123c36020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123cf86612baf565b93506123f6846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff16600281111561240857fe5b1461241257600080fd5b3492506000831161242257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561245557600080fd5b6124848660006040518059106124685750595b9080825280602002602001820160405250600080600080612cbb565b915061248f82612b6b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124e2868385886112a7565b505050505050565b60006124f586612baf565b90506001815460ff16600281111561250957fe5b1461251357600080fd5b805433600160a060020a03908116610100909204161461253257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612565929160200190613ddc565b506002810183805161257b929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124e2576001604060020a038584815181106125f757fe5b90602001906020020151169150604060020a85848151811061261557fe5b9060200190602002015181151561262857fe5b049050612637868383876112a7565b6001909201916125da565b600061264d86612baf565b90506000815460ff16600281111561266157fe5b1461266b57600080fd5b805433600160a060020a03908116610100909204161461268a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126bd929160200190613ddc565b50600281018380516126d3929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461274d57600080fd5b61275684612b6b565b91506001600383015460c060020a900460ff16600281111561277457fe5b1461277e57600080fd5b6001820154600283018054612836926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561281157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127ce5790505b505050506003860154600091508190608060020a90046001604060020a031681612cbb565b9050610e8c8161174c565b60008061284c613d99565b612854613d99565b60008060008060006128658a612baf565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f8201819004810201604051908101604052809291908181526020018280546001816001161561010002031660029004801561291b5780601f106128f05761010080835404028352916020019161291b565b820191906000526020600020905b8154815290600101906020018083116128fe57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129ba5780601f1061298f576101008083540402835291602001916129ba565b820191906000526020600020905b81548152906001019060200180831161299d57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a2857fe5b90602001906020020151169150604060020a848481518110612a4657fe5b90602001906020020151811515612a5957fe5b049050612a66828261272d565b600190920191612a0b565b6000612a7c86612baf565b90506002815460ff166002811115612a9057fe5b14612a9a57600080fd5b805433600160a060020a039081166101009092041614612ab957600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612aec929160200190613ddc565b5060028101838051612b02929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b8357600080fd5b600080546001604060020a038416908110612b9a57fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bc957600080fd5b600180546001604060020a038416908110612be057fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c125760009250612379565b612c1b84612b6b565b6001810154909250612c35906001604060020a0316612baf565b90506000815460ff166002811115612c4957fe5b1415612c5757839250612379565b6002815460ff166002811115612c6957fe5b14612c7057fe5b6001820154612c87906001604060020a0316610ca1565b1515612c9557839250612379565b6003820154612cb390608060020a90046001604060020a0316612bf5565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d08578082015183820152602001612cf0565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d7557fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dde57809250612f9f565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e1c8382613e5a565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e8d57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ed8929160200190613e86565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f9357fe5b02179055505050508092505b50509695505050505050565b6000806000612fbd6001878787613923565b9250846001604060020a0316866001604060020a03161415612fde576124e2565b821515612fea576124e2565b612ff386612b6b565b9150612ffe85612b6b565b82549091508390101561301057600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a361306b6000878786613923565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130ad57508060e00151600160a060020a031633600160a060020a0316145b15156130b857600080fd5b50565b6000610e8c8260006040518059106124685750599080825280602002602001820160405250600080600080612cbb565b60008060006130f986612b6b565b9250601461322d8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131845790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b600281111561322557fe5b905250613949565b1061323757600080fd5b61324084610ca1565b1561324a57600080fd5b60018301546002840180546132d7926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612cbb565b91506133078460006040518059106118a05750599080825280602002602001820160405250600080866000612cbb565b90506124e2868287612fab565b60008061331f613d99565b60008061332b88612b6b565b60028101549094508690036040518059106133435750595b90808252806020026020018201604052509250600091505b60028401548690038210156133d1576002840180548390811061337a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133af57fe5b6001604060020a0390921660209283029091019091015260019091019061335b565b60018401546003850154613401916001604060020a039081169186916000918291608060020a9091041681612cbb565b905061340e888289612fab565b979650505050505050565b6000613423613d99565b60008061342f87612b6b565b60028101549094506014901061344457600080fd5b60028401546001016040518059106134595750595b90808252806020026020018201604052509250600091505b60028401548210156134e4576002840180548390811061348d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134c257fe5b6001604060020a03909216602092830290910190910152600190910190613471565b600284015485908490815181106134f757fe5b6001604060020a039283166020918202909201015260018501546003860154613533929182169186916000918291608060020a90041681612cbb565b905061306b878288612fab565b6000805b83604001515181101561359457826001604060020a03168460400151828151811061356b57fe5b906020019060200201516001604060020a0316141561358c5780915061359f565b600101613544565b6001604060020a0391505b5092915050565b6000806135b285612b6b565b915060146136a88360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b106136b257600080fd5b6136bb83610ca1565b156136c557600080fd5b6001820154600283018054612321926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561375857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137155790505b50505050508561388e8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561382857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137e55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561387b57fe5b600281111561388657fe5b905250613a74565b6138966138b5565b6003880154910190608060020a90046001604060020a03166000612cbb565b4290565b6000806002835160028111156138cb57fe5b146138d257fe5b8260a001516001604060020a031615156138ef5760019150610d4b565b6138fc8360a00151612baf565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139318585808685613afe565b90506139408584868685613afe565b95945050505050565b6000808260a001516001604060020a031615156139695760009150610d4b565b6139768360a00151612b6b565b9050613a6a8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b6001019392505050565b6000806000613a868460200151612baf565b60038101546001604060020a031693509150600090505b83604001515181101561237957613acc84604001518281518110613abd57fe5b90602001906020020151612baf565b60038101549092506001604060020a031683901115613af65760038201546001604060020a031692505b600101613a9d565b600080600080866001604060020a0316886001604060020a031614613b2557610100613b28565b60005b61ffff169250849350613b3a88612b6b565b6001810154909250613b5a908a906001604060020a031689898789613c1c565b9350600090505b60028201546001604060020a0382161015613bd557613bcb8983600201836001604060020a0316815481101515613b9457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1c565b9350600101613b61565b600382015460006001604060020a039091161115613c10576003820154613c0d908a906001604060020a0316898960ff880189613c1c565b93505b50505095945050505050565b80600080613c2988612baf565b6004810154909150600160a060020a031615801590613c485750600083115b15612f9f578815613d03576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd257600080fd5b6102c65a03f11515613ce357600080fd5b505050604051805192505082821115613cfb57600080fd5b819250612f9f565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7957600080fd5b6102c65a03f11515613d8a57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd757600502816005028360005260206000209182019101613dd79190613f3a565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1d57805160ff1916838001178555613e4a565b82800160010185558215613e4a579182015b82811115613e4a578251825591602001919060010190613e2f565b50613e56929150613fc5565b5090565b815481835581811511613dd757600402816004028360005260206000209182019101613dd79190613fdf565b82805482825590600052602060002090600301600490048101928215613f2e5791602002820160005b83821115613ef957835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eaf565b8015613f2c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ef9565b505b50613e5692915061403f565b610d5991905b80821115613e5657805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f736001830182614064565b613f81600283016000614064565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f40565b610d5991905b80821115613e565760008155600101613fcb565b610d5991905b80821115613e5657600080825560018201805467ffffffffffffffff1916905561401260028301826140a8565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe5565b610d5991905b80821115613e5657805467ffffffffffffffff19168155600101614045565b50805460018160011615610100020316600290046000825580601f1061408a57506130b8565b601f0160209004906000526020600020908101906130b89190613fc5565b5080546000825560030160049004906000526020600020908101906130b89190613fc55600a165627a7a72305820463a47bbd3cd6e46fb821af37a9038953193f9f8f25e5b054212339a7479723b0029" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a72305820e5e2d9335ad8fd65f1c0f461bffc62b533c98c864c82c33addf1b05188f548990029" +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582044fb29e66b8d398a100a2a865d99dd61103f480bd026724c1770cad088d08f400029" exports.LiquidPledgingMockAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b6040516020806200439783398101604052808051915081905080600162000038818062000075565b50600162000048600082620000a9565b5060028054600160a060020a031916600160a060020a039290921691909117905550504260045562000241565b815481835581811511620000a457600502816005028360005260206000209182019101620000a49190620000d8565b505050565b815481835581811511620000a457600402816004028360005260206000209182019101620000a491906200014c565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001b7565b62000117600283016000620001b7565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff1916905562000183600283018262000202565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b50805460018160011615610100020316600290046000825580601f10620001df5750620001ff565b601f016020900490600052602060002090810190620001ff919062000224565b50565b508054600082556003016004900490600052602060002090810190620001ff91905b6200014991905b808211156200014557600081556001016200022b565b61414680620002516000396000f3006060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bce0906d146106c3578063bde60ac914610712578063cc19ecf71461072c578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ede565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f43565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e6565b341561036457600080fd5b6103786001604060020a036004351661178b565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611954915050565b341561044b57600080fd5b610254611b42565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4c95505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb79050565b341561056957600080fd5b6102886001604060020a0360043516611fe2565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612070915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225d95505050505050565b341561068357600080fd5b6102546122c8565b341561069657600080fd5b6102886004356122ce565b34156106ac57600080fd5b6102886001604060020a03600435166024356122d3565b34156106ce57600080fd5b610378600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061236c95505050505050565b6102886001604060020a03600435811690602435166123b7565b341561073757600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612521915050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a0316925061260c915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612679915050565b341561091557600080fd5b6102886001604060020a0360043516602435612764565b341561093757600080fd5b61094b6001604060020a0360043516612878565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a3d95505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612aa8915050565b3415610b9757600080fd5b610b9f612b93565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613de6565b600080610bd287612ba2565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612be6565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612be6565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612ba2565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b836001604060020a0316610dff85612c2c565b6001604060020a031614610e1257600080fd5b6001820154600283018054610ecb926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e625790505b505050506003860154600091508190608060020a90046001604060020a03166002612cf2565b9050610ed8848285612fe2565b50505050565b600080600080600080600080610ef389612ba2565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f518561178b565b9450610f5c85612ba2565b92506000600384015460c060020a900460ff166002811115610f7a57fe5b14610f8457600080fd5b6001830154610f9b906001604060020a0316612be6565b9150611190826101006040519081016040528154909190829060ff166002811115610fc257fe5b6002811115610fcd57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110995780601f1061106e57610100808354040283529160200191611099565b820191906000526020600020905b81548152906001019060200180831161107c57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526130ab565b6001830154600284018054611249926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561122357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111e05790505b505050506003870154600091508190608060020a90046001604060020a03166001612cf2565b9050611256858286612fe2565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112cb57600080fd5b6102c65a03f115156112dc57600080fd5b5050505050505050565b60008060008060006112f78861178b565b975061130288612ba2565b945061130d86612be6565b935061131889612be6565b925061133f836101006040519081016040528154909190829060ff166002811115610fc257fe5b6000600386015460c060020a900460ff16600281111561135b57fe5b1461136557600080fd5b60018501546001604060020a038a811691161415611406576000845460ff16600281111561138f57fe5b14156113a5576113a08888886130f2565b611401565b6002845460ff1660028111156113b757fe5b14156113c8576113a0888888613122565b6001845460ff1660028111156113da57fe5b14156113ff576113f28888876002018054905061334b565b97506113a0888888613450565bfe5b611780565b6115378560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114d057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161148d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561152357fe5b600281111561152e57fe5b9052508a613577565b6001604060020a03908116925082146113ff576000845460ff16600281111561155c57fe5b14156115935760018501546001604060020a0387811691161461157b57fe5b61158d8888876002018054905061334b565b50611780565b6001845460ff1660028111156115a557fe5b1415611744576116dc8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116325790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c857fe5b60028111156116d357fe5b90525087613577565b6001604060020a039081169150811415611707576113f288886001858960020180549050030361334b565b81811115611726576113f288886001858960020180549050030361334b565b8181116114015761158d88886001848960020180549050030361334b565b6002845460ff16600281111561175657fe5b14156113ff5761177388886001858960020180549050030361334b565b97506114018888886135dd565b505050505050505050565b60008060008061179a85612ba2565b92506000600384015460c060020a900460ff1660028111156117b857fe5b146117c55784935061194c565b600383015460006001604060020a039091161180156117fe57506003830154604060020a90046001604060020a03166117fc613900565b115b1561191b5760018301546002840180546118bb926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118535790505b505050506003870154600091508190608060020a90046001604060020a031681612cf2565b60038401549092506118fb906001604060020a031660006040518059106118df5750595b9080825280602002602001820160405250600080866000612cf2565b905061190c85828560000154612fe2565b80945061191885612ba2565b92505b61192485612c2c565b90506001604060020a03808216908616146119485761194885828560000154612fe2565b8093505b505050919050565b6001805490818082016119678382613df8565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a2c929160200190613e29565b50606082015181600201908051611a47929160200190613e29565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed8576001604060020a03848481518110611b6e57fe5b90602001906020020151169150604060020a848481518110611b8c57fe5b90602001906020020151811515611b9f57fe5b049050611bac8282610f43565b600190920191611b51565b6000806001604060020a03851615611def57611bd285612be6565b90506002815460ff166002811115611be657fe5b14611bf057600080fd5b6014611de5826101006040519081016040528154909190829060ff166002811115611c1757fe5b6002811115611c2257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cee5780601f10611cc357610100808354040283529160200191611cee565b820191906000526020600020905b815481529060010190602001808311611cd157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d905780601f10611d6557610100808354040283529160200191611d90565b820191906000526020600020905b815481529060010190602001808311611d7357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613906565b10611def57600080fd5b60018054925082808201611e038382613df8565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e8357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec9929160200190613e29565b50606082015181600201908051611ee4929160200190613e29565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fed82612be6565b9050612014816101006040519081016040528154909190829060ff166002811115610fc257fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120838382613df8565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561210257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612148929160200190613e29565b50606082015181600201908051612163929160200190613e29565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed8576001604060020a0384848151811061227f57fe5b90602001906020020151169150604060020a84848151811061229d57fe5b906020019060200201518115156122b057fe5b0490506122bd8282610d9b565b600190920191612262565b60045481565b600455565b6000806122df8461178b565b93506122ea84612ba2565b6003810154909250608060020a90046001604060020a0316151561230d57600080fd5b6001820154612324906001604060020a0316612be6565b905061234b816101006040519081016040528154909190829060ff166002811115610fc257fe5b6003820154610ed8908590608060020a90046001604060020a031685612fe2565b600080805b83518210156123b0576001604060020a0384838151811061238e57fe5b906020019060200201511690506123a48161178b565b50600190910190612371565b5050919050565b60008080806001604060020a03861615156123fd576123fa6020604051908101604052806000815250602060405190810160405260008082526203f48090612070565b95505b61240686612be6565b935061242d846101006040519081016040528154909190829060ff166002811115610fc257fe5b6000845460ff16600281111561243f57fe5b1461244957600080fd5b3492506000831161245957600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561248c57600080fd5b6124bb86600060405180591061249f5750595b9080825280602002602001820160405250600080600080612cf2565b91506124c682612ba2565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612519868385886112e6565b505050505050565b600061252c86612be6565b90506001815460ff16600281111561254057fe5b1461254a57600080fd5b805433600160a060020a03908116610100909204161461256957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161259c929160200190613e29565b50600281018380516125b2929160200190613e29565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b8451831015612519576001604060020a0385848151811061262e57fe5b90602001906020020151169150604060020a85848151811061264c57fe5b9060200190602002015181151561265f57fe5b04905061266e868383876112e6565b600190920191612611565b600061268486612be6565b90506000815460ff16600281111561269857fe5b146126a257600080fd5b805433600160a060020a0390811661010090920416146126c157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126f4929160200190613e29565b506002810183805161270a929160200190613e29565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461278457600080fd5b61278d84612ba2565b91506001600383015460c060020a900460ff1660028111156127ab57fe5b146127b557600080fd5b600182015460028301805461286d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561284857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116128055790505b505050506003860154600091508190608060020a90046001604060020a031681612cf2565b9050610ecb8161178b565b600080612883613de6565b61288b613de6565b600080600080600061289c8a612be6565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129525780601f1061292757610100808354040283529160200191612952565b820191906000526020600020905b81548152906001019060200180831161293557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129f15780601f106129c6576101008083540402835291602001916129f1565b820191906000526020600020905b8154815290600101906020018083116129d457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed8576001604060020a03848481518110612a5f57fe5b90602001906020020151169150604060020a848481518110612a7d57fe5b90602001906020020151811515612a9057fe5b049050612a9d8282612764565b600190920191612a42565b6000612ab386612be6565b90506002815460ff166002811115612ac757fe5b14612ad157600080fd5b805433600160a060020a039081166101009092041614612af057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b23929160200190613e29565b5060028101838051612b39929160200190613e29565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612bba57600080fd5b600080546001604060020a038416908110612bd157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612c0057600080fd5b600180546001604060020a038416908110612c1757fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c4957600092506123b0565b612c5284612ba2565b6001810154909250612c6c906001604060020a0316612be6565b90506000815460ff166002811115612c8057fe5b1415612c8e578392506123b0565b6002815460ff166002811115612ca057fe5b14612ca757fe5b6001820154612cbe906001604060020a0316610ce0565b1515612ccc578392506123b0565b6003820154612cea90608060020a90046001604060020a0316612c2c565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d3f578082015183820152602001612d27565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612dac57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612e1557809250612fd6565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e538382613ea7565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612ec457fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612f0f929160200190613ed3565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612fca57fe5b02179055505050508092505b50509695505050505050565b6000806000612ff46001878787613970565b9250846001604060020a0316866001604060020a0316141561301557612519565b82151561302157612519565b61302a86612ba2565b915061303585612ba2565b82549091508390101561304757600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130a26000878786613970565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130e457508060e00151600160a060020a031633600160a060020a0316145b15156130ef57600080fd5b50565b6000610ecb82600060405180591061249f5750599080825280602002602001820160405250600080600080612cf2565b600080600061313086612ba2565b925060146132648460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131fe57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131bb5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561325157fe5b600281111561325c57fe5b905250613996565b1061326e57600080fd5b61327784610ce0565b1561328157600080fd5b600183015460028401805461330e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657600091825260209182902080546001604060020a031684529082028301929091600891018084116118535750505050600388015460009250829150608060020a90046001604060020a031681612cf2565b915061333e8460006040518059106118df5750599080825280602002602001820160405250600080866000612cf2565b9050612519868287612fe2565b600080613356613de6565b60008061336288612ba2565b600281015490945086900360405180591061337a5750595b90808252806020026020018201604052509250600091505b600284015486900382101561340857600284018054839081106133b157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133e657fe5b6001604060020a03909216602092830290910190910152600190910190613392565b60018401546003850154613438916001604060020a039081169186916000918291608060020a9091041681612cf2565b9050613445888289612fe2565b979650505050505050565b600061345a613de6565b60008061346687612ba2565b60028101549094506014901061347b57600080fd5b60028401546001016040518059106134905750595b90808252806020026020018201604052509250600091505b600284015482101561351b57600284018054839081106134c457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134f957fe5b6001604060020a039092166020928302909101909101526001909101906134a8565b6002840154859084908151811061352e57fe5b6001604060020a03928316602091820290920101526001850154600386015461356a929182169186916000918291608060020a90041681612cf2565b90506130a2878288612fe2565b6000805b8360400151518110156135cb57826001604060020a0316846040015182815181106135a257fe5b906020019060200201516001604060020a031614156135c3578091506135d6565b60010161357b565b6001604060020a0391505b5092915050565b6000806135e985612ba2565b915060146136df8360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131fe57600091825260209182902080546001604060020a031684529082028301929091600891018084116131bb5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561325157fe5b106136e957600080fd5b6136f283610ce0565b156136fc57600080fd5b60018201546002830180546138ec926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561378f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161374c5790505b5050505050856138c58660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561385f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161381c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156138b257fe5b60028111156138bd57fe5b905250613ac1565b6138cd613900565b6003880154910190608060020a90046001604060020a03166000612cf2565b90506138f9858286612fe2565b5050505050565b60045490565b60008060028351600281111561391857fe5b1461391f57fe5b8260a001516001604060020a0316151561393c5760019150610d8a565b6139498360a00151612be6565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1757fe5b8061397e8585808685613b4b565b905061398d8584868685613b4b565b95945050505050565b6000808260a001516001604060020a031615156139b65760009150610d8a565b6139c38360a00151612ba2565b9050613ab78160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131fe57600091825260209182902080546001604060020a031684529082028301929091600891018084116131bb5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561325157fe5b6001019392505050565b6000806000613ad38460200151612be6565b60038101546001604060020a031693509150600090505b8360400151518110156123b057613b1984604001518281518110613b0a57fe5b90602001906020020151612be6565b60038101549092506001604060020a031683901115613b435760038201546001604060020a031692505b600101613aea565b600080600080866001604060020a0316886001604060020a031614613b7257610100613b75565b60005b61ffff169250849350613b8788612ba2565b6001810154909250613ba7908a906001604060020a031689898789613c69565b9350600090505b60028201546001604060020a0382161015613c2257613c188983600201836001604060020a0316815481101515613be157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c69565b9350600101613bae565b600382015460006001604060020a039091161115613c5d576003820154613c5a908a906001604060020a0316898960ff880189613c69565b93505b50505095945050505050565b80600080613c7688612be6565b6004810154909150600160a060020a031615801590613c955750600083115b15612fd6578815613d50576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613d1f57600080fd5b6102c65a03f11515613d3057600080fd5b505050604051805192505082821115613d4857600080fd5b819250612fd6565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613dc657600080fd5b6102c65a03f11515613dd757600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e2457600502816005028360005260206000209182019101613e249190613f87565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e6a57805160ff1916838001178555613e97565b82800160010185558215613e97579182015b82811115613e97578251825591602001919060010190613e7c565b50613ea3929150614012565b5090565b815481835581811511613e2457600402816004028360005260206000209182019101613e24919061402c565b82805482825590600052602060002090600301600490048101928215613f7b5791602002820160005b83821115613f4657835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613efc565b8015613f795782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f46565b505b50613ea392915061408c565b610d9891905b80821115613ea357805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fc060018301826140b1565b613fce6002830160006140b1565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f8d565b610d9891905b80821115613ea35760008155600101614018565b610d9891905b80821115613ea357600080825560018201805467ffffffffffffffff1916905561405f60028301826140f5565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614032565b610d9891905b80821115613ea357805467ffffffffffffffff19168155600101614092565b50805460018160011615610100020316600290046000825580601f106140d757506130ef565b601f0160209004906000526020600020908101906130ef9190614012565b5080546000825560030160049004906000526020600020908101906130ef91906140125600a165627a7a7230582030268ebc864e6cbec7b1db1bc8fa69c2d07389cec98a65ef6db4899b762710730029" +exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b6040516020806200439683398101604052808051915081905080600162000038818062000075565b50600162000048600082620000a9565b5060028054600160a060020a031916600160a060020a039290921691909117905550504260045562000241565b815481835581811511620000a457600502816005028360005260206000209182019101620000a49190620000d8565b505050565b815481835581811511620000a457600402816004028360005260206000209182019101620000a491906200014c565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001b7565b62000117600283016000620001b7565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff1916905562000183600283018262000202565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b50805460018160011615610100020316600290046000825580601f10620001df5750620001ff565b601f016020900490600052602060002090810190620001ff919062000224565b50565b508054600082556003016004900490600052602060002090810190620001ff91905b6200014991905b808211156200014557600081556001016200022b565b61414580620002516000396000f3006060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bce0906d146106c3578063bde60ac914610712578063cc19ecf71461072c578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ede565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f43565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e6565b341561036457600080fd5b6103786001604060020a036004351661178b565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611954915050565b341561044b57600080fd5b610254611b42565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4c95505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb79050565b341561056957600080fd5b6102886001604060020a0360043516611fe2565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612070915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225d95505050505050565b341561068357600080fd5b6102546122c8565b341561069657600080fd5b6102886004356122ce565b34156106ac57600080fd5b6102886001604060020a03600435166024356122d3565b34156106ce57600080fd5b610378600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061237f95505050505050565b6102886001604060020a03600435811690602435166123ca565b341561073757600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612534915050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a0316925061261f915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061268c915050565b341561091557600080fd5b6102886001604060020a0360043516602435612777565b341561093757600080fd5b61094b6001604060020a036004351661288b565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a5095505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612abb915050565b3415610b9757600080fd5b610b9f612ba6565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613de5565b600080610bd287612bb5565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612bf9565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612bf9565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612bb5565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b836001604060020a0316610dff85612c3f565b6001604060020a031614610e1257600080fd5b6001820154600283018054610ecb926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e625790505b505050506003860154600091508190608060020a90046001604060020a03166002612d05565b9050610ed8848285612ff5565b50505050565b600080600080600080600080610ef389612bb5565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f518561178b565b9450610f5c85612bb5565b92506000600384015460c060020a900460ff166002811115610f7a57fe5b14610f8457600080fd5b6001830154610f9b906001604060020a0316612bf9565b9150611190826101006040519081016040528154909190829060ff166002811115610fc257fe5b6002811115610fcd57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110995780601f1061106e57610100808354040283529160200191611099565b820191906000526020600020905b81548152906001019060200180831161107c57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526130be565b6001830154600284018054611249926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561122357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111e05790505b505050506003870154600091508190608060020a90046001604060020a03166001612d05565b9050611256858286612ff5565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112cb57600080fd5b6102c65a03f115156112dc57600080fd5b5050505050505050565b60008060008060006112f78861178b565b975061130288612bb5565b945061130d86612bf9565b935061131889612bf9565b925061133f836101006040519081016040528154909190829060ff166002811115610fc257fe5b6000600386015460c060020a900460ff16600281111561135b57fe5b1461136557600080fd5b60018501546001604060020a038a811691161415611406576000845460ff16600281111561138f57fe5b14156113a5576113a0888888613105565b611401565b6002845460ff1660028111156113b757fe5b14156113c8576113a0888888613135565b6001845460ff1660028111156113da57fe5b14156113ff576113f28888876002018054905061335e565b97506113a0888888613463565bfe5b611780565b6115378560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114d057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161148d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561152357fe5b600281111561152e57fe5b9052508a61358a565b6001604060020a03908116925082146113ff576000845460ff16600281111561155c57fe5b14156115935760018501546001604060020a0387811691161461157b57fe5b61158d8888876002018054905061335e565b50611780565b6001845460ff1660028111156115a557fe5b1415611744576116dc8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116325790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c857fe5b60028111156116d357fe5b9052508761358a565b6001604060020a039081169150811415611707576113f288886001858960020180549050030361335e565b81811115611726576113f288886001858960020180549050030361335e565b8181116114015761158d88886001848960020180549050030361335e565b6002845460ff16600281111561175657fe5b14156113ff5761177388886001858960020180549050030361335e565b97506114018888886135f0565b505050505050505050565b60008060008061179a85612bb5565b92506000600384015460c060020a900460ff1660028111156117b857fe5b146117c55784935061194c565b600383015460006001604060020a039091161180156117fe57506003830154604060020a90046001604060020a03166117fc6138ff565b115b1561191b5760018301546002840180546118bb926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118535790505b505050506003870154600091508190608060020a90046001604060020a031681612d05565b60038401549092506118fb906001604060020a031660006040518059106118df5750595b9080825280602002602001820160405250600080866000612d05565b905061190c85828560000154612ff5565b80945061191885612bb5565b92505b61192485612c3f565b90506001604060020a03808216908616146119485761194885828560000154612ff5565b8093505b505050919050565b6001805490818082016119678382613df7565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a2c929160200190613e28565b50606082015181600201908051611a47929160200190613e28565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed8576001604060020a03848481518110611b6e57fe5b90602001906020020151169150604060020a848481518110611b8c57fe5b90602001906020020151811515611b9f57fe5b049050611bac8282610f43565b600190920191611b51565b6000806001604060020a03851615611def57611bd285612bf9565b90506002815460ff166002811115611be657fe5b14611bf057600080fd5b6014611de5826101006040519081016040528154909190829060ff166002811115611c1757fe5b6002811115611c2257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cee5780601f10611cc357610100808354040283529160200191611cee565b820191906000526020600020905b815481529060010190602001808311611cd157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d905780601f10611d6557610100808354040283529160200191611d90565b820191906000526020600020905b815481529060010190602001808311611d7357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613905565b10611def57600080fd5b60018054925082808201611e038382613df7565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e8357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec9929160200190613e28565b50606082015181600201908051611ee4929160200190613e28565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fed82612bf9565b9050612014816101006040519081016040528154909190829060ff166002811115610fc257fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120838382613df7565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561210257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612148929160200190613e28565b50606082015181600201908051612163929160200190613e28565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed8576001604060020a0384848151811061227f57fe5b90602001906020020151169150604060020a84848151811061229d57fe5b906020019060200201518115156122b057fe5b0490506122bd8282610d9b565b600190920191612262565b60045481565b600455565b60008060006122e18561178b565b94506122ec85612bb5565b6003810154909350608060020a90046001604060020a0316151561230f57600080fd5b6001830154612326906001604060020a0316612bf9565b915061234d826101006040519081016040528154909190829060ff166002811115610fc257fe5b600383015461236b90608060020a90046001604060020a0316612c3f565b9050612378858286612ff5565b5050505050565b600080805b83518210156123c3576001604060020a038483815181106123a157fe5b906020019060200201511690506123b78161178b565b50600190910190612384565b5050919050565b60008080806001604060020a03861615156124105761240d6020604051908101604052806000815250602060405190810160405260008082526203f48090612070565b95505b61241986612bf9565b9350612440846101006040519081016040528154909190829060ff166002811115610fc257fe5b6000845460ff16600281111561245257fe5b1461245c57600080fd5b3492506000831161246c57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561249f57600080fd5b6124ce8660006040518059106124b25750595b9080825280602002602001820160405250600080600080612d05565b91506124d982612bb5565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a361252c868385886112e6565b505050505050565b600061253f86612bf9565b90506001815460ff16600281111561255357fe5b1461255d57600080fd5b805433600160a060020a03908116610100909204161461257c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516125af929160200190613e28565b50600281018380516125c5929160200190613e28565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b845183101561252c576001604060020a0385848151811061264157fe5b90602001906020020151169150604060020a85848151811061265f57fe5b9060200190602002015181151561267257fe5b049050612681868383876112e6565b600190920191612624565b600061269786612bf9565b90506000815460ff1660028111156126ab57fe5b146126b557600080fd5b805433600160a060020a0390811661010090920416146126d457600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612707929160200190613e28565b506002810183805161271d929160200190613e28565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461279757600080fd5b6127a084612bb5565b91506001600383015460c060020a900460ff1660028111156127be57fe5b146127c857600080fd5b6001820154600283018054612880926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561285b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116128185790505b505050506003860154600091508190608060020a90046001604060020a031681612d05565b9050610ecb8161178b565b600080612896613de5565b61289e613de5565b60008060008060006128af8a612bf9565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129655780601f1061293a57610100808354040283529160200191612965565b820191906000526020600020905b81548152906001019060200180831161294857829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a045780601f106129d957610100808354040283529160200191612a04565b820191906000526020600020905b8154815290600101906020018083116129e757829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed8576001604060020a03848481518110612a7257fe5b90602001906020020151169150604060020a848481518110612a9057fe5b90602001906020020151811515612aa357fe5b049050612ab08282612777565b600190920191612a55565b6000612ac686612bf9565b90506002815460ff166002811115612ada57fe5b14612ae457600080fd5b805433600160a060020a039081166101009092041614612b0357600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b36929160200190613e28565b5060028101838051612b4c929160200190613e28565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612bcd57600080fd5b600080546001604060020a038416908110612be457fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612c1357600080fd5b600180546001604060020a038416908110612c2a57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c5c57600092506123c3565b612c6584612bb5565b6001810154909250612c7f906001604060020a0316612bf9565b90506000815460ff166002811115612c9357fe5b1415612ca1578392506123c3565b6002815460ff166002811115612cb357fe5b14612cba57fe5b6001820154612cd1906001604060020a0316610ce0565b1515612cdf578392506123c3565b6003820154612cfd90608060020a90046001604060020a0316612c3f565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d52578082015183820152602001612d3a565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612dbf57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612e2857809250612fe9565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e668382613ea6565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612ed757fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612f22929160200190613ed2565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612fdd57fe5b02179055505050508092505b50509695505050505050565b6000806000613007600187878761396f565b9250846001604060020a0316866001604060020a031614156130285761252c565b8215156130345761252c565b61303d86612bb5565b915061304885612bb5565b82549091508390101561305a57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130b5600087878661396f565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130f757508060e00151600160a060020a031633600160a060020a0316145b151561310257600080fd5b50565b6000610ecb8260006040518059106124b25750599080825280602002602001820160405250600080600080612d05565b600080600061314386612bb5565b925060146132778460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561321157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131ce5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561326457fe5b600281111561326f57fe5b905250613995565b1061328157600080fd5b61328a84610ce0565b1561329457600080fd5b6001830154600284018054613321926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657600091825260209182902080546001604060020a031684529082028301929091600891018084116118535750505050600388015460009250829150608060020a90046001604060020a031681612d05565b91506133518460006040518059106118df5750599080825280602002602001820160405250600080866000612d05565b905061252c868287612ff5565b600080613369613de5565b60008061337588612bb5565b600281015490945086900360405180591061338d5750595b90808252806020026020018201604052509250600091505b600284015486900382101561341b57600284018054839081106133c457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133f957fe5b6001604060020a039092166020928302909101909101526001909101906133a5565b6001840154600385015461344b916001604060020a039081169186916000918291608060020a9091041681612d05565b9050613458888289612ff5565b979650505050505050565b600061346d613de5565b60008061347987612bb5565b60028101549094506014901061348e57600080fd5b60028401546001016040518059106134a35750595b90808252806020026020018201604052509250600091505b600284015482101561352e57600284018054839081106134d757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061350c57fe5b6001604060020a039092166020928302909101909101526001909101906134bb565b6002840154859084908151811061354157fe5b6001604060020a03928316602091820290920101526001850154600386015461357d929182169186916000918291608060020a90041681612d05565b90506130b5878288612ff5565b6000805b8360400151518110156135de57826001604060020a0316846040015182815181106135b557fe5b906020019060200201516001604060020a031614156135d6578091506135e9565b60010161358e565b6001604060020a0391505b5092915050565b6000806135fc85612bb5565b915060146136f28360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561321157600091825260209182902080546001604060020a031684529082028301929091600891018084116131ce5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561326457fe5b106136fc57600080fd5b61370583610ce0565b1561370f57600080fd5b600182015460028301805461236b926001604060020a031691906020808202016040519081016040528092919081815260200182805480156137a257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161375f5790505b5050505050856138d88660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561387257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161382f5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156138c557fe5b60028111156138d057fe5b905250613ac0565b6138e06138ff565b6003880154910190608060020a90046001604060020a03166000612d05565b60045490565b60008060028351600281111561391757fe5b1461391e57fe5b8260a001516001604060020a0316151561393b5760019150610d8a565b6139488360a00151612bf9565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1757fe5b8061397d8585808685613b4a565b905061398c8584868685613b4a565b95945050505050565b6000808260a001516001604060020a031615156139b55760009150610d8a565b6139c28360a00151612bb5565b9050613ab68160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561321157600091825260209182902080546001604060020a031684529082028301929091600891018084116131ce5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561326457fe5b6001019392505050565b6000806000613ad28460200151612bf9565b60038101546001604060020a031693509150600090505b8360400151518110156123c357613b1884604001518281518110613b0957fe5b90602001906020020151612bf9565b60038101549092506001604060020a031683901115613b425760038201546001604060020a031692505b600101613ae9565b600080600080866001604060020a0316886001604060020a031614613b7157610100613b74565b60005b61ffff169250849350613b8688612bb5565b6001810154909250613ba6908a906001604060020a031689898789613c68565b9350600090505b60028201546001604060020a0382161015613c2157613c178983600201836001604060020a0316815481101515613be057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c68565b9350600101613bad565b600382015460006001604060020a039091161115613c5c576003820154613c59908a906001604060020a0316898960ff880189613c68565b93505b50505095945050505050565b80600080613c7588612bf9565b6004810154909150600160a060020a031615801590613c945750600083115b15612fe9578815613d4f576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613d1e57600080fd5b6102c65a03f11515613d2f57600080fd5b505050604051805192505082821115613d4757600080fd5b819250612fe9565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613dc557600080fd5b6102c65a03f11515613dd657600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e2357600502816005028360005260206000209182019101613e239190613f86565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e6957805160ff1916838001178555613e96565b82800160010185558215613e96579182015b82811115613e96578251825591602001919060010190613e7b565b50613ea2929150614011565b5090565b815481835581811511613e2357600402816004028360005260206000209182019101613e23919061402b565b82805482825590600052602060002090600301600490048101928215613f7a5791602002820160005b83821115613f4557835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613efb565b8015613f785782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f45565b505b50613ea292915061408b565b610d9891905b80821115613ea257805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fbf60018301826140b0565b613fcd6002830160006140b0565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f8c565b610d9891905b80821115613ea25760008155600101614017565b610d9891905b80821115613ea257600080825560018201805467ffffffffffffffff1916905561405e60028301826140f4565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614031565b610d9891905b80821115613ea257805467ffffffffffffffff19168155600101614091565b50805460018160011615610100020316600290046000825580601f106140d65750613102565b601f0160209004906000526020600020908101906131029190614011565b50805460008255600301600490049060005260206000209081019061310291906140115600a165627a7a72305820ee56736790e5c0b3cc993536e5b199cb3e10bb7aa41fa118b3b5edbd7df4c53a0029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0x21c1c1c93b578926ea534107c0d4b9923d420634e8085d365ab444cb13b8f1ff" +exports._sha256 = "0xf017967d1e357dc62ed9d5ca4d704e0fd8cc6474df08a1cc36549dbe128b0d20" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol index 2849aef..53d32b6 100644 --- a/build/LiquidPledgingMock_all.sol +++ b/build/LiquidPledgingMock_all.sol @@ -651,7 +651,8 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); - doTransfer(idPledge, n.oldPledge, amount); + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); } diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol index d76360c..c31566d 100644 --- a/build/LiquidPledging_all.sol +++ b/build/LiquidPledging_all.sol @@ -651,7 +651,8 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); - doTransfer(idPledge, n.oldPledge, amount); + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index da9461f..3368019 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -237,7 +237,8 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); - doTransfer(idPledge, n.oldPledge, amount); + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); } From 18984a26ffd7bf8b06418947ac403c4a05607e62 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 19 Oct 2017 12:14:31 -0700 Subject: [PATCH 05/14] use isProjectCanceled to check for canceled project --- contracts/LiquidPledging.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index d6a2135..dfe923d 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -180,7 +180,7 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { require(n.paymentState == PaymentState.Paying); // Check the project is not canceled in the while. - require(getOldestPledgeNotCanceled(idPledge) == idPledge); + require(!isProjectCanceled(n.owner)); uint64 idNewPledge = findOrCreatePledge( n.owner, From 6d8c259f1dd8ec391b3568ac5989b74729085ed0 Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 23 Oct 2017 14:25:06 -0700 Subject: [PATCH 06/14] added tests for delegations --- package.json | 4 +- test/DelegationChain.js | 151 +++++++++++++++++++++++++++++++++++++ test/NormalOperation.js | 55 +++++++------- test/VetoDelegation.js | 6 +- test/helpers/assertFail.js | 2 +- 5 files changed, 187 insertions(+), 31 deletions(-) create mode 100644 test/DelegationChain.js diff --git a/package.json b/package.json index 7068705..7b8e50a 100644 --- a/package.json +++ b/package.json @@ -39,12 +39,12 @@ "random-bytes": "^1.0.0", "mocha": "^3.5.0", "solcpiler": "0.0.4", - "web3": "git://github.com/perissology/web3.js.git#all_fixes" + "web3": "1.0.0-beta.24" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", "dependencies": { "async": "^2.4.0", "chai": "^4.1.0", - "eth-contract-class": "0.0.4" + "eth-contract-class": "0.0.6" } } diff --git a/test/DelegationChain.js b/test/DelegationChain.js new file mode 100644 index 0000000..ead93d0 --- /dev/null +++ b/test/DelegationChain.js @@ -0,0 +1,151 @@ +/* eslint-env mocha */ +/* eslint-disable no-await-in-loop */ +const TestRPC = require('ethereumjs-testrpc'); +const Web3 = require('web3'); +const chai = require('chai'); +const liquidpledging = require('../index.js'); + +const LiquidPledging = liquidpledging.LiquidPledgingMock; +const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const Vault = liquidpledging.Vault; +const assertFail = require('./helpers/assertFail'); +const assert = chai.assert; + +const printState = async (liquidPledgingState) => { + const st = await liquidPledgingState.getState(); + console.log(JSON.stringify(st, null, 2)); +}; + +describe('LiquidPledging test', function () { + this.timeout(0); + + let testrpc; + let web3; + let accounts; + let liquidPledging; + let liquidPledgingState; + let vault; + let giver1; + let giver2; + let delegate1; + let delegate2; + let delegate3; + let adminProject1; + + before(async () => { + testrpc = TestRPC.server({ + ws: true, + gasLimit: 5800000, + total_accounts: 10, + }); + + testrpc.listen(8546, '127.0.0.1'); + + web3 = new Web3('ws://localhost:8546'); + accounts = await web3.eth.getAccounts(); + giver1 = accounts[1]; + delegate1 = accounts[2]; + delegate2 = accounts[3]; + delegate3 = accounts[4]; + adminProject1 = accounts[5]; + giver2 = accounts[6]; + }); + + after((done) => { + testrpc.close(); + done(); + }); + + it('Should deploy LiquidPledging contract', async () => { + vault = await Vault.new(web3); + liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); + }); + + it('Should add pledgeAdmins', async () => { + await liquidPledging.addGiver('Giver1', 'URLGiver1', 0, 0, { from: giver1 }); // pledgeAdmin 1 + await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); // pledgeAdmin 2 + await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); // pledgeAdmin 3 + await liquidPledging.addDelegate('Delegate3', 'URLDelegate3', 0, 0, { from: delegate3 }); // pledgeAdmin 4 + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { from: adminProject1 }); // pledgeAdmin 5 + await liquidPledging.addGiver('Giver2', 'URLGiver2', 0, 0, { from: giver2 }); // pledgeAdmin 6 + + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(nAdmins, 6); + }); + + it('Should allow previous delegate to transfer pledge', async () => { + await liquidPledging.donate(1, 2, {from: giver1, value: 1000}); + // add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); + // delegate 1 transfer pledge back to self, thus undelegating delegate2 + await liquidPledging.transfer(2, 3, 1000, 2, {from: delegate1, gas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[2].amount, 1000); + assert.equal(st.pledges[3].amount, 0); + }); + + it('Should allow any delegate in chain to transfer pledge and undelegate all delegates occurring later in chain', async () => { + // add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + // add delegate3 to chain + await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2, $extraGas: 100000}); + // delegate 1 transfer pledge to project1. should also undelegate all delegates occurring later in chain + await liquidPledging.transfer(2, 4, 1000, 5, {from: delegate1, $extraGas: 200000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[5].amount, 1000); + assert.equal(st.pledges[5].intendedProject, 5); + assert.equal(st.pledges[5].delegates.length, 1); + assert.equal(st.pledges[5].delegates[0].id, 2); + assert.equal(st.pledges[3].amount, 0); + assert.equal(st.pledges[4].amount, 0); + }); + + it('Should throw if delegate2 is not in delegationChain', async () => { + await assertFail(async () => await liquidPledging.transfer(3, 5, 1000, 1, {from: delegate2})); + }); + + it('Delegate1 should not be able to transfer to another giver', async () => { + await assertFail(async () => await liquidPledging.transfer(2, 5, 1000, 6, {from: delegate1})); + }); + + it('Delegate1 should be able to transfer pledge back to owner', async () => { + await liquidPledging.transfer(2, 5, 1000, 1, {from: delegate1, $extraGas: 100000}); + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[1].amount, 1000); + assert.equal(st.pledges[1].delegates.length, 0); + assert.equal(st.pledges[5].amount, 0); + }); + + it('Delegate1 should be able to change delegation', async () => { + // add delegate1 to chain + await liquidPledging.transfer(1, 1, 1000, 2, {from: giver1, $extraGas: 100000}); + // delegate1 add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + // delegate1 remove delegate2 and add delegate3 to chain + await liquidPledging.transfer(2, 3, 1000, 4, {from: delegate1, $extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[1].amount, 0); + assert.equal(st.pledges[6].amount, 1000); + assert.equal(st.pledges[6].delegates.length, 2); + assert.equal(st.pledges[6].delegates[0].id, 2); + assert.equal(st.pledges[6].delegates[1].id, 4); + }); + + it('delegate in chain should be able to delegate to previous delegate, thus undelegating themselves and any delegate after the previous delegate', async () => { + // add delegate2 to chain + await liquidPledging.transfer(4, 6, 1000, 3, {from: delegate3, $extraGas: 100000}); + // delegate2 transfer back to delegate1, thus undelegating delegate2 & delegate3 + await liquidPledging.transfer(3, 7, 1000, 2, {from: delegate2, $extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[7].amount, 0); + assert.equal(st.pledges[2].amount, 1000); + assert.equal(st.pledges[2].delegates.length, 1); + assert.equal(st.pledges[2].delegates[0].id, 2); + }); +}); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 719b4d3..5ccd49c 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -19,7 +19,9 @@ const printState = async (liquidPledgingState) => { console.log(JSON.stringify(st, null, 2)); }; -describe('LiquidPledging test', () => { +describe('LiquidPledging test', function () { + this.timeout(0); + let testrpc; let web3; let accounts; @@ -59,12 +61,13 @@ describe('LiquidPledging test', () => { testrpc.close(); done(); }); + it('Should deploy LiquidPledging contract', async () => { vault = await Vault.new(web3); liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); - }).timeout(6000); + }); it('Should create a giver', async () => { await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -75,13 +78,13 @@ describe('LiquidPledging test', () => { assert.equal(res[2], 'Giver1'); assert.equal(res[3], 'URLGiver1'); assert.equal(res[4], 86400); - }).timeout(6000); + }); it('Should make a donation', async () => { await liquidPledging.donate(1, 1, { from: giver1, value: utils.toWei(1) }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 1); await liquidPledging.getPledge(1); - }).timeout(6000); + }); it('Should create a delegate', async () => { await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -92,7 +95,7 @@ describe('LiquidPledging test', () => { assert.equal(res[2], 'Delegate1'); assert.equal(res[3], 'URLDelegate1'); assert.equal(res[4], 0); - }).timeout(6000); + }); it('Giver should delegate on the delegate', async () => { await liquidPledging.transfer(1, 1, utils.toWei(0.5), 2, { from: giver1 }); const nPledges = await liquidPledging.numberOfPledges(); @@ -107,7 +110,7 @@ describe('LiquidPledging test', () => { assert.equal(d[0], 2); assert.equal(d[1], delegate1); assert.equal(d[2], 'Delegate1'); - }).timeout(6000); + }); it('Should create a 2 projects', async () => { await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 86400, 0, { from: adminProject1 }); @@ -134,7 +137,7 @@ describe('LiquidPledging test', () => { assert.equal(res4[4], 86400); assert.equal(res4[5], 0); assert.equal(res4[6], false); - }).timeout(6000); + }); it('Delegate should assign to project1', async () => { const n = Math.floor(new Date().getTime() / 1000); await liquidPledging.transfer(2, 2, utils.toWei(0.2), 3, { from: delegate1 }); @@ -148,7 +151,7 @@ describe('LiquidPledging test', () => { assert.isAbove(utils.toDecimal(res3[4]), n + 86000); assert.equal(res3[5], 0); // Old Node assert.equal(res3[6], 0); // Not Paid - }).timeout(6000); + }); it('Giver should change his mind and assign half of it to project2', async () => { await liquidPledging.transfer(1, 3, utils.toWei(0.1), 4, { from: giver1 }); const nPledges = await liquidPledging.numberOfPledges(); @@ -162,7 +165,7 @@ describe('LiquidPledging test', () => { assert.equal(res4[4], 0); assert.equal(res4[5], 2); // Old Node assert.equal(res4[6], 0); // Not Paid - }).timeout(6000); + }); it('After the time, the project1 should be able to spend part of it', async () => { const n = Math.floor(new Date().getTime() / 1000); await liquidPledging.setMockedTime(n + 86401); @@ -185,7 +188,7 @@ describe('LiquidPledging test', () => { assert.equal(res6[4], 0); // commit time assert.equal(res6[5], 2); // Old Node assert.equal(res6[6], 1); // Peinding paid Paid - }).timeout(6000); + }); it('Should collect the Ether', async () => { const initialBalance = await web3.eth.getBalance(adminProject1); @@ -206,19 +209,19 @@ describe('LiquidPledging test', () => { assert.equal(res7[4], 0); // commit time assert.equal(res7[5], 2); // Old Node assert.equal(res7[6], 2); // Peinding paid Paid - }).timeout(6000); + }); it('Admin of the project1 should be able to cancel project1', async () => { await liquidPledging.cancelProject(3, { from: adminProject1 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.admins[3].canceled, true); - }).timeout(6000); + }); it('Should not allow to withdraw from a canceled project', async () => { const st = await liquidPledgingState.getState(liquidPledging); assert.equal(utils.fromWei(st.pledges[5].amount), 0.05); await assertFail(async () => { await liquidPledging.withdraw(5, utils.toWei(0.01), { from: adminProject1 }); }); - }).timeout(6000); + }); it('Delegate should send part of this ETH to project2', async () => { await liquidPledging.transfer(2, 5, utils.toWei(0.03), 4, { $extraGas: 100000, @@ -231,34 +234,34 @@ describe('LiquidPledging test', () => { assert.equal(st.pledges[8].delegates.length, 1); assert.equal(st.pledges[8].delegates[0].id, 2); assert.equal(st.pledges[8].intendedProject, 4); - }).timeout(6000); + }); it('Giver should be able to send the remaining to project2', async () => { await liquidPledging.transfer(1, 5, utils.toWei(0.02), 4, { from: giver1, $extraGas: 100000 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[5].amount), 0); assert.equal(utils.fromWei(st.pledges[4].amount), 0.12); - }).timeout(6000); + }); it('A subproject 2a and a delegate2 is created', async () => { await liquidPledging.addProject('Project2a', 'URLProject2a', adminProject2a, 4, 86400, 0, { from: adminProject2 }); await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 6); - }).timeout(6000); + }); it('Project 2 delegate in delegate2', async () => { await liquidPledging.transfer(4, 4, utils.toWei(0.02), 6, { from: adminProject2 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 10); assert.equal(utils.fromWei(st.pledges[9].amount), 0.02); assert.equal(utils.fromWei(st.pledges[4].amount), 0.1); - }).timeout(6000); + }); it('delegate2 assigns to projec2a', async () => { await liquidPledging.transfer(6, 9, utils.toWei(0.01), 5, { from: delegate2 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 11); assert.equal(utils.fromWei(st.pledges[9].amount), 0.01); assert.equal(utils.fromWei(st.pledges[10].amount), 0.01); - }).timeout(4000); + }); it('project2a authorize to spend a litle', async () => { const n = Math.floor(new Date().getTime() / 1000); await liquidPledging.setMockedTime(n + (86401 * 3)); @@ -268,20 +271,20 @@ describe('LiquidPledging test', () => { assert.equal(utils.fromWei(st.pledges[10].amount), 0); assert.equal(utils.fromWei(st.pledges[11].amount), 0.005); assert.equal(utils.fromWei(st.pledges[12].amount), 0.005); - }).timeout(4000); + }); it('project2 is canceled', async () => { await liquidPledging.cancelProject(4, { from: adminProject2 }); - }).timeout(6000); + }); it('project2 should not be able to confirm payment', async () => { await assertFail(async () => { await vault.confirmPayment(1); }); - }).timeout(6000); + }); it('Should not be able to withdraw it', async () => { await assertFail(async () => { await liquidPledging.withdraw(12, utils.toWei(0.005), { from: giver1 }); }); - }).timeout(6000); + }); it('Should be able to cancel payment', async () => { // bug somewhere which will throw invalid op_code if we don't provide gas or extraGas await vault.cancelPayment(1, { $extraGas: 100000 }); @@ -290,7 +293,7 @@ describe('LiquidPledging test', () => { assert.equal(utils.fromWei(st.pledges[2].amount), 0.31); assert.equal(utils.fromWei(st.pledges[11].amount), 0); assert.equal(utils.fromWei(st.pledges[12].amount), 0); - }).timeout(6000); + }); it('original owner should recover the remaining funds', async () => { await liquidPledging.withdraw(1, utils.toWei(0.5), { from: giver1 }); await liquidPledging.withdraw(2, utils.toWei(0.31), { from: giver1 }); @@ -306,7 +309,7 @@ describe('LiquidPledging test', () => { const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); assert.equal(collected, 0.95); - }).timeout(12000); + }); it('Should make a donation and create giver', async () => { const oldNPledges = await liquidPledging.numberOfPledges(); const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -321,11 +324,11 @@ describe('LiquidPledging test', () => { assert.equal(res[2], ''); assert.equal(res[3], ''); assert.equal(res[4], 259200); // default to 3 day commitTime - }).timeout(6000); + }); it('Should allow childProject with different parentProject owner', async () => { const nAdminsBefore = await liquidPledging.numberOfPledgeAdmins(); await liquidPledging.addProject('Project3', 'URLProject3', adminProject3, 4, 86400, 0, { from: adminProject3 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, utils.toDecimal(nAdminsBefore) + 1); - }).timeout(6000); + }); }); diff --git a/test/VetoDelegation.js b/test/VetoDelegation.js index 2617e8f..fcfe338 100644 --- a/test/VetoDelegation.js +++ b/test/VetoDelegation.js @@ -15,7 +15,9 @@ const printState = async (liquidPledgingState) => { console.log(JSON.stringify(st, null, 2)); }; -describe('LiquidPledging test', () => { +describe('LiquidPledging test', function () { + this.timeout(0); + let testrpc; let web3; let accounts; @@ -64,7 +66,7 @@ describe('LiquidPledging test', () => { assert.equal(res[2], 'Delegate1'); assert.equal(res[3], 'URLDelegate1'); assert.equal(res[4], 0); - }).timeout(6000); + }); it('Should make a donation and create giver', async () => { await liquidPledging.donate(0, 1, { from: giver1, value: '1000', gas: 2000000 }); diff --git a/test/helpers/assertFail.js b/test/helpers/assertFail.js index 6633b60..123c3df 100644 --- a/test/helpers/assertFail.js +++ b/test/helpers/assertFail.js @@ -6,7 +6,7 @@ module.exports = async function(callback) { try { await callback(); } catch (error) { - if (error.message.search("invalid opcode")) web3_error_thrown = true; + if (error.message.includes("invalid opcode")) web3_error_thrown = true; } assert.ok(web3_error_thrown, "Transaction should fail"); }; From fa996a43b957220735a8fd89262e6ae105c6c929 Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 23 Oct 2017 16:17:39 -0700 Subject: [PATCH 07/14] merge VetoDelegation & DelegationChain tests --- test/DelegationChain.js | 22 +++++++-- test/VetoDelegation.js | 105 ---------------------------------------- 2 files changed, 19 insertions(+), 108 deletions(-) delete mode 100644 test/VetoDelegation.js diff --git a/test/DelegationChain.js b/test/DelegationChain.js index ead93d0..a28de5b 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -76,11 +76,11 @@ describe('LiquidPledging test', function () { }); it('Should allow previous delegate to transfer pledge', async () => { - await liquidPledging.donate(1, 2, {from: giver1, value: 1000}); + await liquidPledging.donate(1, 2, {from: giver1, value: 1000, $extraGas: 50000}); // add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); // delegate 1 transfer pledge back to self, thus undelegating delegate2 - await liquidPledging.transfer(2, 3, 1000, 2, {from: delegate1, gas: 100000}); + await liquidPledging.transfer(2, 3, 1000, 2, {from: delegate1, $extraGas: 100000}); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[2].amount, 1000); @@ -148,4 +148,20 @@ describe('LiquidPledging test', function () { assert.equal(st.pledges[2].delegates.length, 1); assert.equal(st.pledges[2].delegates[0].id, 2); }); + + it('Should not append delegate on veto delegation', async () => { + // propose the delegation + await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1, $extraGas: 100000 }); + + const origPledge = await liquidPledging.getPledge(2); + assert.equal(origPledge.amount, '0'); + + // veto the delegation + await liquidPledging.transfer(1, 5, 1000, 2, { from: giver1, $extraGas: 100000 }); + + const currentPledge = await liquidPledging.getPledge(2); + + assert.equal(currentPledge.amount, '1000'); + assert.equal(currentPledge.nDelegates, 1); + }); }); diff --git a/test/VetoDelegation.js b/test/VetoDelegation.js deleted file mode 100644 index fcfe338..0000000 --- a/test/VetoDelegation.js +++ /dev/null @@ -1,105 +0,0 @@ -/* eslint-env mocha */ -/* eslint-disable no-await-in-loop */ -const TestRPC = require('ethereumjs-testrpc'); -const Web3 = require('web3'); -const chai = require('chai'); -const liquidpledging = require('../index.js'); - -const LiquidPledging = liquidpledging.LiquidPledgingMock; -const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const Vault = liquidpledging.Vault; -const assert = chai.assert; - -const printState = async (liquidPledgingState) => { - const st = await liquidPledgingState.getState(); - console.log(JSON.stringify(st, null, 2)); -}; - -describe('LiquidPledging test', function () { - this.timeout(0); - - let testrpc; - let web3; - let accounts; - let liquidPledging; - let liquidPledgingState; - let vault; - let giver1; - let delegate1; - let adminProject1; - - before(async () => { - testrpc = TestRPC.server({ - ws: true, - gasLimit: 5800000, - total_accounts: 10, - }); - - testrpc.listen(8546, '127.0.0.1'); - - web3 = new Web3('ws://localhost:8546'); - accounts = await web3.eth.getAccounts(); - giver1 = accounts[1]; - delegate1 = accounts[2]; - adminProject1 = accounts[3]; - }); - - after((done) => { - testrpc.close(); - done(); - }); - - it('Should deploy LiquidPledgin contract', async () => { - vault = await Vault.new(web3); - liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); - await vault.setLiquidPledging(liquidPledging.$address); - liquidPledgingState = new LiquidPledgingState(liquidPledging); - }); - - it('Should create a delegate', async () => { - await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); - const nAdmins = await liquidPledging.numberOfPledgeAdmins(); - assert.equal(nAdmins, 1); - const res = await liquidPledging.getPledgeAdmin(1); - assert.equal(res[0], 1); // Giver - assert.equal(res[1], delegate1); - assert.equal(res[2], 'Delegate1'); - assert.equal(res[3], 'URLDelegate1'); - assert.equal(res[4], 0); - }); - - it('Should make a donation and create giver', async () => { - await liquidPledging.donate(0, 1, { from: giver1, value: '1000', gas: 2000000 }); - const nPledges = await liquidPledging.numberOfPledges(); - assert.equal(nPledges, 2); - const nAdmins = await liquidPledging.numberOfPledgeAdmins(); - assert.equal(nAdmins, 2); - const res = await liquidPledging.getPledgeAdmin(nAdmins); - assert.equal(res[0], 0); // Giver - assert.equal(res[1], giver1); - assert.equal(res[2], ''); - assert.equal(res[3], ''); - assert.equal(res[4], 259200); // default to 3 day commitTime - }); - - it('Should not append delegate on veto delegation', async () => { - await liquidPledging.addProject('Project 1', 'url', adminProject1, 0, 0, 0); - // propose the delegation - await liquidPledging.transfer(1, 2, '1000', 3, { from: delegate1, gas: 400000 }); - // await liquidPledging.transfer(1, 2, '1000', 5, { from: giver1, gas: 400000 }); - - const origPledge = await liquidPledging.getPledge(2); - assert.equal(origPledge.amount, '0'); - -// await printState(liquidPledgingState); - // veto the delegation - await liquidPledging.transfer(2, 3, '1000', 1, { from: giver1, gas: 400000 }); - - const currentPledge = await liquidPledging.getPledge(2); - -// await printState(liquidPledgingState); - - assert.equal(currentPledge.amount, '1000'); - assert.equal(currentPledge.nDelegates, 1); - }); -}); From 423f61ff515200c5b0c6e7351427c405e3a6653c Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 23 Oct 2017 17:02:47 -0700 Subject: [PATCH 08/14] added test for maxCommit time in delegation chain --- contracts/LiquidPledging.sol | 2 +- test/DelegationChain.js | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index d6a2135..bf85dc2 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -22,7 +22,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idReceiver To whom it's transfered. Can be the same giver, another /// giver, a delegate or a project -function donate(uint64 idGiver, uint64 idReceiver) payable { + function donate(uint64 idGiver, uint64 idReceiver) payable { if (idGiver == 0) { idGiver = addGiver('', '', 259200, ILiquidPledgingPlugin(0x0)); // default to 3 day commitTime } diff --git a/test/DelegationChain.js b/test/DelegationChain.js index a28de5b..8256117 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -64,8 +64,8 @@ describe('LiquidPledging test', function () { }); it('Should add pledgeAdmins', async () => { - await liquidPledging.addGiver('Giver1', 'URLGiver1', 0, 0, { from: giver1 }); // pledgeAdmin 1 - await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); // pledgeAdmin 2 + await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); // pledgeAdmin 1 + await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 259200, 0, { from: delegate1 }); // pledgeAdmin 2 await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); // pledgeAdmin 3 await liquidPledging.addDelegate('Delegate3', 'URLDelegate3', 0, 0, { from: delegate3 }); // pledgeAdmin 4 await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { from: adminProject1 }); // pledgeAdmin 5 @@ -164,4 +164,19 @@ describe('LiquidPledging test', function () { assert.equal(currentPledge.amount, '1000'); assert.equal(currentPledge.nDelegates, 1); }); + + it('Pledge should have longest commitTime in delegation chain', async () => { + // delegate1 add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + + // propose project delegation + const now = Math.floor(new Date().getTime() / 1000); + await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 100000 }); + + const pledge = await liquidPledging.getPledge(8); + // due to how block timestamp differences, we can't check an exact time + // the commitTimes for the pledgeAdmins are as follows giver - 86400, delegate1 - 259200, delegate2 - 0 + // therefore checking within 1000 ms means that the longest commitTime was choosen + assert.approximately(web3.utils.toDecimal(pledge.commitTime), now + 259200, 1000); // 259200 is longest commitTime in delegationChain + }) }); From c94caf9160b683b88f48ac600177f7f5ad4c58b4 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 24 Oct 2017 08:34:06 -0700 Subject: [PATCH 09/14] replace multiple withdraw calls with mWithdraw --- test/NormalOperation.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 5ccd49c..c0f24de 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -295,12 +295,20 @@ describe('LiquidPledging test', function () { assert.equal(utils.fromWei(st.pledges[12].amount), 0); }); it('original owner should recover the remaining funds', async () => { - await liquidPledging.withdraw(1, utils.toWei(0.5), { from: giver1 }); - await liquidPledging.withdraw(2, utils.toWei(0.31), { from: giver1 }); - await liquidPledging.withdraw(4, utils.toWei(0.1), { $extraGas: 100000, from: giver1 }); + const pledges = [ + { amount: utils.toWei(0.5), id: 1 }, + { amount: utils.toWei(0.31), id: 2 }, + { amount: utils.toWei(0.1), id: 4 }, + { amount: utils.toWei(0.03), id: 8 }, + { amount: utils.toWei(0.01), id: 9 }, + ]; - await liquidPledging.withdraw(8, utils.toWei(0.03), { $extraGas: 100000, from: giver1 }); - await liquidPledging.withdraw(9, utils.toWei(0.01), { $extraGas: 100000, from: giver1 }); + // .substring is to remove the 0x prefix on the toHex result + const encodedPledges = pledges.map(p => { + return '0x' + utils.padLeft(utils.toHex(p.amount).substring(2), 48) + utils.padLeft(utils.toHex(p.id).substring(2), 16); + }); + + await liquidPledging.mWithdraw(encodedPledges, { from: giver1, $extraGas: 500000 }); const initialBalance = await web3.eth.getBalance(giver1); await vault.multiConfirm([2, 3, 4, 5, 6]); From 31e511393d11f27f0e9a08b140902090b8600c97 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 24 Oct 2017 09:16:59 -0700 Subject: [PATCH 10/14] rename DelegationChain test name --- test/DelegationChain.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 8256117..4cf1837 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -16,7 +16,7 @@ const printState = async (liquidPledgingState) => { console.log(JSON.stringify(st, null, 2)); }; -describe('LiquidPledging test', function () { +describe('DelegationChain test', function () { this.timeout(0); let testrpc; From 17299393747bb615d8038851cdab1038f460e1b2 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 24 Oct 2017 10:07:12 -0700 Subject: [PATCH 11/14] use setMockedTime in longest commitTime test --- test/DelegationChain.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 4cf1837..9030942 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -169,14 +169,14 @@ describe('DelegationChain test', function () { // delegate1 add delegate2 to chain await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); - // propose project delegation + // set the time const now = Math.floor(new Date().getTime() / 1000); + await liquidPledging.setMockedTime(now); + + // propose project delegation await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 100000 }); const pledge = await liquidPledging.getPledge(8); - // due to how block timestamp differences, we can't check an exact time - // the commitTimes for the pledgeAdmins are as follows giver - 86400, delegate1 - 259200, delegate2 - 0 - // therefore checking within 1000 ms means that the longest commitTime was choosen - assert.approximately(web3.utils.toDecimal(pledge.commitTime), now + 259200, 1000); // 259200 is longest commitTime in delegationChain + assert.equal(pledge.commitTime, now + 259200); // 259200 is longest commitTime in delegationChain }) }); From 9cdd35fc2c379611f03622dd82e03d4455f129c6 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 24 Oct 2017 10:31:18 -0700 Subject: [PATCH 12/14] don't need to use bit manipulation in mNormalizePledge --- contracts/LiquidPledging.sol | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index d6a2135..9269897 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -283,11 +283,9 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { } } - function mNormalizePledge(uint[] pledges) returns(uint64) { + function mNormalizePledge(uint64[] pledges) { for (uint i = 0; i < pledges.length; i++ ) { - uint64 idPledge = uint64( pledges[i] & (D64-1) ); - - normalizePledge(idPledge); + normalizePledge( pledges[i] ); } } From 8eadb054ca5145cce8cc88ed5ea0d01e0ada6e81 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 24 Oct 2017 10:59:10 -0700 Subject: [PATCH 13/14] added tests for normalizePledge --- test/NormalizePledge.js | 127 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 test/NormalizePledge.js diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js new file mode 100644 index 0000000..e1236a7 --- /dev/null +++ b/test/NormalizePledge.js @@ -0,0 +1,127 @@ +/* eslint-env mocha */ +/* eslint-disable no-await-in-loop */ +const TestRPC = require('ethereumjs-testrpc'); +const Web3 = require('web3'); +const chai = require('chai'); +const liquidpledging = require('../index.js'); + +const LiquidPledging = liquidpledging.LiquidPledgingMock; +const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const Vault = liquidpledging.Vault; +const assertFail = require('./helpers/assertFail'); +const assert = chai.assert; + +const printState = async (liquidPledgingState) => { + const st = await liquidPledgingState.getState(); + console.log(JSON.stringify(st, null, 2)); +}; + +describe('NormalizePledge test', function () { + this.timeout(0); + + let testrpc; + let web3; + let accounts; + let liquidPledging; + let liquidPledgingState; + let vault; + let giver1; + let giver2; + let delegate1; + let delegate2; + let adminProject1; + let adminProject2; + + before(async () => { + testrpc = TestRPC.server({ + ws: true, + gasLimit: 5800000, + total_accounts: 10, + }); + + testrpc.listen(8546, '127.0.0.1'); + + web3 = new Web3('ws://localhost:8546'); + accounts = await web3.eth.getAccounts(); + giver1 = accounts[1]; + delegate1 = accounts[2]; + delegate2 = accounts[3]; + adminProject1 = accounts[4]; + adminProject2 = accounts[5]; + giver2 = accounts[6]; + }); + + after((done) => { + testrpc.close(); + done(); + }); + + it('Should deploy LiquidPledging contract', async () => { + vault = await Vault.new(web3); + liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); + }); + + it('Should add pledgeAdmins', async () => { + await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); // pledgeAdmin 1 + await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 259200, 0, { from: delegate1 }); // pledgeAdmin 2 + await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); // pledgeAdmin 3 + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { from: adminProject1 }); // pledgeAdmin 4 + await liquidPledging.addProject('Project2', 'URLProject2', adminProject2, 0, 0, 0, { from: adminProject2 }); // pledgeAdmin 5 + await liquidPledging.addGiver('Giver2', 'URLGiver2', 0, 0, { from: giver2 }); // pledgeAdmin 6 + + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(nAdmins, 6); + }); + + it('Should commit pledges if commitTime has passed', async () => { + // commitTime 259200 + await liquidPledging.donate(1, 2, {from: giver1, value: 1000, $extraGas: 50000}); + // commitTime 86400 + await liquidPledging.donate(1, 3, {from: giver1, value: 1000, $extraGas: 50000}); + // commitTime 0 + await liquidPledging.donate(6, 3, {from: giver2, value: 1000, $extraGas: 50000}); + + // set the time + const now = Math.floor(new Date().getTime() / 1000); + await liquidPledging.setMockedTime(now); + + // delegate to project + await liquidPledging.transfer(2, 2, 1000, 4, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2, $extraGas: 100000}); + await liquidPledging.transfer(3, 5, 1000, 4, {from: delegate2, $extraGas: 100000}); + + // advance the time + await liquidPledging.setMockedTime( now + 100000 ); + + await liquidPledging.mNormalizePledge([6, 7, 8], {$extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges.length, 11); + assert.equal(st.pledges[6].amount, 1000); + assert.equal(st.pledges[9].amount, 1000); + assert.equal(st.pledges[9].owner, 4); + assert.equal(st.pledges[9].oldPledge, 3); + assert.equal(st.pledges[10].amount, 1000); + assert.equal(st.pledges[10].owner, 4); + assert.equal(st.pledges[10].oldPledge, 5); + }); + + it('Should transfer pledge to oldestPledgeNotCanceled', async () => { + await liquidPledging.transfer(4, 10, 1000, 5, {from: adminProject1, $extraGas: 100000}); + + // cancel projects + await liquidPledging.cancelProject(4, {from: adminProject1}); + await liquidPledging.cancelProject(5, {from: adminProject2}); + + await liquidPledging.mNormalizePledge([9, 11], {$extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges.length, 12); + assert.equal(st.pledges[3].amount, 1000); + assert.equal(st.pledges[5].amount, 1000); + assert.equal(st.pledges[9].amount, 0); + assert.equal(st.pledges[11].amount, 0); + }) +}); From 355882de69a78a0ba16eb52043b298b700d08d11 Mon Sep 17 00:00:00 2001 From: Alon Bukai Date: Thu, 26 Oct 2017 08:45:36 +0300 Subject: [PATCH 14/14] Add Solium Linting --- .soliumignore | 1 + .soliumrc.json | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 .soliumignore create mode 100644 .soliumrc.json diff --git a/.soliumignore b/.soliumignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.soliumignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/.soliumrc.json b/.soliumrc.json new file mode 100644 index 0000000..09bb174 --- /dev/null +++ b/.soliumrc.json @@ -0,0 +1,22 @@ +{ + "custom-rules-filename": null, + "rules": { + "imports-on-top": true, + "variable-declarations": true, + "array-declarations": true, + "operator-whitespace": true, + "lbrace": true, + "mixedcase": true, + "camelcase": true, + "uppercase": true, + "no-with": true, + "no-empty-blocks": true, + "no-unused-vars": true, + "double-quotes": true, + "blank-lines": true, + "indentation": true, + "whitespace": true, + "deprecated-suicide": true, + "pragma-on-top": true + } +} \ No newline at end of file