ELF>@@.@8 @)(@@@ DXDXh@@@pp888 XXXDDStd888 Ptd44QtdRtd((/lib64/ld-linux-x86-64.so.2GNUGNUVna3c:fEuGNUUUZ[(|3em(w93D `L%j`$RTW r4>7Qg@,{ZY/%,F3v^~I q~ , @`"@m~__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__asan_initputs__asan_stack_malloc_1__asan_option_detect_stack_use_after_returnsnprintf__asan_report_load8__asan_report_store8__asan_report_load4__asan_report_load1__asan_report_load2__asan_stack_malloc_2acceptfprintf__asan_handle_no_return__asan_report_store4fwrite__asan_stack_malloc_0strtoll__asan_stack_malloc_3__asan_report_store_n__asan_report_load_nfflushstrlenstrerrorstrcmpstrchr__asan_stack_malloc_5__asan_stack_free_5recvstrtok__asan_report_store1__asan_unregister_globals__asan_version_mismatch_check_v8__asan_register_globals__ubsan_handle_load_invalid_value__ubsan_handle_nonnull_arg__ubsan_handle_type_mismatch_v1__ubsan_handle_out_of_bounds__ubsan_handle_sub_overflow__ubsan_handle_add_overflow__ubsan_handle_pointer_overflowosmo_mslookup_client_add_mdnsosmo_mslookup_client_freeosmo_mdns_sock_sendosmo_mslookup_result_name_cosmo_mslookup_client_requestosmo_mslookup_result_code_namesosmo_mdns_sock_initosmo_mdns_result_encodeosmo_mslookup_client_newosmo_mslookup_query_init_from_domain_strosmo_mdns_sock_cleanuposmo_sock_unix_initosmo_fd_unregisterosmo_stderr_targetosmo_strlcpylog_set_print_extended_timestamposmo_sockaddr_str_is_nonzerolog_set_print_filename2get_value_stringosmo_panicosmo_select_main_ctxosmo_str_startswithlog_set_print_filename_pososmo_fd_is_registeredosmo_init_logging2log_finilog_set_print_levellog_set_print_categorylog_set_use_colorlog_set_print_category_hexosmo_sockaddr_str_from_strlog_target_destroyosmo_print_nosmo_fd_register_talloc_freetalloc_named_const_talloc_zerooptindstdoutoptarg__libc_start_mainstderr__cxa_finalizeclose__errno_locationgetopt_longlibasan.so.8libosmo-mslookup.so.1libosmocore.so.22libmnl.so.0libtalloc.so.2libubsan.so.1libc.so.6TALLOC_2.0.2LIBOSMOCORE_1.0GLIBC_2.34GLIBC_2.2.5/build/inst-osmo-hlr/lib "F q#S<cui n ``@`@ ` `   `@     `     `@ P      @      @ P    `    @ P   @PX` @P  ` `@  `@@P@P@P@P ` `@ P`  ` @ P` @P@P @P  `@ P` `  `@  `@@P@P `  @  P `   `   `! @! P!`! ! !`""@"P""""#@#P#####$$ @$$$$%%@%P% X%`%%%&& &`@&&&&& &`'@'P''' '`'((@(P( X(`((()@)P))))*@*P****++@+P+ ++++ ,, @,P, ,,, - -`@- P-`- - -`..@.P...../@/P////0@0P00001@1P1112@22233 @3P3 33 34@444 44 55 @5P5 556@666 67@777 78@888 89@999:@:::;@;;;<@<<< << == @===>@>>>> ?? @?P? ?? ?@@@@@@ A@AAAA B@BBBB C@CCCD@DDDD E0E`EpEEFF@FPFFFF G0G`GpGGHH@HPHHHH I0I`IIIJ`JpJJKK@KKKK@LLLL@MPMMMM NNNN O0O`OO P0P`PPPQ`QpQQRR@RPRRRR SSSS T0T`TTTU`UU V0V`VVVW`WpWWXX@XXXX@YPYYYY ZZZZ [0[`[[[\\@\\\\@]P]]]]]^ ^@^`^@^^^^@_ _@_`_@__p_h`h`p`h`x`x``x`a@aPa`apaaaaaaa abb b@b@Xb/`bbb@bbbQbccb c@c@Xcs`cccccccd d d@d@ Xd`dd ddd dde e e@e@ Xe`ee e ee eef f. f@f@ Xf?`ff fPff fafg gr g@g@ Xg`gg ggg ggh h h@h@ Xh`hh hhh hhii i@i@Xi `iiiiii,ijj= j@jXjN`jj@j_jjjpjkk k@kXk`kk@kkkkkll l@lXl`ll@lllllmm  m@mXm`mm@m+mmm<mnnM n@nXn^`nn@nonnnnoo o@oXo`oo@ooooopp p@pXp`pp@pppppqq q@qXq*`qq@q;qqqLqrr] r@rXrn`rr@rrrrrss s@sXs`ss@ssssstt t@tXt`tt@tttttuu) u@uXu:`uuuJuu@u[uvvl v@vXv}`vvvvv@vvww w@wXw`wwwww@wwxx x@xXx`xxxxx@x'xyy8 y@yXyI`yyyZyy@ykyzz| z@zXz`zzzzz@zz{ { {@{X{`{{`{{{{{|| |@| X|`||@ |#|| |4|} }E }@}!X}V`}}@!}g}}!}x}~!~ ~@~"X~`~~@"~~~"~~" @#X`@### @$X"`@$3$؀D$U @%Xf`@%w%؁% @&X`@&&؂& @'X`@''؃'! @(X2`C@(؄S d @`Xt`((؅) @@)X`))؆* @@*X`* *؇+. @X?`@+O+؈`q @+X`,@,؉  @,X`,-؊@- @-X`-`؋).8 @@.XI`.Z.،k/| @@/X`//؍0 @@0X`00؎ @1X`@1$؏51D @1XU`2f@2ؐw2 @2X`3@3ؑ3 @3X`4@4ؒ4 @4X!`52@5ؓC5T @5Xe`6v@6ؔ6 @6X`7@7ؕ7 @7X`8@8ؖ8  @8X1`9B@9ؗS9d @9Xu`:@:ؘ: @:X`;@;ؙ; @;X`<@<ؚ<0 @<XA`=R@=؛c=t @=X`>@>؜> @>X`?@?؝? @?X `@@@؞/@@ @@XQ`Ab@A؟sA @AX`B@BؠB @BX` Cء@C  @CX`C,Dآ=@DN @DX_`Dp Eأ`E @EX`F@FؤF @FX` G`Gإ G @HX+`@H<HئMH^ @ IXo``IIاJ @`JX`JKب@K @KX`K@LةL* @LX;`@MLMت]Mn @ NX`NNث O @`OX`O Pج`P @PX`Q`Qح(Q8 @RXH`@RXRخhRx @ SX`SSد T @`TX`TUذ`U @UX` V`Vر(V8 @WXH``WXWزhXx @@XX`XXس@Y @YX`Y ZشZ @ZX` [`[ص([8 @\XH`@\X\ضh\x @@]X`]]ط @^X`p@aPaظ`a@ 0pa@_X`pax `aعa` 0a@@X`  غ @X `@'ػ/5 @X=`DؼK@S @XY`a@ؽhp @`Xw``~ؾ @ X`ؿ @X` @@X` @@X`` @ X` @` @`X`&-4 @X;`B HO @XV`@^e@l @Xs`y @X`@@ @X`` @`X`    @X``` @X` @X``%,3 @@X:`A@HO @XV`] e m @`Xs``z @X`` 3WJQRX@U`V[Z\Y (08@ H P X ` hpx !"#$% &('0(8)@*H+P,X-`.h/p0x123456789:;<=>?@ABCDE F(G0H8I@KHLPMXN`OhPpSxTHHHtH5%@%h%h%h%h%h%h%h%hp%h`%h P%zh @%rh 0%jh %bh %Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%h %h%h%h%h %h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%zh*@%rh+0%jh, %bh-%Zh.%Rh/%Jh0%Bh1%:h2%2h3%*h4%"h5%h6%h7p% h8`%h9P%h:@%h;0%h< %h=%h>%h?%h@%hA%hB%hC%hD%hE%hF%hGp%hH`%hIP%zhJ@%rhK0%jhL %bhM%ZhN%RhO%zfH=vxD$}D$LH=xD$YD$>H=vH $H $YAH=v&|YH=wYH=uDL$ $ $DL$ [XH=vH $H $XH=uDL$ $ $DL$ WAH=uD $D $dWH=qH$RH$n@H=>rL$eL$n@H=qL$HL$nH=HrH $H $kH=ltgH=xrkH=oHL$(HL$(lH=nHL$(HL$(/mAH= olAH=8pkAH=oSlH=oHL$(HHL$(kH=s_ gH=r)gH=Or:hH=oH$H$nH=qH $H $hH=rH $H $"fH|$H=nmHT$qH=XlL$ L$ rH=lL$ L$ rH=l^r@H=.kyusH=]kHL$3HL$;t@H=kIsH=jdsH=i$!$zH=l/yH=mi|H=iH$H$3z@H=h饀@H=Jh鉉H=YdtŒH=(gcUH=weR(H=FhA1@HH=e FAH=Pd;(@H={fHT$!HT$DH=`dOAH=f郋AH=6eAH=d߇H=fHL$HL$鵈H=eHT$kHT$H=aHD$LD$KLD$HD$骐H=b]H=abH= bHD$LD$.LD$HD$H=[ H=\ H=Z( H=l\E H=\C H=]HL$wHL$H=f_HL$\HL$P@H=_HL$mHL$@H=]SH=W`+AH=[-B H=Y H==ZR H=l_H=X H=DZUH=X @H=~_YH=]HL$cHL$| @H=^HL$tHL$ H=[[ H=[Gz H=\HL$HL$H=mX @H=\HL$HL$WH=[&H=tf.DAWAVAUATUHSHLd$0|$Ld$3 H9M11ID$IHH۶I$AHM$ID$HALJALJALJALJ Z1HH^r H=k H=g]y H=I H=+ H= 1Vw H=85 H=1I\$0L5HHƀAEH|$IHH 1oHeD0w IcL-r@g@uAH=HH H rH(H=sIMHIHD$HIAƁ H1LL$(HL$ RLL$(HL$ DqAt< A}HƁHHƀH=HH HmHppHTpHD$HA H50H=mpdH=apu j-p@v @HD$H H=L-HHq H-HLH5߳H1]K H=$1HƃH=KovkH=nH5 L9d$SfAHĸ[]A\A]A^A_H=HH* HH}oN)oB [IMHIHD$HIAƁ,H1LL$(HL$ PLL$(HL$ nAt<A}-n@@ufHD$HH=JL-#HHH-(H LH55H1HL$VHL$HƁcn#IMHIHD$HIAƁLL$(HHL$ uOLL$(HL$ fmAt<A}-m@@IHD$HgH=-L-HH@H- HLH5XH1HL$9HL$PmH=HHHHmHƃ mlAA<E`l=lF H5lHH=kH=krHkHH{>lLQlH5kRHUH="lHt xfUH=HHH8|-Dl$A)HcHMcH\HH9LHH-`kیL-j1]^u=jtL9-ju1pH=HHH8|D$9!D-jAA%kWE<rEuH=jj;uDH=iHH:HNHHٺ5H=LH=-HHH8|Lc5JLLlHx"I9r"l$)TLN2L9sLHH=ʃ=ijwH=ޡbfiH9HHH=HHH=!uH=HH5HHHٺ,H=VH=HHGHHHٺH= H5hH=E1-h-h@@$HD$HH=L-HHH-HiLH5H1HL$HL$H=h'{BH=6hH=qH-gHHHOHNHH5H1HLEH=kfo3I$6EAID$xH=:H=.H="H={H=o H=cH=wH=kHct$LH= H|$H=H|$H|${vH=jeH=YTOHHH2-H|$#Hct$HH= _;ff.H'rH=fH}f.1I^HHPTE11H=Wf.@H=HH9tH6Ht H=H5H)HH?HHHtHHtfD=u+UH=Ht H=)d]w1ff.fHH=H5Γ1GH=`HAWAVIAUATUHSH#Ll$@Ll$zI}8IEAHIEHI]`IELMe HHD$ǀǀHHNMHCIA)IE(LsIHD$8IAPME0HsMIA+1MHLHDHQL\$LT$0LD$(LsHt$ L\$GHt$ LD$(HcMALT$0YL{H9AHSIHL9LcHLHHCHCHHiHKH H MLHH{HCHHLCHL)LH)HLEH@HHH8|uMLD$H=*IQALD$HbLDH{1LLLD$nL'LcLLD$HJHCM9DAHsH IML{ЅH{HHRL[AMH{H HH-HSHׅG HCHHHKH7fMHCHH]HkHL)H)H˒H1AADž6 HH9 LHxH{HsHH4HSH,HH9LHYHkH{HHHCAMAL{HCM$H|M9r|LLcLHH{HHLHpL{MBH{HHSHkLM9sLLH=^BIm@I98HLHL$ H=uBHD$HD$HL$ @LHH{HCHHHKHHH9LHHSHHLH H{HSHHL{HH)LH)HLEH@H}pHHH8Ep<ZH HJMHEIAH{LL1LD$[A…LcLLD$H\HKM9wAHsHHL8HCE H{HHdL[pDLHH{HKHHqHSHH/H9/LHHCH'H H{HH]L{HH)I)H@LElHZLHLƒ8|bMlHH1LHcI9XLHH{HsHHHCL<HL9LH@L{H{HHHKH@HHH8|(}zLHLH{HHCHHH HSHHHkHH)H)H\H1ADž'HcH9KLHKHsHtHH HkEGH{HHHK&@LHH{HsHHHCL<HL9LHL{ofH{HHHCL<H_L9_LLHH{L{HHL[HLHHKHm H{HHL{HfH{HHBHSL<HL9LLHH{L{HHL[HQLHmHC4LHlH{HsHHHCH,HoH9oLH\HkL9l$HD$ǀǀHĨ[]A\A]A^A_tH{HHHKHaLHL{8f.LHHsHtIIL{ЅfDLHH{HsHHHCH,H7H97LHFHkfI9LH=-6H9IHH=M8HT$ HD$HD$HT$ L-H9HHHD$ H=7HL$HL$HD$ @I9HLL\$ H= 7HL$sHL$L\$ v@I9)HLL\$ H=7HD$;HD$L\$ LzDH9HH=/}I9 LH==5HL$HL$fHfE H{HH^L[fDH{HH[L[yHCHcH{HHGHkHH9HH=.HL$ HL$H@H}TL)HLHCHgHSHH H{HHHKHH)H)IHg@]H}6HHH8|\DE6H@HHM1LH݆`HcI9 LHH{HsHH1HCL<H3I93LH0L{H{HHDLH H{HsHH HCH,Hx#H9r#LHLfH9sHH=Q5f.LHHsHtHHQHkEGDH LH{H HCH"H{HSHH H)HCI1HVL&HcI9LH H{HsHH HCL<H9I99LH{ L{H{HHZ HKH> @4 H}8LUH LHCH HSHgHgH{HH HKHH)H)IH @ H}jHHH8|/ DEjH; @1 HM9LLL!HLH=&D$ HL$D$ HL$'LH=(L$(HD$ L\$L$(HD$ LzL\$*LLrLLbLL}LELmLe`LXL KL>LLL&LLLHH=)D$(HL$ HT$D$(HL$ HT$LHH=HL$HL$LLLHzuHH=k"\HH=$KHH=>&HL$0DT$(L\$ HD$HL$0DT$(L\$ HD$LLLLLLLLLHH=!!HD$ DD$HD$ DD$H{vL>LfaL)LQLGBHH= HD$HD$ LHH=#HD$nHD$LHLLH=!D$ HL$D$ HL$ULHH=HD$HD$HH=|&HD$bHD$L`LXLH=HD$4HD$cL2L% HH=!DD$ HD$wDD$ HD$LLLH= D$ HL$D$ HL$LLsLLL|LtoLgAWAVIAUATUHSHLl$@Ll$I}8IEAHIEHI]`IELMe HHD$ǀǀHH(MHCIA~IE(LsIHD$8IATME0HsMIA/1MHLHDHavL\$LT$0LD$(LsHt$ L\$/Ht$ LD$(HcMALT$0L{H9AHSIHL9LcHLHHCHCHHHKHHk MLHH{HCHHyLCHL)LH)HLEH#@HHH8|uMLD$H=I!ALD$HH{HPuL1LD$AA…HcLLD$HHCI9 AHsH" II'L{EH{HHHKAMqH{H HH<HSHׅ HCHHrHKH7fMHCHHHCHL)H)I1HsLv LLcHHkM9 LHHsHHLHKЅH{HHa @AMAL{HCM$HM9LLcLHH{HHLH L{MnH{HHHCLDM9|LLH=%eI9HHLHL$ H=HD$HD$HL$ @LHRH{HCHH>HKHHGH9GLHHSHHLHH{HSHHL{HH)LH)HLEH@H}pHHH8Ep<^H pHjpMHEIAH{HqL1LT$7A|LcLLT$HjHKM9AHsHHHLOHCE H{HHL[lLHH{HKHHHSHHH9LHHCHH> H{HHyL{HH)I)H@LElHLHLƒ8|MlHHFp1L輻$HcI9(LHGH{HsHH3HCL<HWL9WLHEL{H{HHHKH@HHH8|}zLHLHKHHkHH H{HH H)HkHoHH1uADžHH9LH1H{HsHH.HSH,HH9LHHkH{HH HCL9l$ HD$ǀǀHĨ[]A\A]A^A_LH H{HsHH HCH,Hx+H9r+LH HkhfH9sHH=q 蜹f.tH{HHLCLHHkH_ H/LH HsHtHH HkEDLH H{HsHH HCL<H?L9?LH L{fH{HH HCL<HL9LLH H{L{HH{ L[HiLH HKHH{HH$L{HIfH{HH HSL<HL9LLH H{L{HH HKHLH HCtH{HHHKHLH L{xf.LHc HsHtIIr L{ЅfDH9"HH=HD$蓶HD$fI9LH== hH9HH=] HT$ HD$>HD$HT$ H9IHHHD$ H= HL$HL$HD$ @I9IHLHL$ H=% HD$˵HD$HL$ @I9QHLL\$ H= HL$蓵HL$L\$ &@I9LH=} HL$cHL$fHfEH{HH HKfDEH{HH L[fDH @ H}4`LH LLSHl HCM[HH{HHK L)HCIH @ H}6HHH8| DE6Hp @f 1HMHIhLL~HcI9LHN H{HsHH HCL<HI9LH L{H{HH HKHh@^H}8谴LMH* LHKHL@LHB H{HkHH! HCHLHx"H9r"LHHKvH9sHHHL$H= 脲HL$DH{HHHCL|HxBI9rBLLHCH{L{HH"LCL9sLHLD$H=I LD$DHLLSHHCMHH{HHhL)HCIH7@-H}jHHH8|DEjHM@C1HMfDHCHSIHCH3IR1E1b11LHH{HsHHHCL<HI9LHL{fLHH{HkHHxHCHLHxBH9rBLHpLL9qLH= ]H9sHHHL$H=iԮHL$DH{HHWHCL|HxBI9rBLLHH{L{HHPuDL9sLHLD$H=DLD$DLHjHsHtIIuL{ЅfDL9_LH=5HL$ۭHL$AE1AE1hHH{HH,諯v`HT$Ht$ҬHT$Ht$HLEKIE6EHD$HHǀIEx LHL+L#螮LHH=LD$rLD$HPLLۮLӮήɮHH=*H L襮LHHD$ H=LD$yHD$ LD$LҫHH=HD$ήHD$LLHH=譮L0+&LLH|$8 HLH|$8L躬L責ݭLխL蝬Lŭ軭趭L~L覭衭L虭LaLYL聭|LDLlgL_L'LOHH=HD$+HD$ L)$LHH=}+L˫HH=q\L߬H׬L蟫ʬHH=@D$(HL$ HT$蝪D$(HL$ HT$L蒬L芬腬LMLEL=HeLH=D$ HL$=D$ HL$hLH=DT$(HL$ HD$DT$(HL$ HD$HH=HL$0DD$(L\$ HD$کHL$0DD$(L\$ HD$u̫ǫL菪身L貫L誫LH=`D$ HL$肩D$ HL$eHH=:LT$LT$a\GHH=LT$賫LT$4L,L$LLLHH=DD$ LT$YDD$ LT$L袩L蚩LªL芩赪谪HH=&LT$ DD$LT$ DD$rL耪{LCnidL\HH=D$(LD$ HL$/D$(LD$ HL$'"LHH=KD$(LD$ HL$D$(LD$ HL$LةөL˩ff.AWAVAUATUSHHVHl$IH?H} IHEAHEHILHEHADŽ$HADŽ$ADŽ$ADŽ$t<ADž`nHE<L{HBLHt<m{I`Ip聩AŅnH=$H\@NHH~L{ H3LHt< Dk HLk$HLHL8|C$H#Lk(HLHHEHC(HLk0HLHPH[0H/&H{AHF=L-#MAIEIHHI]HHHfL+H>5LkHLH[H9#HC?#H(#t]A\A]f.H[]A\A]L=LHH=軆:HH=<'譈ff.fUH1SHHHH=H豆Åx 1H[]-S@vu>H=vHHH-vHH5BH1܄=&H[]-@6t gHHtsuoHHH8|ua}XH=vHHHuGH-uHHH5AH1*{0HH=&葇HwfAWAVAUATUSHHsH-$HHHL#HL5.L9u @MHLkHyLMTAJIUI(L{ LHt<{ VMALHt<C HHg@]HHAL+HUHH{HHHCMAIUIHH|IEHSKHH/L(H@HH@HC H5@H7MALLHu~M,$MtdAu^LM9HHGuH[]A\A]A^A_@H=蝅H[]A\A]A^A_LH=ńLKLH=A謄SHH=m蘄HH=脄HׂHH=H$dH$H賂LH=HD$H$軁HD$H$BLH=H$H$蜃HH=}H考HH=6HH=b̓hLLH=豃L蔀LH=LH=聃LHH=pHH=+VNHH=WBHłHH={&AWAVAUATUHSHH8D5IJL%\HBI4H|LKm^HkHLH=4jLH=` mL^kLH=l|LBkLHH=Pj2HH=јlLH=lLH=)D$lD$L?hLLH=BD$iD$OLH=fD$MlD$LH=5lkH3k1H=HT$lHT$LH= HT$riHT$Hhgfkak\kWkRkfAWAVAUATUSHHYHl$ Hl$HLIHEALHEIHHEAdžAdžAdžAdžAdžHLc HLHLc HwnH{HHt<{M1ɺLphÅX=HH=sHPI4HLHpI<HHH8 LH5(AƄfIH@H!jMHtL@HMAID$@I%HHtA|$@Xou_MAH=WHHHWH1oLHH5E(H1LD$eLD$D=RIJHHBH4HHJ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. lastnot-last%s ERROR %s %u %s %u truefalse{"query": "%s", "result": "ERROR", "result": "%s", "last": %s, "age": %u, "v4": ["%s", "%u"], "v6": ["%s", "%u"]}Failed to accept a new connection struct socket_clientosmo-mslookup-client.ccAssert failed %s %s:%d Failed to register new connection fd osmo-mslookup-client.c:527query result last age v4_ip v4_port v6_ip v6_port%s: write() returned %d instead of %zu 2342NULL][--send needs a query string like foo.123456.imsi Invalid query string '%s', need a query string like foo.123456.imsi --send needs an age invalid age invalid port: %s invalid IP addr: %s Sending mDNS to %s%s%s:%u: %s unable to open mDNS socket unable to encode mDNS response unable to send mDNS message osmo-mslookup-client.c:330%s Could not create unix socket: %s: %s Could not register listen fd: %d osmo-mslookup-client.c:427osmo-mslookup-client.c:630ERROR: timeouts part too long in query string ERROR: invalid min-delay number: %s ERROR: invalid timeout number: %s ERROR: query string is too long: '%s' struct queryqERROR: cannot parse query string: '%s' osmo-mslookup-client.c:699ERROR: cannot send query: '%s' osmo-mslookup-client.c:707 ERROR: failed to read line from socket ERROR: Only one query per client connect is allowed; received '%s' and '%s' on the same connection query: %s osmo-mslookup-clientf:Hdm:M:D:t:T:s:SqhVInvalid mDNS IP address: %s Invalid cmdline_opts.mdns_addr.port: %s Invalid cmdline_opts.min_delay: %s Invalid cmdline_opts.timeout: %s Standalone mslookup client for Distributed GSM Receiving mslookup results means listening for responses on a socket. Often, integration (e.g. FreeSwitch dialplan.py) makes it hard to select() on a socket to read responses, because that interferes with the main program (e.g. FreeSwitch's dialplan.py seems to be integrated with an own select() main loop that interferes with osmo_select_main(), or an smpp.py uses smpplib.client.listen() as main loop, etc.). This program provides a trivial solution, by outsourcing the mslookup main loop to a separate process. Communication is done via cmdline arg and stdout pipe or a (blocking) unix domain socket, results are returned in CSV or JSON format. This can be done one-shot, i.e. exit as soon as the response has been determined, or in daemon form, i.e. continuously listen for requests and return responses. About running a local daemon: it is unintuitive to connect to a socket to solve a problem of reading from a socket -- it seems like just more of the same problem. The reasons why the daemon is in fact useful are: - The osmo-mslookup-client daemon will return only those results matching requests issued on that socket connection. - A program can simply blockingly recv() from the osmo-mslookup-client socket instead of needing to run osmo_select_main() so that libosmo-mslookup is able to asynchronously receive responses from remote servers. - Only one long-lived multicast socket needs to be opened instead of a new socket for each request. Output is in CSV or json, see --format. The default is tab-separated CSV with these columns: query result last age v4_ip v4_port v6_ip v6_port One-shot operation example: $ osmo-mslookup-client 1000-@sip.voice.12345.msisdn -f json {"query": "sip.voice.12345.msisdn", "result": "result", "last": true, "age": 5, "v4": ["1.2.3.7", "23"]} $ Daemon operation example: $ osmo-mslookup-client -s /tmp/mslookup -d (and a client program then connects to /tmp/mslookup, find an implementation example below) Integrating with calling programs can be done by: - call osmo-mslookup-client with the query string as argument. It will open a multicast DNS socket, send out a query and wait for the matching response. It will print the result on stdout and exit. This method launches a new process for every mslookup query, and creates a short-lived multicast listener for each invocation. This is fine for low activity, but does not scale well. - invoke osmo-mslookup-client --socket /tmp/mslookup -d. Individual queries can be sent by connecting to that unix domain socket, blockingly reading the response when it arrives and disconnecting. This way only one process keeps one multicast listener open. Callers can connect to this socket without spawning processes. This is recommended for scale. Python example clients for {CSV,JSON}x{cmdline,socket} can be found here: http://git.osmocom.org/osmo-hlr/tree/contrib/dgsm/osmo-mslookup-pipe.py http://git.osmocom.org/osmo-hlr/tree/contrib/dgsm/osmo-mslookup-socket.py Options: [[delay-][timeout]@]service.number.id A service query string with optional individual timeout. The same format is also used on a daemon socket, if any. The timeout consists of the min-delay and the timeout numbers, corresponding to the --min-delay and --timeout options, in milliseconds. These options apply if a query string lacks own numbers. Examples: gsup.hlr.1234567.imsi Use cmdline timeout settings 5000@gsup.hlr.1234567.imsi Return N results for 5 seconds 1000-5000@sip.voice.123.msisdn Same, but silent for first second 10000-@smpp.sms.567.msisdn Return 1 result after 10 seconds --format -f csv (default) Format result lines in CSV format. --no-csv-headers -H If the format is 'csv', by default, the first output line prints the CSV headers used for CSV output format. This option disables these CSV headers. --format -f json Format result lines in json instead of semicolon separated, like: {"query": "sip.voice.12345.msisdn", "result": "ok", "v4": ["10.9.8.7", "5060"]} --daemon -d Keep running after a request has been serviced --mdns-ip -m 239.192.23.42 -m ff08::23:42 --mdns-port -M 4266 Set multicast IP address / port to send mDNS requests and listen for mDNS reponses --mdns-domain-suffix -D mdns.osmocom.org Append this suffix to each mDNS query's domain to avoid colliding with the top-level domains administrated by IANA. --min-delay -t 1000 (in milliseconds) Set minimum delay to wait before returning any results. When this timeout has elapsed, the best current result is returned, if any is available. Responses arriving after the min-delay has elapsed which have a younger age than previous results are returned immediately. Note: When a response with age of zero comes in, the result is returned immediately and the request is discarded: non-daemon mode exits, daemon mode ignores later results. --timeout -T 1000 (in milliseconds) Set timeout after which to stop listening for responses. If this is smaller than -t, the value from -t will be used for -T as well. Note: When a response with age of zero comes in, the result is returned immediately and the request is discarded: non-daemon mode exits, daemon mode ignores later results. --socket -s /path/to/unix-domain-socket Listen to requests from and write responses to a UNIX domain socket. --send -S Do not query, but send an mslookup result. This is useful only for testing. Examples: --send foo.123.msisdn 300 23.42.17.11 1234 --send foo.123.msisdn 300 2323:4242:1717:1111::42 1234 --send foo.123.msisdn 300 23.42.17.11 1234 2323:4242:1717:1111::42 1234 --quiet -q Do not print errors to stderr, do not log to stderr. --help -h This helpError in command line options. Exiting. --send option cannot have any listening related args.In daemon mode, --timeout must not be zero. jsoncsvInvalid format: %s Failed to start mDNS client osmo-mslookup-client.c:8924///4////{3/////o3f2/\2/////////////P2/"2/1////0///0/00/build/inst-osmo-hlr/include/osmocom/core/linuxlist.hformatno-csv-headersdaemonmdns-ipmdns-portmdns-domain-suffixtimeoutmin-delaysocketsendquiethelpversionsocket_acceptsocket_client_respond_resultdo_sendmdns.osmocom.org1 32 32 6 sb:3511 32 32 6 sb:3801 32 8 10 endptr:2271 32 1024 9 rxbuf:443*.Lubsan_data544*.Lubsan_data543*.Lubsan_data541*.Lubsan_data540*.Lubsan_data539*.Lubsan_data538*.Lubsan_data537*.Lubsan_data536*.Lubsan_data535*.Lubsan_data534*.Lubsan_data533*.Lubsan_data532*.Lubsan_data531*.Lubsan_data530*.Lubsan_data529*.Lubsan_data528*.Lubsan_data527*.Lubsan_data526*.Lubsan_data525*.Lubsan_data524*.Lubsan_data523*.Lubsan_data522*.Lubsan_data521*.Lubsan_data520*.Lubsan_data519*.Lubsan_data518*.Lubsan_data517*.Lubsan_data516*.Lubsan_data515*.Lubsan_data514*.Lubsan_data513*.Lubsan_type19*.Lubsan_data512*.Lubsan_data511*.Lubsan_data510*.Lubsan_data509*.Lubsan_data507*.Lubsan_data506*.Lubsan_data505*.Lubsan_data504*.Lubsan_data503*.Lubsan_data501*.Lubsan_data500*.Lubsan_data499*.Lubsan_data498*.Lubsan_data497*.Lubsan_data496*.Lubsan_data495*.Lubsan_data494*.Lubsan_data493*.Lubsan_data492*.Lubsan_data491*.Lubsan_data490*.Lubsan_data489*.Lubsan_data488*.Lubsan_data487*.Lubsan_data486*.Lubsan_data485*.Lubsan_data484*.Lubsan_data483*.Lubsan_data482*.Lubsan_data481*.Lubsan_data480*.Lubsan_data479*.Lubsan_data478*.Lubsan_data477*.Lubsan_data476*.Lubsan_data475*.Lubsan_data474*.Lubsan_data473*.Lubsan_data472*.Lubsan_data471*.Lubsan_data470*.Lubsan_data469*.Lubsan_data468*.Lubsan_data467*.Lubsan_data466*.Lubsan_data465*.Lubsan_type18*.Lubsan_data464*.Lubsan_data463*.Lubsan_data462*.Lubsan_data461*.Lubsan_data460*.Lubsan_data459*.Lubsan_data458*.Lubsan_data457*.Lubsan_data456*.Lubsan_data455*.Lubsan_data454*.Lubsan_data453*.Lubsan_data452*.Lubsan_data451*.Lubsan_data450*.Lubsan_data449*.Lubsan_data448*.Lubsan_data447*.Lubsan_data446*.Lubsan_data445*.Lubsan_data444*.Lubsan_data443*.Lubsan_type17*.Lubsan_data442*.Lubsan_type16*.Lubsan_type15*.Lubsan_data441*.Lubsan_data440*.Lubsan_data439*.Lubsan_data438*.Lubsan_data437*.Lubsan_data436*.Lubsan_data435*.Lubsan_data434*.Lubsan_data433*.Lubsan_data432*.Lubsan_data431*.Lubsan_data430*.Lubsan_data429*.Lubsan_data428*.Lubsan_data427*.Lubsan_data426*.Lubsan_data425*.Lubsan_data421*.Lubsan_data418*.Lubsan_data417*.Lubsan_data416*.Lubsan_data415*.Lubsan_data414*.Lubsan_data413*.Lubsan_data412*.Lubsan_data411*.Lubsan_data410*.Lubsan_data409*.Lubsan_data408*.Lubsan_data407*.Lubsan_data406*.Lubsan_data405*.Lubsan_data404*.Lubsan_data403*.Lubsan_type14*.Lubsan_data402*.Lubsan_type13*.Lubsan_type12*.Lubsan_data401*.Lubsan_data400*.Lubsan_data399*.Lubsan_data398*.Lubsan_data397*.Lubsan_data396*.Lubsan_data395*.Lubsan_data394*.Lubsan_data393*.Lubsan_data392*.Lubsan_data391*.Lubsan_type11*.Lubsan_data390*.Lubsan_data389*.Lubsan_type10*.Lubsan_data388*.Lubsan_data387*.Lubsan_data386*.Lubsan_type9*.Lubsan_data385*.Lubsan_data383*.Lubsan_data382*.Lubsan_data381*.Lubsan_data380*.Lubsan_data379*.Lubsan_type8*.Lubsan_data377*.Lubsan_data376*.Lubsan_data375*.Lubsan_data374*.Lubsan_data373*.Lubsan_data372*.Lubsan_data371*.Lubsan_data370*.Lubsan_data369*.Lubsan_data368*.Lubsan_data367*.Lubsan_data366*.Lubsan_type7*.Lubsan_data365*.Lubsan_data364*.Lubsan_type6*.Lubsan_data361*.Lubsan_data360*.Lubsan_data359*.Lubsan_data349*.Lubsan_data348*.Lubsan_data347*.Lubsan_data346*.Lubsan_data345*.Lubsan_data337*.Lubsan_data336*.Lubsan_data335*.Lubsan_data334*.Lubsan_data333*.Lubsan_data332*.Lubsan_data324*.Lubsan_data323*.Lubsan_data322*.Lubsan_data321*.Lubsan_data320*.Lubsan_data319*.Lubsan_data318*.Lubsan_data308*.Lubsan_data307*.Lubsan_data306*.Lubsan_data305*.Lubsan_data298*.Lubsan_data297*.Lubsan_data296*.Lubsan_data295*.Lubsan_data288*.Lubsan_data287*.Lubsan_data286*.Lubsan_data278*.Lubsan_data277*.Lubsan_data276*.Lubsan_data270*.Lubsan_data269*.Lubsan_data268*.Lubsan_data260*.Lubsan_data259*.Lubsan_data258*.Lubsan_data250*.Lubsan_data249*.Lubsan_data248*.Lubsan_data247*.Lubsan_data246*.Lubsan_data238*.Lubsan_data237*.Lubsan_data236*.Lubsan_data235*.Lubsan_data227*.Lubsan_data226*.Lubsan_data225*.Lubsan_data224*.Lubsan_data223*.Lubsan_data215*.Lubsan_data214*.Lubsan_data213*.Lubsan_data212*.Lubsan_data211*.Lubsan_data210*.Lubsan_data209*.Lubsan_data199*.Lubsan_data198*.Lubsan_data197*.Lubsan_data196*.Lubsan_data189*.Lubsan_data188*.Lubsan_data187*.Lubsan_data186*.Lubsan_type5*.Lubsan_data179*.Lubsan_data178*.Lubsan_data177*.Lubsan_data169*.Lubsan_data168*.Lubsan_data167*.Lubsan_data161*.Lubsan_data160*.Lubsan_data158*.Lubsan_data157*.Lubsan_data155*.Lubsan_data154*.Lubsan_data153*.Lubsan_data152*.Lubsan_data150*.Lubsan_data149*.Lubsan_data148*.Lubsan_data147*.Lubsan_data145*.Lubsan_data144*.Lubsan_data143*.Lubsan_data142*.Lubsan_data140*.Lubsan_data138*.Lubsan_data137*.Lubsan_data135*.Lubsan_data134*.Lubsan_data132*.Lubsan_data131*.Lubsan_data129*.Lubsan_data128*.Lubsan_data126*.Lubsan_data123*.Lubsan_data122*.Lubsan_data120*.Lubsan_data118*.Lubsan_data115*.Lubsan_data114*.Lubsan_data112*.Lubsan_data111*.Lubsan_data109*.Lubsan_data108*.Lubsan_data107*.Lubsan_data105*.Lubsan_data104*.Lubsan_data102*.Lubsan_data101*.Lubsan_data99*.Lubsan_data97*.Lubsan_data96*.Lubsan_data95*.Lubsan_data94*.Lubsan_data93*.Lubsan_data91*.Lubsan_data89*.Lubsan_data88*.Lubsan_data86*.Lubsan_data85*.Lubsan_data83*.Lubsan_data82*.Lubsan_data81*.Lubsan_data79*.Lubsan_data78*.Lubsan_data76*.Lubsan_data75*.Lubsan_data73*.Lubsan_data72*.Lubsan_data70*.Lubsan_data67*.Lubsan_data66*.Lubsan_data64*.Lubsan_data63*.Lubsan_data62*.Lubsan_data60*.Lubsan_data59*.Lubsan_data57*.Lubsan_data55*.Lubsan_data54*.Lubsan_data53*.Lubsan_data51*.Lubsan_data45*.Lubsan_data44*.Lubsan_data43*.Lubsan_data42*.Lubsan_data40*.Lubsan_data39*.Lubsan_data37*.Lubsan_data31*.Lubsan_data20*.Lubsan_type3long_options__func__formattersglobalsg_bufcmdline_opts*.LC18*.LC58*.LC114*.LC15*.LC30*.LC107*.LC9*.LC117*.LC41*.LC84*.LC108*.LC4*.LC109*.LC20*.LC115*.LC76*.LC91*.LC74*.LC62*.LC89*.LC64*.LC10*.LC78*.LC96*.LC97*.LC51*.LC75*.LC23*.LC8*.LC90*.LC6*.LC113*.LC42*.LC94*.LC99*.LC66*.LC48*.LC45*.LC111*.LC61*.LC83*.LC54*.LC43*.LC55*.LC24*.LC5*.LC52*.LC92*.LC101*.LC95*.LC40*.LC98*.LC7*.LC47*.LC72*.LC105*.LC116*.LC12*.LC104*.LC22*.LC70*.LC81*.LC29*.LC2*.LC46*.LC73*.LC93*.LC32*.LC112*.LC49*.LC71*.LC50*.LC19*.LC82*.LC106*.LC28*.LC16*.LC36*.LC35*.LC88*.LC87*.LC17*.LC77*.LC21*.LC69*.LC110*.LC103*.LC0*.LC53*.LC1*.LC44*.LC34*.LC11*.LC100*.LC31*.LC332 32 4 7 len:506 48 110 11 un_addr:5055 48 4 6 rc:260 64 32 11 ip_strs:253 128 52 8 addr:285 224 96 5 q:257 352 116 5 r:2584 48 4 6 rc:647 64 16 5 h:639 96 16 12 timeouts:648 128 16 13 min_delay:6644 48 4 16 option_index:739 64 4 7 _rc:790 80 4 7 _rc:796 96 4 7 _rc:799;4%@P`<^(!g + _ H  40 0H`PP`=\`Zb<eyPz@{}p`@T`И@h`|zRx "zRx $FJ w?;*3$"D\p)D`L)!BBE B(A0D8G& 8A0A(B BBBI $L\;BBE B(A0D8G 8A0A(B BBBD HLhW3BBB B(A0A8J( 8D0A(B BBBG }L\_'BEB E(A0A8D 8A0A(B BBBA L( *'' *[2]' 'result_format''const char *''char *[2][2]' 'int''char *''char''int''struct llist_head''struct socket_client''struct osmo_fd''const struct osmo_mslookup_result''_Bool'l'`?`l?#` ` ` w ` v v `  `    `  `  Q Q ` P ` O O `  D; dddeedd ` ` w ` v v `  `ut sdddeeddX QQT  ` ` w ` v v `  ` RRQQN N N `:: ` ` w ` v v `  ` ::'   ''' `&&&0 `### `!(!(!% ` `     /     Q Q ` P ` O O `                   }}}tttqqqoooo o n mmmkkkk k j h ggggg ffff eeee ccc```qcc[2VVMIIHC==<;66t X TR00''BB==77''##    2  ffHd@mMDT@tsSq@hVph`h`x`x`239.192.23.42* V@ @@@/@@@Q @b@@s @ @  @@ @  @ @  @@  @  @  @  @.@ @?  @P  @a @r@  @  @  @ @@  @ @ @ @@ @ @ @, @=@N@ @_@p @ @@@ @ @ @@@ @ @ @@ @+ @<@M @^@ @o@@ @@ @ @@ @@ @ @ @ @*@ @;@L @]@n@ @ @ @ @@ @ @ @@@ @ @ @)@: @J@ @[ @l @} @@ @ @@ @@@ @ @ @@@' @8 @I@Z@ @k @| @@@ @ @ @`@@ @  @@  @#  @4  @E!@V@! @g!@x! @" @@" @"@" @#@@# @# @# @$ @"@$@3$ @D$@U% @f@% @w%@% @& @@&@& @& @'@@' @' @'@!( @2@C@( @S @d` @t(@( @)@@) @)@) @*@@* @*@ * @+ @. @?@+ @O+ @` @q+ @, @@, @  @, @,@- @@- @-@- @`@). @8@. @I. @Z. @k/@|@/ @/@/ @0@@0 @0@0 @@1@@1 @$@51@D1@U2@f@2@w2@2@3 @@3 @3 @3@4@@4@4 @4 @!5 @2@5 @C5@T5@e6@v@6@6 @6@7@@7@7 @7@8@@8@8 @ 8@19@B@9@S9@d9@u:@@:@:@:@;@@;@;@;@<@@<@< @0< @A= @R@=@c=@t=@>@@>@>@> @? @@? @? @?@ @@@@@/@@@@ @QA@b@A@sA@A @B@@B@B@B @ (`C@@C@ C@C@,D@=@D@ND@_D(`p E@`E@E(`F@@F@F(`F@ G@`G@ G(`H@+@H@<H@MH(`^ I@o`I(`I@J(``J@J(`K@@K(`K@K(`@L(`L@*L(`;@M@LM(`]M@n N(`N@N(` O@`O(`O(` P@`P(`P@Q(``Q@(Q(`8R@H@R@XR@hR(`x S(`S@S(` T@`T(`T@U(``U(`U(` V@`V(`(V@8W(`H`W@XW(`hX@x@X(`X@X(`@Y@Y(`Y@ Z(`Z@Z(` [@`[(`([@8\@H@\(`X\@h\(`x@]@]@]@ @^@a@Pa@`a@@pa_@a `pa a``a@@ @ @@@ @@'@/@5@= @D @K@@S@Y @a@@h@p`$`w`@~"`@ @@@-`@@(`@@@)`@@@@)`@`@  @2` @ @`&``d@&@-@4@; @B @H"`O@V@6`^@e@@l @s@y'`@@@@@@@%`@`@X`E  @  @@`@`#`@@(`@#`@`(`%2`,@3@@:@A@ @H @O/`V@] 6`e @m` @s`!`z@@@@@`&`GCC: (Debian 12.2.0-14) 12.2.0l 0І@ # !3| Tid <*u32<-7 r7!G <k?x" s32 u64 O& ' @) @A + + - @(/ #P 3  DO fci          5$ u  <B u  Z` 1rx~ : 3   *  J  !   $x *0 end' ? HN end*9 fl s.   $P5  rA HBOCT %3T%%AVC  &AW !, @[@K  A]_ ^i  ^    A_  `   T ]c]e`   g$  h/5 'lwIU  'um ms$ un    qX    (  {G):*w+W 5,<*tag-< L/ >0T  1 E2N d :4nt\ :5 \ W < :6x \ W << % :la >a  +D a  t F 7 ,YNT &O `-+ P uL]} <      X O  U  .   ,    x   A6E M  o     #  6  I   \  o  E  X I  .int p  @ m k %  %   /  <  w|0 k !.;HUbo|12 l 3&sR=T W6pSr.ir.r.y.yuT@ mB &{(Uint*rv&I rD1R36 [!7 8 9 3": (; 0< 8= @g@ HA PB XD`Fh!HpItUJ xM N$OQYY [f\]^ y$_ *E`b# V+ 6  c6 M&':! 'x > &1'! $'s 2  2 4r 79 8val 9S&kWqnA 6k/<#,  >-J "0 2:  G#5J X S8 `(C:r(<r (>r (T@r (xBr (Dr  aGd5h [pd W   + $'A".q 0vh#0vJJ/;( k#catp  r G r 3u z {# S z v WGS z  )rĖ q    $ K ?)r      ! I !8ctxy6 ?%%6!KKUZPXvty 6W_*6r 4  y# F  c "6r   6r& ! A!$J,#outL  M O1 ,$R] S $T$Wv#vtyX y$[#rb\ y$_ /` a jb /$e#rawf YI: *0P* U6*Y]*]v*c*!gyJ 6!d rO ! r =i  0 !Jfd#&rcb) u+y -r(?  r  ).rb  f b N    l Z&[ r  6 4. af0ip2 C4 +2  6-3 4 7str5  M buflen *pos * )Pr"t  Z <  \t @. Ah!/ A0  6, a-R 5 )"r7 M ! .'?" A`D2 9G7 idI DLyX G 6@tP rcR! MU bX 8agec 7l#fpG    !  7   2  U' ? 7O 7U  @dy >eJhkyn r (yx 0| 8!   7 y !  7 !   /05; P7 8 *9 m#: ; $ <; = >E(b &; @%iBdst& yBtrx'n !i. J5J>)3l1h+8 l2h,8(l3h-80l4h.88cb0=@2 +hlen3 +jG"58p68xu78t8M :.{6M6{]]6T8  aiE0])r J z^`0 ")" Q" 78 7<Y@6H|PzXYZ_ `W`6aF $pN#ctxOy Pr #Q  R @ 7SJH XTJX UhCVm  `>[!* ,6b  _c"@} >J#ofd  F@/OC >DJ F OG a#H 76d7{` >K % - +^ Cyt ]_"pD B ";"""p""("#>cYyUX 7y  y !** F +r7H! w*A*b\edxy* f G en 0# ay*22 @$$& zJ*!*aR# w8 7  K v z *0 y7%#!]   %s#!"%Ty+  yr yr< d 0ry  N+ ; ^ 0m!i  y>*"^6f#% 8$g a1crc|b1x ,cval CU$ ^ #_rc YU1T R~UvT Q}U~ȕU~U~DѕU JcڕU KTv *_rc`U0T R~UvT `Q}U~{U~ȕU~=ѕU J\ڕU `JTv 1_rcgU0T R~UvT Q}U~lvU~ȕU~ѕ U `IڕU ITv,U  pU~TvQ R ^XsMU T1Q(\ U `l)U `TUvT Q}=GU~U~)ѕU H}ڕU  ITvѕ<U Kѕ[U @K'ڕU KTvUs eD U  ,U0T0Q @>CT0(ZT2qT1!T1?T1ZT0xT1T0H>$7*T CIU -{T `R  ?e$UsT}sU0tU @T1Q5Rs} UvT}6 U TvQ}'6TU U j U @TvQs_ U T1Q,Rs3 U T1QLRsKC !U @n6!UsT Qv}3!U T ~ $ &QsLȕQȕV[ȕga"U T ~ $ &Qsѕ"U Fڕ"U FTsڕ"U `ETsڕ"U `Gѕ#U GڕC#U  GT}ѕb#U Eڕ#U FTsڕ#U DTsڕ#U @FTsѕ#U Duڕ!$U HTsڕ@$U @Hڕh$U  ETsڕU HTsS$6 gH@%N10& 1*g]i%.%U @T}QsقF%Usk%U TsU Tv $ &Q1+z 1z"q|1 !}=at~h&  9*rci L"    P 'Q" 6uu&6GEo~&UvT@Q~R~~p&U0T QvR~u'U}T Qv~xG'U T~Q~xȕa'U~x"x=ѕ'U `PڕU PT}6rr'6XV6rr B(6igr6U~T0o~e(U~T@QvoA(U~T-r(U T1Q.~t(U0T Q~R~t"(U}tȕ)U~Bu4)UvT `vc)U T~Q~Mx+`x)U @T0xxڕ)U `QTvڕ)U  PTvѕ*U Q5ѕU O6pp *6zxp6UvT06-r-r *67r6UvT0 s~ M,DɎs ^ގӎPL?w4Z+UvQw+U T~Qvew+U T~rw4+U~w+U T~w4+U}w*,U @TvQ}wU Tv6vv ,6igv6UvT0foA,UvT@pJ,UvPq,TQ  q!-U}TvQq9-U~T}-rd-U}T QvFr-U~T r-U}T Qv8sY-T~Qv.U}T @Qv v%.U~T *v"2v"J.U}=v=^v.U  T `Q R v4vFv.U @T~v/U T~Q~w(/U T~wS/U T~Q}2wx/U T~w/U T~w/U T~w"/U}x0U @T~Q}#x*0U T~;xO0U T~Exxx,ѕ0U MNѕ0U N_ѕ0U QkA0U0T@ѕ1U `Oڕ71U MT}ѕV1U  Nڕ~1U  OT}ڕU NT}}+kK \6k6 vY#l 7Om& : 0 n' r qp1 \6lha p3n6  2a z6C ; %6w o26o k %6 26 k2U Ts;kUsjȕ2Uvj3U TsQvj+3U @TskP3U @Ts.ku3U TsJk3U Ts^kU Ts qi u~5{ 3j 4  k:4U Tvle4U TvQ}l4}4U}!l4U @T|.l4U|k4U @Tsk4Usk5U TsQ|k75U|=l\5U TsQlU Tsji65UsT~Ej5T `rk5U Tsk6U T~k+k76U TsڕU RTvhfa16FY#a(7qc196d6Gd6mmU TXq:\6F\+K C>K! rKO K = cMC> nMC> i0bv7 Q6 } 7 Q6 jf7U}BhU T} $8 Q6 e8U~eU T~ 6Ta O8AT b}8U~T  Q 0baf8U|f8U|ѕU `U Tc U;T, " 2 )Tl X qYd :{ 3d4 9 *$f4f9U Tf4f9U TQgU TIf :U @T} gE:U T}ggw:U @T}h:U}hU T}c:UdTe:U}T  zf;U ngȕ4;U} ~g[;U @Tg;U Tg;U T}&h;U T}3h"Ha <U T QsRv4c!<UsKcPRF<U}T ek<U @T~ f<U T}Q!f<U @T}5f<U T|]f=U T}f+g>=U @T|"CgOc=U T~Wg=U Tvfg+=ULh+[h=U Tvڕ=U RTڕ'>U @RTsѕU RC:7 ?c9C>n9C>9y>:69>:6;a>UsJaU #TsG:6_>Uv_U  T|8s  A% cIofd" rc#1}[?U5T0QsR2[?U 0`\?UvT Qs\U\^\\@UvT `Qs\\Q@U $Tv\ȕi@Uv\Wڕ@U STvmѕ@U Sڕ@U  TTvѕU  S8+ Hofd# uS5r cC>{Y}len $rc;YI  Y Blen *rc=)AT Q1a>BUsT `Q X1Bȕ3BU#BXBU ,Ts1BѕBU `[ڕU [Ts < D=7DɎ<< ^_[ގuӎ@40CU}BA[CU ,TsQ}^ACU -TsoA4CUsACU @-TsA4ACU -T}Q}AU -T}?;:DT}~Q}~b;`DT @Q `~<xDUsu>=>DU  T Q R >ȕDU>">"EU}>"EU?DEU T1Q"r?nEU `T1Q%??EUsT ?FL@EU @1Tsc@EU 1TsQz@(FU 0TsQ}@MFU @0Ts@rFU .Ts@4FU}@FU 0TsQ@FU /TsQ}@GU @/TsA4GU}AHGU /TsQ}'AmGU /TsAGU .TsBGU 0Ts6BEBGU @.TsRB"HUaB&HU .TsnBȕ>HUsBѕjHU @\ڕHU \T}ڕHU @]TsѕHU \5ڕU \T}I6 Hjl Iofd& S8r rc%!I5Ik PRofd+ O;cC>rcF Z: at1j| Tj| rMT("2 )TTF q%} L{3x} OK\4JUkJU  T4-KU @ TsQvɁU  Ts;tKU T|OKU T|ցKUKU  T|QKU|U  T||.LUs|%~`LU|T  ـȕxLULU  TsLU  TsLU @ T|Qs'MU  T|7MU  Ts"OMUU @ T|yxMTQ R0Fz\MUT _zAMUT@*{NUsT `RvH{-NU T R0{PRRNU|T {!kNQ {%NU{NU T-|^/~ȕ7~+<~XS~ OU  Tv1Qv~=OU T1Q'Rs~a~j|OU TsOU|%OU TsQ|9OU @TsR PU @ T|pO0PU @TvUPU  TPU Tv"PU  T|QvȕPU Tv+QU  T|NO7QU  TwaQU @ Tsv"QU  Ts€QU  T|UѕQU @Lsڕ RU @MTsѕ+RU LڕU LTs+ Sc9C>!HkYlen *rc;Y T QZJRUvZ)RTvQ|E[#ST `Q #[ȕ;SU}5[fSU @$TsQ}I[SU $TsS[ѕSU `T-ڕSU TTsBѕU U T6Sl 6Tofd :.!OTz'*z;rzi _sb| V }* }wW 1,}UC?UU~T~Q "jUU 9TQ|"UU :TQ~44UU}0%55UU|54UU|5VU~5VUsX66VU|6PVU~64hVU|Z6VU|)7VUsHS7VU 9Q~7VUsX88 X * oS 10!KWCr!pWTQ @!WUsXl/WU 9TvQ~/WU @9TvQ674XU|!7XU~98A84BXU|F8N8gXU~V8XU|994XU|9U 8Q~ ?F[ *" cA 1n5YC 5U| jY$  w? YT~Q +YU 8T~Q~%,YU @8T~Q4ZU 8Tv5ȕ*ZUv5BZU|25+6gZU~J6R64ZU|_6g6ZU|o64ZU|w64ZU|v7ZU~{77+[U 7Q99 ] *<  1s#y[Cc]-5U|I$[TQ +\U 7T~Q~],4\U @7T~Q1L\UsH4+4q\U|5\U 7Tv55\U~364\U|E66\U~66]U|645]U|6774Z]U|8]U 6Q~4889wڕU ]T~ _ *  1;%)^CG ; %N^TQ +s^U 5Q,^U 6Q4^U~w5^U @6TvQ~5ȕ5_U 6Tv#6;64_U~@66Y_U|64q_U|6_U~6174_U|74_U|7U 5Q b *  1m- N`CP!L!9.y`TQ @Rv2`U 4Q4`U @4Qn8`U 3Q8 aU 4Tv8%aU~8=aU|8s694baU|>9zaU|F94aU|K9P9i9aU 4Tv9aU~ :(:U~  d *|!j! !! 1>0 qbCI"E"8.bU~0bTQ Rv<24bU|3bU 2TvQ~3cUsX3kU~4VkU|{kU CQvkU|4U| &n e*)) e)) 1>"elCR*L*gU| ?eJl$w*u*wqlT~Q @ lU @BT~Q~ lU BT~QElU BTvWȕ mUv_"mU|GmU~/lmU BQvmU|mU~4mU|4mU|4mU| Up f*** fD+"+ 1SfnC++U|%nTQ @E nU @AT~Q~} oU AT~Q2,oUsHQoU ATv+voU|oU~QoU~VfoU|4oU|4pU|4:pU|qnpU AQ~SڕU ]T~ r g*++ gL,6, 1}g qC,,.qTQ  SqU @Q xqU @@QqU @TvQ~ȕ qU @Tv|qU~rUsH9rU ?Q^4QrU|n4irU|~rU~4rU|rU|4rU~9 Du k*,, k]-G- 1M kdsC--E& sTQ Rv{ sUsX4sU|sU @>Q tU >Q !tU|39tU~4QtU|itU~tU ?TvstU|tU >TvtU~0uU >QbgoU~ v m*-- mE./. 1vmuC..!UsHuTQ uU =Q] vU =QEvU~;]vU|vU~4vU|.vU|FvU @=Q4U| Ly o*.. oP/8/ 1olwC//U<wTQ Rv<wUsX64wU|wU <QvxU @<Qv#)xU~+AxU|@sMfxU|nxU <TvxU <TvxU~xU ;Q|C]4yU|w*yU~U~ r { q*// q;0%0 1qyC00UsH2yTvQ yUsX4zU|3zU @;QvXzU ;QvUpzU~\zU|pzU ;QvK4zU|PzU|U~ | t*00 t10 1te{Cw1o1{TvQ @ {U :Qv {U :Qvt{U||U~4)|U|,M[|U @:Qv\d|U~l|U|4U| |Uv`|Uv8-K4}U|P44)}U~ȕA}Uv,f}U ?Tv}U =TvU @?Tvm{ 64g114a122J22Jd3F3K6q rG i43rcctxy4x4;Y\ @ 45"51 IQmsg;%5}51G*Q  C +55cKU1T RzKU|kSȕ7UzSȕOU|UtUsT `UUsT HWU (T}XU @'T$X U 'Tz1X"UFXIU 'TzWXaU}XU %TzXU}XŀU %T}X|U|T4XT4Y|U|T4Y7U|T4Y$Y6Y~U $TzQ~XYU %qYvYYU @&TzQ {z"Y U &Nѕ)U @XkڕQU XTvڕyU XTvѕU WIU0T0Q @IނUvTzIU0T QzRzN8U T1Q1NeUsT `QzPU T1QD1PUzTvQzuPۃU Q|PTUzT|R 0X0Y0P*?UzT0QvRzPWU|Q"qUzQU|C^C>ST|Q:D+kUsDȕUsD"UsD"U}D"ˌU}DU|E&EU +TsDE:U ,TsaE^U +T0EU @+T}EU @,T}q;8 r,+ @)YU `T  NiU Ok@1Pval@Y s"*P1v-#th#t4v tNv-=\Ɏ\1vG"\Jv-;KK3vh#Lv Mv- Px)t6T AT77YKUvT  IZaZpUs#ZUsѕU `U=H>\_S>`7N7]>77%g>) l>77%y>9 ~>88 T[]K ;BT-8)82K )TL8D8 q^^ {y8u83d^q 08888_4 `ԐU  T`45`U !T}QV`U @!T}_UU @ Ts_zU  Tsd`s`U !Ts`đUs`U !Ts]U}] _0UsT  `UU "Ts`"mU`U @"T}`ȕU`ϒU "T}`U "T}aU #TsQ}aU @#Ts%> ]>88H>p_p_7QS>Q]>x_Us_Y_˓Us_U Tv.aU #Ts=6`lU688Ngl6UUT0=\6pln69 9z6g9M9%6 699%6 699imU TX{mȕUsm*U TXQsmPU TXmvU @TXnU @TX0nU TX""""dZ ,/ % e"["N D OE,,,**"y"f\,//,I44GI4: ; 9 I< .?:!;9 n2!<d.?:!;9 nI2!<d::!;9!&I 9:!;9!   !I $ >  .?:!; 9 n<d  !I4: ; 9 I< :!;9 I8 4:!; 9!nI?< : ; 9!:!; 9 I4: ;9 I<  !:!;9!4: ;9 I<l4: ; 9 I<.?:!;9 nI2!<d/I.?:!;9!n2!<d.?:!;9!nI2!<d :!; 9 I8 .?:!; 9 nI<% 9: ; 9 : ;9 I 4: ;9 I< l!: ;9 I": ; 9 I#4: ; 9 I<$.?: ;9 n<d%I8 2 &.?: ;9 n2 <cd'(4: ;9 I< ) : ; 9 * : ; 9 I8 +.?: ; 9 nI<d,.?: ; 9 nI<-.?: ; 9 nI<.$ > /B I01:: ; 9 24: ; 9 I?3.?: ; 9 <I~H}H}I : ; 9 I8 H} !I1B 4:!;9 IB : ;9 I8 ( 1RBUX!YW  U.?: ; 9 'I<4:!;9 IBI : ; 9 I8 &I : ; 9!.?<n:!;!: ; 9 I!I/ :!;9 IB4:!;9 I41B$ > .?: ;9 'I<4:!;9 I1RBX!YW :!;9 IB:!; 9 I <!'".?:!;9!'<# : ;9 I8 $ : ;9 % 1U&7I'4: ; 9 I?<( :!;9!I !k)>! !I: ; 9!* :!;9!I+.?:!;9!'U@z,.?<n-.:!; 9!' !. :!;!I8 / : ;9!01 :!;9!2 U31RBUX!Y!W!4:!; 9 IB5 I8 6>! !I:!;9!7.?: ; 9!'<8.?:!;9!'IU@z9 :.?:!;9!' !;4I4<: ;9 I=.1@z>: ;9 I?'I@ : ; 9!A :!; 9!IB :!; 9 IC4:!;9 ID1RBUX!Y W!EH}F:!;9 IG HH}IH}J4:!; 9!IBK4:!; 9 IL.?:!; 9 'I@zM:!; 9 IBNH}O.: ; 9 'I !P: ; 9 IQ41R% US : ; T U$ > V: ; 9 W&X<Y : ;9 Z([(\!]!I7 ^ : ; 9 _4: ; 9 I`!I/a4: ; 9 I?b4: ;9 I?c : ;9 d.?: ;9 '<e.?: ; 9 '<f.?: ; 9 'I<g.?: ;9 '@zh.?: ;9 'I i j.: ;9 'I@zk.: ;9 'IU@zl.: ;9 ' m.?: ; 9 'IU@zn: ; 9 Io: ; 9 Ip4: ; 9 IBq.: ; 9 ' r.: ; 9 '@zs.: ;9 'I t.1U@zSK 3"#"70 Tq/<$==^fq} !*9KSZf}!!v 0~KK|xJ/I%ISIK BJ>X Bf>J?X =<CJ=JEt.. }#<} t }JX }<.ff#   JXz   J=Ef<><.8*  t  o1t=<.<1.<JJ@t.C)  f #   Jt<GttJf<[<5 t  6 s< <sJ Jf<<<  <   o<5* tt-2t<5&Jj$hJtJ'  <  J . <5*s@%.%.%s.yJ (v/;g6 ffj<5 t tx<5H  <  . >HL t<5 t  tJ/;g6 ffl.8 t tX ..Z#(J +J -.>HL t<.8* t<58<5(<5&J<5(JJ +...0   .  <  .  <  J .  <  J  .X<XY4  X+y 9<=XsX XzzXyXltXXzXsXȂ qX ..Xs JrXXX uYt3/S zz/ wX </x'..+uI 5 uI5vH fpxIs[UYj *XtX"%( 4.f0 s~a L# JX CnX8A.JKhOXHw  =,;tYpY M$ gG:& kFtY  LaLtw*t.QX\w /yf YAA Z ] (&(#(;&^W7J)X& %$Xf`0XzX\XXCq*XX&X*D*/*KgeWtr YXW {wX \t f< J= ~h.4 4} .fr* .& ( ..JtOfvfy<|; t<$.. X<< :<9f<<J >BY~Ct.fJ.(f<.=t<X 8 ~.Lf> >}..rB & *  X2 YufJJw .< 8|<<< ~ }.8 |X< "<<~ }<t X< :< X< `hr u.t  7)  JJy ZJ FY|  r" .& t >vroX;<<<<<><;:X ><><XYt- h<"gJ#lX;.9t?sbHtAJ yXD. JI.{.mt .& g J%K t$"X>$uJ?Xt?&XX6XF&3TXf,<dX;h {<;;<y< 'Dp<uX. X'[XX XXX~t,c8 7/l. <= <X.'t_ tLu! iJ#U0"]X4! . 7 5}..tr(  & f . <}XYXX v`fthIXy<<<v  Bn+ &] ( jO-<9f}<; t<< <( }X)< ւ<<  <4X @0V h,X#/#WXfYg.f# @$KXff2 ~6<qqX%<u0^zXV%<lvȺ#.XwX 0$~ z< "*0[Vu(XfJcJ JXJ~x%`2Mh<zy` :IJJ<\<< J:!;c<< 0HXroE,Z,<vY'YtZZ&<2tA#:* X)3uf.7 Xt<a zYe.YY/~f)]u#XYmX#:tfwupX#>t<ksuX$)X!st u= tYX'A'vYzLt* KstXJD$<XJ=WX<2#~bf) IpI  .AXt<fX6 6 yYX~=XXy %:iXR'WX X$\XXQ!RX$ Up0XfXw tX']XX5# _ZN11__sanitizer18InternalMmapVectorIcEC4EmkAsanInternalHeapMagic_ZN11__sanitizer18InternalMmapVectorIcEC4Ev__dfsan_ZN11__sanitizer20InternalScopedString6appendEPKcz_ZN11__sanitizer24InternalMmapVectorNoCtorIcE4backEv_ZN11__sanitizer24InternalMmapVectorNoCtorIcE4dataEvkAsanStackUseAfterScopeMagiccapacityStackTraceTAG_CUSTOMReallockAsanStackMidRedzoneMagickMainTidkStackTraceMaxuptr_ZNK11__sanitizer24InternalMmapVectorNoCtorIcE5emptyEv_ZNK11__sanitizer20InternalScopedString6lengthEv_ZN11__sanitizer24InternalMmapVectorNoCtorIcE10InitializeEmInternalMmapVectorTAG_UNKNOWNkDefaultFileMaxSize_ZNK11__sanitizer10StackTrace5PrintEv_ZN11__sanitizer24InternalMmapVectorNoCtorIcEixEm_ZN11__sanitizer10StackTraceC4EvkMaxSegName_ZNK11__sanitizer24InternalMmapVectorNoCtorIcE4sizeEvappendkAsanContiguousContainerOOBMagickAsanStackRightRedzoneMagiclong long unsigned int_ZN11__sanitizer24InternalMmapVectorNoCtorIcE7DestroyEv__asan_inittracepush_backkAsanGlobalRedzoneMagickAsanUserPoisonedMemoryMagic__lsankAsanAllocaRightMagickErrorMessageBufferSize~InternalMmapVector_ZN11__sanitizer10StackTrace9TAG_ALLOCE__sanitizer__local_asan_preinitpop_backkWordSizeInBitsInternalMmapVectorNoCtor_ZN11__sanitizer24InternalMmapVectorNoCtorIcE8pop_backEvkCacheLineSizekAsanArrayCookieMagicresize_ZN11__sanitizer24InternalMmapVectorNoCtorIcE7reserveEm_ZNK11__sanitizer24InternalMmapVectorNoCtorIcE8capacityEvGNU C++14 12.2.0 -mshstk -mtune=generic -march=x86-64 -g -O2 -std=gnu++14 -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -fno-ipa-icf -fcf-protection=full -fasynchronous-unwind-tables_ZN11__sanitizer24InternalMmapVectorNoCtorIcE9push_backERKc_ZN11__sanitizer20InternalScopedString5clearEvkRetiredStackFrameMagicreserveGetPreviousInstructionPckInvalidStackIDsize_kAsanInitializationOrderMagicswap_ZN11__sanitizer24InternalMmapVectorNoCtorIcE5beginEv__interception__hwasankAsanStackAfterReturnMagic_ZN11__sanitizer18InternalMmapVectorIcEC4EOS1__ZN11__sanitizer20InternalScopedString4dataEvTAG_ALLOCcapacity_bytes_boolInternalScopedStringdata_kAsanAllocaLeftMagicoperator=_ZN11__sanitizer10StackTrace20GetNextInstructionPcEmPrintTooperator[]kFrameSize_ZN11__sanitizer18InternalMmapVectorIcED4Ev_ZN11__sanitizer10StackTrace11TAG_DEALLOCEkMaxPathLengthkExternalPCBit_ZN11__sanitizer18InternalMmapVectorIcEC4ERKS1__ZNK11__sanitizer20InternalScopedString4dataEvkAsanHeapLeftRedzoneMagic_ZN11__sanitizer24InternalMmapVectorNoCtorIcE4swapERS1_clear_ZN11__sanitizer24InternalMmapVectorNoCtorIcE6resizeEm__dsan_ZN11__sanitizer10StackTrace12GetCurrentPcEv_ZN11__sanitizer24InternalMmapVectorNoCtorIcE7ReallocEmkAsanHeapFreeMagic__scudokReleaseToOSIntervalNeverlength_ZN11__sanitizer10StackTrace11TAG_UNKNOWNEInitializekMaxThreadStackSize_ZNK11__sanitizer24InternalMmapVectorNoCtorIcE3endEvWillUseFastUnwind_ZN11__sanitizer10StackTraceC4EPKmj__ubsan_ZN11__sanitizer10StackTrace24GetPreviousInstructionPcEm_ZNK11__sanitizer24InternalMmapVectorNoCtorIcEixEm__xrayPrintGetNextInstructionPcunsigned char_ZN11__sanitizer10StackTrace10TAG_CUSTOME_ZN11__sanitizer10StackTraceC4EPKmjj__msan_ZN11__sanitizer18InternalMmapVectorIcEaSERKS1__ZNK11__sanitizer10StackTrace7PrintToEPcmkCurrentStackFrameMagicbuffer_TAG_DEALLOC_ZN11__sanitizer24InternalMmapVectorNoCtorIcE5clearEv_ZN11__sanitizer20InternalScopedStringC4Ev__tsankAsanIntraObjectRedzonekAsanStackLeftRedzoneMagic_ZN11__sanitizer10StackTrace17WillUseFastUnwindEb_ZNK11__sanitizer24InternalMmapVectorNoCtorIcE4dataEvkInvalidTid_ZN11__sanitizer24InternalMmapVectorNoCtorIcE3endEvshort unsigned intbegin__asan_ZNK11__sanitizer10StackTrace7PrintToEPNS_20InternalScopedStringEkModuleUUIDSize_ZNK11__sanitizer24InternalMmapVectorNoCtorIcE5beginEv_ZN11__sanitizer18InternalMmapVectorIcEaSEOS1___memprofkWordSizeGetCurrentPcDestroyosmo_panicrequest_cleanupsa_familyLOG_FLT_BSC_SUBSCRlog_target_destroyquietprint_timestamplog_filename_posresult_formattailGNU C11 12.2.0 -mtune=generic -march=x86-64 -g -O2 -std=gnu11 -fsanitize=address -fsanitize=undefined -fsanitize=address -fsanitize=undefined -fasynchronous-unwind-tables__ssize_t_IO_codecvtosmo_mslookup_client_methodLOG_FLT_GB_NSVCosmo_mslookup_resultlog_target_type_IO_save_endosmo_stderr_targetsock_pathgsmtap_instlog_infollist_emptyai_flags__func__SOCK_RAWosmo_mslookup_result_code_name__builtin___ubsan_handle_add_overflowstrtollstart_query_strosmo_mslookup_result_name_c_IO_write_base__asan_stack_malloc_5ai_next_talloc_free_lockLOG_CTX_L1_SAPILOG_TGT_TYPE_VTY__builtin___asan_handle_no_return_IO_save_baseminvalmdns_domain_suffixformatter_tai_canonnamedestruct_chainendptrdata_lenpriv_cur_columndo_sendosmo_mdns_sock_send__uint8_tfilter_fnLOG_CTX_VLR_SUBSCRlog_set_print_filename_posqueries_LOG_CTX_COUNTSOCK_RDMraw_outputstrchrtimeoutshas_argFORMAT_JSONsocket_client_close_IO_markerprint_ext_timestampformatters__builtin___ubsan_handle_sub_overflowlog_set_print_extended_timestampLOG_FILENAME_BASENAMEsd_journalprint_versiongsm_lchan_IO_FILEOSMO_MSLOOKUP_RC_NONE_IO_wide_dataLOG_CTX_GB_NSVCLOG_TGT_TYPE_STRRBLOG_FILENAME_PATHSOCK_SEQPACKETchars_needed_freeres_listtgt_gsmtapwhatg_bufosmo_sockaddr_str_from_str_Bool__builtin___ubsan_handle_out_of_bounds__socket_typeOSMO_MSLOOKUP_ID_MSISDNprint_filenameosmo_init_logging2log_info_catSOCK_STREAM_IO_lock_t__uint16_tLOG_CTX_GB_BVCparse_intLOG_FLT_ALL__errno_locationprint_tidprogram_exit_IO_read_ptrtgt_rbfp_offsetstrcmp__socklen_tosmo_mdns_result_encode__llist_addnum_cat_userosmo_mdns_sockLOG_TGT_TYPE_GSMTAPosmo_strlcpy_markers__va_list_tagmaxvalcmdline_optsmslookup_result_cbosmo_strbufosmo_mslookup_id__builtin___asan_report_store_nOSMO_MSLOOKUP_ID_NONESOCK_NONBLOCKlog_set_print_filename2log_set_use_colorhost_v4long_optionshost_v6hostnameoptindenabledLOG_FLT_VLR_SUBSCR__builtin_fwritelog_filter_flags2talloc_named_constlog_set_print_level_IO_read_baseLOG_FLT_GB_BVCquery_with_timeoutoption_unused2ai_familyai_socktypeformat_strsun_pathFORMAT_CSV_old_offsetargvquery_by_handlesnprintfrxbufdescription__uint32_tlong long intfnameprint_fnosmo_mslookup_client_add_mdnsprefetchmsisdnlog_set_print_category_hexosmo_mdns_sock_init_IO_write_endfacilityformatter_csvprint_helpLOG_TGT_TYPE_STDERR__builtin_putsgp_offsetsocket_initrespond_errstrerror__builtin___ubsan_handle_load_invalid_valueosmo_fd_is_registeredai_addrlen_IO_buf_base_sb_remainbuflensocket_closequery_strs_lentgt_vty__pad5socket_acceptflagosmo_select_main_ctxloglevel__builtin___asan_report_load_nosmo_mslookup_client_freeoverflow_arg_area__builtin___ubsan_handle_type_mismatch_v1filter_datapriv_nrip_strs__asan_stack_malloc_0__asan_stack_malloc_1__asan_stack_malloc_2__asan_stack_malloc_3_modeLOG_CTX_GB_NSEOSMO_MSLOOKUP_ID_IMSIlog_set_print_categoryosmo_fd_unregisterosmo_mslookup_client_requestosmo_mslookup_clientrecvosmo_mslookup_client_newLOG_TGT_TYPE_SYSLOG__mptrai_addrrequests_handledlong double__asan_stack_free_5entrygetopt_longosmo_mslookup_id_typeSOCK_DGRAMsockaddr_unun_addrsun_familysa_family_tsocket_read_cbreg_save_areasocket_client_respond_resultlog_filename_typeresult_timeout_millisecondslog_ctx_indexage_str__off_tsocket_clienttgt_fileserviceosmo_mslookup_queryosmo_mslookup_query_handlingsa_datacsv_headers_freeres_buflog_print_filterslog_contextosmo_wqueuemsgblog_save_filterssockaddraddrinfoosmo_sock_unix_initLOG_CTX_BSC_SUBSCRosmo_fd_IO_backup_base_shortbufOSMO_MSLOOKUP_RC_NOT_FOUNDLOG_FLT_GB_NSEsocket_clientsargcsocket_cb__off64_tosmo_sockaddr_strlog_filter_indexmin_wait_millisecondslog_finiexit_cleanup_sockoption_index_IO_buf_endosmo_fd_registerosmo_mslookup_result_code_namesglobalsSOCK_CLOEXECsave_fnfprintfportstart_query_strssocket_pathstrtokSOCK_PACKETstderrshort intnum_catwhenpriorityLOG_FILENAME_NONEget_value_string__builtin___ubsan_handle_nonnull_argident__builtin___asan_report_store1_vtable_offsetSOCK_DCCP__builtin___asan_report_store4__builtin___asan_report_store8cb_doing_nothingosmo_str_startswithexit_cleanuposmo_sockaddr_str_is_nonzeroosmo_mslookup_cb_ttgt_syslog_sb_l__builtin___ubsan_handle_pointer_overflowformatter_jsonresponsestrlen_LOG_FLT_COUNTrespond_str_stdoutLOG_FILENAME_POS_LINE_END_IO_read_endimsiosmo_mslookup_query_init_from_domain_strLOG_FILENAME_POS_HEADER_ENDosmo_print_nLOG_FLT_L1_SAPIgsm_bts_trx_filenoOSMO_MSLOOKUP_RC_RESULToptargfilter_mapdaemonLOG_TGT_TYPE_SYSTEMDmdns_addr_IO_write_ptrllist_headdashmin_delay__builtin___asan_report_load1__builtin___asan_report_load2__builtin___asan_report_load4_osmo_strbuf_remain__builtin___asan_report_load8osmo_mslookup_result_codelog_categorysocket_ofd__llist_delosmo_mdns_sock_cleanuplog_targetcategoriesfflushrequest_handleprevai_protocolLOG_TGT_TYPE_FILE_talloc_zerolast../../../../src/libsanitizer/asan/asan_preinit.cpp/build/gcc-12-bTRWOB/gcc-12-12.2.0/build/x86_64-linux-gnu/libsanitizer/asan../../../../src/libsanitizer/asan../../../../src/libsanitizer/sanitizer_commonsanitizer_internal_defs.hsanitizer_common.hsanitizer_stacktrace.hasan_internal.hasan_interface_internal.hosmo-mslookup-client.c/build/osmo-hlr/src/mslookup/build/inst-osmo-hlr/include/osmocom/core../../include/osmocom/mslookup/usr/lib/gcc/x86_64-linux-gnu/12/include/usr/include/x86_64-linux-gnu/bits/usr/include/x86_64-linux-gnu/bits/types/usr/include/usr/include/x86_64-linux-gnu/sysutils.hmslookup.hlinuxlist.hstddef.htypes.hstruct_FILE.hstdio.hunistd.hgetopt_core.hgetopt_ext.hsockaddr.hun.hlogging.happlication.hstdint-uintn.hselect.hsocket_type.hsocket.hsockaddr_str.hmslookup_client.hnetdb.hmsgb.hmdns_sock.hmslookup_client_mdns.hstring.hpanic.htalloc.hstdlib.herrno.h:0U0C~CUU~UU0T0VTVTVT V T V T VTVTVTVTVTTVTVTVTVTVTVTVgVgTVTVTVTVTVTV@10VP101P11V11 P PP]@U]UU]@T\TT\@0TVTYPY}V}P0V@n-U-VUV U V UVUVUVU HUHzVzUSqP^^ ^ P ^ ^ P ^^^ ^ez^^^mnV~V ~ ~VVV~~~ ~&7~HiViz0~~~foP~1~1 ~1P~~1~1~1 ~1&7~1`tP~1~1~1o'P'~P ~~~1~~dp~#QQ~u~r~r ~p V-r Vs h`P h`s^^szVz}x}xVs h`P h`s^^v V`h'U'UUUU`h'T'\T\T\T\T\\`h'Q'QQQQ`h'R'^R^R^R^^PiSUSSlhT\\T\uhSv~SSuh0SSi$SSiSSjdVVjd\\Pa%U%SUS,S,@U@YSPa%T%VT V T VYV7bs]s^]_^] ] ] ]],Y]ebx^xP^P^^ ^ ^ ^ ^^@Y^7bs]] ]ebE^^bPPac   c]]]] ]c T ##}}}}}} }Yd]]]]]dPPdZZ`[UQQSQUSUSUSUGUESEVU`[9 0`9NUN 0`GV 0`[P P uSuwPSPGPSEVS@:*U*SpUSUS p U S U S UU@:*T* T T TTe;PSS`PSS S S P S ` S.SBc`|`SB;Pv]]]P] ] ] ] ]P]5N]=1 1!1:^1=PP$}< x`Ps x` x`<SS S<x] ]< x`Ps x` x`<SS S UU TT 00x,U,S U S U S U S U?rUwy\ \ \ \?r\yPSSPS S S SIzP____P_ _ _ _ ___?%_%3P3r_uzX X v_zPPv1j|\ \ \|S|S | S | S%}\\ \x}bSSSx}b___0ZU|S|}`US}`5}`5FS0ZTVTVTV5V5@T@FVTZP\X\\P\5\ZPRRL/U/^U^-U--^--U--^-.U..^.9UdU/T/-T--T--~-9TdT/Q/-Q--Q--~-9QdQ/R/VRVRVR"V"$R$&V&'R'(V((R()V)*R**V*,R,-V--R--V--R--V-.R..V..R./V//R/0V00R00V00R01V11R12V22R22V22R23V33R33V33R35V55R55V55R57V77R77V77R77V77R78V88R88V88R89V99R99VdV T o~~~~~-.~..~..~//~11~44~SPSeRPPR~PR--P..P..P..P//P01P11~44Rs@a!_ ___++_--_00_00_r!YP P XPPXX~++P--X--P00X00P00~0!%s@s@!!s@++s@..s@X**X**~B PXZPZZZZ~Z++Z,,Z,,Z..Z..Z./Z//~33ZnPs@#$s@++s@T#_ ____""_#$_$$_%%_&&_&&_((_))_++_,,_d_L$PXXPX XXX~X##X$$X$$X$$X%%X''X''~((Xs#Ps@s@##s@i%__ _ _!!_""_""_%P^RP P R ~ R R!!P##P##~;%!s@ s@s@s@!!s@%%s@-_ _ _______.P^RP P R ~P~PRRm- s@s@i0_________0YPPPXX~PXXPPP~>0 s@s@&bVVVVVV V' P _P_________ _& s@s@s@s@p/U/^U^5U55U55^56U66^6BU@$Up/T/5T55T55~5BT@$Tp/Q/5Q55Q55~5BQ@$Qp/R/VR V R VRVRVRVRVR"V"#R#'V'(R()V))R))V))R)*V**R*+V+.R.2V24R45V55R55V55R55V56R68V88R8:V::R::V::R:;V;;R;;V;;R;<V<<R<<V<<R<=V==R==V==R=>V>>R>>V>>R>?V??R??V?@R@AVAARAAVAARABVBBRBBV@$V T o~~~~~55~66~66~66~66~88~89~<<~SPSeRPPR~PR55P66P66P66P78P89P99~<<Rs@._VVV44V44V77V77V88VB P _P_!"_44_44_66_77_77_88_%s@s@##s@45s@99s@X33X33~ P VRPRRR~R22R34R44~44R44R45R55R;;R>Ps@%%s@44s@T_____)*_,,_--_--_.._.._00_00_22_55_@$_(PXZPZZ ZZ~Z++Z,,Z,,Z,,Z--Z//Z//~11ZSPs@s@,,s@I__ _&'_**_++_++_P^RP P R ~((P((~))R))R**P!s@s@s@s@()s@,,s@~ _____ _ !_!!_!!_ P^RPR~PP R P ~ RM %s@ s@s@s@]_ ______P^R P R ~PRRPP~v s@s@___ _ _________> P KVK]PPV P ~ VVVVV%s@ s@s@s@!_VVVVVVV5 P _P________ s@s@HVVV''V((V()VPk_P_P_ _ _%%_''_''_((_((_**_%s@ s@&&s@**s@E.U.\U\U\ U U \ !U!"\"#U##\#$U$$\$%U%%\%%U%%\%'U''\''U>UE.T. T T z 'T>TFPHz P z!!P!!z##z##zFPz 0 0zPt z!!z!!P!"z""0##0%%t%%zJ/R/Vv V vVVVVRVVVVVIPzP z zzzzzzz z>lzlzPzzP#P#\P\\\K\KZP`u\PPP2PcK9PPPP{WPB5U5F~FUU~UB5T5F~FTT~TB5Q5QQ~QBR]R]CPP~Y0U0cUcfUfsUssQQX]S\VSVVV\S1]#\#*]*\V]]V\]OSS1]#\\[]SS{]]ss]^SSd^a]]d^PPT]]]]`lUUpl"U"VUVUVl"P.@PPPXPXPXPXPXlPPXmPPX=pB@$< 44556666666677778899::<<??Y ))5&*.F%%3444566666777788;;==>!%=P%%44 (+ """#001112223333334455666688@$S!%=P,, %""##44557777888999 %.##!""""$$%%&((***+,,455577899999@+ i{  (())****+++++++,,,--.. %.v0B^   %%&&(((())))*+ %.       !!!!""""M 1 @-  v+b    1 9dl ,,--...///1111224444 ))e&*.F$$++++-----.00014444n!%=P$$++ (+   !!!"(((()******+++,,,,--..//11ds#!%=P##0! %!!++++..00010! %1!!$ew      !!""""####$$$$%%%%;% %.  &0  !!!!&(&#$$$$$%%&&&&d>0+4-     m-+ @:< < = !:^E'>J >SYs0ZF`[GV\],[]^d^a _*PaYac 7b. b-c Ydda`hlhlh h)ijdpl l(@n oo  &7o 1ssx?rj|  ?%} x}b  {W|,: /N3:0Ѝ@# | *@)8@$KdN `p_ i``v@>FGVY 4/xm >?rR^a?kz#p .@<O@X_n@>Vz@B'0 @:3`"16T Yz@nn  Pa@?Hb`ln 06JUg '.J[ @"p)!\_*D C[}@  * G r  0Z#   Ys     / `[; `hN b @n    pl   ! A m t  @     , S b |    EScrt1.o__abi_tagosmo-mslookup-client.cprint_versionformatter_csv.coldformatter_json.coldsocket_cbcmdline_opts__func__.1socket_accept.cold__func__.3do_send.coldrespond_str_stdout.cold__func__.2socket_client_respond_result.coldsocket_init.coldmslookup_result_cb.coldstart_query_str.coldsocket_read_cbsocket_read_cb.coldlong_options.0main.cold_sub_D_00099_0_sub_I_00099_1crtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.0__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryasan_preinit.cpp__FRAME_END____GNU_EH_FRAME_HDR_DYNAMIC_GLOBAL_OFFSET_TABLE___asan_report_store4osmo_mdns_result_encode__errno_location@GLIBC_2.2.5log_set_print_filename_pos@LIBOSMOCORE_1.0stdout@GLIBC_2.2.5osmo_strlcpy@LIBOSMOCORE_1.0strlenosmo_str_startswith@LIBOSMOCORE_1.0__asan_register_globalslog_set_print_level@LIBOSMOCORE_1.0_edata__asan_report_load_n__asan_stack_malloc_0parse_intcb_doing_nothingsocket_accept_IO_stdin_usedfprintfstrtokosmo_stderr_target@LIBOSMOCORE_1.0__cxa_finalize@GLIBC_2.2.5putsosmo_mslookup_client_add_mdnsmainget_value_string@LIBOSMOCORE_1.0__asan_stack_malloc_1start_query_strlog_set_print_filename2@LIBOSMOCORE_1.0optarg@GLIBC_2.2.5__dso_handle__asan_report_load4osmo_mslookup_result_code_nameslog_target_destroy@LIBOSMOCORE_1.0snprintfosmo_mslookup_client_freerespond_errosmo_mslookup_client_requestlog_set_print_extended_timestamp@LIBOSMOCORE_1.0osmo_sockaddr_str_from_str@LIBOSMOCORE_1.0__ubsan_handle_load_invalid_valuestrcmp__ubsan_handle_pointer_overflow_finiosmo_mdns_sock_init__libc_start_main@GLIBC_2.34osmo_mslookup_query_init_from_domain_strosmo_select_main_ctx@LIBOSMOCORE_1.0recv_talloc_free@TALLOC_2.0.2osmo_mdns_sock_cleanuposmo_fd_register@LIBOSMOCORE_1.0osmo_panic@LIBOSMOCORE_1.0fflushosmo_mslookup_result_name_c__odr_asan.g_bufosmo_fd_is_registered@LIBOSMOCORE_1.0__local_asan_preinitfwriteformatter_csvsocket_close__asan_report_store8log_fini@LIBOSMOCORE_1.0__asan_report_load2__asan_unregister_globals__odr_asan.formattersosmo_mslookup_client_new__asan_handle_no_returnlog_set_use_color@LIBOSMOCORE_1.0__asan_init__TMC_END____ubsan_handle_sub_overflowosmo_sockaddr_str_is_nonzero@LIBOSMOCORE_1.0osmo_fd_unregister@LIBOSMOCORE_1.0__asan_report_load1__asan_report_store1osmo_print_n@LIBOSMOCORE_1.0log_set_print_category_hex@LIBOSMOCORE_1.0osmo_mdns_sock_sendsocket_client_respond_resultstrtollstderr@GLIBC_2.2.5respond_str_stdout__data_start_endoptind@GLIBC_2.2.5osmo_init_logging2@LIBOSMOCORE_1.0__asan_stack_malloc_5socket_initmslookup_result_cb__asan_report_load8__bss_starttalloc_named_const@TALLOC_2.0.2__asan_stack_free_5__asan_stack_malloc_2query_by_handlegetopt_long@GLIBC_2.2.5__ubsan_handle_out_of_boundsosmo_sock_unix_init@LIBOSMOCORE_1.0__ubsan_handle_type_mismatch_v1__asan_option_detect_stack_use_after_returnstrchr__asan_version_mismatch_check_v8start_query_strs__ubsan_handle_nonnull_arg_ITM_deregisterTMCloneTable_talloc_zero@TALLOC_2.0.2__asan_report_store_nstrerror__asan_stack_malloc_3log_set_print_category@LIBOSMOCORE_1.0__gmon_start___ITM_registerTMCloneTable__ubsan_handle_add_overflowclose@GLIBC_2.2.5formatter_jsondo_send.symtab.strtab.shstrtab.interp.note.gnu.property.note.gnu.build-id.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.text.fini.rodata.eh_frame_hdr.eh_frame.preinit_array.init_array.fini_array.data.rel.ro.dynamic.got.plt.data.bss.comment.debug_aranges.debug_info.debug_abbrev.debug_line.debug_str.debug_line_str.debug_loclists.debug_rnglists#88 6XX$I|| WoDa i qo44~op``BPP 00@@ O 4,@ @@p(" (@@ -0@6_EQd _