
36ic           @  s  d  d l  m Z e d i   Z d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d e f d     YZ e   Z d e f d     YZ d   Z d	 e f d
     YZ i  Z i  Z e   Z d   Z d f  d     YZ e a d   Z d   Z d   Z d   Z d e f d     YZ  d   Z! d   Z" d e j# f d     YZ$ e$   Z% d   Z& e j' d  Z( d   Z) e j' d  Z* d   Z+ e  j, j- e  j. j- BZ/ e/ e  j0 j- Be  j j- Be  j1 j- BZ2 d d e3 d  Z4 d    Z5 d!   Z6 e7 a8 d"   Z9 d# e f d$     YZ: d% e; f d&     YZ< d'   Z= d(   Z> d) e f d*     YZ? d+ e j@ f d,     YZA d- e f d.     YZB d/ e jC f d0     YZD eD   ZE e
 j
   ZF d1 aG d2 e j jH f d3     YZI d4 e j jH f d5     YZJ e3 e e d6 d7  ZK e3 e d8  ZL e e d9  ZM e e d:  ZN d;   ZO d< e f d=     YZP d>   ZQ d?   ZR d  d lS ZS d  d lT ZT eS jU eT jV eQ eR  d S(@   i(   t   print_functiont   astNt   StoreDeletedc           B  s   e  Z d    Z RS(   c         C  s   d S(   Nt   deleted(    (   t   self(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt
   __reduce__5   s    (   t   __name__t
   __module__R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   3   s   t   StoreModulec           B  s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   sP   
    This class represents one of the modules containing the store of data.
    c         C  s   t  |  j f f S(   N(   t   get_store_moduleR   (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   C   s    c         C  s   t  j |  d |  d  S(   Nt   __dict__(   t   objectt   __setattr__(   R   t   d(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   __init__F   s    c         C  s   | |  j  | <d  S(   N(   R
   (   R   t   keyt   value(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   I   s    c         C  s   |  j  | =d  S(   N(   R
   (   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   __delattr__L   s    (   R   R   t   __doc__R   R   R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   ;   s
   			c         C  s   t  j |  S(   N(   t   syst   modules(   t   name(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR	   R   s    t	   StoreDictc           B  s;   e  Z d  Z d   Z d   Z d   Z d   Z d   Z RS(   s_   
    This class represents the dictionary of a store module. It logs
    sets and deletes.
    c         C  s   t  d   d  S(   Ns0   Cannot pickle a reference to a store dictionary.(   t	   Exception(   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   \   s    c         C  s   i  |  _  t   |  _ d  S(   N(   t   oldt   sett   ever_been_changed(   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   _   s    	c         C  s#   i  |  _  t   |  _ |  j   d S(   sA   
        Called to reset this to its initial conditions.
        N(   R   R   R   t   clear(   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   reseti   s    	c         C  s   t  |   |  _ d S(   s@   
        Called to mark the start of a rollback period.
        N(   t   dictR   (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   beginr   s    c         C  s   i  } x* |  D]" } | |  j  k r t | | <q q WxH |  j  j   D]7 \ } } |  j | t  } | | k	 rC | | | <qC qC Wx | D] } |  j j |  q W| S(   s  
        For every key that has changed since begin() was called, returns a
        dictionary mapping the key to its value when begin was called, or
        deleted if it did not exist when begin was called.

        As a side-effect, updates self.ever_been_changed.
        (   R   R   t	   iteritemst   getR   t   add(   R   t   rvt   kt   vt   new_v(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   get_changesy   s    	(   R   R   R   R   R   R   R   R&   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   V   s   		
			c         C  s-  |  j  d  \ } } } | r+ t |  n  t |   }  |  t k rG d St j |   t j |  t    } | j   |  | d <|  | d <t	 d |  x9 t
 j j j   D]% \ } } | | k r | | | <q q W|  t k r t |  t j |  <n t |  t |  <t j |  <| r)t j |  t | | <n  d S(   s(   
    Creates the store with `name`.
    t   .NR   t   __package__t   1(   t
   rpartitiont   create_storet   strt   initialized_store_dictsR!   t   store_dictst
   setdefaultR   R   t   evalt   renpyt   minstoreR
   R   t   store_modulesR   R   R   (   R   t   parentt   _t   varR   R#   R$   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR+      s(    


t   StoreBackupc           B  s)   e  Z d  Z d   Z d   Z d   Z RS(   sh   
    This creates a copy of the current store, as it was at the start of
    the current statement.
    c         C  s{   i  |  _  i  |  _ i  |  _ xY t j   D]K \ } } t |  |  j  | <t | j  |  j | <t | j  |  j | <q( Wd  S(   N(   t   storeR   R   R.   R   R   R   (   R   R#   R$   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR      s    			c         C  st   t  | } | j   | j |  j |  | j j   | j j |  j |  | j j   | j j |  j |  d  S(   N(   R.   R   t   updateR8   R   R   (   R   R   t   sd(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   restore_one   s    

c         C  s"   x t  D] } |  j |  q Wd  S(   N(   R.   R;   (   R   R#   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   restore   s    (   R   R   R   R   R;   R<   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR7      s   		c          C  sD   x4 t  j   D]& \ }  } | j j   | j j   q Wt   a d S(   s    
    Copy the clean stores.
    N(   R.   R   R   R   R   R7   t   clean_store_backup(   t   _kR$   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   make_clean_stores   s    c           C  s   t  j   d S(   s-   
    Revert the store to the clean copy.
    N(   R=   R<   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   clean_stores  s    c         C  s-   |  j  d  s d |  }  n  t j |   d S(   s4   
    Reverts the named store to its clean copy.
    s   store.N(   t
   startswithR=   R;   (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   clean_store  s    c         C  s4   |  j  d  s d |  }  n  t |  } | j   d  S(   Ns   store.(   RA   R.   R   (   R   R:   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   reset_store_changes  s    
t
   NoRollbackc           B  s   e  Z d  Z RS(   s  
    :doc: norollback class

    Instances of classes inheriting from this class do not participate in
    rollback. Objects reachable through an instance of a NoRollback class
    only participate in rollback if they are reachable through other paths.
    (   R   R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyRD   $  s   c         C  s'  | r |   n  t  |   } | | k r, d St |  t t f  rO d | | <d Sd | | <t |  t  rl d Sy1 x* t |   j   D] } t | | |  q WWn n Xy= t |  t  s x' |  j	   D] } t | | |  q Wn  Wn n Xy+ x$ |  j   D] } t | | |  q WWn n Xd S(   s  
    @param obj: The object that was reached.
    @param path: The path from the store via which it was reached.

    `reachable`
        A map from id(obj) to int. The int is 1 if the object was reached
        normally, and 0 if it was reached, but inherits from NoRollback.

    Ni    i   (
   t   idt
   isinstanceRD   t   fileR   t   varst
   itervaluest   reachedt
   basestringt   __iter__(   t   objt	   reachablet   waitt   idobjR$   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyRJ   2  s6    


c         C  s   x$ |  j    D] } t | | |  q Wxu t j j D]g } t | j | |  t | j | |  x8 | j D]- } x$ | j    D] } t | | |  q} Wqj Wq4 Wd S(   s%  
    Marks everything reachable from the variables in the store
    or from the context info objects as reachable.

    @param store: A map from variable name to variable value.
    @param reachable: A dictionary mapping reached object ids to
    the path by which the object was reached.
    N(   RI   RJ   R1   t   gamet   contextst   infot   musict   dynamic_stack(   R8   RN   RO   R$   t   cR   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   reached_varsk  s    
t   WrapNodec           B  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C  sG   |  j  |  } | j sC | j j t j d d d t j     n  | S(   NRE   R   t   ctx(   t   generic_visitt   basest   appendR   t   Namet   Load(   R   t   n(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   visit_ClassDef  s    	+c         C  sL   t  j d t  j d d d t  j    d |  j |  g d g  d d  d d   S(	   Nt   funcRE   t   __renpy__set__RY   t   argst   keywordst   starargst   kwargs(   R   t   CallR]   R^   RZ   t   None(   R   R_   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   visit_SetComp  s    		c         C  sL   t  j d t  j d d d t  j    d |  j |  g d g  d d  d d   S(	   NRa   RE   t   __renpy__list__RY   Rc   Rd   Re   Rf   (   R   Rg   R]   R^   RZ   Rh   (   R   R_   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   visit_ListComp  s    		c         C  sn   t  | j t j  s" |  j |  St j d t j d d d t j    d |  j |  g d g  d d  d d   S(	   NRa   RE   Rj   RY   Rc   Rd   Re   Rf   (   RF   RY   R   R^   RZ   Rg   R]   Rh   (   R   R_   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt
   visit_List  s    		c         C  sL   t  j d t  j d d d t  j    d |  j |  g d g  d d  d d   S(	   NRa   RE   t   __renpy__dict__RY   Rc   Rd   Re   Rf   (   R   Rg   R]   R^   RZ   Rh   (   R   R_   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   visit_DictComp  s    		c         C  sL   t  j d t  j d d d t  j    d |  j |  g d g  d d  d d   S(	   NRa   RE   Rm   RY   Rc   Rd   Re   Rf   (   R   Rg   R]   R^   RZ   Rh   (   R   R_   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt
   visit_Dict  s    		(   R   R   R`   Ri   Rk   Rl   Rn   Ro   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyRX     s   					c         C  ss   | g } xc | rn | j  d  } |  | _ t | d d  } | d k	 rX | | | _ n  | j | j    q Wd S(   s<   Set the filename attribute to filename on every node in treei    t   linenoN(   t   popt   filenamet   getattrRh   Rp   t   extendt   getChildNodes(   Rr   t   offsett   treet   worklistt   nodeRp   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   set_filename  s    			u   [-￿]c         C  s   |  j  d  } t j |  s" | S|  j  d  } |  j  d  } |  j  d  } d | k rt d | k rt d | } n  | | | | } | S(   sZ   
    If the string s contains a unicode character, make it into a
    unicode string.
    i    i   i   i   t   ut   U(   t   groupt
   unicode_ret   search(   t   mt   st   prefixt   sept   bodyR"   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   unicode_sub  s    s*   ([uU]?[rR]?)("""|"|\'\'\'|\')((\\.|.)*?)\2c         C  s(   t  j |   r$ t j t |   }  n  |  S(   N(   R~   R   t	   string_ret   subR   (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   escape_unicode  s    s   <none>i   c   	      C  sv  t  |  t j  r" t |  | |  St  |  t j j  rL |  j } |  j } n  t |   }  |  j	 d d  }  t
 |   }  y | d } y) t } t |  | | t j | Bd  } Wn, t } t |  | | t j | Bd  } n Xt j |  } t j |  t j | | d  d } | r| j St | | | | d  SWn: t k
 rq} | j d k	 rh| j | 7_ n  |  n Xd S(   s  
    Compiles the given source code using the supplied codegenerator.
    Lists, List Comprehensions, and Dictionaries are wrapped when
    appropriate.

    `source`
        The source code, as a either a string, pyexpr, or ast module
        node.

    `mode`
        One of "exec" or "eval".

    `filename`
        The filename the source comes from. If a pyexpr is given, the
        filename embedded in the pyexpr is used.

    `lineno`
        The line number of the first line of source code. If a pyexpr is
        given, the filename embedded in the pyexpr is used.

    `ast_node`
        Rather than returning compiled bytecode, returns the AST object
        that would be used.
    s   t    i   i    N(   RF   R   t   Modulet   compileR1   t   PyExprRr   t
   linenumbert   unicodet   replaceR   t   new_compile_flagst   PyCF_ONLY_ASTt   old_compile_flagst	   wrap_nodet   visitt   fix_missing_locationst   increment_linenoR   t   SyntaxErrorRp   Rh   (	   t   sourcet   modeRr   Rp   t   ast_nodet   line_offsett   flagsRw   t   e(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt
   py_compile  s6    	
##c         K  s   t  |  d |  } t j |  S(   Nt   exec(   R   t   marshalt   dumps(   R   Rf   t   code(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   py_compile_exec_bytecodeK  s    c         K  s+   |  j    }  t |  d |  } t j |  S(   NR0   (   t   stripR   R   R   (   R   Rf   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   py_compile_eval_bytecodeP  s    c           s     f d   } | S(   Nc           s_   t  j j j } t |   | k rO t j |   |  j   f | t |   <t a	 n    |  | |  S(   N(
   R1   RQ   t   logt   mutatedRE   t   weakreft   reft   _cleant   Truet   mutate_flag(   R   Rc   Rf   R   (   t   method(    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   do_mutation`  s
    %	(    (   R   R   (    (   R   s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   mutator^  s    t   CompressedListc           B  s)   e  Z d  Z d   Z d   Z d   Z RS(   s  
    Compresses the changes in a queue-like list. What this does is to try
    to find a central sub-list for which has objects in both lists. It
    stores the location of that in the new list, and then elements before
    and after in the sub-list.

    This only really works if the objects in the list are unique, but the
    results are efficient even if this doesn't work.
    c         C  s  t  |  d d } | | } t  |  d d } x t d | d  D]J } | | | | k rn | | } Pn  | | | | k rF | | } PqF qF W| |  _ d |  _ d |  _ g  |  _ d  S| } | d }	 | }
 | d } t  |  } t  |  } x@ | r6|
 r6| | d | |
 d k r6| d 8} |
 d 8}
 q WxD |	 | k  r}| | k  r}| |	 | | k r}|	 d 7}	 | d 7} q:W| d |
 !|  _ | |  _ |	 |  _ | | |  _ d  S(   Ni   i   i    (   t   lent   ranget   pret   startt   endt   post(   R   R   t   newt
   new_centert	   new_pivott   old_halft   it
   old_centert	   new_startt   new_endt	   old_startt   old_endt   len_newt   len_old(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   z  s>    


				

+
/
		c         C  s   |  j  | |  j |  j !|  j S(   N(   R   R   R   R   (   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt
   decompress  s    c         C  s"   d j  |  j |  j |  j |  j  S(   Ns   <CompressedList {} [{}:{}] {}>(   t   formatR   R   R   R   (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   __repr__  s
    (   R   R   R   R   R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   o  s   		3	t   RevertableListc           B  s(  e  Z d    Z e e j  Z e e j  Z e e j  Z e e j  Z e e j	  Z	 e e j
  Z
 e e j  Z e e j  Z e e j  Z e e j  Z e e j  Z e e j  Z d   Z e e j  Z e e j  Z e e j  Z e e j  Z [ d   Z d   Z d   Z RS(   c         G  sB   t  j j } | d  k	 r. d  | j t |   <n  t j |  |  d  S(   N(   R1   RQ   R   Rh   R   RE   t   listR   (   R   Rc   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c           s     f d   } | S(   Nc            s   t    |  |    S(   N(   R   (   Rc   Rf   (   R   (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt	   newmethod  s    (    (   R   R   (    (   R   s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   wrapper  s    c         C  s   |  S(   sN   
        Gets a clean copy of this object before any mutation occurs.
        (    (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  si   |  s | r | St  j j d k r( | St |   t  j j k  sX t |  t  j j k  r\ | St | |   S(   s   
        Takes a clean copy of this object, compresses it, and returns compressed
        information that can be passed to rollback.
        N(   R1   t   configt   list_compression_lengthRh   R   R   (   R   t   clean(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt	   _compress  s    0c         C  s-   t  | t  r" | j |   |  (n | |  (d S(   s   
        Rolls this object back, using the information created by _compress.

        Since compressed can come from a save file, this method also has to
        recognize and deal with old data.
        N(   RF   R   R   (   R   t
   compressed(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt	   _rollback  s    (   R   R   R   R   R   t   __delitem__t   __delslice__t   __setitem__t   __iadd__t   __imul__R\   Rt   t   insertRq   t   removet   reverset   sortR   t   __add__t   __getslice__t   __mul__t   __rmul__R   R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s,   				c          G  s   t  t |     S(   N(   R   R   (   Rc   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   revertable_range  s    c          O  s   t  t |  |    S(   N(   R   t   sorted(   Rc   Rf   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   revertable_sorted  s    t   RevertableDictc           B  s   e  Z d    Z e e j  Z e e j  Z e e j  Z e e j  Z e e j	  Z	 e e j
  Z
 d   Z e e j  Z e e j  Z e e j  Z [ d   Z d   Z d   Z d   Z RS(   c         O  sE   t  j j } | d  k	 r. d  | j t |   <n  t j |  | |  d  S(   N(   R1   RQ   R   Rh   R   RE   R   R   (   R   Rc   Rf   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c           s     f d   } | S(   Nc            s   t    |  |    S(   N(   R   (   Rc   Rf   (   R   (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    (    (   R   R   (    (   R   s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   list_wrapper  s    c         C  s   t    } | j |   | S(   N(   R   R9   (   R   R"   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   copy'  s    	c         C  s
   |  j    S(   N(   t   items(   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   ,  s    c         C  s   | S(   N(    (   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   /  s    c         C  s/   |  j    x | D] \ } } | |  | <q Wd  S(   N(   R   (   R   R   R#   R$   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   2  s    
(   R   R   R   R   R   R   R   R   Rq   t   popitemR/   R   t   keyst   valuesR   R   R   R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   
  s    					t   RevertableSetc           B  s  e  Z d    Z e e j j  Z e e j j  Z e e j j  Z e e j j	  Z	 e e j j
  Z
 e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z d   Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z e e j j  Z [ d   Z  d   Z! d   Z" RS(   c         G  sE   t  j j } | d  k	 r. d  | j t |   <n  t j j |  |  d  S(   N(	   R1   RQ   R   Rh   R   RE   t   setst   SetR   (   R   Rc   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   ;  s    c           s     f d   } | S(   Nc            s3     |  |   } t  | t j  r+ t |  S| Sd  S(   N(   RF   R   R   R   (   Rc   Rf   R"   (   R   (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   S  s    
(    (   R   R   (    (   R   s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   R  s    c         C  s
   t  |   S(   N(   R   (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   j  s    c         C  s   | S(   N(    (   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   m  s    c         C  s'   t  j j |   t  j j |  |  d  S(   N(   R   R   R   R9   (   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   p  s    (#   R   R   R   R   R   R   t   __iand__t   __ior__t   __isub__t   __ixor__R!   R   t   difference_updatet   discardt   intersection_updateRq   R   t   symmetric_difference_updatet   union_updateR9   R   t   __and__t   __copy__t   __deepcopy__t   __sub__t   __xor__t   __or__R   t
   differencet   intersectiont   symmetric_differencet   unionR   R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   9  s>   		
		t   RevertableObjectc           B  sV   e  Z d    Z d   Z d   Z e e  Z e e  Z d   Z d   Z d   Z RS(   c         O  sJ   t  t |   j |   } t j j } | d  k	 rF d  | j t |  <n  | S(   N(	   t   superR   t   __new__R1   RQ   R   Rh   R   RE   (   t   clsRc   Rf   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   w  s
    c         C  s   t  j |  | |  d  S(   N(   R   R   (   R   t   attrR   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  s   t  j |  |  d  S(   N(   R   R   (   R   R  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  s   |  j  j   S(   N(   R
   R   (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  s   | S(   N(    (   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  s!   |  j  j   |  j  j |  d  S(   N(   R
   R   R9   (   R   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    (	   R   R   R   R   R   R   R   R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR   u  s   						t	   DetRandomc           B  s8   e  Z d    Z d   Z d   Z d   Z d d  Z RS(   c         C  s    t  t |   j   g  |  _ d  S(   N(   R   R  R   t   stack(   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  se   |  j  r |  j  j   } n t t |   j   } t j j } | j d  k	 ra | j j j
 |  n  | S(   N(   R  Rq   R   R  t   randomR1   RQ   R   t   currentRh   R\   (   R   R"   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR    s    	c         C  s%   | } | j    |  j j |  d S(   su   
        Pushes the random numbers in l onto the stack so they will be generated
        in the order given.
        N(   R   R  Rt   (   R   t   lt   ll(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   pushback  s    
c         C  s   g  |  _  d S(   sI   
        Resets the RNG, removing all of the pushbacked numbers.
        N(   R  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  s   t    } | j |  | S(   sF   
        Returns a new RNG object separate from the main one.
        (   R  t   seed(   R   R	  R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   Random  s    	N(   R   R   R   R  R  R   Rh   R
  (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR    s
   				i    t   Rollbackc           B  sG   e  Z d  Z d Z d Z d   Z d   Z d   Z d   Z	 d   Z
 RS(   s<  
    Allows the state of the game to be rolled back to the point just
    before a node began executing.

    @ivar context: A shallow copy of the context we were in before
    we started executing the node. (Shallow copy also includes
    a copy of the associated SceneList.)

    @ivar objects: A list of tuples, each containing an object and a
    token of information that, when passed to the rollback method on
    that object, causes that object to rollback.

    @ivar store: A list of updates to store that will cause the state
    of the store to be rolled back to the start of node
    execution. This is a list of tuples, either (key, value) tuples
    representing a value that needs to be assigned to a key, or (key,)
    tuples that mean the key should be deleted.

    @ivar checkpoint: True if this is a user-visible checkpoint,
    false otherwise.

    @ivar purged: True if purge_unreachable has already been called on
    this Rollback, False otherwise.

    @ivar random: A list of random numbers that were generated during the
    execution of this element.
    i   c         C  s   t  t |   j   t j j   j   |  _ g  |  _ t |  _	 g  |  _
 d  |  _ i  |  _ t |  _ t |  _ t |  _ t t f |  _ t d 7a d  S(   Ni   (   R   R  R   R1   RQ   t   contextt   rollback_copyt   objectst   Falset   purgedR  Rh   t   forwardt   storest   retain_after_loadt
   checkpointt   hard_checkpointt
   generationt   serialt
   identifier(   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    								c         C  s   | d k  r i i  d 6|  _  x` |  j D]R } t |  d k r^ | \ } } | |  j  d | <q& | \ } t |  j  d | <q& Wn  | d k  r t |  _ n  | d k  r |  j |  _ n  d  S(   Ni   R8   i   i   (   R  R8   R   R   R  R  R  R  (   R   t   versionR   R#   R$   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   after_upgrade  s    	c   
      C  sf  |  j  r t St |  _  xS |  j j   D]B } x9 | j   D]+ \ } } | t k	 r9 t | | |  q9 q9 Wq& Wt |  j j	 | |  x; |  j j
 D]- } x$ | j   D] } t | | |  q Wq Wt |  j j j   | |  g  } xt |  j D]i \ } }	 | j t |  d  r6| j | |	 f  t |	 | |  q t j j r t d | f  q q W| |  _ t S(   sT  
        Adds objects that are reachable from the store of this
        rollback to the set of reachable objects, and purges
        information that is stored about totally unreachable objects.

        Returns True if this is the first time this method has been
        called, or False if it has already been called once before.
        i    s   Removing unreachable:(   R  R  R   R  RI   R   R   RJ   R  RS   RU   t   scene_listst   get_all_displayablesR  R    RE   R\   R1   R   t   debugt   print(
   R   RN   RO   t   changesR>   R$   R   t   new_objectst   ot   rb(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   purge_unreachable  s,    
			c         C  s  x9 t  |  j  D]( \ } } | d k	 r | j |  q q Wx |  j j   D]z \ } } t j | d  } | d k rz d SxI | j   D]; \ } } | t k r | | k r | | =q q | | | <q WqL Wt	 j
 |  j  t j j j   t j j j |  j  d S(   so   
        Reverts the state of the game to what it was at the start of the
        previous checkpoint.
        N(   t   reversedR  Rh   R   R  R   R.   R    R   t   rngR  R  R1   RQ   RR   Rq   R\   R  (   R   RM   t   rollR   R  R8   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   rollbackO  s    c         C  s*   t  j j j   t  j j j |  j  d S(   sr   
        This rolls back only the control information, while leaving
        the data information intact.
        N(   R1   RQ   RR   Rq   R\   R  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   rollback_controlj  s    N(   R   R   R   t   __version__Rh   R  R   R  R#  R'  R(  (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR    s   			0	t   RollbackLogc           B  s  e  Z d  Z d Z d d d g Z d Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d d  Z d   Z d   Z d   Z d e e d  Z d   Z d   Z d   Z d   Z d   Z e d e e e d  Z d d  Z d   Z d d  Z d   Z d   Z RS(   s  
    This class manages the list of Rollback objects.

    @ivar log: The log of rollback objects.

    @ivar current: The current rollback object. (Equivalent to
    log[-1])

    @ivar rollback_limit: The number of steps left that we can
    interactively rollback.

    Not serialized:

    @ivar mutated: A dictionary that maps object ids to a tuple of
    (weakref to object, information needed to rollback that object)
    i   t	   old_storeR   t   identifier_cachec         C  s   t  t |   j   g  |  _ d  |  _ i  |  _ d |  _ t |  _	 t |  _
 d  |  _ g  |  _ i  |  _ t |  _ t j   t |  _ d  S(   Ni    (   R   R*  R   R   Rh   R  R   t   rollback_limitR  t   rollback_is_fixedt   checkpointing_suspendedt   fixed_rollback_boundaryR  R+  t   rolled_forwardR%  R   t   retain_after_load_flag(   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    										
c         C  s   i  |  _  t |  _ d  S(   N(   R   R  R1  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   after_setstate  s    	c         C  s   | d k  r( i t  |  j  d 6|  _ n  | d k  rI t |  _ d  |  _ n  | d k  ra t |  _ n  | d k  r |  j r d } x/ |  j |  j D] } | j	 r | d 7} q q W| |  _ q n  d  S(   Ni   R8   i   i   i   i    i   (
   R   R   R  R.  Rh   R0  R2  R-  R   R  (   R   R  t   nrblR"  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR    s    			c         C  sO  d |  _ t j j   } | j s% d S| j j   s8 d St |  j	  t j
 j k rm |  j	 t j
 j |  _	 n  |  j	 r |  j	 d |  j k r |  j j j |  j k r t |  _ q |  j r |  j r |  j j j |  _ t |  _ q n  t   |  _ |  j |  j _ |  j	 j |  j  i  |  _ t a t |  _ x t j   D] } | j   q7Wd S(   s~   
        Called before a node begins executing, to indicate that the
        state needs to be saved for rollbacking.
        Ni(   Rh   R,  R1   RQ   R  R'  R  t   transient_is_emptyR   R   R   t   rollback_lengthR  R0  R  R.  R  R  R2  R  R\   R   R   R   R1  R.   RI   R   (   R   R  R:   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s,    				c   
      C  s   x0 t  j   D]" \ } } | j   |  j j | <q Wx t d  D] } g  |  j _ y x~ |  j j   D]m \ } } | d k r qe n  | \ } } |   } | d k r qe n  | j	 |  }	 |  j j j
 | |	 f  qe WPWq@ t k
 r q@ Xq@ Wd S(   s,  
        Called after a node is finished executing, before a save
        begins, or right before a rollback is attempted. This may be
        called more than once between calls to begin, and should always
        be called after an update to the store but before a rollback
        occurs.
        i   N(   R.   R   R&   R  R  t   xrangeR  R   Rh   R   R\   t   RuntimeError(
   R   R   R:   t   _iR>   R$   R   R   RM   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   complete  s"    	c         C  sr   i  } xe t  j   D]W \ } } xH | j D]= } | | k rT | | | | d | <q) t | | d | <q) Wq W| S(   s  
        Return a map giving the current roots of the store. This is a
        map from a variable name in the store to the value of that
        variable. A variable is only in this map if it has ever been
        changed since the init phase finished.
        R'   (   R.   R   R   R   (   R   R"   t
   store_nameR:   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt	   get_roots  s    c         C  sU   i  } t  | | |  |  j } | j   x$ | D] } | j | |  s1 Pq1 q1 Wd S(   s  
        This is called to purge objects that are unreachable from the
        roots from the object rollback lists inside the Rollback entries.

        This should be called immediately after complete(), so that there
        are no changes queued up.
        N(   RW   R   R   R#  (   R   t   rootsRO   RN   t   revlogR   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR#  /  s    	

c         C  s   |  j  r t St Sd  S(   N(   R  R   R  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   in_rollbackC  s    	c         C  s   |  j  S(   N(   R.  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   in_fixed_rollbackI  s    c         C  s<   |  j  r8 |  j  d \ } } |  j j j | k r8 | Sn  d S(   s;   
        Returns the current forward info, if any.
        i    N(   R  R  R  Rh   (   R   R   t   data(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   forward_infoL  s
    	c         C  s  |  j  r t } n  t |  _ |  j j r+ d St j j   j sA d St	 |  j _ | r |  j j
 r |  j t j j k  r |  j d 7_ n  | |  j _
 n  |  j   r
|  j r
|  j d \ } } |  j j j | k r | |  j _ |  j j d  q| |  j _ g  |  _ n | d k	 r|  j r|  j d \ } } |  j j j | k ru| | k ru| sb|  j ru|  j j d  qg  |  _ n  | |  j _ n  d S(   s   
        Called to indicate that this is a checkpoint, which means
        that the user may want to rollback to just before this
        node.
        Ni   i    (   R/  R  R2  R  R  R1   RQ   R  R'  R   R  R-  R   t   hard_rollback_limitR@  R  Rq   Rh   R1  (   R   RA  t   keep_rollbackt   hardt   fwd_namet   fwd_data(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR  Z  s8    				c         C  s   | |  _  d S(   s{   
        Called to temporarily suspend checkpointing, so any rollback
        will jump to prior to this statement
        N(   R/  (   R   t   flag(    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   suspend_checkpointing  s    c         C  s   d |  _  d S(   sr   
        Called to indicate that the user should not be able to rollback
        through this checkpoint.
        i    N(   R-  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   block  s    c         C  s   t  |  _ t  |  j _ d S(   sv   
        Called to return data from this statement until the next checkpoint
        when the game is loaded.
        N(   R   R2  R  R  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR    s    	c         C  s<   |  j  r8 t |  j  d k r8 |  j d j j |  _ n  d  S(   Ni   i(   R.  R   R   R  R  R0  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   fix_rollback  s    c         C  s   |  j  d k S(   s2   
        Returns True if we can rollback.
        i    (   R-  (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   can_rollback  s    c         C  s  | r  |  j  d k r  | r  d S|  j t  |  j |  j    g  } x |  j r |  j j   } | j |  | j r |  j  d 8_  n  | j s | r | j	 r | d 8} n  | d k rI t
 j j j | j j  r Pq qI qI W| r t d   n  t d  | j   |  j | |  _ d St }	 x | r|  j r|  j d } t
 j j j | j j  saPn  | j	 rt | j j t  rt }	 | j |  j j    n  Pn  | j |  j j    q&Wt
 j j   j rt }
 g  } n/ t }
 t
 j j d } t
 j j d d !t
 j _ | r.| d j r.| j   } n d } xm | D]e } | j   | j j |  j k rlt |  _ n  | j d k	 r;|  j j d | j j | j f  q;q;W| d k	 r| j   |  j j |  n  | t
 j j _  | rt! j"   g  |  _ n  | t
 j _# t
 j$ j$ j   x! t
 j j D] } | j% j&   q!Wt
 j j j' |  |	 rft t
 j j   _( n  |
 rt
 j j) |   n t
 j j* |   d S(   s  
        This rolls the system back to the first valid rollback point
        after having rolled back past the specified number of checkpoints.

        If we're currently executing code, it's expected that complete()
        will be called before a rollback is attempted.

        force makes us throw an exception if we can't find a place to stop
        rolling back, otherwise if we run out of log this call has no
        effect.

        `label`
            A label that is called after rollback has finished, if the
            label exists.

        `greedy`
            If true, rollback will keep going until just after the last
            checkpoint. If False, it will stop immediately before the
            current statement.

        `on_load`
            Should be true if this rollback is being called in response to a
            load. Used to implement .retain_after_load()

        `abnormal`
            If true, treats this as an abnormal event, suppresisng rollback
            and so on.
        i    Ni   s^   Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?s4   Can't find a place to rollback to. Not rolling back.i(+   R-  RI  R  R#  R<  R   Rq   R\   R  R  R1   RQ   t   scriptt	   has_labelR  R  R   R  R   RF   RK   R   R'  RR   R  Rh   R0  R.  R  R   R(  t	   interfacet   suppress_transitionR%  R   t   after_rollbackt   audioR  t   remove_all_hiddenRt   t   force_checkpointt   RestartTopContextt   RestartContext(   R   t   checkpointst   forcet   labelt   greedyt   on_loadt   abnormalR>  R"  RT  t   replace_contextt   other_contextst   retainedR   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR'    s     	

		
)

c         C  s9   |  j    |  j   } |  j | d | t |  j _ | S(   s	  
        This is called to freeze the store and the log, in preparation
        for serialization. The next call on log should either be
        unfreeze (called after a serialization reload) or discard_freeze()
        (called after the save is complete).
        RO   (   R:  R<  R#  R  R  R  (   R   RO   R=  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   freezeG  s
    	
c         C  s   d S(   sa   
        Called to indicate that we will not be restoring from the
        frozen state.
        N(    (   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   discard_freezeY  s    c      
   C  s  t  j j j   |  t  j _ t   t  j j   x | j	   D] \ } } d | k rp | j
 d d  \ } } n d } | t k r q= n  t | } | j j |  | t k r | | k r | | =q q= | | | <q= Wt  j j d t  } |  j d d t d | d | d	 t d
 S(   s}  
        Used to unfreeze the game state after a load of this log
        object. This call will always throw an exception. If we're
        lucky, it's the one that indicates load was successful.

        @param roots: The roots returned from freeze.

        @param label: The label that is jumped to in the game script
        after rollback has finished, if it exists.
        R'   i   R8   t   _greedy_rollbacki    RX  RY  RZ  R[  N(   R1   t   displayt   screent   before_restartRQ   R   R@   t   translationt   init_translationR   t   rsplitR.   R   R!   R   t   sessionRq   R  R'  R   (   R   R=  RY  R   R   R;  R8   RZ  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   unfreeze_  s$    
c         C  s   |  j  d  k	 r d  S|  j } d } i  |  _  x t |  j  D]| } | j d  k	 r t j j j	 | j
 j  r | |  j  | j <q n  | j r | d 7} n  | j r | d 8} n  | s; Pq; q; Wd  S(   Ni   (   R,  Rh   R-  R$  R   R  R1   RQ   RM  RN  R  R  R  R  (   R   R-  RW  R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   build_identifier_cache  s    				c         C  s   |  j    |  j j | d   S(   N(   Rk  R,  R    Rh   (   R   R  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   get_identifier_checkpoints  s    
N(   R   R   R   R)  t   nosaveRh   R,  R   R3  R  R   R:  R<  R#  R?  R@  RB  R  R   R  RI  RJ  R  RK  RL  R'  R`  Ra  Rj  Rk  Rl  (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR*  t  s4   				4	+				4							/	R8   c         B  sK   | r i  } n  | d  k r( e | } n  | d  k r= | } n  |  | | Ud  S(   N(   Rh   R.   (   t   bytecodet   hidet   globalst   localsR8   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   py_exec_bytecode  s    		c         B  sE   | d  k r e d } n  | r( i  } n | } e |  d  | | Ud  S(   NR8   R   (   Rh   R.   R   (   R   Ro  R8   Rq  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   py_exec  s    	c         C  s>   | d  k r t d } n  | d  k r. | } n  t |  | |  S(   NR8   (   Rh   R.   R0   (   Rn  Rp  Rq  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   py_eval_bytecode  s
    	c         C  s1   t  |  t  r! t |  d  }  n  t |  | |  S(   NR0   (   RF   RK   R   Rt  (   R   Rp  Rq  (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   py_eval  s    c         B  sW   | \ } } e  j d |  } e  j | | d  e | | d  } | i |  d 6Ud S(   s   
    Raises `e` (which must be an Exception object) at location `loc`.

    `loc`
        A location, which should be a (filename, line_number) tuple.
    s   raise ei   R   R   N(   R   t   parseR   R   (   R   t   locRr   t   lineRy   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   raise_at_location  s
    t
   StoreProxyc           B  s#   e  Z d    Z d   Z d   Z RS(   c         C  s   t  t j |  S(   N(   Rs   R1   R8   (   R   R#   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   __getattr__  s    c         C  s   t  t j | |  d  S(   N(   t   setattrR1   R8   (   R   R#   R$   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    c         C  s   t  t j |  d  S(   N(   t   delattrR1   R8   (   R   R#   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR     s    (   R   R   R{  R   R   (    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyRz    s   		c         C  s=   |  j  j } |  j } | d  k r- |  j } n  t | | f f S(   N(   t   im_funcR   t   im_selfRh   t   im_classt   method_unpickle(   R   R   RM   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   method_pickle  s
    	c         C  s   t  |  |  S(   N(   Rs   (   RM   R   (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyR    s    (W   t
   __future__R    t
   __import__R   R   R  R   t   reR   R   t   timet   renpy.audioR1   R   R   R   R   R	   R   R   R.   R3   R   R-   R+   R7   Rh   R=   R?   R@   RB   RC   RD   RJ   RW   t   NodeTransformerRX   R   Rz   R   R~   R   R   R   t   nested_scopest   compiler_flagt   with_statementR   t   absolute_importt   unicode_literalsR   R  R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R
  R  R%  R  R  t   ObjectR  R*  Rr  Rs  Rt  Ru  Ry  Rz  R  R  t   copy_regt   typest   picklet
   MethodType(    (    (    s[   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\python.pyt   <module>   s   			A		*(					9	E					$C			IJ		/<!/	  :			