=  java/lang/Object()V(zombie/iso/areas/isoregion/data/DataRoot   *zombie/iso/areas/isoregion/IsoRegionWorker rootBuffer*Lzombie/iso/areas/isoregion/data/DataRoot;java/util/ArrayList   discoveredChunksLjava/util/List;  threadDiscoveredChunks  lastThreadDiscoveredChunksSizeI*java/util/concurrent/ConcurrentLinkedQueue  " #$jobQueue,Ljava/util/concurrent/ConcurrentLinkedQueue; & '$jobOutgoingQueue ) *jobBatchedProcessing , -$finishedJobQueue / 01instance,Lzombie/iso/areas/isoregion/IsoRegionWorker; 3 45threadLjava/lang/Thread; 7 89 bFinishedZ;java/lang/Thread =>? @Azombie/core/ThreadGroupsWorkersLjava/lang/ThreadGroup;C DErunB(Lzombie/iso/areas/isoregion/IsoRegionWorker;)Ljava/lang/Runnable; :G H.(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V :J KL setPriority(I)V :N OP setDaemon(Z)VRIsoRegionWorker :T UVsetName(Ljava/lang/String;)VX YZuncaughtException-()Ljava/lang/Thread$UncaughtExceptionHandler; :\ ]^setUncaughtExceptionHandler.(Ljava/lang/Thread$UncaughtExceptionHandler;)V :` astart :c deisAlive()Z g hisize()I klm nozombie/debug/DebugLog IsoRegionLzombie/debug/DebugLogStream;q/IsoRegionWorker -> JobQueue has items remaining stu vwzombie/debug/DebugLogStreamwarn(Ljava/lang/Object;)V ygzjava/util/List|;IsoRegionWorker -> JobBatchedProcessing has items remaining ~ clear y~  add(Ljava/lang/Object;)Z PApplyChunkChanges  0zombie/iso/areas/isoregion/jobs/RegionJobManagerallocApplyChanges4(Z)Lzombie/iso/areas/isoregion/jobs/JobApplyChanges;  nzombie/debug/DebugTypeLzombie/debug/DebugType; k  isEnabled(Lzombie/debug/DebugType;)Z  9%zombie/iso/areas/isoregion/IsoRegionsPRINT_D  poll()Ljava/lang/Object;)zombie/iso/areas/isoregion/jobs/RegionJob  ,zombie/iso/areas/isoregion/IsoRegionWorker$28$SwitchMap$zombie$iso$areas$isoregion$jobs$RegionJobType[I  getJobType1()Lzombie/iso/areas/isoregion/jobs/RegionJobType;  i-zombie/iso/areas/isoregion/jobs/RegionJobTypeordinal  9zombie/network/GameServerbServer5zombie/iso/areas/isoregion/jobs/JobServerSendFullData  getTargetConn$()Lzombie/core/raknet/UdpConnection;  9zombie/core/CorebDebug-zombie/iso/areas/isoregion/IsoRegionException:IsoRegion: Server send full data target connection == null V vV   zombie/core/raknet/UdpConnectionidStrLjava/lang/String; makeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String; Vlog   getAllChunks(Ljava/util/List;)V allocChunkUpdate2()Lzombie/iso/areas/isoregion/jobs/JobChunkUpdate;  .zombie/iso/areas/isoregion/jobs/JobChunkUpdate setTargetConn%(Lzombie/core/raknet/UdpConnection;)V y iterator()Ljava/util/Iterator;  ejava/util/IteratorhasNext next)zombie/iso/areas/isoregion/data/DataChunk e canAddChunk addChunkFromDataChunk.(Lzombie/iso/areas/isoregion/data/DataChunk;)Z i getChunkCount release.(Lzombie/iso/areas/isoregion/jobs/RegionJob;)VIsoRegion: Debug Reset All Data   resetAllData  isRequestingBufferSwap+Ljava/util/concurrent/atomic/AtomicBoolean;     P)java/util/concurrent/atomic/AtomicBooleanset   eget : sleep(J)V C(Lzombie/iso/areas/isoregion/jobs/RegionJobType;)Ljava/lang/String; y   ApplyChanges/Lzombie/iso/areas/isoregion/jobs/RegionJobType;  !thread_run_batched_jobs% &(I)Ljava/lang/String; y( )(I)Ljava/lang/Object;+/zombie/iso/areas/isoregion/jobs/JobSquareUpdate *- .igetWorldSquareX *0 1igetWorldSquareY *3 4igetWorldSquareZ *6 78getNewSquareFlags()B : ;<updateExistingSquare(IIIB)V > ?@readChunksPacket=(Lzombie/iso/areas/isoregion/data/DataRoot;Ljava/util/List;)Z B CprocessDirtyChunksE/zombie/iso/areas/isoregion/jobs/JobApplyChanges GHI J9zombie/network/GameClientbClient DL Me isSaveToDisk O P ChunkUpdate R S SquareUpdate U VWselect5Lzombie/iso/areas/isoregion/data/DataRoot$SelectInfo; YZ[ \]3zombie/iso/areas/isoregion/data/DataRoot$SelectInforeset(IIIZZ)V Y_ `achunk+Lzombie/iso/areas/isoregion/data/DataChunk; yc d)remove f gesaveChunksToDisk i jk getInstance()Lzombie/core/Core; m neisNoSavep7IsoRegion: Apply changes -> Saving header file to disk. r st getHeaderFile()Ljava/io/File;vjava/io/DataOutputStreamxjava/io/FileOutputStream wz {(Ljava/io/File;)V u} ~(Ljava/io/OutputStream;)Vzombie/iso/IsoWorld u LwriteIntjava/lang/Integer  iintValue u flush u closejava/lang/Exception   getMessage()Ljava/lang/String; k  printStackTrace  addAll(Ljava/util/Collection;)ZIsoRegion: Load save map.   loadSaveMap G sendIsoRegionDataRequest-IsoRegion: sending changed datachunks packet.   udpEngineLzombie/core/raknet/UdpEngine;  zombie/core/raknet/UdpEngine connections   startPacket(()Lzombie/core/network/ByteBufferWriter;  %zombie/network/PacketTypes$PacketTypeIsoRegionServerPacket'Lzombie/network/PacketTypes$PacketType;  doPacket)(Lzombie/core/network/ByteBufferWriter;)V  $zombie/core/network/ByteBufferWriterbbLjava/nio/ByteBuffer;  java/lang/SystemnanoTime()J  java/nio/ByteBufferputLong(J)Ljava/nio/ByteBuffer;  saveChunksToNetBuffer(Ljava/nio/ByteBuffer;)Z  send9IsoRegion: Receiving changed datachunk packet from server  getLong  readChunksFromNetBuffer(Ljava/nio/ByteBuffer;J)Z   EnqueueJob  9IsoRegion: Receiving request full data packet from client  allocServerSendFullData[(Lzombie/core/raknet/UdpConnection;)Lzombie/iso/areas/isoregion/jobs/JobServerSendFullData;  allocDebugResetAllData8()Lzombie/iso/areas/isoregion/jobs/JobDebugResetAllData;  hash(II)I  valueOf(I)Ljava/lang/Integer; y contains>Update square only, plus any unprocessed chunks in a 7x7 grid.  zombie/core/ColorsMagentaLzombie/core/Color;  ((Ljava/lang/String;Lzombie/core/Color;)V   allocSquareUpdate7(IIIB)Lzombie/iso/areas/isoregion/jobs/JobSquareUpdate;    readSurroundingChunks(IIIZ)Vjava/io/FileInputStream =z ;A B(Ljava/io/InputStream;)V ;D EireadInt ; H It getDirectoryK,zombie/iso/areas/isoregion/IsoRegionWorker$1 JM N/(Lzombie/iso/areas/isoregion/IsoRegionWorker;)V 7P QR listFiles)(Ljava/io/FilenameFilter;)[Ljava/io/File; T U byteBuffer W X()Ljava/nio/ByteBuffer; Z [\array()[B =^ _`read([B)I b cdlimit(I)Ljava/nio/ByteBuffer; f gXmark i jigetInt l \X yn opindexOf(Ljava/lang/Object;)IrPIsoRegion: A chunk save has been found that was not in header known chunks list. t uaddChunkFromFile =xjava/lang/Throwable wz {| addSuppressed(Ljava/lang/Throwable;)V%  thread_main_loop   P  dallocate Signature%Ljava/util/List;YLjava/util/concurrent/ConcurrentLinkedQueue;^Ljava/util/concurrent/ConcurrentLinkedQueue;=Ljava/util/List;CodeLineNumberTablecreate StackMapTablestop Exceptionsjava/lang/InterruptedException getRootBuffer,()Lzombie/iso/areas/isoregion/data/DataRoot; setRootBuffer-(Lzombie/iso/areas/isoregion/data/DataRoot;)VloadupdatereadServerUpdatePacket(Ljava/nio/ByteBuffer;)V!readClientRequestFullUpdatePacket:(Ljava/nio/ByteBuffer;Lzombie/core/raknet/UdpConnection;)VaddDebugResetJobaddSquareChangedJob(IIIZB)V[Ljava/io/File;lambda$create$0 SourceFileIsoRegionWorker.java NestMembersBootstrapMethods  "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/Thread;Ljava/lang/Throwable;)V  Yzombie/GameWindow  $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;%IsoRegion: Server Send Full Data to -IsoRegion: Queueing  for batched processing.6IsoRegion: Apply changes -> Batched processing  jobs.?IsoRegion:  previously discovered chunks have not been loaded. InnerClasses)java/lang/Thread$UncaughtExceptionHandlerUncaughtExceptionHandler SelectInfozombie/network/PacketTypes PacketType%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup1  4589 01#$'$*-$U[**Y *Y*Y**Y !*Y %*Y(*Y +*.. )cef%g*j5k@lKmV*Z+N*2*6*:Y<*BF2*2I*2M*2QS*2W[*2_* ./1 2!C)D1E:FFGMHu*2*2*6*2b*2*!f jpr*(x j{r*!}*%}*(*+}* *FKLMNO!P&S0T8VDWLZS[Z\c]j_o`ta & *!+W p q"* tuP/M*!,Wwxy*!L++.\!+++A+M, Y÷ſøǧ,ɺӻYN* -ָ:,-:7:*%W:,W*%W*++W=7* & *6 *++W=+*(+W+**( *++W*!L"0~ DJRV\fknz )03<BKNZeos:/!.y2   0 ! C*(x$<-=*(x*('N-.@W-*:* ,/259-:* *=W* A -D:FfK^*(xd6*(':NQqQ=*:* T,/2X:* T^W*(bW:eW *%Wd*x*x*hloӸq:uYwYy|:ö*x*::**x:*+*(WԱ6'5\b}49ILX_eku{     %*6<BcA# D*Db7u" D7 * #"*+  &'IӲF **+ ,.0g*+L++*+L*%L+z=xT'N+ +-/-::ŶW+W-ՄM,,+*%Lp<^343!70869<;M<]>l@rAzCEFH;OLMNQ7S)  -+B 5F1ظӸM+B,+!W*,*M,, %(2 WX Z[\]!^%b(_)`0a4dh w*&,",N*-N--& g hjkolm%n)q] =F *t uv l l6 l66*.: * * ** >yz {}&~/9?JNQVW`k Q  ' *   ]6l6`d6d6`6 `6 : 6 6 6  #':  U * /6*0*W * :   2W6 }l *   *~!'-39>ALWy~k !#  L++ +!   <YMqN-6L;Y=Y-?@:<C6C66C6,WFG:JY*LO::S:6:  6 6     2: =Y ?: VW Y]6aWeWh6h6h6h6kW6**W,,,mbW q*:sW6 v: v :y  **-,x$,x}ǻY,x}ſL++[cwejmw9 &(/6@GSY^crw|"7=EKPX[cy   9  y7;1  y77 y777=" y777=w  y777=ww - B ]*6*~L+ 6: ?<>?AM1 YS % {J.2: Y@J