+
    Ki  c                   s   ^ RI t^ RIt^ RIHtHt ^ RIt ! R R]P                  4      t]P                   ! R R]
4      4       t]P                  ! RR7       ! R	 R
4      4       t]P                  ! RR7       ! R R]4      4       t]P                   ! R R4      4       t]P                   ! R R]
4      4       t]P                   ! R R]
4      4       t ! R R]4      t ! R R]
]R7      t]! 4       tR# )i    N)ListOptionalc                   s2   a a ] tR t^t oV 3R ltRtVtV ;t# )DataclassJSONEncoderc                s   < \         P                  ! V4      '       d   \         P                  ! V4      # \        SV `  V4      # N)dcZis_dataclassZasdictsuperdefault)selfZo	__class__s   &&F/usr/lib/python3.14/site-packages/lutris/util/battlenet/definitions.pyr   ZDataclassJSONEncoder.default	   s/    ??199Q<wq!!     )__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classcell__r   __classdict__   @@r	   r   r      s     " "r
   r   c                   s,   a  ] tR t^t o V 3R ltRtV tR# )WebsiteAuthDatac                sf   < V ^8  d   Qh/ S[ P                  P                  ;R&   S[;R&   S[;R&   # )   Z
cookie_jarZaccess_tokenZregion)requestsZcookiesZRequestsCookieJarstrZformatr      "r	   __annotate__ZWebsiteAuthData.__annotate__   s5       222    K	 r
   r   Nr   r   r   r   __annotate_func__r   r   r      @r	   r   r            r
   r   T)Zfrozenc                   s,   a  ] tR t^t o V 3R ltRtV tR# )BlizzardGamec                s>   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   # )r   uidZnameZfamily)r   r   r   r	   r   ZBlizzardGame.__annotate__   s'     	H  I  K	 r
   r   Nr   r   r    r	   r"   r"      r!   r
   r"   c                   s<   a  ] tR t^t o RtRtRtRtV 3R ltRt	V t
R# )ClassicGameNc                s   < V ^8  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   # )r   registry_pathregistry_installation_keyexe	bundle_id)r   r   r   r   r	   r   ZClassicGame.__annotate__   sG     C='   (}3  
#	 
 }# r
   r   )r   r   r   r   r%   r&   r'   r(   r   r   r   r   r    r	   r$   r$      s!     #'M/3C#I  r
   r$   c                   s,   a  ] tR t^%t o V 3R ltRtV tR# )RegionalGameInfoc                s2   < V ^8  d   Qh/ S[ ;R&   S[;R&   # )r   r#   try_for_freer   boolr   r   r	   r   ZRegionalGameInfo.__annotate__%   s     	H   r
   r   Nr   r   r    r	   r)   r)   %   r!   r
   r)   c                   s,   a  ] tR t^+t o V 3R ltRtV tR# )ConfigGameInfoc                s^   < V ^8  d   Qh/ S[ ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   # )r   r#   uninstall_tagZlast_played)r   r   r   r   r	   r   ZConfigGameInfo.__annotate__+   s1     	H  C=   #	 r
   r   Nr   r   r    r	   r-   r-   +   r!   r
   r-   c                   s@   a  ] tR t^2t o RtRtRtRtRtV 3R lt	Rt
V tR# )ProductDbInfoZ Fc                sb   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   S[;R&   # )r   r.   ngdpinstall_pathversionplayable	installedr+   r   r   r	   r   ZProductDbInfo.__annotate__2   sP       N  	 
      r
   r   N)r   r   r   r   r0   r1   r2   r3   r4   r   r   r   r   r    r	   r/   r/   2   s'      DLGHI  r
   r/   c                   s6   a a ] tR t^<t o/ tV 3R ltRtVtV ;t# )	Singletonc                s   < W P                   9  d"   \        \        V `  ! V/ VB V P                   V &   V P                   V ,          # r   )
_instancesr   r5   __call__)ZclsZargsZkwargsr   s   &*,r	   r7   ZSingleton.__call__?   s;    nn$"'	3"@$"Q&"QCNN3~~c""r
   r   )	r   r   r   r   r6   r7   r   r   r   r   r   r	   r5   r5   <   s     J# #r
   r5   c                   s  a  ] tR t^Et o / R]! RR4      bR]! RR4      bR]! RR4      bR]! R	R
4      bR]! RR
4      bR]! RR
4      bR]! RR4      bR]! RR4      bR]! RR4      bR]! RR4      bR]! RR
4      bR]! RR4      bR]! RR
4      bR]! RR
4      bR]! R R
4      bR!]! R"R
4      bR#]! R$R
4      bR%]! R&R
4      /Ct/ ]CR]! R'R
4      /Ct]! RR(R)4      ]! RR*R+4      ]! RR,R-4      ]! R.R/R04      ]! R	R1R24      ]! RR3R44      ]! RR5R64      ]! RR7R84      ]! R'R9R:4      ]! RR;R<4      ]! RR=R>4      ]! RR?R@4      ]! RRARB4      ]! RRCRD4      ]! RRERF4      ]! R RGRH4      ]! R"RIRJ4      ]! R$RKRL4      ]! R&RMRN4      .t]	! RORPRQRQRRRSRT4      ]	! RURVRQ4      ]	! RWRXR3R3RYRZR[4      ]	! R\R]R3R3RYRZR[4      ]	! R^R_R`R(4      .t
Ra tV 3Rb lRc ltV 3Rd lRe ltV 3Rf lRg ltRhtV tRi# )j	_Blizzardi1S  Zs1Ti2S  Zs2iWoW ZwowiorP Z
prometheusFi3W  Zw3i2TSDZdestiny2iGCTWZhs_betaioreHZheroesi3D  Zdiablo3ineF ZfenrisiRPIVZviperiNIDOZodiniRZALZlazarusiSUEZZzeusiORTRZrtroiYBLWZwlbyiISO ZosiiEROFZforeZd3cnZ	StarCraftZS1zStarCraft IIZS2zWorld of WarcraftZWoWZwow_classiczWorld of Warcraft ClassicZWoW_wow_classicZ	OverwatchZProzWarcraft IIIZW3ZHearthstoneZWTCGzHeroes of the StormZHerou   暗黑破壞神IIIZD3CNz
Diablo IIIZD3z	Diablo IVZFENzCall of Duty: Black Ops 4ZVIPRzCall of Duty: Modern WarfareZODINz%Call of Duty: MW2 Campaign RemasteredZLAZRz Call of Duty: Black Ops Cold WarZZEUSzBlizzard Arcade CollectionZRTROz"Crash Bandicoot 4: It's About TimeZWLBYu   Diablo® II: ResurrectedZOSIzCall of Duty: VanguardZFOREZd2u   Diablo® IIz	Diablo IIZDisplayIconzGame.exezcom.blizzard.diabloiiZd2LODu"   Diablo® II: Lord of Destruction®Zw3ROCu   Warcraft® III: Reign of ChaosZInstallLocationzWarcraft III.exezcom.blizzard.WarcraftIIIZw3tftu#   Warcraft® III: The Frozen Throne®Zscau   StarCraft® AnthologyZ	Starcraftc                s    V P                   V P                  ,            Uu/ uF  qP                  VbK  	  upV n        R # u upi r   )BATTLENET_GAMESCLASSIC_GAMESr#   _games)r   Zgames   & r	   __init__Z_Blizzard.__init__   s4    262F2FI[I[2[\2[$xx~2[\\s   ?c                s&   < V ^8  d   QhRS[ RS[/# )r   keyreturn)r   r"   r   r   r	   r   _Blizzard.__annotate__   s        s  |  r
   c                s(    V P                   V,          # )z@
:param key: str uid (eg. "prometheus")
:returns: game by `key`
r;   )r   r=   s   &&r	   __getitem__Z_Blizzard.__getitem__   s    
 {{3r
   c                s,   < V ^8  d   QhRS[ RS[RS[/# )r   title_idcnr>   )Zintr,   r"   r   r   r	   r   r?      s"     	' 	' 	'$ 	'< 	'r
   c                s    V'       d   V P                   V,          pMV P                  V,          pWP                  ,          # )z|
:param cn: flag if china game definitions should be search though
:raises KeyError: when unknown title_id for given region
)TITLE_ID_MAP_CNTITLE_ID_MAPr#   )r   rB   rC   Zregional_infos   &&& r	   game_by_title_idZ_Blizzard.game_by_title_id   s6    
  00:M --h7M%%&&r
   c                s6   < V ^8  d   QhRS[ RS[S[,          /# )r   rC   r>   )r,   r    r"   r   r   r	   r   r?      s      
 
T 
d<.@ 
r
   c                s    V'       d   V P                   MV P                  P                  4        Uu. uF(  q"P                  '       g   K  WP                  ,          NK*  	  up# u upi )zC
:param cn: flag if china game definitions should be search though
)rD   rE   Zvaluesr*   r#   )r   rC   Zinfos   && r	   try_for_free_gamesZ_Blizzard.try_for_free_games   sQ    
 AC(<(<HYHY'a'a'c
'ctgxgxNDNN'c
 	
 
s   A"	A"r@   N)r   r   r   r   r)   rE   rD   r"   r9   r$   r:   r<   rA   rF   rG   r   r   r   r    r	   r8   r8   E   s!    d+d+ 	!%. 	!,6	
 	e, 	$Z7 	$Y5 	$Xt4 		40 	!(D1 	$We4 	$VT2 	$Y6 	$VU3 	$VU3  	$VU3!" 	!%/#$ 	$VU3%L( ONu.>vu.MNOT;-T>40U/7]$?ARS\;6T>40Yv6X4f=V16:Yd3X{E2W96BV;VDY GPV?HV96BVA6JU6>V5v>'O, 	D-k=R\^uvGA;O,&	
 	1&	
 	E2KM+M0]   	' 	'
 
r
   r8   )Z	metaclass)Zdataclassesr   ZjsonZtypingr    r   r   ZJSONEncoderr   Z	dataclassZobjectr   r"   r$   r)   r-   r/   Ztyper5   r8   ZBlizzardr   r
   r	   <module>rH      s	     ! "4++ " f   T   T$, $ $   
 V   F  # #^
) ^
B ;r
   