7*  java/lang/Object()V   org/freertr/user/userUpgradeforcesI  cmdLorg/freertr/util/cmds;org/freertr/pipe/pipeProgress  org/freertr/util/cmdspipeLorg/freertr/pipe/pipeSide;  (Lorg/freertr/pipe/pipeSide;)V  consLorg/freertr/pipe/pipeProgress;! java/io/File # $(Ljava/lang/String;)V&org/freertr/cry/cryHashSha2512 % )*+ ,org/freertr/cry/cryHashGenericinit ./0 12org/freertr/cry/cryUtilshashFile1(Lorg/freertr/cry/cryHashGeneric;Ljava/io/File;)Z .4 56hash2hex4(Lorg/freertr/cry/cryHashGeneric;)Ljava/lang/String;8org/freertr/cry/cryHashSha3512 7; <=makeConcatWithConstants8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; ?@A BC org/freertr/pipe/pipeSide$modTypmodeLF"Lorg/freertr/pipe/pipeSide$modTyp; .E FGhashTextU(Lorg/freertr/cry/cryHashGeneric;Ljava/util/List;Lorg/freertr/pipe/pipeSide$modTyp;)Z IJK LMorg/freertr/cfg/cfgInit myPathName()Ljava/lang/String; O PQverExtLjava/lang/String;; IT UM getFileName W XMgetName Z [Mword]current _ `a readUpKeyA(Ljava/lang/String;Ljava/lang/String;)Lorg/freertr/cry/cryKeyRSA;cfailed to get current key! e f$errorh org/freertr/user/userUpgradeBlob g gk lputSelf nop qrjava/lang/Stringlength()I tuv wxorg/freertr/util/bitsstr2num(Ljava/lang/String;)I z {| calcFileHash&(Ljava/lang/String;)Ljava/lang/String;~ <| g filesLjava/util/List; org/freertr/user/userUpgradeNtry ((Ljava/lang/String;ILjava/lang/String;)V  java/util/Listadd(Ljava/lang/Object;)Z g doSign(Lorg/freertr/cry/cryKeyRSA;)V g getText(I)Ljava/util/List;  M myVerFile t buf2txt&(ZLjava/util/List;Ljava/lang/String;)Z~ <(I)Ljava/lang/String;org/freertr/cry/cryKeyRSA   keyMakeSize(I)Z rkeySize  keyVerify()Z <(IZ)Ljava/lang/String;  pemWriteStr(Z)Ljava/lang/String;~  $org/freertr/pipe/pipeSidelinePut~oldfailed to get old key! t getTime()J  Qorg/freertr/cfg/cfgAll timeZoneName t time2num(Ljava/lang/String;JI)I ~org/freertr/util/version.java t txt2buf$(Ljava/lang/String;)Ljava/util/List;(org/freertr/util/version.java not found! rsize get(I)Ljava/lang/Object;# public final static int year = n  startsWith(Ljava/lang/String;)Z ~ set'(ILjava/lang/Object;)Ljava/lang/Object;$ public final static int month =  ~" public final static int day =  ~) public final static String pubKeyC =  ~) public final static String pubKeyO = ~ Q upgradeServer~~~error reading version info! g fromText%(Ljava/util/List;Z)Ljava/lang/String;~ g Qhead~ g   getFilelist~ g M~ g Qkeyed~ g getSum~ g Qjars   verifyFile'(Ljava/lang/String;Ljava/lang/String;)I I  M getRWpath " #Qname % &Qchk(some tests failed!*system verification failed! ,e-org/freertr/util/logger/all tests passed! 1 2exists~ 5 6$strPut8 is missing! n: ;x compareTo= is corrupted!? is ok! B C doUpgrade E FQbakExt HIJ KLorg/freertr/user/userFlashrename)(Ljava/lang/String;Ljava/lang/String;ZZ)ZNunable to revert to backup HP QRcopy((Ljava/lang/String;Ljava/lang/String;Z)Z T UdoneFail W X$ debugStatZjava/lang/Thread\"org/freertr/user/userUpgradeRevert [ Y_ `(Ljava/lang/Runnable;)V Yb cstart e fgneedColdZicoldkwarm m no inProgressLorg/freertr/util/syncInt; qrs rorg/freertr/util/syncIntuno upgrade in progesswupgrade in progessyauto-revert cancelled q{ |(I)I I~  stopRouter(ZILjava/lang/String;)V , $info t rrandomD  QtmpExt <9(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;  M myFileName  org/freertr/enc/encUrlparseOne,(Ljava/lang/String;)Lorg/freertr/enc/encUrl;  QfilExt H delete  org/freertr/pipe/pipeDiscardneedAny8(Lorg/freertr/pipe/pipeSide;)Lorg/freertr/pipe/pipeSide; H  doReceiveD(Lorg/freertr/pipe/pipeSide;Lorg/freertr/enc/encUrl;Ljava/io/File;)Z&auto-revert was unable to reach server  doRevertauto-revert finishedoverlapping upgrades eliminated  $ upgraderDoerjava/lang/Exception ,  traceback(Ljava/lang/Throwable;)Vdownloading version info failed to download version info!  $debugRes  needStop~~~ ~ g timeJ t timeDump(J)Ljava/lang/String;!~"~#~ g  copyBytes$()Lorg/freertr/user/userUpgradeBlob; g delFiles(Ljava/util/List;)V$~%~no downgrade allowed!   doMissing%(Lorg/freertr/user/userUpgradeBlob;)Ino upgrade needed!  g upgradeConfigsaving configurationorg/freertr/user/userRead  9(Lorg/freertr/pipe/pipeSide;Lorg/freertr/user/userLine;)Vorg/freertr/pipe/pipeSetting  java/lang/IntegervalueOf(I)Ljava/lang/Integer;   settingsPut(ILjava/lang/Object;)Vorg/freertr/user/userExec  9(Lorg/freertr/pipe/pipeSide;Lorg/freertr/user/userRead;)V  g privilegedwrite   | repairCommand    executeCommand6(Ljava/lang/String;)Lorg/freertr/user/userExec$cmdRes;&~   upgradeFilesJ(Lorg/freertr/user/userUpgradeBlob;Ljava/lang/String;Ljava/lang/String;I)Z   upgradeFileK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I   upgradeScriptLorg/freertr/cfg/cfgScrpt;running upgrade script  !org/freertr/cfg/cfgScrptdoRound#!successfully finished, rebooting!%upgrade finished'~(~ ) *g upgradeBackup , -doVerify/failed to write version info!1successfully finished!3upgrade finished! 5 6 flag8nothing done in this round:java/util/ArrayList 9 = >?addAll(Ljava/util/Collection;)ZAno script for this roundCorg/freertr/pipe/pipeLine BF G(IZ)V BI JKgetSide()Lorg/freertr/pipe/pipeSide; N OPsetTime(I)V ?R SCmodeCRLF U VClineTx ?X YC modeCRorLF [ \ClineRx^org/freertr/user/userScript` ]b c0(Lorg/freertr/pipe/pipeSide;Ljava/lang/String;)V ]e fg allowExec ]h ig allowConfig)~ ]l m$addLine ]o paddLines ]r sMcmdAll Bu vsetClose Ix yhttpGet*~+~ } ~ pemReadStr(Ljava/lang/String;Z)Z,~-~.~doit n equals/~0~1~2~3~checksum mismatch, aborting!failed to rename!checksum mismatch after rename!.ver.bak.tmp q PjustSimu ConstantValue(Lorg/freertr/util/cmds;)VCodeLineNumberTable StackMapTable calcTextHash$(Ljava/util/List;)Ljava/lang/String; Signature8(Ljava/util/List;)Ljava/lang/String; doRelease doMakeKey doVerCore doSimulatedoBackup startRevertertoggleBootMode stopReverter doAutoRevert SourceFileuserUpgrade.javaBootstrapMethods-  not found  written!generating  bits keyresulted in  bits, error= sequence 10 puts "" sequence 20 puts "";"";$ public final static int year = % public final static int month = # public final static int day = * public final static String pubKeyC = * public final static String pubKeyO = .org/freertr/util/version.java patched  times! server:  archive:  version: version info parser:  release: files: time:  sign:  keyhash:   is missing!unknown upgrade status revupgold release: new release:  old time:  new time: diff:  old files: new files: extra files:excess files:upgrading to should remove  removing  set path ""got empty  key! got too small  key! error reading public  key! error reading private  key!(error verifying private to public  key!skipping  since up to date!!skipping  since just simulating! backing up  downloading  upgrading   <$java/lang/invoke/StringConcatFactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClassesmodTyp# org/freertr/user/userExec$cmdRescmdRes&%java/lang/invoke/MethodHandles$Lookup(java/lang/invoke/MethodHandlesLookup! PQ FQ Qno fg @ I!***+ *Y* D= EF G {|E Y*"L%Y'M,(,+-,3N7Y9M,(,+--,3:. P QRSTV$W,X0Y8Z:\ )n B%Y'L+(+*>D+3M7Y9L+(+*>D,+3:* fg hikl&m*n5o7q)n M$ HNRz M& YS"V** Y\^L+ * bdgYiM,j* YN-m@* Ys6-y:* -}d,Y-W,+,W* dN$(08;GMR_ux} gn#nc* Ys<* dYM,W* ,,d* ,* ,"  &:Nb** Y\^L+ * bd** Y^M, * dB!dp:!ʺ:!ʺ:+:,: и:  * ֶd6 6     n:  ߶  W    W f   W E   W $    W  > и*  d.*.78<N]lx'8;>HY\_epqF a nnnnn:n  --=* d* Sd* d+=N- * dgYiL+-:* d* +d* + d* + d* +d* +d*S+`=>+1+:*!R$`=* 'd)+ * .dr /3:>GOW\jm}      !+G%a: Y=>+I+: Y!R"0* !3d& "#$ %:&=(N)Q#W+8I* +4+yN-* 7-,9* <* >* / 012!3#5+687:9G: #n, *@*ABC D V SK*DR*G M+LMNOQn=SL*++DROSVXYZ .YY[Y]^a `a MLdddhjijkm @ M_<lp=@!(tK+vK$xKlzW*}< K<***Jxy z$|(}+/26>EGJQSWY]$n kKRL+N*W+ Y*"=*WxN--} }B%*;@DHLSTZ`aj Tn C^lpL+*+VlzW*<* YM** Ys@*,N-*lzWCHKB  "'/CHKLPU]0n2*~ @$ +mL*VM+RN-N,W* - Y,"W,:,W*gYi:gYi:W:***** * *emκ**:*:*Ȕ*߶*Ȕ ***W*Y* : * Y*  :   :    W*+, *@*S+R,6  D* :  *"6 d6  $} **+,*:6   :  !R:*@*&V@*'VW(#DR:*'VW v*+ **@ *.*02w~e %29>RX]blmv&8?I[bl~&3?HI a g m w~ !"%&'()*+(,+.9/?0E1H3T4b5h'n7w89<=?@BCD` `nDggng*Y"7 nnggng I  66+u+:4~Q*$!R,!R-64~6**79Y;:6+Y+:4~54~'!R:    <W*@*@*BYDE:HWH:LMQTWZ]Y_a:  d g jk n qWt0GHI$J/K2MVN\OmPpRuS~THXYZ\]^_`bcefgi]klmo(p*r4sAtGuNvVw^xfytzz{|}~7+7@ +   `a +wN-* ,zd-* ,{dY:-n|* ,d-n|* ,d* ,dJ "/1:MZ\o|~*!,y::+*,V*@*,V(*,V,,DROW*,V-:W*  Y"W*,V+y**  W,G*+,y**z &(2?AGTcpv|n!b J"NDqYld$) .35:4   ?!@"$@%')