7  java/lang/Object()V   (net/luminis/quic/cid/ConnectionIdManagermaxCidsI  net/luminis/quic/VersionQUIC_version_1Lnet/luminis/quic/Version;   quicVersion  originalDestinationConnectionId[B   connectionIdLength    maxPeerCids ! "#connectionRegistry2Lnet/luminis/quic/server/ServerConnectionRegistry; % &'senderLnet/luminis/quic/send/Sender; ) *+closeConnectionCallbackLjava/util/function/BiConsumer;-/net/luminis/quic/cid/SourceConnectionIdRegistry /01 23java/lang/IntegervalueOf(I)Ljava/lang/Integer; ,5 63(Ljava/lang/Integer;Lnet/luminis/quic/log/Logger;)V 8 9: cidRegistry1Lnet/luminis/quic/cid/SourceConnectionIdRegistry; ,< =currentConnectionId ? @initialConnectionIdB4net/luminis/quic/cid/DestinationConnectionIdRegistry AD E"([BLnet/luminis/quic/log/Logger;)V G HIpeerCidRegistry6Lnet/luminis/quic/cid/DestinationConnectionIdRegistry; K LinitialPeerConnectionId ,N OPgetConnectionIdlength()I ,R ST getCurrent()[BVjava/security/SecureRandom U UY Z[ nextBytes([B)V]*net/luminis/quic/cid/ConnectionIdManager$1 \_ `-(Lnet/luminis/quic/cid/ConnectionIdManager;)V b cd sendNewCid*(I)Lnet/luminis/quic/cid/ConnectionIdInfo; fgh ij1net/luminis/quic/QuicConstants$TransportErrorCodePROTOCOL_VIOLATION3Lnet/luminis/quic/QuicConstants$TransportErrorCode; fl mnvalueSpHnew connection id frame not allowed when using zero-length connection ID rst uvjava/util/function/BiConsumeraccept'(Ljava/lang/Object;Ljava/lang/Object;)V xyz {P+net/luminis/quic/frame/NewConnectionIdFramegetRetirePriorTo x} ~P getSequenceNr f jFRAME_ENCODING_ERROR$exceeding active connection id limit A  connectionIdsLjava/util/Map;   java/util/Map containsKey(Ljava/lang/Object;)Z x TgetConnectionId x TgetStatelessResetToken A registerNewConnectionId(I[B[B)Z   sendRetireCid(Ljava/lang/Integer;)V get&(Ljava/lang/Object;)Ljava/lang/Object;%net/luminis/quic/cid/ConnectionIdInfo  java/util/Arraysequals([B[B)Z&different cids or same sequence number A retireAllBefore(I)Ljava/util/List; uI(Lnet/luminis/quic/cid/ConnectionIdManager;)Ljava/util/function/Consumer;  java/util/ListforEach (Ljava/util/function/Consumer;)V A getActiveConnectionIds()Ljava/util/List; Psize f jCONNECTION_ID_LIMIT_ERROR }.net/luminis/quic/frame/RetireConnectionIdFrame , PgetMaxSequenceNr%invalid connection ID sequence number , (I)[B#cannot retire current connection ID , retireConnectionId  [0net/luminis/quic/server/ServerConnectionRegistryderegisterConnectionId , / min(II)I ,  generateNew)()Lnet/luminis/quic/cid/ConnectionIdInfo; , T getActive registerAdditionalConnectionId([B[B)V PgetSequenceNumber x !(Lnet/luminis/quic/Version;II[B)V   net/luminis/quic/EncryptionLevelApp"Lnet/luminis/quic/EncryptionLevel;  net/luminis/quic/send/Sendersendd(Lnet/luminis/quic/frame/QuicFrame;Lnet/luminis/quic/EncryptionLevel;Ljava/util/function/Consumer;)V / PintValue (Lnet/luminis/quic/Version;I)V  of$(Ljava/lang/Object;)Ljava/util/List; AR , registerUsedConnectionId([B)Z   retrySourceCid A [replaceInitialConnectionId A [setInitialStatelessResetToken A isStatelessResetToken , getAll()Ljava/util/Map; A A TuseNext A u \(Lnet/luminis/quic/cid/ConnectionIdManager;Ljava/lang/Integer;)Ljava/util/function/Consumer; " MAX_CIDS_PER_CONNECTION ConstantValue SignatureFLjava/util/function/BiConsumer;([B[BIILnet/luminis/quic/server/ServerConnectionRegistry;Lnet/luminis/quic/send/Sender;Ljava/util/function/BiConsumer;Lnet/luminis/quic/log/Logger;)VCodeLineNumberTableLocalVariableTablethis*Lnet/luminis/quic/cid/ConnectionIdManager;initialClientCidlogLnet/luminis/quic/log/Logger;LocalVariableTypeTable StackMapTable5net/luminis/quic/log/Logger([B[BIILnet/luminis/quic/server/ServerConnectionRegistry;Lnet/luminis/quic/send/Sender;Ljava/util/function/BiConsumer;Lnet/luminis/quic/log/Logger;)Vq(Ljava/lang/Integer;ILnet/luminis/quic/send/Sender;Ljava/util/function/BiConsumer;Lnet/luminis/quic/log/Logger;)VLjava/lang/Integer;(Ljava/lang/Integer;ILnet/luminis/quic/send/Sender;Ljava/util/function/BiConsumer;Lnet/luminis/quic/log/Logger;)VhandshakeFinishediprocess0(Lnet/luminis/quic/frame/NewConnectionIdFrame;)VaddedZretiredLjava/util/List;frame-Lnet/luminis/quic/frame/NewConnectionIdFrame;%Ljava/util/List;5(Lnet/luminis/quic/frame/RetireConnectionIdFrame;[B)V0Lnet/luminis/quic/frame/RetireConnectionIdFrame;destinationConnectionId sequenceNr retiredCidsetMaxPeerConnectionIds(I)VregisterPeerCidLimit peerCidLimit retirePriorTocidInfo'Lnet/luminis/quic/cid/ConnectionIdInfo;retransmitFrame%(Lnet/luminis/quic/frame/QuicFrame;)V"Lnet/luminis/quic/frame/QuicFrame;seqNr()Ljava/util/List<[B>;getActivePeerConnectionIdsgetCurrentPeerConnectionIdgetInitialConnectionId"getOriginalDestinationConnectionIdvalidateInitialPeerConnectionId connectionIdregisterConnectionIdInUsesendNewConnectionIdregisterRetrySourceConnectionIdvalidateRetrySourceConnectionIdregisterInitialPeerCidstatelessResetTokendatagetConnectionIdLengthgetAllConnectionIdsM()Ljava/util/Map;getAllPeerConnectionIds nextPeerIdsequenceNumbergetCurrentConnectionIdlambda$retireConnectionId$18(Ljava/lang/Integer;Lnet/luminis/quic/frame/QuicFrame;)V lostFramelambda$process$0 SourceFileConnectionIdManager.java NestMembersBootstrapMethodss tuv wx"java/lang/invoke/LambdaMetafactory metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;z(Ljava/lang/Object;)V| } m  QRR  jk InnerClassesnet/luminis/quic/QuicConstantsTransportErrorCode%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!# $% "#&'*+&'9:HI@LB B B ()m z*** *,*** *$*(*,Y.47**7;>++*AY+CF*+J*F*J*FL8 <MNO P&Q,R2SCTNVWWeXm\r]y_+\ z,-z.zz z z"#z&'z*+z/01 z*'2!m 33r4 &67)&*** **-$*,Y+47**7M**7Q>*(*UYW*X*AY*CF**J*\Y*^ *>i8 <jkl(m3n>oDtLuZwkxsz+>,-8 &'*+/01 *'&9:)f<**aW* +; ,-2 <=)*F*(ek.oq+w+|*(k.q*F+|.)*F+|++=*+|.;*F+|.+*(ek.q+w*F+wM,**F**(k.q*V';<Rfjux+*f>? @A,-BC1  @D2 87'<E)+*7Ť*(ek.ȹq+>*7,*(ek.͹q*7:'* *7׹* *aW*6 "#(7KLV[fy+4,-BFG(XH V*I2 #(23JK)>** +,- LK)C *ص*  + ,- M cd)D*7M* *7,*$xY*,,*,*B+ D,-DN <OPQR)L*$+**  +,-BS)Z"*$Y*+** !+",-"T8)2*7װ*+ ,-&UV)Q*F *F*#$'+ ,-2&UWT)N*F *F*014+ ,-2XT)/*>*>+ ,-YT)/**G+ ,-Z)= +*J*P+ ,- [\[)n%*7+*7׹* *aW*Y ^_$b+%,-%[2$]d):*a*j+,-N ^[)>*+ * rs+,-[_)= * +*{+ ,- [`[)A *F+ * + ,- [[)A *F+* + ,- a)= *F+*+ ,- bcP)/**+ ,-d)2*7*+ ,-&ef)2*F*+ ,-&egT)2*F*+ ,-)k/*F+W*$Y*+*+* .+/,-/h8iT)2*7*+ ,-jk)D*+!*+ ,-h8lSm):*+*+,-T8nop\q ry{~ryry\f@