7  java/lang/Object()Vorg/freertr/util/syncInt   (I)V  org/freertr/rtr/rtrOspf4areatodoLorg/freertr/util/syncInt;org/freertr/spf/spfCalc  (Lorg/freertr/spf/spfCalc;)V  lastSpfLorg/freertr/spf/spfCalc;  lowerLorg/freertr/rtr/rtrOspf4; !"areaI$org/freertr/tab/tabGen # ' ()lsasLorg/freertr/tab/tabGen; + ,)need2adv.org/freertr/tab/tabRoute0computed -2 3(Ljava/lang/String;)V 5 67routesLorg/freertr/tab/tabRoute;9org/freertr/util/notifier 8 < =>notifLorg/freertr/util/notifier; @ ABhostnameZD EFmakeConcatWithConstants(I)Ljava/lang/String; H IBstub K LBnssa N OBtraffEng Q RB segrouEna TUV WXorg/freertr/util/bitsgetTime()JZorg/freertr/rtr/rtrOspf4lsa6 Y^ _`createdJ Yb cBdoNotAge #e fgfind.(Ljava/lang/Comparable;)Ljava/lang/Comparable; Yj k"sequence Ym nocontentDiffers (Lorg/freertr/rtr/rtrOspf4lsa;)Z qrs tBorg/freertr/util/debugger rtrOspf4evnt vwx yzjava/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String;| E}&(Ljava/lang/String;)Ljava/lang/String;  3org/freertr/util/loggerdebug Y generateCheckSum # gputD # size()I # get(I)Ljava/lang/Comparable; Y rtrIDLorg/freertr/addr/addrIPv4;  org/freertr/rtr/rtrOspf4routerID  org/freertr/addr/addrIPv4 compareTo(Lorg/freertr/addr/addrType;)I  generateLsa"(Lorg/freertr/rtr/rtrOspf4lsa;ZZ)V  wakeNeighs )ifacesorg/freertr/rtr/rtrOspf4iface )neighsorg/freertr/rtr/rtrOspf4neigh !Lorg/freertr/rtr/rtrOspf4area; < 8 wakeupDw@| # gdel  org/freertr/pack/packHolder merge2beg Y Y "lsaType  copyBytes()Lorg/freertr/addr/addrIPv4; Y lsaID getCopy()[B Y bufDat[B getCapabilities Y " capability msbPutW(II)V dataSize putSkip  T msbPutD([BII)V fromBuf([BI)V  advertiseLsa<(ILorg/freertr/addr/addrIPv4;Lorg/freertr/pack/packHolder;)V putAddr(ILorg/freertr/addr/addrType;)V putByte  "org/freertr/addr/addrPrefixmaskLen  (ZZ)V  7routerRedistedU -    amIabr()Z  )areas  ifaceLorg/freertr/ip/ipFwdIface;  org/freertr/ip/ipFwdIfaceLorg/freertr/ip/ipIfc;  org/freertr/ip/ipIfcgetState!()Lorg/freertr/util/state$states; !"# $%org/freertr/util/state$statesupLorg/freertr/util/state$states; ' ("metric * +B maxMetric . / needDR 1 2drAddr 4 5 isEmpty 7 89addrLorg/freertr/addr/addrIP; ;<= >org/freertr/addr/addrIPtoIPv4 @ ABputLink2rtrLsaX(Lorg/freertr/pack/packHolder;ILorg/freertr/addr/addrIPv4;Lorg/freertr/addr/addrIPv4;I)V D E isFull H I getMetric K LB suppressAddr K O PBunsuppressAddr R S needAdr U V  fromNetmask X YZnetworkLorg/freertr/addr/addrPrefix; \ ]^maskLorg/freertr/addr/addrType; ` aheadSize e g Y^ i j traffEngIDlorg/freertr/rtr/rtrOspfTe n op advertiseTe"(IILorg/freertr/pack/packHolder;)V kr st putGenTlv1!(Lorg/freertr/pack/packHolder;Z)V kv wx getTlvHandler()Lorg/freertr/enc/encTlv; z{| }"org/freertr/enc/encTlvvalTyp z "valSiz z valDat  toBuffer z putThis (Lorg/freertr/pack/packHolder;)V z <(Lorg/freertr/pack/packHolder;ILorg/freertr/addr/addrType;)V  peer  "teMetric  ` teBandwidth  " teAffinity  "teSrlg k  putGenTlv2$(Lorg/freertr/pack/packHolder;IJII)V  ip2ip4<(Lorg/freertr/addr/addrPrefix;)Lorg/freertr/addr/addrPrefix;   prefixSize (Lorg/freertr/addr/addrPrefix;)I  putCopy([BIII)Vorg/freertr/tab/tabRouteEntry   (Lorg/freertr/addr/addrType;I)V  ip4toIP  Zprefix z getBytes (Lorg/freertr/pack/packHolder;)Z  org/freertr/rtr/rtrOspfSrgetPref:(Lorg/freertr/enc/encTlv;Lorg/freertr/tab/tabRouteEntry;)V org/freertr/rtr/rtrOspfBr   amIdr   createNetLsa"(Lorg/freertr/rtr/rtrOspf4iface;)Vfl  B defOrigin   defaultRoute4()Lorg/freertr/addr/addrPrefix;  bestLorg/freertr/tab/tabRouteAttr;  "org/freertr/tab/tabRouteAttrorigin   org/freertr/tab/tabRoute$addTypebetter"Lorg/freertr/tab/tabRoute$addType;org/freertr/rtr/rtrBgpUtil   roumapIntoLorg/freertr/tab/tabListing;   roupolInto   prflstInto - addUpdatedEntry(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRoute;IILorg/freertr/tab/tabRouteEntry;ZLorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;)I - addUpdatedTable(Lorg/freertr/tab/tabRoute$addType;IILorg/freertr/tab/tabRoute;Lorg/freertr/tab/tabRoute;ZLorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;Lorg/freertr/tab/tabListing;)I - "(I)Lorg/freertr/tab/tabRouteEntry; '  "tag   createExtLsa#(Lorg/freertr/addr/addrPrefix;III)V   createSumLsa!(Lorg/freertr/addr/addrPrefix;I)V rs   - addF(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRouteEntry;ZZ)V  7routerComputedU  "aggrAs - f>(Lorg/freertr/addr/addrPrefix;)Lorg/freertr/tab/tabRouteEntry;   createTeLsaB(ILorg/freertr/rtr/rtrOspf4iface;Lorg/freertr/rtr/rtrOspf4neigh;)V  B teSuppress !"# $torg/freertr/rtr/rtrOspfRiputCapa !& ' putHstnam ) *+ segrouLab [Lorg/freertr/tab/tabLabelEntry; - .)algos 0 12putBaseX(Lorg/freertr/pack/packHolder;[Lorg/freertr/tab/tabLabelEntry;Lorg/freertr/tab/tabGen;)V !4 5 getOpaque 7 *8Lorg/freertr/tab/tabLabelEntry; :;< ="org/freertr/tab/tabLabelEntrylabel ? @AputAdj(I)[B C DEputRem(Lorg/freertr/addr/addrIPv4;)[B TG HI byteConcat([B[B)[B K LM createLnkLsa=(IILorg/freertr/addr/addrIPv4;Lorg/freertr/addr/addrIPv4;[B)V O PBbierEna R S"srIndex U VBsrPop X YZputPref(IZ)[B \ ]"brIndex _ `+bierLab b c"bierLen e f"brSub h Yi'([Lorg/freertr/tab/tabLabelEntry;III)[B k lBsrNode n op createPrfLsa%(ILorg/freertr/addr/addrPrefix;II[B)V r s" segrouIdx u v"bierIdx x y"bierSubD #| }clear   createRtrLsa   createNetLsas   createExtLsas   createSumLsas   createTeLsas   createRiLsa   createLnkLsas   createPrfLsas   advertiseLsasD Y  getPayload()Lorg/freertr/pack/packHolder;  msbGetW(I)I   getSkip  getAddr  getByte|  addConnN(Lorg/freertr/addr/addrType;Lorg/freertr/addr/addrType;IZZLjava/lang/String;)V   toNetmask  " distantInt  "distance  addPref>(Lorg/freertr/addr/addrType;Lorg/freertr/tab/tabRouteEntry;Z)V  msbGetD  " distantSum  " distantExt  getBase(Lorg/freertr/enc/encTlv;)I   addSegRouB !  getHstnam,(Lorg/freertr/enc/encTlv;)Ljava/lang/String;  addIdent0(Lorg/freertr/addr/addrType;Ljava/lang/String;)V  getAlgos*(Lorg/freertr/enc/encTlv;)Ljava/util/List;  addAlgo.(Lorg/freertr/addr/addrType;Ljava/util/List;)V  o checkPrfLsa   parsePrfTlv9(Lorg/freertr/enc/encTlv;)Lorg/freertr/tab/tabRouteEntry;  "bierBeg  addBierB  "rouSrc   addSegRouI=(Lorg/freertr/addr/addrType;Lorg/freertr/addr/addrPrefix;II)V  "bierHdr  addBierI>(Lorg/freertr/addr/addrType;Lorg/freertr/addr/addrPrefix;III)V  doWorkQ(Lorg/freertr/tab/tabGen;Lorg/freertr/addr/addrType;Lorg/freertr/addr/addrType;)Z  ) segrouUsdorg/freertr/tab/tabIndex ;  !(ILorg/freertr/addr/addrPrefix;)V   add2table5(Lorg/freertr/tab/tabGen;Lorg/freertr/tab/tabIndex;)Z     #org/freertr/tab/tabLabelEntry$owner ospf4srgb%Lorg/freertr/tab/tabLabelEntry$owner;  fwdCoreLorg/freertr/ip/ipFwd; :  setFwdCommon>(Lorg/freertr/tab/tabLabelEntry$owner;Lorg/freertr/ip/ipFwd;)V ;  fromIPv4addr(Lorg/freertr/addr/addrIPv4;)V   addNextHop(ILorg/freertr/addr/addrType;Lorg/freertr/addr/addrIP;Lorg/freertr/tab/tabRouteIface;Lorg/freertr/addr/addrIP;Lorg/freertr/tab/tabRouteIface;)V  !B seenMyself # $% getRoutes(Lorg/freertr/ip/ipFwd;Lorg/freertr/tab/tabLabelEntry$owner;[Lorg/freertr/tab/tabLabelEntry;Lorg/freertr/tab/tabGen;)Lorg/freertr/tab/tabRoute; -| ( )ecmp + , roumapFrom . / roupolFrom 1 2 prflstFrom 456 78org/freertr/ip/ipFwd commonLabel 9 :;routerDoAggregatess(ILorg/freertr/tab/tabRoute;Lorg/freertr/tab/tabRoute;Lorg/freertr/tab/tabLabelEntry;Lorg/freertr/addr/addrIPv4;I)V = >?getBierI"(II)Lorg/freertr/tab/tabLabelBier; A BCbierResLorg/freertr/tab/tabLabelBier; E FGlistReachablility(Z)Ljava/lang/String;| |Kjava/util/ArrayList J N .OLjava/util/List;Qorg/freertr/rtr/rtrAlgo S T()Lorg/freertr/spf/spfCalc; PV W"num Y Z[flexExcl(I)Lorg/freertr/tab/tabGen; ] E^'(ILjava/lang/String;)Ljava/lang/String; ]arou cde fjava/util/List(Ljava/lang/Object;)Z h irouterCreateComputed k lor D 8o pmisleep r sver u w xyandIf(II)I { | generateLsas ~  calculateSpf   genLsas   purgeLsasjava/lang/Exception   traceback(Ljava/lang/Throwable;)V  and Djava/lang/Thread  (Ljava/lang/Runnable;)V  start  !(Lorg/freertr/rtr/rtrOspf4area;)Ijava/lang/Comparablejava/lang/Runnable Signature7Lorg/freertr/tab/tabGen;OLorg/freertr/tab/tabGen;>;5Lorg/freertr/tab/tabRoute;GLjava/util/List;>;TLorg/freertr/tab/tabListing;SLorg/freertr/tab/tabListing;SLorg/freertr/tab/tabListing;6Lorg/freertr/spf/spfCalc;(Lorg/freertr/rtr/rtrOspf4;I)VCodeLineNumberTabletoString()Ljava/lang/String; StackMapTable=(Lorg/freertr/addr/addrPrefix;)I@(Lorg/freertr/addr/addrPrefix;III)V>(Lorg/freertr/addr/addrPrefix;I)V@(ILorg/freertr/addr/addrPrefix;II[B)VT(Lorg/freertr/enc/encTlv;)Lorg/freertr/tab/tabRouteEntry; schedWorkrunstartNowstopNow(Ljava/lang/Object;)IMethodParameters\Ljava/lang/Object;Ljava/lang/Comparable;Ljava/lang/Runnable; SourceFilertrOspf4area.javaBootstrapMethods ospf area generate lsa advertise lsas in area purge lsas in area purge generate lsas in area calculate spf on area  unreachable: reachable:algo unreachable:algo reachable:started area stopped area   E$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; InnerClassesorg/freertr/util/statestatesaddTypeowner%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup! !"())BC67.O+BIBLBABOBRBPBLBB2,/,)=>#Z**Y *Y*+**#Y%&*#Y%**-Y/14*8Y:;*?. !&1<ITY" *CN*+*+  <<*G*J<*J<*M*? *P@<" 5:  $S7[e7+] +a+]+a*&+dY: +hi+i`i +lp+u{~+*&+WN "#).;@ITXabhtx#%Y @p*~<=*&H*&YN-/-***-d *-=**&**YN- *-*b!-14EHSV]`fs    ' Y Y o<*a*M,E>,8,:* Ä:#&3@EHW Z"bhn% #z̲p*~S[ee@aB6*&6*&Y:tai]#pu~*&W?**]!**d*q*r+,./$0'152C3H4K6S7V9`:f;s=}>@ACDFGIJ1LMO$  Y    H-»YY:,˵*˵-ҵ*ڵ**W& YZ [\]+^4_=`GaopD-----Y::T* -. kl mno!p&q-r2s:tCuABZ*+-+++ + + xy z{|#})~ % *` lhڻYL=* =* =*J=++++=*a*N-E-*d7- "-&6*),6--)-03*+-0-6:?6-V-::*(C*+F-6:G?*J -M -Ni- *Q-Q&Y: T*+-6:?*+-6:-W[;:-&?+_=+d l**+4  '+27=CIN^mqt  28MPehox3# !  )# YM,+W[;:,*,>+J+:/*C,F,*+6:,F +1>KPSbempz3 rY:+[>bb>o c>dd d*J 66*+fF "&,29AJQX_bq ,>=bb=YN-+[-d-*+f-*  $*0= HY:,*h*m-qu:y~-,0-F,6:--,,,,*mR   " * +9>DJN^kr,+I 'z (op ,:Y:f`Y::   T * V!"#$#%*&2'=(I)U*]+b,i-t.z/012345LM Y:xd- Y::T* J8 9:;%<,=8>@?E@LAWB]CfDkErFxGHIoc$+ M+,,3L M OPQ R"T  *+yYMYN-+Y-+3:,`6+~Y:++~d+~d¸uL++,+,ç,RXY [\]#^3_<`EaNbPd[enfzghjkmnp" E z2 _<*Q*M,5,*d', ,ƚ*,Ʉ6 tuv#w&y1z4|F}IPSXt^#   *G-Yͷ1L*ϙ6YM,Ҹ,oڲ+,***W+****W=+ 6+N-#*--ִ-ִ-ִȱB",5Mku{D- * *G *J *-Y1L-Y1M>**:*J MN| fY:W &,  *+***WD>* X*:=ִ*+,+***W>+ ,+:*ִұ(  !"-8HX]`wz -0<?X^hotwF --% I"*M*<=**N---*d- j--*-V6-G-:+*C*-Ev!047>ALOadkux' # ! a*M*? *PYL+*M *?+%*P*(+*(*,/* 3+*  (/3DV` "*P<=**N--*d- 6-}-:a*OCD6969>:BF:*F-6:J}-n   ) -0;>PSbpux!"$%& )& # ! 5*P *N<=**N-- :-Q-Q-TW:-[#*^*a-[-dgF:=-*d 666-j @6*-Wm@*G *J=* *N-z-ִ*i:-ִq-ִqW:-ִt)*^*a-ִt-ִwgF:*-me*,-/0!1024375I6L8Q9X:e<l=?@CDFHIJL0NOQRSTVWYZ([5]?^e`laocQeJ#&    / |>p*z~**{*~********6 hiklm!n%o)p-q1r5s9t=u[ Ҳp*~S[e a@Y*N6*&*&Y:ra]]: ȪN 6#NNNt 6  6   2  %Y: Y:      6  6  6   hDl- , u- , udY  :Y:m**- ͧѻY: Y:Y:m**- Y:  N   - λY: Y:Y: 6  b~n**-- b~Y: Y:Y: 6  b~*õ*   c~p-o-ϸ3Fu:    6 - - Ͷ- ն٧*ݙu:   n* :-ִ-ִqִ~-ִtִִwl-*W*P*(*#Y%*6*G*:(*d *HQ@*YQY;YW*(Q2 *-;03;Y:0-&06g:J*8-;Y:-GF-* *(*":*4&'*4***-*0W**4*4*38*N*-<@*@p-DH~-DI~*-*JYLM6*,*,P:*RN--UX*W6**:*d -;03;Y:  0-&0 6  g :  J *8 -;Y:   - G F  -*":p'U-D\~U-D_~-Y`1:'***-*0W**38*MbW)*g"xy{|(}7~EJMU_bi 4Y\%/>JV\enqy-09AT]go} "3<?DNQY^ar}+.ADS v!#$%'()+,-.01 3467'8>+DJ;e<l=>?@BDEFHIJKLMO P6QHRYS^TaVmWpYZ\]^`abdefgijlm opq4d:Q@tPuVvhwzyz{|J~OF!YA  Yj Y Y Y Y Y`  Ym  Y  Y  Y  Yz 0 z   YzZ ,'K)# )m-'P ')# )9I 3* xjW*; dp*m~* jW<*;'nW* q=* t>* vW~Fp0>~*z ~*}@~ **M,* Wp*~ILn(08CILSX_cjnu}#  .  S"* t~* jWY*  ! & * W  A! *+ !V"!@-@ :@