
    <i              	           d dl mZ dZd  e ee                    D             Zdedeeeeef         fdZdded	ed
e	defdZ
dS )    )Tuple 0123456789bcdefghjkmnpqrstuvwxyzc                 *    i | ]}t           |         |S  )base32).0is     /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/fakeredis/geo/geohash.py
<dictcomp>r      s    666aVAY666    geohashreturnc                    d\  }}d\  }}d}| D ]}t           |         }dD ]}|rD|dz  }||z  r|d         |d         z   dz  |d         f}n`|d         |d         |d         z   dz  f}nC|dz  }||z  r|d         |d         z   dz  |d         f}n|d         |d         |d         z   dz  f}| }|d         |d         z   dz  }	|d         |d         z   dz  }
|	|
||fS )a  
    Decode the geohash to its exact values, including the error margins of the result.  Returns four float values:
    latitude, longitude, the plus/minus error for latitude (as a positive number) and the plus/minus error for longitude
    (as a positive number).
    )g     V     V@)g     f     f@)r   r   T               r   r   r   )	decodemap)r   lat_intervallon_intervallat_errlon_erris_longitudeccdmasklatlons              r
   
geo_decoder$   
   s_    "@L,"GWL , ,q\$ 	, 	,D 19 	%a<?:a?$Q$LL %Q%a<?:a?$LL
 19 	%a<?:a?$Q$LL %Q%a<?:a?$L  ,+LL3	,4 ?\!_,
1C?\!_,
1CWg%%r      latitude	longitude	precisionc                   	
 d\  }}g g dc}
d\  	}d}dt           dt          t           t           f         dt          dt          t          t           t           f         t          f         f	
fd	}t          |          |k     rY|r ||||          \  }}n || ||          \  }}| }	d
k     r	dz  	n|t          |         z  }d	d}t          |          |k     Yd                    |          S )z
    Encode a position given in float arguments latitude, longitude to a geohash which will have the character count
    precision.
    r   r   )r   r   Tcurrintervalchr   c                 ~    |d         |d         z   dz  }| |k    r|         z  }||d         f|fS |d         |f|fS )Nr   r   r   r   )r*   r+   r,   midbitbitss       r
   next_intervalz!geo_encode.<locals>.next_interval>   sX    {Xa[(A-#::$s)OB!%r))QK%r))r   r   r   r    )floatr   intlenr   join)r&   r'   r(   r   r   r   r,   r   r1   r/   r0   s            @@r
   
geo_encoder7   4   s:   
 "@L,(((MGTGCL*E *U5%<-@ *c *eTYZ_afZfTgilTlNm * * * * * * * g,,
"
" 	I,}YbIIL"",}X|RHHL"''771HCCvbz!GCB g,,
"
" 777r   N)r%   )typingr   r   ranger5   r   strr3   r$   r4   r7   r   r   r
   <module>r;      s         	+6655V#5#5666	'& '&eUE5&@ A '& '& '& '&T  5 S #      r   