7  (net/luminis/quic/send/AbstractSenderTest()V#net/luminis/quic/GlobalAckGenerator net/luminis/quic/send/Sender  org/mockito/Mockitomock%(Ljava/lang/Class;)Ljava/lang/Object;  !(Lnet/luminis/quic/send/Sender;)V  /net/luminis/quic/send/GlobalPacketAssemblerTest ackGenerator%Lnet/luminis/quic/GlobalAckGenerator;&net/luminis/quic/send/SendRequestQueue  sendRequestQueues)[Lnet/luminis/quic/send/SendRequestQueue; !"# $% net/luminis/quic/EncryptionLevelvalues%()[Lnet/luminis/quic/EncryptionLevel; ' (%(Lnet/luminis/quic/EncryptionLevel;)V*+net/luminis/quic/send/GlobalPacketAssembler,net/luminis/quic/VersionHolder ./0 12net/luminis/quic/Version getDefault()Lnet/luminis/quic/Version; +4 5(Lnet/luminis/quic/Version;)V )7 8q(Lnet/luminis/quic/VersionHolder;[Lnet/luminis/quic/send/SendRequestQueue;Lnet/luminis/quic/GlobalAckGenerator;)V : ;<globalPacketAssembler-Lnet/luminis/quic/send/GlobalPacketAssembler; !> ?@Initial"Lnet/luminis/quic/EncryptionLevel; !B CDordinal()IF"net/luminis/quic/frame/CryptoFrame EH I(Lnet/luminis/quic/Version;[B)VK LMaccept()Ljava/util/function/Consumer; O PQ addRequestB(Lnet/luminis/quic/frame/QuicFrame;Ljava/util/function/Consumer;)V )S TUassemble(II[B[B)Ljava/util/List; WXY Z[java/util/Liststream()Ljava/util/stream/Stream;] ^_ applyAsInt$()Ljava/util/function/ToIntFunction; abc dejava/util/stream/StreammapToInt@(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream; ghi jDjava/util/stream/IntStreamsum lmn oporg/assertj/core/api/Assertions assertThat/(I)Lorg/assertj/core/api/AbstractIntegerAssert; rst up*org/assertj/core/api/AbstractIntegerAssertisGreaterThanOrEqualToK !x y@ Handshake{#net/luminis/quic/frame/MaxDataFrame( z (J)VK ^U(Lnet/luminis/quic/send/GlobalPacketAssemblerTest;)Ljava/util/function/ToIntFunction; r pisLessThanOrEqualTo ) enableAppLevel ! @AppK@   org/assertj/core/data/PercentagewithPercentage%(D)Lorg/assertj/core/data/Percentage; r  isCloseToQ(ILorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractIntegerAssert;net/luminis/quic/MockPacket '(IILnet/luminis/quic/EncryptionLevel;)V  packetReceived'(Lnet/luminis/quic/packet/QuicPacket;)V   addAckRequestK l o3(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;  org/assertj/core/api/ListAsserthasSize0(I)Lorg/assertj/core/api/AbstractIterableAssert;  setInitialPacketNumber&(Lnet/luminis/quic/EncryptionLevel;I)V apply()Ljava/util/function/Function; K  P>(Ljava/util/function/Function;ILjava/util/function/Consumer;)V  K ! @ZeroRTT"net/luminis/quic/frame/StreamFrame (I[BZ)V K KK  ?net/luminis/quic/PnSpaceLnet/luminis/quic/PnSpace; ) stop(Lnet/luminis/quic/PnSpace;)V isEmptyK W get(I)Ljava/lang/Object;net/luminis/quic/send/SendItem  getPacket&()Lnet/luminis/quic/packet/QuicPacket;  "net/luminis/quic/packet/QuicPacket getFrames()Ljava/util/List;java/lang/Classnet/luminis/quic/frame/AckFrame doesNotHaveAnyElementsOfTypesA([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractIterableAssert;KK a map8(Ljava/util/function/Function;)Ljava/util/stream/Stream;  java/util/stream/CollectorstoList()Ljava/util/stream/Collector; a collect0(Ljava/util/stream/Collector;)Ljava/lang/Object;  getEncryptionLevel$()Lnet/luminis/quic/EncryptionLevel; l o/(Z)Lorg/assertj/core/api/AbstractBooleanAssert;    getPacketNumber()Ljava/lang/Long; l o;(Ljava/lang/Long;)Lorg/assertj/core/api/AbstractLongAssert;  'org/assertj/core/api/AbstractLongAssert isGreaterThanG(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;K E  (Lnet/luminis/quic/Version;J[B)V W of$(Ljava/lang/Object;)Ljava/util/List;   !addProbeRequest(Ljava/util/List;)V]K' ()test ()Ljava/util/function/Predicate; + ,-anyMatchM(Ljava/util/function/Predicate;)Lorg/assertj/core/api/AbstractIterableAssert;'1(net/luminis/quic/frame/PathResponseFrame 0HK]] K W9 :Dsize r< =p isEqualTo ? @AestimateLength(I)I!K"K lE oF7(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;H)net/luminis/quic/packet/ShortHeaderPacket JKL MN!org/assertj/core/api/ObjectAssert isInstanceOf8(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;P!net/luminis/quic/test/FieldReader RST UVjava/lang/ObjectgetClass()Ljava/lang/Class;XpacketAssembler Z [\getDeclaredField-(Ljava/lang/String;)Ljava/lang/reflect/Field; O^ _.(Ljava/lang/Object;Ljava/lang/reflect/Field;)V Oa bcread()Ljava/lang/Object;e[Ljava/lang/Object;g%net/luminis/quic/send/PacketAssemblerinextPacketNumber klm nojava/lang/IntegervalueOf(I)Ljava/lang/Integer; qrs tu!net/luminis/quic/test/FieldSettersetField@(Ljava/lang/Object;Ljava/lang/reflect/Field;Ljava/lang/Object;)V kw xDintValue#' a{ |}allMatch!(Ljava/util/function/Predicate;)Z$'   levelKeys[Lnet/luminis/quic/crypto/Aead;  generatePacketBytes"(Lnet/luminis/quic/crypto/Aead;)[B  aeadLnet/luminis/quic/crypto/Aead;CodeLineNumberTableLocalVariableTablethis1Lnet/luminis/quic/send/GlobalPacketAssemblerTest;initObjectUnderTestiI StackMapTableRuntimeVisibleAnnotations"Lorg/junit/jupiter/api/BeforeEach;'initialPacketMustBeGreaterThan1200BytespacketsLjava/util/List;datagramLengthLocalVariableTypeTable2Ljava/util/List;Lorg/junit/jupiter/api/Test;7packetContainingInitialPacketMustBeGreaterThan1200BytesnonInitialPacketHasMiniumSize+testInitialAckIsCombinedWithHandshakePacket+largestPacketMustBeSmallerThenMaxPacketSize Exceptionsjava/lang/Exception-multiplePacketsMustBeSmallerThenMaxPacketSize5whenLevelIsAbandonedNoPacketsAreAssembledForThatLevel)zeroRttPacketsShouldNeverContainAckFrames-zeroRttAndOneRttShouldNotUseSamePacketNumbers sendItems6Ljava/util/List;8totalSizeOfAssembledPacketsShouldBeLessThenMaxPacketSizedatagramPayloadSize4whenProbeDataIsLargerThenRemainingCwndItShouldBeUsed'whenCwndIsMinimalProbeShouldStillBeSent2packetContainingPathResponseMustBeAtLeast1200Bytes+probeWithDataShouldNotExceedMaxDataframSize3generatedDatagramShouldBeSmallerThanMaxDatagramSizemaxDatagramSizeMifInitialPacketsCannotStatisfyTheMinimum1200bytesRequirementItShouldNotBeSend8whenAppLevelNotEnabledAssemblerShouldNotCreateAppPackets2whenAppLevelEnabledAssemblerShouldCreateAppPacketslevelpnpacketAssemblersLjava/lang/Object;packetAssember'Lnet/luminis/quic/send/PacketAssembler;lambda$whenProbeDataIsLargerThenRemainingCwndItShouldBeUsed$26>lambda$whenProbeDataIsLargerThenRemainingCwndItShouldBeUsed$25>lambda$whenProbeDataIsLargerThenRemainingCwndItShouldBeUsed$24>lambda$whenProbeDataIsLargerThenRemainingCwndItShouldBeUsed$23Blambda$totalSizeOfAssembledPacketsShouldBeLessThenMaxPacketSize$22'(Lnet/luminis/quic/packet/QuicPacket;)IBlambda$totalSizeOfAssembledPacketsShouldBeLessThenMaxPacketSize$21Blambda$totalSizeOfAssembledPacketsShouldBeLessThenMaxPacketSize$207lambda$zeroRttAndOneRttShouldNotUseSamePacketNumbers$197lambda$zeroRttAndOneRttShouldNotUseSamePacketNumbers$187lambda$zeroRttAndOneRttShouldNotUseSamePacketNumbers$173lambda$zeroRttPacketsShouldNeverContainAckFrames$16?lambda$whenLevelIsAbandonedNoPacketsAreAssembledForThatLevel$157lambda$multiplePacketsMustBeSmallerThenMaxPacketSize$14packetgeneratedBytes[B7lambda$multiplePacketsMustBeSmallerThenMaxPacketSize$137lambda$multiplePacketsMustBeSmallerThenMaxPacketSize$127lambda$multiplePacketsMustBeSmallerThenMaxPacketSize$115lambda$largestPacketMustBeSmallerThenMaxPacketSize$104lambda$largestPacketMustBeSmallerThenMaxPacketSize$94lambda$largestPacketMustBeSmallerThenMaxPacketSize$84lambda$testInitialAckIsCombinedWithHandshakePacket$7&lambda$nonInitialPacketHasMiniumSize$6&lambda$nonInitialPacketHasMiniumSize$5@lambda$packetContainingInitialPacketMustBeGreaterThan1200Bytes$4@lambda$packetContainingInitialPacketMustBeGreaterThan1200Bytes$3@lambda$packetContainingInitialPacketMustBeGreaterThan1200Bytes$20lambda$initialPacketMustBeGreaterThan1200Bytes$10lambda$initialPacketMustBeGreaterThan1200Bytes$0 SourceFileGlobalPacketAssemblerTest.javaBootstrapMethods  "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;(Ljava/lang/Object;)V  (Ljava/lang/Object;)I              &(Ljava/lang/Object;)Ljava/lang/Object;  ! " $ % ' ( * + - . 0 1 3 4 6 7 9 : < = ? @ C D F G I J M N P Q S(Ljava/lang/Object;)ZU V Y Z \ ] _ ` b c e f h i k l n o q r t u x y  InnerClasses|%java/lang/invoke/MethodHandles$Lookup~java/lang/invoke/MethodHandlesLookup ;<:/*& X*Y *<*Y 2&S*)Y+Y-3**69./0"140:3W4X W*=A2EY-$GJN*9pRL+V\`f=kqW8!:5<K=V> W5"K  5"*=A2EY-$GvN*wA2zY|~N*9pRL+V*`f=kqWkqжW. B!C>ERG^HcIiJtK{LMN R4i R4d*9*A2EY-$GN*9pRL+V*`f=k9WRS(U<WSXcY d<(S <(]*Y =*=A2*wA2zY|~N*9pRL+W]^"_?aSc\d]S  S [**A2 *9pRL+V*`f=kжW"h i$n8pDqIvOwZx [8#O  8#;*=A2EY-GN<M*A2YźN*A2YźN*9pRL+V*`f=kжW. |!})~Lm}s*#P#  # #OC*=A2zY|~N*9̶*9pRL+ձ';BC; ;|*Y *9*A2YźN*9pRL+W+ݶ߶YSW>R[{|R* R*g*9*A2YźN*A2YźN*9pRL+VWM,W,W,  , W& *Ma} av}Zav}ZWW@@*A2YźN*wA2EY- *9pRL+V"WM,V#`f>kжW#DXt*X>t" X>t"*A2Yź$N*wA2EY- *9RL+V%WM,&*W#DXt X*tX*t]*wA2EY- *9RL+V.WM,/*W!3O\ ]3*O3*O^*9*A20Y-23N*9pRL+V4`f=kqW(<R] ^<"R  <"y*Y =*=A2*wA2EY- *9pRL+V5`f=kжW"CWmx yW"m  W"_*9*A26 7<*9pRM,8k;W,ݶ>kW!%7E^ _%:7( 7(<*=A2EY-{G<*9pRM,ձ " 4 ;  <"4 4I*A2*A2YźBN*9pRL+ձ-AHIA A[*A2YźCN*9*9pRL+W+ݶ߸DGIW&":%C&Z'[:! :!?OY*9*9QWY]`N-d+A2f:QhYjp*+*,>-4??@?#* +  +  +  =Y*v dŰ  3 *>   3 *>   +  >*Vyz  /*E  /*߰  >*V~z  /*E  /*߰  +  0*>  /*߰  +  /*߰  +  +  +  + i+M,*,A2N-* +  +~  +| i+M,*,A2N-rst* +l  <Y*vdŰj : +_ A +*W   +S L+*+߶A2H +C  +B  3 *><   +8 t%  #&),/258;>ABEAHKLOARTWXAR[W^adgjmpRsvRwvz {}