ELFӬ4Ē4 (444444ԌԌT   HHHDDPtdx>xxQtd/lib/ld-linux.so.2GNU GNU()ٳD Gd&$#"$%)8K@nj rd' ,rZ1lTv96 J & libm.so.6_ITM_deregisterTMCloneTable__gmon_start___Jv_RegisterClasses_ITM_registerTMCloneTablesqrtflogcossinsqrtlibrt.so.1libc.so.6_IO_stdin_usedsocketfflushexitsignalstrncpytime__assert_failmemsetreadstdoutfputcstrnlenlseekmemcpymallocstderrcreat__fxstatusleepcloseopenfprintfsendto__ctype_toupper_locfcntl__libc_start_mainwritefreeGLIBC_2.0GLIBC_2.3 ii wii wii %$ $(,0 4 8 < @ DHLPTX\`dhlptx| "#S%Ót[5 %%h%h%h% h%$h %(h(%,h0%0h8p%4h@`%8hHP%<hP@%@hX0%Dh` %Hhh%Lhp%Phx%Th%Xh%\h%`h%dh%hh%lh%php%th`%xhP%|h@%h0%h %h%h%hL$qUWVSQhHh-1jqQ 2=@ ]$EɃ <uաX <uquj$(VjhTE KTy=0X jVjhE=DX jVjhEPtQRjPX jVjhEX jVjh Ea X jVjhPE:PhPP1ҡj58M1v]E IJ$u w90)؀=P ƄHE؃jhE=P %<i@]Ƀj]]XZjhHn Ejj$Y_jhܖ;EEE"UA=p=B 5 5FH11ۍH1:Ã@9tDŽt@9uF=ząV9~UEmٞz~s؃$]E ً1҉UEm]FsN]Ƀ]$V1҉UEmE]E EEɀ=P FFF8^ uܲٞv2 5ۃ$S>Pw ؈^ 651X ]T([5(X 9Ɖu6 5T҉ut{u9uwnu=u4 Éuf@AAYY;MuM)50EuP H1@ljE$]ED]wEE,|EEEEwMu 4E0FF@@9uԀ}tHEMvٞ ؋E|@ D %EE;E` EH=P ң$xIu)9v )uP@ hABPRrP =(9Ɖ}v9]TE)أ(P QR jXZjhH1 jjwY_jh͖D <\i@]jc_XjhHE jj%<$ZXZjht|i@j YXjhH]XZjWYXjh\5P E@i@ 8dل ,؃jXZjhHYXjhXZjw aY_jhEȃEi@]j+YXjhH}E jj%<$"XZjhD j YXj h-XZjw Y_jhn8^ vwjnXZjhUYXjw TXZjhEF+؃jh# jj5.Y[j h*` jj5_Xjh30urU9 UDx Iox)؍ ؃D9LuEP @ d x Ps jPPh j HPhh@ 5` '(Eu{69vB ]uM 9MuE΋tЉt9׉wӋ]E54EV9U449w j@tP BZ9uvU1M)9\t49r)C  H8}Em <ztjjRR$9)9v99ˋDȃ9DuE)ʍBEmٞz t ٞzx=,9ˉE؍B1<1E|9r_E1EEv9u9us4ɿ19'ta%ɿy<333?UPP5<58,X ETE(E<뷋859ˍ6lȃ9lu1]E)ʍBEmٞ,*>1^PTRhh0QVhfffff$ffffff-vtUhЃÐt&-ttUPh҃Ít&'=uU|fu듍vtUP҃uffUWVS$D$D$8L$D$#ƉŃt}ú4$|$9ډ\$vU4$)9w4$; $\$t?9v%\t@ɉp\\\$9ډw; $uD$D$ D$ D$'4D$|$#T$t\$؅tDD$|$ t&B(hZ@X9wՃ|$D$ D$D$D$$D$ ɉD$ \$D$$T$ 9s>vB(hZ@X9wŃ$;|$tv'؋D$|$9tt$ D$D$$[^_]fffffj hĒ!XZjt$YXjhfSӃ D$RD$P XZjhВYXSt$XZjhؒ$fffUWVS)׉É1҃$ $D$,$T$ɉtn0iS11T$ $ &Ƀ9^ك@BB9T$D$$$D$ \$ t|$D$D$l$%< @-D $zt3ِt&D$ L$ H4vQt& t&؍D$<D$8L$$[^_]t$%<xD$=08vUWVSˁLEMhhuEE 1ɀ}lj1҃1<ۅM $)‰fF^.Ɖt&@AAYY;ud x4VVPM$KCȃ‰؉)Ћ 1҃9r򋅸1S BCٞvFCٞDٞÉDž߭Xv؃9uS#؋Dž߭ٞVP؍C[ƀK<t PTf؃9ue[^_]Ðt&@XH ‹‰t&ƃ@AAYY;ukf4VVPrt&1Ev'jj$ËXZPPuHDž߭؅مX;'C1҃PP1ممؐt&E$مٕɃٕDž߭Pu2-LX<<Q؋;1҃PPBمممɉ'fffffffW h D$PL$yǁ1) D$ T  @@ǀǀǀ,٘4ǀ0 _úfffUWVS1ہ-H  t&9)PhD$P5\ jӀ=D  5\  5\ O$cXZhh \ 19xH tY1t&DTΉT9w߁[^_]Í&1[^_]1Ҁ=C L$|$ tDt&fL<ƃ%fL$fLD$9fL$D$_rˋ|$ 넍v| ƃ%ǀ|$|D$ǀ9ډ|$D$Yr뼋1Ґ DT%DT9YwfffffUWVS1$D$T$L$hD$P L$1҃Ɓw9:t\XЀ wv1ۉ֍v'<1\P1PЀ vw89:t<.u?w7|$D$؉$t!눍t&t(vݍv1ۃ Q,[^_]À9:t(t$D$؉?:uȁw$띋D$ffffffUWVSL  D$8D$<$@0$@H d ` L X L  H  P   D @ A    T D @ D$0血 T C @ D$ D$D$1\$D$$$@߉$@<- $A$Bh0W^_jFhpI]XjDh;XZj-h-Y[j[h,^_jWh]XjThXZjNh4Y[jih^_jNh]XjNh@XZjqhY[jXh^_j/h\]XjOhXZj6hܤY[jlhw^_jghi]Xj}h[XZjshhMY[jdhܦ?^_jth@1]XjRh#XZj}hY[j~h^_jOh]XjkhXXZjhY[j;hĩ^_joh]XjhXZhhpY[j&h^_hh@]XjhuXZjph̫gY[j>h<Y^_jhΔK]Xhh|:XZjbh,Y[jh^_jGht]XjhߔXZjhY[j5h^_jh]Xj hXZj!hY[j"h^_j h)]Xj(h<XZj-hdY[j2hv$PPj D$DPt$H-PPhSF hSP޽PPhSF hSP贽FFv ^^؋D$8LLt&hSr$@[|$D$0ٞz 1҉T$$,$ٞz=\ٞ8ٞz =X u4dٞ9hٞX @X v'9rX  pjj$,` x X D$<ٞztfD$0ٞztWt xٞjjPP$. ءH   = t =X t D$0ٞztHLD$8t?X 1ɉL$$,$@X@XuD$8f=@ u= Ѓ@  t&ƃ8'؍ك,ٞ؅u L$u D$ك0D$= ؋4$,$ٛ4'`s Pǃ  s fPǃXs fPǃCtF D$$,$ٞz=\|ƃ8'<$hSX D$8PhS襸k D$41)ʃ S HG |$  $>rT$i'hh  <-,4,&hS$P(jhyWWj$hMt&D$D$ٛ,A $D$,$ ٛ0QvD$B J0vJ7L$A P0vP7T$@hD$LP7jPUt&\v؋4t&L [^_]Ðt&j hڕa'`\$PPjhoZYhS[^j h$LX =1ز!ȮPPhS hSD$HPcPPhSL hShD)nPPhS! hSh@CwWWhS  hS0PF VVhS訿 ǂvD9tQ>tLT$ T$ HЀ vHYD9u|$T PPj)h8B(PQQhS޾  PhS't x1QQhS蕾^_hSXd Q @RRhSZ hShL 7 Ǔ}Rhhh HPPhS  hS4Pڮ<$uh ـ4CA (=\F$B6mH X  $ ƀ<xNH C PPhS) h0hS QQj hfA[^j5X Ҷ_]jhr$ jj58ҶD$< =LtsPPj hLD$HtUjhH jjD$Dpn_]jh蠼 jjD$DpMD$HD$HuPPjh^@  ƀ;yD  f 'lٞX  ƀ>PPj hz޻ jjt$H莵XZjh׷   P   ƀ@ ƀ?D  \WWhS XT$jD$O'dPPhS褺 h@ hS聪@ $@6VVhSB P  PhS) oPPhSXZj D$8P贷D$<HP(xhD$, D$ InYt%t&<Ћl@ɉ8h\9uߋD$D$ D$l$ٞztd\$D$1x6t&l$D$l$L$$%, $ \$,D$,C[K[9uD$1۽|$t& 01҉؉5X )T$@ɍPvt&;\$uɋ|$ٞzOuMt$AɍAYtt&X@X9u؍t&<[^_]=,믐&=dT$$ (%, $蹩oٞP\t&D$Dȃ_vʋD$ ȍHXȃ\ɋD$$W&ȋ5LL$ ǃD$(PÉD$<1ۍ&\$D$Y&t&B <v & fɍt&u%P wl$D$&t&B <v & fɍt&u%P w9؀= L$ D$(1NjT$\$T vM)?<vډۅ jhϰjS^ X Pˋ또&BvR <fBvB <;:fڋx&ڋ \$$զD$D$ɋjh¯D$TT$1\$Tt&9t`PX <vمu%jhfjW밃jhAمD$T X \$jh X D$11T$IffffUWVS<$p<$D$k|$Dut,$t,$"D$dD$@|$Dǀ|ƀ ǀǀǀx$P$TP$XP$\P $`P$dP$hP$lP<1[^_]ÉljD$ x$PP9T$@$TH$XH$\H $`H$dH$hH$lHx}T$@9LJtjD$jD$j1D$hjj G$& jjP蔪1ft9uŋ$DŽ$1DŽ$DŽ$D$1t&|PjS葪t1҉4$9u9\$뱋|$ $| )D$R$|$ Ѓ|$/$|$ |$$|$ |$$|$ |$$|$ |$$|$ |$$|$ |$tm$|$ |$tP$|$ |$ t3$|$ |$ t$|$ D$ D$hx|$k T$DD$ ҋt 9D$DD$DD$ tD$D||$htD$D9D$ D$|$<$|$1Ft$$3jjCP趧 9s2@;,$,+u|9s1҃L)1*18+|$L$kL$1$ t&,T<x$09D$u΃D$|D$ |$De8,\D$ D$D$$+$h$PܤD$ 5 $6<[^_]ÍH|$ 1$1ǐ&<+#jjUͥŃf!t9VjS9uƒjjU菥u;<$t닅7(|$ ՋD$@D$D$iD$XT$LD$8D$<@D$4D$`D$P$D$\$,\$(D$T$$D$\D$|$l$\$0RT$$)NjD$ |$ 1D$HŐ1;|$$#D$ jj4D$D$ jjPt1f|\$EٞED$,E|$8ٞz ɐt&\$,D$(ڞv\$(|$<vEE hvEڞztj hj$Vjt$ ozjVhU!yD$, jh%jh[]fL$z{؃$كjjL$\$|D$|$譆YXj$P܌ jjs荆XZjWÌǀ؋D$ بــ؋D$ ؈1|$ D$Љ$,$ D$ 1҉T$$,$ ؋D$ ؈%؃$ÃevT$@D$dYjh.豋j|$E[^jhH藋]Xjh艋XZjY[jhl^]jXZjh(OY[jPބ^]jh xEfVSÃtD$ 1H_v    8L`tat$ '1jh۳hSujdVhSu jhhSuĄ[^Í&jdht$Vԁ럍&jdht$V贁|t&jdh&t$V蔁\t&jdh/t$Vt@G|>@O|>@G|>@9vD>ua[^_]ÐӍ,> &jD$PA9tÃM L$t ^vЃjh΍t&jh |$̃)֍F0D$jW軆[^_]É.'|>@эG|>@ȍO|>@G|>@뱐D$1jWPbffffUWVS$,RP&;$(wh$ X9wZ &9wJ/D$Ѓ< H0vHWL$ B0vBW$hV辅9$(s [^_]fffUWVS$,$0RP$ 9ލhs Zt&9rO9wD$Ѓ< H0vHWЈL$ P0vPW$hD$ P9s [^_]fffUWVStE,](u EP<hhٝE$م hhE$׀ۉu#u VqM9~u~~1<31҉&9| uSze[^_]Ð&= tكjhxōvkj3ƅƅTWjuD0Ap1t&uHPpƄ ƄV=&j3WjPot#)򐍴&32uFƄ5 ƄSFj3WjmPWot&)& D u񉍰j3Wju Ƅ ƄApnt+&3D2uj3FWju$Ƅ5 Ƅ5Qnt&)vΈ D2u퉵Ƅ pƄ5:vUPL0< w7&0 v9Evw Jw߃„}} 9E1ҍ< v9v΃Y9]w8wjPhQu uRv uƅf VS5  蔀 Nt&v'j3Wjpۍvj3Wjۍvj3WjjƄ5Xplt+t&3D7uƄ5 = tjƄ4K/Ƅ4LAƄ4]=ل$^ Ƚ$uل$Z| Ѻ)0YшK̉ Mb)É04OQ)É04P)É04Q)ȃ04R)ǍG04S kvƄ4Kbل$ в<$tYщǹ Mb)É04\Q)É04])É04^)ȃ04_)ǍG04`pv'Ƅ4Khnل$<$sd))щ؃00,K4Mل$~ \$ <$isƄ4[tù-D$w$غQѺ)0'$FƄ$Gh-Wh-$PL9$ PtP^vƄ$F[ JWwJ0$G< PWwP0$HƄ$I]Ƅ$Jtjhh-$PLL$ (Ƅ$XЃ< H0w2Ј$G P0w$Fh-$JPP7H7Ƀh-h$VW h-hD$DPWZ|$$D$z ƒD$z  ʍ$T$$|$$$h-hʴWgWh-t$VjD$$\$LD$L$dM h-Vh-WKjhh-WJ h-VjD$\$8D$8$Mh-Vh-WJ h-hǴ$%SVD$z ƒD$z  ʈT$$|$'h-hӴ$V`V h-hܴD$DPIVl$(jhٳh-S Jh-hߴ$VV h-hD$DPUh$\h-hǴ$%SUD$9$ wD$$T$\$c$ UWVSƁ<$XL$ $//fL$:KD$$xD$$|D$1jd|$@Wj$pPKjhh$QSH jdWhSHjh/hSH $p~IjdWj$|Ijh˷hSH jdWhSHjhHhSH jdWj$IjhvhSZH jdWhSIHjhHhS7HL  ٞDŽ$@FDŽ$@FDŽ$('DŽ$@FDŽ$@FDŽ$ PG$D$$@Ƅ$,jhMj $8PGFVƄ$ Ƅ$VЉƒ J7wJ0$ƒ J7wJ0$ƒ J7wJ0$ƒ J7wJ0$ƒ J7wJ0$ P7wP0$j $Pj $8PFV$|$$?<< < <n < k < <<<K&hS2GP5 t|&| Buv…uƄ5ل$zuل$ٞzt" t&ً$Tgv؀|$u'<[^_]ɍv'w농jh YY^j $8PY]XjhHYل$D$Lل$ڞ &؃jdWIY$4ل$ ٞ؋$(=hل$hSX<[^_]Í&ٞz ] ɍ&$jd$Pj$Fjd$PjdWD$$ D$ |$\T$(D$j hhSAD$ T$8D$T D$U ȋL$0 .ȉƒ JWO L$Cƒ JW/ L$Bƒ JW L$Aƒ JW L$@ƒ JW L$?ƒ JW L$>ƒ JW L$= PWt T$D$?]D$@늍v'j hhS>D$  D$$ D$ Qt&jP%LXZjhwR8&jhYR jj$LXZjh8REjPKY^jh&R &jj$K_]jh7Qj hhS=D.D..=v )ȉ$D.$ ؽD.ٜ$D.=v )ȉ$D.$L. ܽȍMĀ$L$ ٜ$# jj t$ N‰D$ 1u@JtE,uut$$ƍt&>,tjVhS<Kuߋt$$L$ $D$: %D$;jhHhSE<L$%t$$D$ <v$L. $ <ʃ?ٜ$ v @)‰Ѐv$D. $ ih$(E ;D$ ٜ$kD. ˆ$1?1€<$vjdWjT$ D$ P$=jdWhSS; jh͵hS>;9l$ .1ɉЃD$?]D$@jhVhS :L.D..D.=v )L.$D.$ ؽD.ٜ$=v )ȉ$ET$ $$ ٜܽ$j hhSf9T$ + @ VLjh`hS9j hqhS8D.D..=v )ȉ$D.$ ؽD.ٜ$D.=v )ȉ$\QL.$fD$:D. ܽȉ$%$$ٜ$jdWjPv9jdWhS(8 jhhS8L.ʃ?v @)‰ЀvD$ D$ ٔ$jdWj$:jdWhS7 jhhS7D. <vD$ D$ <ٔ$ jdWj$9jdWhS`7 jh7hSK7D. ih$8jdWjPk8 jdWhS7jh&hS7jj t$ HjhzhS6𺫪 jdWkj2P8jdWhS6 jhGhS6WjhghS6P0J0iJ0IJ0)J0 J0J0J0P0J0J0J0sJ0PJ0-PWAWj hhS5 .ED$1u &QtB ,uuꍨ #&jUhS5rt},ujhHhSl5D$ 1u v6tAt,uuꍰt#&jVhS5t>,ujhHhS4j h\hS4^$j"hphS4$/_T$ fD$:j!hLhS4T$DȉD$D$ ٔ$0jdWj$6 jdWhSB4jhJhS04 T$ /_T$ fD$:j h=hS4l$.fD$D$ ٔ$,jdWj$6 jdWhS3jhGhS3D$ T$ a/_T$ fD$:jh hS|3l$.ih$8jdWjP4 jdWhSH3jh&hS63D. T$ <vD$ T$D$ ٔ$ jdWj$65jdWhS2 j h+hS2D$T$D<vD$ T$D$ ٔ$jdWj$4jdWhS2 jh7hSl2D$T$T$/_fT$:j hhS:2D$ML$ffD$D$ <ٔ$(jdWj$D4 jdWhS1jhhS1 T$$jhOhS1$j hhS1Y1jhhS1jhhSf1jhhSL1D.D..=v )ȉ$D.$ ؽD.ٜ$D.=v )ȉ$D.$ ٜܽ$jjPBƉ1uv=t@,uu荨!t&jUhS_0t},u65D$:66D$;jhhS0.U<=A jhhS/jhhS/$jhhS/$jhhSz/T.D$N D$O< H0vHWЈL$= P0vPWT$ 8 jhnhUF&j h~hU4& $h D$ 1';$h D$ R)ƒuΉƄ$t?A$p ?A$q?A?$rQA$shWhU[%1;$h I'$h R$h )tƄ$r=Ƅ$s=Ƅ$t? 3 G$p ? A$qu!?PAv 3P $rhWhU$jhhUl$=@ t0H Y hUE%PhU5H C8 tt&^6u|$\$h M|$XB|$PD$  |$4D$ = +$h $` jh[7$t p $X=!!Ƅ$ZЃ< H0 Ј$Y P0vPW$XhU]7Y_jhmO7 ajhs7 2 s{ j hy6]XjPw0XZj h6Y_jPZ0-ٺj j $p ٺ jj$p İ ٺ jj$p 襰 $l ٺPj$p }[^jhٳ5t&|$o v'=D t2= t)=  t|$t|$Xtjh5 $l F,Y$ 9,L [^_]Ív$ |$Y$ t!|$|$X|$Z} $ $ $| $x 5  5 K'|$X= D$P$h $X$h 1$` _tyv0Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUa4@ th9:@ $` u0PhP^\$XƄ$Yj U3@ uF9vjh3zv=\?t&3D$,&~hUG <$SPU5  3 6t&3gG&3gGs&3gG@&3G = u @ jh2j hl2D$$Ƅ$l؉ƒ J7wJ0$[ƒ J7wJ0$Zƒ J7wJ0$Y P7wP0$Xh$dUB2jhu02^_jt$<+XZjhz2Y[j$t +|$Z jh1|$|$Xjh1jh1 jjt$0^+Y[jh1 jj$| =+^_jh6o1 jj$ +XZj hN1 jjt$,*Y[jh601 jj$ *^_jh1 jjt$X*XZjh0 jj$ *Y[jh60 jjt$T*^_j h0XZjt$4E*Y[jh0^_jt$P**XZjh|0Y[jt$8*^_jh6a0XZj$ )Y[jh÷C0$ D$jh0Y[jt$()^_jh׷/XZjhз/ jjt$L)Y[jh̕/L $ $ /^_jh/XZjhȴ/Y[$ $ l/^_jhٳ^/@ t$h }= =8t&=@ f=&=w1&=&=/Ƅ$X[ JWwJ0$Y< PWwP0$ZƄ$[]Ƅ$dj Ui.kj hdhUhWjL $/ hWhU{v+E.‰h\$xi€QS)Q ]XhS-XZjhH-Y[jt$@\'|$8;jh-j$ +'^_jh }-$ jhq\-D$$Ƅ$j P0D$$Y P0P7'j h-D$$Ƅ$j P0D$$Y P0$Xh$dU,XZjh,t&>+> +>+L>+jL$X8A 11ۀ|$ M$ |$Z$ $` J8< |$  L$`t$(t$ +> +|$ WD$_Pt$8t$$t$Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhU#t;|$vjh#Y_jP4D$  jh*w#XZjPY_jhW#]XjPXZj h7#؃jPXZj h#\$(Y_jUXZjh"Y_jFFPwB$h W1jh͹"]XjD> P;$x 9w  PWչ$p -$l P$p P$p ߹xQx|$ t&$l $l t$x~L$|$h 89t}= 'jh!L$| t& 8I$h $h D$pt\$p1׃9Lju$h 8D9r\$pF9ÍD$t91=u$l$h $m1t9ˆmu$h  v = u2$ À|$Y!H1=ufojhn $D$z0$^Xh$|PgXZjD$vP9 $1Ƀ v9rmtȺ%I$)))уtWj2h $|v$ L$lÀ|$Y!ej h̼뻃jh$谗Y[jh"r$1蔗$pP jh+|$4މ%&98jhH$$8yu<xjh'$덻D$44@ЈL$HD$@jh)_L$PɀD/ D$@yY/9Cc= Ƅ$ZA0vA7$Y F0vF7$Xh$dPD$8DŽ$Xv^-+aYD$@T$8jЍdPb9l$4jh619덴$Xr3L$X ^wHjV9$p uÄtjh1˃jh벃jhU$t$D0Ƅ$jЃ< H0vH7Ј$Y P0vP7$Xh$dPU`jh&IjhRjhMYjhJBjhE+jh@jh=jh:jh;~0D${XZjT$wRT$T`0D${Y^jT$PRDjh6-0D${XZjD$wPdjh2̓jh/v|$4P [t$4M$ 1tT$l9u= L$lRj h L$|7jhŹ{$h $h 1ۍx t&9jhAC9D$rRTƄ$ZЃ< H0vHWЈ$Y PWwP0$Xh$dP9uj h]XjPTXZjhY_jP4]Xj hJj hoSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhU SƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUBXZjhs4 S Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUS Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUS Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUMSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUj h\$ j h&HW7SƄ$ZЃ< H0vHWЈ$Y P0vPW$Xh$dUrSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhU(SƄ$ZЃ< H0vHWЈ$Y P0vPW$XhU2fff tÍ  H  fffffUW1VS D$D$0l$$ $D$D$4uD$D$8D$D$(0:D$!:D$!:D$Ät<<-t8%@v 4$Epuu 1[^_]Ít) $@uuD$(0<-t&1L$<<$Ɉ  [^_]ÍFED$(D0HЀ w;|$(1ɍ uLH7XЀ v|$t뗍vvF1ɀ|$uzUWVS|$D$l$?XtG1 xt9v[^_]É1Ґt&Ett$ Bt*)LɈ tƃ)9w 9s[^_]9w[^_]fUWVSȻ̉D$C0D$jD$PD$WV7)ՍM0L$"jD$PWV t$,t$,WV $[^_]ÐD$L$P19u t&<t9vÉ'fffffffUWVSD$(L$t$$D$ɉ$D$(D$gfffftJÉ))‰Ѓ0D؉…uńt|$tCD-<$;|$ v T$ T$(9vR @ 9ut$9r)эt&9s[^_]Ív'D$3UWVSD$0t$8|$<-jj\$$D$D$D$\$WVjP >OD$1 <t9vT$4t{|$4.xvRD$4,>v вjj\$$BD$0D$ED$9u؋D$4| ؉'> v'؃[^_]ÍX~&HH9u-E&jj\$$ D$D$D$\$WVjP >OD$1ffVSL$ \$t$PЀ wI0t7Q  L 9tHЀ v[^É'[^1ffUW1VSt$|$ \$-9؉$w4jЉ wM1jЉ w* ;$LJЉv1-u[^_]Ðt&!1fUWVS|$D$ t$/X< G1ŃH u"9v<-q1[^_]Ð͉<-P1퐍& A< j& A< v в0 $$ &ك9vظuB_9ڸT<H ؍&[^_]1'붐&ظ.u9w  $0 w $ A< wdʃ0 $9$vى^wt&9T 1ىu 1HUWE.VS$\$8t$jhHUV &D$0sD$0fffUWE.VSЃd$(|$,D$sm$jhj iµl$U)iuD$ 1D$9v)D59r$QjhJՋT$8kdL$jhT$@)jhT$HljhHًT$PX ųd$(jh Ѻ RT$8)d$0jh ىk<k<)ыT$@L$8jhT$H),[^_]ffffffUWVSl$t$xM<.  Vtf22 9 u؈L..[^_]Ðt&11.L.[^_]UWVS\$@l$0t$DD$j0jjj>t$DU|$0Wt$XL$X+ t$D$|>t#[^_]Ív[^_]fډD$jpjj,j:t$DUWt$XL$X tËL$4$D$ D &<,L$j0j*j,j:t$DUWt$XL$XD$ p ]l$RL$D <*uL$vZC¸%I$T$D$)‹D$8Dt0D$8؉D$))\$8D$&@9uD ;<:D$8DT$8PT$8DQT$L te|$49<$wW|$<9p|$t&;$w/;D$QI|$8 LủT$3t$@t$@9 fffffff tÐt&S Q 1ɍ&غ)t&5t uu Ј u[Ã5j X5S\$t$SSPh<5I[ffS\$t$SSPh<5[S\$t$SnSPh<5[ff t$t$hF5ÐD$ $t$$t$,hJ5,fffffVS \$t$SV9rt$D$[^&[^ffffffVS \$t$SV9rt$D$[^&[^ffffffVS \$t$SVL9rt$D$[^&[^ffffffKfffffST$D$L$\$ 9vЉD$\$ L$[gfffST$D$L$\$ 9vЉD$\$ L$[Gfffjt$t$~fffffpD$ Pt$xjD$(%-|S  9D$[Í Zt$4t$ [fffffff uD$ D$ ÐWVSt$|$ VtV7Pg[^_fffffffD$ D$(wpD$,ٞwe|$D$ fD$ l$ T$l$L$ɉL$ٞD$vvȃÍv'vh`hhTh[?fffffff$|$D$D$(D$ fD$l$|$l$D$$,$vЃ$ffft$ tT$ fj6fVSL$t$ t ~19[^Ðt&D$ [^!Ív19~ދD$ މ[!^fffL$1;L$sD$ ffUWVS|$ D$$l$t$\TtX$UWTt7$\G$LADC; $u[^_]ÐWVSt$|$ POt%Vt$D$PS6Xt$ ,t [^_Ðt& Sfffff (kD$tٞr#&؍ȃ Ív'1sjj$ȃ fffffkffffffffffffffffffff+fffffKffffffffffKfffff ffffft$Tá u  fffffS jjjXZjSE PjS6[ffffffff$D$,ffD$D$0D$D$ȉD$ jRjt$-f u8|i8|i16|f32-s [-]5..[-]12-a (0.06)-c 4..8-b 0..9-l 2..255-g -r -w 2..4096-o -S -o 0..1 (-1)-M -P -n -U or -L ip:port number-T -u ip:port number-J out of memory-J ip:port number-Y d|f iq-filename create-Y b -Y d|f|b iq-filename -h thislorawan all modulations:Tianqi-Sats 400.260MHz: mknod iqpipe pimport json, base64, socketIP=("0.0.0.0",5100)sock.bind(IP)while True: print(obj)cannot open udp socket-o shift outside iq bandFIR length= ratio= offset= notches:..bw= cr=from header sf= id=Off optimize= drpll= drc=ppm squelch= inverted-X < use -h ,manual notches at:b~^- n=Header: dlen= crc=head crc error notch at:open iq file jump: found first syn nibble wrong first syn nibble state=SYN 1 OK state=SYN state=NETID wrong second syn nibble state=REVERS1 state=REVERS2 jump/4:rev chirp timeout state=DATA dcd-lost-count=noise=dB peak=dBWarning: only one bw = input samplerate!-Z (0.01 0.9999)-W (0 = off) Decode lora sf5..12 +reverse, 7.8..500khz out of IQ-File/Pipe, 8 16 32bit, shift and downsample (samplerate must be exact +/-0.00001) output data in raw udp, axudp or json, view (and if possible generate aprs axudp) aprs, pr, lorawan, fanet, meshcore, meshtastic... -A (*) enable frame chaining for ax25 longframes -a (*)follow frequency drift, 0 off (0.06), try other on hard to decode frame from iq-file -b kHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (7) -C (*)use crc on implicit header -c (*)coding rate and enable implicit header (4..8) (else from header) -D (*)if dcd lost go on decoding until frame length limit (for external FEC or monitoring) -d (*)switch off collision detection (less cpu but loose stronger frames starting inside weaker -E switch off using crc to repair 1 chirp (stresses crc, does not repair much) (on) -F max. block energy FEC off (hamming code fec remains on) (on), try on/off for decode iq file -f u8|i8|i16|f32 IQ data format -g add this to measured signal level for absolute values (no autogain in sdr) (0.0) -H show payload in ascii if printable else in [hex] same as -H 1 0:show no payload, 2:in hex, 3:hex with commas 4:tries decoding payload, 5:with ascii/hex, 6:with hex, 7:with hex and commas -i IQ-filename or pipe, "-" for /dev/sdtin -J send demodulated data(base64) with metadata in json, may be repeated -j write demodulated data(base64) with metadata in json to file or (unbreakable) pipe -K do not exit on broken iq pipe -L (*)same as -U but AXUDPv2 with metadata for igate individual destinations per sf: -L 127.0.0.1:9012 -s 12 -L 127.0.0.1:9010 -s 10 -l (*)fixed data length for implicit header else guess from dcd -M pass through rx frequency to json metadata -M 433.775 -N if verbous add empty line after data line -n <[-]Hz> <[-]Hz> notchfilter baseband from to Hz (may be repeatet) -O <0..1> (*)optimize on off else automatic on sf/bw (-1) -o shift input iq band +-Hz -P <+/-ppm> (*)tune datarate (chirp samplerate) or preset for auto (-a) in ppm (0) -Q verbous and -u sending only for frames with crc and crc ok, see -v -q (*)invers chirps or swapped I/Q (prefer negative spread factor) -r downsample input, give exact input samplerate in Hz (off) -S (*)modifiy squelch level critical for implicit header frame length guess (automatic) -s [-] (*)spread factor (5..12) (12) and start a new demodulator negativ value (-s -12) for invers chirps or swapped I/Q -T send json udp with DCD-state+sf valid for this sf and every send noisefloor and peak -t (*)send raw frame bytes in udp frame only if has crc and crc ok -U (*)send frame in AXUDP -u (*)send raw frame bytes in udp frame, -Q for crc check -V very verbous for debugging frames -v verbous ====: cr=4(no fec), +++++: hamming ok, -:hamming error, h:by hamming corrected, ~:weakest chirp replaced, b:noisy chirp replaced, c/C:tried until crc ok/not ok, ^:bins with decending power sum tried until hamming ok, x:ok but same sf/bw chirps seen, sets -H 5 too -W every n*firlen samples update notch filter 0=off, ok:50 (0), less for pulsing narrowband noise -w downsample fir length (higher is sharper/more cpu) else automatic (4..4096) (0) -X (*)filter network-id (sync), 1xx stops decode on wrong id so fast ready for new frame if set -d 0 is wildcard, 20 will pass 2*, 03 for *3, 00 pass all (00) -Y d|f|b iq debug output in float32-iq (d)echirped or only (f)iltered, view spectrum, or bins , sets -d -y (*)not view decoded protocols and for aprs needs 3c,ff,01 header else all junk removed until first letter -Z add pulse noise filter (noise blanker) (0.05 0.999)(*) may be repeated for more demodulators, to start next demodulator apply -s before other pramaetersexamples: aprs with autonotch for narrowband interference: rtl_sdr -f 433.775m -s 1000000 - | ./lorarx -i /dev/stdin -f u8 -r 1000000 -W 50 -v -H 1 -N -b 7 -s 12 -w 64 rtl_sdr -f 869.525m -s 1000000 - | ./lorarx -i /dev/stdin -f u8 -r 1000000 -Q -v -H 6 -b 7 -s 12 -s 11 -s 10 -s 9 -s 8 -s 7 -s -12 -s -11 -s -10 -s -9 -s -8 -s -7fanet with plutosdr axudp to aprsmap: rx_sdr -f 868.2 -s 1000000 -d driver=plutosdr -F CS16 - | ./lorarx -i /dev/stdin -f i16 -r 1000000 -Q -v -H 6 -L 127.0.0.1:9002 -b 8 -s 7 rtl_sdr -f 400.0m -s 1000000 - | ./lorarx -i /dev/stdin -f u8 -r 1000000 -o 260000 -v -b 7 -s 10 -O 1 -N -H 2meshtastic + meshcore and frames in json via udp to decypter: rtl_sdr -f 869.5m -s 1000000 - | tee iqpipe | ./lorarx -i /dev/stdin -f u8 -r 1000000 -o 118000 -b 6 -s 8 -v -N -Q -M 869.618 -J 127.0.0.1:7001 ./lorarx -i iqpipe -K -f u8 -r 1000000 -o 25000 -b 8 -s 11 -v -N -Q -M 869.525 -J 127.0.0.1:7002example: decode payload from udp json with python3: -J 127.0.0.1:5100sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) data, addr=sock.recvfrom(1500) obj = json.loads(data.decode()) if "payload" in obj and "crc" in obj: payload=base64.b64decode(obj["payload"]) print("payload=",payload, "crc=", obj["crc"])enable FIR (-r) for notches (-n)no FIR (-w) set so no filtert outputwarning: sf<7 needs implizit header… /^xƍ4hР@#G8qĉ%K.\p 2dɒ$I&M7nܹrȐ A +V[mڵk֬Ye˖,XaÇ>}۷o޽z׮]tѢD!C 6lرcǏ|?z$@? #>̌?>>$Hu=@@AKGOzBq=J0A75$tI'7?I@=@HCg@@zDzĕ38>pA A`@_p0y #<333?L=q= ףp?HzG?rϥwwSkytraxxBitBroker.euAirWhereWindlineBurnair.chSoftRFGXAircomAirtribunealfapilotFANET+FLARMXC TracerOGN Tracker4aviationVariousEspressif based base stationUnregistered Devices[Multicast]fw:[] axudp: beacon encode error:!Clb=m/s Meshcore:TRANSPORT_FLOODTRANSPORT_DIRECT/RESPONSETXT_MSGACKADVERTGRP_TXTGRP_DATAANON_REQPATHTRACEMULTIPARTCONTROLRAW_CUSTOMUNDEF TRANS: Trace[ Path[ Hash: Time: App: [ pos:\gChatNode/lRepeater/rRoomServer/BSensordB afc:MSHCOR Dst: Src: Mac: Auth: Flag:dB MHz Ext Header Forward FNTACK none requested requested via forward unknown unicast broadcast Signature:no payload tracking:Online Tracking deg/s QNE:Message:Message subheader:Service:Internet Gateway Temperature:C Wind:deg km/h Gusts:km/h Humidity:% hPa State of Charge Extended Header Thermal:qual:HW-Info Ground Track:online Remote configuration:Acknowledge configuration Request alt:Geofence Broadcast Reply Landmarks FANETFanet:Clb:geobased fwd ///g/g/O/g/'/X/n///[/>/b/s/e\o/'/a\!\!{"dcd":,"sf":,"nf":,"nfpk": ill-id: cr: len: dcd-lost crc:okerrno lev:()dB snr:dB nf:)dB txd: t: q:% fc: fec: dre:MHz"net":,"crc":,"invers":,"bw":,"cr":,"preamb":,"duration":,"level":,"afc":,"dre":,"eye":,"nfloor":,"pknfloor":,"snr":,"fec":,"rxmhz":,"ver":"lorarx","payload":""} cannot write json-fileJoin-requestJoin-acceptUnconfirmed Data UpUnconfirmed Data DownConfirmed Data UpConfirmed Data DownRejoin-requestProprietary RFU: Major: AppEUI: DevEUI: DevNonce: NetID: DevAddr: DLSettings: RxDelay: CFList: ADR: ACK: FPending: ADRACKReq: ClassB: FOptsLen: FCnt: FOpts: FPort: Payload: MIC:ax25 part 2ax25 chain hash missmatchax25 part 1AX25::fm to * ctl RRRNRREJUIDMSABMDISCUAFRMRv1 pid Meshtastic: Dest: SRC: MID: HopLim: HopStart: WantAck viaMQTT NextHop: RelayNode: Msg:[ viaaxudp encode: too much junk in data (-y for prefilter aprs)Other,Paraglider,Hangglider,Balloon,Glider,Powered Aircraft,Helicopter,UAVBarometric pressure normailized Support for Remote Configuration Other,Walking,Vehicle,Bike,Boot,Need a ride,Landed well,Need technical support,Need medical help,Distress call,Distress call automaticallyText,Line,Arrow,Area,Area Filled,Circle,Circle Filled,3D Line,3D Area,3D CylinderInfo,Warning,Keep out,Touch down,No airspace warn zoneframe deleted, wrong sync word no ax.25 (no address end mark) no ax.25 (address field size not multiples of 7)!!z!n!b!V!J!>!2! !  !!!9\jEj.jjjcisj@0  E??: ?ff?BB@FHQ@|IB4C`47`7=L>>CQ83303232332323 #|A@AAB=pC<4E.؂;E.;5<.eB%.*s%*lu%*d%*.*f%*Xosic.c0*aX2C_TRUNCI(kN(k(knO;O(X8(|(x #GHKL8MMdT_x(ut$/ 1BHC`C(C Dؿ4DtDxD$ExdExEFhGPGHH(HLHHHHxHI pF((NoN[oPj TTs Bll |ll#w  +@xx>@K   @0@ԑ