Êþº¾Eã  java/lang/Object()V)java/util/concurrent/atomic/AtomicBoolean   0net/minecraft/world/level/chunk/storage/IOWorkershutdownRequested+Ljava/util/concurrent/atomic/AtomicBoolean;java/util/LinkedHashMap    pendingWritesLjava/util/SequencedMap;8it/unimi/dsi/fastutil/longs/Long2ObjectLinkedOpenHashMap   regionCacheForBlender:Lit/unimi/dsi/fastutil/longs/Long2ObjectLinkedOpenHashMap;9net/minecraft/world/level/chunk/storage/RegionFileStorage ! "S(Lnet/minecraft/world/level/chunk/storage/RegionStorageInfo;Ljava/nio/file/Path;Z)V $ %&storage;Lnet/minecraft/world/level/chunk/storage/RegionFileStorage;(5net/minecraft/util/thread/PriorityConsecutiveExecutor *+, -.9net/minecraft/world/level/chunk/storage/IOWorker$Priorityvalues>()[Lnet/minecraft/world/level/chunk/storage/IOWorker$Priority; 012 34net/minecraft/util/UtilioPool!()Lnet/minecraft/TracingExecutor; 678 9:9net/minecraft/world/level/chunk/storage/RegionStorageInfotype()Ljava/lang/String;< =>makeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String; '@ A5(ILjava/util/concurrent/Executor;Ljava/lang/String;)V C DEconsecutiveExecutor7Lnet/minecraft/util/thread/PriorityConsecutiveExecutor;G"net/minecraft/world/level/ChunkPos FI JKx()I FM NKz FP Q(II)V FS TK getRegionX FV WK getRegionZ Y Z[getOrCreateOldDataForRegion,(II)Ljava/util/concurrent/CompletableFuture; ]^_ `a&java/util/concurrent/CompletableFuturejoin()Ljava/lang/Object;cjava/util/BitSet be fgisEmpty()Z Fi jk minFromRegion((II)Lnet/minecraft/world/level/ChunkPos; mno pqjava/lang/Mathmax(II)I ms tqmin bv wxget(I)Z Fz {|pack(II)J ~ €getAndMoveToFirst(J)Ljava/lang/Object; ‚ ƒ[createOldDataForRegion … †‡putAndMoveToFirst'(JLjava/lang/Object;)Ljava/lang/Object; ‰ ŠKsize Œ �a removeLast� w�S(Lnet/minecraft/world/level/chunk/storage/IOWorker;II)Ljava/util/function/Supplier; 0’ “4backgroundExecutor ]• –— supplyAsyncf(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;™ DataVersion ›œ� žŸnet/minecraft/nbt/CompoundTaggetIntOr(Ljava/lang/String;I)I¡%net/minecraft/util/datafix/DataFixers£ blending_data ›¥ ¦§ getCompound((Ljava/lang/String;)Ljava/util/Optional; ©ª« ¬gjava/util/Optional isPresent® w¯>(Lnet/minecraft/nbt/CompoundTag;)Ljava/util/function/Supplier; ± ²³storek(Lnet/minecraft/world/level/ChunkPos;Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;µ w¶’(Lnet/minecraft/world/level/chunk/storage/IOWorker;Ljava/util/function/Supplier;Lnet/minecraft/world/level/ChunkPos;)Ljava/util/function/Supplier; ¸ ¹º submitTaskG(Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture; ¼½¾ ¿Àjava/util/function/Functionidentity()Ljava/util/function/Function; ] ÃÄ thenComposeG(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;Æ wÇ›(Lnet/minecraft/world/level/chunk/storage/IOWorker;Lnet/minecraft/world/level/ChunkPos;)Lnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier; É ÊËsubmitThrowingTaskm(Lnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier;)Ljava/util/concurrent/CompletableFuture;Í wÎQ(Lnet/minecraft/world/level/chunk/storage/IOWorker;)Ljava/util/function/Supplier;Ð ÑÒapplyQ(Lnet/minecraft/world/level/chunk/storage/IOWorker;)Ljava/util/function/Function;ÐÕ wÖ¿(Lnet/minecraft/world/level/chunk/storage/IOWorker;Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/StreamTagVisitor;)Lnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier; *Ø ÙÚ FOREGROUND;Lnet/minecraft/world/level/chunk/storage/IOWorker$Priority; *Ü ÝKordinal ß àáaccept”(Lnet/minecraft/world/level/chunk/storage/IOWorker;Lnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier;)Ljava/util/function/Consumer; 'ã äåscheduleWithResultH(ILjava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture; ç àèn(Lnet/minecraft/world/level/chunk/storage/IOWorker;Ljava/util/function/Supplier;)Ljava/util/function/Consumer; êëì íîjava/util/SequencedMappollFirstEntry()Ljava/util/Map$Entry; ðñò óajava/util/Map$EntrygetKey ðõ öagetValueø=net/minecraft/world/level/chunk/storage/IOWorker$PendingStore ú ûürunStoref(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/world/level/chunk/storage/IOWorker$PendingStore;)V þ ÿtellStorePending:net/minecraft/util/thread/StrictQueue$RunnableWithPriority * Ú BACKGROUND  runH(Lnet/minecraft/world/level/chunk/storage/IOWorker;)Ljava/lang/Runnable;   (ILjava/lang/Runnable;)V ' schedule(Ljava/lang/Runnable;)V ÷ dataLnet/minecraft/nbt/CompoundTag;  writeF(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/CompoundTag;)V ÷ result(Ljava/util/concurrent/CompletableFuture; ] complete(Ljava/lang/Object;)Z!java/lang/Exception # $%LOGGERLorg/slf4j/Logger;'Failed to store chunk {} )*+ ,-org/slf4j/Loggererror9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V ]/ 01completeExceptionally(Ljava/lang/Throwable;)Z 3 45 compareAndSet(ZZ)Z 7 8waitForShutdown ': ;close :>Failed to close storage )@ ,A*(Ljava/lang/String;Ljava/lang/Throwable;)V *C DÚSHUTDOWN F àG()Ljava/util/function/Consumer; I JKinfo=()Lnet/minecraft/world/level/chunk/storage/RegionStorageInfo; MNO PQnet/minecraft/util/UnitINSTANCELnet/minecraft/util/Unit; S wg UVW wajava/util/function/Supplier YVZAnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier ê\ w]&(Ljava/lang/Object;)Ljava/lang/Object; ›_ `a acceptAsRoot'(Lnet/minecraft/nbt/StreamTagVisitor;)V c de scanChunkK(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/StreamTagVisitor;)VgFailed to bulk scan chunk {} )i j-warn l wm()Ljava/util/function/Supplier;o wpw(Lnet/minecraft/world/level/chunk/storage/IOWorker;)Lnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier; r sflushuFailed to synchronize chunks )w jA êy -z()Ljava/util/Collection; |}~ €java/util/Collectionstream()Ljava/util/stream/Stream;‚ ÑÀ „…† ‡ˆjava/util/stream/Streammap8(Ljava/util/function/Function;)Ljava/util/stream/Stream;Š Ñ‹"()Ljava/util/function/IntFunction; „� Ž�toArray5(Ljava/util/function/IntFunction;)[Ljava/lang/Object;‘)[Ljava/util/concurrent/CompletableFuture; ]“ ”•allOfS([Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture; ÷— ˜™copyData!()Lnet/minecraft/nbt/CompoundTag; ©› œ� ofNullable((Ljava/lang/Object;)Ljava/util/Optional; Ÿ  ¡readE(Lnet/minecraft/world/level/ChunkPos;)Lnet/minecraft/nbt/CompoundTag;£Failed to read chunk {}¥ Ѧ>(Lnet/minecraft/nbt/CompoundTag;)Ljava/util/function/Function; ê¨ ©ªcomputeIfAbsentC(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; ÷¬ ­"(Lnet/minecraft/nbt/CompoundTag;)V F¯ °k maxFromRegion b F³ ´µ rangeClosedc(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/world/level/ChunkPos;)Ljava/util/stream/Stream;· à¸c(Lnet/minecraft/world/level/chunk/storage/IOWorker;Ljava/util/BitSet;)Ljava/util/function/Consumer; „º »¼forEach (Ljava/util/function/Consumer;)V¾(net/minecraft/nbt/visitors/CollectFieldsÀ(net/minecraft/nbt/visitors/FieldSelector ÂÃÄ ÅÆnet/minecraft/nbt/IntTagTYPELnet/minecraft/nbt/TagType; ¿È É0(Lnet/minecraft/nbt/TagType;Ljava/lang/String;)V ›à ½Ì Í.([Lnet/minecraft/nbt/visitors/FieldSelector;)V Ï dÐr(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/StreamTagVisitor;)Ljava/util/concurrent/CompletableFuture;ÒFailed to scan chunk {} ½Ô ÕÖ getResult()Lnet/minecraft/nbt/Tag; Ø ÙÚ isOldChunk"(Lnet/minecraft/nbt/CompoundTag;)Z FÜ ÝKgetRegionLocalZ Fß àKgetRegionLocalX bâ ãäset(I)Vl ç èé STORE_EMPTYLjava/util/function/Supplier; ëìí îïcom/mojang/logging/LogUtils getLogger()Lorg/slf4j/Logger;ñjava/lang/AutoCloseableó7net/minecraft/world/level/chunk/storage/ChunkScanAccess Signature>Ljava/util/function/Supplier;}Ljava/util/SequencedMap;xLit/unimi/dsi/fastutil/longs/Long2ObjectLinkedOpenHashMap;>;REGION_CACHE_SIZEI ConstantValueCodeLineNumberTableLocalVariableTablethis2Lnet/minecraft/world/level/chunk/storage/IOWorker;;Lnet/minecraft/world/level/chunk/storage/RegionStorageInfo;dirLjava/nio/file/Path;syncZMethodParametersisOldChunkAround((Lnet/minecraft/world/level/ChunkPos;I)Z chunkIndexLjava/util/BitSet; minChunkPos$Lnet/minecraft/world/level/ChunkPos; startChunkX startChunkZ endChunkX endChunkZregionZregionXposrangefromto StackMapTable regionPosJLocalVariableTypeTable;java/lang/Throwable@(II)Ljava/util/concurrent/CompletableFuture;tagm(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/CompoundTag;)Ljava/util/concurrent/CompletableFuture;value(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/CompoundTag;)Ljava/util/concurrent/CompletableFuture;supplierž(Lnet/minecraft/world/level/ChunkPos;Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture; loadAsyncN(Lnet/minecraft/world/level/ChunkPos;)Ljava/util/concurrent/CompletableFuture;…(Lnet/minecraft/world/level/ChunkPos;)Ljava/util/concurrent/CompletableFuture;>; synchronize+(Z)Ljava/util/concurrent/CompletableFuture; currentWrites:Ljava/util/concurrent/CompletableFuture;=(Z)Ljava/util/concurrent/CompletableFuture;visitor$Lnet/minecraft/nbt/StreamTagVisitor;„(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/StreamTagVisitor;)Ljava/util/concurrent/CompletableFuture;taskCLnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier;HLnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier;�(Lnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier;)Ljava/util/concurrent/CompletableFuture;"Ljava/util/function/Supplier;g(Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;storePendingChunkentryLjava/util/Map$Entry;zLjava/util/Map$Entry;eLjava/lang/Exception;?Lnet/minecraft/world/level/chunk/storage/IOWorker$PendingStore; Exceptions?java/io/IOException storageInfolambda$waitForShutdown$0+(Ljava/util/concurrent/CompletableFuture;)Vfuturelambda$submitTask$0H(Ljava/util/function/Supplier;Ljava/util/concurrent/CompletableFuture;)Vlambda$submitThrowingTask$0n(Lnet/minecraft/world/level/chunk/storage/IOWorker$ThrowingSupplier;Ljava/util/concurrent/CompletableFuture;)Vlambda$scanChunk$0Z(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/nbt/StreamTagVisitor;)Ljava/lang/Void; pendingStoreL"net/minecraft/nbt/StreamTagVisitorlambda$synchronize$58(Ljava/lang/Void;)Ljava/util/concurrent/CompletionStage;ignoreLjava/lang/Void;lambda$synchronize$6()Ljava/lang/Void;lambda$synchronize$3lambda$synchronize$4lambda$synchronize$0*()Ljava/util/concurrent/CompletableFuture;lambda$synchronize$2,(I)[Ljava/util/concurrent/CompletableFuture;x$0lambda$synchronize$1i(Lnet/minecraft/world/level/chunk/storage/IOWorker$PendingStore;)Ljava/util/concurrent/CompletableFuture;lambda$loadAsync$0:(Lnet/minecraft/world/level/ChunkPos;)Ljava/util/Optional;lambda$store$1k(Ljava/util/function/Supplier;Lnet/minecraft/world/level/ChunkPos;)Ljava/util/concurrent/CompletableFuture;lambda$store$2„(Lnet/minecraft/nbt/CompoundTag;Lnet/minecraft/world/level/ChunkPos;)Lnet/minecraft/world/level/chunk/storage/IOWorker$PendingStore;plambda$store$0@(Lnet/minecraft/nbt/CompoundTag;)Lnet/minecraft/nbt/CompoundTag;lambda$createOldDataForRegion$0(II)Ljava/util/BitSet; resultSetlambda$createOldDataForRegion$19(Ljava/util/BitSet;Lnet/minecraft/world/level/ChunkPos;)VchunkTag collectFields*Lnet/minecraft/nbt/visitors/CollectFields;Lnet/minecraft/nbt/Tag;onet/minecraft/nbt/Taglambda$static$0 SourceFile IOWorker.java NestMembersBootstrapMethodsw IOWorker-az { ef}()Ljava/util/BitSet; € cd™ƒ „ ^_V‡ ˆ \]Š()Ljava/util/Optional;Œ � UV]� ‘ SNN” • MN— ˜ HIR›(Ljava/lang/Object;)V� ž FGB¡ ¢ DE¥ ¦ 6¨ © AB« ¬ QR® ¯ TR± ² Z[[µ(I)Ljava/lang/Object;· ¸ WXX» ¼ `a¾e(Lnet/minecraft/world/level/ChunkPos;)Lnet/minecraft/world/level/chunk/storage/IOWorker$PendingStore;À Á hiÃ'(Lnet/minecraft/world/level/ChunkPos;)VÅ Æ p™È ÉÊË =Ì$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;Î ÏÐÑ ÒÓ"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; InnerClassesPriorityThrowingSupplierØ java/util/MapEntry PendingStoreÜ%net/minecraft/util/thread/StrictQueueRunnableWithPriorityß%java/lang/invoke/MethodHandles$Lookupájava/lang/invoke/MethodHandlesLookup! ðòèéôõ$%DE%&ôöô÷øùúû%"ü¯O*·*»Y· µ *»Y·µ*»Y·µ*»Y+,· µ#*»'Y¸)¾¸/+¶5º;·?µB±ýPFKM%Q3RNSþ*OÿOJOO Jül÷»FY+¶Hd+¶Ld·ON»FY+¶H`+¶L`·O:-¶R6¶R£¿-¶U6¶U£©*¶X¶\Àb:¶d™§ˆ¸h:-¶H¶Hd¸l6 -¶L¶Ld¸l6 ¶H¶Hd¸r6 ¶L¶Ld¸r6  6   £0 6 £ h `6¶u™¬„§ÿà„ §ÿÏ„§ÿS„§ÿ=¬ýZVW)Y9ZI\Y]a^dbmc}d�eŸf±h¼iÇjÑkÛlÝiãhéZïYõsþ¢Ñ  ùÀ#Nùµ4Jù Y� m|  }l ù �\ù ŸJù ±8ù ?°ù/Æù÷ÿ÷ ÷ùã )Î [ þ/FFüü$bÿP FFFbFü úÿ FFFúú Z[üV¸yB*´Y:Â*´!¶}À]:Ç+*¶�:*´!¶„W*´¶ˆ¤ *´¶‹Wð:ÿMNNSNý* wxyz {(}3~@H‚Nƒþ43VÿVùVùP 3þH]ÿ  ôƒ[üU*ºŽ¸‘¸”°ý‡£ ‡þ ÿùù ôÙÚü^+˜¶š…¢¬+¢¶¤¶¨¬ý¨ ©­þÿ² üJ *+,º­¶°°ý±þ  ÿ   ! !ô"²³ük**,+º´¶·¸»¶Á°ýµ ºµþ ÿ #é #õ #ô$%&ü@ **+ºÅ¶È°ý¾þ ÿ  ô'()ü•+**ºÌ¶·¸»¶ÁM™,*ºÏ¶Á°,*ºÓ¶Á°ýÏÐÑ Ûþ +ÿ+s* *+ü ]sô,dÐüK **+,ºÔ¶È°ýáþ  ÿ   -. -ô/ÊËü[*´B²×¶Û*+ºÞ¶â°ýôþÿ01 020ô3¹ºü[*´B²×¶Û*+ºæ¶â°ýþÿ0é 040ô56ü’**´¹éL+DZ*+¹ïÀF+¹ôÀ÷¶ù*¶ý±ý   %)þ*ÿ 78  79üðÿüI*´B»Y²¶Û*º· ¶ ±ý þ ÿûüü¥0*´#+,´¶,´¶W§N²"&+-¹(,´-¶.W± ý &/þ*:;0ÿ0 0<X  ;üš0*´ ¶2š±*¶6*´B¶9*´#¶<§L²"=+¹?±" ý& " # &'*-"+#,/.þ# :;0ÿ T =>8üE*´B²B¶ÛºE¶â¶\W±ý 23þ ÿ@Kü2*´#¶H°ý6þ ÿ ABü3 *²L¶W±ý2þ  CDEüm*´ ¶Rš,+¹T¶W*¶ý±ý þ ÿ0éCFGü™$*´ ¶Rš,+¹X¶W§ N,-¶.W*¶ý±  ýõ ÷úøùü#ýþ*:;$ÿ$01$CX HIüÛ?*´+¹[À÷N-Æ-´Æ-´,¶^§ *´#+,¶b°N²"f+-¹h-¿./ ý& ãäåæ$é-ë/ì0í=îþ4!J<0:;?ÿ? ?-.ü$÷ÿ FK = MNü> *ºk¶·°ýÛþ ÿ OP QRü°ýÛSNü? **ºn¶È°ýÑþ ÿ OPTRüp*´#¶q°L²"t+¹v+¿  ýÓÔ Õ Ö×þ :;ÿI = UVüS)*´¹x¹{º�¹ƒº‰¹ŒÀ�¸’°ýÏþ )ÿ WXü/½]°ýÏþ Yù Z[ü/*´°ýÏþ ²<\]üÀ8*´+¹[À÷M,Æ ,¶–¸š°*´#+¶žN-¸š°N²"¢+-¹h-¿'( ý"¿ÀÁÄ#Å(Æ)Ç6Èþ4#):;8ÿ8 *J< ü÷M = ^_ü‰++¹TÀ›N*´,-º¤¹§À÷:-µ´°ý¶ ·¸%¹þ4+ÿ+#é+  ! J< `aü= »÷Y*·«°ý·þ  b  cdü,*°ý±þ !efü˜,¸hN¸®:»bY·±:-¸²*º¶¹¹°ýˆ‰ ‹�)¢þ>,ÿ,ù,ù&   g hiü@ {»½Y½¿Y»¿Y²Á˜·ÇSY»¿Y²Ê¢·ÇS·ËN*,-¶ζ\W§:²"Ñ,¹h±-¶Ó:Á›™'À›:*¶×™,¶Û h,¶Þ`6+¶á±*47 ý. �*”4™7•9–G˜HšN›fœt�zŸþR9:;t ù]j{ÿ{g { *QklN-mÿ7 bF½ ü1n p™ü°ý/qü+ºå³æ¸ê³"±ý /1rstY÷*uÆÇvÍxy|Íx~�Íx‚…Íx†‰Íx‹…ÍŽ�’ÍŽ“’Íx–™ÍšœŸÍš ŸÍ£¤£Íš§ŸÍxª™Íx­™Íް³Í´¶¹ÍŽº½Íš¿ÂÍxÄ�Ô2* Õ@Y Ö ð×Ù ÷ Ú ÛÝÞàâ