Êþº¾4 qr qs tu tv Ñw x v Ñy z{ |} ô~ ô€ � ‚ у z„ …}† z‡ ш v Ò‰Š Ñ‹ ÑŒ q�Ž ��‘ ’ Ñ“” �• – —ã � z˜ q™š )‰› )œ )� žŸ ¡ ¢£ ¤ q¥¦ §Ÿ ¨© Ѫ q« ¬­® ¯ :°± ²³ ²´ µ¶ A·¸ ²¹@ Jº H» H¯ «¼À «½ «¾ «¿ «À «Á I :ÃÄ TÅ ²Æ :Ç :ÈÉ HÊ ¨Ë ÌÍÐÈ :Î ÑÏ HÐ ÑÒ ÓÔÕ fÖ ×Ø :ÙÚ ÌÛÜ lÝ HÞ ßà Lá Jâ Kã Jä Kå Ñæ Lç :èé Lê Jv :ë :ì :í :î ßï Mð Mñ Mò Kó Ñô K¯¿ð :õ Kö ÷ «ø@ Kù «úûü :ý :þ :ÿ K?à K?ìÌÌÌÌÌÍ K?É™™™™™š¿Ó333333 ?Ã333333 l l l l l ?„záG®{ « « «B´C´  H  ¬  : ß ß l  H ! ¿" Ó# i$ ×% Ñ& H' q( I) *+ ¬, Ó- J. Ñ/ 0 Ñ12 ω345 InnerClasses6PositionTracking PLAYER_RADIUSIPLAYER_RADIUS_SQDenabledZ trackBlocksLjava/util/Map; Signature8Ljava/util/Map; trackPatternLjava/lang/String;pattern[Ljava/lang/String;roadEdgeLorg/bukkit/Material;junctionapiLcom/useful/uCarsAPI/uCarsAPI;isEncodedRouting()ZCodeLineNumberTable isTrackBlock(Lorg/bukkit/Material;)ZLocalVariableTablematemat StackMapTable7getTrackBlockType)(Lorg/bukkit/Material;)Ljava/lang/String;namegetTrackBlockIndexByType(Ljava/lang/String;)Iitype(Z)V patternNamethis.Lnet/stormdev/ucars/trade/AIVehicles/AIRouter;edgeRawjunRawsect/Lorg/bukkit/configuration/ConfigurationSection;8 isAIEnabledgetVelocityDataO(Lorg/bukkit/entity/Vehicle;)Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;eLjava/lang/Exception;msLjava/util/List;carLorg/bukkit/entity/Vehicle;data2Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;LocalVariableTypeTable5Ljava/util/List;9:routeE(Lorg/bukkit/entity/Entity;Lnet/stormdev/ucarstrade/cars/DrivenCar;)Ve1faceLorg/bukkit/block/BlockFace;txtytzxyzpxpzuxmultdirLocLorg/bukkit/Location;yawFpassLorg/bukkit/entity/Entity;c(Lnet/stormdev/ucarstrade/cars/DrivenCar;speed directionvelLorg/bukkit/util/Vector;locunderLorg/bukkit/block/Block;cxcyczsupposedToBeStoppedstationaryRemoveTimeJvdesbrm;;<=>?@ ExceptionsfindRoad¦(Lorg/bukkit/entity/Entity;Lnet/stormdev/ucarstrade/cars/DrivenCar;DLorg/bukkit/block/Block;Lorg/bukkit/Location;ZLnet/stormdev/ucars/trade/AIVehicles/VelocityData;)V currentLoc atJunctionrbrbt toDriveLoccarLoc relocateRoad}(Lorg/bukkit/entity/Entity;Lorg/bukkit/block/Block;Lorg/bukkit/Location;ZLnet/stormdev/ucars/trade/AIVehicles/VelocityData;)VoLjava/lang/Object;bdbd currentDirprevtoGodirgoDirA clearNPCMeta(Lorg/bukkit/entity/Entity;)V despawnNPCCarrunLjava/lang/Runnable;BdespawnNPCCarNow isCompassDir(Lorg/bukkit/block/BlockFace;)Z()V SourceFile AIRouter.javaC DE FGH IG JK êë Læ ÝÞM NOP QR Së @Torg/bukkit/Material ÷U VW çæ XYZjava/lang/String [\ ãä üna,b,c áâ ÛÜ ]^general.ai.roadEdgeBlock_ `ageneral.ai.junctionBlock bc åægeneral.ai.trackerBlock de fg hi jk lmjava/lang/StringBuilderFound AI tracker block: no pUq rsgeneral.ai.trackerBlock.pattern,t ua vw xy6Didn't enable AIs routing as configuration is invalid!z{ |} èé ~€ �ë0net/stormdev/ucars/trade/AIVehicles/VelocityData ‚ƒ ü„ trade.npc… †‡ ˆ‰ [Š!org/bukkit/metadata/MetadataValue ‹Tjava/lang/Exception Œ� Ž �� ‘ƒ ’“ ”• –— ˜— ™— šë ›œ com/useful/ucarsCommon/StatValue ü� žŸ  ¡ ¢ë car.frozen †£ ¤¥¦ §ë ¨i f ©ª« ¬­® ¯°.net/stormdev/ucars/trade/AIVehicles/AIRouter$1 ü±² ³´ µncurrentlyStopped ¶·org/bukkit/util/Vector ü¸ ¹º» ¼½ ¾¿ À Á Ã ÁÄ OP Åë ÆërelocatingRoad Çœ Èn ɺ Êë ËÌ ÍÎ a ÏÜ Í2 ¾Ð îï Ñ¡ Òë ÓU ÔÕ ˜i Öistepcarpet ×i Ø� Ùn –idouble ÚÛ ™iÜ ÝÞ üß ‘� àá â� ã—org/bukkit/Location üä åæ çèé êë ìíorg/bukkit/entity/LivingEntitytrade.npcvillagerî ïe ðñò óô õƒ ö÷ ø÷ ùáú ûü Œý npc.turning.net/stormdev/ucars/trade/AIVehicles/AIRouter$2 ü þë gn ÿ´ de n    n    i ר   ÙÚjava/util/HashMap,net/stormdev/ucars/trade/AIVehicles/AIRouterjava/lang/Object.net/stormdev/ucars/trade/AIVehicles/AIRouter$3=net/stormdev/ucars/trade/AIVehicles/AIRouter$PositionTrackingjava/util/Iterator-org/bukkit/configuration/ConfigurationSectionorg/bukkit/entity/Vehiclejava/util/Listorg/bukkit/entity/Entity&net/stormdev/ucarstrade/cars/DrivenCarorg/bukkit/block/BlockFaceorg/bukkit/block/Block:net/stormdev/ucars/trade/AIVehicles/routing/BlockRouteData0net/stormdev/ucars/trade/AIVehicles/TrackingData[Lorg/bukkit/block/BlockFace;java/lang/Runnablenet/stormdev/ucars/trade/mainpluginLnet/stormdev/ucars/trade/main; aiRouteMethod9Lnet/stormdev/ucars/trade/AIVehicles/routing/RouteMethod;7net/stormdev/ucars/trade/AIVehicles/routing/RouteMethodENCODEDequals(Ljava/lang/Object;)Z STAINED_GLASS java/util/Mapvalues()Ljava/util/Collection;java/util/Collectioniterator()Ljava/util/Iterator;hasNext()Ljava/lang/Object;()Ljava/lang/String;contains(Ljava/lang/CharSequence;)ZkeySet()Ljava/util/Set; java/util/Setget&(Ljava/lang/Object;)Ljava/lang/Object;config1Lorg/bukkit/configuration/file/FileConfiguration;/org/bukkit/configuration/file/FileConfiguration getString&(Ljava/lang/String;)Ljava/lang/String; getMaterial)(Ljava/lang/String;)Lorg/bukkit/Material;getConfigurationSectionC(Ljava/lang/String;)Lorg/bukkit/configuration/ConfigurationSection;getKeys(Z)Ljava/util/Set;length()Iput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; getLogger()Ljava/util/logging/Logger;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringjava/util/logging/Loggerinfo(Ljava/lang/String;)Vjava/util/regex/Patternquotesplit'(Ljava/lang/String;)[Ljava/lang/String;logger'Lnet/stormdev/ucars/trade/CustomLogger;%net/stormdev/ucars/trade/CustomLoggercom/useful/uCarsAPI/uCarsAPIgetAPI ()Lcom/useful/uCarsAPI/uCarsAPI;aiSpawns=Lnet/stormdev/ucars/trade/AIVehicles/spawning/AISpawnManager;;net/stormdev/ucars/trade/AIVehicles/spawning/AISpawnManagerisNPCCarsSpawningNow getLocation()Lorg/bukkit/Location;L(Lorg/bukkit/block/BlockFace;Lorg/bukkit/util/Vector;Lorg/bukkit/Location;)V!com/useful/ucars/util/UEntityMeta hasMetadata/(Lorg/bukkit/entity/Entity;Ljava/lang/String;)Z getMetadata>(Lorg/bukkit/entity/Entity;Ljava/lang/String;)Ljava/util/List;(I)Ljava/lang/Object;valueremoveMetadata/(Lorg/bukkit/entity/Entity;Ljava/lang/String;)VNORTH getVelocity()Lorg/bukkit/util/Vector;cloneadd(DDD)Lorg/bukkit/Location;getBlock()Lorg/bukkit/block/Block;getX()DgetYgetZisNPCgetDir()Lorg/bukkit/block/BlockFace;/(Ljava/lang/Object;Lorg/bukkit/plugin/Plugin;)V setMetadataR(Lorg/bukkit/entity/Entity;Ljava/lang/String;Lorg/bukkit/metadata/MetadataValue;)VupdateLocation(Lorg/bukkit/Location;)VisStoppedForOtherCar(Ljava/lang/String;)ZatTrafficLight/(Lorg/bukkit/entity/Entity;)Ljava/lang/Boolean;java/lang/Boolean booleanValuegetStationaryCountgetWorld()Lorg/bukkit/World;org/bukkit/World getEntities()Ljava/util/List;org/bukkit/Bukkit getScheduler(()Lorg/bukkit/scheduler/BukkitScheduler;Ê(Lnet/stormdev/ucars/trade/AIVehicles/AIRouter;Lorg/bukkit/entity/Entity;Lorg/bukkit/Location;Lnet/stormdev/ucarstrade/cars/DrivenCar;Ljava/util/List;Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;)V$org/bukkit/scheduler/BukkitSchedulerrunTaskAsynchronouslyQ(Lorg/bukkit/plugin/Plugin;Ljava/lang/Runnable;)Lorg/bukkit/scheduler/BukkitTask; notStationaryvalueOf(Z)Ljava/lang/Boolean;(III)V setVelocity(Lorg/bukkit/util/Vector;)V1net/stormdev/ucars/trade/AIVehicles/AITrackFollowcarriagewayDirectionV(Lorg/bukkit/block/Block;)Lnet/stormdev/ucars/trade/AIVehicles/routing/BlockRouteData;getType>()Lnet/stormdev/ucars/trade/AIVehicles/routing/RouteBlockType;DOWN getRelative6(Lorg/bukkit/block/BlockFace;)Lorg/bukkit/block/Block;UP7(Lorg/bukkit/block/BlockFace;I)Lorg/bukkit/block/Block; isJunctionisInProgressOfTurningAtJunction getDirectionresetUpdatesSinceTurn setMotion hasMotionsetDir(Lorg/bukkit/block/BlockFace;)V nextBlockÔ(Lorg/bukkit/block/Block;Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;Lnet/stormdev/ucars/trade/AIVehicles/routing/BlockRouteData;Lorg/bukkit/entity/Entity;)Lnet/stormdev/ucars/trade/AIVehicles/TrackingData; forJunction()Lorg/bukkit/Material;setTargetBlockLocisEmpty toLowerCasedistanceSquared(Lorg/bukkit/Location;)D getBlockYgetUpdatesSinceTurn getMotionincrementUpdatesSinceTurngetData()Bjava/lang/Mathabs(D)D(DDD)VsetY(I)Lorg/bukkit/util/Vector; normalize lengthSquared(Lorg/bukkit/World;DDD)V setDirection/(Lorg/bukkit/util/Vector;)Lorg/bukkit/Location;getYaw()F$com/useful/ucars/CartOrientationUtilsetYaw(Lorg/bukkit/entity/Entity;F)V getPassenger()Lorg/bukkit/entity/Entity; net/stormdev/ucars/utils/NoMobAIclearAIgetCarPassengerProviderG()Lnet/stormdev/ucars/trade/AIVehicles/spawning/AICarPassengerProvider;Cnet/stormdev/ucars/trade/AIVehicles/spawning/AICarPassengerProvidersetPassengerYaw$(Lorg/bukkit/entity/LivingEntity;F)VgetTargetBlockLoc compassDirs()[Lorg/bukkit/block/BlockFace; diagonalDirsmultiplycom/useful/ucars/ClosestFacegetClosestFace(F)Lorg/bukkit/block/BlockFace;/(Ljava/lang/String;Lorg/bukkit/plugin/Plugin;)VisPrimaryThreadrunTaskremovecarSaver#Lnet/stormdev/ucars/trade/CarSaver;getId()Ljava/util/UUID;!net/stormdev/ucars/trade/CarSavercarNoLongerInUseNow(Ljava/util/UUID;)VdecrementSpawnedAICount%$SwitchMap$org$bukkit$block$BlockFace[Iordinalpow(DD)D!ÑÒ ×Ø ÙÚ ÛÜ ÝÞßàáâ ãäåæ çæèé êëì% ²´²¶¬í~ îïì©J¸™ *²¶¬²¹ ¹ L+¹ ™ +¹ À M*¶,¶¶™¬§ÿÝ*²¶¬í‚ƒ…/†=‡?‰BŠð/ñæJòæó ü ô"ú õöì—A²¹¹L+¹ ™++¹ ÀM*¶²,¹À ¶¶™,°§ÿÒ°íŽ!�:�<’?“ð!÷âAòæó üô-ú øùìt <²¾¢²2*¶™¬„§ÿç¬í— ˜™—œðúØ ûâó üúüýì¼í*·*µ³²¶M²¶N*,¸µ -¸³²!¶":¹#¹:¹ ™d¹ À:ÆP¶$žH%¶š>²¹&¸¹'W²¶(»)Y·*+¶,¹&¶,¶-¶.§ÿ˜*²/¶µ*´0¸1¶2³*´ Æ ²Ç ²34¶5<*¸6µ7±íRŸ$  ¡¢ £(¤/¦9§^¨u©Œª°¬³­¿®Î°Û±ã²å´ì¸ð>^RþâíÿíÛÜÖâ Íâ9´ó!ÿHÑôûgú' ëì=²™²´8¹9™§¬í¿ó@ìé@»:Y+¹;·™(+=¸?N-¹@ÀA¹BÀ:M§ :+=¸D,° 36Cí"ÚÛÜ Þ3á6ß8à>ãð48     @ÿ@ 0   óÿ6Ñ:Cúì è 1]²š±EJ²G:+¹H:+¹I:¶JK¶M¶N:¶O9 ¶P9 ¶Q9 ,¶Rš±»:Y+¹I·<:+=¸?¹@ÀA¹BÀ::¶SÆ ¶S:§:+=¸D+=»TY²·U¸V+¹I¶W¶Xš%+Y¹Zš+Y¸>š*´7+¶[¶\™§6™ ]§_7¶a…”ž +,¸b±:+¹c¹d:¸e²»fY*+,·g¹hW™-¶i+j»TY¸k²·U¸V+»lY·m¹n±+j¸D¸o:¶pÇQ²q¹r:¸o:¶pÇ6²s¹t:¸o:¶pÇ*+,)²q¹r¶u±¶vš¶wš+x¸>š§6+=¸>šW¶vš,¸o¶y:¶zš¶{:6¶|§6*+,)+¹I¶N²q¹t¶v¶u±™¶}š6¶yÇÆ ¶pÇ&*+,)+¹I¶N²q¹t¶v¶u±¶yÆ+ƶy¶zš¶{¶y:6¶~+¸:´€¥/¶wš'¶vš´€:6¶{¶~¶|´�™6¶w™6´€:¶{´‚::6¹ƒ¸„š'¢!„²q¹r:²q¹r:§ÿÒ¹ƒ¸„š²s¹t:²s¹t:6¹ƒ¸„š'¢!„²q¹r:²q¹r:§ÿÒ¹ƒ¸„™²s¹r:§ÿç¹…¶J†¶M¶ˆ²s¹r:¹‰š±¹ƒ¶¶Š:¹ƒ¶¶Š:¹…¶‹Œ—œ&¹Ž¶�£�¶š ‘¶™6¶’¢6™¶“:+¹n¶”§0¹•‡–c9¹Ž‡c9 �¶™!˜¶š¹™¢  –g9 ‘¶™  šg9 ¹œ‡–c9" g9$  g9&" g9(&�˜œ&—žŸ9&$¸¡9*(¸¡9,*,—ž§6.)¢k9/&E˜œ3.™$,o/k9$(,o/k9(§$*o/k9$(*o/k9(´�š ¶v™$–k9$(–k9(»lY$&(·¤:+x¸D¶|+¹n¶¥¶¦¶§:¶¨©—ž“»«Y+¹c·¬:¶­W¶®¯b8  –œ ° b8 §ÿò °•›  °f8 §ÿñ+ ¸±+¹²:!!Æ9!Á³™1!´¸>™'!¸µ²´8¹¶!À³ ¯f¹·!¸µ¶~±`ˆ‹C톡çèê ëìî ï2ñ9ò@óGõN÷O0`2y3�4ˆ9‹6�7“8¥;°<á=ñ?ý@ADEF0‰5Š:‹NŒ^�_�e‘l“t”€•‡–�—œ˜£™«�ÁžÂ£â¥ë§ó¨ý©ª «¬­¯³>´?¸L¹O½dÀ†Â‡Å�ơǦȭɰʷÏÃÑÝÒäÓçÔìÖó×ùÙÚÜ ÝÞßö"÷&ø)ù<ú?ûKüZþgÿt�„—š¦µÂ Ñ è ô þÿ2CSV_bgn v!~%Œ&˜'®(¸*À,Ê-Ò/à1ç2î3õ56 =>?'A.C7D<GFHSL]MgPwQR‡a–bœc£d«f¹gÅh×ißjénðoúqr tuv1w6xPyU‘\’ðœ)� ýŒÚ˜Ú àËÚ"çÄÚ$î½Ú&õ¶Ú(š Ú*“!Ú,'„"Ü..}#Ú/×~$%él&' ;()!]ÿ] )]*+ R,ÚM-E./ =0%2+129$3Ú @4Ú G5Ú `ýá|6Üñl78V9I: lñ;<â{=ÜÚ>?";@2&7A2)4BØôiC2ODâ@E⹤F/ I:Gó14ÿG ÑHIJl«Kü8:BC4@ü Büý[:übL@ü8" "üAM þ KK0&0ü-KýS ýAÿ7ÑHIJl«K::LMKKKý@ý-ÿ#ÑHIJl«K::LMKKKþ=l«ùHNCOPìd*¨¶{¶¸Ç +,¸b±¶¸¶J:  ¶N:  ¹ƒ:  ¶¶Š:  ¸„š +,¸b± E¶M:  ¶N:¹‰š$ ¶M:  ¶N:¹‰š+,¸b±+¹I:¶O9¶P9¶Q9¹•‡–c9¹Ž‡c9 �¶™! ˜¶š ¹™¢ –g9 ‘¶™ šg9¹œ‡–c9g9g9g9 �˜œ—žŸ9¸¡9" ¸¡9$"$—ž§6&)¢k9'E˜œ3&™$o'k9 $o'k9 §"o'k9 "o'k9 »lY ·¤:))¶|+)¹n±íÊ2–˜ ™š�ž$Ÿ- 7¡?¢D£E¦Q§X¨b©lªs«}¬‚®ƒ±‹³’´™µ ¸®¹º»Ð¼Ú¾âÀìÁôÃÅ ÆÇÉ'Ê,Ñ3Ò:ÓIÕP×YØ^ÛhÜuàá‰ñ˜òŸô§õð$¨ÿ¨ )¨*+¨,Ú¨12¨Q%¨Rܨ9‹A% $„S2 -{Tæ 7qDâ QWU% XPC2‹V%’3Ú™4Ú 5Ú®úÚºîÚ¦Ú ŸÚ˜Ú‘Ú 3u Ú":n!Ú$I_"Ü&PX#Ú'˜./)ó° ÿ1 ÑHIK«:«K ý<«Kÿ^ÑHIK«:«K «K«ÿ7ÑHIK«:«K «K«ý@ý-WXìmù¶{:+x¸>™=+x¸?¹@ÀA¹B:ÆÁ«™À«:+x¸D§ +x¸D±¶“:-¶O9-¶P9 -¶Q9 :::Çq¶S:¸¹:¾66¢¡2:,¹r:¹ƒ¸„š¹ƒ²¦pÆc¸o¶y:Æ+¶z™!Æ ¶zš:::§4Æ/¶z™%Æ ¶zš::§ ::„§ÿ^¸º:¾66¢¡2:,¹r:¹ƒ¸„š¹ƒ²¦pÆc¸o¶y:Æ+¶z™!Æ ¶zš:::§4Æ/¶z™%Æ ¶zš::§ ::„§ÿ^§ ¶N:Ƕ»¶|+¶»¹n±+x»TY¹…²·U¸VÆÆ ¶~²s¹t:¹‰š²s¹r:¹‰š±¹•‡–c9¹Ž‡9¹œ‡–c9g9 g9 g9�˜œ—žŸ9»lY·¤:+¹n+¹I¶®¸¼:šÇ ,¸o¶y:Ç:¶~¶|±íVUø'4;D!J"K&R'X(^)d*g+j,m.r/y0”1ž2¸3½4Ç5å6é7í8ñ9ô;<=>B!C%0+FFGPHjIoJyK—L›MŸN£O¦QÄRÈSÌTÏXÓY×FÝ\à^çaìb÷cdgi%j,m9nCpOqYsZxhyrz€|‡}Ž~•€¥�ªƒ¹…Á†Ï‡ÔˆÙ‰â‹çŒë�ò‘ø’ð$'$YZÇV[ž‡\2”‘]yV[P‡\2F‘]yd^ùÿù )ù12ùQ%ùRÜù9ñ_%R§./X¡3Ú^›4Ú d•5Ú g’`2j�amŒbh‘Úr‡Ú€yÚ‡rÚŽkÚ•dÚÏ*-óÜýD«Òúÿ:ÑHK«:«lKJJJcý1JKü,Jú ùøþ cý1JKü,Jú ùÿÑHK«:«lKJJ'-ÿOÑHK«:«lKJJü7J deìv4*=²¹½*x²¹½*¾²¹½*=¸D*x¸D*¾¸D±í– —˜!™'š-›3œð 4 ) fì„'»¿Y*+·ÀM¸Á™ ,¹Â§¸e²,¹ÃW±í  ´µ¸&ºð ' )'*+ ghó üi jìœ4*¹²M*¸Ä*¹Å,Æ ,¹Å²´Æ+¶Ç¶È²´8¹É±í"¾¿ ÀÁÂÄ(Å3Æð 4 )4*+-()óüHklì‡2²Ê+¶Ë.ª( "$&¬¬¬¬¬íÉ(Ê*Ë,Ì.Í0Îð2ÿ2ó(mnìH$F³Ì²Ì‡E¸Í³Î»ÏY·Ð³½³±í #%opÔ"ÓÕÑÖ ¿f