PKh0D5 SimPy 3.0.4 documentation

Documentation for SimPy

Contents:

SimPy home

SimPy in 10 Minutes

In this section, you’ll learn the basics of SimPy in just a few minutes. Afterwards, you will be able to implement a simple simulation using SimPy and you’ll be able to make an educated decision if SimPy is what you need. We’ll also give you some hints on how to proceed to implement more complex simulations.

Installation

SimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have pip installed, just type

$ pip install simpy

and you are done.

Alternatively, you can download SimPy and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:

$ python setup.py install

You can now optionally run SimPy’s tests to see if everything works fine. You need pytest and mock for this:

$ python -c "import simpy; simpy.test()"

Upgrading from SimPy 2

If you are already familiar with SimPy 2, please read the Guide Porting from SimPy 2 to 3.

What’s Next

Now that you’ve installed SimPy, you probably want to simulate something. The next section will introduce you to SimPy’s basic concepts.

Basic Concepts

SimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled with processes. All processes live in an environment. They interact with the environment and with each other via events.

Processes are described by simple Python generators. You can call them process function or process method, depending on whether it is a normal function or method of a class. During their lifetime, they create events and yield them in order to wait for them to be triggered.

When a process yields an event, the process gets suspended. SimPy resumes the process, when the event occurs (we say that the event is triggered). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.

An important event type is the Timeout. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A Timeout and all other events can be created by calling the appropriate method of the Environment that the process lives in (Environment.timeout() for example).

Our First Process

Our first example will be a car process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.

So let’s start:

>>> def car(env):
...     while True:
...         print('Start parking at %d' % env.now)
...         parking_duration = 5
...         yield env.timeout(parking_duration)
...
...         print('Start driving at %d' % env.now)
...         trip_duration = 2
...         yield env.timeout(trip_duration)

Our car process requires a reference to an Environment (env) in order to create new events. The car‘s behavior is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a yield statement is reached. Once the yielded event is triggered (“it occurs”), the simulation will resume the function at this statement.

As I said before, our car switches between the states parking and driving. It announces its new state by printing a message and the current simulation time (as returned by the Environment.now property). It then calls the Environment.timeout() factory function to create a Timeout event. This event describes the point in time the car is done parking (or driving, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.

Now that the behavior of our car has been modeled, lets create an instance of it and see how it behaves:

>>> import simpy
>>> env = simpy.Environment()
>>> env.process(car(env))
<Process(car) object at 0x...>
>>> env.run(until=15)
Start parking at 0
Start driving at 5
Start parking at 7
Start driving at 12
Start parking at 14

The first thing we need to do is to create an instance of Environment. This instance is passed into our car process function. Calling it creates a process generator that needs to be started and added to the environment via Environment.process().

Note, that at this time, none of the code of our process function is being executed. It’s execution is merely scheduled at the current simulation time.

The Process returned by process() can be used for process interactions (we will cover that in the next section, so we will ignore it for now).

Finally, we start the simulation by calling run() and passing an end time to it.

What’s Next?

You should now be familiar with Simpy’s terminology and basic concepts. In the next section, we will cover process interaction.

Process Interaction

The Process instance that is returned by Environment.process() can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.

Waiting for a Process

As it happens, a SimPy Process can be used like an event (technically, a process actually is an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.

Lets assume that the car from our last example magically became an electric vehicle. Electric vehicles usually take a lot of time charing their batteries after a trip. They have to wait until their battery is charged before they can start driving again.

We can model this with an additional charge() process for our car. Therefore, we refactor our car to be a class with two process methods: run() (which is the original car() process function) and charge().

The run process is automatically started when Car is instantiated. A new charge process is started every time the vehicle starts parking. By yielding the Process instance that Environment.process() returns, the run process starts waiting for it to finish:

>>> class Car(object):
...     def __init__(self, env):
...         self.env = env
...         # Start the run process everytime an instance is created.
...         self.proc = env.process(self.run())
...
...     def run(self):
...         while True:
...             print('Start parking and charging at %d' % env.now)
...             charge_duration = 5
...             # We yield the process that process() returns
...             # to wait for it to finish
...             yield env.process(self.charge(charge_duration))
...
...             # The charge process has finished and
...             # we can start driving again.
...             print('Start driving at %d' % env.now)
...             trip_duration = 2
...             yield env.timeout(trip_duration)
...
...     def charge(self, duration):
...         yield self.env.timeout(duration)

Starting the simulation is straight forward again: We create an environment, one (or more) cars and finally call meth:~Environment.simulate().

>>> import simpy
>>> env = simpy.Environment()
>>> car = Car(env)
>>> env.run(until=15)
Start parking and charging at 0
Start driving at 5
Start parking and charging at 7
Start driving at 12
Start parking and charging at 14

Interrupting Another Process

Imagine, you don’t want to wait until your electric vehicle is fully charged but want to interrupt the charging process and just start driving instead.

SimPy allows you to interrupt a running process by calling its interrupt() method:

>>> def driver(env, car):
...     yield env.timeout(3)
...     car.action.interrupt()

The driver process has a reference to the car’s run process. After waiting for 3 time steps, it interrupts that process.

Interrupts are thrown into process functions as Interrupt exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event):

>>> class Car(object):
...     def __init__(self, env):
...         self.env = env
...         self.action = env.process(self.run())
...
...     def run(self):
...         while True:
...             print('Start parking and charging at %d' % env.now)
...             charge_duration = 5
...             # We may get interrupted while charging the battery
...             try:
...                 yield env.process(self.charge(charge_duration))
...             except simpy.Interrupt:
...                 # When we received an interrupt, we stop charing and
...                 # switch to the "driving" state
...                 print('Was interrupted. Hope, the battery is full enough ...')
...
...             print('Start driving at %d' % env.now)
...             trip_duration = 2
...             yield env.timeout(trip_duration)
...
...     def charge(self, duration):
...         yield self.env.timeout(duration)

When you compare the output of this simulation with the previous example, you’ll notice that the car now starts driving at time 3 instead of 5:

>>> env = simpy.Environment()
>>> car = Car(env)
>>> env.process(driver(env, car))
<Process(driver) object at 0x...>
>>> env.run(until=15)
Start parking and charging at 0
Was interrupted. Hope, the battery is full enough ...
Start driving at 3
Start parking and charging at 5
Start driving at 10
Start parking and charging at 12

What’s Next

We just demonstrated two basic methods for process interactions—waiting for a process and interrupting a process. Take a look at the Topical Guides or the Process API reference for more details.

In the next section we will cover the basic usage of shared resources.

Shared Resources

SimPy offers three types of resources that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.

In this section, we’ll briefly introduce SimPy’s Resource class.

Basic Resource Usage

We’ll slightly modify our electric vehicle process car that we introduced in the last sections.

The car will now drive to a battery charging station (BCS) and request one of its two charging spots. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards:

>>> def car(env, name, bcs, driving_time, charge_duration):
...     # Simulate driving to the BCS
...     yield env.timeout(driving_time)
...
...     # Request one of its charging spots
...     print('%s arriving at %d' % (name, env.now))
...     with bcs.request() as req:
...         yield req
...
...         # Charge the battery
...         print('%s starting to charge at %s' % (name, env.now))
...         yield env.timeout(charge_duration)
...         print('%s leaving the bcs at %s' % (name, env.now))

The resource’s request() method generates an event that lets you wait until the resource becomes available again. If you are resumed, you “own” the resource until you release it.

If you use the resource with the with statement as shown above, the resource is automatically being released. If you call request() without with, you are responsible to call release() once you are done using the resource.

When you release a resource, the next waiting process is resumed and now “owns” one of the resource’s slots. The basic Resource sorts waiting processes in a FIFO (first in—first out) way.

A resource needs a reference to an Environment and a capacity when it is created:

>>> import simpy
>>> env = simpy.Environment()
>>> bcs = simpy.Resource(env, capacity=2)

We can now create the car processes and pass a reference to our resource as well as some additional parameters to them:

>>> for i in range(4):
...     env.process(car(env, 'Car %d' % i, bcs, i*2, 5))
<Process(car) object at 0x...>
<Process(car) object at 0x...>
<Process(car) object at 0x...>
<Process(car) object at 0x...>

Finally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don’t need to specify an until time—the simulation will automatically stop when there are no more events left:

>>> env.run()
Car 0 arriving at 0
Car 0 starting to charge at 0
Car 1 arriving at 2
Car 1 starting to charge at 2
Car 2 arriving at 4
Car 0 leaving the bcs at 5
Car 2 starting to charge at 5
Car 3 arriving at 6
Car 1 leaving the bcs at 7
Car 3 starting to charge at 7
Car 2 leaving the bcs at 10
Car 3 leaving the bcs at 12

Note that the first to cars can start charging immediately after they arrive at the BCS, while cars 2 an 3 have to wait.

What’s Next

You should now be familiar with SimPy’s basic concepts. The next section shows you how you can proceed with using SimPy from here on.

How to Proceed

If you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various examples we provide.

If you are looking for a more detailed description of a certain aspect or feature of SimPy, the Topical Guides section might help you.

Finally, there is an API Reference that describes all functions and classes in full detail.

Topical Guides

This sections covers various aspects of SimPy more in-depth. It assumes that you have a basic understanding of SimPy’s capabilities and that you know what you are looking for.

SimPy basics

This guide describes the basic concepts of SimPy: How does it work? What are processes, events and the environment? What can I do with them?

How SimPy works

If you break SimPy down, it is just an asynchronous event dispatcher. You generate events and schedule them at a given simulation time. Events are sorted by priority, simulation time, and an increasing event id. An event also has a list of callbacks, which are executed when the event is triggered and processed by the event loop. Events may also have a return value.

The components involved in this are the Environment, events and the process functions that you write.

Process functions implement your simulation model, that is, they define the behavior of your simulation. They are plain Python generator functions that yield instances of Event.

The environment stores these events in its event list and keeps track of the current simulation time.

If a process function yields and event, SimPy adds the process to the event’s callbacks and suspends the process until the event is triggered and processed. When a process waiting for an event is resumed, it will also receive the event’s value.

Here is a very simple example that illustrates all this; the code is more verbose than it needs to be to make things extra clear. You find a compact version of it at the end of this section:

>>> import simpy
>>>
>>> def example(env):
...     event = simpy.events.Timeout(env, delay=1, value=42)
...     value = yield event
...     print('now=%d, value=%d' % (env.now, value))
>>>
>>> env = simpy.Environment()
>>> example_gen = example(env)
>>> p = simpy.events.Process(env, example_gen)
>>>
>>> env.run()
now=1, value=42

The example() process function above first creates a Timeout event. It passes the environment, a delay, and a value to it. The Timeout schedules itself at now + delay (that’s why the environment is required); other event types usually schedule themselves at the current simulation time.

The process function then yields the event and thus gets suspended. It is resumed, when SimPy processes the Timeout event. The process function also receives the event’s value (42) – this is, however, optional, so yield event would have been okay if the you were not interested in the value or if the event had no value at all.

Finally, the process function prints the current simulation time (that is accessible via the environment’s now attribute) and the Timeout’s value.

If all required process functions are defined, you can instantiate all objects for your simulation. In most cases, you start by creating an instance of Environment, because you’ll need to pass it around a lot when creating everything else.

Starting a process function involves two things:

  1. You have to call the process function to create a generator object. (This will not execute any code of that function yet. Please read The Python yield keyword explained, to understand why this is the case.)
  2. You then create an instance of Process and pass the environment and the generator object to it. This will schedule an Initialize event at the current simulation time which starts the execution of the process function. The process instance is also an event that is triggered when the process function returns. The guide to events explains why this is handy.

Finally, you can start SimPy’s event loop. By default, it will run as long as there are events in the event list, but you can also let it stop earlier by providing an until argument (see Simulation control).

The following guides describe the environment and its interactions with events and process functions in more detail.

“Best practice” version of the example above

>>> import simpy
>>>
>>> def example(env):
...     value = yield env.timeout(1, value=42)
...     print('now=%d, value=%d' % (env.now, value))
>>>
>>> env = simpy.Environment()
>>> p = env.process(example(env))
>>> env.run()
now=1, value=42

Environments

A simulation environment manages the simulation time as well as the scheduling and processing of events. It also provides means to step through or execute the simulation.

The base class for all environments is BaseEnvironment. “Normal” simulations usually use its subclass Environment. For real-time simulations, SimPy provides a RealtimeEnvironment (more on that in realtime_simulations).

Simulation control

SimPy is very flexible in terms of simulation execution. You can run your simulation until there is no more event, until a certain simulation time is reached, or until a certain event is triggered. You can also step through the simulation event by event. Furthermore, you can mix these things as you like.

For example, you could run your simulation until an interesting event occurs. You could then step through the simulation event by event for a while; and finally run the simulation until there is no more event left and your processes all have terminated.

The most important method here is Environment.run():

  • If you call it without any argument (env.run()), it steps through the simulation until there is no more event left.

    Warning

    If your processes run forever (while True: yield env.timeout(1)), this method will never terminate (unless you kill your script by e.g., pressing Ctrl-C).

  • In most cases it is more advisable to stop your simulation when it reaches a certain simulation time. Therefore, you can pass the desired time via the until parameter, e.g.: env.run(until=10).

    The simulation will then stop when the internal clock reaches 10 but will not process any events scheduled for time 10. This is similar to a new environment where the clock is 0 but (obviously) no events have yet been processed.

    If you want to integrate your simulation in a GUI and want to draw a process bar, you can repeatedly call this function with increasing until values and update your progress bar after each call:

    for i in range(100):
        env.run(until=i)
        progressbar.update(i)
    
  • Instead of passing a number to run(), you can also pass any event to it. run() will then return when the event has been processed.

    Assuming that the current time is 0, env.run(until=env.timeout(5)) is equivalent to env.run(until=5).

    You can also pass other types of events (remember, that a Process is an event, too):

    >>> import simpy
    >>>
    >>> def my_proc(env):
    ...     yield env.timeout(1)
    ...     return 'Monty Python’s Flying Circus'
    >>>
    >>> env = simpy.Environment()
    >>> proc = env.process(my_proc(env))
    >>> env.run(until=proc)
    'Monty Python’s Flying Circus'
    

To step through the simulation event by event, the environment offers peek() and step().

peek() returns the time of the next scheduled event of infinity (float('inf')) of no more event is scheduled.

step() processes the next scheduled event. It raises an EmptySchedule exception if no event is available.

In a typical use case, you use these methods in a loop like:

until = 10
while env.peek() < until:
   env.step()

State access

The environment allows you to get the current simulation time via the Environment.now property. The simulation time is a number without unit and is increased via Timeout events.

By default, now starts at 0, but you can pass an initial_time to the Environment to use something else.

Note

Although the simulation time is technically unitless, you can pretend that it is, for example, in seconds and use it like a timestamp returned by time.time() to calculate a date or the day of the week.

The property Environment.active_process is comparable to os.getpid() and is either None or pointing at the currently active Process. A process is active when its process function is being executed. It becomes inactive (or suspended) when it yields an event.

Thus, it makes only sense to access this property from within a process function or a function that is called by your process function:

>>> def subfunc(env):
...     print(env.active_process)  # will print "p1"
>>>
>>> def my_proc(env):
...     while True:
...         print(env.active_process)  # will print "p1"
...         subfunc(env)
...         yield env.timeout(1)
>>>
>>> env = simpy.Environment()
>>> p1 = env.process(my_proc(env))
>>> env.active_process  # None
>>> env.step()
<Process(my_proc) object at 0x...>
<Process(my_proc) object at 0x...>
>>> env.active_process  # None

An exemplary use case for this is the resource system: If a process function calls request() to request a resource, the resource determines the requesting process via env.active_process. Take a look at the code to see how we do this :-).

Event creation

To create events, you normally have to import simpy.events, instantiate the event class and pass a reference to the environment to it. To reduce the amount of typing, the Environment provides some shortcuts for event creation. For example, Environment.event() is equivalent to simpy.events.Event(env).

Other shortcuts are:

More details on what the events do can be found in the guide to events.

Miscellaneous

Since Python 3.3, a generator function can have a return value:

def my_proc(env):
    yield env.timeout(1)
    return 42

In SimPy, this can be used to provide return values for processes that can be used by other processes:

def other_proc(env):
    ret_val = yield env.process(my_proc(env))
    assert ret_val == 42

Internally, Python passes the return value as parameter to the StopIteration exception that it raises when a generator is exhausted. So in Python 2.7 and 3.2 you could replace the return 42 with a raise StopIteration(42) to achieve the same result.

To keep your code more readable, the environment provides the method exit() to do exactly this:

def my_proc(env):
    yield env.timeout(1)
    env.exit(42)  # Py2 equivalent to "return 42"

Events

SimPy includes an extensive set of event types for various purposes. All of them inherit simpy.events.Event. The listing below shows the hierarchy of events built into SimPy:

events.Event
↑
+— events.Timeout
|
+— events.Initialize
|
+— events.Process
|
+— events.Condition
|  ↑
|  +— events.AllOf
|  |
|  +— events.AnyOf
⋮
+– [resource events]

This is the set of basic events. Events are extensible and resources, for example, define additional events. In this guide, we’ll focus on the events in the simpy.events module. The guide to resources describes the various resource events.

Event basics

SimPy events are very similar – if not identical — to deferreds, futures or promises. Instances of the class Event are used to describe any kind of events. Events can be in one of the following states. An event

  • might happen (not triggered),
  • is going to happen (triggered) or
  • has happened (processed).

They traverse these states exactly once in that order. Events are also tightly bound to time and time causes events to advance their state.

Initially, events are not triggered and just objects in memory.

If an event gets triggered, it is scheduled at a given time and inserted into SimPy’s event queue. The property Event.triggered becomes True.

As long as the event is not processed, you can add callbacks to an event. Callbacks are callables that accept an event as parameter and are stored in the Event.callbacks list.

An event becomes processed when SimPy pops it from the event queue and calls all of its callbacks. It is now no longer possible to add callbacks. The property Event.processed becomes True.

Events also have a value. The value can be set before or when the event is triggered and can be retrieved via Event.value or, within a process, by yielding the event (value = yield event).

Adding callbacks to an event

“What? Callbacks? I’ve never seen no callbacks!”, you might think if you have worked your way through the tutorial.

That’s on purpose. The most common way to add a callback to an event is yielding it from your process function (yield event). This will add the process’ _resume() method as a callback. That’s how your process gets resumed when it yielded an event.

However, you can add any callable object (function) to the list of callbacks as long as it accepts an event instance as its single parameter:

>>> import simpy
>>>
>>> def my_callback(event):
...     print('Called back from', event)
...
>>> env = simpy.Environment()
>>> event = env.event()
>>> event.callbacks.append(my_callback)
>>> event.callbacks
[<function my_callback at 0x...>]

If an event has been processed, all of its Event.callbacks have been executed and the attribute is set to None. This is to prevent you from adding more callbacks – these would of course never get called because the event has already happened.

Processes are smart about this, though. If you yield a processed event, _resume() will immediately resume your process with the value of the event (because there is nothing to wait for).

Triggering events

When events are triggered, they can either succeed or fail. For example, if an event is to be triggered at the end of a computation and everything works out fine, the event will succeed. If an exceptions occurs during that computation, the event will fail.

To trigger an event and mark it as successful, you can use Event.succeed(value=None). You can optionally pass a value to it (e.g., the results of a computation).

To trigger an event and mark it as failed, call Event.fail(exception) and pass an Exception instance to it (e.g., the exception you caught during your failed computation).

There is also a generic way to trigger an event: Event.trigger(event). This will take the value and outcome (success or failure) of the event passed to it.

All three methods return the event instance they are bound to. This allows you to do things like yield Event(env).succeed().

Example usages for Event

The simple mechanics outlined above provide a great flexibility in the way events (even the basic Event) can be used.

One example for this is that events can be shared. They can be created by a process or outside of the context of a process. They can be passed to other processes and chained:

>>> class School:
...     def __init__(self, env):
...         self.env = env
...         self.class_ends = env.event()
...         self.pupil_procs = [env.process(self.pupil()) for i in range(3)]
...         self.bell_proc = env.process(self.bell())
...
...     def bell(self):
...         for i in range(2):
...             yield self.env.timeout(45)
...             self.class_ends.succeed()
...             self.class_ends = self.env.event()
...             print()
...
...     def pupil(self):
...         for i in range(2):
...             print(' \o/', end='')
...             yield self.class_ends
...
>>> school = School(env)
>>> env.run()
 \o/ \o/ \o/
 \o/ \o/ \o/

This can also be used like the passivate / reactivate known from SimPy 2. The pupils passivate when class begins and are reactivated when the bell rings.

Let time pass by: the Timeout

To actually let time pass in a simulation, there is the timeout event. A timeout has two parameters: a delay and an optional value: Timeout(delay, value=None). It triggers itself during its creation and schedules itself at now + delay. Thus, the succeed() and fail() methods cannot be called again and you have to pass the event value to it when you create the timeout.

The delay can be any kind of number, usually an int or float as long as it supports comparison and addition.

Processes are events, too

SimPy processes (as created by Process or env.process()) have the nice property of being events, too.

That means, that a process can yield another process. It will then be resumed when the other process ends. The event’s value will be the return value of that process:

>>> def sub(env):
...     yield env.timeout(1)
...     return 23
...
>>> def parent(env):
...     ret = yield env.process(sub(env))
...     return ret
...
>>> env.run(env.process(parent(env)))
23

The example above will only work in Python >= 3.3. As a workaround for older Python versions, you can use env.exit(23) with the same effect.

When a process is created, it schedules an Initialize event which will start the execution of the process when triggered. You usually won’t have to deal with this type of event.

If you don’t want a process to start immediately but after a certain delay, you can use simpy.util.start_delayed(). This method returns a helper process that uses a timeout before actually starting a process.

The example from above, but with a delayed start of sub():

>>> from simpy.util import start_delayed
>>>
>>> def sub(env):
...     yield env.timeout(1)
...     return 23
...
>>> def parent(env):
...     start = env.now
...     sub_proc = yield start_delayed(env, sub(env), delay=3)
...     assert env.now - start == 3
...
...     ret = yield sub_proc
...     return ret
...
>>> env.run(env.process(parent(env)))
23

Waiting for multiple events at once

Sometimes, you want to wait for more than one event at the same time. For example, you may want to wait for a resource, but not for an unlimited amount of time. Or you may want to wait until all a set of events has happened.

SimPy therefore offers the AnyOf and AllOf events which both are a Condition event.

Both take a list of events as an argument and are triggered if at least one or all of them of them are triggered.

>>> from simpy.events import AnyOf, AllOf, Event
>>> events = [Event(env) for i in range(3)]
>>> a = AnyOf(env, events)  # Triggers if at least one of "events" is triggered.
>>> b = AllOf(env, events)  # Triggers if all each of "events" is triggered.

The value of a condition event is an ordered dictionary with an entry for every triggered event. In the case of AllOf, the size of that dictionary will always be the same as the length of the event list. The value dict of AnyOf will have at least one entry. In both cases, the event instances are used as keys and the event values will be the values.

As a shorthand for AllOf and AnyOf, you can also use the logical operators & (and) and | (or):

>>> def test_condition(env):
...     t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs')
...     ret = yield t1 | t2
...     assert ret == {t1: 'spam'}
...
...     t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs')
...     ret = yield t1 & t2
...     assert ret == {t1: 'spam', t2: 'eggs'}
...
...     # You can also concatenate & and |
...     e1, e2, e3 = [env.timeout(i) for i in range(3)]
...     yield (e1 | e2) & e3
...     assert all(e.triggered for e in [e1, e2, e3])
...
>>> proc = env.process(test_condition(env))
>>> env.run()

The order of condition results is identical to the order in which the condition events were specified. This allows the following idiom for conveniently fetching the values of multiple events specified in an and condition (including AllOf):

>>> def fetch_values_of_multiple_events(env):
...     t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs')
...     r1, r2 = (yield t1 & t2).values()
...     assert r1 == 'spam' and r2 == 'eggs'
...
>>> proc = env.process(fetch_values_of_multiple_events(env))
>>> env.run()

Porting from SimPy 2 to 3

Porting from SimPy 2 to SimPy 3 is not overly complicated. A lot of changes merely comprise copy/paste.

This guide describes the conceptual and API changes between both SimPy versions and shows you how to change your code for SimPy 3.

Imports

In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (SimPy.Simulation), a real-time simulation (SimPy.SimulationRT) or something else. You usually had to import Simulation (or SimulationRT), Process and some of the SimPy keywords (hold or passivate, for example) from that package.

In SimPy 3, you usually need to import much less classes and modules (e.g., you don’t need direct access to Process and the SimPy keywords anymore). In most use cases you will now only need to import simpy.

SimPy 2

from Simpy.Simulation import Simulation, Process, hold

SimPy 3

import simpy

The Simulation* classes

SimPy 2 encapsulated the simulation state in a Simulation* class (e.g., Simulation, SimulationRT or SimulationTrace). This class also had a simulate() method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).

There was a global Simulation instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy’s object-orient API. This led to some confusion and problems, because you had to pass the Simulation instance around when you were using the OO API but not if you were using the procedural API.

In SimPy 3, an Environment replaces Simulation and RealtimeEnvironment replaces SimulationRT. You always need to instantiate an environment. There’s no more global state.

To execute a simulation, you call the environment’s run() method.

SimPy 2

# Procedural API
from SimPy.Simulation import initialize, simulate

initialize()
# Start processes
simulate(until=10)
# Object-oriented API
from SimPy.Simulation import Simulation

sim = Simulation()
# Start processes
sim.simulate(until=10)

SimPy3

import simpy

env = simpy.Environment()
# Start processes
env.run(until=10)

Defining a Process

Processes had to inherit the Process base class in SimPy 2. Subclasses had to implement at least a so called Process Execution Method (PEM) and in most cases __init__(). Each process needed to know the Simulation instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.

Processes were started by passing the Process and the generator returned by the PEM to either the global activate() function or the corresponding Simulation method.

A process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the Environment to interact with, but this is completely optional.

Processes are can be started by creating a Process instance and passing the generator to it. The environment provides a shortcut for this: process().

SimPy 2

# Procedural API
from Simpy.Simulation import Process

class MyProcess(Process):
    def __init__(self, another_param):
        super().__init__()
        self.another_param = another_param

    def run(self):
        """Implement the process' behavior."""

initialize()
proc = Process('Spam')
activate(proc, proc.run())
# Object-oriented API
from SimPy.Simulation import Simulation, Process

class MyProcess(Process):
    def __init__(self, sim, another_param):
        super().__init__(sim=sim)
        self.another_param = another_param

    def run(self):
        """Implement the process' behaviour."""

sim = Simulation()
proc = Process(sim, 'Spam')
sim.activate(proc, proc.run())

SimPy 3

import simpy

def my_process(env, another_param):
    """Implement the process' behavior."""

env = simpy.Environment()
proc = env.process(my_process(env, 'Spam'))

SimPy Keywords (hold etc.)

In SimPy 2, processes created new events by yielding a SimPy Keyword and some additional parameters (at least self). These keywords had to be imported from SimPy.Simulation* if they were used. Internally, the keywords were mapped to a function that generated the according event.

In SimPy 3, you directly yield events. You can instantiate an event directly or use the shortcuts provided by Environment.

Generally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the hold keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore hold has been replaced by a Timeout event.

Note

Process now inherits Event. You can thus yield a process to wait until the process terminates.

SimPy 2

yield hold, self, duration
yield passivate, self
yield request, self, resource
yield release, self, resource
yield waitevent, self, event
yield waitevent, self, [event_a, event_b, event_c]
yield queueevent, self, event_list
yield waituntil, self, cond_func
yield get, self, level, amount
yield put, self, level, amount

SimPy 3

from simpy.util import wait_for_any, wait_for_all

yield env.timeout(duration)        # hold: renamed
yield env.event()                  # passivate: renamed
yield resource.request()           # Request is now bound to class Resource
resource.release()                 # Release no longer needs to be yielded
yield event                        # waitevent: just yield the event
yield wait_for_any([event_a, event_b, event_c])  # waitevent
yield wait_for_all([event_a, event_b, event_c])  # This is new.
yield event_a | event_b            # Wait for either a or b. This is new.
yield event_a & event_b            # Wait for a and b. This is new.
# There is no direct equivalent for "queueevent"
yield env.process(cond_func(env))  # cond_func is now a process that
                                   # terminates when the cond. is True
                                   # (Yes, you can wait for processes now!)
yield container.get(amount)        # Level is now called Container
yield container.put(amount)

Interrupts

In SimPy 2, interrupt() was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.

The victim was not directly notified of the interrupt but had to check if the interrupted flag was set. It then had to reset the interrupt via interruptReset(). You could manually set the interruptCause attribute of the victim.

Explicitly checking for an interrupt is obviously error prone as it is too easy to be forgotten.

In SimPy 3, you call interrupt() on the victim process. You can optionally pass a cause. An Interrupt is then thrown into the victim process, which has to handle the interrupt via try: ... except Interrupt: ....

SimPy 2

class Interrupter(Process):
    def __init__(self, victim):
        super().__init__()
        self.victim = victim

    def run(self):
        yield hold, self, 1
        self.interrupt(self.victim_proc)
        self.victim_proc.interruptCause = 'Spam'

class Victim(Process):
    def run(self):
        yield hold, self, 10
        if self.interrupted:
            cause = self.interruptCause
            self.interruptReset()

SimPy 3

def interrupter(env, victim_proc):
    yield env.timeout(1)
    victim_proc.interrupt('Spam')

def victim(env):
    try:
        yield env.timeout(10)
    except Interrupt as interrupt:
        cause = interrupt.cause

Conclusion

This guide is by no means complete. If you run into problems, please have a look at the other guides, the examples or the API Reference. You are also very welcome to submit improvements. Just create a pull request at bitbucket.

Examples

All theory is grey. In this section, we present various practical examples that demonstrate how to uses SimPy’s features.

Here’s a list of examples grouped by features they demonstrate.

Condition events

Interrupts

Monitoring

Resources: Container

Resources: Preemptive Resource

Shared events

Waiting for other processes

All examples

Bank Renege

Covers:

  • Resources: Resource
  • Condition events

A counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM)

This example models a bank counter and customers arriving t random times. Each customer has a certain patience. It waits to get to the counter until she’s at the end of her tether. If she gets to the counter, she uses it for a while before releasing it.

New customers are created by the source process every few time steps.

"""
Bank renege example

Covers:

- Resources: Resource
- Condition events

Scenario:
  A counter with a random service time and customers who renege. Based on the
  program bank08.py from TheBank tutorial of SimPy 2. (KGM)

"""
import random

import simpy


RANDOM_SEED = 42
NEW_CUSTOMERS = 5  # Total number of customers
INTERVAL_CUSTOMERS = 10.0  # Generate new customers roughly every x seconds
MIN_PATIENCE = 1  # Min. customer patience
MAX_PATIENCE = 3  # Max. customer patience


def source(env, number, interval, counter):
    """Source generates customers randomly"""
    for i in range(number):
        c = customer(env, 'Customer%02d' % i, counter, time_in_bank=12.0)
        env.process(c)
        t = random.expovariate(1.0 / interval)
        yield env.timeout(t)


def customer(env, name, counter, time_in_bank):
    """Customer arrives, is served and leaves."""
    arrive = env.now
    print('%7.4f %s: Here I am' % (arrive, name))

    with counter.request() as req:
        patience = random.uniform(MIN_PATIENCE, MAX_PATIENCE)
        # Wait for the counter or abort at the end of our tether
        results = yield req | env.timeout(patience)

        wait = env.now - arrive

        if req in results:
            # We got to the counter
            print('%7.4f %s: Waited %6.3f' % (env.now, name, wait))

            tib = random.expovariate(1.0 / time_in_bank)
            yield env.timeout(tib)
            print('%7.4f %s: Finished' % (env.now, name))

        else:
            # We reneged
            print('%7.4f %s: RENEGED after %6.3f' % (env.now, name, wait))


# Setup and start the simulation
print('Bank renege')
random.seed(RANDOM_SEED)
env = simpy.Environment()

# Start processes and run
counter = simpy.Resource(env, capacity=1)
env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter))
env.run()

The simulation’s output:

Bank renege
 0.0000 Customer00: Here I am
 0.0000 Customer00: Waited  0.000
 3.8595 Customer00: Finished
10.2006 Customer01: Here I am
10.2006 Customer01: Waited  0.000
12.7265 Customer02: Here I am
13.9003 Customer02: RENEGED after  1.174
23.7507 Customer01: Finished
34.9993 Customer03: Here I am
34.9993 Customer03: Waited  0.000
37.9599 Customer03: Finished
40.4798 Customer04: Here I am
40.4798 Customer04: Waited  0.000
43.1401 Customer04: Finished

Carwash

Covers:

  • Waiting for other processes
  • Resources: Resource

The Carwash example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.

The carwash uses a Resource to model the limited number of washing machines. It also defines a process for washing a car.

When a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash’s wash processes and waits for it to finish. It finally releases the machine and leaves.

The cars are generated by a setup process. After creating an intial amount of cars it creates new car processes after a random time interval as long as the simulation continues.

"""
Carwasch example.

Covers:

- Waiting for other processes
- Resources: Resource

Scenario:
  A carwash has a limited number of washing machines and defines
  a washing processes that takes some (random) time.

  Car processes arrive at the carwash at a random time. If one washing
  machine is available, they start the washing process and wait for it
  to finish. If not, they wait until they an use one.

"""
import random

import simpy


RANDOM_SEED = 42
NUM_MACHINES = 2  # Number of machines in the carwash
WASHTIME = 5      # Minutes it takes to clean a car
T_INTER = 7       # Create a car every ~7 minutes
SIM_TIME = 20     # Simulation time in minutes


class Carwash(object):
    """A carwash has a limited number of machines (``NUM_MACHINES``) to
    clean cars in parallel.

    Cars have to request one of the machines. When they got one, they
    can start the washing processes and wait for it to finish (which
    takes ``washtime`` minutes).

    """
    def __init__(self, env, num_machines, washtime):
        self.env = env
        self.machine = simpy.Resource(env, num_machines)
        self.washtime = washtime

    def wash(self, car):
        """The washing processes. It takes a ``car`` processes and tries
        to clean it."""
        yield self.env.timeout(WASHTIME)
        print("Carwashed removed %d%% of %s's dirt." %
              (random.randint(50, 99), car))


def car(env, name, cw):
    """The car process (each car has a ``name``) arrives at the carwash
    (``cw``) and requests a cleaning machine.

    It then starts the washing process, waits for it to finish and
    leaves to never come back ...

    """
    print('%s arrives at the carwash at %.2f.' % (name, env.now))
    with cw.machine.request() as request:
        yield request

        print('%s enters the carwash at %.2f.' % (name, env.now))
        yield env.process(cw.wash(name))

        print('%s leaves the carwash at %.2f.' % (name, env.now))


def setup(env, num_machines, washtime, t_inter):
    """Create a carwash, a number of initial cars and keep creating cars
    approx. every ``t_inter`` minutes."""
    # Create the carwash
    carwash = Carwash(env, num_machines, washtime)

    # Create 4 initial cars
    for i in range(4):
        env.process(car(env, 'Car %d' % i, carwash))

    # Create more cars while the simulation is running
    while True:
        yield env.timeout(random.randint(t_inter-2, t_inter+2))
        i += 1
        env.process(car(env, 'Car %d' % i, carwash))


# Setup and start the simulation
print('Carwash')
print('Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)')
random.seed(RANDOM_SEED)  # This helps reproducing the results

# Create an environment and start the setup process
env = simpy.Environment()
env.process(setup(env, NUM_MACHINES, WASHTIME, T_INTER))

# Execute!
env.run(until=SIM_TIME)

The simulation’s output:

Carwash
Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)
Car 0 arrives at the carwash at 0.00.
Car 1 arrives at the carwash at 0.00.
Car 2 arrives at the carwash at 0.00.
Car 3 arrives at the carwash at 0.00.
Car 0 enters the carwash at 0.00.
Car 1 enters the carwash at 0.00.
Car 4 arrives at the carwash at 5.00.
Carwashed removed 97% of Car 0's dirt.
Carwashed removed 67% of Car 1's dirt.
Car 0 leaves the carwash at 5.00.
Car 1 leaves the carwash at 5.00.
Car 2 enters the carwash at 5.00.
Car 3 enters the carwash at 5.00.
Car 5 arrives at the carwash at 10.00.
Carwashed removed 64% of Car 2's dirt.
Carwashed removed 58% of Car 3's dirt.
Car 2 leaves the carwash at 10.00.
Car 3 leaves the carwash at 10.00.
Car 4 enters the carwash at 10.00.
Car 5 enters the carwash at 10.00.
Carwashed removed 97% of Car 4's dirt.
Carwashed removed 56% of Car 5's dirt.
Car 4 leaves the carwash at 15.00.
Car 5 leaves the carwash at 15.00.
Car 6 arrives at the carwash at 16.00.
Car 6 enters the carwash at 16.00.

Machine Shop

Covers:

  • Interrupts
  • Resources: PreemptiveResource

This example comprises a workshop with n identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.

A machine has two processes: working implements the actual behaviour of the machine (producing parts). break_machine periodically interrupts the working process to simulate the machine failure.

The repairman’s other job is also a process (implemented by other_job). The repairman itself is a PreemptiveResource with a capacity of 1. The machine repairing has a priority of 1, while the other job has a priority of 2 (the smaller the number, the higher the priority).

"""
Machine shop example

Covers:

- Interrupts
- Resources: PreemptiveResource

Scenario:
  A workshop has *n* identical machines. A stream of jobs (enough to
  keep the machines busy) arrives. Each machine breaks down
  periodically. Repairs are carried out by one repairman. The repairman
  has other, less important tasks to perform, too. Broken machines
  preempt theses tasks. The repairman continues them when he is done
  with the machine repair. The workshop works continuously.

"""
import random

import simpy


RANDOM_SEED = 42
PT_MEAN = 10.0         # Avg. processing time in minutes
PT_SIGMA = 2.0         # Sigma of processing time
MTTF = 300.0           # Mean time to failure in minutes
BREAK_MEAN = 1 / MTTF  # Param. for expovariate distribution
REPAIR_TIME = 30.0     # Time it takes to repair a machine in minutes
JOB_DURATION = 30.0    # Duration of other jobs in minutes
NUM_MACHINES = 10      # Number of machines in the machine shop
WEEKS = 4              # Simulation time in weeks
SIM_TIME = WEEKS * 7 * 24 * 60  # Simulation time in minutes


def time_per_part():
    """Return actual processing time for a concrete part."""
    return random.normalvariate(PT_MEAN, PT_SIGMA)


def time_to_failure():
    """Return time until next failure for a machine."""
    return random.expovariate(BREAK_MEAN)


class Machine(object):
    """A machine produces parts and my get broken every now and then.

    If it breaks, it requests a *repairman* and continues the production
    after the it is repaired.

    A machine has a *name* and a numberof *parts_made* thus far.

    """
    def __init__(self, env, name, repairman):
        self.env = env
        self.name = name
        self.parts_made = 0
        self.broken = False

        # Start "working" and "break_machine" processes for this machine.
        self.process = env.process(self.working(repairman))
        env.process(self.break_machine())

    def working(self, repairman):
        """Produce parts as long as the simulation runs.

        While making a part, the machine may break multiple times.
        Request a repairman when this happens.

        """
        while True:
            # Start making a new part
            done_in = time_per_part()
            while done_in:
                try:
                    # Working on the part
                    start = self.env.now
                    yield self.env.timeout(done_in)
                    done_in = 0  # Set to 0 to exit while loop.

                except simpy.Interrupt:
                    self.broken = True
                    done_in -= self.env.now - start  # How much time left?

                    # Request a repairman. This will preempt its "other_job".
                    with repairman.request(priority=1) as req:
                        yield req
                        yield self.env.timeout(REPAIR_TIME)

                    self.broken = False

            # Part is done.
            self.parts_made += 1

    def break_machine(self):
        """Break the machine every now and then."""
        while True:
            yield self.env.timeout(time_to_failure())
            if not self.broken:
                # Only break the machine if it is currently working.
                self.process.interrupt()


def other_jobs(env, repairman):
    """The repairman's other (unimportant) job."""
    while True:
        # Start a new job
        done_in = JOB_DURATION
        while done_in:
            # Retry the job until it is done.
            # It's priority is lower than that of machine repairs.
            with repairman.request(priority=2) as req:
                yield req
                try:
                    start = env.now
                    yield env.timeout(done_in)
                    done_in = 0
                except simpy.Interrupt:
                    done_in -= env.now - start


# Setup and start the simulation
print('Machine shop')
random.seed(RANDOM_SEED)  # This helps reproducing the results

# Create an environment and start the setup process
env = simpy.Environment()
repairman = simpy.PreemptiveResource(env, capacity=1)
machines = [Machine(env, 'Machine %d' % i, repairman)
        for i in range(NUM_MACHINES)]
env.process(other_jobs(env, repairman))

# Execute!
env.run(until=SIM_TIME)

# Analyis/results
print('Machine shop results after %s weeks' % WEEKS)
for machine in machines:
    print('%s made %d parts.' % (machine.name, machine.parts_made))

The simulation’s output:

Machine shop
Machine shop results after 4 weeks
Machine 0 made 3251 parts.
Machine 1 made 3273 parts.
Machine 2 made 3242 parts.
Machine 3 made 3343 parts.
Machine 4 made 3387 parts.
Machine 5 made 3244 parts.
Machine 6 made 3269 parts.
Machine 7 made 3185 parts.
Machine 8 made 3302 parts.
Machine 9 made 3279 parts.

Movie Renege

Covers:

  • Resources: Resource
  • Condition events
  • Shared events

This examples models a movie theater with one ticket counter selling tickets for three movies (next show only). People arrive at random times and triy to buy a random number (1–6) tickets for a random movie. When a movie is sold out, all people waiting to buy a ticket for that movie renege (leave the queue).

The movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a Resource with a capacity of one.

The moviegoer process starts waiting until either it’s his turn (it acquires the counter resource) or until the sold out signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the sold out signal is triggered.

Moviegoers are generated by the customer arrivals process. It also chooses a movie and the number of tickets for the moviegoer.

"""
Movie renege example

Covers:

- Resources: Resource
- Condition events
- Shared events

Scenario:
  A movie theatre has one ticket counter selling tickets for three
  movies (next show only). When a movie is sold out, all people waiting
  to buy tickets for that movie renege (leave queue).

"""
import collections
import random

import simpy


RANDOM_SEED = 42
TICKETS = 50  # Number of tickets per movie
SIM_TIME = 120  # Simulate until


def moviegoer(env, movie, num_tickets, theater):
    """A moviegoer tries to by a number of tickets (*num_tickets*) for
    a certain *movie* in a *theater*.

    If the movie becomes sold out, she leaves the theater. If she gets
    to the counter, she tries to buy a number of tickets. If not enough
    tickets are left, she argues with the teller and leaves.

    If at most one ticket is left after the moviegoer bought her
    tickets, the *sold out* event for this movie is triggered causing
    all remaining moviegoers to leave.

    """
    with theater.counter.request() as my_turn:
        # Wait until its our turn or until the movie is sold out
        result = yield my_turn | theater.sold_out[movie]

        # Check if it's our turn of if movie is sold out
        if my_turn not in result:
            theater.num_renegers[movie] += 1
            env.exit()

        # Check if enough tickets left.
        if theater.available[movie] < num_tickets:
            # Moviegoer leaves after some discussion
            yield env.timeout(0.5)
            env.exit()

        # Buy tickets
        theater.available[movie] -= num_tickets
        if theater.available[movie] < 2:
            # Trigger the "sold out" event for the movie
            theater.sold_out[movie].succeed()
            theater.when_sold_out[movie] = env.now
            theater.available[movie] = 0
        yield env.timeout(1)


def customer_arrivals(env, theater):
    """Create new *moviegoers* until the sim time reaches 120."""
    while True:
        yield env.timeout(random.expovariate(1 / 0.5))

        movie = random.choice(theater.movies)
        num_tickets = random.randint(1, 6)
        if theater.available[movie]:
            env.process(moviegoer(env, movie, num_tickets, theater))


Theater = collections.namedtuple('Theater', 'counter, movies, available, '
                                            'sold_out, when_sold_out, '
                                            'num_renegers')


# Setup and start the simulation
print('Movie renege')
random.seed(RANDOM_SEED)
env = simpy.Environment()

# Create movie theater
counter = simpy.Resource(env, capacity=1)
movies = ['Python Unchained', 'Kill Process', 'Pulp Implementation']
available = {movie: TICKETS for movie in movies}
sold_out = {movie: env.event() for movie in movies}
when_sold_out = {movie: None for movie in movies}
num_renegers = {movie: 0 for movie in movies}
theater = Theater(counter, movies, available, sold_out, when_sold_out,
                  num_renegers)

# Start process and run
env.process(customer_arrivals(env, theater))
env.run(until=SIM_TIME)

# Analysis/results
for movie in movies:
    if theater.sold_out[movie]:
        print('Movie "%s" sold out %.1f minutes after ticket counter '
              'opening.' % (movie, theater.when_sold_out[movie]))
        print('  Number of people leaving queue when film sold out: %s' %
              theater.num_renegers[movie])

The simulation’s output:

Movie renege
Movie "Python Unchained" sold out 38.0 minutes after ticket counter opening.
  Number of people leaving queue when film sold out: 16
Movie "Kill Process" sold out 43.0 minutes after ticket counter opening.
  Number of people leaving queue when film sold out: 5
Movie "Pulp Implementation" sold out 28.0 minutes after ticket counter opening.
  Number of people leaving queue when film sold out: 5

Gas Station Refueling

Covers:

  • Resources: Resource
  • Resources: Container
  • Waiting for other processes

This examples models a gas station and cars that arrive at the station for refueling.

The gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as Resource. The shared fuel tank is modeled with a Container.

Vehicles arriving at the gas station first request a fuel pump from the station. Once they acquire one, they try to take the desired amount of fuel from the fuel pump. They leave when they are done.

The gas stations fuel level is reqularly monitored by gas station control. When the level drops below a certain threshold, a tank truck is called to refuel the gas station itself.

"""
Gas Station Refueling example

Covers:

- Resources: Resource
- Resources: Container
- Waiting for other processes

Scenario:
  A gas station has a limited number of gas pumps that share a common
  fuel reservoir. Cars randomly arrive at the gas station, request one
  of the fuel pumps and start refueling from that reservoir.

  A gas station control process observes the gas station's fuel level
  and calls a tank truck for refueling if the station's level drops
  below a threshold.

"""
import itertools
import random

import simpy


RANDOM_SEED = 42
GAS_STATION_SIZE = 200     # liters
THRESHOLD = 10             # Threshold for calling the tank truck (in %)
FUEL_TANK_SIZE = 50        # liters
FUEL_TANK_LEVEL = [5, 25]  # Min/max levels of fuel tanks (in liters)
REFUELING_SPEED = 2        # liters / second
TANK_TRUCK_TIME = 300      # Seconds it takes the tank truck to arrive
T_INTER = [30, 300]        # Create a car every [min, max] seconds
SIM_TIME = 1000            # Simulation time in seconds


def car(name, env, gas_station, fuel_pump):
    """A car arrives at the gas station for refueling.

    It requests one of the gas station's fuel pumps and tries to get the
    desired amount of gas from it. If the stations reservoir is
    depleted, the car has to wait for the tank truck to arrive.

    """
    fuel_tank_level = random.randint(*FUEL_TANK_LEVEL)
    print('%s arriving at gas station at %.1f' % (name, env.now))
    with gas_station.request() as req:
        start = env.now
        # Request one of the gas pumps
        yield req

        # Get the required amount of fuel
        liters_required = FUEL_TANK_SIZE - fuel_tank_level
        yield fuel_pump.get(liters_required)

        # The "actual" refueling process takes some time
        yield env.timeout(liters_required / REFUELING_SPEED)

        print('%s finished refueling in %.1f seconds.' % (name,
                                                          env.now - start))


def gas_station_control(env, fuel_pump):
    """Periodically check the level of the *fuel_pump* and call the tank
    truck if the level falls below a threshold."""
    while True:
        if fuel_pump.level / fuel_pump.capacity * 100 < THRESHOLD:
            # We need to call the tank truck now!
            print('Calling tank truck at %d' % env.now)
            # Wait for the tank truck to arrive and refuel the station
            yield env.process(tank_truck(env, fuel_pump))

        yield env.timeout(10)  # Check every 10 seconds


def tank_truck(env, fuel_pump):
    """Arrives at the gas station after a certain delay and refuels it."""
    yield env.timeout(TANK_TRUCK_TIME)
    print('Tank truck arriving at time %d' % env.now)
    ammount = fuel_pump.capacity - fuel_pump.level
    print('Tank truck refuelling %.1f liters.' % ammount)
    yield fuel_pump.put(ammount)


def car_generator(env, gas_station, fuel_pump):
    """Generate new cars that arrive at the gas station."""
    for i in itertools.count():
        yield env.timeout(random.randint(*T_INTER))
        env.process(car('Car %d' % i, env, gas_station, fuel_pump))


# Setup and start the simulation
print('Gas Station refuelling')
random.seed(RANDOM_SEED)

# Create environment and start processes
env = simpy.Environment()
gas_station = simpy.Resource(env, 2)
fuel_pump = simpy.Container(env, GAS_STATION_SIZE, init=GAS_STATION_SIZE)
env.process(gas_station_control(env, fuel_pump))
env.process(car_generator(env, gas_station, fuel_pump))

# Execute!
env.run(until=SIM_TIME)

The simulation’s output:

Gas Station refuelling
Car 0 arriving at gas station at 87.0
Car 0 finished refueling in 18.5 seconds.
Car 1 arriving at gas station at 129.0
Car 1 finished refueling in 19.0 seconds.
Car 2 arriving at gas station at 284.0
Car 2 finished refueling in 21.0 seconds.
Car 3 arriving at gas station at 385.0
Car 3 finished refueling in 13.5 seconds.
Car 4 arriving at gas station at 459.0
Calling tank truck at 460
Car 4 finished refueling in 22.0 seconds.
Car 5 arriving at gas station at 705.0
Car 6 arriving at gas station at 750.0
Tank truck arriving at time 760
Tank truck refuelling 188.0 liters.
Car 6 finished refueling in 29.0 seconds.
Car 5 finished refueling in 76.5 seconds.
Car 7 arriving at gas station at 891.0
Car 7 finished refueling in 13.0 seconds.

Process Communication

Covers:

  • Resources: Store

This example shows how to interconnect simulation model elements together using “resources.Store” for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store.

When Useful:

When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process.

This is also useful when some information needs to be broadcast to many receiving processes

Finally, using pipes can simplify how processes are interconnected to each other in a simulation model.

Example By:
Keith Smith
"""
Process communication example

Covers:

- Resources: Store

Scenario:
  This example shows how to interconnect simulation model elements
  together using :class:`~simpy.resources.store.Store` for one-to-one,
  and many-to-one asynchronous processes. For one-to-many a simple
  BroadCastPipe class is constructed from Store.

When Useful:
  When a consumer process does not always wait on a generating process
  and these processes run asynchronously. This example shows how to
  create a buffer and also tell is the consumer process was late
  yielding to the event from a generating process.

  This is also useful when some information needs to be broadcast to
  many receiving processes

  Finally, using pipes can simplify how processes are interconnected to
  each other in a simulation model.

Example By:
  Keith Smith

"""
import random

import simpy


RANDOM_SEED = 42
SIM_TIME = 100


class BroadcastPipe(object):
    """A Broadcast pipe that allows one process to send messages to many.

    This construct is useful when message consumers are running at
    different rates than message generators and provides an event
    buffering to the consuming processes.

    The parameters are used to create a new
    :class:`~simpy.resources.store.Store` instance each time
    :meth:`get_output_conn()` is called.

    """
    def __init__(self, env, capacity=simpy.core.Infinity):
        self.env = env
        self.capacity = capacity
        self.pipes = []

    def put(self, value):
        """Broadcast a *value* to all receivers."""
        if not self.pipes:
            raise RuntimeError('There are no output pipes.')
        events = [store.put(value) for store in self.pipes]
        return self.env.all_of(events)  # Condition event for all "events"

    def get_output_conn(self):
        """Get a new output connection for this broadcast pipe.

        The return value is a :class:`~simpy.resources.store.Store`.

        """
        pipe = simpy.Store(self.env, capacity=self.capacity)
        self.pipes.append(pipe)
        return pipe


def message_generator(name, env, out_pipe):
    """A process which randomly generates messages."""
    while True:
        # wait for next transmission
        yield env.timeout(random.randint(6, 10))

        # messages are time stamped to later check if the consumer was
        # late getting them.  Note, using event.triggered to do this may
        # result in failure due to FIFO nature of simulation yields.
        # (i.e. if at the same env.now, message_generator puts a message
        # in the pipe first and then message_consumer gets from pipe,
        # the event.triggered will be True in the other order it will be
        # False
        msg = (env.now, '%s says hello at %d' % (name, env.now))
        out_pipe.put(msg)


def message_consumer(name, env, in_pipe):
    """A process which consumes messages."""
    while True:
        # Get event for message pipe
        msg = yield in_pipe.get()

        if msg[0] < env.now:
            # if message was already put into pipe, then
            # message_consumer was late getting to it. Depending on what
            # is being modeled this, may, or may not have some
            # significance
            print('LATE Getting Message: at time %d: %s received message: %s' %
                    (env.now, name, msg[1]))

        else:
            # message_consumer is synchronized with message_generator
            print('at time %d: %s received message: %s.' %
                    (env.now, name, msg[1]))

        # Process does some other work, which may result in missing messages
        yield env.timeout(random.randint(4, 8))


# Setup and start the simulation
print('Process communication')
random.seed(RANDOM_SEED)
env = simpy.Environment()

# For one-to-one or many-to-one type pipes, use Store
pipe = simpy.Store(env)
env.process(message_generator('Generator A', env, pipe))
env.process(message_consumer('Consumer A', env, pipe))

print('\nOne-to-one pipe communication\n')
env.run(until=SIM_TIME)

# For one-to many use BroadcastPipe
# (Note: could also be used for one-to-one,many-to-one or many-to-many)
env = simpy.Environment()
bc_pipe = BroadcastPipe(env)

env.process(message_generator('Generator A', env, bc_pipe))
env.process(message_consumer('Consumer A', env, bc_pipe.get_output_conn()))
env.process(message_consumer('Consumer B', env, bc_pipe.get_output_conn()))

print('\nOne-to-many pipe communication\n')
env.run(until=SIM_TIME)

The simulation’s output:

Process communication

One-to-one pipe communication

at time 6: Consumer A received message: Generator A says hello at 6.
at time 12: Consumer A received message: Generator A says hello at 12.
at time 19: Consumer A received message: Generator A says hello at 19.
at time 26: Consumer A received message: Generator A says hello at 26.
at time 36: Consumer A received message: Generator A says hello at 36.
at time 46: Consumer A received message: Generator A says hello at 46.
at time 52: Consumer A received message: Generator A says hello at 52.
at time 58: Consumer A received message: Generator A says hello at 58.
LATE Getting Message: at time 66: Consumer A received message: Generator A says hello at 65
at time 75: Consumer A received message: Generator A says hello at 75.
at time 85: Consumer A received message: Generator A says hello at 85.
at time 95: Consumer A received message: Generator A says hello at 95.

One-to-many pipe communication

at time 10: Consumer A received message: Generator A says hello at 10.
at time 10: Consumer B received message: Generator A says hello at 10.
at time 18: Consumer A received message: Generator A says hello at 18.
at time 18: Consumer B received message: Generator A says hello at 18.
at time 27: Consumer A received message: Generator A says hello at 27.
at time 27: Consumer B received message: Generator A says hello at 27.
at time 34: Consumer A received message: Generator A says hello at 34.
at time 34: Consumer B received message: Generator A says hello at 34.
at time 40: Consumer A received message: Generator A says hello at 40.
LATE Getting Message: at time 41: Consumer B received message: Generator A says hello at 40
at time 46: Consumer A received message: Generator A says hello at 46.
LATE Getting Message: at time 47: Consumer B received message: Generator A says hello at 46
at time 56: Consumer A received message: Generator A says hello at 56.
at time 56: Consumer B received message: Generator A says hello at 56.
at time 65: Consumer A received message: Generator A says hello at 65.
at time 65: Consumer B received message: Generator A says hello at 65.
at time 74: Consumer A received message: Generator A says hello at 74.
at time 74: Consumer B received message: Generator A says hello at 74.
at time 82: Consumer A received message: Generator A says hello at 82.
at time 82: Consumer B received message: Generator A says hello at 82.
at time 92: Consumer A received message: Generator A says hello at 92.
at time 92: Consumer B received message: Generator A says hello at 92.
at time 98: Consumer B received message: Generator A says hello at 98.
at time 98: Consumer A received message: Generator A says hello at 98.

Event Latency

Covers:

  • Resources: Store

This example shows how to separate the time delay of events between processes from the processes themselves.

When Useful:

When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes.

Can also be used to interconnect processes sending messages

Example by:
Keith Smith
"""
Event Latency example

Covers:

- Resources: Store

Scenario:
  This example shows how to separate the time delay of events between
  processes from the processes themselves.

When Useful:
  When modeling physical things such as cables, RF propagation, etc.  it
  better encapsulation to keep this propagation mechanism outside of the
  sending and receiving processes.

  Can also be used to interconnect processes sending messages

Example by:
  Keith Smith

"""
import simpy


SIM_DURATION = 100


class Cable(object):
    """This class represents the propagation through a cable."""
    def __init__(self, env, delay):
        self.env = env
        self.delay = delay
        self.store = simpy.Store(env)

    def latency(self, value):
        yield self.env.timeout(self.delay)
        self.store.put(value)

    def put(self, value):
        self.env.process(self.latency(value))

    def get(self):
        return self.store.get()


def sender(env, cable):
    """A process which randomly generates messages."""
    while True:
        # wait for next transmission
        yield env.timeout(5)
        cable.put('Sender sent this at %d' % env.now)


def receiver(env, cable):
    """A process which consumes messages."""
    while True:
        # Get event for message pipe
        msg = yield cable.get()
        print('Received this at %d while %s' % (env.now, msg))


# Setup and start the simulation
print('Event Latency')
env = simpy.Environment()

cable = Cable(env, 10)
env.process(sender(env, cable))
env.process(receiver(env, cable))

env.run(until=SIM_DURATION)

The simulation’s output:

Event Latency
Received this at 15 while Sender sent this at 5
Received this at 20 while Sender sent this at 10
Received this at 25 while Sender sent this at 15
Received this at 30 while Sender sent this at 20
Received this at 35 while Sender sent this at 25
Received this at 40 while Sender sent this at 30
Received this at 45 while Sender sent this at 35
Received this at 50 while Sender sent this at 40
Received this at 55 while Sender sent this at 45
Received this at 60 while Sender sent this at 50
Received this at 65 while Sender sent this at 55
Received this at 70 while Sender sent this at 60
Received this at 75 while Sender sent this at 65
Received this at 80 while Sender sent this at 70
Received this at 85 while Sender sent this at 75
Received this at 90 while Sender sent this at 80
Received this at 95 while Sender sent this at 85

You have ideas for better examples? Please send them to our mainling list or make a pull request on bitbucket.

API Reference

The API reference provides detailed descriptions of SimPy’s classes and functions. It should be helpful if you plan to extend Simpy with custom components.

simpy — The end user API

The simpy module provides SimPy’s end-user API. It aggregates Simpy’s most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.

Core classes and functions

  • Environment: SimPy’s central class. It contains the simulation’s state and lets the PEMs interact with it (i.e., schedule events).
  • Interrupt: This exception is thrown into a process if it gets interrupted by another one.

Resources

  • Container: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).
  • Store: Allows the production and consumption of discrete Python objects.
  • FilterStore: Like Store, but items taken out of it can be filtered with a user-defined function.

Monitoring

[Not yet implemented]

Other

simpy.test()

Runs SimPy’s test suite via py.test.

simpy.core — SimPy’s core components

This module contains the implementation of SimPy’s core classes. The most important ones are directly importable via simpy.

class simpy.core.BaseEnvironment

The abstract definition of an environment.

An implementation must at least provide the means to access the current time of the environment (see now) and to schedule (see schedule()) as well as execute (see step() and run()) events.

The class is meant to be subclassed for different execution environments. For example, SimPy defines a Environment for simulations with a virtual time and and a RealtimeEnvironment that schedules and executes events in real (e.g., wallclock) time.

now

The current time of the environment.

active_process

The currently active process of the environment.

schedule(event, priority=1, delay=0)

Schedule an event with a given priority and a delay.

There are two default priority values, URGENT and NORMAL.

step()

Process the next event.

run(until=None)

Executes step() until the given criterion until is met.

  • If it is None (which is the default) this method will return if there are no further events to be processed.
  • If it is an Event the method will continue stepping until this event has been triggered and will return its value.
  • If it can be converted to a number the method will continue stepping until the environment’s time reaches until.
class simpy.core.Environment(initial_time=0)

Inherits BaseEnvironment and implements a simulation environment which simulates the passing of time by stepping from event to event.

You can provide an initial_time for the environment. By defaults, it starts at 0.

This class also provides aliases for common event types, for example process, timeout and event.

now

The current simulation time.

active_process

The currently active process of the environment.

process(generator)

Create a new Process instance for generator.

timeout(delay, value=None)

Return a new Timeout event with a delay and, optionally, a value.

event()

Return a new Event instance. Yielding this event suspends a process until another process triggers the event.

all_of(events)

Return a new AllOf condition for a list of events.

any_of(events)

Return a new AnyOf condition for a list of events.

exit(value=None)

Convenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a value.

Note

From Python 3.3, you can use return value instead.

schedule(event, priority=1, delay=0)

Schedule an event with a given priority and a delay.

peek()

Get the time of the next scheduled event. Return Infinity if there is no further event.

step()

Process the next event.

Raise an EmptySchedule if no further events are available.

run(until=None)

Executes step() until the given criterion until is met.

  • If it is None (which is the default) this method will return if there are no further events to be processed.
  • If it is an Event the method will continue stepping until this event has been triggered and will return its value.
  • If it can be converted to a number the method will continue stepping until the environment’s time reaches until.
class simpy.core.BoundClass(cls)

Allows classes to behave like methods.

The __get__() descriptor is basically identical to function.__get__() and binds the first argument of the cls to the descriptor instance.

static bind_early(instance)

Bind all BoundClass attributes of the instance’s class to the instance itself to increase performance.

class simpy.core.EmptySchedule

Thrown by the Environment if there are no further events to be processed.

simpy.core.Infinity = inf

Convenience alias for infinity

simpy.events — Core event types

This events module contains the various event type used by the SimPy core.

The base class for all events is Event. Though it can be directly used, there are several specialized subclasses of it:

  • Timeout: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.
  • Initialize: Initializes a new Process.
  • Process: Processes are also modeled as an event so other processes can wait until another one finishes.
  • Condition: Events can be concatenated with | an & to either wait until one or both of the events are triggered.
  • AllOf: Special case of Condition; wait until a list of events has been triggered.
  • AnyOf: Special case of Condition; wait until one of a list of events has been triggered.

This module also defines the Interrupt exception.

simpy.events.PENDING = object()

Unique object to identify pending values of events.

simpy.events.URGENT = 0

Priority of interrupts and process initialization events.

simpy.events.NORMAL = 1

Default priority used by events.

class simpy.events.Event(env)

Base class for all events.

Every event is bound to an environment env (see BaseEnvironment) and has an optional value.

An event has a list of callbacks. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals—you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.

This class also implements __and__() (&) and __or__() (|). If you concatenate two events using one of these operators, a Condition event is generated that lets you wait for both or one of them.

env = None

The Environment the event lives in.

callbacks = None

List of functions that are called when the event is processed.

triggered

Becomes True if the event has been triggered and its callbacks are about to be invoked.

processed

Becomes True if the event has been processed (e.g., its callbacks have been invoked).

value

The value of the event if it is available.

The value is available when the event has been triggered.

Raise a AttributeError if the value is not yet available.

trigger(event)

Triggers the event with the state and value of the provided event.

This method can be used directly as a callback function.

succeed(value=None)

Schedule the event and mark it as successful. Return the event instance.

You can optionally pass an arbitrary value that will be sent into processes waiting for that event.

Raise a RuntimeError if this event has already been scheduled.

fail(exception)

Schedule the event and mark it as failed. Return the event instance.

The exception will be thrown into processes waiting for that event.

Raise a ValueError if exception is not an Exception.

Raise a RuntimeError if this event has already been scheduled.

class simpy.events.Timeout(env, delay, value=None)

An Event that is scheduled with a certain delay after its creation.

This event can be used by processes to wait (or hold their state) for delay time steps. It is immediately scheduled at env.now + delay and has thus (in contrast to Event) no success() or fail() method.

class simpy.events.Initialize(env, process)

Initializes a process. Only used internally by Process.

class simpy.events.Process(env, generator)

A Process is a wrapper for the process generator (that is returned by a process function) during its execution.

It also contains internal and external status information and is used for process interaction, e.g., for interrupts.

Process inherits Event. You can thus wait for the termination of a process by simply yielding it from your process function.

An instance of this class is returned by simpy.core.Environment.process().

target

The event that the process is currently waiting for.

May be None if the process was just started or interrupted and did not yet yield a new event.

is_alive

True until the process generator exits.

interrupt(cause=None)

Interupt this process optionally providing a cause.

A process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a RuntimeError in these cases.

class simpy.events.Condition(env, evaluate, events)

A Condition Event groups several events and is triggered if a given condition (implemented by the evaluate function) becomes true.

The value of the condition is a dictionary that maps the input events to their respective values. It only contains entries for those events that occurred until the condition was met.

If one of the events fails, the condition also fails and forwards the exception of the failing event.

The evaluate function receives the list of target events and the number of processed events in this list. If it returns True, the condition is scheduled. The Condition.all_events() and Condition.any_events() functions are used to implement and (&) and or (|) for events.

Conditions events can be nested.

static all_events(events, count)

A condition function that returns True if all events have been triggered.

static any_events(events, count)

A condition function that returns True if at least one of events has been triggered.

class simpy.events.AllOf(env, events)

A Condition event that waits for all events.

class simpy.events.AnyOf(env, events)

A Condition event that waits until the first of events is triggered.

exception simpy.events.Interrupt(cause)

This exceptions is sent into a process if it was interrupted by another process (see Process.interrupt()).

cause may be none if no cause was explicitly passed to Process.interrupt().

An interrupt has a higher priority as a normal event. Thus, if a process has a normal event and an interrupt scheduled at the same time, the interrupt will always be thrown into the process first.

If a process is interrupted multiple times at the same time, all interrupts will be thrown into the process in the same order as they occurred.

cause

The cause of the interrupt or None if no cause was provided.

simpy.monitoring — Monitor SimPy simulations

SimPy’s monitoring capabilities will be added in version 3.1.

simpy.resources — SimPy’s built-in resource types

SimPy defines three kinds of resources with one or more concrete resource types each:

  • resource: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).
  • container: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).
  • store: Resources that allow the production and consumption of discrete Python objects.

The base module defines the base classes that are used by all resource types.

simpy.resources.base — Base classes for all resources

This module contains the base classes for Simpy’s resource system.

BaseResource defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. Put and Get are the base event types for this.

class simpy.resources.base.BaseResource(env)

This is the abstract base class for all SimPy resources.

All resources are bound to a specific Environment env.

You can put() something into the resources or get() something out of it. Both methods return an event that the requesting process has to yield.

If a put or get operation can be performed immediately (because the resource is not full (put) or not empty (get)), that event is triggered immediately.

If a resources is too full or too empty to perform a put or get request, the event is pushed to the put_queue or get_queue. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.

put() and get() only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in _do_put() and _do_get().

PutQueue

The type to be used for the put_queue. This can either be a plain list (default) or a subclass of it.

alias of list

GetQueue

The type to be used for the get_queue. This can either be a plain list (default) or a subclass of it.

alias of list

put_queue = None

Queue/list of events waiting to get something out of the resource.

get_queue = None

Queue/list of events waiting to put something into the resource.

put

Create a new Put event.

alias of Put

get

Create a new Get event.

alias of Get

_do_put(event)

Actually perform the put operation.

This methods needs to be implemented by subclasses. It receives the put_event that is created at each request and doesn’t need to return anything.

_trigger_put(get_event)

Trigger pending put events after a get event has been executed.

_do_get(event)

Actually perform the get operation.

This methods needs to be implemented by subclasses. It receives the get_event that is created at each request and doesn’t need to return anything.

_trigger_get(put_event)

Trigger pending get events after a put event has been executed.

class simpy.resources.base.Put(resource)

The base class for all put events.

It receives the resource that created the event.

This event (and all of its subclasses) can act as context manager and can be used with the with statement to automatically cancel a put request if an exception or an simpy.events.Interrupt occurs:

with res.put(item) as request:
    yield request

It is not used directly by any resource, but rather sub-classed for each type.

cancel(exc_type, exc_value, traceback)

Cancel the current put request.

This method has to be called if a process received an Interrupt or an exception while yielding this event and is not going to yield this event again.

If the event was created in a with statement, this method is called automatically.

class simpy.resources.base.Get(resource)

The base class for all get events.

It receives the resource that created the event.

This event (and all of its subclasses) can act as context manager and can be used with the with statement to automatically cancel a get request if an exception or an simpy.events.Interrupt occurs:

with res.get() as request:
    yield request

It is not used directly by any resource, but rather sub-classed for each type.

cancel(exc_type, exc_value, traceback)

Cancel the current get request.

This method has to be called if a process received an Interrupt or an exception while yielding this event and is not going to yield this event again.

If the event was created in a with statement, this method is called automatically.

simpy.resources.container — Container type resources

This module contains all Container like resources.

Containers model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).

For example, a gasoline station stores gas (petrol) in large tanks. Tankers increase, and refuelled cars decrease, the amount of gas in the station’s storage tanks.

class simpy.resources.container.Container(env, capacity=inf, init=0)

Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).

The env parameter is the Environment instance the container is bound to.

The capacity defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via init. It must be >= 0 and is 0 by default.

Raise a ValueError if capacity <= 0, init < 0 or init > capacity.

capacity

The maximum capacity of the container.

level

The current level of the container (a number between 0 and capacity).

put

Creates a new ContainerPut event.

alias of ContainerPut

get

Creates a new ContainerGet event.

alias of ContainerGet

class simpy.resources.container.ContainerPut(container, amount)

An event that puts amount into the container. The event is triggered as soon as there’s enough space in the container.

Raise a ValueError if amount <= 0.

amount = None

The amount to be put into the container.

class simpy.resources.container.ContainerGet(resource, amount)

An event that gets amount from the container. The event is triggered as soon as there’s enough content available in the container.

Raise a ValueError if amount <= 0.

amount = None

The amount to be taken out of the container.

simpy.resources.resource – Resource type resources

This module contains all Resource like resources.

These resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes request these resources to become a user (or to own them) and have to release them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).

Requesting a resources is modeled as “putting a process’ token into the resources” and releasing a resources correspondingly as “getting a process’ token out of the resource”. Thus, calling request()/release() is equivalent to calling put()/get(). Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.

Beside Resource, there are a PriorityResource, were processes can define a request priority, and a PreemptiveResource whose resource users can be preempted by other processes with a higher priority.

class simpy.resources.resource.Resource(env, capacity=1)

A resource has a limited number of slots that can be requested by a process.

If all slots are taken, requesters are put into a queue. If a process releases a slot, the next process is popped from the queue and gets one slot.

The env parameter is the Environment instance the resource is bound to.

The capacity defines the number of slots and must be a positive integer.

users = None

List of Request events for the processes that are currently using the resource.

queue = None

Queue/list of pending Request events that represent processes waiting to use the resource.

capacity

Maximum capacity of the resource.

count

Number of users currently using the resource.

request

Create a new Request event.

alias of Request

release

Create a new Release event.

alias of Release

class simpy.resources.resource.PriorityResource(env, capacity=1)

This class works like Resource, but requests are sorted by priority.

The queue is kept sorted by priority in ascending order (a lower value for priority results in a higher priority), so more important request will get the resource earlier.

PutQueue

The type to be used for the put_queue.

alias of SortedQueue

GetQueue

The type to be used for the get_queue.

alias of list

request

Create a new PriorityRequest event.

alias of PriorityRequest

class simpy.resources.resource.PreemptiveResource(env, capacity=1)

This resource mostly works like Resource, but users of the resource can be preempted by higher prioritized requests.

Furthermore, the queue of requests is also sorted by priority.

If a less important request is preempted, the process of that request will receive an Interrupt with a Preempted instance as cause.

class simpy.resources.resource.Preempted(by, usage_since)
by = None

The preempting simpy.events.Process.

usage_since = None

The simulation time at which the preempted process started to use the resource.

class simpy.resources.resource.Request(resource)

Request access on the resource. The event is triggered once access is granted.

If the maximum capacity of users is not reached, the requesting process obtains the resource immediately. If the maximum capacity is reached, the requesting process waits until another process releases the resource.

The request is automatically released when the request was created within a with statement.

class simpy.resources.resource.Release(resource, request)

Releases the access privilege to resource granted by request. This event is triggered immediately.

If there’s another process waiting for the resource, resume it.

If the request was made in a with statement (e.g., with res.request() as req:), this method is automatically called when the with block is left.

request = None

The request (Request) that is to be released.

class simpy.resources.resource.PriorityRequest(resource, priority=0, preempt=True)

Request the resource with a given priority. If the resource supports preemption and preempted is true other processes with access to the resource may be preempted (see PreemptiveResource for details).

This event type inherits Request and adds some additional attributes needed by PriorityResource and PreemptiveResource

priority = None

The priority of this request. A smaller number means higher priority.

preempt = None

Indicates whether the request should preempt a resource user or not (this flag is not taken into account by PriorityResource).

time = None

The time at which the request was made.

key = None

Key for sorting events. Consists of the priority (lower value is more important), the time at witch the request was made (earlier requests are more important) and finally the preemption flag (preempt requests are more important).

class simpy.resources.resource.SortedQueue(maxlen=None)

Queue that sorts events by their key attribute.

maxlen = None

Maximum length of the queue.

append(item)

Append item to the queue and keep the queue sorted.

Raise a RuntimeError if the queue is full.

simpy.resources.store — Store type resources

This module contains all Store like resources.

Stores model the production and consumption of concrete objects. The object type is, by default, not restricted. A single Store can even contain multiple types of objects.

Beside Store, there is a FilterStore that lets you use a custom function to filter the objects you get out of the store.

class simpy.resources.store.Store(env, capacity=inf)

Models the production and consumption of concrete Python objects.

Items put into the store can be of any type. By default, they are put and retrieved from the store in a first-in first-out order.

The env parameter is the Environment instance the container is bound to.

The capacity defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A ValueError is raised if the value is negative.

items = None

List of the items within the store.

capacity

The maximum capacity of the store.

put

Create a new StorePut event.

alias of StorePut

get

Create a new StoreGet event.

alias of StoreGet

class simpy.resources.store.FilterStore(env, capacity=inf)

The FilterStore subclasses Store and allows you to only get items that match a user-defined criteria.

This criteria is defined via a filter function that is passed to get(). get() only considers items for which this function returns True.

Note

In contrast to Store, processes trying to get an item from FilterStore won’t necessarily be processed in the same order that they made the request.

Example: The store is empty. Process 1 tries to get an item of type a, Process 2 an item of type b. Another process puts one item of type b into the store. Though Process 2 made his request after Process 1, it will receive that new item because Process 1 doesn’t want it.

GetQueue

The type to be used for the get_queue.

alias of FilterQueue

get

Create a new FilterStoreGet event.

alias of FilterStoreGet

class simpy.resources.store.StorePut(resource, item)

Put item into the store if possible or wait until it is.

item = None

The item to put into the store.

class simpy.resources.store.StoreGet(resource)

Get an item from the store or wait until one is available.

class simpy.resources.store.FilterStoreGet(resource, filter=lambda item: True)

Get an item from the store for which filter returns True. This event is triggered once such an event is available.

The default filter function returns True for all items, and thus this event exactly behaves like StoreGet.

filter = None

The filter function to use.

class simpy.resources.store.FilterQueue

The queue inherits list and modifies __getitem__() and __bool__() to appears to only contain events for which the store‘s item queue contains proper item.

__getitem__(key)

Get the keyth event from all events that have an item available in the corresponding store’s item queue.

__bool__()

Return True if the queue contains an event for which an item is available in the corresponding store’s item queue.

__nonzero__()

Provided for backwards compatability: __bool__() is only used from Python 3 onwards.

simpy.rt — Real-time simulations

Provides an environment whose time passes according to the (scaled) real-time (aka wallclock time).

class simpy.rt.RealtimeEnvironment(initial_time=0, factor=1.0, strict=True)

An Environment which uses the real (e.g. wallclock) time.

A time step will take factor seconds of real time (one second by default); e.g., if you step from 0 until 3 with factor=0.5, the simpy.core.BaseEnvironment.run() call will take at least 1.5 seconds.

If the processing of the events for a time step takes too long, a RuntimeError is raised in step(). You can disable this behavior by setting strict to False.

factor = None

Scaling factor of the real-time.

strict = None

Running mode of the environment. step() will raise a RuntimeError if this is set to True and the processing of events takes too long.

step()

Waits until enough real-time has passed for the next event to happen.

The delay is scaled according to the real-time factor. If the events of a time step are processed too slowly for the given factor and if strict is enabled, a RuntimeError is raised.

simpy.util — Utility functions for SimPy

This modules contains various utility functions:

simpy.util.start_delayed(env, generator, delay)

Return a helper process that starts another process for generator after a certain delay.

process() starts a process at the current simulation time. This helper allows you to start a process after a delay of delay simulation time units:

>>> from simpy import Environment
>>> from simpy.util import start_delayed
>>> def my_process(env, x):
...     print('%s, %s' % (env.now, x))
...     yield env.timeout(1)
...
>>> env = Environment()
>>> proc = start_delayed(env, my_process(env, 3), 5)
>>> env.run()
5, 3

Raise a ValueError if delay <= 0.

simpy.util.subscribe_at(event)

Register at the event to receive an interrupt when it occurs.

The most common use case for this is to pass a Process to get notified when it terminates.

Raise a RuntimeError if event has already occurred.

About SimPy

This sections is all about the non-technical stuff. How did SimPy evolve? Who was responsible for it? And what the heck were they tinking when they made it?

SimPy History & Change Log

SimPy was originally based on ideas from Simula and Simscript but uses standard Python. It combines two previous packages, SiPy, in Simula-Style (Klaus Müller) and SimPy, in Simscript style (Tony Vignaux and Chang Chui).

SimPy was based on efficient implementation of co-routines using Python’s generators capability.

SimPy 3 introduced a completely new and easier-to-use API, but still relied on Python’s generators as they proved to work very well.

The package has been hosted on Sourceforge.net since September 15th, 2002. In June 2012, the project moved to Bitbucket.org.

3.0.4 – 2014-04-07

  • [NEW] Verified, that SimPy works on Python 3.4.
  • [NEW] Guide to SimPy events
  • [CHANGE] The result dictionary for condition events (AllOF / & and AnyOf / |) now is an OrderedDict sorted in the same way as the original events list.
  • [CHANGE] Condition events now also except processed events.
  • [FIX] Resource.request() directly after Resource.release() no longer successful. The process now has to wait as supposed to.
  • [FIX] Event.fail() now accept all exceptions derived from BaseException instead of only Exception.

3.0.3 – 2014-03-06

  • [NEW] Guide to SimPy basics.
  • [NEW] Guide to SimPy Environments.
  • [FIX] Timing problems with real time simulation on Windows (issue #46).
  • [FIX] Installation problems on Windows due to Unicode errors (issue #41).
  • [FIX] Minor documentation issues.

3.0.2 – 2013-10-24

  • [FIX] The default capacity for Container and FilterStore is now also inf.

3.0.1 – 2013-10-24

  • [FIX] Documentation and default parameters of Store didn’t match. Its default capacity is now inf.

3.0 – 2013-10-11

SimPy 3 has been completely rewritten from scratch. Our main goals were to simplify the API and code base as well as making SimPy more flexible and extensible. Some of the most important changes are:

  • Stronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a timeout (formerly known as hold), but even processes are now events, too (you can wait until a process terminates).
  • Events can be combined with & (and) and | (or) to create condition events.
  • Process can now be defined by any generator function. You don’t have to subclass Process anymore.
  • No more global simulation state. Every simulation stores its state in an environment which is comparable to the old Simulation class.
  • Improved resource system with newly added resource types.
  • Removed plotting and GUI capabilities. Pyside and matplotlib are much better with this.
  • Greatly improved test suite. Its cleaner, and the tests are shorter and more numerous.
  • Completely overhauled documentation.

There is a guide for porting from SimPy 2 to SimPy 3. If you want to stick to SimPy 2 for a while, change your requirements to 'SimPy>=2.3,<3'.

All in all, SimPy has become a framework for asynchronous programming based on coroutines. It brings more than ten years of experience and scientific know-how in the field of event-discrete simulation to the world of asynchronous programming and should thus be a solid foundation for everything based on an event loop.

You can find information about older versions on the history page

2.3.1 – 2012-01-28

  • [NEW] More improvements on the documentation.
  • [FIX] Syntax error in tkconsole.py when installing on Py3.2.
  • [FIX] Added mock to the dep. list in SimPy.test().

2.3 – 2011-12-24

  • [NEW] Support for Python 3.2. Support for Python <= 2.5 has been dropped.
  • [NEW] SimPy.test() method to run the tests on the installed version of SimPy.
  • [NEW] Tutorials/examples were integrated into the test suite.
  • [CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).
  • [CHANGE] Many documentation improvements.

2.2 – 2011-09-27

  • [CHANGE] Restructured package layout to be conform to the Hitchhiker’s Guide to packaging
  • [CHANGE] Tests have been ported to pytest.
  • [CHANGE] Documentation improvements and clean-ups.
  • [FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix.

2.1 – 2010-06-03

  • [NEW] A function step has been added to the API. When called, it executes the next scheduled event. (step is actually a method of Simulation.)
  • [NEW] Another new function is peek. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.
  • [NEW] A simple interactive debugger stepping.py has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.
  • [NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.
  • [NEW] A new document describes tools for gaining insight into and debugging SimPy models.
  • [CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.
  • [CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.
  • [CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.
  • [CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.
  • [FIX] Functions allEventNotices and allEventTimes are working again.
  • [FIX] Error messages for methods in SimPy.Lib work again.

2.0.1 – 2009-04-06

  • [NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).
  • [FIX] Repaired a number of coding errors in several models in the SimPyModels folder.
  • [FIX] Repaired SimulationRT.py bug introduced by recoding for the OO API.
  • [FIX] Repaired errors in sample programs in documents:
    • Simulation with SimPy - In Depth Manual
    • SimPy’s Object Oriented API Manual
    • Simulation With Real Time Synchronization Manual
    • SimPlot Manual
    • Publication-quality Plot Production With Matplotlib Manual

2.0.0 – 2009-01-26

This is a major release with changes to the SimPy application programming interface (API) and the formatting of the documentation.

API changes

In addition to its existing API, SimPy now also has an object oriented API. The additional API

  • allows running SimPy in parallel on multiple processors or multi-core CPUs,
  • supports better structuring of SimPy programs,
  • allows subclassing of class Simulation and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, and
  • reduces the total amount of SimPy code, thereby making it easier to maintain.

Note that the OO API is in addition to the old API. SimPy 2.0 is fully backward compatible.

Documentation format changes

SimPy’s documentation has been restructured and processed by the Sphinx documentation generation tool. This has generated one coherent, well structured document which can be easily browsed. A seach capability is included.

March 2008: Version 1.9.1

This is a bug-fix release which cures the following bugs:

  • Excessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements.
  • Runtime error for preempts of proceeses holding multiple Resource objects.

It also adds a Short Manual, describing only the basic facilities of SimPy.

December 2007: Version 1.9

This is a major release with added functionality/new user API calls and bug fixes.

Major changes
  • The event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the ‘heapq’ sorting package replaces ‘bisect’. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux’ idea!
  • The Manual has been edited and given an easier-to-read layout.
  • The Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs.
Bug fixes
  • The tracing of ‘activate’ statements has been enabled.
Additions
  • A method returning the time-weighted variance of observations has been added to classes Monitor and Tally.
  • A shortcut activation method called “start” has been added to class Process.

January 2007: Version 1.8

Major Changes
  • SimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later.
  • The Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format.
  • The Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format.
  • The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable ‘version’.
  • The __str__ method of Histogram was changed to return a table format.
Bug fixes
  • Repaired a bug in yield waituntil runtime code.
  • Introduced check for capacity parameter of a Level or a Store being a number > 0.
  • Added code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case).
  • Repaired a bug in prettyprinting of Store objects.
Additions
  • New compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances.
  • yield get on a Store instance can now have a filter function.
  • All Monitor and Tally instances are automatically registered in list allMonitors and allTallies, respectively.
  • The new function startCollection allows activation of Monitors and Tallies at a specified time.
  • A printHistogram method was added to Tally and Monitor which generates a table-form histogram.
  • In SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added.

June 2006: Version 1.7.1

This is a maintenance release. The API has not been changed/added to.

  • Repair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer).
  • Repair of Level __init__ method to allow initialBuffered to be of either float or int type.
  • Addition of type test for Level get parameter ‘nrToGet’ to limit it to positive int or float.
  • To improve pretty-printed output of ‘Level’ objects, changed attribute ‘_nrBuffered’ to ‘nrBuffered’ (synonym for ‘amount’ property).
  • To improve pretty-printed output of ‘Store’ objects, added attribute ‘buffered’ (which refers to ‘_theBuffer’ attribute).

February 2006: Version 1.7

This is a major release.

  • Addition of an abstract class Buffer, with two sub-classes Store and Level Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.
  • Addition of two new yield statements:
    • yield put for putting items into a buffer, and
    • yield get for getting items from a buffer.
  • The Manual has undergone a major re-write/edit.
  • All scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all import statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.

September 2005: Version 1.6.1

This is a minor release.

  • Addition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor.
  • Change of Resource to work with Tally (new Resource API is backwards-compatible with 1.6).
  • Addition of function setHistogram to class Monitor for initializing histograms.
  • New function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances.
  • Addition of function allEventTimes (returns event times of all scheduled events).

15 June 2005: Version 1.6

  • Addition of two compound yield statement forms to support the modelling of processes reneging from resource queues.
  • Addition of two test/demo files showing the use of the new reneging statements.
  • Addition of test for prior simulation initialization in method activate().
  • Repair of bug in monitoring thw waitQ of a resource when preemption occurs.
  • Major restructuring/editing to Manual and Cheatsheet.

1 February 2005: Version 1.5.1

  • MAJOR LICENSE CHANGE:

    Starting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work.

  • Minor re-release

  • No additional/changed functionality

  • Includes unit test file’MonitorTest.py’ which had been accidentally deleted from 1.5

  • Provides updated version of ‘Bank.html’ tutorial.

  • Provides an additional tutorial (‘Bank2.html’) which shows how to use the new synchronization constructs introduced in SimPy 1.5.

  • More logical, cleaner version numbering in files.

1 December 2004: Version 1.5

  • No new functionality/API changes relative to 1.5 alpha
  • Repaired bug related to waiting/queuing for multiple events
  • SimulationRT: Improved synchronization with wallclock time on Unix/Linux

25 September 2004: Version 1.5alpha

  • New functionality/API additions

    • SimEvents and signalling synchronization constructs, with ‘yield waitevent’ and ‘yield queueevent’ commands.
    • A general “wait until” synchronization construct, with the ‘yield waituntil’ command.
  • No changes to 1.4.x API, i.e., existing code will work as before.

19 May 2004: Version 1.4.2

  • Sub-release to repair two bugs:

    • The unittest for monitored Resource queues does not fail anymore.
    • SimulationTrace now works correctly with “yield hold,self” form.
  • No functional or API changes

29 February 2004: Version 1.4.1

  • Sub-release to repair two bugs:

    • The (optional) monitoring of the activeQ in Resource now works correctly.
    • The “cellphone.py” example is now implemented correctly.
  • No functional or API changes

1 February 2004: Version 1.4

  • Released on SourceForge.net

22 December 2003: Version 1.4 alpha

  • New functionality/API changes

    • All classes in the SimPy API are now new style classes, i.e., they inherit from object either directly or indirectly.
    • Module Monitor.py has been merged into module Simulation.py and all SimulationXXX.py modules. Import of Simulation or any SimulationXXX module now also imports Monitor.
    • Some Monitor methods/attributes have changed. See Manual!
    • Monitor now inherits from list.
    • A class Histogram has been added to Simulation.py and all SimulationXXX.py modules.
    • A module SimulationRT has been added which allows synchronization between simulated and wallclock time.
    • A moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event.
    • A Tk/Tkinter-based module SimGUI has been added which provides a SimPy GUI framework.
    • A Tk/Tkinter-based module SimPlot has been added which provides for plot output from SimPy programs.

22 June 2003: Version 1.3

  • No functional or API changes
  • Reduction of sourcecode linelength in Simulation.py to <= 80 characters

June 2003: Version 1.3 alpha

  • Significantly improved performance

  • Significant increase in number of quasi-parallel processes SimPy can handle

  • New functionality/API changes:

    • Addition of SimulationTrace, an event trace utility
    • Addition of Lister, a prettyprinter for instance attributes
    • No API changes
  • Internal changes:

    • Implementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you!
  • Update of Manual to address tracing.

  • Update of Interfacing doc to address output visualization using Scientific Python gplt package.

29 April 2003: Version 1.2

  • No changes in API.

  • Internal changes:
    • Defined “True” and “False” in Simulation.py to support Python 2.2.

22 October 2002

  • Re-release of 0.5 Beta on SourceForge.net to replace corrupted file __init__.py.
  • No code changes whatever!

18 October 2002

  • Version 0.5 Beta-release, intended to get testing by application developers and system integrators in preparation of first full (production) release. Released on SourceForge.net on 20 October 2002.

  • More models

  • Documentation enhanced by a manual, a tutorial (“The Bank”) and installation instructions.

  • Major changes to the API:

    • Introduced ‘simulate(until=0)’ instead of ‘scheduler(till=0)’. Left ‘scheduler()’ in for backward compatibility, but marked as deprecated.

    • Added attribute “name” to class Process. Process constructor is now:

      def __init__(self,name="a_process")
      

      Backward compatible if keyword parameters used.

    • Changed Resource constructor to:

      def __init__(self,capacity=1,name="a_resource",unitName="units")
      

      Backward compatible if keyword parameters used.

27 September 2002

  • Version 0.2 Alpha-release, intended to attract feedback from users
  • Extended list of models
  • Upodated documentation

17 September 2002

  • Version 0.1.2 published on SourceForge; fully working, pre-alpha code
  • Implements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.
  • Contains basic documentation (cheatsheet) and simulation models for test and demonstration.

Acknowledgments

SimPy 2 has been primarily developed by Stefan Scherfke and Ontje Lünsdorf, starting from SimPy 1.9. Their work has resulted in a most elegant combination of an object oriented API with the existing API, maintaining full backward compatibility. It has been quite easy to integrate their product into the existing SimPy code and documentation environment.

Thanks, guys, for this great job! SimPy 2.0 is dedicated to you!

SimPy was originally created by Klaus Müller and Tony Vignaux. They pushed its development for several years and built the Simpy community. Without them, there would be no SimPy 3.

Thanks, guys, for this great job! SimPy 3.0 is dedicated to you!

The many contributions of the SimPy user and developer communities are of course also gratefully acknowledged.

Defense of Design

This document explains why SimPy is designed the way it is and how its design evolved over time.

Original Design of SimPy 1

SimPy 1 was heavily inspired by Simula 67 and Simscript. The basic entity of the framework was a process. A process described a temporal sequence of actions.

In SimPy 1, you implemented a process by sub-classing Process. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn’t of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the process execution method (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.

The simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from Process and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.

SimPy 1 also followed the “batteries included” approach, providing shared resources, monitoring, plotting, GUIs and multiple types of simulations (“normal”, real-time, manual stepping, with tracing).

The following code fragment shows how a simple simulation could be implemented in SimPy 1:

from SimPy.Simulation import Process, hold, initialize, activate, simulate

class MyProcess(Process):
    def pem(self, repeat):
        for i in range(repeat):
            yield hold, self, 1

initialize()
proc = MyProcess()
activate(proc, proc.pem(3))
simulate(until=10)



sim = Simulation()
proc = MyProcess(sim=sim)
sim.activate(proc, proc.pem(3))
sim.simulate(until=10)

Changes in SimPy 2

Simpy 2 mostly sticked with Simpy 1’s design, but added an object orient API for the execution of simulations, allowing them to be executed in parallel. Since processes and the simulation state were so closely coupled, you now needed to pass the Simulation instance into your process to “bind” them to that instance. Additionally, you still had to activate the process. If you forgot to pass the simulation instance, the process would use a global instance thereby breaking your program. SimPy 2’s OO-API looked like this:

from SimPy.Simulation import Simulation, Process, hold

class MyProcess(Process):
    def pem(self, repeat):
        for i in range(repeat):
            yield hold, self, 1

sim = Simulation()
proc = MyProcess(sim=sim)
sim.activate(proc, proc.pem(3))
sim.simulate(until=10)

Changes and Decisions in SimPy 3

The original goals for SimPy 3 were to simplify and PEP8-ify its API and to clean up and modularize its internals. We knew from the beginning that our goals would not be achievable without breaking backwards compatibility with SimPy 2. However, we didn’t expect the API changes to become as extensive as they ended up to be.

We also removed some of the included batteries, namely SimPy’s plotting and GUI capabilities, since dedicated libraries like matplotlib or PySide do a much better job here.

However, by far the most changes are—from the end user’s view—mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing yield hold, self, 1 with yield env.timeout(1)).

In short, the most notable changes in SimPy 3 are:

  • No more sub-classing of Process required. PEMs can even be simple module level functions.
  • The simulation state is now stored in an Environment which can also be used by a PEM to interact with the simulation.
  • PEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types.

These changes are causing the above example to now look like this:

from simpy import Environment, simulate

def pem(env, repeat):
    for i in range(repeat):
        yield env.timeout(i)

env = Environment()
env.process(pem(env, 7))
simulate(env, until=10)

The following sections describe these changes in detail:

No More Sub-classing of Process

In Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The Process class still exists, but you don’t need to instantiate it by yourself, though. More on that later.

Processes Live in an Environment

Process and simulation state are decoupled. An Environment holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the Process or Environment class without affecting other components.

For the same reason, the simulate() method now is a module level function that takes an environment to simulate.

Stronger Focus on Events

In former versions, PEMs needed to yield one of SimPy’s built-in keywords (like hold) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the Simulation and Process making it very hard to extend SimPy with new functionality.

In Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a BaseEvent. Most events are generated by factory methods of Environment. For example, Environment.timeout() creates a Timeout event that replaces the hold keyword.

The Process is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were “washing” is a process that the car processes can wait for once they enter the washing station.

Creating Events via the Environment or Resources

The Environment and resources have methods to create new events, e.g. Environment.timeout() or Resource.request(). Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:

def event(self):
    return Event()

To simplify things, we wanted to use the event classes directly as methods:

class Environment(object)
    event = Event

This was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a BoundClass:

class BoundClass(object):
    """Allows classes to behave like methods. The ``__get__()`` descriptor
    is basically identical to ``function.__get__()`` and binds the first
    argument of the ``cls`` to the descriptor instance.

    """
    def __init__(self, cls):
        self.cls = cls

    def __get__(self, obj, type=None):
        if obj is None:
            return self.cls
        return types.MethodType(self.cls, obj)


class Environment(object):
    event = BoundClass(Event)

These methods are called a lot, so we added the event classes as types.MethodType to the instance of Environment (or the resources, respectively):

class Environment(object):
    def __init__(self):
        self.event = types.MethodType(Event, self)

It turned out the the class attributes (the BoundClass instances) were now quite useless, so we removed them allthough it was actually the “right” way to to add classes as methods to another class.

Release Process

This process describes the steps to execute in order to release a new version of SimPy.

Preparations

  1. Close all tickets for the next version.

  2. Update the minium required versions of dependencies in setup.py. Update the exact version of all entries in requirements.txt.

  3. Run tox from the project root. All tests for all supported versions must pass:

    $ tox
    [...]
    ________ summary ________
    py27: commands succeeded
    py32: commands succeeded
    py33: commands succeeded
    pypy: commands succeeded
    congratulations :)
    

    Note

    Tox will use the requirements.txt to setup the venvs, so make sure you’ve updated it!

  4. Build the docs (HTML is enough). Make sure there are no errors and undefined references.

    $ cd docs/
    $ make clean html
    $ cd ..
    
  5. Check if all authors are listed in AUTHORS.txt.

  6. Update the change logs (CHANGES.txt and docs/about/history.rst). Only keep changes for the current major release in CHANGES.txt and reference the history page from there.

  7. Commit all changes:

    $ hg ci -m 'Updated change log for the upcoming release.'
    
  8. Write a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it.

Build and release

  1. Test the release process. Build a source distribution and a wheel package and test them:

    $ python setup.py sdist
    $ python setup.py bdist_wheel
    $ ls dist/
    simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gz
    

    Try installing them:

    $ rm -rf /tmp/simpy-sdist  # ensure clean state if ran repeatedly
    $ virtualenv /tmp/simpy-sdist
    $ /tmp/simpy-sdist/bin/pip install pytest
    $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz
    $ /tmp/simpy-sdist/bin/python
    >>> import simpy
    >>> simpy.__version__  # doctest: +SKIP
    'a.b.c'
    >>> simpy.test()  # doctest: +SKIP
    

    and

    $ rm -rf /tmp/simpy-wheel  # ensure clean state if ran repeatedly
    $ virtualenv /tmp/simpy-wheel
    $ /tmp/simpy-wheel/bin/pip install pytest
    $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy
    $ /tmp/simpy-wheel/bin/python
    >>> import simpy  # doctest: +SKIP
    >>> simpy.__version__  # doctest: +SKIP
    'a.b.c'
    >>> simpy.test()  # doctest: +SKIP
    
  2. Create or check your accounts for the test server <https://testpypi.python.org/pypi> and PyPI. Update your ~/.pypirc with your current credentials:

    [distutils]
    index-servers =
        pypi
        test
    
    [test]
    repository = https://testpypi.python.org/pypi
    username = <your test user name goes here>
    password = <your test password goes here>
    
    [pypi]
    repository = http://pypi.python.org/pypi
    username = <your production user name goes here>
    password = <your production password goes here>
    
  3. Register SimPy with the test server and upload the distributions:

    $ python setup.py register -r test
    $ python setup.py sdist upload -r test
    $ python setup.py bdist_wheel upload -r test
    
  4. Check if the package is displayed correctly: https://testpypi.python.org/pypi/simpy

  5. Test the installation again:

    $ pip install -i https://testpypi.python.org/pypi simpy
    
  6. Update the version number in simpy/__init__.py, commit and create a tag:

    $ hg ci -m 'Bump version from a.b.c to x.y.z'
    $ hg tag x.y.z
    $ hg push ssh://hg@bitbucket.org/simpy/simpy
    
  7. Finally upload the package to PyPI and test its installation one last time:

    $ python setup.py register
    $ python setup.py sdist upload
    $ python setup.py bdist_wheel upload
    $ pip install simpy
    
  8. Check if the package is displayed correctly: https://pypi.python.org/pypi/simpy

  9. Activate the documentation build for the new version.

Post release

  1. Send the prepared email to the mailing list and post it on Google+.
  2. Update Wikipedia entries.
  3. Update Python Wiki
  4. Post something to Planet Python (e.g., via Stefan’s blog).

License

Indices and tables

Read the Docs v: 3.0.4
Versions
latest
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PKh0Dm$!simpy-3.0.4/.buildinfo# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: tags: PKh0D ɝmmsimpy-3.0.4/objects.inv# Sphinx inventory version 2 # Project: SimPy # Version: 3.0 # The remainder of this file is compressed using zlib. xڽZ_s8ϧ`&}^{o}K\&34YMD$'1jÊ0evB*&]+cM(Q) 'L2e}2ͳ==Y~>FFF^l@01Ӛ{t/ry^-o2+944EϚ.VD3Z)FJ mF_ 0)+v9bLI~җjQC'aJ폆Rxu RbR9W.걥o11qEȾމw"b"EƄJ֠ڂ } )X` ]7KTnm-KEA'tGwbw5_1n689*}.Z9D c28 Pٓkl"&Rm\&ׇDhSN>'JZ4 `bs:<44jՀyy:ٓKZbbL8^&}!Π߱2[UrhXjcp=]q}JUHb܀ҺR|_Xʶ!l2x)A; 3Gwl>>AI& | 2V!!t{c\%Ĥcm6P3c,YD{瓄T<ߦTVpvJ0a-W/MB]GvJDI=޵eQ|B5d{1Pj4@ )~akd+^?3y5^h FRg4R!rSzWbeVe'!KVP, ,C3ζ(Re Eq=m`$WLڿ"#QAW>tH},Eũ+Y1@60?|QΈ!fUBlõ6xg$^DͅMJ5<*,vmD¿7w?У֣;9aRHs%TK!& ) SKbg8U=lL~=n+MJu):Bx_LNyJ7",Zlo@=ڪ, ~=8 ;8ZmhR51GbD!=uaWHSx[Sl lou ^h }xBa?È} l aqD9hc,{Jw< Nm8tx(fɶ;VTa-&D y];þ-C[-t)@RPuk<*τGYTl3%h }̀8b6$8!@;:ٛ<ɩuPKh0D>9>L>Lsimpy-3.0.4/index.html Overview — SimPy 3.0.4 documentation

Welcome to SimPy

Event discrete simulation for Python.

News | PyPIBitbucket | Issues | Mailing list

>>> import simpy
>>>
>>> def clock(env, name, tick):
...     while True:
...         print(name, env.now)
...         yield env.timeout(tick)
...
>>> env = simpy.Environment()
>>> env.process(clock(env, 'fast', 0.5))
<Process(clock) object at 0x...>
>>> env.process(clock(env, 'slow', 1))
<Process(clock) object at 0x...>
>>> env.run(until=2)
fast 0
slow 0
fast 0.5
slow 1
fast 1.0
fast 1.5

SimPy is a process-based discrete-event simulation framework based on standard Python. Its event dispatcher is based on Python’s generators and can also be used for asynchronous networking or to implement multi-agent systems (with both, simulated and real communication).

Processes in SimPy are simple Python generator functions and are used to model active components like customers, vehicles or agents. SimPy also provides various types of shared resources to model limited capacity congestion points (like servers, checkout counters and tunnels). From version 3.1, it will also provide monitoring capabilities to aid in gathering statistics about resources and processes.

Simulations can be performed “as fast as possible”, in real time (wall clock time) or by manually stepping through the events.

SimPy is not suited for continuous simulation. And it is overkill for simulations with a fixed step size where your processes don’t interact with each other or with shared resources — use a simple while loop in this case.

The SimPy distribution contains tutorials, in-depth documentation, and a large number of examples.

SimPy is released under the MIT License. Simulation model developers are encouraged to share their SimPy modeling techniques with the SimPy community. Please post a message to the SimPy-Users mailing list.

Documentation

Read the Docs v: 3.0.4
Versions
latest
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK@DBy}}(simpy-3.0.4/.doctrees/environment.pickle(csphinx.environment BuildEnvironment qoq}q(Udlfilesqcsphinx.util FilenameUniqDict q)qc__builtin__ set q]RqbUintersphinx_named_inventoryq }Uappq NU _warnfuncq NUtitlesq }q (Xtopical_guides/eventsqcdocutils.nodes title q)q}q(U rawsourceqUU attributesq}q(Udupnamesq]Uclassesq]Ubackrefsq]Uidsq]Unamesq]uUchildrenq]qcdocutils.nodes Text qXEventsqq}q(hXEventsq Uparentq!hubaUtagnameq"Utitleq#ubXsimpy_intro/how_to_proceedq$h)q%}q&(hUh}q'(h]h]h]h]h]uh]q(hXHow to Proceedq)q*}q+(hXHow to Proceedq,h!h%ubah"h#ubXsimpy_intro/indexq-h)q.}q/(hUh}q0(h]h]h]h]h]uh]q1hXSimPy in 10 Minutesq2q3}q4(hXSimPy in 10 Minutesq5h!h.ubah"h#ubXexamples/movie_renegeq6h)q7}q8(hUh}q9(h]h]h]h]h]uh]q:hX Movie Renegeq;q<}q=(hX Movie Renegeq>h!h7ubah"h#ubX about/indexq?h)q@}qA(hUh}qB(h]h]h]h]h]uh]qChX About SimPyqDqE}qF(hX About SimPyqGh!h@ubah"h#ubXcontentsqHh)qI}qJ(hUh}qK(h]h]h]h]h]uh]qLhXDocumentation for SimPyqMqN}qO(hXDocumentation for SimPyqPh!hIubah"h#ubX about/historyqQh)qR}qS(hUh}qT(h]h]h]h]h]uh]qUhXSimPy History & Change LogqVqW}qX(hXSimPy History & Change LogqYh!hRubah"h#ubXabout/defense_of_designqZh)q[}q\(hUh}q](h]h]h]h]h]uh]q^hXDefense of Designq_q`}qa(hXDefense of Designqbh!h[ubah"h#ubXindexqch)qd}qe(hUh}qf(h]h]h]h]h]uh]qghX SimPy homeqhqi}qj(hX SimPy homeqkh!hdubah"h#ubX"topical_guides/porting_from_simpy2qlh)qm}qn(hUh}qo(h]h]h]h]h]uh]qphXPorting from SimPy 2 to 3qqqr}qs(hXPorting from SimPy 2 to 3qth!hmubah"h#ubXapi_reference/simpy.utilquh)qv}qw(hUh}qx(h]h]h]h]h]uh]qy(cdocutils.nodes literal qz)q{}q|(hX``simpy.util``q}h}q~(h]h]h]h]h]uh!hvh]qhX simpy.utilqq}q(hUh!h{ubah"UliteralqubhX --- Utility functions for SimPyqq}q(hX --- Utility functions for SimPyqh!hvubeh"h#ubXexamples/process_communicationqh)q}q(hUh}q(h]h]h]h]h]uh]qhXProcess Communicationqq}q(hXProcess Communicationqh!hubah"h#ubX about/licenseqh)q}q(hUh}q(h]h]h]h]h]uh]qhXLicenseqq}q(hXLicenseqh!hubah"h#ubXtopical_guides/simpy_basicsqh)q}q(hUh}q(h]h]h]h]h]uh]qhX SimPy basicsqq}q(hX SimPy basicsqh!hubah"h#ubXabout/acknowledgementsqh)q}q(hUh}q(h]h]h]h]h]uh]qhXAcknowledgmentsqq}q(hXAcknowledgmentsqh!hubah"h#ubXexamples/bank_renegeqh)q}q(hUh}q(h]h]h]h]h]uh]qhX Bank Renegeqq}q(hX Bank Renegeqh!hubah"h#ubXsimpy_intro/basic_conceptsqh)q}q(hUh}q(h]h]h]h]h]uh]qhXBasic Conceptsqq}q(hXBasic Conceptsqh!hubah"h#ubXapi_reference/simpy.monitoringqh)q}q(hUh}q(h]h]h]h]h]uh]q(hz)q}q(hX``simpy.monitoring``qh}q(h]h]h]h]h]uh!hh]qhXsimpy.monitoringqȅq}q(hUh!hubah"hubhX --- Monitor SimPy simulationsq˅q}q(hX --- Monitor SimPy simulationsqh!hubeh"h#ubXapi_reference/simpy.eventsqh)q}q(hUh}q(h]h]h]h]h]uh]q(hz)q}q(hX``simpy.events``qh}q(h]h]h]h]h]uh!hh]qhX simpy.eventsqمq}q(hUh!hubah"hubhX --- Core event typesq܅q}q(hX --- Core event typesqh!hubeh"h#ubXsimpy_intro/shared_resourcesqh)q}q(hUh}q(h]h]h]h]h]uh]qhXShared Resourcesq允q}q(hXShared Resourcesqh!hubah"h#ubXexamples/gas_station_refuelqh)q}q(hUh}q(h]h]h]h]h]uh]qhXGas Station Refuelingqq}q(hXGas Station Refuelingqh!hubah"h#ubX'api_reference/simpy.resources.containerqh)q}q(hUh}q(h]h]h]h]h]uh]q(hz)q}q(hX``simpy.resources.container``qh}q(h]h]h]h]h]uh!hh]qhXsimpy.resources.containerqq}q(hUh!hubah"hubhX --- Container type resourcesqr}r(hX --- Container type resourcesrh!hubeh"h#ubXapi_reference/simpy.corerh)r}r(hUh}r(h]h]h]h]h]uh]r(hz)r}r (hX``simpy.core``r h}r (h]h]h]h]h]uh!jh]r hX simpy.corer r}r(hUh!jubah"hubhX --- SimPy's core componentsrr}r(hX --- SimPy's core componentsrh!jubeh"h#ubXtopical_guides/indexrh)r}r(hUh}r(h]h]h]h]h]uh]rhXTopical Guidesrr}r(hXTopical Guidesrh!jubah"h#ubXexamples/indexrh)r}r(hUh}r (h]h]h]h]h]uh]r!hXExamplesr"r#}r$(hXExamplesr%h!jubah"h#ubXapi_reference/simpyr&h)r'}r((hUh}r)(h]h]h]h]h]uh]r*(hz)r+}r,(hX ``simpy``r-h}r.(h]h]h]h]h]uh!j'h]r/hXsimpyr0r1}r2(hUh!j+ubah"hubhX --- The end user APIr3r4}r5(hX --- The end user APIr6h!j'ubeh"h#ubXsimpy_intro/installationr7h)r8}r9(hUh}r:(h]h]h]h]h]uh]r;hX Installationr<r=}r>(hX Installationr?h!j8ubah"h#ubXexamples/machine_shopr@h)rA}rB(hUh}rC(h]h]h]h]h]uh]rDhX Machine ShoprErF}rG(hX Machine ShoprHh!jAubah"h#ubXapi_reference/indexrIh)rJ}rK(hUh}rL(h]h]h]h]h]uh]rMhX API ReferencerNrO}rP(hX API ReferencerQh!jJubah"h#ubXabout/release_processrRh)rS}rT(hUh}rU(h]h]h]h]h]uh]rVhXRelease ProcessrWrX}rY(hXRelease ProcessrZh!jSubah"h#ubX&api_reference/simpy.resources.resourcer[h)r\}r](hUh}r^(h]h]h]h]h]uh]r_(hz)r`}ra(hX``simpy.resources.resource``rbh}rc(h]h]h]h]h]uh!j\h]rdhXsimpy.resources.resourcererf}rg(hUh!j`ubah"hubhX -- Resource type resourcesrhri}rj(hX -- Resource type resourcesrkh!j\ubeh"h#ubXexamples/carwashrlh)rm}rn(hUh}ro(h]h]h]h]h]uh]rphXCarwashrqrr}rs(hXCarwashrth!jmubah"h#ubXtopical_guides/environmentsruh)rv}rw(hUh}rx(h]h]h]h]h]uh]ryhX Environmentsrzr{}r|(hX Environmentsr}h!jvubah"h#ubX#api_reference/simpy.resources.storer~h)r}r(hUh}r(h]h]h]h]h]uh]r(hz)r}r(hX``simpy.resources.store``rh}r(h]h]h]h]h]uh!jh]rhXsimpy.resources.storerr}r(hUh!jubah"hubhX --- Store type resourcesrr}r(hX --- Store type resourcesrh!jubeh"h#ubXexamples/latencyrh)r}r(hUh}r(h]h]h]h]h]uh]rhX Event Latencyrr}r(hX Event Latencyrh!jubah"h#ubX"api_reference/simpy.resources.baserh)r}r(hUh}r(h]h]h]h]h]uh]r(hz)r}r(hX``simpy.resources.base``rh}r(h]h]h]h]h]uh!jh]rhXsimpy.resources.baserr}r(hUh!jubah"hubhX# --- Base classes for all resourcesrr}r(hX# --- Base classes for all resourcesrh!jubeh"h#ubXapi_reference/simpy.resourcesrh)r}r(hUh}r(h]h]h]h]h]uh]r(hz)r}r(hX``simpy.resources``rh}r(h]h]h]h]h]uh!jh]rhXsimpy.resourcesrr}r(hUh!jubah"hubhX$ --- SimPy's built-in resource typesrr}r(hX$ --- SimPy's built-in resource typesrh!jubeh"h#ubXsimpy_intro/process_interactionrh)r}r(hUh}r(h]h]h]h]h]uh]rhXProcess Interactionrr}r(hXProcess Interactionrh!jubah"h#ubXapi_reference/simpy.rtrh)r}r(hUh}r(h]h]h]h]h]uh]r(hz)r}r(hX ``simpy.rt``rh}r(h]h]h]h]h]uh!jh]rhXsimpy.rtrr}r(hUh!jubah"hubhX --- Real-time simulationsrr}r(hX --- Real-time simulationsrh!jubeh"h#ubuU domaindatar}r(Ustdr}r(UversionrKU anonlabelsr}r(Xporting_from_simpy2rhlUporting-from-simpy2rUgenindexrjUUmodindexrU py-modindexUUsearchrUsearchUXbasic_conceptsrhUbasic-conceptsrXsimulation-controlrjuUsimulation-controlrX#waiting_for_multiple_events_at_oncerhU#waiting-for-multiple-events-at-onceruUlabelsr}r(jhljXPorting from SimPy 2 to 3jjUcsphinx.locale _TranslationProxy rcsphinx.locale mygettext rUIndexrrjjrbjU py-modindexUjjU Module IndexrrjjrbjjUjjU Search PagerrjjrbjhjXBasic ConceptsjjujXSimulation controljhjX#Waiting for multiple events at onceuU progoptionsr}rUobjectsr}ruUc}r(j}rjKuUpyr}r(j}r(Xsimpy.core.EnvironmentrjXclassrXsimpy.events.ProcessrhXclassX)simpy.resources.resource.Resource.requestrj[X attributerXsimpy.events.Event.valuerhX attributeXsimpy.core.Environment.nowrjX attributerX#simpy.rt.RealtimeEnvironment.factorrjX attributerXsimpy.events.AllOfrhXclassX*simpy.resources.store.FilterQueue.__bool__rj~XmethodrX simpy.eventsr hUmoduler X0simpy.resources.resource.PriorityRequest.preemptr j[X attributer Xsimpy.core.Environment.scheduler jXmethodrXsimpy.events.ConditionrhXclassX'simpy.resources.container.Container.putrhX attributeX.simpy.resources.base.BaseResource._trigger_putrjXmethodX%simpy.resources.base.BaseResource.putrjX attributeX(simpy.resources.resource.PriorityRequestrj[XclassrXsimpy.core.Environment.all_ofrjXmethodrXsimpy.resources.store.Store.getrj~X attributerX*simpy.resources.base.BaseResource.GetQueuerjX attributeXsimpy.resources.base.Put.cancelrjXmethodX2simpy.resources.resource.PriorityResource.PutQueuerj[X attributerX*simpy.resources.store.FilterStore.GetQueuerj~X attributerX$simpy.resources.resource.SortedQueuerj[Xclassr X*simpy.resources.base.BaseResource.PutQueuer!jX attributeXsimpy.resourcesr"jj X-simpy.resources.store.FilterQueue.__nonzero__r#j~Xmethodr$Xsimpy.resources.baser%jj X%simpy.resources.base.BaseResource.getr&jX attributeX%simpy.core.Environment.active_processr'jX attributer(X,simpy.resources.container.Container.capacityr)hX attributeXsimpy.resources.base.Getr*jXclassXsimpy.core.Environment.processr+jXmethodr,Xsimpy.events.Event.triggerr-hXmethodXsimpy.events.AnyOfr.hXclassX$simpy.resources.store.FilterStoreGetr/j~Xclassr0X%simpy.resources.resource.Preempted.byr1j[X attributer2Xsimpy.events.Event.succeedr3hXmethodX simpy.resources.resource.Releaser4j[Xclassr5Xsimpy.events.Interruptr6hX exceptionXsimpy.events.Interrupt.causer7hX attributeX simpy.corer8jj X simpy.utilr9huj Xsimpy.events.Event.envr:hX attributeX)simpy.resources.base.BaseResource._do_putr;jXmethodX simpy.resources.resource.Requestr<j[Xclassr=Xsimpy.events.Event.callbacksr>hX attributeX#simpy.resources.store.StorePut.itemr?j~X attributer@X simpy.core.BoundClass.bind_earlyrAjX staticmethodrBXsimpy.events.NORMALrChXdataX"simpy.resources.resource.PreemptedrDj[XclassrEXsimpy.events.EventrFhXclassXsimpy.core.Environment.any_ofrGjXmethodrHXsimpy.rtrIjj X!simpy.resources.store.FilterStorerJj~XclassrKX-simpy.resources.container.ContainerPut.amountrLhX attributeX'simpy.resources.resource.Resource.usersrMj[X attributerNX-simpy.resources.container.ContainerGet.amountrOhX attributeX'simpy.resources.resource.Resource.queuerPj[X attributerQXsimpy.events.URGENTrRhXdataXsimpy.resources.store.StorePutrSj~XclassrTXsimpy.events.Process.interruptrUhXmethodX+simpy.resources.base.BaseResource.put_queuerVjX attributeXsimpy.core.BoundClassrWjXclassrXXsimpy.events.Process.is_aliverYhX attributeX'simpy.resources.resource.Resource.countrZj[X attributer[X!simpy.events.Condition.any_eventsr\hX staticmethodXsimpy.util.subscribe_atr]huXfunctionr^Xsimpy.resources.resourcer_j[j X#simpy.core.BaseEnvironment.scheduler`jXmethodraX'simpy.resources.container.Container.getrbhX attributeX+simpy.resources.resource.SortedQueue.maxlenrcj[X attributerdXsimpy.core.BaseEnvironmentrejXclassrfXsimpy.resources.store.Store.putrgj~X attributerhXsimpy.core.Environment.steprijXmethodrjXsimpy.core.Environment.runrkjXmethodrlXsimpy.events.TimeoutrmhXclassX)simpy.resources.resource.PriorityResourcernj[XclassroX*simpy.resources.resource.Resource.capacityrpj[X attributerqX simpy.testrrj&XfunctionXsimpy.core.Environment.exitrsjXmethodrtXsimpy.core.InfinityrujXdatarvX+simpy.resources.resource.PreemptiveResourcerwj[XclassrxXsimpy.events.InitializeryhXclassXsimpy.resources.containerrzhj X!simpy.resources.base.BaseResourcer{jXclassXsimpy.core.BaseEnvironment.runr|jXmethodr}X,simpy.resources.resource.PriorityRequest.keyr~j[X attributerX1simpy.resources.resource.PriorityResource.requestrj[X attributerX+simpy.resources.base.BaseResource.get_queuerjX attributeXsimpy.resources.base.PutrjXclassXsimpy.events.Event.triggeredrhX attributeXsimpy.core.Environment.timeoutrjXmethodrX&simpy.resources.container.ContainerGetrhXclassX+simpy.resources.store.FilterStoreGet.filterrj~X attributerXsimpy.core.BaseEnvironment.steprjXmethodrXsimpy.util.start_delayedrhuXfunctionrX)simpy.resources.resource.Resource.releaserj[X attributerXsimpy.core.EmptySchedulerjXclassrX#simpy.resources.container.ContainerrhXclassXsimpy.resources.storerj~j Xsimpy.resources.base.Get.cancelrjXmethodX-simpy.resources.store.FilterQueue.__getitem__rj~XmethodrX!simpy.resources.store.FilterQueuerj~XclassrX1simpy.resources.resource.PriorityRequest.priorityrj[X attributerXsimpy.core.Environment.peekrjXmethodrX#simpy.rt.RealtimeEnvironment.strictrjX attributerXsimpyrj&j X)simpy.resources.base.BaseResource._do_getrjXmethodX%simpy.resources.store.FilterStore.getrj~X attributerX&simpy.resources.container.ContainerPutrhXclassX+simpy.resources.resource.SortedQueue.appendrj[XmethodrXsimpy.resources.store.StoreGetrj~XclassrXsimpy.events.Process.targetrhX attributeX)simpy.resources.container.Container.levelrhX attributeX$simpy.resources.store.Store.capacityrj~X attributerXsimpy.core.Environment.eventrjXmethodrXsimpy.core.BaseEnvironment.nowrjX attributerXsimpy.events.Event.failrhXmethodX.simpy.resources.base.BaseResource._trigger_getrjXmethodX)simpy.core.BaseEnvironment.active_processrjX attributerX-simpy.resources.resource.PriorityRequest.timerj[X attributerXsimpy.events.Event.processedrhX attributeX.simpy.resources.resource.Preempted.usage_sincerj[X attributerX(simpy.resources.resource.Release.requestrj[X attributerXsimpy.monitoringrhj Xsimpy.events.PENDINGrhXdataXsimpy.rt.RealtimeEnvironmentrjXclassrX!simpy.resources.resource.Resourcerj[XclassrX!simpy.rt.RealtimeEnvironment.steprjXmethodrXsimpy.resources.store.Storerj~XclassrX!simpy.events.Condition.all_eventsrhX staticmethodX!simpy.resources.store.Store.itemsrj~X attributerX2simpy.resources.resource.PriorityResource.GetQueuerj[X attributeruUmodulesr}r(j8(jUUtj9(huUUtj(j~UUtj(j&UUtj"(jUUtj_(j[UUtj%(jUUtjI(jUUtjz(hUUtj (hUUtj(hUUtujKuUjsr}r(j}rjKuUrstr}r(j}rjKuUcppr}r(j}rjKuuU glob_toctreesrh]RrU reread_alwaysrh]RrU doctreedirrXM/var/build/user_builds/simpy/checkouts/3.0.4/docs/_build/localmedia/.doctreesrUversioning_conditionrU citationsr}jK*Uintersphinx_inventoryr}r(X std:labelr}r(X sqlite3-controlling-transactionsr(XPythonrX3.4rXNhttp://docs.python.org/3/library/sqlite3.html#sqlite3-controlling-transactionsXControlling TransactionstrXattribute-accessr(jjXBhttp://docs.python.org/3/reference/datamodel.html#attribute-accessXCustomizing attribute accesstrXhigh-level-embeddingr(jjXFhttp://docs.python.org/3/extending/embedding.html#high-level-embeddingXVery High Level EmbeddingtrXtut-calculatorr(jjXBhttp://docs.python.org/3/tutorial/introduction.html#tut-calculatorXUsing Python as a CalculatortrXdescriptor-objectsr(jjXAhttp://docs.python.org/3/c-api/descriptor.html#descriptor-objectsXDescriptor ObjectstrX blank-linesr(jjXDhttp://docs.python.org/3/reference/lexical_analysis.html#blank-linesX Blank linestrX expressionsr(jjX?http://docs.python.org/3/reference/expressions.html#expressionsX ExpressionstrX install-cmdr(jjX>http://docs.python.org/3/distutils/commandref.html#install-cmdX.Installing modules: the install command familytrXfunc-bytearrayr(jjX>http://docs.python.org/3/library/functions.html#func-bytearrayX-trXpostinstallation-scriptr(jjXIhttp://docs.python.org/3/distutils/builtdist.html#postinstallation-scriptXThe Postinstallation scripttrXtut-command-line-argumentsr(jjXHhttp://docs.python.org/3/tutorial/stdlib.html#tut-command-line-argumentsXCommand Line ArgumentstrXdecimal-threadsr(jjX=http://docs.python.org/3/library/decimal.html#decimal-threadsXWorking with threadstrXspecial-lookupr(jjX@http://docs.python.org/3/reference/datamodel.html#special-lookupXSpecial method lookuptrXnonlocalr(jjX=http://docs.python.org/3/reference/simple_stmts.html#nonlocalXThe nonlocal statementtrXqueue-listenerr(jjXEhttp://docs.python.org/3/library/logging.handlers.html#queue-listenerX QueueListenertrXinput-source-objectsr(jjXIhttp://docs.python.org/3/library/xml.sax.reader.html#input-source-objectsXInputSource ObjectstrXdoctest-advanced-apir(jjXBhttp://docs.python.org/3/library/doctest.html#doctest-advanced-apiX Advanced APItrXpep-380r(jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-380X0PEP 380: Syntax for Delegating to a SubgeneratortrX64-bit-access-rightsr(jjX>http://docs.python.org/3/library/winreg.html#bit-access-rightsX64-bit SpecifictrX typeobjectsr (jjX4http://docs.python.org/3/c-api/type.html#typeobjectsX Type Objectstr X tut-definingr (jjX?http://docs.python.org/3/tutorial/controlflow.html#tut-definingXMore on Defining Functionstr Xbuilding-python-on-unixr (jjX@http://docs.python.org/3/using/unix.html#building-python-on-unixXBuilding PythontrX timer-objectsr(jjX=http://docs.python.org/3/library/threading.html#timer-objectsX Timer ObjectstrXtut-jsonr(jjX;http://docs.python.org/3/tutorial/inputoutput.html#tut-jsonX Saving structured data with jsontrXctypes-finding-shared-librariesr(jjXLhttp://docs.python.org/3/library/ctypes.html#ctypes-finding-shared-librariesXFinding shared librariestrXinst-alt-install-prefix-windowsr(jjXKhttp://docs.python.org/3/install/index.html#inst-alt-install-prefix-windowsX3Alternate installation: Windows (the prefix scheme)trX tut-objectr(jjX9http://docs.python.org/3/tutorial/classes.html#tut-objectXA Word About Names and ObjectstrXpartial-objectsr(jjX?http://docs.python.org/3/library/functools.html#partial-objectsXpartial ObjectstrXrotating-file-handlerr(jjXLhttp://docs.python.org/3/library/logging.handlers.html#rotating-file-handlerXRotatingFileHandlertrX shlex-objectsr(jjX9http://docs.python.org/3/library/shlex.html#shlex-objectsX shlex ObjectstrXdecimal-recipesr(jjX=http://docs.python.org/3/library/decimal.html#decimal-recipesXRecipestr Xprefix-matchingr!(jjX>http://docs.python.org/3/library/argparse.html#prefix-matchingX(Argument abbreviations (prefix matching)tr"X specialattrsr#(jjX;http://docs.python.org/3/library/stdtypes.html#specialattrsXSpecial Attributestr$X format-stylesr%(jjXBhttp://docs.python.org/3/howto/logging-cookbook.html#format-stylesX$Use of alternative formatting stylestr&Xlocale-gettextr'(jjX;http://docs.python.org/3/library/locale.html#locale-gettextXAccess to message catalogstr(Xmailbox-examplesr)(jjX>http://docs.python.org/3/library/mailbox.html#mailbox-examplesXExamplestr*Xstruct-alignmentr+(jjX=http://docs.python.org/3/library/struct.html#struct-alignmentXByte Order, Size, and Alignmenttr,Xinst-how-install-worksr-(jjXBhttp://docs.python.org/3/install/index.html#inst-how-install-worksXHow installation workstr.X"optparse-conflicts-between-optionsr/(jjXQhttp://docs.python.org/3/library/optparse.html#optparse-conflicts-between-optionsXConflicts between optionstr0Xinst-alt-install-homer1(jjXAhttp://docs.python.org/3/install/index.html#inst-alt-install-homeX'Alternate installation: the home schemetr2Xelementtree-element-objectsr3(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-element-objectsXElement Objectstr4X handle-objectr5(jjX:http://docs.python.org/3/library/winreg.html#handle-objectXRegistry Handle Objectstr6X section-boolr7(jjX7http://docs.python.org/3/whatsnew/2.3.html#section-boolXPEP 285: A Boolean Typetr8Xfaq-argument-vs-parameterr9(jjXGhttp://docs.python.org/3/faq/programming.html#faq-argument-vs-parameterX8What is the difference between arguments and parameters?tr:Xctypes-incomplete-typesr;(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-incomplete-typesXIncomplete Typestr<Xwhatsnew-marshal-3r=(jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-marshal-3Xmarshaltr>Xdeprecated-aliasesr?(jjXAhttp://docs.python.org/3/library/unittest.html#deprecated-aliasesXDeprecated aliasestr@Xdom-type-mappingrA(jjX>http://docs.python.org/3/library/xml.dom.html#dom-type-mappingX Type MappingtrBXitertools-functionsrC(jjXChttp://docs.python.org/3/library/itertools.html#itertools-functionsXItertool functionstrDX epoll-objectsrE(jjX:http://docs.python.org/3/library/select.html#epoll-objectsX.Edge and Level Trigger Polling (epoll) ObjectstrFXwhatsnew-singledispatchrG(jjXBhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-singledispatchX-trHXpassrI(jjX9http://docs.python.org/3/reference/simple_stmts.html#passXThe pass statementtrJXtut-passrK(jjX;http://docs.python.org/3/tutorial/controlflow.html#tut-passXpass StatementstrLX%ctypes-loading-dynamic-link-librariesrM(jjXRhttp://docs.python.org/3/library/ctypes.html#ctypes-loading-dynamic-link-librariesXLoading dynamic link librariestrNXdatetimeobjectsrO(jjX<http://docs.python.org/3/c-api/datetime.html#datetimeobjectsXDateTime ObjectstrPXinst-search-pathrQ(jjX<http://docs.python.org/3/install/index.html#inst-search-pathXModifying Python's Search PathtrRXemail-examplesrS(jjXChttp://docs.python.org/3/library/email-examples.html#email-examplesXemail: ExamplestrTXzipimport-examplesrU(jjXBhttp://docs.python.org/3/library/zipimport.html#zipimport-examplesXExamplestrVXdistutils-conceptsrW(jjXGhttp://docs.python.org/3/distutils/introduction.html#distutils-conceptsXConcepts & TerminologytrXX urllib-howtorY(jjX8http://docs.python.org/3/howto/urllib2.html#urllib-howtoX7HOWTO Fetch Internet Resources Using The urllib PackagetrZXacks27r[(jjX1http://docs.python.org/3/whatsnew/2.7.html#acks27XAcknowledgementstr\Xtelnet-objectsr](jjX>http://docs.python.org/3/library/telnetlib.html#telnet-objectsXTelnet Objectstr^Xxdr-exceptionsr_(jjX;http://docs.python.org/3/library/xdrlib.html#xdr-exceptionsX Exceptionstr`Xcustom-handlersra(jjXDhttp://docs.python.org/3/howto/logging-cookbook.html#custom-handlersX&Customizing handlers with dictConfig()trbXwhatsnew-selectorsrc(jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-selectorsX selectorstrdXownershiprulesre(jjX@http://docs.python.org/3/extending/extending.html#ownershiprulesXOwnership RulestrfXcontents-of-module-rerg(jjX>http://docs.python.org/3/library/re.html#contents-of-module-reXModule ContentstrhX compilationri(jjX=http://docs.python.org/3/extending/extending.html#compilationXCompilation and LinkagetrjXatomsrk(jjX9http://docs.python.org/3/reference/expressions.html#atomsXAtomstrlXbuffer-request-typesrm(jjX?http://docs.python.org/3/c-api/buffer.html#buffer-request-typesXBuffer request typestrnXthreadsro(jjX0http://docs.python.org/3/c-api/init.html#threadsX,Thread State and the Global Interpreter LocktrpXpickle-picklablerq(jjX=http://docs.python.org/3/library/pickle.html#pickle-picklableX"What can be pickled and unpickled?trrXcondition-objectsrs(jjXAhttp://docs.python.org/3/library/threading.html#condition-objectsXCondition ObjectstrtXsearchru(jjX%http://docs.python.org/3/search.html#X Search PagetrvXdom-attributelist-objectsrw(jjXGhttp://docs.python.org/3/library/xml.dom.html#dom-attributelist-objectsXNamedNodeMap ObjectstrxXcsv-fmt-paramsry(jjX8http://docs.python.org/3/library/csv.html#csv-fmt-paramsX"Dialects and Formatting ParameterstrzX!email-contentmanager-api-examplesr{(jjXVhttp://docs.python.org/3/library/email-examples.html#email-contentmanager-api-examplesX"Examples using the Provisional APItr|X tut-invokingr}(jjX?http://docs.python.org/3/tutorial/interpreter.html#tut-invokingXInvoking the Interpretertr~X repr-objectsr(jjX:http://docs.python.org/3/library/reprlib.html#repr-objectsX Repr ObjectstrXmimetypes-objectsr(jjXAhttp://docs.python.org/3/library/mimetypes.html#mimetypes-objectsXMimeTypes ObjectstrXdebuggerr(jjX2http://docs.python.org/3/library/pdb.html#debuggerXpdb --- The Python DebuggertrXimplicit-joiningr(jjXIhttp://docs.python.org/3/reference/lexical_analysis.html#implicit-joiningXImplicit line joiningtrXwhats-new-in-2.6r(jjX;http://docs.python.org/3/whatsnew/2.6.html#whats-new-in-2-6XWhat's New in Python 2.6trXtut-codingstyler(jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-codingstyleXIntermezzo: Coding StyletrXcalls-as-tuplesr(jjXChttp://docs.python.org/3/library/unittest.mock.html#calls-as-tuplesX-trXwave-write-objectsr(jjX=http://docs.python.org/3/library/wave.html#wave-write-objectsXWave_write ObjectstrXunixr(jjX/http://docs.python.org/3/library/unix.html#unixXUnix Specific ServicestrX mailbox-mmdfr(jjX:http://docs.python.org/3/library/mailbox.html#mailbox-mmdfXMMDFtrXasyncio-protocolr(jjXGhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-protocolX ProtocolstrX&optparse-what-positional-arguments-forr(jjXUhttp://docs.python.org/3/library/optparse.html#optparse-what-positional-arguments-forX"What are positional arguments for?trXmailbox-objectsr(jjX=http://docs.python.org/3/library/mailbox.html#mailbox-objectsXMailbox objectstrXasyncore-example-2r(jjXAhttp://docs.python.org/3/library/asyncore.html#asyncore-example-2X"asyncore Example basic echo servertrXefficient_string_concatenationr(jjXLhttp://docs.python.org/3/faq/programming.html#efficient-string-concatenationXDWhat is the most efficient way to concatenate many strings together?trX*ctypes-accessing-values-exported-from-dllsr(jjXWhttp://docs.python.org/3/library/ctypes.html#ctypes-accessing-values-exported-from-dllsX#Accessing values exported from dllstrXtut-argpassingr(jjXAhttp://docs.python.org/3/tutorial/interpreter.html#tut-argpassingXArgument PassingtrX distributingr(jjX=http://docs.python.org/3/extending/building.html#distributingX#Distributing your extension modulestrXhttp-password-mgrr(jjXFhttp://docs.python.org/3/library/urllib.request.html#http-password-mgrXHTTPPasswordMgr ObjectstrX optparse-putting-it-all-togetherr(jjXOhttp://docs.python.org/3/library/optparse.html#optparse-putting-it-all-togetherXPutting it all togethertrXprotocol-error-objectsr(jjXJhttp://docs.python.org/3/library/xmlrpc.client.html#protocol-error-objectsXProtocolError ObjectstrXsimple-xmlrpc-serversr(jjXIhttp://docs.python.org/3/library/xmlrpc.server.html#simple-xmlrpc-serversXSimpleXMLRPCServer ObjectstrXlogger-adapterr(jjX<http://docs.python.org/3/library/logging.html#logger-adapterXLoggerAdapter ObjectstrXdefault_valuesr(jjX9http://docs.python.org/3/howto/clinic.html#default-valuesXParameter default valuestrXinst-config-filesr(jjX=http://docs.python.org/3/install/index.html#inst-config-filesXDistutils Configuration FilestrX nullpointersr(jjX>http://docs.python.org/3/extending/extending.html#nullpointersX NULL PointerstrXrequest-objectsr(jjXDhttp://docs.python.org/3/library/urllib.request.html#request-objectsXRequest ObjectstrX using-indexr(jjX5http://docs.python.org/3/using/index.html#using-indexXPython Setup and UsagetrXgenindexr(jjX'http://docs.python.org/3/genindex.html#XIndextrX tut-genexpsr(jjX:http://docs.python.org/3/tutorial/classes.html#tut-genexpsXGenerator ExpressionstrX func-listr(jjX9http://docs.python.org/3/library/functions.html#func-listX-trX coroutiner(jjX<http://docs.python.org/3/library/asyncio-task.html#coroutineX CoroutinestrXstring-methodsr(jjX=http://docs.python.org/3/library/stdtypes.html#string-methodsXString MethodstrX descriptorsr(jjX=http://docs.python.org/3/reference/datamodel.html#descriptorsXImplementing DescriptorstrXoptparse-adding-new-typesr(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-adding-new-typesXAdding new typestrX dict-viewsr(jjX9http://docs.python.org/3/library/stdtypes.html#dict-viewsXDictionary view objectstrXmailbox-mboxmessager(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox-mboxmessageX mboxMessagetrXcporting-howtor(jjX;http://docs.python.org/3/howto/cporting.html#cporting-howtoX%Porting Extension Modules to Python 3trXftp-handler-objectsr(jjXHhttp://docs.python.org/3/library/urllib.request.html#ftp-handler-objectsXFTPHandler ObjectstrXlambdasr(jjX;http://docs.python.org/3/reference/expressions.html#lambdasXLambdastrXinstall-data-cmdr(jjXChttp://docs.python.org/3/distutils/commandref.html#install-data-cmdX install_datatrXctypes-structured-data-typesr(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes-structured-data-typesXStructured data typestrXfile-cookie-jar-classesr(jjXLhttp://docs.python.org/3/library/http.cookiejar.html#file-cookie-jar-classesX;FileCookieJar subclasses and co-operation with web browserstrXencodings-overviewr(jjX?http://docs.python.org/3/library/codecs.html#encodings-overviewXEncodings and UnicodetrXoptparse-what-options-forr(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-what-options-forXWhat are options for?trXinstancemethod-objectsr(jjXAhttp://docs.python.org/3/c-api/method.html#instancemethod-objectsXInstance Method ObjectstrX dom-objectsr(jjX9http://docs.python.org/3/library/xml.dom.html#dom-objectsXObjects in the DOMtrXdelr(jjX8http://docs.python.org/3/reference/simple_stmts.html#delXThe del statementtrXprofile-calibrationr(jjXAhttp://docs.python.org/3/library/profile.html#profile-calibrationX CalibrationtrX exceptionsr(jjXAhttp://docs.python.org/3/reference/executionmodel.html#exceptionsX ExceptionstrXmailbox-mhmessager(jjX?http://docs.python.org/3/library/mailbox.html#mailbox-mhmessageX MHMessagetrXdefr(jjX:http://docs.python.org/3/reference/compound_stmts.html#defXFunction definitionstrXf1r(jjX0http://docs.python.org/3/library/sqlite3.html#f1X-trXfilesysr(jjX5http://docs.python.org/3/library/filesys.html#filesysXFile and Directory AccesstrXimplementationsr(jjXDhttp://docs.python.org/3/reference/introduction.html#implementationsXAlternate ImplementationstrXcookie-jar-objectsr(jjXGhttp://docs.python.org/3/library/http.cookiejar.html#cookie-jar-objectsX#CookieJar and FileCookieJar ObjectstrXbuilt-in-constsr(jjX?http://docs.python.org/3/library/constants.html#built-in-constsXBuilt-in ConstantstrXnumbersr(jjX@http://docs.python.org/3/reference/lexical_analysis.html#numbersXNumeric literalstrXpackage-uploadr(jjXChttp://docs.python.org/3/distutils/packageindex.html#package-uploadXUploading PackagestrXassert-methodsr(jjX=http://docs.python.org/3/library/unittest.html#assert-methodsX-trX sortinghowtor(jjX8http://docs.python.org/3/howto/sorting.html#sortinghowtoXSorting HOW TOtrXtermios-exampler(jjX=http://docs.python.org/3/library/termios.html#termios-exampleXExampletrXsection-encodingsr(jjX<http://docs.python.org/3/whatsnew/2.3.html#section-encodingsXPEP 263: Source Code EncodingstrXmanifest-optionsr(jjXChttp://docs.python.org/3/distutils/sourcedist.html#manifest-optionsXManifest-related optionstrXtut-quality-controlr(jjXAhttp://docs.python.org/3/tutorial/stdlib.html#tut-quality-controlXQuality ControltrXunittest-skippingr(jjX@http://docs.python.org/3/library/unittest.html#unittest-skippingX$Skipping tests and expected failurestrXctypes-arrays-pointersr(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes-arrays-pointersXArrays and pointerstrXstandardexceptionsr(jjXAhttp://docs.python.org/3/c-api/exceptions.html#standardexceptionsXStandard ExceptionstrXpyzipfile-objectsr(jjX?http://docs.python.org/3/library/zipfile.html#pyzipfile-objectsXPyZipFile ObjectstrXwin-dllsr (jjX8http://docs.python.org/3/extending/windows.html#win-dllsXUsing DLLs in Practicetr Xmappingr (jjX3http://docs.python.org/3/c-api/mapping.html#mappingXMapping Protocoltr Xsequenceobjectsr (jjX<http://docs.python.org/3/c-api/concrete.html#sequenceobjectsXSequence ObjectstrXpep-412r(jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-412XPEP 412: Key-Sharing DictionarytrXstring-formattingr(jjX>http://docs.python.org/3/library/string.html#string-formattingXString FormattingtrXoptparse-creating-parserr(jjXGhttp://docs.python.org/3/library/optparse.html#optparse-creating-parserXCreating the parsertrXnumericobjectsr(jjX;http://docs.python.org/3/c-api/concrete.html#numericobjectsXNumeric ObjectstrX constantsr(jjX6http://docs.python.org/3/library/winreg.html#constantsX ConstantstrXsummary-objectsr(jjX<http://docs.python.org/3/library/msilib.html#summary-objectsXSummary Information ObjectstrXpickle-protocolsr(jjX=http://docs.python.org/3/library/pickle.html#pickle-protocolsXData stream formattrX bytecodesr(jjX3http://docs.python.org/3/library/dis.html#bytecodesXPython Bytecode InstructionstrX id-classesr(jjXChttp://docs.python.org/3/reference/lexical_analysis.html#id-classesXReserved classes of identifierstr Xnew-27-interpreterr!(jjX=http://docs.python.org/3/whatsnew/2.7.html#new-27-interpreterXInterpreter Changestr"X fundamentalr#(jjX8http://docs.python.org/3/c-api/concrete.html#fundamentalXFundamental Objectstr$Xincremental-decoder-objectsr%(jjXHhttp://docs.python.org/3/library/codecs.html#incremental-decoder-objectsXIncrementalDecoder Objectstr&Xdistutils-additional-filesr'(jjXNhttp://docs.python.org/3/distutils/setupscript.html#distutils-additional-filesXInstalling Additional Filestr(Xdistutils-simple-exampler)(jjXMhttp://docs.python.org/3/distutils/introduction.html#distutils-simple-exampleXA Simple Exampletr*Xextending-indexr+(jjX=http://docs.python.org/3/extending/index.html#extending-indexX.Extending and Embedding the Python Interpretertr,Xinst-standard-installr-(jjXAhttp://docs.python.org/3/install/index.html#inst-standard-installXStandard Build and Installtr.Xmapping-structsr/(jjX;http://docs.python.org/3/c-api/typeobj.html#mapping-structsXMapping Object Structurestr0Xtut-multi-threadingr1(jjXBhttp://docs.python.org/3/tutorial/stdlib2.html#tut-multi-threadingXMulti-threadingtr2X concurrencyr3(jjX=http://docs.python.org/3/library/concurrency.html#concurrencyXConcurrent Executiontr4Xpath_fdr5(jjX0http://docs.python.org/3/library/os.html#path-fdX-tr6X tokenize-clir7(jjX;http://docs.python.org/3/library/tokenize.html#tokenize-cliXCommand-Line Usagetr8Xpypircr9(jjX;http://docs.python.org/3/distutils/packageindex.html#pypircXThe .pypirc filetr:Xextending-errorsr;(jjXBhttp://docs.python.org/3/extending/extending.html#extending-errorsX!Intermezzo: Errors and Exceptionstr<X rlock-objectsr=(jjX=http://docs.python.org/3/library/threading.html#rlock-objectsX RLock Objectstr>X tut-intror?(jjX9http://docs.python.org/3/tutorial/appetite.html#tut-introXWhetting Your Appetitetr@Xdom-attr-objectsrA(jjX>http://docs.python.org/3/library/xml.dom.html#dom-attr-objectsX Attr ObjectstrBXpep-308rC(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-308X PEP 308: Conditional ExpressionstrDXpep-309rE(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-309X%PEP 309: Partial Function ApplicationtrFXnew-26-interpreterrG(jjX=http://docs.python.org/3/whatsnew/2.6.html#new-26-interpreterXInterpreter ChangestrHX o_ampersandrI(jjX3http://docs.python.org/3/c-api/arg.html#o-ampersandX-trJX compilingrK(jjX;http://docs.python.org/3/extending/embedding.html#compilingX-Compiling and Linking under Unix-like systemstrLXelementtree-functionsrM(jjXQhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-functionsX FunctionstrNXdeprecated-3.4rO(jjX9http://docs.python.org/3/whatsnew/3.4.html#deprecated-3-4X DeprecatedtrPXreturnrQ(jjX;http://docs.python.org/3/reference/simple_stmts.html#returnXThe return statementtrRXdoctest-outputcheckerrS(jjXChttp://docs.python.org/3/library/doctest.html#doctest-outputcheckerXOutputChecker objectstrTXmiscrU(jjX/http://docs.python.org/3/library/misc.html#miscXMiscellaneous ServicestrVXoptparse-cleanuprW(jjX?http://docs.python.org/3/library/optparse.html#optparse-cleanupXCleanuptrXXbreakrY(jjX:http://docs.python.org/3/reference/simple_stmts.html#breakXThe break statementtrZX frameworkr[(jjX8http://docs.python.org/3/howto/webservers.html#frameworkX Frameworkstr\X tut-iteratorsr](jjX<http://docs.python.org/3/tutorial/classes.html#tut-iteratorsX Iteratorstr^X api-typesr_(jjX3http://docs.python.org/3/c-api/intro.html#api-typesXTypestr`X setup-configra(jjX?http://docs.python.org/3/distutils/configfile.html#setup-configX$Writing the Setup Configuration FiletrbXcompoundrc(jjX?http://docs.python.org/3/reference/compound_stmts.html#compoundXCompound statementstrdXdom-pi-objectsre(jjX<http://docs.python.org/3/library/xml.dom.html#dom-pi-objectsXProcessingInstruction ObjectstrfXrecord-objectsrg(jjX;http://docs.python.org/3/library/msilib.html#record-objectsXRecord ObjectstrhXsearch-vs-matchri(jjX8http://docs.python.org/3/library/re.html#search-vs-matchXsearch() vs. match()trjXpure-embeddingrk(jjX@http://docs.python.org/3/extending/embedding.html#pure-embeddingXPure EmbeddingtrlX trace-apirm(jjX5http://docs.python.org/3/library/trace.html#trace-apiXProgrammatic InterfacetrnX+ctypes-accessing-functions-from-loaded-dllsro(jjXXhttp://docs.python.org/3/library/ctypes.html#ctypes-accessing-functions-from-loaded-dllsX$Accessing functions from loaded dllstrpX24acksrq(jjX/http://docs.python.org/3/whatsnew/2.4.html#acksXAcknowledgementstrrX smtp-handlerrs(jjXChttp://docs.python.org/3/library/logging.handlers.html#smtp-handlerX SMTPHandlertrtXbrowser-controllersru(jjXDhttp://docs.python.org/3/library/webbrowser.html#browser-controllersXBrowser Controller ObjectstrvXstdcomparisonsrw(jjX=http://docs.python.org/3/library/stdtypes.html#stdcomparisonsX ComparisonstrxXtraceback-examplery(jjXAhttp://docs.python.org/3/library/traceback.html#traceback-exampleXTraceback ExamplestrzXtut-formattingr{(jjXAhttp://docs.python.org/3/tutorial/inputoutput.html#tut-formattingXFancier Output Formattingtr|Xasyncio-hello-world-callbackr}(jjXThttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-hello-world-callbackXExample: Hello World (callback)tr~Xportsr(jjX0http://docs.python.org/3/whatsnew/2.5.html#portsXPort-Specific ChangestrXtut-firststepsr(jjXBhttp://docs.python.org/3/tutorial/introduction.html#tut-firststepsXFirst Steps Towards ProgrammingtrXwarning-categoriesr(jjXAhttp://docs.python.org/3/library/warnings.html#warning-categoriesXWarning CategoriestrXnumericr(jjX5http://docs.python.org/3/library/numeric.html#numericX Numeric and Mathematical ModulestrX examples-impr(jjX6http://docs.python.org/3/library/imp.html#examples-impXExamplestrXlogging-import-resolutionr(jjXNhttp://docs.python.org/3/library/logging.config.html#logging-import-resolutionX&Import resolution and custom importerstrXtut-unpacking-argumentsr(jjXJhttp://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-argumentsXUnpacking Argument ListstrXsocket-timeoutsr(jjX<http://docs.python.org/3/library/socket.html#socket-timeoutsXNotes on socket timeoutstrXformatexamplesr(jjX;http://docs.python.org/3/library/string.html#formatexamplesXFormat examplestrX typesobjectsr(jjX;http://docs.python.org/3/library/stdtypes.html#typesobjectsXClasses and Class InstancestrXtypesseq-tupler(jjX=http://docs.python.org/3/library/stdtypes.html#typesseq-tupleXTuplestrX whitespacer(jjXChttp://docs.python.org/3/reference/lexical_analysis.html#whitespaceXWhitespace between tokenstrXzipimporter-objectsr(jjXChttp://docs.python.org/3/library/zipimport.html#zipimporter-objectsXzipimporter ObjectstrXusing-on-generalr(jjX<http://docs.python.org/3/using/cmdline.html#using-on-generalXCommand line and environmenttrXtut-scopeexampler(jjX?http://docs.python.org/3/tutorial/classes.html#tut-scopeexampleXScopes and Namespaces ExampletrX terminal-sizer(jjX6http://docs.python.org/3/library/os.html#terminal-sizeXQuerying the size of a terminaltrX!elementtree-xmlpullparser-objectsr(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlpullparser-objectsXXMLPullParser ObjectstrXfinalize-examplesr(jjX?http://docs.python.org/3/library/weakref.html#finalize-examplesXFinalizer ObjectstrXctypes-utility-functionsr(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-utility-functionsXUtility functionstrX fault-objectsr(jjXAhttp://docs.python.org/3/library/xmlrpc.client.html#fault-objectsX Fault ObjectstrXcustom-logrecordr(jjXEhttp://docs.python.org/3/howto/logging-cookbook.html#custom-logrecordXCustomizing LogRecordtrX decimal-faqr(jjX9http://docs.python.org/3/library/decimal.html#decimal-faqX Decimal FAQtrXextending-intror(jjXAhttp://docs.python.org/3/extending/extending.html#extending-introXExtending Python with C or C++trX reusable-cmsr(jjX=http://docs.python.org/3/library/contextlib.html#reusable-cmsXReusable context managerstrX io-overviewr(jjX4http://docs.python.org/3/library/io.html#io-overviewXOverviewtrX uuid-exampler(jjX7http://docs.python.org/3/library/uuid.html#uuid-exampleXExampletrX netrc-objectsr(jjX9http://docs.python.org/3/library/netrc.html#netrc-objectsX netrc ObjectstrXdatetime-timedeltar(jjXAhttp://docs.python.org/3/library/datetime.html#datetime-timedeltaXtimedelta ObjectstrX magic-methodsr(jjXAhttp://docs.python.org/3/library/unittest.mock.html#magic-methodsXMocking Magic MethodstrX using-on-macr(jjX4http://docs.python.org/3/using/mac.html#using-on-macXUsing Python on a MacintoshtrXkevent-objectsr(jjX;http://docs.python.org/3/library/select.html#kevent-objectsXKevent ObjectstrXtarinfo-objectsr(jjX=http://docs.python.org/3/library/tarfile.html#tarinfo-objectsXTarInfo ObjectstrX*ctypes-structureunion-alignment-byte-orderr(jjXWhttp://docs.python.org/3/library/ctypes.html#ctypes-structureunion-alignment-byte-orderX-trX boolobjectsr(jjX4http://docs.python.org/3/c-api/bool.html#boolobjectsXBoolean ObjectstrXfilterr(jjX4http://docs.python.org/3/library/logging.html#filterXFilter ObjectstrX other-langr(jjX5http://docs.python.org/3/whatsnew/2.5.html#other-langXOther Language ChangestrX st-objectsr(jjX7http://docs.python.org/3/library/parser.html#st-objectsX ST ObjectstrXtut-exceptionsr(jjX<http://docs.python.org/3/tutorial/errors.html#tut-exceptionsX ExceptionstrXpep-3141r(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3141X&PEP 3141: A Type Hierarchy for NumberstrX datamodelr(jjX;http://docs.python.org/3/reference/datamodel.html#datamodelX Data modeltrXtut-string-pattern-matchingr(jjXIhttp://docs.python.org/3/tutorial/stdlib.html#tut-string-pattern-matchingXString Pattern MatchingtrX cgi-intror(jjX3http://docs.python.org/3/library/cgi.html#cgi-introX-trXfeaturesr(jjX5http://docs.python.org/3/library/msilib.html#featuresXFeaturestrXsequence-structsr(jjX<http://docs.python.org/3/c-api/typeobj.html#sequence-structsXSequence Object StructurestrX view-objectsr(jjX9http://docs.python.org/3/library/msilib.html#view-objectsX View ObjectstrXnumberr(jjX1http://docs.python.org/3/c-api/number.html#numberXNumber ProtocoltrX typesotherr(jjX9http://docs.python.org/3/library/stdtypes.html#typesotherXOther Built-in TypestrXbinary-objectsr(jjXBhttp://docs.python.org/3/library/xmlrpc.client.html#binary-objectsXBinary ObjectstrX customizationr(jjX?http://docs.python.org/3/reference/datamodel.html#customizationXBasic customizationtrX api-intror(jjX3http://docs.python.org/3/c-api/intro.html#api-introX IntroductiontrXtimeit-examplesr(jjX<http://docs.python.org/3/library/timeit.html#timeit-examplesXExamplestrXtkinter-basic-mappingr(jjXChttp://docs.python.org/3/library/tkinter.html#tkinter-basic-mappingXMapping Basic Tk into TkintertrX introductionr(jjXAhttp://docs.python.org/3/reference/introduction.html#introductionX IntroductiontrXsystemfunctionsr(jjX7http://docs.python.org/3/c-api/sys.html#systemfunctionsXSystem FunctionstrXunicodemethodsandslotsr(jjXBhttp://docs.python.org/3/c-api/unicode.html#unicodemethodsandslotsXMethods and Slot FunctionstrXtut-lists-as-queuesr(jjXIhttp://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-queuesXUsing Lists as QueuestrXbisect-exampler(jjX;http://docs.python.org/3/library/bisect.html#bisect-exampleX-trX api-includesr(jjX6http://docs.python.org/3/c-api/intro.html#api-includesX Include FilestrXinst-custom-installr(jjX?http://docs.python.org/3/install/index.html#inst-custom-installXCustom InstallationtrX logical-linesr(jjXFhttp://docs.python.org/3/reference/lexical_analysis.html#logical-linesX Logical linestrX3ctypes-calling-functions-with-own-custom-data-typesr(jjX`http://docs.python.org/3/library/ctypes.html#ctypes-calling-functions-with-own-custom-data-typesX1Calling functions with your own custom data typestrXtkinter-setting-optionsr(jjXEhttp://docs.python.org/3/library/tkinter.html#tkinter-setting-optionsXSetting OptionstrXdoctest-which-docstringsr(jjXFhttp://docs.python.org/3/library/doctest.html#doctest-which-docstringsXWhich Docstrings Are Examined?trXtypesfunctionsr(jjX=http://docs.python.org/3/library/stdtypes.html#typesfunctionsX FunctionstrXinst-alt-install-userr(jjXAhttp://docs.python.org/3/install/index.html#inst-alt-install-userX'Alternate installation: the user schemetrX tut-scriptsr(jjX>http://docs.python.org/3/tutorial/interpreter.html#tut-scriptsXExecutable Python ScriptstrXorganizing-testsr(jjX?http://docs.python.org/3/library/unittest.html#organizing-testsXOrganizing test codetrXserverproxy-objectsr(jjXGhttp://docs.python.org/3/library/xmlrpc.client.html#serverproxy-objectsXServerProxy ObjectstrXxmlreader-objectsr(jjXFhttp://docs.python.org/3/library/xml.sax.reader.html#xmlreader-objectsXXMLReader ObjectstrXtut-delr (jjX=http://docs.python.org/3/tutorial/datastructures.html#tut-delXThe del statementtr Xidler (jjX/http://docs.python.org/3/library/idle.html#idleXIDLEtr Xinst-non-ms-compilersr (jjXAhttp://docs.python.org/3/install/index.html#inst-non-ms-compilersX(Using non-Microsoft compilers on WindowstrX custominterpr(jjX?http://docs.python.org/3/library/custominterp.html#custominterpXCustom Python InterpreterstrX arg-parsingr(jjX3http://docs.python.org/3/c-api/arg.html#arg-parsingX%Parsing arguments and building valuestrXmswin-specific-servicesr(jjXEhttp://docs.python.org/3/library/windows.html#mswin-specific-servicesXMS Windows Specific ServicestrXsequencematcher-examplesr(jjXFhttp://docs.python.org/3/library/difflib.html#sequencematcher-examplesXSequenceMatcher ExamplestrXcodec-registryr(jjX8http://docs.python.org/3/c-api/codec.html#codec-registryX$Codec registry and support functionstrXbitwiser(jjX;http://docs.python.org/3/reference/expressions.html#bitwiseXBinary bitwise operationstrXbltin-exceptionsr(jjXAhttp://docs.python.org/3/library/exceptions.html#bltin-exceptionsXBuilt-in ExceptionstrXvenv-apir(jjX3http://docs.python.org/3/library/venv.html#venv-apiXAPItrX writer-implsr(jjX<http://docs.python.org/3/library/formatter.html#writer-implsXWriter Implementationstr Xformatting-stylesr!(jjXFhttp://docs.python.org/3/howto/logging-cookbook.html#formatting-stylesX>Using particular formatting styles throughout your applicationtr"Xdifflib-interfacer#(jjX?http://docs.python.org/3/library/difflib.html#difflib-interfaceX#A command-line interface to difflibtr$Xhowto-minimal-exampler%(jjXAhttp://docs.python.org/3/howto/logging.html#howto-minimal-exampleXA simple exampletr&Xbltin-code-objectsr'(jjXAhttp://docs.python.org/3/library/stdtypes.html#bltin-code-objectsX Code Objectstr(X os-processr)(jjX3http://docs.python.org/3/library/os.html#os-processXProcess Managementtr*Xline-structurer+(jjXGhttp://docs.python.org/3/reference/lexical_analysis.html#line-structureXLine structuretr,X atom-literalsr-(jjXAhttp://docs.python.org/3/reference/expressions.html#atom-literalsXLiteralstr.Xentity-resolver-objectsr/(jjXMhttp://docs.python.org/3/library/xml.sax.handler.html#entity-resolver-objectsXEntityResolver Objectstr0Xelementtree-xmlparser-objectsr1(jjXYhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlparser-objectsXXMLParser Objectstr2Xtemplate-objectsr3(jjX<http://docs.python.org/3/library/pipes.html#template-objectsXTemplate Objectstr4Xobjectr5(jjX1http://docs.python.org/3/c-api/object.html#objectXObject Protocoltr6Xlower-level-embeddingr7(jjXGhttp://docs.python.org/3/extending/embedding.html#lower-level-embeddingX-Beyond Very High Level Embedding: An overviewtr8Xwhatsnew-statisticsr9(jjX>http://docs.python.org/3/whatsnew/3.4.html#whatsnew-statisticsX statisticstr:Xnew-26-context-managersr;(jjXBhttp://docs.python.org/3/whatsnew/2.6.html#new-26-context-managersXWriting Context Managerstr<X faq-indexr=(jjX1http://docs.python.org/3/faq/index.html#faq-indexX!Python Frequently Asked Questionstr>Xstart-and-stopr?(jjXBhttp://docs.python.org/3/library/unittest.mock.html#start-and-stopXpatch methods: start and stoptr@Xdom-comment-objectsrA(jjXAhttp://docs.python.org/3/library/xml.dom.html#dom-comment-objectsXComment ObjectstrBXctypes-pointersrC(jjX<http://docs.python.org/3/library/ctypes.html#ctypes-pointersXPointerstrDXoptparse-parsing-argumentsrE(jjXIhttp://docs.python.org/3/library/optparse.html#optparse-parsing-argumentsXParsing argumentstrFXtut-weak-referencesrG(jjXBhttp://docs.python.org/3/tutorial/stdlib2.html#tut-weak-referencesXWeak ReferencestrHXinst-new-standardrI(jjX=http://docs.python.org/3/install/index.html#inst-new-standardXThe new standard: DistutilstrJXnewtypesrK(jjX4http://docs.python.org/3/c-api/objimpl.html#newtypesXObject Implementation SupporttrLX ftp-objectsrM(jjX8http://docs.python.org/3/library/ftplib.html#ftp-objectsX FTP ObjectstrNX typebytearrayrO(jjX<http://docs.python.org/3/library/stdtypes.html#typebytearrayXBytearray ObjectstrPX tut-rangerQ(jjX<http://docs.python.org/3/tutorial/controlflow.html#tut-rangeXThe range() FunctiontrRX tut-startuprS(jjX>http://docs.python.org/3/tutorial/interpreter.html#tut-startupXThe Interactive Startup FiletrTXwsgirU(jjX3http://docs.python.org/3/howto/webservers.html#wsgiXStep back: WSGItrVXexpat-content-modelsrW(jjXBhttp://docs.python.org/3/library/pyexpat.html#expat-content-modelsXContent Model DescriptionstrXXlogging-config-dict-userdefrY(jjXPhttp://docs.python.org/3/library/logging.config.html#logging-config-dict-userdefXUser-defined objectstrZXdeleting-attributesr[(jjXGhttp://docs.python.org/3/library/unittest.mock.html#deleting-attributesXDeleting Attributestr\Xcurses-functionsr](jjX=http://docs.python.org/3/library/curses.html#curses-functionsX Functionstr^X tar-unicoder_(jjX9http://docs.python.org/3/library/tarfile.html#tar-unicodeXUnicode issuestr`Xkeywordsra(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#keywordsXKeywordstrbXmemoryinterfacerc(jjX:http://docs.python.org/3/c-api/memory.html#memoryinterfaceXMemory InterfacetrdXveryhighre(jjX5http://docs.python.org/3/c-api/veryhigh.html#veryhighXThe Very High Level LayertrfXabstract-basic-auth-handlerrg(jjXPhttp://docs.python.org/3/library/urllib.request.html#abstract-basic-auth-handlerX AbstractBasicAuthHandler ObjectstrhXlayoutri(jjX8http://docs.python.org/3/library/tkinter.ttk.html#layoutX-trjX writing-testsrk(jjX8http://docs.python.org/3/library/test.html#writing-testsX'Writing Unit Tests for the test packagetrlXwindows-path-modrm(jjX<http://docs.python.org/3/using/windows.html#windows-path-modXFinding the Python executabletrnX dom-examplero(jjXAhttp://docs.python.org/3/library/xml.dom.minidom.html#dom-exampleX DOM ExampletrpXssl-nonblockingrq(jjX9http://docs.python.org/3/library/ssl.html#ssl-nonblockingXNotes on non-blocking socketstrrXmultiprocessing-auth-keysrs(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-auth-keysXAuthentication keystrtXbinary-transformsru(jjX>http://docs.python.org/3/library/codecs.html#binary-transformsXBinary TransformstrvXmemory-handlerrw(jjXEhttp://docs.python.org/3/library/logging.handlers.html#memory-handlerX MemoryHandlertrxXstream-writer-objectsry(jjXBhttp://docs.python.org/3/library/codecs.html#stream-writer-objectsXStreamWriter ObjectstrzXusing-on-cmdliner{(jjX<http://docs.python.org/3/using/cmdline.html#using-on-cmdlineX Command linetr|Xpickle-dispatchr}(jjX<http://docs.python.org/3/library/pickle.html#pickle-dispatchXDispatch Tablestr~Xsocket-handlerr(jjXEhttp://docs.python.org/3/library/logging.handlers.html#socket-handlerX SocketHandlertrXtestcase-objectsr(jjX?http://docs.python.org/3/library/unittest.html#testcase-objectsX Test casestrX countingrefsr(jjX<http://docs.python.org/3/c-api/refcounting.html#countingrefsXReference CountingtrX auto-speccingr(jjXAhttp://docs.python.org/3/library/unittest.mock.html#auto-speccingX AutospeccingtrXasyncio-coroutine-not-scheduledr(jjXQhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-coroutine-not-scheduledX(Detect coroutine objects never scheduledtrXnotationr(jjX=http://docs.python.org/3/reference/introduction.html#notationXNotationtrXdefining-new-typesr(jjXChttp://docs.python.org/3/extending/newtypes.html#defining-new-typesXDefining New TypestrX library-indexr(jjX9http://docs.python.org/3/library/index.html#library-indexXThe Python Standard LibrarytrXsyslog-handlerr(jjXEhttp://docs.python.org/3/library/logging.handlers.html#syslog-handlerX SysLogHandlertrX cmd-objectsr(jjX5http://docs.python.org/3/library/cmd.html#cmd-objectsX Cmd ObjectstrXstruct-objectsr(jjX;http://docs.python.org/3/library/struct.html#struct-objectsXClassestrXconsole-objectsr(jjX:http://docs.python.org/3/library/code.html#console-objectsXInteractive Console ObjectstrXdecimal-tutorialr(jjX>http://docs.python.org/3/library/decimal.html#decimal-tutorialXQuick-start TutorialtrXelementtree-xpathr(jjXMhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpathX XPath supporttrXdoctest-execution-contextr(jjXGhttp://docs.python.org/3/library/doctest.html#doctest-execution-contextXWhat's the Execution Context?trXpep-338r(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-338X%PEP 338: Executing Modules as ScriptstrX querying-stsr(jjX9http://docs.python.org/3/library/parser.html#querying-stsXQueries on ST ObjectstrXasyncore-example-1r(jjXAhttp://docs.python.org/3/library/asyncore.html#asyncore-example-1X"asyncore Example basic HTTP clienttrX c-api-indexr(jjX5http://docs.python.org/3/c-api/index.html#c-api-indexXPython/C API Reference ManualtrXzeromq-handlersr(jjXDhttp://docs.python.org/3/howto/logging-cookbook.html#zeromq-handlersX+Subclassing QueueHandler - a ZeroMQ exampletrXdom-text-objectsr(jjX>http://docs.python.org/3/library/xml.dom.html#dom-text-objectsXText and CDATASection ObjectstrXdecimal-rounding-modesr(jjXDhttp://docs.python.org/3/library/decimal.html#decimal-rounding-modesX ConstantstrXattributes-objectsr(jjXGhttp://docs.python.org/3/library/xml.sax.reader.html#attributes-objectsXThe Attributes InterfacetrXtut-setsr(jjX>http://docs.python.org/3/tutorial/datastructures.html#tut-setsXSetstrXposix-large-filesr(jjX=http://docs.python.org/3/library/posix.html#posix-large-filesXLarge File SupporttrXelementtree-pull-parsingr(jjXThttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-pull-parsingX!Pull API for non-blocking parsingtrXtypesseq-ranger(jjX=http://docs.python.org/3/library/stdtypes.html#typesseq-rangeXRangestrXsetr(jjX7http://docs.python.org/3/reference/expressions.html#setX Set displaystrXipaddress-howtor(jjX=http://docs.python.org/3/howto/ipaddress.html#ipaddress-howtoX'An introduction to the ipaddress moduletrX referencer(jjX<http://docs.python.org/3/distutils/commandref.html#referenceXCommand ReferencetrXsqlite3-cursor-objectsr(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3-cursor-objectsXCursor ObjectstrXstruct-examplesr(jjX<http://docs.python.org/3/library/struct.html#struct-examplesXExamplestrXtype-specific-methodsr(jjXDhttp://docs.python.org/3/library/unittest.html#type-specific-methodsX-trX module-etreer(jjX7http://docs.python.org/3/whatsnew/2.5.html#module-etreeXThe ElementTree packagetrX codeobjectsr(jjX4http://docs.python.org/3/c-api/code.html#codeobjectsX Code ObjectstrX evalorderr(jjX=http://docs.python.org/3/reference/expressions.html#evalorderXEvaluation ordertrXasyncio-event-loopr(jjXJhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loopX Event loopstrXsax-error-handlerr(jjXGhttp://docs.python.org/3/library/xml.sax.handler.html#sax-error-handlerXErrorHandler ObjectstrXinst-how-build-worksr(jjX@http://docs.python.org/3/install/index.html#inst-how-build-worksXHow building workstrXfurther-examplesr(jjXMhttp://docs.python.org/3/library/unittest.mock-examples.html#further-examplesXFurther ExamplestrXgenerator-typesr(jjX>http://docs.python.org/3/library/stdtypes.html#generator-typesXGenerator TypestrX tut-comparingr(jjXChttp://docs.python.org/3/tutorial/datastructures.html#tut-comparingX#Comparing Sequences and Other TypestrX23section-otherr(jjX8http://docs.python.org/3/whatsnew/2.3.html#section-otherXOther Changes and FixestrXinst-alt-install-prefix-unixr(jjXHhttp://docs.python.org/3/install/index.html#inst-alt-install-prefix-unixX0Alternate installation: Unix (the prefix scheme)trX profilingr(jjX2http://docs.python.org/3/c-api/init.html#profilingXProfiling and TracingtrXwhatsnew34-sslcontextr(jjX@http://docs.python.org/3/whatsnew/3.4.html#whatsnew34-sslcontextX-trXimportlib-sectionr(jjX<http://docs.python.org/3/whatsnew/2.7.html#importlib-sectionXNew module: importlibtrXctypes-data-typesr(jjX>http://docs.python.org/3/library/ctypes.html#ctypes-data-typesX Data typestrX noneobjectr(jjX3http://docs.python.org/3/c-api/none.html#noneobjectXThe None ObjecttrXxmlrpc-client-exampler(jjXIhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc-client-exampleXExample of Client UsagetrX builtincodecsr(jjX9http://docs.python.org/3/c-api/unicode.html#builtincodecsXBuilt-in CodecstrXfilters-dictconfigr(jjXGhttp://docs.python.org/3/howto/logging-cookbook.html#filters-dictconfigX%Configuring filters with dictConfig()trXsetting-envvarsr(jjX;http://docs.python.org/3/using/windows.html#setting-envvarsX'Excursus: Setting environment variablestrXctypes-fundamental-data-typesr(jjXJhttp://docs.python.org/3/library/ctypes.html#ctypes-fundamental-data-typesXFundamental data typestrX tut-packagesr(jjX;http://docs.python.org/3/tutorial/modules.html#tut-packagesXPackagestrXunittest-command-line-interfacer(jjXNhttp://docs.python.org/3/library/unittest.html#unittest-command-line-interfaceXCommand-Line InterfacetrXwarning-filterr(jjX=http://docs.python.org/3/library/warnings.html#warning-filterXThe Warnings FiltertrXau-write-objectsr(jjX<http://docs.python.org/3/library/sunau.html#au-write-objectsXAU_write ObjectstrX decimal-notesr(jjX;http://docs.python.org/3/library/decimal.html#decimal-notesXFloating Point NotestrXpep-352r(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-352X(PEP 352: Exceptions as New-Style ClassestrXwhatsnew-pep-442r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-442X!PEP 442: Safe Object FinalizationtrX apiabiversionr(jjX?http://docs.python.org/3/c-api/apiabiversion.html#apiabiversionXAPI and ABI VersioningtrXwhatsnew-pep-446r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-446X;PEP 446: Newly Created File Descriptors Are Non-InheritabletrXwhatsnew-pep-445r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-445X3PEP 445: Customization of CPython Memory AllocatorstrX os-file-dirr(jjX4http://docs.python.org/3/library/os.html#os-file-dirXFiles and DirectoriestrX lock-objectsr(jjX<http://docs.python.org/3/library/threading.html#lock-objectsX Lock ObjectstrXconverting-argument-sequencer(jjXMhttp://docs.python.org/3/library/subprocess.html#converting-argument-sequenceX6Converting an argument sequence to a string on WindowstrXlogging-cookbookr(jjXEhttp://docs.python.org/3/howto/logging-cookbook.html#logging-cookbookXLogging CookbooktrX tut-remarksr(jjX:http://docs.python.org/3/tutorial/classes.html#tut-remarksXRandom RemarkstrX interactiver (jjXGhttp://docs.python.org/3/reference/toplevel_components.html#interactiveXInteractive inputtr Xdomeventstream-objectsr (jjXLhttp://docs.python.org/3/library/xml.dom.pulldom.html#domeventstream-objectsXDOMEventStream Objectstr Xprettyprinter-objectsr (jjXBhttp://docs.python.org/3/library/pprint.html#prettyprinter-objectsXPrettyPrinter ObjectstrXdom-exceptionsr(jjX<http://docs.python.org/3/library/xml.dom.html#dom-exceptionsX ExceptionstrXsimpler(jjX;http://docs.python.org/3/reference/simple_stmts.html#simpleXSimple statementstrXdoc-xmlrpc-serversr(jjXFhttp://docs.python.org/3/library/xmlrpc.server.html#doc-xmlrpc-serversXDocXMLRPCServer ObjectstrXtut-ior(jjX9http://docs.python.org/3/tutorial/inputoutput.html#tut-ioXInput and OutputtrXslotsr(jjX7http://docs.python.org/3/reference/datamodel.html#slotsX __slots__trXtut-ifr(jjX9http://docs.python.org/3/tutorial/controlflow.html#tut-ifX if StatementstrXusing-the-trackerr(jjX4http://docs.python.org/3/bugs.html#using-the-trackerXUsing the Python issue trackertrX typesseq-listr(jjX<http://docs.python.org/3/library/stdtypes.html#typesseq-listXListstrX sdist-cmdr(jjX<http://docs.python.org/3/distutils/commandref.html#sdist-cmdX1Creating a source distribution: the sdist commandtr Xraiser!(jjX:http://docs.python.org/3/reference/simple_stmts.html#raiseXThe raise statementtr"Xmailbox-maildirr#(jjX=http://docs.python.org/3/library/mailbox.html#mailbox-maildirXMaildirtr$X buildvaluer%(jjX<http://docs.python.org/3/extending/extending.html#buildvalueXBuilding Arbitrary Valuestr&Xdoctest-simple-testfiler'(jjXEhttp://docs.python.org/3/library/doctest.html#doctest-simple-testfileX.Simple Usage: Checking Examples in a Text Filetr(X bltin-typesr)(jjX:http://docs.python.org/3/library/stdtypes.html#bltin-typesXBuilt-in Typestr*Xcomprehensionsr+(jjXBhttp://docs.python.org/3/reference/expressions.html#comprehensionsX)Displays for lists, sets and dictionariestr,Xpep-3151r-(jjX3http://docs.python.org/3/whatsnew/3.3.html#pep-3151X5PEP 3151: Reworking the OS and IO exception hierarchytr.Xhttp-redirect-handlerr/(jjXJhttp://docs.python.org/3/library/urllib.request.html#http-redirect-handlerXHTTPRedirectHandler Objectstr0Xctypes-return-typesr1(jjX@http://docs.python.org/3/library/ctypes.html#ctypes-return-typesX Return typestr2Xasyncio-transportr3(jjXHhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-transportX Transportstr4Xlogging-config-dictschemar5(jjXNhttp://docs.python.org/3/library/logging.config.html#logging-config-dictschemaXConfiguration dictionary schematr6X context-infor7(jjXAhttp://docs.python.org/3/howto/logging-cookbook.html#context-infoX4Adding contextual information to your logging outputtr8Xdictr9(jjX8http://docs.python.org/3/reference/expressions.html#dictXDictionary displaystr:Xprofile-limitationsr;(jjXAhttp://docs.python.org/3/library/profile.html#profile-limitationsX Limitationstr<Xinspect-classes-functionsr=(jjXGhttp://docs.python.org/3/library/inspect.html#inspect-classes-functionsXClasses and functionstr>X api-refcountsr?(jjX7http://docs.python.org/3/c-api/intro.html#api-refcountsXReference Countstr@X re-examplesrA(jjX4http://docs.python.org/3/library/re.html#re-examplesXRegular Expression ExamplestrBXrlcompleter-configrC(jjX=http://docs.python.org/3/library/site.html#rlcompleter-configXReadline configurationtrDX func-rangerE(jjX:http://docs.python.org/3/library/functions.html#func-rangeX-trFX nntp-objectsrG(jjX:http://docs.python.org/3/library/nntplib.html#nntp-objectsX NNTP ObjectstrHXoptparse-option-callbacksrI(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-option-callbacksXOption CallbackstrJX backtoexamplerK(jjX?http://docs.python.org/3/extending/extending.html#backtoexampleXBack to the ExampletrLXlauncherrM(jjX4http://docs.python.org/3/using/windows.html#launcherXPython Launcher for WindowstrNX!distutils-installing-package-datarO(jjXUhttp://docs.python.org/3/distutils/setupscript.html#distutils-installing-package-dataXInstalling Package DatatrPXreference-indexrQ(jjX=http://docs.python.org/3/reference/index.html#reference-indexXThe Python Language ReferencetrRXkeyword-only_parameterrS(jjX=http://docs.python.org/3/glossary.html#keyword-only-parameterX-trTXdistutils-build-ext-inplacerU(jjXNhttp://docs.python.org/3/distutils/configfile.html#distutils-build-ext-inplaceX-trVXwhilerW(jjX<http://docs.python.org/3/reference/compound_stmts.html#whileXThe while statementtrXXstream-recoder-objectsrY(jjXChttp://docs.python.org/3/library/codecs.html#stream-recoder-objectsXStreamRecoder ObjectstrZXtut-brieftourtwor[(jjX?http://docs.python.org/3/tutorial/stdlib2.html#tut-brieftourtwoX-Brief Tour of the Standard Library -- Part IItr\X bytesobjectsr](jjX6http://docs.python.org/3/c-api/bytes.html#bytesobjectsX Bytes Objectstr^Xtut-output-formattingr_(jjXDhttp://docs.python.org/3/tutorial/stdlib2.html#tut-output-formattingXOutput Formattingtr`Xminidom-and-domra(jjXEhttp://docs.python.org/3/library/xml.dom.minidom.html#minidom-and-domXminidom and the DOM standardtrbXtut-os-interfacerc(jjX>http://docs.python.org/3/tutorial/stdlib.html#tut-os-interfaceXOperating System InterfacetrdX cgi-securityre(jjX6http://docs.python.org/3/library/cgi.html#cgi-securityXCaring about securitytrfXmailbox-mmdfmessagerg(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox-mmdfmessageX MMDFMessagetrhXctypes-function-prototypesri(jjXGhttp://docs.python.org/3/library/ctypes.html#ctypes-function-prototypesXFunction prototypestrjXisrk(jjX6http://docs.python.org/3/reference/expressions.html#isX ComparisonstrlXoptparse-option-attributesrm(jjXIhttp://docs.python.org/3/library/optparse.html#optparse-option-attributesXOption attributestrnX new-decimalro(jjX6http://docs.python.org/3/whatsnew/3.3.html#new-decimalXdecimaltrpXinrq(jjX6http://docs.python.org/3/reference/expressions.html#inX ComparisonstrrXbuffer-structsrs(jjX:http://docs.python.org/3/c-api/typeobj.html#buffer-structsXBuffer Object StructurestrtXfile-operationsru(jjX<http://docs.python.org/3/library/shutil.html#file-operationsXDirectory and files operationstrvXifrw(jjX9http://docs.python.org/3/reference/compound_stmts.html#ifXThe if statementtrxXpep-3118-updatery(jjX:http://docs.python.org/3/whatsnew/3.3.html#pep-3118-updateXIPEP 3118: New memoryview implementation and buffer protocol documentationtrzXmultiple-destinationsr{(jjXJhttp://docs.python.org/3/howto/logging-cookbook.html#multiple-destinationsX Logging to multiple destinationstr|Xlogical_operands_labelr}(jjXDhttp://docs.python.org/3/library/decimal.html#logical-operands-labelXLogical operandstr~Xoptparse-callback-example-5r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-5X#Callback example 5: fixed argumentstrX ssl-securityr(jjX6http://docs.python.org/3/library/ssl.html#ssl-securityXSecurity considerationstrXoptparse-callback-example-6r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-6X&Callback example 6: variable argumentstrXoptparse-callback-example-1r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-1X$Callback example 1: trivial callbacktrXoptparse-callback-example-3r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-3X4Callback example 3: check option order (generalized)trXoptparse-callback-example-2r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-2X&Callback example 2: check option ordertrX developmentr(jjX=http://docs.python.org/3/library/development.html#developmentXDevelopment ToolstrX indentationr(jjXDhttp://docs.python.org/3/reference/lexical_analysis.html#indentationX IndentationtrX assignmentr(jjX?http://docs.python.org/3/reference/simple_stmts.html#assignmentXAssignment statementstrXwhatsnew-asyncior(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-asyncioXasynciotrXpy-to-json-tabler(jjX;http://docs.python.org/3/library/json.html#py-to-json-tableX-trX setup-scriptr(jjX@http://docs.python.org/3/distutils/setupscript.html#setup-scriptXWriting the Setup ScripttrX custom-levelsr(jjX9http://docs.python.org/3/howto/logging.html#custom-levelsX Custom LevelstrXlevelsr(jjX4http://docs.python.org/3/library/logging.html#levelsXLogging LevelstrX%single-use-reusable-and-reentrant-cmsr(jjXVhttp://docs.python.org/3/library/contextlib.html#single-use-reusable-and-reentrant-cmsX3Single use, reusable and reentrant context managerstrXinst-platform-variationsr(jjXDhttp://docs.python.org/3/install/index.html#inst-platform-variationsXPlatform variationstrXasynchat-exampler(jjX?http://docs.python.org/3/library/asynchat.html#asynchat-exampleXasynchat ExampletrXosx-gui-scriptsr(jjX7http://docs.python.org/3/using/mac.html#osx-gui-scriptsXRunning scripts with a GUItrXoptparse-standard-option-typesr(jjXMhttp://docs.python.org/3/library/optparse.html#optparse-standard-option-typesXStandard option typestrXinst-config-syntaxr(jjX>http://docs.python.org/3/install/index.html#inst-config-syntaxXSyntax of config filestrXprofile-timersr(jjX<http://docs.python.org/3/library/profile.html#profile-timersXUsing a custom timertrXprogramsr(jjXDhttp://docs.python.org/3/reference/toplevel_components.html#programsXComplete Python programstrXoptparse-store-actionr(jjXDhttp://docs.python.org/3/library/optparse.html#optparse-store-actionXThe store actiontrXconcreter(jjX5http://docs.python.org/3/c-api/concrete.html#concreteXConcrete Objects LayertrXattribute-referencesr(jjXHhttp://docs.python.org/3/reference/expressions.html#attribute-referencesXAttribute referencestrXhttpconnection-objectsr(jjXHhttp://docs.python.org/3/library/http.client.html#httpconnection-objectsXHTTPConnection ObjectstrXopener-director-objectsr(jjXLhttp://docs.python.org/3/library/urllib.request.html#opener-director-objectsXOpenerDirector ObjectstrXusing-on-misc-optionsr(jjXAhttp://docs.python.org/3/using/cmdline.html#using-on-misc-optionsXMiscellaneous optionstrXthinicer(jjX9http://docs.python.org/3/extending/extending.html#thiniceXThin IcetrXscreenspecificr(jjX;http://docs.python.org/3/library/turtle.html#screenspecificX;Methods specific to Screen, not inherited from TurtleScreentrX augassignr(jjX>http://docs.python.org/3/reference/simple_stmts.html#augassignXAugmented assignment statementstrXoptparse-generating-helpr(jjXGhttp://docs.python.org/3/library/optparse.html#optparse-generating-helpXGenerating helptrX callingpythonr(jjX?http://docs.python.org/3/extending/extending.html#callingpythonXCalling Python Functions from CtrXconcrete-pathsr(jjX<http://docs.python.org/3/library/pathlib.html#concrete-pathsXConcrete pathstrX typesinternalr(jjX<http://docs.python.org/3/library/stdtypes.html#typesinternalXInternal ObjectstrXoption-flags-and-directivesr(jjXIhttp://docs.python.org/3/library/doctest.html#option-flags-and-directivesX Option FlagstrXctypes-callback-functionsr(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes-callback-functionsXCallback functionstrXother-methods-and-attrsr(jjXFhttp://docs.python.org/3/library/unittest.html#other-methods-and-attrsX-trXmultiprocessing-address-formatsr(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-address-formatsXAddress FormatstrXurlparse-result-objectr(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urlparse-result-objectXStructured Parse ResultstrXmixer-device-objectsr(jjXFhttp://docs.python.org/3/library/ossaudiodev.html#mixer-device-objectsXMixer Device ObjectstrXbltin-ellipsis-objectr(jjXDhttp://docs.python.org/3/library/stdtypes.html#bltin-ellipsis-objectXThe Ellipsis ObjecttrX msi-tablesr(jjX7http://docs.python.org/3/library/msilib.html#msi-tablesXPrecomputed tablestrXwarning-suppressr(jjX?http://docs.python.org/3/library/warnings.html#warning-suppressX Temporarily Suppressing WarningstrXproxy-digest-auth-handlerr(jjXNhttp://docs.python.org/3/library/urllib.request.html#proxy-digest-auth-handlerXProxyDigestAuthHandler ObjectstrXreadline-exampler(jjX?http://docs.python.org/3/library/readline.html#readline-exampleXExampletrXcookbook-rotator-namerr(jjXKhttp://docs.python.org/3/howto/logging-cookbook.html#cookbook-rotator-namerX>Using a rotator and namer to customize log rotation processingtrX tut-filesr(jjX<http://docs.python.org/3/tutorial/inputoutput.html#tut-filesXReading and Writing FilestrX floatobjectsr(jjX6http://docs.python.org/3/c-api/float.html#floatobjectsXFloating Point ObjectstrXfrequently-used-argumentsr(jjXJhttp://docs.python.org/3/library/subprocess.html#frequently-used-argumentsXFrequently Used ArgumentstrXwhatsnew_email_contentmanagerr(jjXHhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-email-contentmanagerX-trX&ctypes-bit-fields-in-structures-unionsr(jjXShttp://docs.python.org/3/library/ctypes.html#ctypes-bit-fields-in-structures-unionsX#Bit fields in structures and unionstrXfunc-frozensetr(jjX>http://docs.python.org/3/library/functions.html#func-frozensetX-trXlogrecord-attributesr(jjXBhttp://docs.python.org/3/library/logging.html#logrecord-attributesXLogRecord attributestrXgetting-startedr(jjXLhttp://docs.python.org/3/library/unittest.mock-examples.html#getting-startedX Using MocktrX proxy-handlerr(jjXBhttp://docs.python.org/3/library/urllib.request.html#proxy-handlerXProxyHandler ObjectstrXembeddingincplusplusr(jjXFhttp://docs.python.org/3/extending/embedding.html#embeddingincplusplusXEmbedding Python in C++trXmemoryoverviewr(jjX9http://docs.python.org/3/c-api/memory.html#memoryoverviewXOverviewtrXmanifestr(jjX;http://docs.python.org/3/distutils/sourcedist.html#manifestX"Specifying the files to distributetrXcontinuer(jjX=http://docs.python.org/3/reference/simple_stmts.html#continueXThe continue statementtrX tut-fp-issuesr(jjXBhttp://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issuesX2Floating Point Arithmetic: Issues and LimitationstrXxmlparser-objectsr(jjX?http://docs.python.org/3/library/pyexpat.html#xmlparser-objectsXXMLParser ObjectstrXdecimal-decimalr(jjX=http://docs.python.org/3/library/decimal.html#decimal-decimalXDecimal objectstrXoptparse-reference-guider(jjXGhttp://docs.python.org/3/library/optparse.html#optparse-reference-guideXReference GuidetrXformatter-interfacer(jjXChttp://docs.python.org/3/library/formatter.html#formatter-interfaceXThe Formatter InterfacetrX msi-errorsr(jjX7http://docs.python.org/3/library/msilib.html#msi-errorsXErrorstrX event-objectsr(jjX=http://docs.python.org/3/library/threading.html#event-objectsX Event ObjectstrX numeric-hashr(jjX;http://docs.python.org/3/library/stdtypes.html#numeric-hashXHashing of numeric typestrXtut-list-toolsr(jjX=http://docs.python.org/3/tutorial/stdlib2.html#tut-list-toolsXTools for Working with ListstrXexamplesr (jjX9http://docs.python.org/3/distutils/examples.html#examplesXExamplestr X msvcrt-filesr (jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt-filesXFile Operationstr Xpep-328r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-328X&PEP 328: Absolute and Relative ImportstrXpep-3116r(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3116XPEP 3116: New I/O LibrarytrXcacheftp-handler-objectsr(jjXMhttp://docs.python.org/3/library/urllib.request.html#cacheftp-handler-objectsXCacheFTPHandler ObjectstrXforr(jjX:http://docs.python.org/3/reference/compound_stmts.html#forXThe for statementtrX mailbox-babylr(jjX;http://docs.python.org/3/library/mailbox.html#mailbox-babylXBabyltrXlocator-objectsr(jjXDhttp://docs.python.org/3/library/xml.sax.reader.html#locator-objectsXLocator ObjectstrXexception-changedr(jjX>http://docs.python.org/3/library/winreg.html#exception-changedX-trX func-bytesr(jjX:http://docs.python.org/3/library/functions.html#func-bytesX-trXpprint-exampler(jjX;http://docs.python.org/3/library/pprint.html#pprint-exampleXExampletrXhttp-digest-auth-handlerr(jjXMhttp://docs.python.org/3/library/urllib.request.html#http-digest-auth-handlerXHTTPDigestAuthHandler Objectstr Xundocr!(jjX1http://docs.python.org/3/library/undoc.html#undocXUndocumented Modulestr"Xtut-keybindingsr#(jjXBhttp://docs.python.org/3/tutorial/interactive.html#tut-keybindingsX"Tab Completion and History Editingtr$Xpep-3119r%(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3119XPEP 3119: Abstract Base Classestr&Xabstract-grammarr'(jjX:http://docs.python.org/3/library/ast.html#abstract-grammarXAbstract Grammartr(Xsection-slicesr)(jjX9http://docs.python.org/3/whatsnew/2.3.html#section-slicesXExtended Slicestr*Xcodec-base-classesr+(jjX?http://docs.python.org/3/library/codecs.html#codec-base-classesXCodec Base Classestr,X subscriptionsr-(jjXAhttp://docs.python.org/3/reference/expressions.html#subscriptionsX Subscriptionstr.Xhttp-handler-objectsr/(jjXIhttp://docs.python.org/3/library/urllib.request.html#http-handler-objectsXHTTPHandler Objectstr0Xelementtree-elementtree-objectsr1(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-elementtree-objectsXElementTree Objectstr2Xsequence-matcherr3(jjX>http://docs.python.org/3/library/difflib.html#sequence-matcherXSequenceMatcher Objectstr4Xminidom-objectsr5(jjXEhttp://docs.python.org/3/library/xml.dom.minidom.html#minidom-objectsX DOM Objectstr6Xshiftingr7(jjX<http://docs.python.org/3/reference/expressions.html#shiftingXShifting operationstr8X os-newstreamsr9(jjX6http://docs.python.org/3/library/os.html#os-newstreamsXFile Object Creationtr:Xtut-standardmodulesr;(jjXBhttp://docs.python.org/3/tutorial/modules.html#tut-standardmodulesXStandard Modulestr<Xfpectl-limitationsr=(jjX?http://docs.python.org/3/library/fpectl.html#fpectl-limitationsX$Limitations and other considerationstr>Xparsetupleandkeywordsr?(jjXGhttp://docs.python.org/3/extending/extending.html#parsetupleandkeywordsX*Keyword Parameters for Extension Functionstr@XintegersrA(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#integersXInteger literalstrBXfunctions-in-cgi-modulerC(jjXAhttp://docs.python.org/3/library/cgi.html#functions-in-cgi-moduleX FunctionstrDX using-on-unixrE(jjX6http://docs.python.org/3/using/unix.html#using-on-unixXUsing Python on Unix platformstrFX importsystemrG(jjX;http://docs.python.org/3/reference/import.html#importsystemXThe import systemtrHX conversionsrI(jjX?http://docs.python.org/3/reference/expressions.html#conversionsXArithmetic conversionstrJXoptparse-callback-example-4rK(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-4X-Callback example 4: check arbitrary conditiontrLXinstalling-indexrM(jjX?http://docs.python.org/3/installing/index.html#installing-indexXInstalling Python ModulestrNXoptparse-other-methodsrO(jjXEhttp://docs.python.org/3/library/optparse.html#optparse-other-methodsX Other methodstrPXstream-handlerrQ(jjXEhttp://docs.python.org/3/library/logging.handlers.html#stream-handlerX StreamHandlertrRXpackage-displayrS(jjXDhttp://docs.python.org/3/distutils/packageindex.html#package-displayXPyPI package displaytrTXiderU(jjX+http://docs.python.org/3/using/mac.html#ideXThe IDEtrVXsemaphore-examplesrW(jjXBhttp://docs.python.org/3/library/threading.html#semaphore-examplesXSemaphore ExampletrXX module-sqliterY(jjX8http://docs.python.org/3/whatsnew/2.5.html#module-sqliteXThe sqlite3 packagetrZXsqlite3-connection-objectsr[(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3-connection-objectsXConnection Objectstr\Xlibrary-configr](jjX:http://docs.python.org/3/howto/logging.html#library-configX!Configuring Logging for a Librarytr^Xcurses-panel-objectsr_(jjXGhttp://docs.python.org/3/library/curses.panel.html#curses-panel-objectsX Panel Objectstr`X pickle-statera(jjX9http://docs.python.org/3/library/pickle.html#pickle-stateXHandling Stateful ObjectstrbXproxy-basic-auth-handlerrc(jjXMhttp://docs.python.org/3/library/urllib.request.html#proxy-basic-auth-handlerXProxyBasicAuthHandler ObjectstrdXctypes-passing-pointersre(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-passing-pointersX6Passing pointers (or: passing parameters by reference)trfXexplicit-joiningrg(jjXIhttp://docs.python.org/3/reference/lexical_analysis.html#explicit-joiningXExplicit line joiningtrhXmodule-hashlibri(jjX9http://docs.python.org/3/whatsnew/2.5.html#module-hashlibXThe hashlib packagetrjXlogging-config-dict-incrementalrk(jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-incrementalXIncremental ConfigurationtrlXreporting-bugsrm(jjX1http://docs.python.org/3/bugs.html#reporting-bugsXReporting BugstrnXwhatsnew-pep-456ro(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-456X2PEP 456: Secure and Interchangeable Hash AlgorithmtrpXwhatsnew-pep-451rq(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-451X0PEP 451: A ModuleSpec Type for the Import SystemtrrXwhatsnew-pep-453rs(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-453X>PEP 453: Explicit Bootstrapping of PIP in Python InstallationstrtXclassru(jjX<http://docs.python.org/3/reference/compound_stmts.html#classXClass definitionstrvXnt-eventlog-handlerrw(jjXJhttp://docs.python.org/3/library/logging.handlers.html#nt-eventlog-handlerXNTEventLogHandlertrxXwatched-file-handlerry(jjXKhttp://docs.python.org/3/library/logging.handlers.html#watched-file-handlerXWatchedFileHandlertrzXexpaterror-objectsr{(jjX@http://docs.python.org/3/library/pyexpat.html#expaterror-objectsXExpatError Exceptionstr|Xdebugger-commandsr}(jjX;http://docs.python.org/3/library/pdb.html#debugger-commandsXDebugger Commandstr~X tut-cleanupr(jjX9http://docs.python.org/3/tutorial/errors.html#tut-cleanupXDefining Clean-up ActionstrXdoctest-debuggingr(jjX?http://docs.python.org/3/library/doctest.html#doctest-debuggingX DebuggingtrX library-intror(jjX9http://docs.python.org/3/library/intro.html#library-introX IntroductiontrXcallable-typesr(jjX@http://docs.python.org/3/reference/datamodel.html#callable-typesXEmulating callable objectstrX tut-customizer(jjX@http://docs.python.org/3/tutorial/interpreter.html#tut-customizeXThe Customization ModulestrXweakref-objectsr(jjX=http://docs.python.org/3/library/weakref.html#weakref-objectsXWeak Reference ObjectstrXunittest-test-discoveryr(jjXFhttp://docs.python.org/3/library/unittest.html#unittest-test-discoveryXTest DiscoverytrXoptparse-defining-optionsr(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-defining-optionsXDefining optionstrX%optparse-understanding-option-actionsr(jjXThttp://docs.python.org/3/library/optparse.html#optparse-understanding-option-actionsXUnderstanding option actionstrXwhatsnew-isolated-moder(jjXAhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-isolated-modeX-trX tut-breakr(jjX<http://docs.python.org/3/tutorial/controlflow.html#tut-breakX8break and continue Statements, and else Clauses on LoopstrXelementtree-treebuilder-objectsr(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-treebuilder-objectsXTreeBuilder ObjectstrX imap4-exampler(jjX;http://docs.python.org/3/library/imaplib.html#imap4-exampleX IMAP4 ExampletrXsocket-exampler(jjX;http://docs.python.org/3/library/socket.html#socket-exampleXExampletrXtut-file-wildcardsr(jjX@http://docs.python.org/3/tutorial/stdlib.html#tut-file-wildcardsXFile WildcardstrXtelnet-exampler(jjX>http://docs.python.org/3/library/telnetlib.html#telnet-exampleXTelnet ExampletrX creating-rpmsr(jjX?http://docs.python.org/3/distutils/builtdist.html#creating-rpmsXCreating RPM packagestrX poll-objectsr(jjX9http://docs.python.org/3/library/select.html#poll-objectsXPolling ObjectstrXelementtree-sectionr(jjX>http://docs.python.org/3/whatsnew/2.7.html#elementtree-sectionXUpdated module: ElementTree 1.3trXtarfile-commandliner(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile-commandlineXCommand Line InterfacetrX formatstringsr(jjX:http://docs.python.org/3/library/string.html#formatstringsXFormat String SyntaxtrX archivingr(jjX9http://docs.python.org/3/library/archiving.html#archivingXData Compression and ArchivingtrXmultiple-processesr(jjXGhttp://docs.python.org/3/howto/logging-cookbook.html#multiple-processesX0Logging to a single file from multiple processestrXtools-and-scriptsr(jjX=http://docs.python.org/3/using/scripts.html#tools-and-scriptsXAdditional Tools and ScriptstrXargparse-tutorialr(jjX0http://docs.python.org/3/howto/argparse.html#id1X-trXb64r(jjX0http://docs.python.org/3/library/codecs.html#b64X-trXabstractr(jjX5http://docs.python.org/3/c-api/abstract.html#abstractXAbstract Objects LayertrX tut-listsr(jjX=http://docs.python.org/3/tutorial/introduction.html#tut-listsXListstrX typesmappingr(jjX;http://docs.python.org/3/library/stdtypes.html#typesmappingXMapping Types --- dicttrX!optparse-handling-boolean-optionsr(jjXPhttp://docs.python.org/3/library/optparse.html#optparse-handling-boolean-optionsXHandling boolean (flag) optionstrXfloatingr(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#floatingXFloating point literalstrXbltin-boolean-valuesr(jjXChttp://docs.python.org/3/library/stdtypes.html#bltin-boolean-valuesXBoolean ValuestrXconfigparser-objectsr(jjXGhttp://docs.python.org/3/library/configparser.html#configparser-objectsXConfigParser ObjectstrXcookie-objectsr(jjXAhttp://docs.python.org/3/library/http.cookies.html#cookie-objectsXCookie ObjectstrXtut-pkg-import-starr(jjXBhttp://docs.python.org/3/tutorial/modules.html#tut-pkg-import-starXImporting * From a PackagetrXtime-y2kissuesr(jjX9http://docs.python.org/3/library/time.html#time-y2kissuesX-trXmembership-test-detailsr(jjXKhttp://docs.python.org/3/reference/expressions.html#membership-test-detailsX-trXstring-conversionr(jjX@http://docs.python.org/3/c-api/conversion.html#string-conversionX String conversion and formattingtrXtut-firstclassesr(jjX?http://docs.python.org/3/tutorial/classes.html#tut-firstclassesXA First Look at ClassestrXdircmp-objectsr(jjX<http://docs.python.org/3/library/filecmp.html#dircmp-objectsXThe dircmp classtrXpackage-path-rulesr(jjXAhttp://docs.python.org/3/reference/import.html#package-path-rulesXmodule.__path__trXdiffer-examplesr(jjX=http://docs.python.org/3/library/difflib.html#differ-examplesXDiffer ExampletrX operatorsr(jjXBhttp://docs.python.org/3/reference/lexical_analysis.html#operatorsX OperatorstrXtypesseq-mutabler(jjX?http://docs.python.org/3/library/stdtypes.html#typesseq-mutableXMutable Sequence TypestrX tut-listcompsr(jjXChttp://docs.python.org/3/tutorial/datastructures.html#tut-listcompsXList ComprehensionstrXatexit-exampler(jjX;http://docs.python.org/3/library/atexit.html#atexit-exampleXatexit ExampletrXinst-building-extr(jjX=http://docs.python.org/3/install/index.html#inst-building-extX$Building Extensions: Tips and TrickstrX codec-objectsr(jjX:http://docs.python.org/3/library/codecs.html#codec-objectsX Codec ObjectstrXhttpresponse-objectsr(jjXFhttp://docs.python.org/3/library/http.client.html#httpresponse-objectsXHTTPResponse ObjectstrXdoctest-unittest-apir(jjXBhttp://docs.python.org/3/library/doctest.html#doctest-unittest-apiX Unittest APItrXdoctest-how-it-worksr(jjXBhttp://docs.python.org/3/library/doctest.html#doctest-how-it-worksX How It WorkstrX yieldexprr(jjX=http://docs.python.org/3/reference/expressions.html#yieldexprXYield expressionstrXlegacy-unit-testsr(jjX@http://docs.python.org/3/library/unittest.html#legacy-unit-testsXRe-using old test codetrXinspect-sourcer(jjX<http://docs.python.org/3/library/inspect.html#inspect-sourceXRetrieving source codetrX datetime-timer(jjX<http://docs.python.org/3/library/datetime.html#datetime-timeX time ObjectstrXcompleter-objectsr(jjXChttp://docs.python.org/3/library/rlcompleter.html#completer-objectsXCompleter ObjectstrXcurses-window-objectsr(jjXBhttp://docs.python.org/3/library/curses.html#curses-window-objectsXWindow ObjectstrX2to3-referencer(jjX8http://docs.python.org/3/library/2to3.html#to3-referenceX/2to3 - Automated Python 2 to 3 code translationtrXmodulesr(jjX5http://docs.python.org/3/library/modules.html#modulesXImporting ModulestrX mailbox-mboxr(jjX:http://docs.python.org/3/library/mailbox.html#mailbox-mboxXmboxtrXarbitrary-object-messagesr(jjXEhttp://docs.python.org/3/howto/logging.html#arbitrary-object-messagesX#Using arbitrary objects as messagestrXoptparse-extending-optparser(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-extending-optparseXExtending optparsetrXwhatsnew-pathlibr(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pathlibXpathlibtrXdefused-packagesr(jjX:http://docs.python.org/3/library/xml.html#defused-packagesX(The defusedxml and defusedexpat PackagestrX reentrant-cmsr(jjX>http://docs.python.org/3/library/contextlib.html#reentrant-cmsXReentrant context managerstrXdescribing-extensionsr(jjXIhttp://docs.python.org/3/distutils/setupscript.html#describing-extensionsXDescribing extension modulestrXunittest-minimal-exampler(jjXGhttp://docs.python.org/3/library/unittest.html#unittest-minimal-exampleX Basic exampletrXjson-to-py-tabler(jjX;http://docs.python.org/3/library/json.html#json-to-py-tableX-trXiteratorr(jjX1http://docs.python.org/3/c-api/iter.html#iteratorXIterator ProtocoltrXexpression-inputr (jjXLhttp://docs.python.org/3/reference/toplevel_components.html#expression-inputXExpression inputtr Xglobalr (jjX;http://docs.python.org/3/reference/simple_stmts.html#globalXThe global statementtr X$optparse-how-optparse-handles-errorsr (jjXShttp://docs.python.org/3/library/optparse.html#optparse-how-optparse-handles-errorsXHow optparse handles errorstrXhttp-error-processor-objectsr(jjXQhttp://docs.python.org/3/library/urllib.request.html#http-error-processor-objectsXHTTPErrorProcessor ObjectstrX bufferobjectsr(jjX8http://docs.python.org/3/c-api/buffer.html#bufferobjectsXBuffer ProtocoltrXtypememoryviewr(jjX=http://docs.python.org/3/library/stdtypes.html#typememoryviewX Memory ViewstrXcommentsr(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#commentsXCommentstrX"ctypes-calling-functions-continuedr(jjXOhttp://docs.python.org/3/library/ctypes.html#ctypes-calling-functions-continuedXCalling functions, continuedtrXasyncio-loggerr(jjX@http://docs.python.org/3/library/asyncio-dev.html#asyncio-loggerXLoggingtrXssl-certificatesr(jjX:http://docs.python.org/3/library/ssl.html#ssl-certificatesX CertificatestrX smtp-exampler(jjX:http://docs.python.org/3/library/smtplib.html#smtp-exampleX SMTP ExampletrXtut-inheritancer(jjX>http://docs.python.org/3/tutorial/classes.html#tut-inheritanceX Inheritancetr Xsection-pep307r!(jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep307XPEP 307: Pickle Enhancementstr"X install-indexr#(jjX9http://docs.python.org/3/install/index.html#install-indexX*Installing Python Modules (Legacy version)tr$Xdistutils-termr%(jjXChttp://docs.python.org/3/distutils/introduction.html#distutils-termXDistutils-specific terminologytr&X meta-datar'(jjX=http://docs.python.org/3/distutils/setupscript.html#meta-dataXAdditional meta-datatr(Xfinallyr)(jjX>http://docs.python.org/3/reference/compound_stmts.html#finallyXThe try statementtr*Xtut-decimal-fpr+(jjX=http://docs.python.org/3/tutorial/stdlib2.html#tut-decimal-fpX!Decimal Floating Point Arithmetictr,Xstabler-(jjX1http://docs.python.org/3/c-api/stable.html#stableX#Stable Application Binary Interfacetr.X api-debuggingr/(jjX7http://docs.python.org/3/c-api/intro.html#api-debuggingXDebugging Buildstr0Xtut-mathematicsr1(jjX=http://docs.python.org/3/tutorial/stdlib.html#tut-mathematicsX Mathematicstr2Xsupporting-cycle-detectionr3(jjXHhttp://docs.python.org/3/c-api/gcsupport.html#supporting-cycle-detectionX$Supporting Cyclic Garbage Collectiontr4X typesmodulesr5(jjX;http://docs.python.org/3/library/stdtypes.html#typesmodulesXModulestr6Xbooleansr7(jjX<http://docs.python.org/3/reference/expressions.html#booleansXBoolean operationstr8Xsemaphore-objectsr9(jjXAhttp://docs.python.org/3/library/threading.html#semaphore-objectsXSemaphore Objectstr:Xdevpoll-objectsr;(jjX<http://docs.python.org/3/library/select.html#devpoll-objectsX/dev/poll Polling Objectstr<Xdescriptor-invocationr=(jjXGhttp://docs.python.org/3/reference/datamodel.html#descriptor-invocationXInvoking Descriptorstr>X windows-faqr?(jjX5http://docs.python.org/3/faq/windows.html#windows-faqXPython on Windows FAQtr@X metaclassesrA(jjX=http://docs.python.org/3/reference/datamodel.html#metaclassesXCustomizing class creationtrBX inst-introrC(jjX6http://docs.python.org/3/install/index.html#inst-introX IntroductiontrDXdata-handler-objectsrE(jjXIhttp://docs.python.org/3/library/urllib.request.html#data-handler-objectsXDataHandler ObjectstrFX tut-modulesrG(jjX:http://docs.python.org/3/tutorial/modules.html#tut-modulesXModulestrHXcomplexobjectsrI(jjX:http://docs.python.org/3/c-api/complex.html#complexobjectsXComplex Number ObjectstrJX api-objectsrK(jjX5http://docs.python.org/3/c-api/intro.html#api-objectsX#Objects, Types and Reference CountstrLX pop3-objectsrM(jjX9http://docs.python.org/3/library/poplib.html#pop3-objectsX POP3 ObjectstrNXextending-simpleexamplerO(jjXIhttp://docs.python.org/3/extending/extending.html#extending-simpleexampleXA Simple ExampletrPXtryrQ(jjX:http://docs.python.org/3/reference/compound_stmts.html#tryXThe try statementtrRXtut-defaultargsrS(jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-defaultargsXDefault Argument ValuestrTX otherobjectsrU(jjX9http://docs.python.org/3/c-api/concrete.html#otherobjectsXFunction ObjectstrVX os-filenamesrW(jjX5http://docs.python.org/3/library/os.html#os-filenamesX=File Names, Command Line Arguments, and Environment VariablestrXXfilter-chain-specsrY(jjX=http://docs.python.org/3/library/lzma.html#filter-chain-specsXSpecifying custom filter chainstrZXphysical-linesr[(jjXGhttp://docs.python.org/3/reference/lexical_analysis.html#physical-linesXPhysical linestr\Xhistory-and-licenser](jjX9http://docs.python.org/3/license.html#history-and-licenseXHistory and Licensetr^X tut-brieftourr_(jjX;http://docs.python.org/3/tutorial/stdlib.html#tut-brieftourX"Brief Tour of the Standard Librarytr`X whatsnew-enumra(jjX8http://docs.python.org/3/whatsnew/3.4.html#whatsnew-enumXenumtrbX tar-examplesrc(jjX:http://docs.python.org/3/library/tarfile.html#tar-examplesXExamplestrdXembedding-localere(jjX=http://docs.python.org/3/library/locale.html#embedding-localeX4For extension writers and programs that embed PythontrfXfd_inheritancerg(jjX7http://docs.python.org/3/library/os.html#fd-inheritanceXInheritance of File DescriptorstrhX module-ctypesri(jjX8http://docs.python.org/3/whatsnew/2.5.html#module-ctypesXThe ctypes packagetrjXdoctest-directivesrk(jjX@http://docs.python.org/3/library/doctest.html#doctest-directivesX DirectivestrlXrandom-examplesrm(jjX<http://docs.python.org/3/library/random.html#random-examplesXExamples and RecipestrnXitertools-recipesro(jjXAhttp://docs.python.org/3/library/itertools.html#itertools-recipesXItertools RecipestrpX!collections-abstract-base-classesrq(jjXWhttp://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classesX!Collections Abstract Base ClassestrrXdatetime-tzinfors(jjX>http://docs.python.org/3/library/datetime.html#datetime-tzinfoXtzinfo ObjectstrtXmultiprocessing-programmingru(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-programmingXProgramming guidelinestrvXsax-exception-objectsrw(jjXChttp://docs.python.org/3/library/xml.sax.html#sax-exception-objectsXSAXException ObjectstrxX imap4-objectsry(jjX;http://docs.python.org/3/library/imaplib.html#imap4-objectsX IMAP4 ObjectstrzXlogging-config-apir{(jjXGhttp://docs.python.org/3/library/logging.config.html#logging-config-apiXConfiguration functionstr|Xpep-353r}(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-353X(PEP 353: Using ssize_t as the index typetr~X asyncio-devr(jjX=http://docs.python.org/3/library/asyncio-dev.html#asyncio-devXDevelop with asynciotrXobjectsr(jjX9http://docs.python.org/3/reference/datamodel.html#objectsXObjects, values and typestrXpep-357r(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-357XPEP 357: The '__index__' methodtrXdistributing-indexr(jjXChttp://docs.python.org/3/distributing/index.html#distributing-indexXDistributing Python ModulestrXurllib-examplesr(jjXDhttp://docs.python.org/3/library/urllib.request.html#urllib-examplesX-trXpackage-registerr(jjXEhttp://docs.python.org/3/distutils/packageindex.html#package-registerXRegistering PackagestrXdoctest-exceptionsr(jjX@http://docs.python.org/3/library/doctest.html#doctest-exceptionsXWhat About Exceptions?trX creating-stsr(jjX9http://docs.python.org/3/library/parser.html#creating-stsXCreating ST ObjectstrX tut-loggingr(jjX:http://docs.python.org/3/tutorial/stdlib2.html#tut-loggingXLoggingtrXhkey-constantsr(jjX;http://docs.python.org/3/library/winreg.html#hkey-constantsXHKEY_* ConstantstrXdatetime-objectsr(jjXDhttp://docs.python.org/3/library/xmlrpc.client.html#datetime-objectsXDateTime ObjectstrX with-locksr(jjX:http://docs.python.org/3/library/threading.html#with-locksX=Using locks, conditions, and semaphores in the with statementtrXpickle-restrictr(jjX<http://docs.python.org/3/library/pickle.html#pickle-restrictXRestricting GlobalstrXdecimal-signalsr(jjX=http://docs.python.org/3/library/decimal.html#decimal-signalsXSignalstrXtut-lists-as-stacksr(jjXIhttp://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-stacksXUsing Lists as StackstrXipcr(jjX-http://docs.python.org/3/library/ipc.html#ipcX)Interprocess Communication and NetworkingtrX tut-privater(jjX:http://docs.python.org/3/tutorial/classes.html#tut-privateXPrivate VariablestrXos-pathr(jjX0http://docs.python.org/3/library/os.html#os-pathX Miscellaneous System InformationtrXoptparse-default-valuesr(jjXFhttp://docs.python.org/3/library/optparse.html#optparse-default-valuesXDefault valuestrXtut-cleanup-withr(jjX>http://docs.python.org/3/tutorial/errors.html#tut-cleanup-withXPredefined Clean-up ActionstrXbooleanr(jjX6http://docs.python.org/3/library/stdtypes.html#booleanX#Boolean Operations --- and, or, nottrXsequence-typesr(jjX@http://docs.python.org/3/reference/datamodel.html#sequence-typesXEmulating container typestrXnetdatar(jjX5http://docs.python.org/3/library/netdata.html#netdataXInternet Data HandlingtrXmailbox-babylmessager(jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox-babylmessageX BabylMessagetrXfpectl-exampler(jjX;http://docs.python.org/3/library/fpectl.html#fpectl-exampleXExampletrXattr-target-noter(jjXEhttp://docs.python.org/3/reference/simple_stmts.html#attr-target-noteX-trX exprstmtsr(jjX>http://docs.python.org/3/reference/simple_stmts.html#exprstmtsXExpression statementstrX expat-errorsr(jjX:http://docs.python.org/3/library/pyexpat.html#expat-errorsXExpat error constantstrXis notr(jjX:http://docs.python.org/3/reference/expressions.html#is-notX ComparisonstrX api-referencer(jjX<http://docs.python.org/3/distutils/apiref.html#api-referenceX API ReferencetrXfromr(jjX9http://docs.python.org/3/reference/simple_stmts.html#fromXThe import statementtrXdebug-setup-scriptr(jjXFhttp://docs.python.org/3/distutils/setupscript.html#debug-setup-scriptXDebugging the setup scripttrXhandlerr(jjX5http://docs.python.org/3/library/logging.html#handlerXHandler ObjectstrXbltin-notimplemented-objectr(jjXJhttp://docs.python.org/3/library/stdtypes.html#bltin-notimplemented-objectXThe NotImplemented ObjecttrXmemoryr(jjX1http://docs.python.org/3/c-api/memory.html#memoryXMemory ManagementtrXmultiprocessing-start-methodsr(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-start-methodsX-trXtextseqr(jjX6http://docs.python.org/3/library/stdtypes.html#textseqXText Sequence Type --- strtrXfunc-memoryviewr(jjX?http://docs.python.org/3/library/functions.html#func-memoryviewX-trXtutorial-indexr(jjX;http://docs.python.org/3/tutorial/index.html#tutorial-indexXThe Python TutorialtrXextending-with-embeddingr(jjXJhttp://docs.python.org/3/extending/embedding.html#extending-with-embeddingXExtending Embedded PythontrXcross-compile-windowsr(jjXGhttp://docs.python.org/3/distutils/builtdist.html#cross-compile-windowsXCross-compiling on WindowstrXctypes-ctypes-referencer(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-ctypes-referenceXctypes referencetrXtut-arbitraryargsr(jjXDhttp://docs.python.org/3/tutorial/controlflow.html#tut-arbitraryargsXArbitrary Argument ListstrX mapobjectsr(jjX7http://docs.python.org/3/c-api/concrete.html#mapobjectsXContainer ObjectstrXdistutils-installing-scriptsr(jjXPhttp://docs.python.org/3/distutils/setupscript.html#distutils-installing-scriptsXInstalling ScriptstrXdatagram-handlerr(jjXGhttp://docs.python.org/3/library/logging.handlers.html#datagram-handlerXDatagramHandlertrXtut-filemethodsr(jjXBhttp://docs.python.org/3/tutorial/inputoutput.html#tut-filemethodsXMethods of File ObjectstrXcookie-exampler(jjXAhttp://docs.python.org/3/library/http.cookies.html#cookie-exampleXExampletrXwhatsnew-pep-436r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-436XPEP 436: Argument ClinictrXcompoundshapesr(jjX;http://docs.python.org/3/library/turtle.html#compoundshapesXCompound shapestrX23acksr(jjX/http://docs.python.org/3/whatsnew/2.3.html#acksXAcknowledgementstrXdefault-cookie-policy-objectsr(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#default-cookie-policy-objectsXDefaultCookiePolicy ObjectstrX types-setr(jjX8http://docs.python.org/3/library/stdtypes.html#types-setXSet Types --- set, frozensettrXc-wrapper-softwarer(jjX>http://docs.python.org/3/faq/extending.html#c-wrapper-softwareX.Writing C is hard; are there any alternatives?trXinst-alt-installr(jjX<http://docs.python.org/3/install/index.html#inst-alt-installXAlternate InstallationtrXdoctest-exampler(jjX=http://docs.python.org/3/library/doctest.html#doctest-exampleXExample ObjectstrXcabr(jjX0http://docs.python.org/3/library/msilib.html#cabX CAB ObjectstrX tut-tuplesr(jjX@http://docs.python.org/3/tutorial/datastructures.html#tut-tuplesXTuples and SequencestrX func-dictr(jjX9http://docs.python.org/3/library/functions.html#func-dictX-trXpep-3101r(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3101X$PEP 3101: Advanced String FormattingtrXdom-node-objectsr(jjX>http://docs.python.org/3/library/xml.dom.html#dom-node-objectsX Node ObjectstrXpep-3105r(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3105XPEP 3105: print As a FunctiontrXnot inr(jjX:http://docs.python.org/3/reference/expressions.html#not-inX ComparisonstrX type-structsr(jjX8http://docs.python.org/3/c-api/typeobj.html#type-structsX Type ObjectstrXuseful-handlersr(jjX;http://docs.python.org/3/howto/logging.html#useful-handlersXUseful Handlerstr Xsqlite3-module-contentsr (jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3-module-contentsXModule functions and constantstr Xunicodeexceptionsr (jjX@http://docs.python.org/3/c-api/exceptions.html#unicodeexceptionsXUnicode Exception Objectstr Xsocket-objectsr (jjX;http://docs.python.org/3/library/socket.html#socket-objectsXSocket Objectstr Xpure-pkgr (jjX9http://docs.python.org/3/distutils/examples.html#pure-pkgX%Pure Python distribution (by package)tr X typesnumericr (jjX;http://docs.python.org/3/library/stdtypes.html#typesnumericX%Numeric Types --- int, float, complextr Xstring-catenationr (jjXJhttp://docs.python.org/3/reference/lexical_analysis.html#string-catenationXString literal concatenationtr Xtut-methodobjectsr (jjX@http://docs.python.org/3/tutorial/classes.html#tut-methodobjectsXMethod Objectstr X re-syntaxr (jjX2http://docs.python.org/3/library/re.html#re-syntaxXRegular Expression Syntaxtr Xunicodeobjectsr (jjX:http://docs.python.org/3/c-api/unicode.html#unicodeobjectsXUnicode Objects and Codecstr Xctypes-fundamental-data-types-2r (jjXLhttp://docs.python.org/3/library/ctypes.html#ctypes-fundamental-data-types-2XFundamental data typestr Xmodule-wsgirefr (jjX9http://docs.python.org/3/whatsnew/2.5.html#module-wsgirefXThe wsgiref packagetr X getting-osxr (jjX3http://docs.python.org/3/using/mac.html#getting-osxX Getting and Installing MacPythontr Xdeterministic-profilingr (jjXEhttp://docs.python.org/3/library/profile.html#deterministic-profilingX What Is Deterministic Profiling?tr Xprofiler (jjX5http://docs.python.org/3/library/profile.html#profileXThe Python Profilerstr Xpyporting-howtor (jjX=http://docs.python.org/3/howto/pyporting.html#pyporting-howtoX!Porting Python 2 Code to Python 3tr Xgeneric-attribute-managementr (jjXMhttp://docs.python.org/3/extending/newtypes.html#generic-attribute-managementXGeneric Attribute Managementtr Xbltin-type-objectsr! (jjXAhttp://docs.python.org/3/library/stdtypes.html#bltin-type-objectsX Type Objectstr" X tupleobjectsr# (jjX6http://docs.python.org/3/c-api/tuple.html#tupleobjectsX Tuple Objectstr$ Xtut-classobjectsr% (jjX?http://docs.python.org/3/tutorial/classes.html#tut-classobjectsX Class Objectstr& Xtut-userexceptionsr' (jjX@http://docs.python.org/3/tutorial/errors.html#tut-userexceptionsXUser-defined Exceptionstr( X longobjectsr) (jjX4http://docs.python.org/3/c-api/long.html#longobjectsXInteger Objectstr* X pop3-exampler+ (jjX9http://docs.python.org/3/library/poplib.html#pop3-exampleX POP3 Exampletr, Xwhy-selfr- (jjX1http://docs.python.org/3/faq/design.html#why-selfXCWhy must 'self' be used explicitly in method definitions and calls?tr. Xcommand-line-interfacer/ (jjXChttp://docs.python.org/3/library/timeit.html#command-line-interfaceXCommand-Line Interfacetr0 Xcurses-textpad-objectsr1 (jjXChttp://docs.python.org/3/library/curses.html#curses-textpad-objectsXTextbox objectstr2 X tut-raisingr3 (jjX9http://docs.python.org/3/tutorial/errors.html#tut-raisingXRaising Exceptionstr4 Xallosr5 (jjX1http://docs.python.org/3/library/allos.html#allosX!Generic Operating System Servicestr6 Xdom-accessor-methodsr7 (jjXBhttp://docs.python.org/3/library/xml.dom.html#dom-accessor-methodsXAccessor Methodstr8 Xinst-config-filenamesr9 (jjXAhttp://docs.python.org/3/install/index.html#inst-config-filenamesX"Location and names of config filestr: Xoptsr; (jjX/http://docs.python.org/3/whatsnew/2.5.html#optsX Optimizationstr< Xelifr= (jjX;http://docs.python.org/3/reference/compound_stmts.html#elifXThe if statementtr> Xdnt-type-methodsr? (jjXAhttp://docs.python.org/3/extending/newtypes.html#dnt-type-methodsX Type Methodstr@ X tut-informalrA (jjX@http://docs.python.org/3/tutorial/introduction.html#tut-informalX"An Informal Introduction to PythontrB Xprocesspoolexecutor-examplerC (jjXThttp://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor-exampleXProcessPoolExecutor ExampletrD X setobjectsrE (jjX2http://docs.python.org/3/c-api/set.html#setobjectsX Set ObjectstrF Xdoctest-doctestparserrG (jjXChttp://docs.python.org/3/library/doctest.html#doctest-doctestparserXDocTestParser objectstrH X 2to3-fixersrI (jjX5http://docs.python.org/3/library/2to3.html#to3-fixersXFixerstrJ X sect-rellinksrK (jjX8http://docs.python.org/3/whatsnew/2.2.html#sect-rellinksX Related LinkstrL Xlogging-config-fileformatrM (jjXNhttp://docs.python.org/3/library/logging.config.html#logging-config-fileformatXConfiguration file formattrN X ctypes-variable-sized-data-typesrO (jjXMhttp://docs.python.org/3/library/ctypes.html#ctypes-variable-sized-data-typesXVariable-sized data typestrP Xunknown-handler-objectsrQ (jjXLhttp://docs.python.org/3/library/urllib.request.html#unknown-handler-objectsXUnknownHandler ObjectstrR Xdom-conformancerS (jjX=http://docs.python.org/3/library/xml.dom.html#dom-conformanceX ConformancetrT X tut-errorsrU (jjX8http://docs.python.org/3/tutorial/errors.html#tut-errorsXErrors and ExceptionstrV Xoptparse-adding-new-actionsrW (jjXJhttp://docs.python.org/3/library/optparse.html#optparse-adding-new-actionsXAdding new actionstrX X slice-objectsrY (jjX7http://docs.python.org/3/c-api/slice.html#slice-objectsX Slice ObjectstrZ X 2to3-usingr[ (jjX4http://docs.python.org/3/library/2to3.html#to3-usingX Using 2to3tr\ Xsignal-exampler] (jjX;http://docs.python.org/3/library/signal.html#signal-exampleXExampletr^ Xpythonr_ (jjX3http://docs.python.org/3/library/python.html#pythonXPython Runtime Servicestr` Xprofiler-introductionra (jjXChttp://docs.python.org/3/library/profile.html#profiler-introductionXIntroduction to the profilerstrb Xwhatsnew34-snirc (jjX9http://docs.python.org/3/whatsnew/3.4.html#whatsnew34-sniX-trd Xwhatsnew-protocol-4re (jjX>http://docs.python.org/3/whatsnew/3.4.html#whatsnew-protocol-4Xpickletrf Xwarning-testingrg (jjX>http://docs.python.org/3/library/warnings.html#warning-testingXTesting Warningstrh Xnotri (jjX7http://docs.python.org/3/reference/expressions.html#notXBoolean operationstrj X package-indexrk (jjXBhttp://docs.python.org/3/distutils/packageindex.html#package-indexXThe Python Package Index (PyPI)trl X pure-pathsrm (jjX8http://docs.python.org/3/library/pathlib.html#pure-pathsX Pure pathstrn Xdoctest-doctestro (jjX=http://docs.python.org/3/library/doctest.html#doctest-doctestXDocTest Objectstrp Xcryptorq (jjX3http://docs.python.org/3/library/crypto.html#cryptoXCryptographic Servicestrr X smtp-objectsrs (jjX:http://docs.python.org/3/library/smtplib.html#smtp-objectsX SMTP Objectstrt Xold-string-formattingru (jjXDhttp://docs.python.org/3/library/stdtypes.html#old-string-formattingXprintf-style String Formattingtrv Xctypes-ctypes-tutorialrw (jjXChttp://docs.python.org/3/library/ctypes.html#ctypes-ctypes-tutorialXctypes tutorialtrx Xtut-dirry (jjX6http://docs.python.org/3/tutorial/modules.html#tut-dirXThe dir() Functiontrz X handler-basicr{ (jjX9http://docs.python.org/3/howto/logging.html#handler-basicXHandlerstr| X)ctypes-specifying-required-argument-typesr} (jjXVhttp://docs.python.org/3/library/ctypes.html#ctypes-specifying-required-argument-typesX<Specifying the required argument types (function prototypes)tr~ Xsqlite3-row-objectsr (jjXAhttp://docs.python.org/3/library/sqlite3.html#sqlite3-row-objectsX Row Objectstr Xusing-on-windowsr (jjX<http://docs.python.org/3/using/windows.html#using-on-windowsXUsing Python on Windowstr X csv-contentsr (jjX6http://docs.python.org/3/library/csv.html#csv-contentsXModule Contentstr Xpep-0343r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0343XPEP 343: The 'with' statementtr Xfilters-contextualr (jjXGhttp://docs.python.org/3/howto/logging-cookbook.html#filters-contextualX.Using Filters to impart contextual informationtr X access-rightsr (jjX:http://docs.python.org/3/library/winreg.html#access-rightsX Access Rightstr Xprofile-instantr (jjX=http://docs.python.org/3/library/profile.html#profile-instantXInstant User's Manualtr Xdoctest-doctestfinderr (jjXChttp://docs.python.org/3/library/doctest.html#doctest-doctestfinderXDocTestFinder objectstr X encodingsr (jjXBhttp://docs.python.org/3/reference/lexical_analysis.html#encodingsXEncoding declarationstr Xsubtestsr (jjX7http://docs.python.org/3/library/unittest.html#subtestsX-Distinguishing test iterations using subteststr Xnamingr (jjX=http://docs.python.org/3/reference/executionmodel.html#namingXNaming and bindingtr Xbuilding-on-windowsr (jjXChttp://docs.python.org/3/extending/windows.html#building-on-windowsX(Building C and C++ Extensions on Windowstr Xtut-dictionariesr (jjXFhttp://docs.python.org/3/tutorial/datastructures.html#tut-dictionariesX Dictionariestr X re-objectsr (jjX3http://docs.python.org/3/library/re.html#re-objectsXRegular Expression Objectstr Xelementtree-parsing-xmlr (jjXShttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-parsing-xmlX Parsing XMLtr Xapi-refcountdetailsr (jjX=http://docs.python.org/3/c-api/intro.html#api-refcountdetailsXReference Count Detailstr Xformatter-objectsr (jjX?http://docs.python.org/3/library/logging.html#formatter-objectsXFormatter Objectstr X func-tupler (jjX:http://docs.python.org/3/library/functions.html#func-tupleX-tr Xfunction-objectsr (jjX=http://docs.python.org/3/c-api/function.html#function-objectsXFunction Objectstr Xhttp-basic-auth-handlerr (jjXLhttp://docs.python.org/3/library/urllib.request.html#http-basic-auth-handlerXHTTPBasicAuthHandler Objectstr X curses-howtor (jjX7http://docs.python.org/3/howto/curses.html#curses-howtoXCurses Programming with Pythontr X ctypes-arraysr (jjX:http://docs.python.org/3/library/ctypes.html#ctypes-arraysXArraystr Xsection-enumerater (jjX<http://docs.python.org/3/whatsnew/2.3.html#section-enumerateXPEP 279: enumerate()tr Xinternetr (jjX7http://docs.python.org/3/library/internet.html#internetXInternet Protocols and Supporttr Xslicingsr (jjX<http://docs.python.org/3/reference/expressions.html#slicingsXSlicingstr Xlogging-config-dict-connectionsr (jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-connectionsXObject connectionstr Xdom-document-objectsr (jjXBhttp://docs.python.org/3/library/xml.dom.html#dom-document-objectsXDocument Objectstr Xtestsuite-objectsr (jjX@http://docs.python.org/3/library/unittest.html#testsuite-objectsXGrouping teststr Xwhatsnew-ensurepipr (jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-ensurepipX ensurepiptr Xmethod-objectsr (jjX9http://docs.python.org/3/c-api/method.html#method-objectsXMethod Objectstr Xoptparse-backgroundr (jjXBhttp://docs.python.org/3/library/optparse.html#optparse-backgroundX Backgroundtr X fileformatsr (jjX=http://docs.python.org/3/library/fileformats.html#fileformatsX File Formatstr Xossaudio-device-objectsr (jjXIhttp://docs.python.org/3/library/ossaudiodev.html#ossaudio-device-objectsXAudio Device Objectstr Xwhatsnew-tracemallocr (jjX?http://docs.python.org/3/whatsnew/3.4.html#whatsnew-tracemallocX tracemalloctr X st-errorsr (jjX6http://docs.python.org/3/library/parser.html#st-errorsXExceptions and Error Handlingtr X formatspecr (jjX7http://docs.python.org/3/library/string.html#formatspecX"Format Specification Mini-Languagetr Xlanguager (jjX7http://docs.python.org/3/library/language.html#languageXPython Language Servicestr Xusing-on-interface-optionsr (jjXFhttp://docs.python.org/3/using/cmdline.html#using-on-interface-optionsXInterface optionstr Xfnpicr (jjX4http://docs.python.org/3/reference/import.html#fnpicX-tr Xdistutils-indexr (jjX=http://docs.python.org/3/distutils/index.html#distutils-indexX,Distributing Python Modules (Legacy version)tr Xvenv-defr (jjX3http://docs.python.org/3/library/venv.html#venv-defX-tr X pickle-instr (jjX8http://docs.python.org/3/library/pickle.html#pickle-instXPickling Class Instancestr Xbase-handler-objectsr (jjXIhttp://docs.python.org/3/library/urllib.request.html#base-handler-objectsXBaseHandler Objectstr X tut-stderrr (jjX8http://docs.python.org/3/tutorial/stdlib.html#tut-stderrX0Error Output Redirection and Program Terminationtr X cplusplusr (jjX;http://docs.python.org/3/extending/extending.html#cplusplusXWriting Extensions in C++tr Xbase-rotating-handlerr (jjXLhttp://docs.python.org/3/library/logging.handlers.html#base-rotating-handlerXBaseRotatingHandlertr X tut-classesr (jjX:http://docs.python.org/3/tutorial/classes.html#tut-classesXClassestr Xtimed-rotating-file-handlerr (jjXRhttp://docs.python.org/3/library/logging.handlers.html#timed-rotating-file-handlerXTimedRotatingFileHandlertr X richcmpfuncsr (jjX>http://docs.python.org/3/reference/datamodel.html#richcmpfuncsX-tr Xshutil-archiving-exampler (jjXEhttp://docs.python.org/3/library/shutil.html#shutil-archiving-exampleXArchiving exampletr Xpep-341r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-341X#PEP 341: Unified try/except/finallytr Xpep-342r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-342XPEP 342: New Generator Featurestr Xpep-343r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-343XPEP 343: The 'with' statementtr X msvcrt-otherr (jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt-otherXOther Functionstr Xtut-interactingr (jjXBhttp://docs.python.org/3/tutorial/interactive.html#tut-interactingX2Interactive Input Editing and History Substitutiontr Xadvanced-debuggingr (jjX;http://docs.python.org/3/c-api/init.html#advanced-debuggingXAdvanced Debugger Supporttr X!optparse-defining-callback-optionr (jjXPhttp://docs.python.org/3/library/optparse.html#optparse-defining-callback-optionXDefining a callback optiontr Xnew-module-contextlibr (jjX@http://docs.python.org/3/whatsnew/2.6.html#new-module-contextlibXThe contextlib moduletr Xoptparse-populating-parserr (jjXIhttp://docs.python.org/3/library/optparse.html#optparse-populating-parserXPopulating the parsertr Xlogging-advanced-tutorialr (jjXEhttp://docs.python.org/3/howto/logging.html#logging-advanced-tutorialXAdvanced Logging Tutorialtr Xusing-capsulesr (jjX@http://docs.python.org/3/extending/extending.html#using-capsulesX)Providing a C API for an Extension Moduletr X mailbox-mhr (jjX8http://docs.python.org/3/library/mailbox.html#mailbox-mhXMHtr Xtypesr (jjX7http://docs.python.org/3/reference/datamodel.html#typesXThe standard type hierarchytr Xgilstater (jjX1http://docs.python.org/3/c-api/init.html#gilstateXNon-Python created threadstr Xtypeiterr (jjX7http://docs.python.org/3/library/stdtypes.html#typeiterXIterator Typestr X asyncio-syncr (jjX?http://docs.python.org/3/library/asyncio-sync.html#asyncio-syncXSynchronization primitivestr Xwhatsnew-indexr (jjX;http://docs.python.org/3/whatsnew/index.html#whatsnew-indexXWhat's New in Pythontr Xlistsr (jjX9http://docs.python.org/3/reference/expressions.html#listsX List displaystr Xcookie-policy-objectsr (jjXJhttp://docs.python.org/3/library/http.cookiejar.html#cookie-policy-objectsXCookiePolicy Objectstr Xtut-performance-measurementr (jjXIhttp://docs.python.org/3/tutorial/stdlib.html#tut-performance-measurementXPerformance Measurementtr Xiterator-objectsr (jjX=http://docs.python.org/3/c-api/iterator.html#iterator-objectsXIterator Objectstr Xdom-implementation-objectsr (jjXHhttp://docs.python.org/3/library/xml.dom.html#dom-implementation-objectsXDOMImplementation Objectstr Xtypecontextmanagerr (jjXAhttp://docs.python.org/3/library/stdtypes.html#typecontextmanagerXContext Manager Typestr Xhttpmessage-objectsr (jjXEhttp://docs.python.org/3/library/http.client.html#httpmessage-objectsXHTTPMessage Objectstr X file-handlerr (jjXChttp://docs.python.org/3/library/logging.handlers.html#file-handlerX FileHandlertr Xlogging-basic-tutorialr (jjXBhttp://docs.python.org/3/howto/logging.html#logging-basic-tutorialXBasic Logging Tutorialtr Xasyncio-handle-blockingr (jjXIhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-handle-blockingX#Handle blocking functions correctlytr X operator-mapr (jjX;http://docs.python.org/3/library/operator.html#operator-mapXMapping Operators to Functionstr Xexceptionhandlingr (jjX@http://docs.python.org/3/c-api/exceptions.html#exceptionhandlingXException Handlingtr Xlogging-exceptionsr (jjX>http://docs.python.org/3/howto/logging.html#logging-exceptionsX Exceptions raised during loggingtr X tar-formatsr (jjX9http://docs.python.org/3/library/tarfile.html#tar-formatsXSupported tar formatstr X main_specr! (jjX8http://docs.python.org/3/reference/import.html#main-specX__main__.__spec__tr" Xfuturer# (jjX;http://docs.python.org/3/reference/simple_stmts.html#futureXFuture statementstr$ Xrawconfigparser-objectsr% (jjXJhttp://docs.python.org/3/library/configparser.html#rawconfigparser-objectsXRawConfigParser Objectstr& Xfollow_symlinksr' (jjX8http://docs.python.org/3/library/os.html#follow-symlinksX-tr( Xtarfile-objectsr) (jjX=http://docs.python.org/3/library/tarfile.html#tarfile-objectsXTarFile Objectstr* Xandr+ (jjX7http://docs.python.org/3/reference/expressions.html#andXBoolean operationstr, Xfunctionr- (jjX?http://docs.python.org/3/reference/compound_stmts.html#functionXFunction definitionstr. Xbuffer-structurer/ (jjX;http://docs.python.org/3/c-api/buffer.html#buffer-structureXBuffer structuretr0 X ttkstylingr1 (jjX<http://docs.python.org/3/library/tkinter.ttk.html#ttkstylingX Ttk Stylingtr2 Xoptparse-terminologyr3 (jjXChttp://docs.python.org/3/library/optparse.html#optparse-terminologyX Terminologytr4 X top-levelr5 (jjXEhttp://docs.python.org/3/reference/toplevel_components.html#top-levelXTop-level componentstr6 Xpure-modr7 (jjX9http://docs.python.org/3/distutils/examples.html#pure-modX$Pure Python distribution (by module)tr8 Xsection-pymallocr9 (jjX;http://docs.python.org/3/whatsnew/2.3.html#section-pymallocX(Pymalloc: A Specialized Object Allocatortr: X cell-objectsr; (jjX5http://docs.python.org/3/c-api/cell.html#cell-objectsX Cell Objectstr< Xabstract-digest-auth-handlerr= (jjXQhttp://docs.python.org/3/library/urllib.request.html#abstract-digest-auth-handlerX!AbstractDigestAuthHandler Objectstr> Xtut-data-compressionr? (jjXBhttp://docs.python.org/3/tutorial/stdlib.html#tut-data-compressionXData Compressiontr@ X tut-morelistsrA (jjXChttp://docs.python.org/3/tutorial/datastructures.html#tut-morelistsX More on ListstrB Xtut-annotationsrC (jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-annotationsXFunction AnnotationstrD Xoptparse-tutorialrE (jjX@http://docs.python.org/3/library/optparse.html#optparse-tutorialXTutorialtrF X primariesrG (jjX=http://docs.python.org/3/reference/expressions.html#primariesX PrimariestrH XprocesscontrolrI (jjX6http://docs.python.org/3/c-api/sys.html#processcontrolXProcess ControltrJ Xthreadpoolexecutor-examplerK (jjXShttp://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-exampleXThreadPoolExecutor ExampletrL X persistencerM (jjX=http://docs.python.org/3/library/persistence.html#persistenceXData PersistencetrN Xpep-3112rO (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3112XPEP 3112: Byte LiteralstrP Xdoctest-soapboxrQ (jjX=http://docs.python.org/3/library/doctest.html#doctest-soapboxXSoapboxtrR Xpep-3110rS (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3110X$PEP 3110: Exception-Handling ChangestrT X mod-pythonrU (jjX9http://docs.python.org/3/howto/webservers.html#mod-pythonX mod_pythontrV X sqlite3-typesrW (jjX;http://docs.python.org/3/library/sqlite3.html#sqlite3-typesXSQLite and Python typestrX Xc99rY (jjX-http://docs.python.org/3/library/sys.html#c99X-trZ Xpep-3118r[ (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3118X!PEP 3118: Revised Buffer Protocoltr\ Xregrtestr] (jjX3http://docs.python.org/3/library/test.html#regrtestX.Running tests using the command-line interfacetr^ Xctypes-structures-unionsr_ (jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-structures-unionsXStructures and unionstr` Xfunctional-howto-iteratorsra (jjXIhttp://docs.python.org/3/howto/functional.html#functional-howto-iteratorsX Iteratorstrb Xincremental-parser-objectsrc (jjXOhttp://docs.python.org/3/library/xml.sax.reader.html#incremental-parser-objectsXIncrementalParser Objectstrd X optparse-standard-option-actionsre (jjXOhttp://docs.python.org/3/library/optparse.html#optparse-standard-option-actionsXStandard option actionstrf Xhttp-server-clirg (jjXAhttp://docs.python.org/3/library/http.server.html#http-server-cliX-trh Xtut-interactiveri (jjXBhttp://docs.python.org/3/tutorial/interpreter.html#tut-interactiveXInteractive Modetrj Xtut-binary-formatsrk (jjXAhttp://docs.python.org/3/tutorial/stdlib2.html#tut-binary-formatsX'Working with Binary Data Record Layoutstrl Xxml-vulnerabilitiesrm (jjX=http://docs.python.org/3/library/xml.html#xml-vulnerabilitiesXXML vulnerabilitiestrn Xsection-generatorsro (jjX=http://docs.python.org/3/whatsnew/2.3.html#section-generatorsXPEP 255: Simple Generatorstrp Xasyncio-streamsrq (jjXDhttp://docs.python.org/3/library/asyncio-stream.html#asyncio-streamsXStreams (high-level API)trr Xdom-documenttype-objectsrs (jjXFhttp://docs.python.org/3/library/xml.dom.html#dom-documenttype-objectsXDocumentType Objectstrt Xpickle-persistentru (jjX>http://docs.python.org/3/library/pickle.html#pickle-persistentXPersistence of External Objectstrv Xcommon-structsrw (jjX=http://docs.python.org/3/c-api/structures.html#common-structsXCommon Object Structurestrx Xctypes-foreign-functionsry (jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-foreign-functionsXForeign functionstrz X socket-howtor{ (jjX8http://docs.python.org/3/howto/sockets.html#socket-howtoXSocket Programming HOWTOtr| Xdtd-handler-objectsr} (jjXIhttp://docs.python.org/3/library/xml.sax.handler.html#dtd-handler-objectsXDTDHandler Objectstr~ X queue-handlerr (jjXDhttp://docs.python.org/3/library/logging.handlers.html#queue-handlerX QueueHandlertr Xhttps-handler-objectsr (jjXJhttp://docs.python.org/3/library/urllib.request.html#https-handler-objectsXHTTPSHandler Objectstr X source-distr (jjX>http://docs.python.org/3/distutils/sourcedist.html#source-distXCreating a Source Distributiontr Xxmlr (jjX-http://docs.python.org/3/library/xml.html#xmlXXML Processing Modulestr X importlibr (jjX4http://docs.python.org/3/whatsnew/3.3.html#importlibX/Using importlib as the Implementation of Importtr Xformatter-implsr (jjX?http://docs.python.org/3/library/formatter.html#formatter-implsXFormatter Implementationstr Xdynamic-featuresr (jjXGhttp://docs.python.org/3/reference/executionmodel.html#dynamic-featuresX!Interaction with dynamic featurestr X value-typesr (jjX8http://docs.python.org/3/library/winreg.html#value-typesX Value Typestr Xkqueue-objectsr (jjX;http://docs.python.org/3/library/select.html#kqueue-objectsXKqueue Objectstr X os-procinfor (jjX4http://docs.python.org/3/library/os.html#os-procinfoXProcess Parameterstr Xnetwork-loggingr (jjXDhttp://docs.python.org/3/howto/logging-cookbook.html#network-loggingX5Sending and receiving logging events across a networktr X 25modulesr (jjX2http://docs.python.org/3/whatsnew/2.5.html#modulesX"New, Improved, and Removed Modulestr X win-cookbookr (jjX<http://docs.python.org/3/extending/windows.html#win-cookbookXA Cookbook Approachtr Xinspect-signature-objectr (jjXFhttp://docs.python.org/3/library/inspect.html#inspect-signature-objectX1Introspecting callables with the Signature objecttr Xcapsulesr (jjX4http://docs.python.org/3/c-api/capsule.html#capsulesXCapsulestr Xinspect-module-clir (jjX@http://docs.python.org/3/library/inspect.html#inspect-module-cliXCommand Line Interfacetr X inspect-stackr (jjX;http://docs.python.org/3/library/inspect.html#inspect-stackXThe interpreter stacktr X single-extr (jjX;http://docs.python.org/3/distutils/examples.html#single-extXSingle extension moduletr Xcodec-handling-improvementsr (jjXFhttp://docs.python.org/3/whatsnew/3.4.html#codec-handling-improvementsXImprovements to Codec Handlingtr Xarchiving-operationsr (jjXAhttp://docs.python.org/3/library/shutil.html#archiving-operationsXArchiving operationstr Xformat-charactersr (jjX>http://docs.python.org/3/library/struct.html#format-charactersXFormat Characterstr X regex-howtor (jjX5http://docs.python.org/3/howto/regex.html#regex-howtoXRegular Expression HOWTOtr Xshelve-exampler (jjX;http://docs.python.org/3/library/shelve.html#shelve-exampleXExampletr Xemail-pkg-historyr (jjX=http://docs.python.org/3/library/email.html#email-pkg-historyXPackage Historytr Xtut-batteries-includedr (jjXDhttp://docs.python.org/3/tutorial/stdlib.html#tut-batteries-includedXBatteries Includedtr Xstream-reader-objectsr (jjXBhttp://docs.python.org/3/library/codecs.html#stream-reader-objectsXStreamReader Objectstr u(Xau-read-objectsr (jjX;http://docs.python.org/3/library/sunau.html#au-read-objectsXAU_read Objectstr Xatom-identifiersr (jjXDhttp://docs.python.org/3/reference/expressions.html#atom-identifiersXIdentifiers (Names)tr Xyieldr (jjX:http://docs.python.org/3/reference/simple_stmts.html#yieldXThe yield statementtr X dictobjectsr (jjX4http://docs.python.org/3/c-api/dict.html#dictobjectsXDictionary Objectstr Xmsvcrt-consoler (jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt-consoleX Console I/Otr X gen-objectsr (jjX3http://docs.python.org/3/c-api/gen.html#gen-objectsXGenerator Objectstr X whatsnew-multiprocessing-no-forkr (jjXKhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-multiprocessing-no-forkX-tr Xconverting-stsr (jjX;http://docs.python.org/3/library/parser.html#converting-stsXConverting ST Objectstr Xdir_fdr (jjX/http://docs.python.org/3/library/os.html#dir-fdX-tr Xdoctest-warningsr (jjX>http://docs.python.org/3/library/doctest.html#doctest-warningsXWarningstr Xtut-templatingr (jjX=http://docs.python.org/3/tutorial/stdlib2.html#tut-templatingX Templatingtr Xdoctest-finding-examplesr (jjXFhttp://docs.python.org/3/library/doctest.html#doctest-finding-examplesX&How are Docstring Examples Recognized?tr Xfnlor (jjX3http://docs.python.org/3/reference/import.html#fnloX-tr X parenthesizedr (jjXAhttp://docs.python.org/3/reference/expressions.html#parenthesizedXParenthesized formstr Xstrftime-strptime-behaviorr (jjXIhttp://docs.python.org/3/library/datetime.html#strftime-strptime-behaviorX"strftime() and strptime() Behaviortr Xpickle-exampler (jjX;http://docs.python.org/3/library/pickle.html#pickle-exampleXExamplestr X execmodelr (jjX@http://docs.python.org/3/reference/executionmodel.html#execmodelXExecution modeltr X26acksr (jjX/http://docs.python.org/3/whatsnew/2.6.html#acksXAcknowledgementstr X tut-numbersr (jjX?http://docs.python.org/3/tutorial/introduction.html#tut-numbersXNumberstr Xmorsel-objectsr (jjXAhttp://docs.python.org/3/library/http.cookies.html#morsel-objectsXMorsel Objectstr Xtut-syntaxerrorsr (jjX>http://docs.python.org/3/tutorial/errors.html#tut-syntaxerrorsX Syntax Errorstr Xwarning-functionsr (jjX@http://docs.python.org/3/library/warnings.html#warning-functionsXAvailable Functionstr Xmultiprocessing-managersr (jjXNhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-managersXManagerstr X null-handlerr (jjXChttp://docs.python.org/3/library/logging.handlers.html#null-handlerX NullHandlertr Xmsi-guir (jjX4http://docs.python.org/3/library/msilib.html#msi-guiX GUI classestr Xlexicalr (jjX@http://docs.python.org/3/reference/lexical_analysis.html#lexicalXLexical analysistr Xmac-package-managerr (jjX;http://docs.python.org/3/using/mac.html#mac-package-managerX%Installing Additional Python Packagestr Xtut-generatorsr (jjX=http://docs.python.org/3/tutorial/classes.html#tut-generatorsX Generatorstr Xtut-modulesasscriptsr (jjXChttp://docs.python.org/3/tutorial/modules.html#tut-modulesasscriptsXExecuting modules as scriptstr X http-handlerr (jjXChttp://docs.python.org/3/library/logging.handlers.html#http-handlerX HTTPHandlertr Ximportr (jjX;http://docs.python.org/3/reference/simple_stmts.html#importXThe import statementtr X typesmethodsr (jjX;http://docs.python.org/3/library/stdtypes.html#typesmethodsXMethodstr Xpep-0372r (jjX3http://docs.python.org/3/whatsnew/2.7.html#pep-0372X4PEP 372: Adding an Ordered Dictionary to collectionstr Xlogging-config-dict-internalobjr (jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-internalobjXAccess to internal objectstr Xpep-0370r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0370X)PEP 370: Per-user site-packages Directorytr Xpep-0371r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0371X$PEP 371: The multiprocessing Packagetr X!multiprocessing-listeners-clientsr (jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-listeners-clientsXListeners and Clientstr Xpep-0378r (jjX3http://docs.python.org/3/whatsnew/2.7.html#pep-0378X1PEP 378: Format Specifier for Thousands Separatortr Xinst-trivial-installr (jjX@http://docs.python.org/3/install/index.html#inst-trivial-installXBest case: trivial installationtr Xcreating-wininstr (jjXBhttp://docs.python.org/3/distutils/builtdist.html#creating-wininstXCreating Windows Installerstr Xmarshalling-utilsr (jjX=http://docs.python.org/3/c-api/marshal.html#marshalling-utilsXData marshalling supporttr Xtkinterr (jjX0http://docs.python.org/3/library/tk.html#tkinterX!Graphical User Interfaces with Tktr Xctypes-surprisesr (jjX=http://docs.python.org/3/library/ctypes.html#ctypes-surprisesX Surprisestr Xtut-searchpathr (jjX=http://docs.python.org/3/tutorial/modules.html#tut-searchpathXThe Module Search Pathtr X fileobjectsr (jjX4http://docs.python.org/3/c-api/file.html#fileobjectsX File Objectstr Xelementtree-qname-objectsr (jjXUhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-qname-objectsX QName Objectstr X tut-lambdar (jjX=http://docs.python.org/3/tutorial/controlflow.html#tut-lambdaXLambda Expressionstr X embeddingr (jjX;http://docs.python.org/3/extending/embedding.html#embeddingX'Embedding Python in Another Applicationtr X contextlibmodr (jjX8http://docs.python.org/3/whatsnew/2.5.html#contextlibmodXThe contextlib moduletr Xhttp-cookie-processorr (jjXJhttp://docs.python.org/3/library/urllib.request.html#http-cookie-processorXHTTPCookieProcessor Objectstr X cmd-exampler (jjX5http://docs.python.org/3/library/cmd.html#cmd-exampleX Cmd Exampletr Xinst-tweak-flagsr (jjX<http://docs.python.org/3/install/index.html#inst-tweak-flagsXTweaking compiler/linker flagstr Xbuilt-in-funcsr (jjX>http://docs.python.org/3/library/functions.html#built-in-funcsXBuilt-in Functionstr Xincremental-encoder-objectsr (jjXHhttp://docs.python.org/3/library/codecs.html#incremental-encoder-objectsXIncrementalEncoder Objectstr X os-miscfuncr (jjX4http://docs.python.org/3/library/os.html#os-miscfuncXMiscellaneous Functionstr Xmailbox-maildirmessager! (jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox-maildirmessageXMaildirMessagetr" Xoptparse-other-actionsr# (jjXEhttp://docs.python.org/3/library/optparse.html#optparse-other-actionsX Other actionstr$ X profile-statsr% (jjX;http://docs.python.org/3/library/profile.html#profile-statsXThe Stats Classtr& Xallocating-objectsr' (jjXAhttp://docs.python.org/3/c-api/allocation.html#allocating-objectsXAllocating Objects on the Heaptr( X$faq-augmented-assignment-tuple-errorr) (jjXRhttp://docs.python.org/3/faq/programming.html#faq-augmented-assignment-tuple-errorXKWhy does a_tuple[i] += ['item'] raise an exception when the addition works?tr* Xscheduler-objectsr+ (jjX=http://docs.python.org/3/library/sched.html#scheduler-objectsXScheduler Objectstr, Xwhatsnew27-capsulesr- (jjX>http://docs.python.org/3/whatsnew/2.7.html#whatsnew27-capsulesXCapsulestr. Xtut-loopidiomsr/ (jjXDhttp://docs.python.org/3/tutorial/datastructures.html#tut-loopidiomsXLooping Techniquestr0 Xportingr1 (jjX2http://docs.python.org/3/whatsnew/2.5.html#portingXPorting to Python 2.5tr2 Xlogging-config-dict-externalobjr3 (jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-externalobjXAccess to external objectstr4 X tut-multipler5 (jjX;http://docs.python.org/3/tutorial/classes.html#tut-multipleXMultiple Inheritancetr6 Xwhatsnew-tls-11-12r7 (jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-tls-11-12X-tr8 X exprlistsr9 (jjX=http://docs.python.org/3/reference/expressions.html#exprlistsXExpression liststr: Xbinaryservicesr; (jjX;http://docs.python.org/3/library/binary.html#binaryservicesXBinary Data Servicestr< X tut-scopesr= (jjX9http://docs.python.org/3/tutorial/classes.html#tut-scopesXPython Scopes and Namespacestr> Xassertr? (jjX;http://docs.python.org/3/reference/simple_stmts.html#assertXThe assert statementtr@ Xi18nrA (jjX/http://docs.python.org/3/library/i18n.html#i18nXInternationalizationtrB Xtut-source-encodingrC (jjXFhttp://docs.python.org/3/tutorial/interpreter.html#tut-source-encodingXSource Code EncodingtrD Xstream-reader-writerrE (jjXAhttp://docs.python.org/3/library/codecs.html#stream-reader-writerXStreamReaderWriter ObjectstrF Xdoctest-basic-apirG (jjX?http://docs.python.org/3/library/doctest.html#doctest-basic-apiX Basic APItrH XglossaryrI (jjX/http://docs.python.org/3/glossary.html#glossaryXGlossarytrJ XportingpythoncoderK (jjX<http://docs.python.org/3/whatsnew/3.3.html#portingpythoncodeXPorting Python codetrL Xsubclassing-reprsrM (jjX?http://docs.python.org/3/library/reprlib.html#subclassing-reprsXSubclassing Repr ObjectstrN Xbltin-null-objectrO (jjX@http://docs.python.org/3/library/stdtypes.html#bltin-null-objectXThe Null ObjecttrP X frameworksrQ (jjX;http://docs.python.org/3/library/frameworks.html#frameworksXProgram FrameworkstrR XbytearrayobjectsrS (jjX>http://docs.python.org/3/c-api/bytearray.html#bytearrayobjectsXByte Array ObjectstrT X file-inputrU (jjXFhttp://docs.python.org/3/reference/toplevel_components.html#file-inputX File inputtrV Xshutil-copytree-examplerW (jjXDhttp://docs.python.org/3/library/shutil.html#shutil-copytree-exampleXcopytree exampletrX Xgzip-usage-examplesrY (jjX>http://docs.python.org/3/library/gzip.html#gzip-usage-examplesXExamples of usagetrZ Xdecimal-contextr[ (jjX=http://docs.python.org/3/library/decimal.html#decimal-contextXContext objectstr\ Xtut-dates-and-timesr] (jjXAhttp://docs.python.org/3/tutorial/stdlib.html#tut-dates-and-timesXDates and Timestr^ Xsubprocess-replacementsr_ (jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess-replacementsX4Replacing Older Functions with the subprocess Moduletr` Xhash-algorithmsra (jjX=http://docs.python.org/3/library/hashlib.html#hash-algorithmsXHash algorithmstrb Xdistutils-introrc (jjXDhttp://docs.python.org/3/distutils/introduction.html#distutils-introXAn Introduction to Distutilstrd Xasyncio-delayed-callsre (jjXMhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-delayed-callsX Delayed callstrf X build-apirg (jjX4http://docs.python.org/3/whatsnew/2.5.html#build-apiXBuild and C API Changestrh Xzipfile-objectsri (jjX=http://docs.python.org/3/library/zipfile.html#zipfile-objectsXZipFile Objectstrj Xbinaryrk (jjX:http://docs.python.org/3/reference/expressions.html#binaryXBinary arithmetic operationstrl Xtut-forrm (jjX:http://docs.python.org/3/tutorial/controlflow.html#tut-forXfor Statementstrn X trace-cliro (jjX5http://docs.python.org/3/library/trace.html#trace-cliXCommand-Line Usagetrp Xdoctest-optionsrq (jjX=http://docs.python.org/3/library/doctest.html#doctest-optionsX Option Flagstrr X queueobjectsrs (jjX8http://docs.python.org/3/library/queue.html#queueobjectsX Queue Objectstrt Xunittest-contentsru (jjX@http://docs.python.org/3/library/unittest.html#unittest-contentsXClasses and functionstrv Xfunc-setrw (jjX8http://docs.python.org/3/library/functions.html#func-setX-trx Xweakrefobjectsry (jjX:http://docs.python.org/3/c-api/weakref.html#weakrefobjectsXWeak Reference Objectstrz Xtut-structuresr{ (jjXDhttp://docs.python.org/3/tutorial/datastructures.html#tut-structuresXData Structurestr| X dnt-basicsr} (jjX;http://docs.python.org/3/extending/newtypes.html#dnt-basicsX The Basicstr~ Xpyclbr-function-objectsr (jjXDhttp://docs.python.org/3/library/pyclbr.html#pyclbr-function-objectsXFunction Objectstr Xmmediar (jjX/http://docs.python.org/3/library/mm.html#mmediaXMultimedia Servicestr Xother-improvements-3.4r (jjXAhttp://docs.python.org/3/whatsnew/3.4.html#other-improvements-3-4XOther Improvementstr Xthread-objectsr (jjX>http://docs.python.org/3/library/threading.html#thread-objectsXThread Objectstr Xinitializationr (jjX7http://docs.python.org/3/c-api/init.html#initializationX)Initialization, Finalization, and Threadstr Xsimplexmlrpcserver-exampler (jjXNhttp://docs.python.org/3/library/xmlrpc.server.html#simplexmlrpcserver-exampleXSimpleXMLRPCServer Exampletr Xpyclbr-class-objectsr (jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr-class-objectsX Class Objectstr X expat-exampler (jjX;http://docs.python.org/3/library/pyexpat.html#expat-exampleXExampletr X bitstring-opsr (jjX<http://docs.python.org/3/library/stdtypes.html#bitstring-opsX#Bitwise Operations on Integer Typestr X datetime-dater (jjX<http://docs.python.org/3/library/datetime.html#datetime-dateX date Objectstr X datatypesr (jjX9http://docs.python.org/3/library/datatypes.html#datatypesX Data Typestr X moduleobjectsr (jjX8http://docs.python.org/3/c-api/module.html#moduleobjectsXModule Objectstr X reflectionr (jjX9http://docs.python.org/3/c-api/reflection.html#reflectionX Reflectiontr Xmarkupr (jjX3http://docs.python.org/3/library/markup.html#markupX"Structured Markup Processing Toolstr X identifiersr (jjXDhttp://docs.python.org/3/reference/lexical_analysis.html#identifiersXIdentifiers and keywordstr Xshlex-parsing-rulesr (jjX?http://docs.python.org/3/library/shlex.html#shlex-parsing-rulesX Parsing Rulestr Xpep-397r (jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-397X$PEP 397: Python Launcher for Windowstr Xpep-393r (jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-393X'PEP 393: Flexible String Representationtr Xasyncio-multithreadingr (jjXHhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-multithreadingXConcurrency and multithreadingtr X comparisonsr (jjX?http://docs.python.org/3/reference/expressions.html#comparisonsX Comparisonstr X tut-errorr (jjX<http://docs.python.org/3/tutorial/interpreter.html#tut-errorXError Handlingtr Xctypes-calling-functionsr (jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-calling-functionsXCalling functionstr X tut-interpr (jjX=http://docs.python.org/3/tutorial/interpreter.html#tut-interpX#The Interpreter and Its Environmenttr Xpep-3127r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3127X,PEP 3127: Integer Literal Support and Syntaxtr Xwarning-ignoredr (jjX>http://docs.python.org/3/library/warnings.html#warning-ignoredX(Updating Code For New Versions of Pythontr X#optparse-raising-errors-in-callbackr (jjXRhttp://docs.python.org/3/library/optparse.html#optparse-raising-errors-in-callbackXRaising errors in a callbacktr Xstringservicesr (jjX9http://docs.python.org/3/library/text.html#stringservicesXText Processing Servicestr X numeric-typesr (jjX?http://docs.python.org/3/reference/datamodel.html#numeric-typesXEmulating numeric typestr Xpep-3129r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3129XPEP 3129: Class Decoratorstr Xunaryr (jjX9http://docs.python.org/3/reference/expressions.html#unaryX'Unary arithmetic and bitwise operationstr X methodtabler (jjX=http://docs.python.org/3/extending/extending.html#methodtableX5The Module's Method Table and Initialization Functiontr Xtypesseq-commonr (jjX>http://docs.python.org/3/library/stdtypes.html#typesseq-commonXCommon Sequence Operationstr Xpython-interfacer (jjX=http://docs.python.org/3/library/timeit.html#python-interfaceXPython Interfacetr Xexceptr (jjX=http://docs.python.org/3/reference/compound_stmts.html#exceptXThe try statementtr X specialnamesr (jjX>http://docs.python.org/3/reference/datamodel.html#specialnamesXSpecial method namestr Xtypesseqr (jjX7http://docs.python.org/3/library/stdtypes.html#typesseqX%Sequence Types --- list, tuple, rangetr Xtut-morecontrolr (jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-morecontrolXMore Control Flow Toolstr Xother-gui-packagesr (jjXAhttp://docs.python.org/3/library/othergui.html#other-gui-packagesX'Other Graphical User Interface Packagestr Xnumber-structsr (jjX:http://docs.python.org/3/c-api/typeobj.html#number-structsXNumber Object Structurestr Xloggerr (jjX4http://docs.python.org/3/library/logging.html#loggerXLogger Objectstr Xtut-commentaryr (jjXAhttp://docs.python.org/3/tutorial/interactive.html#tut-commentaryX+Alternatives to the Interactive Interpretertr Xlisting-modulesr (jjXChttp://docs.python.org/3/distutils/setupscript.html#listing-modulesXListing individual modulestr X typebytesr (jjX8http://docs.python.org/3/library/stdtypes.html#typebytesXBytestr Xlisting-packagesr (jjXDhttp://docs.python.org/3/distutils/setupscript.html#listing-packagesXListing whole packagestr Xmodulefinder-exampler (jjXGhttp://docs.python.org/3/library/modulefinder.html#modulefinder-exampleXExample usage of ModuleFindertr Xmailbox-message-objectsr (jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox-message-objectsXMessage objectstr Xstandard-encodingsr (jjX?http://docs.python.org/3/library/codecs.html#standard-encodingsXStandard Encodingstr Xinstall-scripts-cmdr (jjXFhttp://docs.python.org/3/distutils/commandref.html#install-scripts-cmdXinstall_scriptstr X python-termsr (jjXAhttp://docs.python.org/3/distutils/introduction.html#python-termsXGeneral Python terminologytr Xtypesseq-immutabler (jjXAhttp://docs.python.org/3/library/stdtypes.html#typesseq-immutableXImmutable Sequence Typestr Xdom-nodelist-objectsr (jjXBhttp://docs.python.org/3/library/xml.dom.html#dom-nodelist-objectsXNodeList Objectstr Xstruct-format-stringsr (jjXBhttp://docs.python.org/3/library/struct.html#struct-format-stringsXFormat Stringstr Xwhere-to-patchr (jjXBhttp://docs.python.org/3/library/unittest.mock.html#where-to-patchXWhere to patchtr Xmore-metacharactersr (jjX=http://docs.python.org/3/howto/regex.html#more-metacharactersXMore Metacharacterstr Xapi-exceptionsr (jjX8http://docs.python.org/3/c-api/intro.html#api-exceptionsX Exceptionstr Xxdr-unpacker-objectsr (jjXAhttp://docs.python.org/3/library/xdrlib.html#xdr-unpacker-objectsXUnpacker Objectstr Xsignals-and-threadsr (jjX@http://docs.python.org/3/library/signal.html#signals-and-threadsXSignals and threadstr Xweakref-supportr (jjX@http://docs.python.org/3/extending/newtypes.html#weakref-supportXWeak Reference Supporttr Xxdr-packer-objectsr (jjX?http://docs.python.org/3/library/xdrlib.html#xdr-packer-objectsXPacker Objectstr Xinterpreter-objectsr (jjX>http://docs.python.org/3/library/code.html#interpreter-objectsXInteractive Interpreter Objectstr X unicode-howtor (jjX9http://docs.python.org/3/howto/unicode.html#unicode-howtoX Unicode HOWTOtr Xasyncio-hello-world-coroutiner (jjXPhttp://docs.python.org/3/library/asyncio-task.html#asyncio-hello-world-coroutineX Example: "Hello World" coroutinetr Xsequencer (jjX5http://docs.python.org/3/c-api/sequence.html#sequenceXSequence Protocoltr Xmodindexr (jjX*http://docs.python.org/3/py-modindex.html#X Module Indextr Xdatabase-objectsr (jjX=http://docs.python.org/3/library/msilib.html#database-objectsXDatabase Objectstr X binhex-notesr (jjX9http://docs.python.org/3/library/binhex.html#binhex-notesXNotestr X frame-objectsr (jjX?http://docs.python.org/3/reference/datamodel.html#frame-objectsX-tr X inspect-typesr (jjX;http://docs.python.org/3/library/inspect.html#inspect-typesXTypes and memberstr Xwave-read-objectsr (jjX<http://docs.python.org/3/library/wave.html#wave-read-objectsXWave_read Objectstr Xrefcountsinpythonr (jjXChttp://docs.python.org/3/extending/extending.html#refcountsinpythonXReference Counting in Pythontr Xopcode_collectionsr (jjX<http://docs.python.org/3/library/dis.html#opcode-collectionsXOpcode collectionstr Xdynamic-linkingr (jjX?http://docs.python.org/3/extending/windows.html#dynamic-linkingX$Differences Between Unix and Windowstr Xliteralsr (jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#literalsXLiteralstr X tut-functionsr (jjX@http://docs.python.org/3/tutorial/controlflow.html#tut-functionsXDefining Functionstr Xsection-pep302r (jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep302XPEP 302: New Import Hookstr Xsection-pep301r (jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep301X1PEP 301: Package Index and Metadata for Distutilstr Xweakref-exampler (jjX=http://docs.python.org/3/library/weakref.html#weakref-exampleXExampletr Xsection-pep305r (jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep305XPEP 305: Comma-separated Filestr X delimitersr (jjXChttp://docs.python.org/3/reference/lexical_analysis.html#delimitersX Delimiterstr Xupgrading-optparse-coder (jjXFhttp://docs.python.org/3/library/argparse.html#upgrading-optparse-codeXUpgrading optparse codetr X textservicesr (jjX7http://docs.python.org/3/library/text.html#textservicesXText Processing Servicestr X refcountsr! (jjX;http://docs.python.org/3/extending/extending.html#refcountsXReference Countstr" Xusing-the-cgi-moduler# (jjX>http://docs.python.org/3/library/cgi.html#using-the-cgi-moduleXUsing the cgi moduletr$ Xnew-25-context-managersr% (jjXBhttp://docs.python.org/3/whatsnew/2.5.html#new-25-context-managersXWriting Context Managerstr& Xdoctest-simple-testmodr' (jjXDhttp://docs.python.org/3/library/doctest.html#doctest-simple-testmodX-Simple Usage: Checking Examples in Docstringstr( Xtut-oddsr) (jjX7http://docs.python.org/3/tutorial/classes.html#tut-oddsX Odds and Endstr* Xhtmlparser-examplesr+ (jjXEhttp://docs.python.org/3/library/html.parser.html#htmlparser-examplesXExamplestr, Xtruthr- (jjX4http://docs.python.org/3/library/stdtypes.html#truthXTruth Value Testingtr. Xpowerr/ (jjX9http://docs.python.org/3/reference/expressions.html#powerXThe power operatortr0 X built-distr1 (jjX<http://docs.python.org/3/distutils/builtdist.html#built-distXCreating Built Distributionstr2 Xmultiprocessing-examplesr3 (jjXNhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-examplesXExamplestr4 X utilitiesr5 (jjX7http://docs.python.org/3/c-api/utilities.html#utilitiesX Utilitiestr6 X tut-usingr7 (jjX<http://docs.python.org/3/tutorial/interpreter.html#tut-usingXUsing the Python Interpretertr8 Xdoctest-doctestrunnerr9 (jjXChttp://docs.python.org/3/library/doctest.html#doctest-doctestrunnerXDocTestRunner objectstr: X imaginaryr; (jjXBhttp://docs.python.org/3/reference/lexical_analysis.html#imaginaryXImaginary literalstr< X optparse-printing-version-stringr= (jjXOhttp://docs.python.org/3/library/optparse.html#optparse-printing-version-stringXPrinting a version stringtr> Xcursespanel-functionsr? (jjXHhttp://docs.python.org/3/library/curses.panel.html#cursespanel-functionsX Functionstr@ X tut-handlingrA (jjX:http://docs.python.org/3/tutorial/errors.html#tut-handlingXHandling ExceptionstrB Xdatetime-timezonerC (jjX@http://docs.python.org/3/library/datetime.html#datetime-timezoneXtimezone ObjectstrD Xoptparse-how-callbacks-calledrE (jjXLhttp://docs.python.org/3/library/optparse.html#optparse-how-callbacks-calledXHow callbacks are calledtrF Xtut-exceptionclassesrG (jjXChttp://docs.python.org/3/tutorial/classes.html#tut-exceptionclassesXExceptions Are Classes TootrH Xwhatsnew27-python31rI (jjX>http://docs.python.org/3/whatsnew/2.7.html#whatsnew27-python31XThe Future for Python 2.xtrJ Xtut-docstringsrK (jjXAhttp://docs.python.org/3/tutorial/controlflow.html#tut-docstringsXDocumentation StringstrL X log-recordrM (jjX8http://docs.python.org/3/library/logging.html#log-recordXLogRecord ObjectstrN X parsetuplerO (jjX<http://docs.python.org/3/extending/extending.html#parsetupleX,Extracting Parameters in Extension FunctionstrP Xmemoryview-objectsrQ (jjXAhttp://docs.python.org/3/c-api/memoryview.html#memoryview-objectsX-trR XosrS (jjX*http://docs.python.org/3/c-api/sys.html#osXOperating System UtilitiestrT XorrU (jjX6http://docs.python.org/3/reference/expressions.html#orXBoolean operationstrV Xpep-0366rW (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0366X5PEP 366: Explicit Relative Imports From a Main ModuletrX Xtut-keywordargsrY (jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-keywordargsXKeyword ArgumentstrZ Xdatetime-datetimer[ (jjX@http://docs.python.org/3/library/datetime.html#datetime-datetimeXdatetime Objectstr\ X os-fd-opsr] (jjX2http://docs.python.org/3/library/os.html#os-fd-opsXFile Descriptor Operationstr^ Xtemplate-stringsr_ (jjX=http://docs.python.org/3/library/string.html#template-stringsXTemplate stringstr` Xpreparera (jjX9http://docs.python.org/3/reference/datamodel.html#prepareXPreparing the class namespacetrb Xparsing-ascii-encoded-bytesrc (jjXNhttp://docs.python.org/3/library/urllib.parse.html#parsing-ascii-encoded-bytesXParsing ASCII Encoded Bytestrd Xmemoryexamplesre (jjX9http://docs.python.org/3/c-api/memory.html#memoryexamplesXExamplestrf Xdom-element-objectsrg (jjXAhttp://docs.python.org/3/library/xml.dom.html#dom-element-objectsXElement Objectstrh X 25interactiveri (jjX6http://docs.python.org/3/whatsnew/2.5.html#interactiveXInteractive Interpreter Changestrj Xdiffer-objectsrk (jjX<http://docs.python.org/3/library/difflib.html#differ-objectsXDiffer Objectstrl Xinst-splitting-uprm (jjX=http://docs.python.org/3/install/index.html#inst-splitting-upXSplitting the job uptrn Xtut-conditionsro (jjXDhttp://docs.python.org/3/tutorial/datastructures.html#tut-conditionsXMore on Conditionstrp X api-embeddingrq (jjX7http://docs.python.org/3/c-api/intro.html#api-embeddingXEmbedding Pythontrr Xurllib-request-examplesrs (jjXLhttp://docs.python.org/3/library/urllib.request.html#urllib-request-examplesXExamplestrt Xscripts-pyvenvru (jjX:http://docs.python.org/3/using/scripts.html#scripts-pyvenvX&pyvenv - Creating virtual environmentstrv Xdebugger-aliasesrw (jjX:http://docs.python.org/3/library/pdb.html#debugger-aliasesX-trx Xlambdary (jjX:http://docs.python.org/3/reference/expressions.html#lambdaXLambdastrz Xfnmor{ (jjX3http://docs.python.org/3/reference/import.html#fnmoX-tr| Xbuildingr} (jjX9http://docs.python.org/3/extending/building.html#buildingX,Building C and C++ Extensions with distutilstr~ Xcontext-managersr (jjXBhttp://docs.python.org/3/reference/datamodel.html#context-managersXWith Statement Context Managerstr X other-tokensr (jjXEhttp://docs.python.org/3/reference/lexical_analysis.html#other-tokensX Other tokenstr X listobjectsr (jjX4http://docs.python.org/3/c-api/list.html#listobjectsX List Objectstr Ximport-mod-attrsr (jjX?http://docs.python.org/3/reference/import.html#import-mod-attrsX Import-related module attributestr Xfile-handler-objectsr (jjXIhttp://docs.python.org/3/library/urllib.request.html#file-handler-objectsXFileHandler Objectstr X match-objectsr (jjX6http://docs.python.org/3/library/re.html#match-objectsX Match Objectstr X tut-whatnowr (jjX:http://docs.python.org/3/tutorial/whatnow.html#tut-whatnowX What Now?tr X new-emailr (jjX4http://docs.python.org/3/whatsnew/3.3.html#new-emailXemailtr Xposix-contentsr (jjX:http://docs.python.org/3/library/posix.html#posix-contentsXNotable Module Contentstr Xwithr (jjX;http://docs.python.org/3/reference/compound_stmts.html#withXThe with statementtr Xusing-on-envvarsr (jjX<http://docs.python.org/3/using/cmdline.html#using-on-envvarsXEnvironment variablestr Xwriter-interfacer (jjX@http://docs.python.org/3/library/formatter.html#writer-interfaceXThe Writer Interfacetr Xunittest-sectionr (jjX;http://docs.python.org/3/whatsnew/2.7.html#unittest-sectionXUpdated module: unittesttr X tut-stringsr (jjX?http://docs.python.org/3/tutorial/introduction.html#tut-stringsXStringstr Xzipinfo-objectsr (jjX=http://docs.python.org/3/library/zipfile.html#zipinfo-objectsXZipInfo Objectstr Xctypes-loading-shared-librariesr (jjXLhttp://docs.python.org/3/library/ctypes.html#ctypes-loading-shared-librariesXLoading shared librariestr Xasr (jjX9http://docs.python.org/3/reference/compound_stmts.html#asXThe with statementtr Xattributes-ns-objectsr (jjXJhttp://docs.python.org/3/library/xml.sax.reader.html#attributes-ns-objectsXThe AttributesNS Interfacetr Xtut-internet-accessr (jjXAhttp://docs.python.org/3/tutorial/stdlib.html#tut-internet-accessXInternet Accesstr Xpep-405r (jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-405XPEP 405: Virtual Environmentstr X importingr (jjX4http://docs.python.org/3/c-api/import.html#importingXImporting Modulestr X functionsr (jjX6http://docs.python.org/3/library/winreg.html#functionsX Functionstr X csv-examplesr (jjX6http://docs.python.org/3/library/csv.html#csv-examplesXExamplestr Xtut-moremodulesr (jjX>http://docs.python.org/3/tutorial/modules.html#tut-moremodulesXMore on Modulestr Xtext-transformsr (jjX<http://docs.python.org/3/library/codecs.html#text-transformsXText Transformstr X binaryseqr (jjX8http://docs.python.org/3/library/stdtypes.html#binaryseqX6Binary Sequence Types --- bytes, bytearray, memoryviewtr Xtut-instanceobjectsr (jjXBhttp://docs.python.org/3/tutorial/classes.html#tut-instanceobjectsXInstance Objectstr X tut-fp-errorr (jjXAhttp://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-errorXRepresentation Errortr X msi-directoryr (jjX:http://docs.python.org/3/library/msilib.html#msi-directoryXDirectory Objectstr Xgenexprr (jjX;http://docs.python.org/3/reference/expressions.html#genexprXGenerator expressionstr Xfunc-strr (jjX8http://docs.python.org/3/library/functions.html#func-strX-tr Xtut-classdefinitionr (jjXBhttp://docs.python.org/3/tutorial/classes.html#tut-classdefinitionXClass Definition Syntaxtr Xcontent-handler-objectsr (jjXMhttp://docs.python.org/3/library/xml.sax.handler.html#content-handler-objectsXContentHandler Objectstr Xelser (jjX;http://docs.python.org/3/reference/compound_stmts.html#elseXThe if statementtr X,optparse-querying-manipulating-option-parserr (jjX[http://docs.python.org/3/library/optparse.html#optparse-querying-manipulating-option-parserX,Querying and manipulating your option parsertr Xctypes-type-conversionsr (jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-type-conversionsXType conversionstr Xextending-distutilsr (jjXEhttp://docs.python.org/3/distutils/extending.html#extending-distutilsXExtending Distutilstr Xwhatsnew34-win-cert-storer (jjXDhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew34-win-cert-storeX-tr Xcallsr (jjX9http://docs.python.org/3/reference/expressions.html#callsXCallstr Xpep-314r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-314X3PEP 314: Metadata for Python Software Packages v1.1tr X bytes-methodsr (jjX<http://docs.python.org/3/library/stdtypes.html#bytes-methodsXBytes and Bytearray Operationstr Xoperator-summaryr (jjXDhttp://docs.python.org/3/reference/expressions.html#operator-summaryXOperator precedencetr Xstringsr (jjX@http://docs.python.org/3/reference/lexical_analysis.html#stringsXString and Bytes literalstr uXc:memberr }r (XPy_buffer.internalr (jjX?http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.internalX-tr XPyModuleDef.m_reloadr (jjXAhttp://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_reloadX-tr X#PySequenceMethods.sq_inplace_concatr (jjXQhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_concatX-tr XPyTypeObject.tp_descr_setr (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_descr_setX-tr XPyObject.ob_typer (jjX>http://docs.python.org/3/c-api/typeobj.html#c.PyObject.ob_typeX-tr XPyModuleDef.m_namer (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_nameX-tr XPySequenceMethods.sq_concatr (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_concatX-tr XPy_buffer.itemsizer (jjX?http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.itemsizeX-tr XPyModuleDef.m_docr (jjX>http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_docX-tr XPyTypeObject.tp_weaklistr (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_weaklistX-tr XPyTypeObject.tp_freer (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_freeX-tr XPy_buffer.shaper (jjX<http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.shapeX-tr XPyTypeObject.tp_getattror (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getattroX-tr XPy_buffer.stridesr (jjX>http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.stridesX-tr X tp_as_mappingr (jjX;http://docs.python.org/3/c-api/typeobj.html#c.tp_as_mappingX-tr XPyModuleDef.m_sizer (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_sizeX-tr X Py_buffer.bufr (jjX:http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.bufX-tr XPyTypeObject.tp_freesr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_freesX-tr XPySequenceMethods.sq_lengthr (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_lengthX-tr XPySequenceMethods.sq_ass_itemr (jjXKhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_ass_itemX-tr XPyTypeObject.tp_initr (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_initX-tr X#PySequenceMethods.sq_inplace_repeatr (jjXQhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_repeatX-tr XPyTypeObject.tp_basicsizer (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_basicsizeX-tr XPyTypeObject.tp_itemsizer (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_itemsizeX-tr XPyModuleDef.m_traverser (jjXChttp://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_traverseX-tr XPyTypeObject.tp_membersr (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_membersX-tr XPy_buffer.readonlyr (jjX?http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.readonlyX-tr XPyTypeObject.tp_reservedr (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_reservedX-tr XPyTypeObject.tp_printr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_printX-tr XPyTypeObject.tp_traverser (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_traverseX-tr XPyModuleDef.m_methodsr (jjXBhttp://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_methodsX-tr XPyTypeObject.tp_dictr (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_dictX-tr XPyTypeObject.tp_basesr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_basesX-tr XPyVarObject.ob_sizer (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyVarObject.ob_sizeX-tr XPyMappingMethods.mp_lengthr (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_lengthX-tr XPyTypeObject.tp_allocr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_allocX-tr XPyTypeObject.tp_docr (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_docX-tr X Py_buffer.lenr! (jjX:http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.lenX-tr" XPyTypeObject.tp_clearr# (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_clearX-tr$ XPyTypeObject.tp_setattror% (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_setattroX-tr& XPySequenceMethods.sq_repeatr' (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_repeatX-tr( XPyModuleDef.m_baser) (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_baseX-tr* XPyBufferProcs.bf_releasebufferr+ (jjXLhttp://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_releasebufferX-tr, XPyTypeObject.tp_getsetr- (jjXDhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getsetX-tr. XPyModuleDef.m_freer/ (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_freeX-tr0 XPyTypeObject.tp_newr1 (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_newX-tr2 XPyTypeObject.tp_hashr3 (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_hashX-tr4 XPyTypeObject.tp_subclassesr5 (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_subclassesX-tr6 XPyTypeObject.tp_baser7 (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_baseX-tr8 XPyObject._ob_nextr9 (jjX?http://docs.python.org/3/c-api/typeobj.html#c.PyObject._ob_nextX-tr: X!PyMappingMethods.mp_ass_subscriptr; (jjXOhttp://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_ass_subscriptX-tr< X Py_buffer.objr= (jjX:http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.objX-tr> XPySequenceMethods.sq_containsr? (jjXKhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_containsX-tr@ XPyTypeObject.tp_weaklistoffsetrA (jjXLhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_weaklistoffsetX-trB XPyTypeObject.tp_deallocrC (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_deallocX-trD XPyModuleDef.m_clearrE (jjX@http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_clearX-trF XPyTypeObject.tp_iterrG (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_iterX-trH XPyTypeObject.tp_descr_getrI (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_descr_getX-trJ XPyObject.ob_refcntrK (jjX@http://docs.python.org/3/c-api/typeobj.html#c.PyObject.ob_refcntX-trL XPyTypeObject.tp_allocsrM (jjXDhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_allocsX-trN XPyTypeObject.tp_richcomparerO (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_richcompareX-trP XPyTypeObject.tp_reprrQ (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_reprX-trR XPyBufferProcs.bf_getbufferrS (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_getbufferX-trT XPyTypeObject.tp_dictoffsetrU (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_dictoffsetX-trV XPyObject._ob_prevrW (jjX?http://docs.python.org/3/c-api/typeobj.html#c.PyObject._ob_prevX-trX XPyTypeObject.tp_strrY (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_strX-trZ XPyTypeObject.tp_mror[ (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_mroX-tr\ XPyTypeObject.tp_as_bufferr] (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_as_bufferX-tr^ XPyTypeObject.tp_cacher_ (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_cacheX-tr` XPy_buffer.ndimra (jjX;http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.ndimX-trb XPyTypeObject.tp_iternextrc (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_iternextX-trd XPyTypeObject.tp_callre (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_callX-trf XPyTypeObject.tp_maxallocrg (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_maxallocX-trh XPyTypeObject.tp_nextri (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_nextX-trj X tp_as_numberrk (jjX:http://docs.python.org/3/c-api/typeobj.html#c.tp_as_numberX-trl XPyTypeObject.tp_finalizerm (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_finalizeX-trn XPyTypeObject.tp_getattrro (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getattrX-trp XPyTypeObject.tp_methodsrq (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_methodsX-trr XPyTypeObject.tp_setattrrs (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_setattrX-trt XPyTypeObject.tp_is_gcru (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_is_gcX-trv XPyTypeObject.tp_namerw (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_nameX-trx XPySequenceMethods.sq_itemry (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_itemX-trz XPy_buffer.suboffsetsr{ (jjXAhttp://docs.python.org/3/c-api/buffer.html#c.Py_buffer.suboffsetsX-tr| Xtp_as_sequencer} (jjX<http://docs.python.org/3/c-api/typeobj.html#c.tp_as_sequenceX-tr~ XPyTypeObject.tp_flagsr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_flagsX-tr XPy_buffer.formatr (jjX=http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.formatX-tr XPyMappingMethods.mp_subscriptr (jjXKhttp://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_subscriptX-tr uXpy:classr }r (Xhttp.cookiejar.LWPCookieJarr (jjXPhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.LWPCookieJarX-tr X nntplib.NNTPr (jjX:http://docs.python.org/3/library/nntplib.html#nntplib.NNTPX-tr X"http.server.BaseHTTPRequestHandlerr (jjXThttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandlerX-tr Xdatetime.timedeltar (jjXAhttp://docs.python.org/3/library/datetime.html#datetime.timedeltaX-tr Xprofile.Profiler (jjX=http://docs.python.org/3/library/profile.html#profile.ProfileX-tr Xurllib.request.HTTPHandlerr (jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandlerX-tr Xmsilib.Controlr (jjX;http://docs.python.org/3/library/msilib.html#msilib.ControlX-tr X"importlib.machinery.FrozenImporterr (jjXRhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FrozenImporterX-tr Xpkgutil.ImpImporterr (jjXAhttp://docs.python.org/3/library/pkgutil.html#pkgutil.ImpImporterX-tr X"unittest.mock.NonCallableMagicMockr (jjXVhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMagicMockX-tr X#urllib.request.HTTPBasicAuthHandlerr (jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandlerX-tr Xinspect.Parameterr (jjX?http://docs.python.org/3/library/inspect.html#inspect.ParameterX-tr Xcollections.abc.Iteratorr (jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.IteratorX-tr Xinspect.Signaturer (jjX?http://docs.python.org/3/library/inspect.html#inspect.SignatureX-tr Xtkinter.ttk.Progressbarr (jjXIhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.ProgressbarX-tr Xmailbox.BabylMessager (jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessageX-tr Xcollections.abc.Sequencer (jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.SequenceX-tr Xasynchat.async_chatr (jjXBhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chatX-tr Xtypes.ModuleTyper (jjX<http://docs.python.org/3/library/types.html#types.ModuleTypeX-tr Xsocketserver.BaseServerr (jjXJhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServerX-tr Ximportlib.machinery.PathFinderr (jjXNhttp://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinderX-tr Xasyncore.dispatcherr (jjXBhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcherX-tr Xxml.dom.pulldom.DOMEventStreamr (jjXThttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStreamX-tr Xtkinter.ttk.Notebookr (jjXFhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.NotebookX-tr Xemail.parser.FeedParserr (jjXJhttp://docs.python.org/3/library/email.parser.html#email.parser.FeedParserX-tr X,email.headerregistry.ContentTransferEncodingr (jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTransferEncodingX-tr Xemail.message.MIMEPartr (jjXQhttp://docs.python.org/3/library/email.contentmanager.html#email.message.MIMEPartX-tr X"xml.sax.xmlreader.AttributesNSImplr (jjXWhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNSImplX-tr Xlistr (jjX3http://docs.python.org/3/library/stdtypes.html#listX-tr X shelve.Shelfr (jjX9http://docs.python.org/3/library/shelve.html#shelve.ShelfX-tr X multiprocessing.pool.AsyncResultr (jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResultX-tr Xasyncore.file_wrapperr (jjXDhttp://docs.python.org/3/library/asyncore.html#asyncore.file_wrapperX-tr X array.arrayr (jjX7http://docs.python.org/3/library/array.html#array.arrayX-tr Xlogging.handlers.SysLogHandlerr (jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandlerX-tr X numbers.Realr (jjX:http://docs.python.org/3/library/numbers.html#numbers.RealX-tr Xurllib.request.ProxyHandlerr (jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyHandlerX-tr Xcollections.abc.MappingViewr (jjXQhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MappingViewX-tr Xsubprocess.Popenr (jjXAhttp://docs.python.org/3/library/subprocess.html#subprocess.PopenX-tr X%xmlrpc.server.CGIXMLRPCRequestHandlerr (jjXYhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandlerX-tr Xcollections.abc.Containerr (jjXOhttp://docs.python.org/3/library/collections.abc.html#collections.abc.ContainerX-tr Xtkinter.tix.StdButtonBoxr (jjXJhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.StdButtonBoxX-tr Xwsgiref.handlers.CGIHandlerr (jjXIhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.CGIHandlerX-tr Xwsgiref.handlers.SimpleHandlerr (jjXLhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.SimpleHandlerX-tr Xtkinter.tix.tixCommandr (jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommandX-tr Xos.terminal_sizer (jjX9http://docs.python.org/3/library/os.html#os.terminal_sizeX-tr Xpprint.PrettyPrinterr (jjXAhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinterX-tr X lzma.LZMAFiler (jjX8http://docs.python.org/3/library/lzma.html#lzma.LZMAFileX-tr X logging.handlers.DatagramHandlerr (jjXWhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandlerX-tr Xdecimal.DefaultContextr (jjXDhttp://docs.python.org/3/library/decimal.html#decimal.DefaultContextX-tr Xurllib.request.DataHandlerr (jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandlerX-tr X#distutils.command.build_py.build_pyr (jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.command.build_py.build_pyX-tr Xcalendar.LocaleTextCalendarr (jjXJhttp://docs.python.org/3/library/calendar.html#calendar.LocaleTextCalendarX-tr Xmultiprocessing.Connectionr (jjXPhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ConnectionX-tr X chunk.Chunkr (jjX7http://docs.python.org/3/library/chunk.html#chunk.ChunkX-tr Ximportlib.abc.ExecutionLoaderr (jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.ExecutionLoaderX-tr Xctypes.c_longdoubler (jjX@http://docs.python.org/3/library/ctypes.html#ctypes.c_longdoubleX-tr Xasyncio.StreamWriterr (jjXIhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriterX-tr X%urllib.request.ProxyDigestAuthHandlerr (jjXZhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyDigestAuthHandlerX-tr Xxml.sax.handler.ContentHandlerr (jjXThttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandlerX-tr Xtypes.SimpleNamespacer (jjXAhttp://docs.python.org/3/library/types.html#types.SimpleNamespaceX-tr X!xml.etree.ElementTree.TreeBuilderr (jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilderX-trXio.BufferedRWPairr(jjX:http://docs.python.org/3/library/io.html#io.BufferedRWPairX-trX$multiprocessing.managers.SyncManagerr(jjXZhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManagerX-trXtkinter.tix.Tkr(jjX@http://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.TkX-trXmultiprocessing.SimpleQueuer(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueueX-trXnumbers.Numberr (jjX<http://docs.python.org/3/library/numbers.html#numbers.NumberX-tr Xtkinter.tix.DirTreer (jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirTreeX-tr Xipaddress.IPv4Interfacer (jjXGhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4InterfaceX-trX dis.Bytecoder(jjX6http://docs.python.org/3/library/dis.html#dis.BytecodeX-trXmsilib.Featurer(jjX;http://docs.python.org/3/library/msilib.html#msilib.FeatureX-trXconcurrent.futures.Futurer(jjXRhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.FutureX-trXcodeop.CommandCompilerr(jjXChttp://docs.python.org/3/library/codeop.html#codeop.CommandCompilerX-trXdoctest.DocTestRunnerr(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunnerX-trXtracemalloc.Snapshotr(jjXFhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.SnapshotX-trXdecimal.Roundedr(jjX=http://docs.python.org/3/library/decimal.html#decimal.RoundedX-trXthreading.BoundedSemaphorer(jjXJhttp://docs.python.org/3/library/threading.html#threading.BoundedSemaphoreX-trXemail.parser.BytesFeedParserr(jjXOhttp://docs.python.org/3/library/email.parser.html#email.parser.BytesFeedParserX-tr Xtracemalloc.StatisticDiffr!(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiffX-tr"X asyncio.Eventr#(jjX@http://docs.python.org/3/library/asyncio-sync.html#asyncio.EventX-tr$Xformatter.AbstractWriterr%(jjXHhttp://docs.python.org/3/library/formatter.html#formatter.AbstractWriterX-tr&Xctypes.c_char_pr'(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_char_pX-tr(Xcollections.abc.KeysViewr)(jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.KeysViewX-tr*X ctypes.c_uintr+(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_uintX-tr,Xlogging.StreamHandlerr-(jjXLhttp://docs.python.org/3/library/logging.handlers.html#logging.StreamHandlerX-tr.Xhtml.parser.HTMLParserr/(jjXHhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParserX-tr0Xfileinput.FileInputr1(jjXChttp://docs.python.org/3/library/fileinput.html#fileinput.FileInputX-tr2Ximaplib.IMAP4_SSLr3(jjX?http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4_SSLX-tr4Xssl.SSLContextr5(jjX8http://docs.python.org/3/library/ssl.html#ssl.SSLContextX-tr6Xemail.generator.Generatorr7(jjXOhttp://docs.python.org/3/library/email.generator.html#email.generator.GeneratorX-tr8Xtime.struct_timer9(jjX;http://docs.python.org/3/library/time.html#time.struct_timeX-tr:Xasyncio.SubprocessProtocolr;(jjXQhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocolX-tr<Xtkinter.tix.DirSelectDialogr=(jjXMhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirSelectDialogX-tr>Xtkinter.tix.TListr?(jjXChttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.TListX-tr@Xshelve.DbfilenameShelfrA(jjXChttp://docs.python.org/3/library/shelve.html#shelve.DbfilenameShelfX-trBXvenv.EnvBuilderrC(jjX:http://docs.python.org/3/library/venv.html#venv.EnvBuilderX-trDXtkinter.tix.NoteBookrE(jjXFhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.NoteBookX-trFX(xmlrpc.server.SimpleXMLRPCRequestHandlerrG(jjX\http://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCRequestHandlerX-trHXxml.etree.ElementTree.ElementrI(jjXYhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementX-trJXthreading.TimerrK(jjX?http://docs.python.org/3/library/threading.html#threading.TimerX-trLXdistutils.ccompiler.CCompilerrM(jjXLhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompilerX-trNXmodulefinder.ModuleFinderrO(jjXLhttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinderX-trPXurllib.request.URLopenerrQ(jjXMhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopenerX-trRXcollections.abc.SetrS(jjXIhttp://docs.python.org/3/library/collections.abc.html#collections.abc.SetX-trTXmultiprocessing.LockrU(jjXJhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.LockX-trVXthreading.BarrierrW(jjXAhttp://docs.python.org/3/library/threading.html#threading.BarrierX-trXXtracemalloc.FilterrY(jjXDhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.FilterX-trZX test.support.EnvironmentVarGuardr[(jjXKhttp://docs.python.org/3/library/test.html#test.support.EnvironmentVarGuardX-tr\X ftplib.FTPr](jjX7http://docs.python.org/3/library/ftplib.html#ftplib.FTPX-tr^Xmailbox.MMDFMessager_(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessageX-tr`Xos.sched_paramra(jjX7http://docs.python.org/3/library/os.html#os.sched_paramX-trbX mailbox.MHrc(jjX8http://docs.python.org/3/library/mailbox.html#mailbox.MHX-trdXnntplib.NNTP_SSLre(jjX>http://docs.python.org/3/library/nntplib.html#nntplib.NNTP_SSLX-trfXdatetime.timezonerg(jjX@http://docs.python.org/3/library/datetime.html#datetime.timezoneX-trhXemail.mime.message.MIMEMessageri(jjXOhttp://docs.python.org/3/library/email.mime.html#email.mime.message.MIMEMessageX-trjXctypes.c_void_prk(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_void_pX-trlXxml.dom.pulldom.SAX2DOMrm(jjXMhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.SAX2DOMX-trnXemail.headerregistry.BaseHeaderro(jjXZhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeaderX-trpX&concurrent.futures.ProcessPoolExecutorrq(jjX_http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutorX-trrXtkinter.ttk.Stylers(jjXChttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.StyleX-trtX&argparse.ArgumentDefaultsHelpFormatterru(jjXUhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentDefaultsHelpFormatterX-trvXimportlib.abc.FileLoaderrw(jjXHhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoaderX-trxXturtle.RawTurtlery(jjX=http://docs.python.org/3/library/turtle.html#turtle.RawTurtleX-trzXunittest.TestCaser{(jjX@http://docs.python.org/3/library/unittest.html#unittest.TestCaseX-tr|Xurllib.request.Requestr}(jjXKhttp://docs.python.org/3/library/urllib.request.html#urllib.request.RequestX-tr~X xml.sax.xmlreader.AttributesImplr(jjXUhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesImplX-trXthreading.Eventr(jjX?http://docs.python.org/3/library/threading.html#threading.EventX-trXemail.headerregistry.Addressr(jjXWhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressX-trXcollections.abc.MutableSequencer(jjXUhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MutableSequenceX-trXasyncio.Semaphorer(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.SemaphoreX-trXpathlib.WindowsPathr(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.WindowsPathX-trXlogging.NullHandlerr(jjXJhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandlerX-trX"logging.handlers.NTEventLogHandlerr(jjXYhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandlerX-trX csv.excelr(jjX3http://docs.python.org/3/library/csv.html#csv.excelX-trXcsv.unix_dialectr(jjX:http://docs.python.org/3/library/csv.html#csv.unix_dialectX-trX pstats.Statsr(jjX:http://docs.python.org/3/library/profile.html#pstats.StatsX-trXasyncio.StreamReaderr(jjXIhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReaderX-trXurllib.parse.ParseResultBytesr(jjXPhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResultBytesX-trXurllib.parse.DefragResultBytesr(jjXQhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResultBytesX-trXtkinter.tix.CheckListr(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.CheckListX-trXmailbox.MHMessager(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MHMessageX-trXdoctest.Exampler(jjX=http://docs.python.org/3/library/doctest.html#doctest.ExampleX-trX turtle.Shaper(jjX9http://docs.python.org/3/library/turtle.html#turtle.ShapeX-trX'urllib.request.AbstractBasicAuthHandlerr(jjX\http://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractBasicAuthHandlerX-trX tkinter.Tkr(jjX8http://docs.python.org/3/library/tkinter.html#tkinter.TkX-trXsqlite3.Connectionr(jjX@http://docs.python.org/3/library/sqlite3.html#sqlite3.ConnectionX-trXpathlib.PurePosixPathr(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePosixPathX-trXdecimal.Contextr(jjX=http://docs.python.org/3/library/decimal.html#decimal.ContextX-trXconfigparser.ConfigParserr(jjXLhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParserX-trXdistutils.core.Distributionr(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.core.DistributionX-trXtkinter.tix.ExFileSelectBoxr(jjXMhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ExFileSelectBoxX-trXxmlrpc.client.MultiCallr(jjXKhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.MultiCallX-trX turtle.Screenr(jjX:http://docs.python.org/3/library/turtle.html#turtle.ScreenX-trXbdb.Breakpointr(jjX8http://docs.python.org/3/library/bdb.html#bdb.BreakpointX-trXctypes.py_objectr(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.py_objectX-trX-email.headerregistry.ContentDispositionHeaderr(jjXhhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentDispositionHeaderX-trX)importlib.machinery.WindowsRegistryFinderr(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.machinery.WindowsRegistryFinderX-trX reprlib.Reprr(jjX:http://docs.python.org/3/library/reprlib.html#reprlib.ReprX-trXasyncio.Futurer(jjXAhttp://docs.python.org/3/library/asyncio-task.html#asyncio.FutureX-trXtest.support.WarningsRecorderr(jjXHhttp://docs.python.org/3/library/test.html#test.support.WarningsRecorderX-trXdecimal.BasicContextr(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.BasicContextX-trXctypes.c_size_tr(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_size_tX-trXemail.header.Headerr(jjXFhttp://docs.python.org/3/library/email.header.html#email.header.HeaderX-trX#xml.sax.xmlreader.IncrementalParserr(jjXXhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParserX-trXtkinter.tix.Meterr(jjXChttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.MeterX-trXoptparse.OptionParserr(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.OptionParserX-trX ctypes.c_charr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_charX-trXtkinter.tix.LabelEntryr(jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.LabelEntryX-trXhttp.client.HTTPSConnectionr(jjXMhttp://docs.python.org/3/library/http.client.html#http.client.HTTPSConnectionX-trX abc.ABCMetar(jjX5http://docs.python.org/3/library/abc.html#abc.ABCMetaX-trXlzma.LZMACompressorr(jjX>http://docs.python.org/3/library/lzma.html#lzma.LZMACompressorX-trX ctypes.c_intr(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.c_intX-trXxml.sax.saxutils.XMLFilterBaser(jjXRhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLFilterBaseX-trXdistutils.cmd.Commandr(jjXDhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.CommandX-trXmultiprocessing.Barrierr(jjXMhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.BarrierX-trXsmtpd.SMTPServerr(jjX<http://docs.python.org/3/library/smtpd.html#smtpd.SMTPServerX-trX mailbox.mboxr(jjX:http://docs.python.org/3/library/mailbox.html#mailbox.mboxX-trX msilib.Dialogr(jjX:http://docs.python.org/3/library/msilib.html#msilib.DialogX-trX!argparse.MetavarTypeHelpFormatterr(jjXPhttp://docs.python.org/3/library/argparse.html#argparse.MetavarTypeHelpFormatterX-trXcodecs.IncrementalDecoderr(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoderX-trXlogging.handlers.SocketHandlerr(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandlerX-trX#multiprocessing.connection.Listenerr(jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.ListenerX-trXturtle.TurtleScreenr(jjX@http://docs.python.org/3/library/turtle.html#turtle.TurtleScreenX-trXjson.JSONEncoderr(jjX;http://docs.python.org/3/library/json.html#json.JSONEncoderX-trX turtle.Vec2Dr(jjX9http://docs.python.org/3/library/turtle.html#turtle.Vec2DX-trXhttp.cookiejar.CookiePolicyr(jjXPhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicyX-trXcsv.DictReaderr(jjX8http://docs.python.org/3/library/csv.html#csv.DictReaderX-trXdifflib.HtmlDiffr(jjX>http://docs.python.org/3/library/difflib.html#difflib.HtmlDiffX-trXemail.mime.base.MIMEBaser(jjXIhttp://docs.python.org/3/library/email.mime.html#email.mime.base.MIMEBaseX-trXtracemalloc.Tracebackr(jjXGhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.TracebackX-trXctypes.HRESULTr(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.HRESULTX-trXtkinter.tix.PanedWindowr(jjXIhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.PanedWindowX-trX test.support.SuppressCrashReportr(jjXKhttp://docs.python.org/3/library/test.html#test.support.SuppressCrashReportX-trXimportlib.abc.PathEntryFinderr(jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinderX-trXcollections.abc.Iterabler (jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.IterableX-tr Xunittest.TestLoaderr (jjXBhttp://docs.python.org/3/library/unittest.html#unittest.TestLoaderX-tr Xio.BufferedReaderr (jjX:http://docs.python.org/3/library/io.html#io.BufferedReaderX-trXmultiprocessing.Processr(jjXMhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ProcessX-trXstring.Formatterr(jjX=http://docs.python.org/3/library/string.html#string.FormatterX-trX weakref.refr(jjX9http://docs.python.org/3/library/weakref.html#weakref.refX-trXcode.InteractiveConsoler(jjXBhttp://docs.python.org/3/library/code.html#code.InteractiveConsoleX-trX)logging.handlers.TimedRotatingFileHandlerr(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandlerX-trXselectors.DefaultSelectorr(jjXIhttp://docs.python.org/3/library/selectors.html#selectors.DefaultSelectorX-trXpathlib.PureWindowsPathr(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PureWindowsPathX-trXturtle.ScrolledCanvasr(jjXBhttp://docs.python.org/3/library/turtle.html#turtle.ScrolledCanvasX-trX%distutils.command.bdist_msi.bdist_msir(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.command.bdist_msi.bdist_msiX-tr X(importlib.machinery.SourcelessFileLoaderr!(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoaderX-tr"Xzipfile.PyZipFiler#(jjX?http://docs.python.org/3/library/zipfile.html#zipfile.PyZipFileX-tr$Xthreading.Lockr%(jjX>http://docs.python.org/3/library/threading.html#threading.LockX-tr&Xmsilib.RadioButtonGroupr'(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.RadioButtonGroupX-tr(Xcontextlib.ExitStackr)(jjXEhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStackX-tr*X imaplib.IMAP4r+(jjX;http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4X-tr,Xlogging.handlers.MemoryHandlerr-(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandlerX-tr.Xjson.JSONDecoderr/(jjX;http://docs.python.org/3/library/json.html#json.JSONDecoderX-tr0X&email.headerregistry.ContentTypeHeaderr1(jjXahttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeaderX-tr2Xnumbers.Rationalr3(jjX>http://docs.python.org/3/library/numbers.html#numbers.RationalX-tr4X(wsgiref.simple_server.WSGIRequestHandlerr5(jjXVhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandlerX-tr6Xcollections.abc.ItemsViewr7(jjXOhttp://docs.python.org/3/library/collections.abc.html#collections.abc.ItemsViewX-tr8Xtracemalloc.Framer9(jjXChttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.FrameX-tr:Xdecimal.DecimalExceptionr;(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.DecimalExceptionX-tr<Xasyncio.Protocolr=(jjXGhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.ProtocolX-tr>Xftplib.FTP_TLSr?(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLSX-tr@Xhttp.cookies.SimpleCookierA(jjXLhttp://docs.python.org/3/library/http.cookies.html#http.cookies.SimpleCookieX-trBXcollections.abc.CallablerC(jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.CallableX-trDXdistutils.core.ExtensionrE(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.core.ExtensionX-trFXtest.support.TransientResourcerG(jjXIhttp://docs.python.org/3/library/test.html#test.support.TransientResourceX-trHXlogging.handlers.SMTPHandlerrI(jjXShttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandlerX-trJX(xmlrpc.server.DocCGIXMLRPCRequestHandlerrK(jjX\http://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandlerX-trLXformatter.NullFormatterrM(jjXGhttp://docs.python.org/3/library/formatter.html#formatter.NullFormatterX-trNX'importlib.machinery.ExtensionFileLoaderrO(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoaderX-trPXxml.sax.xmlreader.LocatorrQ(jjXNhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.LocatorX-trRXdistutils.core.CommandrS(jjXEhttp://docs.python.org/3/distutils/apiref.html#distutils.core.CommandX-trTXio.TextIOWrapperrU(jjX9http://docs.python.org/3/library/io.html#io.TextIOWrapperX-trVXwsgiref.handlers.BaseHandlerrW(jjXJhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandlerX-trXXinspect.BoundArgumentsrY(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.BoundArgumentsX-trZXdecimal.Clampedr[(jjX=http://docs.python.org/3/library/decimal.html#decimal.ClampedX-tr\Xunittest.mock.NonCallableMockr](jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMockX-tr^X&urllib.request.HTTPDefaultErrorHandlerr_(jjX[http://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDefaultErrorHandlerX-tr`Xurllib.request.HTTPSHandlerra(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPSHandlerX-trbXasyncio.DatagramProtocolrc(jjXOhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramProtocolX-trdXimaplib.IMAP4_streamre(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4_streamX-trfX xmlrpc.server.SimpleXMLRPCServerrg(jjXThttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServerX-trhX turtle.RawPenri(jjX:http://docs.python.org/3/library/turtle.html#turtle.RawPenX-trjX"multiprocessing.managers.BaseProxyrk(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxyX-trlXctypes.BigEndianStructurerm(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes.BigEndianStructureX-trnXweakref.WeakKeyDictionaryro(jjXGhttp://docs.python.org/3/library/weakref.html#weakref.WeakKeyDictionaryX-trpXemail.policy.EmailPolicyrq(jjXKhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicyX-trrXxml.sax.handler.EntityResolverrs(jjXThttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.EntityResolverX-trtXhttp.cookies.BaseCookieru(jjXJhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookieX-trvXweakref.finalizerw(jjX>http://docs.python.org/3/library/weakref.html#weakref.finalizeX-trxXcollections.UserDictry(jjXFhttp://docs.python.org/3/library/collections.html#collections.UserDictX-trzXpipes.Templater{(jjX:http://docs.python.org/3/library/pipes.html#pipes.TemplateX-tr|Xctypes.LibraryLoaderr}(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes.LibraryLoaderX-tr~X"urllib.request.HTTPCookieProcessorr(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPCookieProcessorX-trXsmtpd.MailmanProxyr(jjX>http://docs.python.org/3/library/smtpd.html#smtpd.MailmanProxyX-trXmailbox.Maildirr(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MaildirX-trXwsgiref.util.FileWrapperr(jjXFhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.FileWrapperX-trXcollections.abc.Mappingr(jjXMhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MappingX-trXstrr(jjX2http://docs.python.org/3/library/stdtypes.html#strX-trXtkinter.tix.InputOnlyr(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.InputOnlyX-trXsmtpd.SMTPChannelr(jjX=http://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannelX-trXimp.NullImporterr(jjX:http://docs.python.org/3/library/imp.html#imp.NullImporterX-trXsymtable.Functionr(jjX@http://docs.python.org/3/library/symtable.html#symtable.FunctionX-trX#email.headerregistry.HeaderRegistryr(jjX^http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistryX-trX$http.server.SimpleHTTPRequestHandlerr(jjXVhttp://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandlerX-trXmultiprocessing.JoinableQueuer(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueueX-trXpoplib.POP3_SSLr(jjX<http://docs.python.org/3/library/poplib.html#poplib.POP3_SSLX-trXipaddress.IPv4Addressr(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4AddressX-trXtkinter.tix.ButtonBoxr(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ButtonBoxX-trXtkinter.tix.ListNoteBookr(jjXJhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ListNoteBookX-trX&email.mime.application.MIMEApplicationr(jjXWhttp://docs.python.org/3/library/email.mime.html#email.mime.application.MIMEApplicationX-trXconcurrent.futures.Executorr(jjXThttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ExecutorX-trXio.BufferedWriterr(jjX:http://docs.python.org/3/library/io.html#io.BufferedWriterX-trXpdb.Pdbr(jjX1http://docs.python.org/3/library/pdb.html#pdb.PdbX-trXtkinter.tix.OptionMenur(jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.OptionMenuX-trXemail.policy.Policyr(jjXFhttp://docs.python.org/3/library/email.policy.html#email.policy.PolicyX-trX datetime.dater(jjX<http://docs.python.org/3/library/datetime.html#datetime.dateX-trXtupler(jjX4http://docs.python.org/3/library/stdtypes.html#tupleX-trXcollections.UserListr(jjXFhttp://docs.python.org/3/library/collections.html#collections.UserListX-trX datetime.timer(jjX<http://docs.python.org/3/library/datetime.html#datetime.timeX-trXurllib.request.OpenerDirectorr(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirectorX-trXbz2.BZ2Compressorr(jjX;http://docs.python.org/3/library/bz2.html#bz2.BZ2CompressorX-trXdis.Instructionr(jjX9http://docs.python.org/3/library/dis.html#dis.InstructionX-trX multiprocessing.BoundedSemaphorer(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.BoundedSemaphoreX-trXnumbers.Integralr(jjX>http://docs.python.org/3/library/numbers.html#numbers.IntegralX-trX ctypes.c_byter(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_byteX-trXctypes.c_int16r(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_int16X-trXzipfile.ZipFiler(jjX=http://docs.python.org/3/library/zipfile.html#zipfile.ZipFileX-trXselectors.BaseSelectorr(jjXFhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelectorX-trXipaddress.IPv4Networkr(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4NetworkX-trX ctypes.c_boolr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_boolX-trXemail.headerregistry.DateHeaderr(jjXZhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.DateHeaderX-trX$importlib.machinery.SourceFileLoaderr(jjXThttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoaderX-trXcalendar.Calendarr(jjX@http://docs.python.org/3/library/calendar.html#calendar.CalendarX-trXasyncio.Conditionr(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.ConditionX-trX#importlib.machinery.BuiltinImporterr(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.BuiltinImporterX-trXformatter.AbstractFormatterr(jjXKhttp://docs.python.org/3/library/formatter.html#formatter.AbstractFormatterX-trXemail.message.EmailMessager(jjXUhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessageX-trXdecimal.Decimalr(jjX=http://docs.python.org/3/library/decimal.html#decimal.DecimalX-trXthreading.localr(jjX?http://docs.python.org/3/library/threading.html#threading.localX-trXimportlib.abc.MetaPathFinderr(jjXLhttp://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinderX-trXtkinter.tix.Controlr(jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ControlX-trXasyncore.file_dispatcherr(jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.file_dispatcherX-trXsetr(jjX2http://docs.python.org/3/library/stdtypes.html#setX-trXmultiprocessing.Eventr(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.EventX-trXxdrlib.Unpackerr(jjX<http://docs.python.org/3/library/xdrlib.html#xdrlib.UnpackerX-trX"email.mime.multipart.MIMEMultipartr(jjXShttp://docs.python.org/3/library/email.mime.html#email.mime.multipart.MIMEMultipartX-trXctypes.c_uint16r(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_uint16X-trXhttp.cookiejar.CookieJarr(jjXMhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJarX-trXmultiprocessing.RLockr(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.RLockX-trXimportlib.abc.SourceLoaderr(jjXJhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoaderX-trX"http.cookiejar.DefaultCookiePolicyr(jjXWhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicyX-trXcollections.abc.MutableSetr(jjXPhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MutableSetX-trXdoctest.DocTestr(jjX=http://docs.python.org/3/library/doctest.html#doctest.DocTestX-trXctypes.c_uint8r(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_uint8X-trXcodecs.StreamReaderr(jjX@http://docs.python.org/3/library/codecs.html#codecs.StreamReaderX-trXtkinter.tix.Treer(jjXBhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.TreeX-trX queue.Queuer(jjX7http://docs.python.org/3/library/queue.html#queue.QueueX-trXctypes._FuncPtrr(jjX<http://docs.python.org/3/library/ctypes.html#ctypes._FuncPtrX-trXdictr(jjX3http://docs.python.org/3/library/stdtypes.html#dictX-trXtextwrap.TextWrapperr(jjXChttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapperX-trXzipfile.ZipInfor(jjX=http://docs.python.org/3/library/zipfile.html#zipfile.ZipInfoX-trXctypes.c_ubyter (jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_ubyteX-tr Xqueue.PriorityQueuer (jjX?http://docs.python.org/3/library/queue.html#queue.PriorityQueueX-tr Xxmlrpc.server.DocXMLRPCServerr (jjXQhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServerX-trXpickle.Unpicklerr(jjX=http://docs.python.org/3/library/pickle.html#pickle.UnpicklerX-trXdecimal.Subnormalr(jjX?http://docs.python.org/3/library/decimal.html#decimal.SubnormalX-trXctypes.c_uint64r(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_uint64X-trXfunctools.partialmethodr(jjXGhttp://docs.python.org/3/library/functools.html#functools.partialmethodX-trXthreading.Conditionr(jjXChttp://docs.python.org/3/library/threading.html#threading.ConditionX-trXctypes.c_wcharr(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_wcharX-trXemail.mime.audio.MIMEAudior(jjXKhttp://docs.python.org/3/library/email.mime.html#email.mime.audio.MIMEAudioX-trXlogging.handlers.QueueListenerr(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListenerX-trX ctypes.CDLLr(jjX8http://docs.python.org/3/library/ctypes.html#ctypes.CDLLX-tr Xcollections.abc.MutableMappingr!(jjXThttp://docs.python.org/3/library/collections.abc.html#collections.abc.MutableMappingX-tr"Xurllib.parse.DefragResultr#(jjXLhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResultX-tr$Xtarfile.TarInfor%(jjX=http://docs.python.org/3/library/tarfile.html#tarfile.TarInfoX-tr&Xmsilib.Directoryr'(jjX=http://docs.python.org/3/library/msilib.html#msilib.DirectoryX-tr(Xasyncio.ReadTransportr)(jjXLhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.ReadTransportX-tr*Xhttp.cookiejar.MozillaCookieJarr+(jjXThttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.MozillaCookieJarX-tr,Xwarnings.catch_warningsr-(jjXFhttp://docs.python.org/3/library/warnings.html#warnings.catch_warningsX-tr.Xctypes.c_floatr/(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_floatX-tr0X xdrlib.Packerr1(jjX:http://docs.python.org/3/library/xdrlib.html#xdrlib.PackerX-tr2Xurllib.request.CacheFTPHandlerr3(jjXShttp://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandlerX-tr4Xtkinter.tix.PopupMenur5(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.PopupMenuX-tr6Xtkinter.tix.DirListr7(jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirListX-tr8Xtkinter.tix.HListr9(jjXChttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.HListX-tr:Xtkinter.tix.Formr;(jjXBhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.FormX-tr<Xasyncore.dispatcher_with_sendr=(jjXLhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher_with_sendX-tr>X ctypes.PyDLLr?(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.PyDLLX-tr@Xsymtable.SymbolTablerA(jjXChttp://docs.python.org/3/library/symtable.html#symtable.SymbolTableX-trBX csv.DialectrC(jjX5http://docs.python.org/3/library/csv.html#csv.DialectX-trDXurllib.request.BaseHandlerrE(jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandlerX-trFXurllib.request.HTTPPasswordMgrrG(jjXShttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrX-trHXemail.message.MessagerI(jjXIhttp://docs.python.org/3/library/email.message.html#email.message.MessageX-trJXcodecs.StreamWriterrK(jjX@http://docs.python.org/3/library/codecs.html#codecs.StreamWriterX-trLXcodecs.StreamReaderWriterrM(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamReaderWriterX-trNX ctypes.c_longrO(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_longX-trPXasyncio.PriorityQueuerQ(jjXHhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.PriorityQueueX-trRXhttp.client.HTTPConnectionrS(jjXLhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnectionX-trTX asyncio.QueuerU(jjX@http://docs.python.org/3/library/asyncio-sync.html#asyncio.QueueX-trVXselectors.SelectSelectorrW(jjXHhttp://docs.python.org/3/library/selectors.html#selectors.SelectSelectorX-trXXcollections.defaultdictrY(jjXIhttp://docs.python.org/3/library/collections.html#collections.defaultdictX-trZXdecimal.Inexactr[(jjX=http://docs.python.org/3/library/decimal.html#decimal.InexactX-tr\X&email.headerregistry.MIMEVersionHeaderr](jjXahttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeaderX-tr^X wsgiref.simple_server.WSGIServerr_(jjXNhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServerX-tr`X!http.server.CGIHTTPRequestHandlerra(jjXShttp://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandlerX-trbXmultiprocessing.Conditionrc(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ConditionX-trdX smtplib.SMTPre(jjX:http://docs.python.org/3/library/smtplib.html#smtplib.SMTPX-trfXio.IncrementalNewlineDecoderrg(jjXEhttp://docs.python.org/3/library/io.html#io.IncrementalNewlineDecoderX-trhX frozensetri(jjX8http://docs.python.org/3/library/stdtypes.html#frozensetX-trjXemail.mime.text.MIMETextrk(jjXIhttp://docs.python.org/3/library/email.mime.html#email.mime.text.MIMETextX-trlX!xml.etree.ElementTree.ElementTreerm(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTreeX-trnXargparse.RawTextHelpFormatterro(jjXLhttp://docs.python.org/3/library/argparse.html#argparse.RawTextHelpFormatterX-trpXthreading.Threadrq(jjX@http://docs.python.org/3/library/threading.html#threading.ThreadX-trrXtkinter.tix.FileEntryrs(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.FileEntryX-trtXctypes.c_longlongru(jjX>http://docs.python.org/3/library/ctypes.html#ctypes.c_longlongX-trvXmultiprocessing.Queuerw(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.QueueX-trxXcmd.Cmdry(jjX1http://docs.python.org/3/library/cmd.html#cmd.CmdX-trzXmultiprocessing.pool.Poolr{(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.PoolX-tr|Xunittest.mock.Mockr}(jjXFhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.MockX-tr~Xunittest.FunctionTestCaser(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.FunctionTestCaseX-trXoptparse.OptionGroupr(jjXChttp://docs.python.org/3/library/optparse.html#optparse.OptionGroupX-trXdifflib.Differr(jjX<http://docs.python.org/3/library/difflib.html#difflib.DifferX-trXhttp.cookies.Morselr(jjXFhttp://docs.python.org/3/library/http.cookies.html#http.cookies.MorselX-trXpathlib.PosixPathr(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.PosixPathX-trX ctypes.c_int8r(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_int8X-trX smtplib.LMTPr(jjX:http://docs.python.org/3/library/smtplib.html#smtplib.LMTPX-trX plistlib.Datar(jjX<http://docs.python.org/3/library/plistlib.html#plistlib.DataX-trXsmtplib.SMTP_SSLr(jjX>http://docs.python.org/3/library/smtplib.html#smtplib.SMTP_SSLX-trXasyncio.BaseSubprocessTransportr(jjXVhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransportX-trXmailbox.mboxMessager(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessageX-trXcollections.UserStringr(jjXHhttp://docs.python.org/3/library/collections.html#collections.UserStringX-trX asyncio.Taskr(jjX?http://docs.python.org/3/library/asyncio-task.html#asyncio.TaskX-trXtkinter.tix.DirSelectBoxr(jjXJhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirSelectBoxX-trXmimetypes.MimeTypesr(jjXChttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypesX-trXctypes.c_doubler(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_doubleX-trXdecimal.DivisionByZeror(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.DivisionByZeroX-trXgettext.NullTranslationsr(jjXFhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslationsX-trXemail.generator.BytesGeneratorr(jjXThttp://docs.python.org/3/library/email.generator.html#email.generator.BytesGeneratorX-trX ctypes.WinDLLr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.WinDLLX-trXpickle.Picklerr(jjX;http://docs.python.org/3/library/pickle.html#pickle.PicklerX-trXctypes.c_ulongr(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_ulongX-trXpkgutil.ImpLoaderr(jjX?http://docs.python.org/3/library/pkgutil.html#pkgutil.ImpLoaderX-trXcollections.abc.Hashabler(jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.HashableX-trX,email.headerregistry.ParameterizedMIMEHeaderr(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ParameterizedMIMEHeaderX-trXconfigparser.RawConfigParserr(jjXOhttp://docs.python.org/3/library/configparser.html#configparser.RawConfigParserX-trX#logging.handlers.WatchedFileHandlerr(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.WatchedFileHandlerX-trXurllib.request.UnknownHandlerr(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.UnknownHandlerX-trXthreading.RLockr(jjX?http://docs.python.org/3/library/threading.html#threading.RLockX-trX uuid.UUIDr(jjX4http://docs.python.org/3/library/uuid.html#uuid.UUIDX-trXwsgiref.handlers.BaseCGIHandlerr(jjXMhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseCGIHandlerX-trXcurses.textpad.Textboxr(jjXChttp://docs.python.org/3/library/curses.html#curses.textpad.TextboxX-trX turtle.Turtler(jjX:http://docs.python.org/3/library/turtle.html#turtle.TurtleX-trXsymtable.Classr(jjX=http://docs.python.org/3/library/symtable.html#symtable.ClassX-trXrandom.SystemRandomr(jjX@http://docs.python.org/3/library/random.html#random.SystemRandomX-trXsqlite3.Cursorr(jjX<http://docs.python.org/3/library/sqlite3.html#sqlite3.CursorX-trXsched.schedulerr(jjX;http://docs.python.org/3/library/sched.html#sched.schedulerX-trXhttp.cookiejar.Cookier(jjXJhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieX-trXtarfile.TarFiler(jjX=http://docs.python.org/3/library/tarfile.html#tarfile.TarFileX-trXctypes.c_uint32r(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_uint32X-trXdecimal.InvalidOperationr(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.InvalidOperationX-trXcalendar.HTMLCalendarr(jjXDhttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendarX-trXweakref.WeakMethodr(jjX@http://docs.python.org/3/library/weakref.html#weakref.WeakMethodX-trXemail.mime.image.MIMEImager(jjXKhttp://docs.python.org/3/library/email.mime.html#email.mime.image.MIMEImageX-trXdifflib.SequenceMatcherr(jjXEhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcherX-trX asynchat.fifor(jjX<http://docs.python.org/3/library/asynchat.html#asynchat.fifoX-trX"email.headerregistry.AddressHeaderr(jjX]http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeaderX-trX(email.mime.nonmultipart.MIMENonMultipartr(jjXYhttp://docs.python.org/3/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipartX-trX$argparse.RawDescriptionHelpFormatterr(jjXShttp://docs.python.org/3/library/argparse.html#argparse.RawDescriptionHelpFormatterX-trXwsgiref.handlers.IISCGIHandlerr(jjXLhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.IISCGIHandlerX-trXmailbox.MaildirMessager(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessageX-trXtkinter.ttk.Treeviewr(jjXFhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.TreeviewX-trXxml.dom.pulldom.PullDomr(jjXMhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.PullDomX-trXlogging.Formatterr(jjX?http://docs.python.org/3/library/logging.html#logging.FormatterX-trXasyncio.BoundedSemaphorer(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.BoundedSemaphoreX-trXlogging.LoggerAdapterr(jjXChttp://docs.python.org/3/library/logging.html#logging.LoggerAdapterX-trX$multiprocessing.managers.BaseManagerr(jjXZhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManagerX-trXxml.etree.ElementTree.QNamer(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.QNameX-trXhttp.server.HTTPServerr(jjXHhttp://docs.python.org/3/library/http.server.html#http.server.HTTPServerX-trXcodeop.Compiler(jjX;http://docs.python.org/3/library/codeop.html#codeop.CompileX-trXasyncio.StreamReaderProtocolr(jjXQhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReaderProtocolX-trXthreading.Semaphorer(jjXChttp://docs.python.org/3/library/threading.html#threading.SemaphoreX-trXselectors.SelectorKeyr(jjXEhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKeyX-trX"asyncio.asyncio.subprocess.Processr(jjX[http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.ProcessX-trXunittest.TestResultr(jjXBhttp://docs.python.org/3/library/unittest.html#unittest.TestResultX-trX sqlite3.Rowr(jjX9http://docs.python.org/3/library/sqlite3.html#sqlite3.RowX-trXdecimal.ExtendedContextr(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.ExtendedContextX-trXcalendar.TextCalendarr(jjXDhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendarX-trX io.RawIOBaser(jjX5http://docs.python.org/3/library/io.html#io.RawIOBaseX-trXstring.Templater (jjX<http://docs.python.org/3/library/string.html#string.TemplateX-tr Xast.ASTr (jjX1http://docs.python.org/3/library/ast.html#ast.ASTX-tr Xurllib.request.FancyURLopenerr (jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FancyURLopenerX-trX"distutils.fancy_getopt.FancyGetoptr(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetoptX-trX shlex.shlexr(jjX7http://docs.python.org/3/library/shlex.html#shlex.shlexX-trXshelve.BsdDbShelfr(jjX>http://docs.python.org/3/library/shelve.html#shelve.BsdDbShelfX-trXurllib.parse.ParseResultr(jjXKhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResultX-trX(email.headerregistry.SingleAddressHeaderr(jjXchttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.SingleAddressHeaderX-trXdecimal.Underflowr(jjX?http://docs.python.org/3/library/decimal.html#decimal.UnderflowX-trXimportlib.abc.Loaderr(jjXDhttp://docs.python.org/3/library/importlib.html#importlib.abc.LoaderX-trXcollections.Counterr(jjXEhttp://docs.python.org/3/library/collections.html#collections.CounterX-trXdoctest.DocTestFinderr(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTestFinderX-tr Xmailbox.Mailboxr!(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MailboxX-tr"X#email.contentmanager.ContentManagerr#(jjX^http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManagerX-tr$Xtkinter.ttk.Comboboxr%(jjXFhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.ComboboxX-tr&Xdatetime.datetimer'(jjX@http://docs.python.org/3/library/datetime.html#datetime.datetimeX-tr(Xast.NodeTransformerr)(jjX=http://docs.python.org/3/library/ast.html#ast.NodeTransformerX-tr*X mmap.mmapr+(jjX4http://docs.python.org/3/library/mmap.html#mmap.mmapX-tr,X%concurrent.futures.ThreadPoolExecutorr-(jjX^http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutorX-tr.X"configparser.ExtendedInterpolationr/(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ExtendedInterpolationX-tr0X enum.IntEnumr1(jjX7http://docs.python.org/3/library/enum.html#enum.IntEnumX-tr2Xsmtpd.PureProxyr3(jjX;http://docs.python.org/3/library/smtpd.html#smtpd.PureProxyX-tr4Ximportlib.abc.Finderr5(jjXDhttp://docs.python.org/3/library/importlib.html#importlib.abc.FinderX-tr6X$urllib.request.HTTPDigestAuthHandlerr7(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandlerX-tr8Xurllib.request.FTPHandlerr9(jjXNhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandlerX-tr:Xast.NodeVisitorr;(jjX9http://docs.python.org/3/library/ast.html#ast.NodeVisitorX-tr<Xlogging.handlers.HTTPHandlerr=(jjXShttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.HTTPHandlerX-tr>X memoryviewr?(jjX9http://docs.python.org/3/library/stdtypes.html#memoryviewX-tr@Xargparse.ArgumentParserrA(jjXFhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParserX-trBXcodecs.IncrementalEncoderrC(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoderX-trDXcode.InteractiveInterpreterrE(jjXFhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreterX-trFX generatorrG(jjX=http://docs.python.org/3/reference/expressions.html#generatorX-trHXctypes._SimpleCDatarI(jjX@http://docs.python.org/3/library/ctypes.html#ctypes._SimpleCDataX-trJXcollections.ChainMaprK(jjXFhttp://docs.python.org/3/library/collections.html#collections.ChainMapX-trLXio.BufferedRandomrM(jjX:http://docs.python.org/3/library/io.html#io.BufferedRandomX-trNXmultiprocessing.SemaphorerO(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SemaphoreX-trPX bz2.BZ2FilerQ(jjX5http://docs.python.org/3/library/bz2.html#bz2.BZ2FileX-trRXdoctest.DebugRunnerrS(jjXAhttp://docs.python.org/3/library/doctest.html#doctest.DebugRunnerX-trTXqueue.LifoQueuerU(jjX;http://docs.python.org/3/library/queue.html#queue.LifoQueueX-trVXasyncio.WriteTransportrW(jjXMhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransportX-trXXimportlib.machinery.ModuleSpecrY(jjXNhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpecX-trZX'email.headerregistry.UnstructuredHeaderr[(jjXbhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.UnstructuredHeaderX-tr\Xctypes.c_ulonglongr](jjX?http://docs.python.org/3/library/ctypes.html#ctypes.c_ulonglongX-tr^Xdecimal.FloatOperationr_(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.FloatOperationX-tr`Xsymtable.Symbolra(jjX>http://docs.python.org/3/library/symtable.html#symtable.SymbolX-trbXselectors.EpollSelectorrc(jjXGhttp://docs.python.org/3/library/selectors.html#selectors.EpollSelectorX-trdX email.generator.DecodedGeneratorre(jjXVhttp://docs.python.org/3/library/email.generator.html#email.generator.DecodedGeneratorX-trfXipaddress.IPv6Networkrg(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6NetworkX-trhXtkinter.tix.LabelFrameri(jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.LabelFrameX-trjXsubprocess.STARTUPINFOrk(jjXGhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFOX-trlXxml.sax.saxutils.XMLGeneratorrm(jjXQhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLGeneratorX-trnXxml.sax.handler.DTDHandlerro(jjXPhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandlerX-trpXunittest.mock.PropertyMockrq(jjXNhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.PropertyMockX-trrXipaddress.IPv6Interfacers(jjXGhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6InterfaceX-trtXunittest.TestSuiteru(jjXAhttp://docs.python.org/3/library/unittest.html#unittest.TestSuiteX-trvXdecimal.Overflowrw(jjX>http://docs.python.org/3/library/decimal.html#decimal.OverflowX-trxXemail.parser.Parserry(jjXFhttp://docs.python.org/3/library/email.parser.html#email.parser.ParserX-trzXimportlib.machinery.FileFinderr{(jjXNhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinderX-tr|Xemail.parser.BytesParserr}(jjXKhttp://docs.python.org/3/library/email.parser.html#email.parser.BytesParserX-tr~Xcollections.OrderedDictr(jjXIhttp://docs.python.org/3/library/collections.html#collections.OrderedDictX-trXxmlrpc.client.ServerProxyr(jjXMhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxyX-trX io.IOBaser(jjX2http://docs.python.org/3/library/io.html#io.IOBaseX-trXargparse.FileTyper(jjX@http://docs.python.org/3/library/argparse.html#argparse.FileTypeX-trXctypes.Structurer(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.StructureX-trXmailbox.Messager(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MessageX-trX ctypes.OleDLLr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.OleDLLX-trX io.StringIOr(jjX4http://docs.python.org/3/library/io.html#io.StringIOX-trXselectors.PollSelectorr(jjXFhttp://docs.python.org/3/library/selectors.html#selectors.PollSelectorX-trXselectors.KqueueSelectorr(jjXHhttp://docs.python.org/3/library/selectors.html#selectors.KqueueSelectorX-trXweakref.WeakValueDictionaryr(jjXIhttp://docs.python.org/3/library/weakref.html#weakref.WeakValueDictionaryX-trX#xml.etree.ElementTree.XMLPullParserr(jjX_http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParserX-trX enum.Enumr(jjX4http://docs.python.org/3/library/enum.html#enum.EnumX-trXunittest.TextTestRunnerr(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TextTestRunnerX-trXurllib.parse.SplitResultBytesr(jjXPhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResultBytesX-trXemail.charset.Charsetr(jjXIhttp://docs.python.org/3/library/email.charset.html#email.charset.CharsetX-trXasyncio.LifoQueuer(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.LifoQueueX-trXemail.policy.Compat32r(jjXHhttp://docs.python.org/3/library/email.policy.html#email.policy.Compat32X-trXctypes.c_int64r(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_int64X-trX msilib.CABr(jjX7http://docs.python.org/3/library/msilib.html#msilib.CABX-trXasyncio.Handler(jjXFhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.HandleX-trX trace.Tracer(jjX7http://docs.python.org/3/library/trace.html#trace.TraceX-trXtkinter.tix.FileSelectBoxr(jjXKhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.FileSelectBoxX-trXlogging.Loggerr(jjX<http://docs.python.org/3/library/logging.html#logging.LoggerX-trXabc.ABCr(jjX1http://docs.python.org/3/library/abc.html#abc.ABCX-trXbdb.Bdbr(jjX1http://docs.python.org/3/library/bdb.html#bdb.BdbX-trX timeit.Timerr(jjX9http://docs.python.org/3/library/timeit.html#timeit.TimerX-trXurllib.parse.SplitResultr(jjXKhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResultX-trXhttp.cookiejar.FileCookieJarr(jjXQhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJarX-trX(urllib.request.AbstractDigestAuthHandlerr(jjX]http://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandlerX-trXranger(jjX4http://docs.python.org/3/library/stdtypes.html#rangeX-trXnumbers.Complexr(jjX=http://docs.python.org/3/library/numbers.html#numbers.ComplexX-trXcalendar.LocaleHTMLCalendarr(jjXJhttp://docs.python.org/3/library/calendar.html#calendar.LocaleHTMLCalendarX-trXcollections.dequer(jjXChttp://docs.python.org/3/library/collections.html#collections.dequeX-trX msilib.Binaryr(jjX:http://docs.python.org/3/library/msilib.html#msilib.BinaryX-trX mailbox.MMDFr(jjX:http://docs.python.org/3/library/mailbox.html#mailbox.MMDFX-trXctypes.LittleEndianStructurer(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes.LittleEndianStructureX-trX io.BytesIOr(jjX3http://docs.python.org/3/library/io.html#io.BytesIOX-trXcontextlib.ContextDecoratorr(jjXLhttp://docs.python.org/3/library/contextlib.html#contextlib.ContextDecoratorX-trXxml.sax.xmlreader.XMLReaderr(jjXPhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReaderX-trXfractions.Fractionr(jjXBhttp://docs.python.org/3/library/fractions.html#fractions.FractionX-trXcollections.abc.Sizedr(jjXKhttp://docs.python.org/3/library/collections.abc.html#collections.abc.SizedX-trXctypes.c_ssize_tr(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.c_ssize_tX-trXtelnetlib.Telnetr(jjX@http://docs.python.org/3/library/telnetlib.html#telnetlib.TelnetX-trXhttp.client.HTTPResponser(jjXJhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponseX-trXxml.sax.xmlreader.InputSourcer(jjXRhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSourceX-trXctypes.c_int32r(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_int32X-trX poplib.POP3r(jjX8http://docs.python.org/3/library/poplib.html#poplib.POP3X-trXasyncio.BaseTransportr(jjXLhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseTransportX-trX(distutils.command.build_py.build_py_2to3r(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.command.build_py.build_py_2to3X-trXemail.headerregistry.Groupr(jjXUhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.GroupX-trXformatter.NullWriterr(jjXDhttp://docs.python.org/3/library/formatter.html#formatter.NullWriterX-trX%xmlrpc.server.DocXMLRPCRequestHandlerr(jjXYhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCRequestHandlerX-trX struct.Structr(jjX:http://docs.python.org/3/library/struct.html#struct.StructX-trXurllib.request.FileHandlerr(jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandlerX-trXdoctest.DocTestParserr(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTestParserX-trXconfigparser.BasicInterpolationr(jjXRhttp://docs.python.org/3/library/configparser.html#configparser.BasicInterpolationX-trX$logging.handlers.RotatingFileHandlerr(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandlerX-trXipaddress.IPv6Addressr(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6AddressX-trXdistutils.text_file.TextFiler(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFileX-trXimportlib.abc.ResourceLoaderr(jjXLhttp://docs.python.org/3/library/importlib.html#importlib.abc.ResourceLoaderX-trXctypes.c_wchar_pr(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.c_wchar_pX-trXxml.etree.ElementTree.XMLParserr(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParserX-trXxml.sax.handler.ErrorHandlerr(jjXRhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandlerX-trXweakref.WeakSetr(jjX=http://docs.python.org/3/library/weakref.html#weakref.WeakSetX-trXasyncio.AbstractEventLoopPolicyr(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractEventLoopPolicyX-trX csv.Snifferr(jjX5http://docs.python.org/3/library/csv.html#csv.SnifferX-trXtracemalloc.Tracer(jjXChttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.TraceX-trXargparse.Namespacer(jjXAhttp://docs.python.org/3/library/argparse.html#argparse.NamespaceX-trX$urllib.request.ProxyBasicAuthHandlerr (jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyBasicAuthHandlerX-tr X ctypes._CDatar (jjX:http://docs.python.org/3/library/ctypes.html#ctypes._CDataX-tr Xtypes.MappingProxyTyper (jjXBhttp://docs.python.org/3/library/types.html#types.MappingProxyTypeX-trX pathlib.Pathr(jjX:http://docs.python.org/3/library/pathlib.html#pathlib.PathX-trXtkinter.ttk.Widgetr(jjXDhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.WidgetX-trXtrace.CoverageResultsr(jjXAhttp://docs.python.org/3/library/trace.html#trace.CoverageResultsX-trX io.FileIOr(jjX2http://docs.python.org/3/library/io.html#io.FileIOX-trX!urllib.request.HTTPErrorProcessorr(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessorX-trX$logging.handlers.BaseRotatingHandlerr(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandlerX-trXctypes.c_ushortr(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_ushortX-trXtracemalloc.Statisticr(jjXGhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticX-trXcodecs.StreamRecoderr(jjXAhttp://docs.python.org/3/library/codecs.html#codecs.StreamRecoderX-tr Xwsgiref.headers.Headersr!(jjXEhttp://docs.python.org/3/library/wsgiref.html#wsgiref.headers.HeadersX-tr"X ctypes.Unionr#(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.UnionX-tr$X mailbox.Babylr%(jjX;http://docs.python.org/3/library/mailbox.html#mailbox.BabylX-tr&Xasyncio.AbstractServerr'(jjXNhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractServerX-tr(Xformatter.DumbWriterr)(jjXDhttp://docs.python.org/3/library/formatter.html#formatter.DumbWriterX-tr*Xdatetime.tzinfor+(jjX>http://docs.python.org/3/library/datetime.html#datetime.tzinfoX-tr,Ximportlib.abc.InspectLoaderr-(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoaderX-tr.Xcsv.DictWriterr/(jjX8http://docs.python.org/3/library/csv.html#csv.DictWriterX-tr0Xunittest.mock.MagicMockr1(jjXKhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.MagicMockX-tr2Xdoctest.OutputCheckerr3(jjXChttp://docs.python.org/3/library/doctest.html#doctest.OutputCheckerX-tr4Xlogging.Filterr5(jjX<http://docs.python.org/3/library/logging.html#logging.FilterX-tr6Xlogging.FileHandlerr7(jjXJhttp://docs.python.org/3/library/logging.handlers.html#logging.FileHandlerX-tr8Xsmtpd.DebuggingServerr9(jjXAhttp://docs.python.org/3/library/smtpd.html#smtpd.DebuggingServerX-tr:Xtkinter.tix.ComboBoxr;(jjXFhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ComboBoxX-tr<X xml.etree.ElementTree.ParseErrorr=(jjX\http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseErrorX-tr>Xunittest.TextTestResultr?(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TextTestResultX-tr@Xasyncio.JoinableQueuerA(jjXHhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.JoinableQueueX-trBXzipimport.zipimporterrC(jjXEhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporterX-trDXfilecmp.dircmprE(jjX<http://docs.python.org/3/library/filecmp.html#filecmp.dircmpX-trFX gzip.GzipFilerG(jjX8http://docs.python.org/3/library/gzip.html#gzip.GzipFileX-trHXtkinter.tix.BalloonrI(jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.BalloonX-trJX netrc.netrcrK(jjX7http://docs.python.org/3/library/netrc.html#netrc.netrcX-trLX"urllib.robotparser.RobotFileParserrM(jjX[http://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParserX-trNXlogging.LogRecordrO(jjX?http://docs.python.org/3/library/logging.html#logging.LogRecordX-trPXtkinter.tix.SelectrQ(jjXDhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.SelectX-trRX.urllib.request.HTTPPasswordMgrWithDefaultRealmrS(jjXchttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithDefaultRealmX-trTXbz2.BZ2DecompressorrU(jjX=http://docs.python.org/3/library/bz2.html#bz2.BZ2DecompressorX-trVXlogging.handlers.QueueHandlerrW(jjXThttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandlerX-trXX"urllib.request.HTTPRedirectHandlerrY(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandlerX-trZXio.BufferedIOBaser[(jjX:http://docs.python.org/3/library/io.html#io.BufferedIOBaseX-tr\Xctypes.c_shortr](jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_shortX-tr^Xpathlib.PurePathr_(jjX>http://docs.python.org/3/library/pathlib.html#pathlib.PurePathX-tr`X csv.excel_tabra(jjX7http://docs.python.org/3/library/csv.html#csv.excel_tabX-trbX asyncio.Lockrc(jjX?http://docs.python.org/3/library/asyncio-sync.html#asyncio.LockX-trdXcollections.abc.ValuesViewre(jjXPhttp://docs.python.org/3/library/collections.abc.html#collections.abc.ValuesViewX-trfX!logging.handlers.BufferingHandlerrg(jjXXhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandlerX-trhX io.TextIOBaseri(jjX6http://docs.python.org/3/library/io.html#io.TextIOBaseX-trjXlzma.LZMADecompressorrk(jjX@http://docs.python.org/3/library/lzma.html#lzma.LZMADecompressorX-trluXc:varrm}rn(XPy_NotImplementedro(jjX>http://docs.python.org/3/c-api/object.html#c.Py_NotImplementedX-trpXPy_single_inputrq(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.Py_single_inputX-trrX PyDict_Typers(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_TypeX-trtX PyTrace_LINEru(jjX7http://docs.python.org/3/c-api/init.html#c.PyTrace_LINEX-trvX PyCell_Typerw(jjX6http://docs.python.org/3/c-api/cell.html#c.PyCell_TypeX-trxX PyModule_Typery(jjX:http://docs.python.org/3/c-api/module.html#c.PyModule_TypeX-trzX Py_eval_inputr{(jjX<http://docs.python.org/3/c-api/veryhigh.html#c.Py_eval_inputX-tr|XPyFunction_Typer}(jjX>http://docs.python.org/3/c-api/function.html#c.PyFunction_TypeX-tr~XPyStructSequence_UnnamedFieldr(jjXIhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_UnnamedFieldX-trX PyFloat_Typer(jjX8http://docs.python.org/3/c-api/float.html#c.PyFloat_TypeX-trXPySeqIter_Typer(jjX=http://docs.python.org/3/c-api/iterator.html#c.PySeqIter_TypeX-trX PyTuple_Typer(jjX8http://docs.python.org/3/c-api/tuple.html#c.PyTuple_TypeX-trXPyTrace_C_EXCEPTIONr(jjX>http://docs.python.org/3/c-api/init.html#c.PyTrace_C_EXCEPTIONX-trXPyComplex_Typer(jjX<http://docs.python.org/3/c-api/complex.html#c.PyComplex_TypeX-trXPyOS_InputHookr(jjX=http://docs.python.org/3/c-api/veryhigh.html#c.PyOS_InputHookX-trX PyList_Typer(jjX6http://docs.python.org/3/c-api/list.html#c.PyList_TypeX-trX Py_file_inputr(jjX<http://docs.python.org/3/c-api/veryhigh.html#c.Py_file_inputX-trXPyImport_FrozenModulesr(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_FrozenModulesX-trXPyByteArray_Typer(jjX@http://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_TypeX-trX PyTrace_CALLr(jjX7http://docs.python.org/3/c-api/init.html#c.PyTrace_CALLX-trXCO_FUTURE_DIVISIONr(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.CO_FUTURE_DIVISIONX-trXPyFrozenSet_Typer(jjX:http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_TypeX-trX PyType_Typer(jjX6http://docs.python.org/3/c-api/type.html#c.PyType_TypeX-trX PyMethod_Typer(jjX:http://docs.python.org/3/c-api/method.html#c.PyMethod_TypeX-trX_Py_NoneStructr(jjX?http://docs.python.org/3/c-api/allocation.html#c._Py_NoneStructX-trXPyTrace_RETURNr(jjX9http://docs.python.org/3/c-api/init.html#c.PyTrace_RETURNX-trXPyUnicode_Typer(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TypeX-trXPyInstanceMethod_Typer(jjXBhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_TypeX-trXPyOS_ReadlineFunctionPointerr(jjXKhttp://docs.python.org/3/c-api/veryhigh.html#c.PyOS_ReadlineFunctionPointerX-trX PyCode_Typer(jjX6http://docs.python.org/3/c-api/code.html#c.PyCode_TypeX-trX PyLong_Typer(jjX6http://docs.python.org/3/c-api/long.html#c.PyLong_TypeX-trXPyTrace_C_CALLr(jjX9http://docs.python.org/3/c-api/init.html#c.PyTrace_C_CALLX-trXPyTrace_EXCEPTIONr(jjX<http://docs.python.org/3/c-api/init.html#c.PyTrace_EXCEPTIONX-trXPy_Noner(jjX2http://docs.python.org/3/c-api/none.html#c.Py_NoneX-trXPyTrace_C_RETURNr(jjX;http://docs.python.org/3/c-api/init.html#c.PyTrace_C_RETURNX-trXPyCallIter_Typer(jjX>http://docs.python.org/3/c-api/iterator.html#c.PyCallIter_TypeX-trX PyGen_Typer(jjX4http://docs.python.org/3/c-api/gen.html#c.PyGen_TypeX-trX PySlice_Typer(jjX8http://docs.python.org/3/c-api/slice.html#c.PySlice_TypeX-trX PySet_Typer(jjX4http://docs.python.org/3/c-api/set.html#c.PySet_TypeX-trXPy_Falser(jjX3http://docs.python.org/3/c-api/bool.html#c.Py_FalseX-trXPy_Truer(jjX2http://docs.python.org/3/c-api/bool.html#c.Py_TrueX-trX PyBytes_Typer(jjX8http://docs.python.org/3/c-api/bytes.html#c.PyBytes_TypeX-trXPyProperty_Typer(jjX@http://docs.python.org/3/c-api/descriptor.html#c.PyProperty_TypeX-truX py:moduler}r(Xfilecmpr(jjX<http://docs.python.org/3/library/filecmp.html#module-filecmpX-trXdistutils.debugr(jjXEhttp://docs.python.org/3/distutils/apiref.html#module-distutils.debugX-trXdbmr(jjX4http://docs.python.org/3/library/dbm.html#module-dbmX-trXcurses.textpadr(jjXBhttp://docs.python.org/3/library/curses.html#module-curses.textpadX-trXrandomr(jjX:http://docs.python.org/3/library/random.html#module-randomX-trXttyr(jjX4http://docs.python.org/3/library/tty.html#module-ttyX-trX subprocessr(jjXBhttp://docs.python.org/3/library/subprocess.html#module-subprocessX-trXcoder(jjX6http://docs.python.org/3/library/code.html#module-codeX-trXgcr(jjX2http://docs.python.org/3/library/gc.html#module-gcX-trXptyr(jjX4http://docs.python.org/3/library/pty.html#module-ptyX-trXdistutils.sysconfigr(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.sysconfigX-trXos.pathr(jjX<http://docs.python.org/3/library/os.path.html#module-os.pathX-trX _dummy_threadr(jjXHhttp://docs.python.org/3/library/_dummy_thread.html#module-_dummy_threadX-trX email.policyr(jjXFhttp://docs.python.org/3/library/email.policy.html#module-email.policyX-trXdistutils.bcppcompilerr(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.bcppcompilerX-trX importlibr(jjX@http://docs.python.org/3/library/importlib.html#module-importlibX-trXxmlr(jjX4http://docs.python.org/3/library/xml.html#module-xmlX-trX curses.panelr(jjXFhttp://docs.python.org/3/library/curses.panel.html#module-curses.panelX-trXpprintr(jjX:http://docs.python.org/3/library/pprint.html#module-pprintX-trX tracemallocr(jjXDhttp://docs.python.org/3/library/tracemalloc.html#module-tracemallocX-trXdbm.gnur(jjX8http://docs.python.org/3/library/dbm.html#module-dbm.gnuX-trXxml.etree.ElementTreer(jjXXhttp://docs.python.org/3/library/xml.etree.elementtree.html#module-xml.etree.ElementTreeX-trXsmtplibr(jjX<http://docs.python.org/3/library/smtplib.html#module-smtplibX-trX functoolsr(jjX@http://docs.python.org/3/library/functools.html#module-functoolsX-trXwinregr(jjX:http://docs.python.org/3/library/winreg.html#module-winregX-trX urllib.parser(jjXFhttp://docs.python.org/3/library/urllib.parse.html#module-urllib.parseX-trXstringr(jjX:http://docs.python.org/3/library/string.html#module-stringX-trXnntplibr(jjX<http://docs.python.org/3/library/nntplib.html#module-nntplibX-trXzipfiler(jjX<http://docs.python.org/3/library/zipfile.html#module-zipfileX-trXwaver(jjX6http://docs.python.org/3/library/wave.html#module-waveX-trX distutils.cmdr(jjXChttp://docs.python.org/3/distutils/apiref.html#module-distutils.cmdX-trXsslr(jjX4http://docs.python.org/3/library/ssl.html#module-sslX-trXcollections.abcr(jjXLhttp://docs.python.org/3/library/collections.abc.html#module-collections.abcX-trXdatetimer (jjX>http://docs.python.org/3/library/datetime.html#module-datetimeX-tr X unittest.mockr (jjXHhttp://docs.python.org/3/library/unittest.mock.html#module-unittest.mockX-tr X!distutils.command.install_headersr (jjXWhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_headersX-trXresourcer(jjX>http://docs.python.org/3/library/resource.html#module-resourceX-trXbisectr(jjX:http://docs.python.org/3/library/bisect.html#module-bisectX-trXcmdr(jjX4http://docs.python.org/3/library/cmd.html#module-cmdX-trXbinhexr(jjX:http://docs.python.org/3/library/binhex.html#module-binhexX-trXpydocr(jjX8http://docs.python.org/3/library/pydoc.html#module-pydocX-trX html.parserr(jjXDhttp://docs.python.org/3/library/html.parser.html#module-html.parserX-trXrunpyr(jjX8http://docs.python.org/3/library/runpy.html#module-runpyX-trXmsilibr(jjX:http://docs.python.org/3/library/msilib.html#module-msilibX-trXshlexr(jjX8http://docs.python.org/3/library/shlex.html#module-shlexX-tr Xmultiprocessing.poolr!(jjXQhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.poolX-tr"Xmultiprocessingr#(jjXLhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessingX-tr$Xdummy_threadingr%(jjXLhttp://docs.python.org/3/library/dummy_threading.html#module-dummy_threadingX-tr&Xdisr'(jjX4http://docs.python.org/3/library/dis.html#module-disX-tr(Xdistutils.command.bdist_rpmr)(jjXQhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_rpmX-tr*Xasyncorer+(jjX>http://docs.python.org/3/library/asyncore.html#module-asyncoreX-tr,X compileallr-(jjXBhttp://docs.python.org/3/library/compileall.html#module-compileallX-tr.Xlocaler/(jjX:http://docs.python.org/3/library/locale.html#module-localeX-tr0Xatexitr1(jjX:http://docs.python.org/3/library/atexit.html#module-atexitX-tr2Xxml.sax.saxutilsr3(jjXKhttp://docs.python.org/3/library/xml.sax.utils.html#module-xml.sax.saxutilsX-tr4Xcalendarr5(jjX>http://docs.python.org/3/library/calendar.html#module-calendarX-tr6Xmailcapr7(jjX<http://docs.python.org/3/library/mailcap.html#module-mailcapX-tr8Xtimeitr9(jjX:http://docs.python.org/3/library/timeit.html#module-timeitX-tr:Xabcr;(jjX4http://docs.python.org/3/library/abc.html#module-abcX-tr<X_threadr=(jjX<http://docs.python.org/3/library/_thread.html#module-_threadX-tr>Xplistlibr?(jjX>http://docs.python.org/3/library/plistlib.html#module-plistlibX-tr@XbdbrA(jjX4http://docs.python.org/3/library/bdb.html#module-bdbX-trBXurllib.responserC(jjXKhttp://docs.python.org/3/library/urllib.request.html#module-urllib.responseX-trDX py_compilerE(jjXBhttp://docs.python.org/3/library/py_compile.html#module-py_compileX-trFXemail.contentmanagerrG(jjXVhttp://docs.python.org/3/library/email.contentmanager.html#module-email.contentmanagerX-trHXtarfilerI(jjX<http://docs.python.org/3/library/tarfile.html#module-tarfileX-trJXpathlibrK(jjX<http://docs.python.org/3/library/pathlib.html#module-pathlibX-trLXurllibrM(jjX:http://docs.python.org/3/library/urllib.html#module-urllibX-trNXposixrO(jjX8http://docs.python.org/3/library/posix.html#module-posixX-trPXdistutils.command.buildrQ(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.buildX-trRXemailrS(jjX8http://docs.python.org/3/library/email.html#module-emailX-trTXfcntlrU(jjX8http://docs.python.org/3/library/fcntl.html#module-fcntlX-trVXftplibrW(jjX:http://docs.python.org/3/library/ftplib.html#module-ftplibX-trXXenumrY(jjX6http://docs.python.org/3/library/enum.html#module-enumX-trZXoptparser[(jjX>http://docs.python.org/3/library/optparse.html#module-optparseX-tr\Xmailboxr](jjX<http://docs.python.org/3/library/mailbox.html#module-mailboxX-tr^Xctypesr_(jjX:http://docs.python.org/3/library/ctypes.html#module-ctypesX-tr`Xcodecsra(jjX:http://docs.python.org/3/library/codecs.html#module-codecsX-trbXdistutils.ccompilerrc(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.ccompilerX-trdXstructre(jjX:http://docs.python.org/3/library/struct.html#module-structX-trfXtkinterrg(jjX<http://docs.python.org/3/library/tkinter.html#module-tkinterX-trhX email.headerri(jjXFhttp://docs.python.org/3/library/email.header.html#module-email.headerX-trjXwsgirefrk(jjX<http://docs.python.org/3/library/wsgiref.html#module-wsgirefX-trlXqueuerm(jjX8http://docs.python.org/3/library/queue.html#module-queueX-trnX itertoolsro(jjX@http://docs.python.org/3/library/itertools.html#module-itertoolsX-trpXdistutils.spawnrq(jjXEhttp://docs.python.org/3/distutils/apiref.html#module-distutils.spawnX-trrXdoctestrs(jjX<http://docs.python.org/3/library/doctest.html#module-doctestX-trtXpstatsru(jjX;http://docs.python.org/3/library/profile.html#module-pstatsX-trvXpdbrw(jjX4http://docs.python.org/3/library/pdb.html#module-pdbX-trxXbase64ry(jjX:http://docs.python.org/3/library/base64.html#module-base64X-trzXunittestr{(jjX>http://docs.python.org/3/library/unittest.html#module-unittestX-tr|X http.cookiesr}(jjXFhttp://docs.python.org/3/library/http.cookies.html#module-http.cookiesX-tr~X test.supportr(jjX>http://docs.python.org/3/library/test.html#module-test.supportX-trXtkinter.scrolledtextr(jjXVhttp://docs.python.org/3/library/tkinter.scrolledtext.html#module-tkinter.scrolledtextX-trX email.charsetr(jjXHhttp://docs.python.org/3/library/email.charset.html#module-email.charsetX-trXselectr(jjX:http://docs.python.org/3/library/select.html#module-selectX-trXpkgutilr(jjX<http://docs.python.org/3/library/pkgutil.html#module-pkgutilX-trXplatformr(jjX>http://docs.python.org/3/library/platform.html#module-platformX-trXbinasciir(jjX>http://docs.python.org/3/library/binascii.html#module-binasciiX-trXjsonr(jjX6http://docs.python.org/3/library/json.html#module-jsonX-trXtokenizer(jjX>http://docs.python.org/3/library/tokenize.html#module-tokenizeX-trX fractionsr(jjX@http://docs.python.org/3/library/fractions.html#module-fractionsX-trXcProfiler(jjX=http://docs.python.org/3/library/profile.html#module-cProfileX-trX email.utilsr(jjXChttp://docs.python.org/3/library/email.util.html#module-email.utilsX-trX webbrowserr(jjXBhttp://docs.python.org/3/library/webbrowser.html#module-webbrowserX-trXxml.parsers.expat.errorsr(jjXMhttp://docs.python.org/3/library/pyexpat.html#module-xml.parsers.expat.errorsX-trXemail.iteratorsr(jjXLhttp://docs.python.org/3/library/email.iterators.html#module-email.iteratorsX-trX tkinter.ttkr(jjXDhttp://docs.python.org/3/library/tkinter.ttk.html#module-tkinter.ttkX-trX pickletoolsr(jjXDhttp://docs.python.org/3/library/pickletools.html#module-pickletoolsX-trX unicodedatar(jjXDhttp://docs.python.org/3/library/unicodedata.html#module-unicodedataX-trXdistutils.command.bdist_msir(jjXQhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_msiX-trXzlibr(jjX6http://docs.python.org/3/library/zlib.html#module-zlibX-trX modulefinderr(jjXFhttp://docs.python.org/3/library/modulefinder.html#module-modulefinderX-trX faulthandlerr(jjXFhttp://docs.python.org/3/library/faulthandler.html#module-faulthandlerX-trXxml.saxr(jjX<http://docs.python.org/3/library/xml.sax.html#module-xml.saxX-trXshelver(jjX:http://docs.python.org/3/library/shelve.html#module-shelveX-trXfnmatchr(jjX<http://docs.python.org/3/library/fnmatch.html#module-fnmatchX-trXwsgiref.headersr(jjXDhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.headersX-trXpickler(jjX:http://docs.python.org/3/library/pickle.html#module-pickleX-trX socketserverr(jjXFhttp://docs.python.org/3/library/socketserver.html#module-socketserverX-trXdistutils.command.build_pyr(jjXPhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_pyX-trXsiter(jjX6http://docs.python.org/3/library/site.html#module-siteX-trXnumbersr(jjX<http://docs.python.org/3/library/numbers.html#module-numbersX-trXior(jjX2http://docs.python.org/3/library/io.html#module-ioX-trXdistutils.command.build_extr(jjXQhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_extX-trXsndhdrr(jjX:http://docs.python.org/3/library/sndhdr.html#module-sndhdrX-trX email.messager(jjXHhttp://docs.python.org/3/library/email.message.html#module-email.messageX-trXdistutils.command.sdistr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.sdistX-trXweakrefr(jjX<http://docs.python.org/3/library/weakref.html#module-weakrefX-trXshutilr(jjX:http://docs.python.org/3/library/shutil.html#module-shutilX-trXwsgiref.validater(jjXEhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.validateX-trXdbm.dumbr(jjX9http://docs.python.org/3/library/dbm.html#module-dbm.dumbX-trXpyclbrr(jjX:http://docs.python.org/3/library/pyclbr.html#module-pyclbrX-trXsqlite3r(jjX<http://docs.python.org/3/library/sqlite3.html#module-sqlite3X-trX ossaudiodevr(jjXDhttp://docs.python.org/3/library/ossaudiodev.html#module-ossaudiodevX-trXcsvr(jjX4http://docs.python.org/3/library/csv.html#module-csvX-trXdbm.ndbmr(jjX9http://docs.python.org/3/library/dbm.html#module-dbm.ndbmX-trXprofiler(jjX<http://docs.python.org/3/library/profile.html#module-profileX-trXtabnannyr(jjX>http://docs.python.org/3/library/tabnanny.html#module-tabnannyX-trXschedr(jjX8http://docs.python.org/3/library/sched.html#module-schedX-trXurllib.requestr(jjXJhttp://docs.python.org/3/library/urllib.request.html#module-urllib.requestX-trXdistutils.archive_utilr(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.archive_utilX-trXsysr(jjX4http://docs.python.org/3/library/sys.html#module-sysX-trXcodeopr(jjX:http://docs.python.org/3/library/codeop.html#module-codeopX-trXnisr(jjX4http://docs.python.org/3/library/nis.html#module-nisX-trX email.parserr(jjXFhttp://docs.python.org/3/library/email.parser.html#module-email.parserX-trX ipaddressr(jjX@http://docs.python.org/3/library/ipaddress.html#module-ipaddressX-trXtypesr(jjX8http://docs.python.org/3/library/types.html#module-typesX-trXargparser(jjX>http://docs.python.org/3/library/argparse.html#module-argparseX-trX xmlrpc.serverr(jjXHhttp://docs.python.org/3/library/xmlrpc.server.html#module-xmlrpc.serverX-trXgrpr(jjX4http://docs.python.org/3/library/grp.html#module-grpX-trXdistutils.corer(jjXDhttp://docs.python.org/3/distutils/apiref.html#module-distutils.coreX-trXdifflibr(jjX<http://docs.python.org/3/library/difflib.html#module-difflibX-trXdistutils.errorsr(jjXFhttp://docs.python.org/3/distutils/apiref.html#module-distutils.errorsX-trX selectorsr(jjX@http://docs.python.org/3/library/selectors.html#module-selectorsX-trX urllib.errorr(jjXFhttp://docs.python.org/3/library/urllib.error.html#module-urllib.errorX-trXencodings.idnar(jjXBhttp://docs.python.org/3/library/codecs.html#module-encodings.idnaX-trXdistutils.msvccompilerr(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.msvccompilerX-trXgzipr(jjX6http://docs.python.org/3/library/gzip.html#module-gzipX-trX rlcompleterr(jjXDhttp://docs.python.org/3/library/rlcompleter.html#module-rlcompleterX-trXheapqr(jjX8http://docs.python.org/3/library/heapq.html#module-heapqX-trXconcurrent.futuresr (jjXRhttp://docs.python.org/3/library/concurrent.futures.html#module-concurrent.futuresX-tr X distutilsr (jjX@http://docs.python.org/3/library/distutils.html#module-distutilsX-tr X html.entitiesr (jjXHhttp://docs.python.org/3/library/html.entities.html#module-html.entitiesX-trXaudioopr(jjX<http://docs.python.org/3/library/audioop.html#module-audioopX-trXdistutils.command.configr(jjXNhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.configX-trXaifcr(jjX6http://docs.python.org/3/library/aifc.html#module-aifcX-trX sysconfigr(jjX@http://docs.python.org/3/library/sysconfig.html#module-sysconfigX-trXvenvr(jjX6http://docs.python.org/3/library/venv.html#module-venvX-trXdistutils.fancy_getoptr(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.fancy_getoptX-trX http.clientr(jjXDhttp://docs.python.org/3/library/http.client.html#module-http.clientX-trXxml.parsers.expat.modelr(jjXLhttp://docs.python.org/3/library/pyexpat.html#module-xml.parsers.expat.modelX-trX email.mimer(jjXBhttp://docs.python.org/3/library/email.mime.html#module-email.mimeX-tr Xmsvcrtr!(jjX:http://docs.python.org/3/library/msvcrt.html#module-msvcrtX-tr"X distutils.command.bdist_packagerr#(jjXVhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_packagerX-tr$Ximportlib.utilr%(jjXEhttp://docs.python.org/3/library/importlib.html#module-importlib.utilX-tr&Xdistutils.command.registerr'(jjXPhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.registerX-tr(Xdistutils.dep_utilr)(jjXHhttp://docs.python.org/3/distutils/apiref.html#module-distutils.dep_utilX-tr*Xbuiltinsr+(jjX>http://docs.python.org/3/library/builtins.html#module-builtinsX-tr,Xuuidr-(jjX6http://docs.python.org/3/library/uuid.html#module-uuidX-tr.Xtempfiler/(jjX>http://docs.python.org/3/library/tempfile.html#module-tempfileX-tr0Xmmapr1(jjX6http://docs.python.org/3/library/mmap.html#module-mmapX-tr2Ximpr3(jjX4http://docs.python.org/3/library/imp.html#module-impX-tr4Xlogging.configr5(jjXJhttp://docs.python.org/3/library/logging.config.html#module-logging.configX-tr6X collectionsr7(jjXDhttp://docs.python.org/3/library/collections.html#module-collectionsX-tr8Xdistutils.filelistr9(jjXHhttp://docs.python.org/3/distutils/apiref.html#module-distutils.filelistX-tr:Xdistutils.cygwinccompilerr;(jjXOhttp://docs.python.org/3/distutils/apiref.html#module-distutils.cygwinccompilerX-tr<X zipimportr=(jjX@http://docs.python.org/3/library/zipimport.html#module-zipimportX-tr>X!distutils.command.install_scriptsr?(jjXWhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_scriptsX-tr@Xmultiprocessing.dummyrA(jjXRhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.dummyX-trBXtextwraprC(jjX>http://docs.python.org/3/library/textwrap.html#module-textwrapX-trDX importlib.abcrE(jjXDhttp://docs.python.org/3/library/importlib.html#module-importlib.abcX-trFX http.serverrG(jjXDhttp://docs.python.org/3/library/http.server.html#module-http.serverX-trHXmultiprocessing.sharedctypesrI(jjXYhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.sharedctypesX-trJXsignalrK(jjX:http://docs.python.org/3/library/signal.html#module-signalX-trLXsunaurM(jjX8http://docs.python.org/3/library/sunau.html#module-sunauX-trNXdistutils.command.installrO(jjXOhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.installX-trPXtokenrQ(jjX8http://docs.python.org/3/library/token.html#module-tokenX-trRXemail.encodersrS(jjXJhttp://docs.python.org/3/library/email.encoders.html#module-email.encodersX-trTXdistutils.command.build_clibrU(jjXRhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_clibX-trVXxml.sax.xmlreaderrW(jjXMhttp://docs.python.org/3/library/xml.sax.reader.html#module-xml.sax.xmlreaderX-trXXquoprirY(jjX:http://docs.python.org/3/library/quopri.html#module-quopriX-trZXdecimalr[(jjX<http://docs.python.org/3/library/decimal.html#module-decimalX-tr\X curses.asciir](jjXFhttp://docs.python.org/3/library/curses.ascii.html#module-curses.asciiX-tr^Xdistutils.versionr_(jjXGhttp://docs.python.org/3/distutils/apiref.html#module-distutils.versionX-tr`Xchunkra(jjX8http://docs.python.org/3/library/chunk.html#module-chunkX-trbXmacpathrc(jjX<http://docs.python.org/3/library/macpath.html#module-macpathX-trdX mimetypesre(jjX@http://docs.python.org/3/library/mimetypes.html#module-mimetypesX-trfXxml.parsers.expatrg(jjXFhttp://docs.python.org/3/library/pyexpat.html#module-xml.parsers.expatX-trhXdistutils.distri(jjXDhttp://docs.python.org/3/distutils/apiref.html#module-distutils.distX-trjXlzmark(jjX6http://docs.python.org/3/library/lzma.html#module-lzmaX-trlXlogging.handlersrm(jjXNhttp://docs.python.org/3/library/logging.handlers.html#module-logging.handlersX-trnXasynchatro(jjX>http://docs.python.org/3/library/asynchat.html#module-asynchatX-trpX wsgiref.utilrq(jjXAhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.utilX-trrXdistutils.command.bdist_wininstrs(jjXUhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_wininstX-trtXreru(jjX2http://docs.python.org/3/library/re.html#module-reX-trvXencodings.utf_8_sigrw(jjXGhttp://docs.python.org/3/library/codecs.html#module-encodings.utf_8_sigX-trxX email.errorsry(jjXFhttp://docs.python.org/3/library/email.errors.html#module-email.errorsX-trzXmultiprocessing.managersr{(jjXUhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.managersX-tr|Xglobr}(jjX6http://docs.python.org/3/library/glob.html#module-globX-tr~Xmathr(jjX6http://docs.python.org/3/library/math.html#module-mathX-trXcgir(jjX4http://docs.python.org/3/library/cgi.html#module-cgiX-trXastr(jjX4http://docs.python.org/3/library/ast.html#module-astX-trXinspectr(jjX<http://docs.python.org/3/library/inspect.html#module-inspectX-trXemail.headerregistryr(jjXVhttp://docs.python.org/3/library/email.headerregistry.html#module-email.headerregistryX-trXloggingr(jjX<http://docs.python.org/3/library/logging.html#module-loggingX-trXsocketr(jjX:http://docs.python.org/3/library/socket.html#module-socketX-trXimghdrr(jjX:http://docs.python.org/3/library/imghdr.html#module-imghdrX-trX ensurepipr(jjX@http://docs.python.org/3/library/ensurepip.html#module-ensurepipX-trX tracebackr(jjX@http://docs.python.org/3/library/traceback.html#module-tracebackX-trXnetrcr(jjX8http://docs.python.org/3/library/netrc.html#module-netrcX-trX telnetlibr(jjX@http://docs.python.org/3/library/telnetlib.html#module-telnetlibX-trXerrnor(jjX8http://docs.python.org/3/library/errno.html#module-errnoX-trXsmtpdr(jjX8http://docs.python.org/3/library/smtpd.html#module-smtpdX-trXosr(jjX2http://docs.python.org/3/library/os.html#module-osX-trXmarshalr(jjX<http://docs.python.org/3/library/marshal.html#module-marshalX-trXdistutils.command.bdistr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdistX-trX __future__r(jjXBhttp://docs.python.org/3/library/__future__.html#module-__future__X-trXdistutils.command.install_libr(jjXShttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_libX-trXcursesr(jjX:http://docs.python.org/3/library/curses.html#module-cursesX-trXdistutils.dir_utilr(jjXHhttp://docs.python.org/3/distutils/apiref.html#module-distutils.dir_utilX-trXdistutils.commandr(jjXGhttp://docs.python.org/3/distutils/apiref.html#module-distutils.commandX-trXfpectlr(jjX:http://docs.python.org/3/library/fpectl.html#module-fpectlX-trX fileinputr(jjX@http://docs.python.org/3/library/fileinput.html#module-fileinputX-trXoperatorr(jjX>http://docs.python.org/3/library/operator.html#module-operatorX-trXdistutils.utilr(jjXDhttp://docs.python.org/3/distutils/apiref.html#module-distutils.utilX-trXarrayr(jjX8http://docs.python.org/3/library/array.html#module-arrayX-trXxml.dom.pulldomr(jjXLhttp://docs.python.org/3/library/xml.dom.pulldom.html#module-xml.dom.pulldomX-trXdistutils.command.install_datar(jjXThttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_dataX-trX statisticsr(jjXBhttp://docs.python.org/3/library/statistics.html#module-statisticsX-trXdistutils.command.checkr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.checkX-trXurllib.robotparserr(jjXRhttp://docs.python.org/3/library/urllib.robotparser.html#module-urllib.robotparserX-trXmultiprocessing.connectionr(jjXWhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.connectionX-trXxml.sax.handlerr(jjXLhttp://docs.python.org/3/library/xml.sax.handler.html#module-xml.sax.handlerX-trXimportlib.machineryr(jjXJhttp://docs.python.org/3/library/importlib.html#module-importlib.machineryX-trXdistutils.command.build_scriptsr(jjXUhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_scriptsX-trXimaplibr(jjX<http://docs.python.org/3/library/imaplib.html#module-imaplibX-trXxdrlibr(jjX:http://docs.python.org/3/library/xdrlib.html#module-xdrlibX-trXpwdr(jjX4http://docs.python.org/3/library/pwd.html#module-pwdX-trXturtler(jjX:http://docs.python.org/3/library/turtle.html#module-turtleX-trXcopyr(jjX6http://docs.python.org/3/library/copy.html#module-copyX-trXhashlibr(jjX<http://docs.python.org/3/library/hashlib.html#module-hashlibX-trX distutils.logr(jjXChttp://docs.python.org/3/distutils/apiref.html#module-distutils.logX-trXkeywordr(jjX<http://docs.python.org/3/library/keyword.html#module-keywordX-trXsyslogr(jjX:http://docs.python.org/3/library/syslog.html#module-syslogX-trXuur(jjX2http://docs.python.org/3/library/uu.html#module-uuX-trXxml.dom.minidomr(jjXLhttp://docs.python.org/3/library/xml.dom.minidom.html#module-xml.dom.minidomX-trX tkinter.tixr(jjXDhttp://docs.python.org/3/library/tkinter.tix.html#module-tkinter.tixX-trX stringprepr(jjXBhttp://docs.python.org/3/library/stringprep.html#module-stringprepX-trXdistutils.extensionr(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.extensionX-trXcolorsysr(jjX>http://docs.python.org/3/library/colorsys.html#module-colorsysX-trXwinsoundr(jjX>http://docs.python.org/3/library/winsound.html#module-winsoundX-trXdistutils.command.cleanr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.cleanX-trXhtmlr(jjX6http://docs.python.org/3/library/html.html#module-htmlX-trXreprlibr(jjX<http://docs.python.org/3/library/reprlib.html#module-reprlibX-trXwsgiref.simple_serverr(jjXJhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.simple_serverX-trXparserr(jjX:http://docs.python.org/3/library/parser.html#module-parserX-trXgetpassr(jjX<http://docs.python.org/3/library/getpass.html#module-getpassX-trX contextlibr(jjXBhttp://docs.python.org/3/library/contextlib.html#module-contextlibX-trX__main__r(jjX>http://docs.python.org/3/library/__main__.html#module-__main__X-trXcopyregr(jjX<http://docs.python.org/3/library/copyreg.html#module-copyregX-trXsymtabler(jjX>http://docs.python.org/3/library/symtable.html#module-symtableX-trX xmlrpc.clientr(jjXHhttp://docs.python.org/3/library/xmlrpc.client.html#module-xmlrpc.clientX-trX configparserr(jjXFhttp://docs.python.org/3/library/configparser.html#module-configparserX-trXbz2r(jjX4http://docs.python.org/3/library/bz2.html#module-bz2X-trXlib2to3r(jjX9http://docs.python.org/3/library/2to3.html#module-lib2to3X-trX threadingr(jjX@http://docs.python.org/3/library/threading.html#module-threadingX-trXcryptr(jjX8http://docs.python.org/3/library/crypt.html#module-cryptX-trXwsgiref.handlersr(jjXEhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.handlersX-trXdistutils.unixccompilerr (jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.unixccompilerX-tr Xgettextr (jjX<http://docs.python.org/3/library/gettext.html#module-gettextX-tr Xtestr (jjX6http://docs.python.org/3/library/test.html#module-testX-trXgetoptr(jjX:http://docs.python.org/3/library/getopt.html#module-getoptX-trXemail.generatorr(jjXLhttp://docs.python.org/3/library/email.generator.html#module-email.generatorX-trXstatr(jjX6http://docs.python.org/3/library/stat.html#module-statX-trXspwdr(jjX6http://docs.python.org/3/library/spwd.html#module-spwdX-trXdistutils.command.bdist_dumbr(jjXRhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_dumbX-trXtracer(jjX8http://docs.python.org/3/library/trace.html#module-traceX-trXwarningsr(jjX>http://docs.python.org/3/library/warnings.html#module-warningsX-trXhttp.cookiejarr(jjXJhttp://docs.python.org/3/library/http.cookiejar.html#module-http.cookiejarX-trXsymbolr(jjX:http://docs.python.org/3/library/symbol.html#module-symbolX-tr Xcgitbr!(jjX8http://docs.python.org/3/library/cgitb.html#module-cgitbX-tr"Xtermiosr#(jjX<http://docs.python.org/3/library/termios.html#module-termiosX-tr$Xdistutils.file_utilr%(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.file_utilX-tr&Xreadliner'(jjX>http://docs.python.org/3/library/readline.html#module-readlineX-tr(Xxml.domr)(jjX<http://docs.python.org/3/library/xml.dom.html#module-xml.domX-tr*X formatterr+(jjX@http://docs.python.org/3/library/formatter.html#module-formatterX-tr,Xencodings.mbcsr-(jjXBhttp://docs.python.org/3/library/codecs.html#module-encodings.mbcsX-tr.Xhmacr/(jjX6http://docs.python.org/3/library/hmac.html#module-hmacX-tr0X linecacher1(jjX@http://docs.python.org/3/library/linecache.html#module-linecacheX-tr2Xcmathr3(jjX8http://docs.python.org/3/library/cmath.html#module-cmathX-tr4Xtimer5(jjX6http://docs.python.org/3/library/time.html#module-timeX-tr6Xdistutils.text_filer7(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.text_fileX-tr8Xpoplibr9(jjX:http://docs.python.org/3/library/poplib.html#module-poplibX-tr:Xpipesr;(jjX8http://docs.python.org/3/library/pipes.html#module-pipesX-tr<Xasyncior=(jjX<http://docs.python.org/3/library/asyncio.html#module-asyncioX-tr>uX std:envvarr?}r@(XPYTHONIOENCODINGrA(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONIOENCODINGX-trBX PYTHONY2KrC(jjX<http://docs.python.org/3/using/cmdline.html#envvar-PYTHONY2KX-trDX PYTHONDEBUGrE(jjX>http://docs.python.org/3/using/cmdline.html#envvar-PYTHONDEBUGX-trFX PYTHONPATHrG(jjX=http://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATHX-trHX PYTHONCASEOKrI(jjX?http://docs.python.org/3/using/cmdline.html#envvar-PYTHONCASEOKX-trJXPYTHONDONTWRITEBYTECODErK(jjXJhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONDONTWRITEBYTECODEX-trLX PYTHONHOMErM(jjX=http://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOMEX-trNXPYTHONFAULTHANDLERrO(jjXEhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONFAULTHANDLERX-trPXPYTHONEXECUTABLErQ(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONEXECUTABLEX-trRXPYTHONUNBUFFEREDrS(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFEREDX-trTXPYTHONDUMPREFSrU(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONDUMPREFSX-trVXPYTHONASYNCIODEBUGrW(jjXEhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONASYNCIODEBUGX-trXXPYTHONTHREADDEBUGrY(jjXDhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONTHREADDEBUGX-trZX PYTHONINSPECTr[(jjX@http://docs.python.org/3/using/cmdline.html#envvar-PYTHONINSPECTX-tr\X PYTHONSTARTUPr](jjX@http://docs.python.org/3/using/cmdline.html#envvar-PYTHONSTARTUPX-tr^X PYTHONVERBOSEr_(jjX@http://docs.python.org/3/using/cmdline.html#envvar-PYTHONVERBOSEX-tr`XPYTHONMALLOCSTATSra(jjXDhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONMALLOCSTATSX-trbXPYTHONHASHSEEDrc(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEEDX-trdXPYTHONTRACEMALLOCre(jjXDhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONTRACEMALLOCX-trfXPYTHONNOUSERSITErg(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONNOUSERSITEX-trhXPYTHONWARNINGSri(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGSX-trjXPYTHONOPTIMIZErk(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONOPTIMIZEX-trlXPYTHONUSERBASErm(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONUSERBASEX-trnuX std:opcodero}rp(XLOAD_CLASSDEREFrq(jjX@http://docs.python.org/3/library/dis.html#opcode-LOAD_CLASSDEREFX-trrX LIST_APPENDrs(jjX<http://docs.python.org/3/library/dis.html#opcode-LIST_APPENDX-trtX INPLACE_XORru(jjX<http://docs.python.org/3/library/dis.html#opcode-INPLACE_XORX-trvX CALL_FUNCTIONrw(jjX>http://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTIONX-trxXDUP_TOPry(jjX8http://docs.python.org/3/library/dis.html#opcode-DUP_TOPX-trzX STORE_GLOBALr{(jjX=http://docs.python.org/3/library/dis.html#opcode-STORE_GLOBALX-tr|XINPLACE_SUBTRACTr}(jjXAhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_SUBTRACTX-tr~X STORE_NAMEr(jjX;http://docs.python.org/3/library/dis.html#opcode-STORE_NAMEX-trX DELETE_SUBSCRr(jjX>http://docs.python.org/3/library/dis.html#opcode-DELETE_SUBSCRX-trX STORE_ATTRr(jjX;http://docs.python.org/3/library/dis.html#opcode-STORE_ATTRX-trX YIELD_VALUEr(jjX<http://docs.python.org/3/library/dis.html#opcode-YIELD_VALUEX-trX END_FINALLYr(jjX<http://docs.python.org/3/library/dis.html#opcode-END_FINALLYX-trXINPLACE_FLOOR_DIVIDEr(jjXEhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_FLOOR_DIVIDEX-trX MAKE_FUNCTIONr(jjX>http://docs.python.org/3/library/dis.html#opcode-MAKE_FUNCTIONX-trXMAP_ADDr(jjX8http://docs.python.org/3/library/dis.html#opcode-MAP_ADDX-trX BINARY_XORr(jjX;http://docs.python.org/3/library/dis.html#opcode-BINARY_XORX-trX BREAK_LOOPr(jjX;http://docs.python.org/3/library/dis.html#opcode-BREAK_LOOPX-trX STORE_SUBSCRr(jjX=http://docs.python.org/3/library/dis.html#opcode-STORE_SUBSCRX-trX UNPACK_EXr(jjX:http://docs.python.org/3/library/dis.html#opcode-UNPACK_EXX-trX RETURN_VALUEr(jjX=http://docs.python.org/3/library/dis.html#opcode-RETURN_VALUEX-trXINPLACE_MULTIPLYr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_MULTIPLYX-trX POP_BLOCKr(jjX:http://docs.python.org/3/library/dis.html#opcode-POP_BLOCKX-trX LOAD_ATTRr(jjX:http://docs.python.org/3/library/dis.html#opcode-LOAD_ATTRX-trX SETUP_LOOPr(jjX;http://docs.python.org/3/library/dis.html#opcode-SETUP_LOOPX-trX BUILD_SETr(jjX:http://docs.python.org/3/library/dis.html#opcode-BUILD_SETX-trXPOP_TOPr(jjX8http://docs.python.org/3/library/dis.html#opcode-POP_TOPX-trXBINARY_TRUE_DIVIDEr(jjXChttp://docs.python.org/3/library/dis.html#opcode-BINARY_TRUE_DIVIDEX-trXROT_TWOr(jjX8http://docs.python.org/3/library/dis.html#opcode-ROT_TWOX-trX LOAD_CONSTr(jjX;http://docs.python.org/3/library/dis.html#opcode-LOAD_CONSTX-trX SETUP_FINALLYr(jjX>http://docs.python.org/3/library/dis.html#opcode-SETUP_FINALLYX-trX IMPORT_FROMr(jjX<http://docs.python.org/3/library/dis.html#opcode-IMPORT_FROMX-trXINPLACE_TRUE_DIVIDEr(jjXDhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_TRUE_DIVIDEX-trXUNARY_POSITIVEr(jjX?http://docs.python.org/3/library/dis.html#opcode-UNARY_POSITIVEX-trXCALL_FUNCTION_KWr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_KWX-trX INPLACE_ANDr(jjX<http://docs.python.org/3/library/dis.html#opcode-INPLACE_ANDX-trXCALL_FUNCTION_VAR_KWr(jjXEhttp://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_VAR_KWX-trX DELETE_FASTr(jjX<http://docs.python.org/3/library/dis.html#opcode-DELETE_FASTX-trX EXTENDED_ARGr(jjX=http://docs.python.org/3/library/dis.html#opcode-EXTENDED_ARGX-trX SETUP_EXCEPTr(jjX=http://docs.python.org/3/library/dis.html#opcode-SETUP_EXCEPTX-trX INPLACE_POWERr(jjX>http://docs.python.org/3/library/dis.html#opcode-INPLACE_POWERX-trX IMPORT_NAMEr(jjX<http://docs.python.org/3/library/dis.html#opcode-IMPORT_NAMEX-trXUNARY_NEGATIVEr(jjX?http://docs.python.org/3/library/dis.html#opcode-UNARY_NEGATIVEX-trX LOAD_GLOBALr(jjX<http://docs.python.org/3/library/dis.html#opcode-LOAD_GLOBALX-trX PRINT_EXPRr(jjX;http://docs.python.org/3/library/dis.html#opcode-PRINT_EXPRX-trX YIELD_FROMr(jjX;http://docs.python.org/3/library/dis.html#opcode-YIELD_FROMX-trXFOR_ITERr(jjX9http://docs.python.org/3/library/dis.html#opcode-FOR_ITERX-trX DELETE_NAMEr(jjX<http://docs.python.org/3/library/dis.html#opcode-DELETE_NAMEX-trX BUILD_TUPLEr(jjX<http://docs.python.org/3/library/dis.html#opcode-BUILD_TUPLEX-trX BUILD_LISTr(jjX;http://docs.python.org/3/library/dis.html#opcode-BUILD_LISTX-trX DELETE_DEREFr(jjX=http://docs.python.org/3/library/dis.html#opcode-DELETE_DEREFX-trX HAVE_ARGUMENTr(jjX>http://docs.python.org/3/library/dis.html#opcode-HAVE_ARGUMENTX-trX COMPARE_OPr(jjX;http://docs.python.org/3/library/dis.html#opcode-COMPARE_OPX-trX BINARY_ORr(jjX:http://docs.python.org/3/library/dis.html#opcode-BINARY_ORX-trXUNPACK_SEQUENCEr(jjX@http://docs.python.org/3/library/dis.html#opcode-UNPACK_SEQUENCEX-trX STORE_FASTr(jjX;http://docs.python.org/3/library/dis.html#opcode-STORE_FASTX-trX BINARY_ANDr(jjX;http://docs.python.org/3/library/dis.html#opcode-BINARY_ANDX-trXCALL_FUNCTION_VARr(jjXBhttp://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_VARX-trX WITH_CLEANUPr(jjX=http://docs.python.org/3/library/dis.html#opcode-WITH_CLEANUPX-trX DELETE_ATTRr(jjX<http://docs.python.org/3/library/dis.html#opcode-DELETE_ATTRX-trXPOP_JUMP_IF_TRUEr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-POP_JUMP_IF_TRUEX-trXJUMP_IF_FALSE_OR_POPr(jjXEhttp://docs.python.org/3/library/dis.html#opcode-JUMP_IF_FALSE_OR_POPX-trXSET_ADDr(jjX8http://docs.python.org/3/library/dis.html#opcode-SET_ADDX-trX CONTINUE_LOOPr(jjX>http://docs.python.org/3/library/dis.html#opcode-CONTINUE_LOOPX-trX LOAD_DEREFr(jjX;http://docs.python.org/3/library/dis.html#opcode-LOAD_DEREFX-trX RAISE_VARARGSr(jjX>http://docs.python.org/3/library/dis.html#opcode-RAISE_VARARGSX-trX LOAD_NAMEr(jjX:http://docs.python.org/3/library/dis.html#opcode-LOAD_NAMEX-trX DELETE_GLOBALr(jjX>http://docs.python.org/3/library/dis.html#opcode-DELETE_GLOBALX-trX BINARY_MODULOr(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_MODULOX-trXGET_ITERr(jjX9http://docs.python.org/3/library/dis.html#opcode-GET_ITERX-trX STORE_DEREFr(jjX<http://docs.python.org/3/library/dis.html#opcode-STORE_DEREFX-trXPOP_JUMP_IF_FALSEr(jjXBhttp://docs.python.org/3/library/dis.html#opcode-POP_JUMP_IF_FALSEX-trX BINARY_ADDr(jjX;http://docs.python.org/3/library/dis.html#opcode-BINARY_ADDX-trX LOAD_FASTr(jjX:http://docs.python.org/3/library/dis.html#opcode-LOAD_FASTX-trX UNARY_NOTr(jjX:http://docs.python.org/3/library/dis.html#opcode-UNARY_NOTX-trX BINARY_LSHIFTr(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_LSHIFTX-trXJUMP_IF_TRUE_OR_POPr(jjXDhttp://docs.python.org/3/library/dis.html#opcode-JUMP_IF_TRUE_OR_POPX-trX LOAD_CLOSUREr (jjX=http://docs.python.org/3/library/dis.html#opcode-LOAD_CLOSUREX-tr X DUP_TOP_TWOr (jjX<http://docs.python.org/3/library/dis.html#opcode-DUP_TOP_TWOX-tr X IMPORT_STARr (jjX<http://docs.python.org/3/library/dis.html#opcode-IMPORT_STARX-trXBINARY_FLOOR_DIVIDEr(jjXDhttp://docs.python.org/3/library/dis.html#opcode-BINARY_FLOOR_DIVIDEX-trX INPLACE_ORr(jjX;http://docs.python.org/3/library/dis.html#opcode-INPLACE_ORX-trX BINARY_RSHIFTr(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_RSHIFTX-trXLOAD_BUILD_CLASSr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-LOAD_BUILD_CLASSX-trXBINARY_SUBTRACTr(jjX@http://docs.python.org/3/library/dis.html#opcode-BINARY_SUBTRACTX-trX STORE_MAPr(jjX:http://docs.python.org/3/library/dis.html#opcode-STORE_MAPX-trX INPLACE_ADDr(jjX<http://docs.python.org/3/library/dis.html#opcode-INPLACE_ADDX-trXINPLACE_LSHIFTr(jjX?http://docs.python.org/3/library/dis.html#opcode-INPLACE_LSHIFTX-trXINPLACE_MODULOr(jjX?http://docs.python.org/3/library/dis.html#opcode-INPLACE_MODULOX-tr X BINARY_SUBSCRr!(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_SUBSCRX-tr"X BINARY_POWERr#(jjX=http://docs.python.org/3/library/dis.html#opcode-BINARY_POWERX-tr$X POP_EXCEPTr%(jjX;http://docs.python.org/3/library/dis.html#opcode-POP_EXCEPTX-tr&X BUILD_MAPr'(jjX:http://docs.python.org/3/library/dis.html#opcode-BUILD_MAPX-tr(X ROT_THREEr)(jjX:http://docs.python.org/3/library/dis.html#opcode-ROT_THREEX-tr*X SETUP_WITHr+(jjX;http://docs.python.org/3/library/dis.html#opcode-SETUP_WITHX-tr,X UNARY_INVERTr-(jjX=http://docs.python.org/3/library/dis.html#opcode-UNARY_INVERTX-tr.XINPLACE_RSHIFTr/(jjX?http://docs.python.org/3/library/dis.html#opcode-INPLACE_RSHIFTX-tr0X MAKE_CLOSUREr1(jjX=http://docs.python.org/3/library/dis.html#opcode-MAKE_CLOSUREX-tr2XBINARY_MULTIPLYr3(jjX@http://docs.python.org/3/library/dis.html#opcode-BINARY_MULTIPLYX-tr4X BUILD_SLICEr5(jjX<http://docs.python.org/3/library/dis.html#opcode-BUILD_SLICEX-tr6X JUMP_ABSOLUTEr7(jjX>http://docs.python.org/3/library/dis.html#opcode-JUMP_ABSOLUTEX-tr8XNOPr9(jjX4http://docs.python.org/3/library/dis.html#opcode-NOPX-tr:X JUMP_FORWARDr;(jjX=http://docs.python.org/3/library/dis.html#opcode-JUMP_FORWARDX-tr<uX std:2to3fixerr=}r>(Xxranger?(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-xrangeX-tr@X numliteralsrA(jjX@http://docs.python.org/3/library/2to3.html#2to3fixer-numliteralsX-trBXreducerC(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-reduceX-trDX set_literalrE(jjX@http://docs.python.org/3/library/2to3.html#2to3fixer-set_literalX-trFXimports2rG(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-imports2X-trHXinternrI(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-internX-trJXhas_keyrK(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-has_keyX-trLXlongrM(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-longX-trNXunicoderO(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-unicodeX-trPX xreadlinesrQ(jjX?http://docs.python.org/3/library/2to3.html#2to3fixer-xreadlinesX-trRXoperatorrS(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-operatorX-trTXapplyrU(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-applyX-trVX isinstancerW(jjX?http://docs.python.org/3/library/2to3.html#2to3fixer-isinstanceX-trXXnonzerorY(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-nonzeroX-trZX basestringr[(jjX?http://docs.python.org/3/library/2to3.html#2to3fixer-basestringX-tr\Xraiser](jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-raiseX-tr^Xstandard_errorr_(jjXChttp://docs.python.org/3/library/2to3.html#2to3fixer-standard_errorX-tr`Xgetcwdura(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-getcwduX-trbXnerc(jjX7http://docs.python.org/3/library/2to3.html#2to3fixer-neX-trdXurllibre(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-urllibX-trfX funcattrsrg(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-funcattrsX-trhXfutureri(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-futureX-trjXdictrk(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-dictX-trlXitertools_importsrm(jjXFhttp://docs.python.org/3/library/2to3.html#2to3fixer-itertools_importsX-trnXimportsro(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-importsX-trpXprintrq(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-printX-trrXimportrs(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-importX-trtXws_commaru(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-ws_commaX-trvX metaclassrw(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-metaclassX-trxXexceptry(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-exceptX-trzXmapr{(jjX8http://docs.python.org/3/library/2to3.html#2to3fixer-mapX-tr|Xassertsr}(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-assertsX-tr~Xexecr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-execX-trXbufferr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-bufferX-trXexecfiler(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-execfileX-trX tuple_paramsr(jjXAhttp://docs.python.org/3/library/2to3.html#2to3fixer-tuple_paramsX-trXreprr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-reprX-trXcallabler(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-callableX-trXnextr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-nextX-trXinputr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-inputX-trXthrowr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-throwX-trXtypesr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-typesX-trXzipr(jjX8http://docs.python.org/3/library/2to3.html#2to3fixer-zipX-trXrenamesr(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-renamesX-trXidiomsr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-idiomsX-trX raw_inputr(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-raw_inputX-trXparenr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-parenX-trXfilterr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-filterX-trXreloadr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-reloadX-trX itertoolsr(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-itertoolsX-trXsys_excr(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-sys_excX-trX methodattrsr(jjX@http://docs.python.org/3/library/2to3.html#2to3fixer-methodattrsX-trXexitfuncr(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-exitfuncX-truXc:macror}r(XPyBUF_F_CONTIGUOUSr(jjX?http://docs.python.org/3/c-api/buffer.html#c.PyBUF_F_CONTIGUOUSX-trXPy_RETURN_NOTIMPLEMENTEDr(jjXEhttp://docs.python.org/3/c-api/object.html#c.Py_RETURN_NOTIMPLEMENTEDX-trX PyObject_HEADr(jjX>http://docs.python.org/3/c-api/structures.html#c.PyObject_HEADX-trXPyVarObject_HEAD_INITr(jjXFhttp://docs.python.org/3/c-api/structures.html#c.PyVarObject_HEAD_INITX-trXPy_BLOCK_THREADSr(jjX;http://docs.python.org/3/c-api/init.html#c.Py_BLOCK_THREADSX-trXPyBUF_INDIRECTr(jjX;http://docs.python.org/3/c-api/buffer.html#c.PyBUF_INDIRECTX-trXPyUnicode_4BYTE_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_4BYTE_KINDX-trX PyBUF_FULL_ROr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULL_ROX-trXPyObject_HEAD_INITr(jjXChttp://docs.python.org/3/c-api/structures.html#c.PyObject_HEAD_INITX-trXPy_RETURN_NONEr(jjX9http://docs.python.org/3/c-api/none.html#c.Py_RETURN_NONEX-trXPyBUF_RECORDS_ROr(jjX=http://docs.python.org/3/c-api/buffer.html#c.PyBUF_RECORDS_ROX-trXPy_UNICODE_JOIN_SURROGATESr(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_JOIN_SURROGATESX-trXPyBUF_WRITABLEr(jjX;http://docs.python.org/3/c-api/buffer.html#c.PyBUF_WRITABLEX-trX PyBUF_STRIDESr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDESX-trXPyBUF_C_CONTIGUOUSr(jjX?http://docs.python.org/3/c-api/buffer.html#c.PyBUF_C_CONTIGUOUSX-trX PyBUF_FORMATr(jjX9http://docs.python.org/3/c-api/buffer.html#c.PyBUF_FORMATX-trXPyBUF_CONTIG_ROr(jjX<http://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIG_ROX-trXPy_RETURN_FALSEr(jjX:http://docs.python.org/3/c-api/bool.html#c.Py_RETURN_FALSEX-trXPy_BEGIN_ALLOW_THREADSr(jjXAhttp://docs.python.org/3/c-api/init.html#c.Py_BEGIN_ALLOW_THREADSX-trX PyBUF_CONTIGr(jjX9http://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIGX-trX PyBUF_STRIDEDr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDEDX-trXPyUnicode_2BYTE_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_2BYTE_KINDX-trXPy_UNBLOCK_THREADSr(jjX=http://docs.python.org/3/c-api/init.html#c.Py_UNBLOCK_THREADSX-trXPy_UNICODE_IS_SURROGATEr(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_SURROGATEX-trX PyBUF_RECORDSr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_RECORDSX-trXPyBUF_NDr(jjX5http://docs.python.org/3/c-api/buffer.html#c.PyBUF_NDX-trX PyBUF_FULLr(jjX7http://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULLX-trXPyObject_VAR_HEADr(jjXBhttp://docs.python.org/3/c-api/structures.html#c.PyObject_VAR_HEADX-trX PyBUF_SIMPLEr(jjX9http://docs.python.org/3/c-api/buffer.html#c.PyBUF_SIMPLEX-trXPyUnicode_WCHAR_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WCHAR_KINDX-trXPy_UNICODE_IS_LOW_SURROGATEr(jjXIhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_LOW_SURROGATEX-trXPyUnicode_1BYTE_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_1BYTE_KINDX-trXPy_UNICODE_IS_HIGH_SURROGATEr(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_HIGH_SURROGATEX-trXPy_END_ALLOW_THREADSr(jjX?http://docs.python.org/3/c-api/init.html#c.Py_END_ALLOW_THREADSX-trXPyBUF_ANY_CONTIGUOUSr(jjXAhttp://docs.python.org/3/c-api/buffer.html#c.PyBUF_ANY_CONTIGUOUSX-trXPy_RETURN_TRUEr(jjX9http://docs.python.org/3/c-api/bool.html#c.Py_RETURN_TRUEX-trXPyBUF_STRIDED_ROr(jjX=http://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDED_ROX-truXstd:pdbcommandr}r(Xhelpr(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-helpX-trXjumpr(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-jumpX-trX undisplayr(jjX>http://docs.python.org/3/library/pdb.html#pdbcommand-undisplayX-trXrunr(jjX8http://docs.python.org/3/library/pdb.html#pdbcommand-runX-trXtbreakr(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-tbreakX-trX!(jjX6http://docs.python.org/3/library/pdb.html#pdbcommand-!X-trXquitr(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-quitX-trXppr(jjX7http://docs.python.org/3/library/pdb.html#pdbcommand-ppX-trXp(jjX6http://docs.python.org/3/library/pdb.html#pdbcommand-pX-trXunaliasr(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-unaliasX-trXinteractr (jjX=http://docs.python.org/3/library/pdb.html#pdbcommand-interactX-tr Xnextr (jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-nextX-tr Xsourcer (jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-sourceX-trX conditionr(jjX>http://docs.python.org/3/library/pdb.html#pdbcommand-conditionX-trXuntilr(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-untilX-trXenabler(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-enableX-trXreturnr(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-returnX-trXargsr(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-argsX-trXbreakr(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-breakX-trXstepr(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-stepX-trXdisabler(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-disableX-trXrestartr(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-restartX-tr Xdownr!(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-downX-tr"Xcommandsr#(jjX=http://docs.python.org/3/library/pdb.html#pdbcommand-commandsX-tr$Xwhatisr%(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-whatisX-tr&Xclearr'(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-clearX-tr(Xlistr)(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-listX-tr*Xupr+(jjX7http://docs.python.org/3/library/pdb.html#pdbcommand-upX-tr,Xdisplayr-(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-displayX-tr.Xignorer/(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-ignoreX-tr0Xaliasr1(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-aliasX-tr2Xcontinuer3(jjX=http://docs.python.org/3/library/pdb.html#pdbcommand-continueX-tr4Xwherer5(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-whereX-tr6Xllr7(jjX7http://docs.python.org/3/library/pdb.html#pdbcommand-llX-tr8uX std:tokenr9}r:(Xtry_stmtr;(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-try_stmtX-tr<X longstringr=(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longstringX-tr>Xshortstringitemr?(jjXVhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortstringitemX-tr@Xdirective_option_namerA(jjXQhttp://docs.python.org/3/library/doctest.html#grammar-token-directive_option_nameX-trBX parenth_formrC(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-parenth_formX-trDXhexdigitrE(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-hexdigitX-trFXassignment_stmtrG(jjXRhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-assignment_stmtX-trHXsuiterI(jjXJhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-suiteX-trJX try2_stmtrK(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-try2_stmtX-trLXand_exprrM(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-and_exprX-trNXdigitrO(jjXLhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-digitX-trPXlongstringitemrQ(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longstringitemX-trRX simple_stmtrS(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-simple_stmtX-trTX lower_boundrU(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-lower_boundX-trVX exponentfloatrW(jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-exponentfloatX-trXXclassdefrY(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-classdefX-trZX bytesprefixr[(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bytesprefixX-tr\Xslicingr](jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-slicingX-tr^Xfor_stmtr_(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-for_stmtX-tr`Xlongstringcharra(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longstringcharX-trbX binintegerrc(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-binintegerX-trdXintegerre(jjXNhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-integerX-trfX longbytesitemrg(jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longbytesitemX-trhX decoratorri(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-decoratorX-trjXnamerk(jjXGhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-nameX-trlX key_datumrm(jjXKhttp://docs.python.org/3/reference/expressions.html#grammar-token-key_datumX-trnXnumeric_stringro(jjXLhttp://docs.python.org/3/library/functions.html#grammar-token-numeric_stringX-trpX dict_displayrq(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-dict_displayX-trrXif_stmtrs(jjXLhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-if_stmtX-trtXparameter_listru(jjXShttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-parameter_listX-trvXdirective_optionrw(jjXLhttp://docs.python.org/3/library/doctest.html#grammar-token-directive_optionX-trxX list_displayry(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-list_displayX-trzXor_testr{(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-or_testX-tr|Xfuncnamer}(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-funcnameX-tr~X with_stmtr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-with_stmtX-trXcomp_forr(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_forX-trXbindigitr(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bindigitX-trXpositional_argumentsr(jjXVhttp://docs.python.org/3/reference/expressions.html#grammar-token-positional_argumentsX-trX identifierr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-identifierX-trX shortbytesr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortbytesX-trXexpression_nocondr(jjXShttp://docs.python.org/3/reference/expressions.html#grammar-token-expression_nocondX-trXaugmented_assignment_stmtr(jjX\http://docs.python.org/3/reference/simple_stmts.html#grammar-token-augmented_assignment_stmtX-trXsignr(jjXBhttp://docs.python.org/3/library/functions.html#grammar-token-signX-trX xid_startr(jjXPhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-xid_startX-trXfuture_statementr(jjXShttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-future_statementX-trXor_exprr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-or_exprX-trX enclosurer(jjXKhttp://docs.python.org/3/reference/expressions.html#grammar-token-enclosureX-trXrelative_moduler(jjXRhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-relative_moduleX-trXcomp_ifr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_ifX-trXexponentr(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-exponentX-trX directiver(jjXEhttp://docs.python.org/3/library/doctest.html#grammar-token-directiveX-trXa_exprr(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-a_exprX-trX shift_exprr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-shift_exprX-trX lc_letterr(jjXLhttp://docs.python.org/3/reference/introduction.html#grammar-token-lc_letterX-trX stringprefixr(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-stringprefixX-trX argument_listr(jjXOhttp://docs.python.org/3/reference/expressions.html#grammar-token-argument_listX-trX decoratorsr(jjXOhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-decoratorsX-trX compound_stmtr(jjXRhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-compound_stmtX-trXshortbytesitemr(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortbytesitemX-trX dotted_namer(jjXPhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-dotted_nameX-trX nonlocal_stmtr(jjXPhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-nonlocal_stmtX-trXdict_comprehensionr(jjXThttp://docs.python.org/3/reference/expressions.html#grammar-token-dict_comprehensionX-trXid_startr(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-id_startX-trX longbytesr(jjXPhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longbytesX-trX augtargetr(jjXLhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-augtargetX-trX index_stringr(jjXGhttp://docs.python.org/3/library/string.html#grammar-token-index_stringX-trXand_testr(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-and_testX-trXxor_exprr(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-xor_exprX-trX try1_stmtr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-try1_stmtX-trX comparisonr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-comparisonX-trXattribute_namer(jjXIhttp://docs.python.org/3/library/string.html#grammar-token-attribute_nameX-trX pass_stmtr(jjXLhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-pass_stmtX-trX upper_boundr(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-upper_boundX-trX imagnumberr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-imagnumberX-trX proper_slicer(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-proper_sliceX-trX yield_atomr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-yield_atomX-trXstrider(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-strideX-trXbytesescapeseqr(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bytesescapeseqX-trX comp_iterr(jjXKhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_iterX-trX expressionr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-expressionX-trXarg_namer(jjXChttp://docs.python.org/3/library/string.html#grammar-token-arg_nameX-trX element_indexr(jjXHhttp://docs.python.org/3/library/string.html#grammar-token-element_indexX-trX keyword_itemr(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-keyword_itemX-trXprimaryr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-primaryX-trX classnamer(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-classnameX-trX return_stmtr(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-return_stmtX-trX comprehensionr(jjXOhttp://docs.python.org/3/reference/expressions.html#grammar-token-comprehensionX-trX format_specr(jjXFhttp://docs.python.org/3/library/string.html#grammar-token-format_specX-trXshortstringcharr(jjXVhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortstringcharX-trX defparameterr(jjXQhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-defparameterX-trX slice_listr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-slice_listX-trX lambda_exprr(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-lambda_exprX-trX import_stmtr(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-import_stmtX-trX xid_continuer(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-xid_continueX-trX continue_stmtr(jjXPhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-continue_stmtX-trXu_exprr(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-u_exprX-trXwidthr(jjX@http://docs.python.org/3/library/string.html#grammar-token-widthX-trXliteralr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-literalX-trX attributerefr(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-attributerefX-trXcallr(jjXFhttp://docs.python.org/3/reference/expressions.html#grammar-token-callX-trXaugopr(jjXHhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-augopX-trX statementr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-statementX-trXtyper(jjX?http://docs.python.org/3/library/string.html#grammar-token-typeX-trXshortbytescharr (jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortbytescharX-tr X longbytescharr (jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longbytescharX-tr Xfractionr (jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-fractionX-trX precisionr(jjXDhttp://docs.python.org/3/library/string.html#grammar-token-precisionX-trX on_or_offr(jjXEhttp://docs.python.org/3/library/doctest.html#grammar-token-on_or_offX-trX target_listr(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-target_listX-trX bytesliteralr(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bytesliteralX-trXmoduler(jjXIhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-moduleX-trXatomr(jjXFhttp://docs.python.org/3/reference/expressions.html#grammar-token-atomX-trXfuncdefr(jjXLhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-funcdefX-trXstringescapeseqr(jjXVhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-stringescapeseqX-trX raise_stmtr(jjXMhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-raise_stmtX-tr X field_namer!(jjXEhttp://docs.python.org/3/library/string.html#grammar-token-field_nameX-tr"X stringliteralr#(jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-stringliteralX-tr$X subscriptionr%(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-subscriptionX-tr&Xkey_datum_listr'(jjXPhttp://docs.python.org/3/reference/expressions.html#grammar-token-key_datum_listX-tr(Xtargetr)(jjXIhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-targetX-tr*X file_inputr+(jjXThttp://docs.python.org/3/reference/toplevel_components.html#grammar-token-file_inputX-tr,Xalignr-(jjX@http://docs.python.org/3/library/string.html#grammar-token-alignX-tr.X set_displayr/(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-set_displayX-tr0X slice_itemr1(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-slice_itemX-tr2Xintpartr3(jjXNhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-intpartX-tr4X yield_stmtr5(jjXMhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-yield_stmtX-tr6X comp_operatorr7(jjXOhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_operatorX-tr8Xyield_expressionr9(jjXRhttp://docs.python.org/3/reference/expressions.html#grammar-token-yield_expressionX-tr:Xreplacement_fieldr;(jjXLhttp://docs.python.org/3/library/string.html#grammar-token-replacement_fieldX-tr<Xnot_testr=(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-not_testX-tr>Xfillr?(jjX?http://docs.python.org/3/library/string.html#grammar-token-fillX-tr@X break_stmtrA(jjXMhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-break_stmtX-trBX conversionrC(jjXEhttp://docs.python.org/3/library/string.html#grammar-token-conversionX-trDX octintegerrE(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-octintegerX-trFX inheritancerG(jjXPhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-inheritanceX-trHX eval_inputrI(jjXThttp://docs.python.org/3/reference/toplevel_components.html#grammar-token-eval_inputX-trJXnanrK(jjXAhttp://docs.python.org/3/library/functions.html#grammar-token-nanX-trLXfeaturerM(jjXJhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-featureX-trNXpowerrO(jjXGhttp://docs.python.org/3/reference/expressions.html#grammar-token-powerX-trPXdecimalintegerrQ(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-decimalintegerX-trRXexpression_stmtrS(jjXRhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-expression_stmtX-trTX global_stmtrU(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-global_stmtX-trVX with_itemrW(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-with_itemX-trXX parameterrY(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-parameterX-trZX id_continuer[(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-id_continueX-tr\Xinfinityr](jjXFhttp://docs.python.org/3/library/functions.html#grammar-token-infinityX-tr^Xoctdigitr_(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-octdigitX-tr`Xdirective_optionsra(jjXMhttp://docs.python.org/3/library/doctest.html#grammar-token-directive_optionsX-trbX numeric_valuerc(jjXKhttp://docs.python.org/3/library/functions.html#grammar-token-numeric_valueX-trdX nonzerodigitre(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-nonzerodigitX-trfXkeyword_argumentsrg(jjXShttp://docs.python.org/3/reference/expressions.html#grammar-token-keyword_argumentsX-trhX shortstringri(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortstringX-trjXm_exprrk(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-m_exprX-trlXinteractive_inputrm(jjX[http://docs.python.org/3/reference/toplevel_components.html#grammar-token-interactive_inputX-trnX hexintegerro(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-hexintegerX-trpX stmt_listrq(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-stmt_listX-trrX assert_stmtrs(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-assert_stmtX-trtX floatnumberru(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-floatnumberX-trvXlambda_expr_nocondrw(jjXThttp://docs.python.org/3/reference/expressions.html#grammar-token-lambda_expr_nocondX-trxXgenerator_expressionry(jjXVhttp://docs.python.org/3/reference/expressions.html#grammar-token-generator_expressionX-trzXexpression_listr{(jjXQhttp://docs.python.org/3/reference/expressions.html#grammar-token-expression_listX-tr|Xdel_stmtr}(jjXKhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-del_stmtX-tr~X while_stmtr(jjXOhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-while_stmtX-trXconditional_expressionr(jjXXhttp://docs.python.org/3/reference/expressions.html#grammar-token-conditional_expressionX-trX pointfloatr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-pointfloatX-truX py:exceptionr}r(Xxml.dom.SyntaxErrr(jjX?http://docs.python.org/3/library/xml.dom.html#xml.dom.SyntaxErrX-trXmailbox.ExternalClashErrorr(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.ExternalClashErrorX-trXhttp.client.CannotSendHeaderr(jjXNhttp://docs.python.org/3/library/http.client.html#http.client.CannotSendHeaderX-trX ssl.SSLErrorr(jjX6http://docs.python.org/3/library/ssl.html#ssl.SSLErrorX-trX SyntaxErrorr(jjX<http://docs.python.org/3/library/exceptions.html#SyntaxErrorX-trX dbm.errorr(jjX3http://docs.python.org/3/library/dbm.html#dbm.errorX-trXBrokenPipeErrorr(jjX@http://docs.python.org/3/library/exceptions.html#BrokenPipeErrorX-trXnntplib.NNTPProtocolErrorr(jjXGhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPProtocolErrorX-trXsmtplib.SMTPSenderRefusedr(jjXGhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPSenderRefusedX-trXstatistics.StatisticsErrorr(jjXKhttp://docs.python.org/3/library/statistics.html#statistics.StatisticsErrorX-trX sunau.Errorr(jjX7http://docs.python.org/3/library/sunau.html#sunau.ErrorX-trXgetopt.GetoptErrorr(jjX?http://docs.python.org/3/library/getopt.html#getopt.GetoptErrorX-trXnntplib.NNTPReplyErrorr(jjXDhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPReplyErrorX-trXuu.Errorr(jjX1http://docs.python.org/3/library/uu.html#uu.ErrorX-trXxml.dom.InvalidStateErrr(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidStateErrX-trX NameErrorr(jjX:http://docs.python.org/3/library/exceptions.html#NameErrorX-trXssl.CertificateErrorr(jjX>http://docs.python.org/3/library/ssl.html#ssl.CertificateErrorX-trXtarfile.ReadErrorr(jjX?http://docs.python.org/3/library/tarfile.html#tarfile.ReadErrorX-trXemail.errors.MessageParseErrorr(jjXQhttp://docs.python.org/3/library/email.errors.html#email.errors.MessageParseErrorX-trXConnectionResetErrorr(jjXEhttp://docs.python.org/3/library/exceptions.html#ConnectionResetErrorX-trXxml.dom.DomstringSizeErrr(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DomstringSizeErrX-trXtarfile.HeaderErrorr(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.HeaderErrorX-trX queue.Emptyr(jjX7http://docs.python.org/3/library/queue.html#queue.EmptyX-trX%configparser.InterpolationSyntaxErrorr(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.InterpolationSyntaxErrorX-trXmailbox.FormatErrorr(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.FormatErrorX-trXtest.support.TestFailedr(jjXBhttp://docs.python.org/3/library/test.html#test.support.TestFailedX-trXFileExistsErrorr(jjX@http://docs.python.org/3/library/exceptions.html#FileExistsErrorX-trX zlib.errorr(jjX5http://docs.python.org/3/library/zlib.html#zlib.errorX-trXpickle.PickleErrorr(jjX?http://docs.python.org/3/library/pickle.html#pickle.PickleErrorX-trXTabErrorr(jjX9http://docs.python.org/3/library/exceptions.html#TabErrorX-trXnetrc.NetrcParseErrorr(jjXAhttp://docs.python.org/3/library/netrc.html#netrc.NetrcParseErrorX-trXsubprocess.CalledProcessErrorr(jjXNhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessErrorX-trXsocket.timeoutr(jjX;http://docs.python.org/3/library/socket.html#socket.timeoutX-trX IndexErrorr(jjX;http://docs.python.org/3/library/exceptions.html#IndexErrorX-trX SyntaxWarningr(jjX>http://docs.python.org/3/library/exceptions.html#SyntaxWarningX-trXhttp.client.UnknownProtocolr(jjXMhttp://docs.python.org/3/library/http.client.html#http.client.UnknownProtocolX-trX StopIterationr(jjX>http://docs.python.org/3/library/exceptions.html#StopIterationX-trXemail.errors.HeaderParseErrorr(jjXPhttp://docs.python.org/3/library/email.errors.html#email.errors.HeaderParseErrorX-trXhttp.cookies.CookieErrorr(jjXKhttp://docs.python.org/3/library/http.cookies.html#http.cookies.CookieErrorX-trXRuntimeWarningr(jjX?http://docs.python.org/3/library/exceptions.html#RuntimeWarningX-trXtarfile.CompressionErrorr(jjXFhttp://docs.python.org/3/library/tarfile.html#tarfile.CompressionErrorX-trXxml.sax.SAXExceptionr(jjXBhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXExceptionX-trXxml.dom.InuseAttributeErrr(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InuseAttributeErrX-trXtarfile.StreamErrorr(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.StreamErrorX-trX curses.errorr(jjX9http://docs.python.org/3/library/curses.html#curses.errorX-trXWarningr(jjX8http://docs.python.org/3/library/exceptions.html#WarningX-trXasyncio.QueueEmptyr(jjXEhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.QueueEmptyX-trXzipfile.BadZipFiler(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.BadZipFileX-trX#multiprocessing.AuthenticationErrorr(jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.AuthenticationErrorX-trX dbm.gnu.errorr(jjX7http://docs.python.org/3/library/dbm.html#dbm.gnu.errorX-trXurllib.error.URLErrorr(jjXHhttp://docs.python.org/3/library/urllib.error.html#urllib.error.URLErrorX-trXparser.ParserErrorr(jjX?http://docs.python.org/3/library/parser.html#parser.ParserErrorX-trXIsADirectoryErrorr(jjXBhttp://docs.python.org/3/library/exceptions.html#IsADirectoryErrorX-trXssl.SSLWantReadErrorr(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLWantReadErrorX-trX struct.errorr(jjX9http://docs.python.org/3/library/struct.html#struct.errorX-trXtabnanny.NannyNagr(jjX@http://docs.python.org/3/library/tabnanny.html#tabnanny.NannyNagX-trX$concurrent.futures.BrokenProcessPoolr(jjX]http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.BrokenProcessPoolX-trXUnicodeTranslateErrorr(jjXFhttp://docs.python.org/3/library/exceptions.html#UnicodeTranslateErrorX-trX"configparser.DuplicateSectionErrorr(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.DuplicateSectionErrorX-trXbinascii.Errorr(jjX=http://docs.python.org/3/library/binascii.html#binascii.ErrorX-trXdbm.dumb.errorr(jjX8http://docs.python.org/3/library/dbm.html#dbm.dumb.errorX-trXPermissionErrorr(jjX@http://docs.python.org/3/library/exceptions.html#PermissionErrorX-trXxml.dom.NamespaceErrr(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NamespaceErrX-trXssl.SSLWantWriteErrorr(jjX?http://docs.python.org/3/library/ssl.html#ssl.SSLWantWriteErrorX-trXasyncio.QueueFullr(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.QueueFullX-trXos.errorr (jjX1http://docs.python.org/3/library/os.html#os.errorX-tr Xio.UnsupportedOperationr (jjX@http://docs.python.org/3/library/io.html#io.UnsupportedOperationX-tr Xpickle.UnpicklingErrorr (jjXChttp://docs.python.org/3/library/pickle.html#pickle.UnpicklingErrorX-trX!urllib.error.ContentTooShortErrorr(jjXThttp://docs.python.org/3/library/urllib.error.html#urllib.error.ContentTooShortErrorX-trXmultiprocessing.TimeoutErrorr(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.TimeoutErrorX-trX BufferErrorr(jjX<http://docs.python.org/3/library/exceptions.html#BufferErrorX-trX LookupErrorr(jjX<http://docs.python.org/3/library/exceptions.html#LookupErrorX-trXxml.dom.NotSupportedErrr(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NotSupportedErrX-trXConnectionErrorr(jjX@http://docs.python.org/3/library/exceptions.html#ConnectionErrorX-trXFloatingPointErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#FloatingPointErrorX-trXconfigparser.Errorr(jjXEhttp://docs.python.org/3/library/configparser.html#configparser.ErrorX-trXFileNotFoundErrorr(jjXBhttp://docs.python.org/3/library/exceptions.html#FileNotFoundErrorX-tr Xhttp.client.NotConnectedr!(jjXJhttp://docs.python.org/3/library/http.client.html#http.client.NotConnectedX-tr"XVMSErrorr#(jjX9http://docs.python.org/3/library/exceptions.html#VMSErrorX-tr$Xconfigparser.NoOptionErrorr%(jjXMhttp://docs.python.org/3/library/configparser.html#configparser.NoOptionErrorX-tr&X BytesWarningr'(jjX=http://docs.python.org/3/library/exceptions.html#BytesWarningX-tr(XConnectionRefusedErrorr)(jjXGhttp://docs.python.org/3/library/exceptions.html#ConnectionRefusedErrorX-tr*Xio.BlockingIOErrorr+(jjX;http://docs.python.org/3/library/io.html#io.BlockingIOErrorX-tr,Xxml.dom.DOMExceptionr-(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMExceptionX-tr.XIndentationErrorr/(jjXAhttp://docs.python.org/3/library/exceptions.html#IndentationErrorX-tr0Xxml.dom.HierarchyRequestErrr1(jjXIhttp://docs.python.org/3/library/xml.dom.html#xml.dom.HierarchyRequestErrX-tr2X FutureWarningr3(jjX>http://docs.python.org/3/library/exceptions.html#FutureWarningX-tr4X xdrlib.Errorr5(jjX9http://docs.python.org/3/library/xdrlib.html#xdrlib.ErrorX-tr6X select.errorr7(jjX9http://docs.python.org/3/library/select.html#select.errorX-tr8Xnntplib.NNTPErrorr9(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTPErrorX-tr:XUnicodeDecodeErrorr;(jjXChttp://docs.python.org/3/library/exceptions.html#UnicodeDecodeErrorX-tr<Xmailbox.NoSuchMailboxErrorr=(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.NoSuchMailboxErrorX-tr>Xconfigparser.InterpolationErrorr?(jjXRhttp://docs.python.org/3/library/configparser.html#configparser.InterpolationErrorX-tr@Xzipfile.LargeZipFilerA(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.LargeZipFileX-trBXsignal.ItimerErrorrC(jjX?http://docs.python.org/3/library/signal.html#signal.ItimerErrorX-trDXthreading.BrokenBarrierErrorrE(jjXLhttp://docs.python.org/3/library/threading.html#threading.BrokenBarrierErrorX-trFXbinascii.IncompleterG(jjXBhttp://docs.python.org/3/library/binascii.html#binascii.IncompleteX-trHXurllib.error.HTTPErrorrI(jjXIhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPErrorX-trJXzipfile.BadZipfilerK(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.BadZipfileX-trLXftplib.error_protorM(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.error_protoX-trNXsocket.gaierrorrO(jjX<http://docs.python.org/3/library/socket.html#socket.gaierrorX-trPX TypeErrorrQ(jjX:http://docs.python.org/3/library/exceptions.html#TypeErrorX-trRXsmtplib.SMTPDataErrorrS(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPDataErrorX-trTXKeyboardInterruptrU(jjXBhttp://docs.python.org/3/library/exceptions.html#KeyboardInterruptX-trVX UserWarningrW(jjX<http://docs.python.org/3/library/exceptions.html#UserWarningX-trXXZeroDivisionErrorrY(jjXBhttp://docs.python.org/3/library/exceptions.html#ZeroDivisionErrorX-trZXdoctest.UnexpectedExceptionr[(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedExceptionX-tr\X%email.errors.MultipartConversionErrorr](jjXXhttp://docs.python.org/3/library/email.errors.html#email.errors.MultipartConversionErrorX-tr^Xxml.dom.InvalidCharacterErrr_(jjXIhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidCharacterErrX-tr`XEOFErrorra(jjX9http://docs.python.org/3/library/exceptions.html#EOFErrorX-trbXResourceWarningrc(jjX@http://docs.python.org/3/library/exceptions.html#ResourceWarningX-trdX$configparser.InterpolationDepthErrorre(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.InterpolationDepthErrorX-trfX SystemErrorrg(jjX<http://docs.python.org/3/library/exceptions.html#SystemErrorX-trhXxml.parsers.expat.ExpatErrorri(jjXJhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatErrorX-trjXweakref.ReferenceErrorrk(jjXDhttp://docs.python.org/3/library/weakref.html#weakref.ReferenceErrorX-trlX BaseExceptionrm(jjX>http://docs.python.org/3/library/exceptions.html#BaseExceptionX-trnXemail.errors.BoundaryErrorro(jjXMhttp://docs.python.org/3/library/email.errors.html#email.errors.BoundaryErrorX-trpX _thread.errorrq(jjX;http://docs.python.org/3/library/_thread.html#_thread.errorX-trrXssl.SSLEOFErrorrs(jjX9http://docs.python.org/3/library/ssl.html#ssl.SSLEOFErrorX-trtX RuntimeErrorru(jjX=http://docs.python.org/3/library/exceptions.html#RuntimeErrorX-trvX GeneratorExitrw(jjX>http://docs.python.org/3/library/exceptions.html#GeneratorExitX-trxXxml.dom.InvalidAccessErrry(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidAccessErrX-trzXChildProcessErrorr{(jjXBhttp://docs.python.org/3/library/exceptions.html#ChildProcessErrorX-tr|Xssl.SSLSyscallErrorr}(jjX=http://docs.python.org/3/library/ssl.html#ssl.SSLSyscallErrorX-tr~Xemail.errors.MessageErrorr(jjXLhttp://docs.python.org/3/library/email.errors.html#email.errors.MessageErrorX-trXhtml.parser.HTMLParseErrorr(jjXLhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParseErrorX-trXftplib.error_tempr(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.error_tempX-trXasyncio.IncompleteReadErrorr(jjXPhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.IncompleteReadErrorX-trXProcessLookupErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#ProcessLookupErrorX-trXzipimport.ZipImportErrorr(jjXHhttp://docs.python.org/3/library/zipimport.html#zipimport.ZipImportErrorX-trX UnicodeErrorr(jjX=http://docs.python.org/3/library/exceptions.html#UnicodeErrorX-trXipaddress.NetmaskValueErrorr(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.NetmaskValueErrorX-trX mailbox.Errorr(jjX;http://docs.python.org/3/library/mailbox.html#mailbox.ErrorX-trXimaplib.IMAP4.readonlyr(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.readonlyX-trXtest.support.ResourceDeniedr(jjXFhttp://docs.python.org/3/library/test.html#test.support.ResourceDeniedX-trX binhex.Errorr(jjX9http://docs.python.org/3/library/binhex.html#binhex.ErrorX-trXReferenceErrorr(jjX?http://docs.python.org/3/library/exceptions.html#ReferenceErrorX-trXhttp.client.BadStatusLiner(jjXKhttp://docs.python.org/3/library/http.client.html#http.client.BadStatusLineX-trXxml.dom.NotFoundErrr(jjXAhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NotFoundErrX-trX getopt.errorr(jjX9http://docs.python.org/3/library/getopt.html#getopt.errorX-trXmailbox.NotEmptyErrorr(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.NotEmptyErrorX-trXshutil.SameFileErrorr(jjXAhttp://docs.python.org/3/library/shutil.html#shutil.SameFileErrorX-trXpoplib.error_protor(jjX?http://docs.python.org/3/library/poplib.html#poplib.error_protoX-trX Exceptionr(jjX:http://docs.python.org/3/library/exceptions.html#ExceptionX-trX TimeoutErrorr(jjX=http://docs.python.org/3/library/exceptions.html#TimeoutErrorX-trX bdb.BdbQuitr(jjX5http://docs.python.org/3/library/bdb.html#bdb.BdbQuitX-trX locale.Errorr(jjX9http://docs.python.org/3/library/locale.html#locale.ErrorX-trXwebbrowser.Errorr(jjXAhttp://docs.python.org/3/library/webbrowser.html#webbrowser.ErrorX-trXhttp.client.IncompleteReadr(jjXLhttp://docs.python.org/3/library/http.client.html#http.client.IncompleteReadX-trX xml.dom.NoModificationAllowedErrr(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NoModificationAllowedErrX-trXUnicodeEncodeErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#UnicodeEncodeErrorX-trXIOErrorr(jjX8http://docs.python.org/3/library/exceptions.html#IOErrorX-trXdbm.ndbm.errorr(jjX8http://docs.python.org/3/library/dbm.html#dbm.ndbm.errorX-trXKeyErrorr(jjX9http://docs.python.org/3/library/exceptions.html#KeyErrorX-trXssl.SSLZeroReturnErrorr(jjX@http://docs.python.org/3/library/ssl.html#ssl.SSLZeroReturnErrorX-trX!http.client.UnimplementedFileModer(jjXShttp://docs.python.org/3/library/http.client.html#http.client.UnimplementedFileModeX-trXsmtplib.SMTPResponseExceptionr(jjXKhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPResponseExceptionX-trXpy_compile.PyCompileErrorr(jjXJhttp://docs.python.org/3/library/py_compile.html#py_compile.PyCompileErrorX-trXasyncio.InvalidStateErrorr(jjXLhttp://docs.python.org/3/library/asyncio-task.html#asyncio.InvalidStateErrorX-trXhttp.client.CannotSendRequestr(jjXOhttp://docs.python.org/3/library/http.client.html#http.client.CannotSendRequestX-trXxml.dom.IndexSizeErrr(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.IndexSizeErrX-trXArithmeticErrorr(jjX@http://docs.python.org/3/library/exceptions.html#ArithmeticErrorX-trX xml.sax.SAXNotSupportedExceptionr(jjXNhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotSupportedExceptionX-trXConnectionAbortedErrorr(jjXGhttp://docs.python.org/3/library/exceptions.html#ConnectionAbortedErrorX-trXnntplib.NNTPDataErrorr(jjXChttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPDataErrorX-trXftplib.error_replyr(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.error_replyX-trXdoctest.DocTestFailurer(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailureX-trXossaudiodev.OSSAudioErrorr(jjXKhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.OSSAudioErrorX-trXxml.sax.SAXParseExceptionr(jjXGhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXParseExceptionX-trX socket.herrorr(jjX:http://docs.python.org/3/library/socket.html#socket.herrorX-trX MemoryErrorr(jjX<http://docs.python.org/3/library/exceptions.html#MemoryErrorX-trXfpectl.FloatingPointErrorr(jjXFhttp://docs.python.org/3/library/fpectl.html#fpectl.FloatingPointErrorX-trXsmtplib.SMTPConnectErrorr(jjXFhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPConnectErrorX-trX SystemExitr(jjX;http://docs.python.org/3/library/exceptions.html#SystemExitX-trXimaplib.IMAP4.errorr(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.errorX-trXNotADirectoryErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#NotADirectoryErrorX-trXsubprocess.TimeoutExpiredr(jjXJhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpiredX-trXhttp.client.InvalidURLr(jjXHhttp://docs.python.org/3/library/http.client.html#http.client.InvalidURLX-trXmultiprocessing.BufferTooShortr(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.BufferTooShortX-trXnntplib.NNTPPermanentErrorr(jjXHhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPPermanentErrorX-trXimaplib.IMAP4.abortr(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.abortX-trXsmtplib.SMTPRecipientsRefusedr(jjXKhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPRecipientsRefusedX-trXctypes.ArgumentErrorr(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes.ArgumentErrorX-trXxdrlib.ConversionErrorr(jjXChttp://docs.python.org/3/library/xdrlib.html#xdrlib.ConversionErrorX-trXEnvironmentErrorr(jjXAhttp://docs.python.org/3/library/exceptions.html#EnvironmentErrorX-trXunittest.SkipTestr(jjX@http://docs.python.org/3/library/unittest.html#unittest.SkipTestX-trX nis.errorr(jjX3http://docs.python.org/3/library/nis.html#nis.errorX-trXInterruptedErrorr(jjXAhttp://docs.python.org/3/library/exceptions.html#InterruptedErrorX-trXOSErrorr(jjX8http://docs.python.org/3/library/exceptions.html#OSErrorX-trXDeprecationWarningr(jjXChttp://docs.python.org/3/library/exceptions.html#DeprecationWarningX-trXsmtplib.SMTPHeloErrorr(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPHeloErrorX-trX&configparser.MissingSectionHeaderErrorr(jjXYhttp://docs.python.org/3/library/configparser.html#configparser.MissingSectionHeaderErrorX-trXUnicodeWarningr(jjX?http://docs.python.org/3/library/exceptions.html#UnicodeWarningX-trX queue.Fullr (jjX6http://docs.python.org/3/library/queue.html#queue.FullX-tr Xnntplib.NNTPTemporaryErrorr (jjXHhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPTemporaryErrorX-tr Xre.errorr (jjX1http://docs.python.org/3/library/re.html#re.errorX-trXxml.dom.WrongDocumentErrr(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.WrongDocumentErrX-trX wave.Errorr(jjX5http://docs.python.org/3/library/wave.html#wave.ErrorX-trXpickle.PicklingErrorr(jjXAhttp://docs.python.org/3/library/pickle.html#pickle.PicklingErrorX-trX ImportWarningr(jjX>http://docs.python.org/3/library/exceptions.html#ImportWarningX-trX ValueErrorr(jjX;http://docs.python.org/3/library/exceptions.html#ValueErrorX-trXftplib.error_permr(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.error_permX-trXipaddress.AddressValueErrorr(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.AddressValueErrorX-trX csv.Errorr(jjX3http://docs.python.org/3/library/csv.html#csv.ErrorX-trXresource.errorr(jjX=http://docs.python.org/3/library/resource.html#resource.errorX-tr X socket.errorr!(jjX9http://docs.python.org/3/library/socket.html#socket.errorX-tr"Xxml.dom.InvalidModificationErrr#(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidModificationErrX-tr$X#http.client.UnknownTransferEncodingr%(jjXUhttp://docs.python.org/3/library/http.client.html#http.client.UnknownTransferEncodingX-tr&Xconfigparser.ParsingErrorr'(jjXLhttp://docs.python.org/3/library/configparser.html#configparser.ParsingErrorX-tr(Xlzma.LZMAErrorr)(jjX9http://docs.python.org/3/library/lzma.html#lzma.LZMAErrorX-tr*Xconfigparser.NoSectionErrorr+(jjXNhttp://docs.python.org/3/library/configparser.html#configparser.NoSectionErrorX-tr,X,configparser.InterpolationMissingOptionErrorr-(jjX_http://docs.python.org/3/library/configparser.html#configparser.InterpolationMissingOptionErrorX-tr.Xsmtplib.SMTPAuthenticationErrorr/(jjXMhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPAuthenticationErrorX-tr0XBlockingIOErrorr1(jjX@http://docs.python.org/3/library/exceptions.html#BlockingIOErrorX-tr2X copy.errorr3(jjX5http://docs.python.org/3/library/copy.html#copy.errorX-tr4Xmultiprocessing.ProcessErrorr5(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ProcessErrorX-tr6Xtarfile.ExtractErrorr7(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.ExtractErrorX-tr8Xhttp.client.ResponseNotReadyr9(jjXNhttp://docs.python.org/3/library/http.client.html#http.client.ResponseNotReadyX-tr:Xhttp.cookiejar.LoadErrorr;(jjXMhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.LoadErrorX-tr<X shutil.Errorr=(jjX9http://docs.python.org/3/library/shutil.html#shutil.ErrorX-tr>XAssertionErrorr?(jjX?http://docs.python.org/3/library/exceptions.html#AssertionErrorX-tr@Xsmtplib.SMTPExceptionrA(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPExceptionX-trBX audioop.errorrC(jjX;http://docs.python.org/3/library/audioop.html#audioop.errorX-trDXtarfile.TarErrorrE(jjX>http://docs.python.org/3/library/tarfile.html#tarfile.TarErrorX-trFXsmtplib.SMTPServerDisconnectedrG(jjXLhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPServerDisconnectedX-trHXgetpass.GetPassWarningrI(jjXDhttp://docs.python.org/3/library/getpass.html#getpass.GetPassWarningX-trJXsubprocess.SubprocessErrorrK(jjXKhttp://docs.python.org/3/library/subprocess.html#subprocess.SubprocessErrorX-trLXxml.parsers.expat.errorrM(jjXEhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errorX-trNXhttp.client.HTTPExceptionrO(jjXKhttp://docs.python.org/3/library/http.client.html#http.client.HTTPExceptionX-trPXPendingDeprecationWarningrQ(jjXJhttp://docs.python.org/3/library/exceptions.html#PendingDeprecationWarningX-trRXUnboundLocalErrorrS(jjXBhttp://docs.python.org/3/library/exceptions.html#UnboundLocalErrorX-trTX!configparser.DuplicateOptionErrorrU(jjXThttp://docs.python.org/3/library/configparser.html#configparser.DuplicateOptionErrorX-trVX ImportErrorrW(jjX<http://docs.python.org/3/library/exceptions.html#ImportErrorX-trXX!xml.sax.SAXNotRecognizedExceptionrY(jjXOhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotRecognizedExceptionX-trZXxml.dom.NoDataAllowedErrr[(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NoDataAllowedErrX-tr\X#http.client.ImproperConnectionStater](jjXUhttp://docs.python.org/3/library/http.client.html#http.client.ImproperConnectionStateX-tr^XNotImplementedErrorr_(jjXDhttp://docs.python.org/3/library/exceptions.html#NotImplementedErrorX-tr`XAttributeErrorra(jjX?http://docs.python.org/3/library/exceptions.html#AttributeErrorX-trbX OverflowErrorrc(jjX>http://docs.python.org/3/library/exceptions.html#OverflowErrorX-trdX WindowsErrorre(jjX=http://docs.python.org/3/library/exceptions.html#WindowsErrorX-trfuXpy:staticmethodrg}rh(Xbytearray.maketransri(jjXBhttp://docs.python.org/3/library/stdtypes.html#bytearray.maketransX-trjX str.maketransrk(jjX<http://docs.python.org/3/library/stdtypes.html#str.maketransX-trlXbytes.maketransrm(jjX>http://docs.python.org/3/library/stdtypes.html#bytes.maketransX-trnuXc:typero}rp(X PyMethodDefrq(jjX<http://docs.python.org/3/c-api/structures.html#c.PyMethodDefX-trrX PyModuleDefrs(jjX8http://docs.python.org/3/c-api/module.html#c.PyModuleDefX-trtXPyMemAllocatorDomainru(jjXAhttp://docs.python.org/3/c-api/memory.html#c.PyMemAllocatorDomainX-trvX PyASCIIObjectrw(jjX;http://docs.python.org/3/c-api/unicode.html#c.PyASCIIObjectX-trxX PyThreadStatery(jjX8http://docs.python.org/3/c-api/init.html#c.PyThreadStateX-trzXPy_UCS4r{(jjX5http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4X-tr|XPy_UCS2r}(jjX5http://docs.python.org/3/c-api/unicode.html#c.Py_UCS2X-tr~X_inittabr(jjX5http://docs.python.org/3/c-api/import.html#c._inittabX-trXPy_UCS1r(jjX5http://docs.python.org/3/c-api/unicode.html#c.Py_UCS1X-trXPyInterpreterStater(jjX=http://docs.python.org/3/c-api/init.html#c.PyInterpreterStateX-trXPySequenceMethodsr(jjX?http://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethodsX-trX PyGenObjectr(jjX5http://docs.python.org/3/c-api/gen.html#c.PyGenObjectX-trXPyStructSequence_Descr(jjXAhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_DescX-trX PyCFunctionr(jjX<http://docs.python.org/3/c-api/structures.html#c.PyCFunctionX-trX PyTupleObjectr(jjX9http://docs.python.org/3/c-api/tuple.html#c.PyTupleObjectX-trXPyObjectArenaAllocatorr(jjXChttp://docs.python.org/3/c-api/memory.html#c.PyObjectArenaAllocatorX-trX PyCellObjectr(jjX7http://docs.python.org/3/c-api/cell.html#c.PyCellObjectX-trXinquiryr(jjX7http://docs.python.org/3/c-api/gcsupport.html#c.inquiryX-trX PyTypeObjectr(jjX7http://docs.python.org/3/c-api/type.html#c.PyTypeObjectX-trX Py_bufferr(jjX6http://docs.python.org/3/c-api/buffer.html#c.Py_bufferX-trXPyCompilerFlagsr(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlagsX-trXPyComplexObjectr(jjX=http://docs.python.org/3/c-api/complex.html#c.PyComplexObjectX-trXPyFunctionObjectr(jjX?http://docs.python.org/3/c-api/function.html#c.PyFunctionObjectX-trX PyCapsuler(jjX7http://docs.python.org/3/c-api/capsule.html#c.PyCapsuleX-trXPyCapsule_Destructorr(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_DestructorX-trX PyVarObjectr(jjX<http://docs.python.org/3/c-api/structures.html#c.PyVarObjectX-trXPyObjectr(jjX9http://docs.python.org/3/c-api/structures.html#c.PyObjectX-trX PyMemberDefr(jjX<http://docs.python.org/3/c-api/structures.html#c.PyMemberDefX-trX PyDictObjectr(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDictObjectX-trXPyMappingMethodsr(jjX>http://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethodsX-trX PyCodeObjectr(jjX7http://docs.python.org/3/c-api/code.html#c.PyCodeObjectX-trX PyBytesObjectr(jjX9http://docs.python.org/3/c-api/bytes.html#c.PyBytesObjectX-trX PySetObjectr(jjX5http://docs.python.org/3/c-api/set.html#c.PySetObjectX-trX PyFloatObjectr(jjX9http://docs.python.org/3/c-api/float.html#c.PyFloatObjectX-trX Py_complexr(jjX8http://docs.python.org/3/c-api/complex.html#c.Py_complexX-trX_frozenr(jjX4http://docs.python.org/3/c-api/import.html#c._frozenX-trX Py_UNICODEr(jjX8http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODEX-trXPyUnicodeObjectr(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicodeObjectX-trX PyLongObjectr(jjX7http://docs.python.org/3/c-api/long.html#c.PyLongObjectX-trXPyNumberMethodsr(jjX=http://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethodsX-trX PyListObjectr(jjX7http://docs.python.org/3/c-api/list.html#c.PyListObjectX-trXPyStructSequence_Fieldr(jjXBhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_FieldX-trXPyMemAllocatorr(jjX;http://docs.python.org/3/c-api/memory.html#c.PyMemAllocatorX-trX visitprocr(jjX9http://docs.python.org/3/c-api/gcsupport.html#c.visitprocX-trX PyBufferProcsr(jjX;http://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcsX-trXPyCFunctionWithKeywordsr(jjXHhttp://docs.python.org/3/c-api/structures.html#c.PyCFunctionWithKeywordsX-trXPyByteArrayObjectr(jjXAhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArrayObjectX-trX Py_tracefuncr(jjX7http://docs.python.org/3/c-api/init.html#c.Py_tracefuncX-trX traverseprocr(jjX<http://docs.python.org/3/c-api/gcsupport.html#c.traverseprocX-trXPyCompactUnicodeObjectr(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyCompactUnicodeObjectX-truX py:methodr}r(Xxml.dom.minidom.Node.toxmlr(jjXPhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.toxmlX-trXmemoryview.castr(jjX>http://docs.python.org/3/library/stdtypes.html#memoryview.castX-trXpathlib.Path.unlinkr(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.unlinkX-trXmsilib.Dialog.controlr(jjXBhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.controlX-trX.xml.parsers.expat.xmlparser.ElementDeclHandlerr(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ElementDeclHandlerX-trXdatetime.tzinfo.utcoffsetr(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.utcoffsetX-trXio.TextIOBase.readr(jjX;http://docs.python.org/3/library/io.html#io.TextIOBase.readX-trX#difflib.SequenceMatcher.quick_ratior(jjXQhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.quick_ratioX-trX(importlib.machinery.FileFinder.find_specr(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.find_specX-trXbdb.Breakpoint.bpformatr(jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpformatX-trXcurses.window.hliner(jjX@http://docs.python.org/3/library/curses.html#curses.window.hlineX-trXlogging.Handler.releaser(jjXEhttp://docs.python.org/3/library/logging.html#logging.Handler.releaseX-trXftplib.FTP.loginr(jjX=http://docs.python.org/3/library/ftplib.html#ftplib.FTP.loginX-trXtarfile.TarFile.addfiler(jjXEhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.addfileX-trX3urllib.request.ProxyBasicAuthHandler.http_error_407r(jjXhhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyBasicAuthHandler.http_error_407X-trXasynchat.fifo.popr(jjX@http://docs.python.org/3/library/asynchat.html#asynchat.fifo.popX-trX!decimal.Context.compare_total_magr(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Context.compare_total_magX-trXshlex.shlex.get_tokenr(jjXAhttp://docs.python.org/3/library/shlex.html#shlex.shlex.get_tokenX-trXformatter.writer.new_fontr(jjXIhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_fontX-trXlzma.LZMACompressor.compressr(jjXGhttp://docs.python.org/3/library/lzma.html#lzma.LZMACompressor.compressX-trXcollections.deque.countr(jjXIhttp://docs.python.org/3/library/collections.html#collections.deque.countX-trXimaplib.IMAP4.loginr(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.loginX-trX smtpd.SMTPServer.process_messager(jjXLhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPServer.process_messageX-trXsocket.socket.connectr(jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.connectX-trXemail.policy.Policy.cloner(jjXLhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.cloneX-trXtelnetlib.Telnet.read_eagerr (jjXKhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_eagerX-tr Xemail.generator.Generator.writer (jjXUhttp://docs.python.org/3/library/email.generator.html#email.generator.Generator.writeX-tr Xsched.scheduler.enterr (jjXAhttp://docs.python.org/3/library/sched.html#sched.scheduler.enterX-trXdecimal.Context.divide_intr(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Context.divide_intX-trXbdb.Bdb.clear_bpbynumberr(jjXBhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_bpbynumberX-trXtarfile.TarFile.getmemberr(jjXGhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.getmemberX-trXqueue.Queue.fullr(jjX<http://docs.python.org/3/library/queue.html#queue.Queue.fullX-trXpathlib.Path.touchr(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.touchX-trXdecimal.Context.maxr(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.maxX-trX!gettext.NullTranslations.lgettextr(jjXOhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.lgettextX-trXarray.array.fromstringr(jjXBhttp://docs.python.org/3/library/array.html#array.array.fromstringX-trXtracemalloc.Snapshot.compare_tor(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.compare_toX-tr X(xml.etree.ElementTree.XMLPullParser.feedr!(jjXdhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser.feedX-tr"Xio.BytesIO.getvaluer#(jjX<http://docs.python.org/3/library/io.html#io.BytesIO.getvalueX-tr$Xrlcompleter.Completer.completer%(jjXPhttp://docs.python.org/3/library/rlcompleter.html#rlcompleter.Completer.completeX-tr&Xhtml.parser.HTMLParser.closer'(jjXNhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.closeX-tr(X*multiprocessing.managers.SyncManager.RLockr)(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.RLockX-tr*Xoptparse.OptionParser.get_usager+(jjXNhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_usageX-tr,X%ossaudiodev.oss_audio_device.channelsr-(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.channelsX-tr.X'xml.sax.handler.ErrorHandler.fatalErrorr/(jjX]http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.fatalErrorX-tr0X,multiprocessing.managers.BaseProxy._getvaluer1(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy._getvalueX-tr2Ximaplib.IMAP4.getaclr3(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getaclX-tr4Xclass.__subclasses__r5(jjXChttp://docs.python.org/3/library/stdtypes.html#class.__subclasses__X-tr6Xshlex.shlex.push_sourcer7(jjXChttp://docs.python.org/3/library/shlex.html#shlex.shlex.push_sourceX-tr8Xargparse.ArgumentParser.exitr9(jjXKhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.exitX-tr:Xctypes._CData.from_addressr;(jjXGhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_addressX-tr<X multiprocessing.Queue.put_nowaitr=(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.put_nowaitX-tr>Xint.bit_lengthr?(jjX=http://docs.python.org/3/library/stdtypes.html#int.bit_lengthX-tr@X#wsgiref.handlers.BaseHandler._flushrA(jjXQhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler._flushX-trBXmailbox.Maildir.get_filerC(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_fileX-trDX str.formatrE(jjX9http://docs.python.org/3/library/stdtypes.html#str.formatX-trFXdecimal.Decimal.normalizerG(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.normalizeX-trHX str.isalnumrI(jjX:http://docs.python.org/3/library/stdtypes.html#str.isalnumX-trJXcurses.window.getmaxyxrK(jjXChttp://docs.python.org/3/library/curses.html#curses.window.getmaxyxX-trLX calendar.Calendar.itermonthdays2rM(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdays2X-trNXconcurrent.futures.Future.donerO(jjXWhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.doneX-trPX.http.server.BaseHTTPRequestHandler.send_headerrQ(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_headerX-trRX9xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_titlerS(jjXmhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_titleX-trTX code.InteractiveConsole.interactrU(jjXKhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.interactX-trVXqueue.Queue.put_nowaitrW(jjXBhttp://docs.python.org/3/library/queue.html#queue.Queue.put_nowaitX-trXXftplib.FTP.set_debuglevelrY(jjXFhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.set_debuglevelX-trZX1urllib.request.HTTPRedirectHandler.http_error_302r[(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_302X-tr\Xcurses.window.clrtobotr](jjXChttp://docs.python.org/3/library/curses.html#curses.window.clrtobotX-tr^Xxdrlib.Unpacker.unpack_floatr_(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_floatX-tr`X1urllib.request.HTTPRedirectHandler.http_error_307ra(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_307X-trbX!xml.etree.ElementTree.Element.setrc(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.setX-trdXobject.__ilshift__re(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__ilshift__X-trfXsubprocess.Popen.pollrg(jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.pollX-trhXfilecmp.dircmp.reportri(jjXChttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.reportX-trjXnntplib.NNTP.set_debuglevelrk(jjXIhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.set_debuglevelX-trlXdecimal.Decimal.logical_andrm(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_andX-trnXemail.charset.Charset.__str__ro(jjXQhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.__str__X-trpXdatetime.date.isoweekdayrq(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.date.isoweekdayX-trrX4urllib.request.ProxyDigestAuthHandler.http_error_407rs(jjXihttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyDigestAuthHandler.http_error_407X-trtXsymtable.Function.get_localsru(jjXKhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_localsX-trvX1xml.parsers.expat.xmlparser.EndDoctypeDeclHandlerrw(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndDoctypeDeclHandlerX-trxXtkinter.ttk.Style.theme_namesry(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_namesX-trzXthreading.Thread.is_aliver{(jjXIhttp://docs.python.org/3/library/threading.html#threading.Thread.is_aliveX-tr|Xobject.__setitem__r}(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__setitem__X-tr~Xcodecs.IncrementalDecoder.resetr(jjXLhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.resetX-trX"asyncio.BaseEventLoop.sock_connectr(jjXZhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_connectX-trXmemoryview.releaser(jjXAhttp://docs.python.org/3/library/stdtypes.html#memoryview.releaseX-trX xml.dom.Document.createElementNSr(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createElementNSX-trX"socketserver.RequestHandler.finishr(jjXUhttp://docs.python.org/3/library/socketserver.html#socketserver.RequestHandler.finishX-trX-distutils.ccompiler.CCompiler.link_executabler(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.link_executableX-trXset.popr(jjX6http://docs.python.org/3/library/stdtypes.html#set.popX-trX%asyncio.BaseEventLoop.run_in_executorr(jjX]http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.run_in_executorX-trX&unittest.TestResult.addExpectedFailurer(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addExpectedFailureX-trX'ssl.SSLContext.set_default_verify_pathsr(jjXQhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_default_verify_pathsX-trXsched.scheduler.emptyr(jjXAhttp://docs.python.org/3/library/sched.html#sched.scheduler.emptyX-trXobject.__rsub__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rsub__X-trX&email.policy.Policy.header_fetch_parser(jjXYhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_fetch_parseX-trXpickle.Pickler.dumpr(jjX@http://docs.python.org/3/library/pickle.html#pickle.Pickler.dumpX-trX%xml.sax.xmlreader.XMLReader.setLocaler(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setLocaleX-trX importlib.abc.Loader.load_moduler(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.load_moduleX-trXcurses.textpad.Textbox.gatherr(jjXJhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.gatherX-trX concurrent.futures.Future.resultr(jjXYhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.resultX-trXmemoryview.tolistr(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.tolistX-trXftplib.FTP.abortr(jjX=http://docs.python.org/3/library/ftplib.html#ftplib.FTP.abortX-trX-distutils.ccompiler.CCompiler.set_executablesr(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_executablesX-trXchunk.Chunk.readr(jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.readX-trXobject.__int__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__int__X-trXmsilib.View.Fetchr(jjX>http://docs.python.org/3/library/msilib.html#msilib.View.FetchX-trX-distutils.ccompiler.CCompiler.add_link_objectr(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_link_objectX-trXmailbox.MHMessage.get_sequencesr(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.get_sequencesX-trXset.symmetric_differencer(jjXGhttp://docs.python.org/3/library/stdtypes.html#set.symmetric_differenceX-trXmailbox.Mailbox.iterkeysr(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iterkeysX-trXsqlite3.Cursor.fetchallr(jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchallX-trXmailbox.Mailbox.getr(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.getX-trX.distutils.ccompiler.CCompiler.set_link_objectsr(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_link_objectsX-trXprofile.Profile.runcallr(jjXEhttp://docs.python.org/3/library/profile.html#profile.Profile.runcallX-trXimaplib.IMAP4.expunger(jjXChttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.expungeX-trXsymtable.SymbolTable.get_namer(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_nameX-trX(wsgiref.simple_server.WSGIServer.set_appr(jjXVhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServer.set_appX-trXmsilib.Record.GetFieldCountr(jjXHhttp://docs.python.org/3/library/msilib.html#msilib.Record.GetFieldCountX-trXselectors.KqueueSelector.filenor(jjXOhttp://docs.python.org/3/library/selectors.html#selectors.KqueueSelector.filenoX-trXdecimal.Decimal.logical_orr(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_orX-trXtrace.CoverageResults.updater(jjXHhttp://docs.python.org/3/library/trace.html#trace.CoverageResults.updateX-trXemail.message.Message.as_stringr(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.as_stringX-trXarray.array.fromunicoder(jjXChttp://docs.python.org/3/library/array.html#array.array.fromunicodeX-trX$xml.sax.handler.ErrorHandler.warningr(jjXZhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.warningX-trXsocket.socket.bindr(jjX?http://docs.python.org/3/library/socket.html#socket.socket.bindX-trX$xml.dom.Element.getElementsByTagNamer(jjXRhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getElementsByTagNameX-trXcurses.window.touchliner(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.touchlineX-trX'unittest.TestLoader.loadTestsFromModuler(jjXVhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromModuleX-trXmsilib.Directory.add_filer(jjXFhttp://docs.python.org/3/library/msilib.html#msilib.Directory.add_fileX-trXformatter.writer.new_spacingr(jjXLhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_spacingX-trX3xml.parsers.expat.xmlparser.EndNamespaceDeclHandlerr(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndNamespaceDeclHandlerX-trXobject.__abs__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__abs__X-trXreprlib.Repr.reprr(jjX?http://docs.python.org/3/library/reprlib.html#reprlib.Repr.reprX-trX!http.cookies.BaseCookie.js_outputr(jjXThttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.js_outputX-trXpipes.Template.appendr(jjXAhttp://docs.python.org/3/library/pipes.html#pipes.Template.appendX-trXdecimal.Context.to_sci_stringr(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Context.to_sci_stringX-trXcurses.panel.Panel.hiddenr(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.hiddenX-trX&xml.sax.xmlreader.XMLReader.getFeaturer(jjX[http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getFeatureX-trXmsilib.Feature.set_currentr(jjXGhttp://docs.python.org/3/library/msilib.html#msilib.Feature.set_currentX-trXaifc.aifc.getmarkersr(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.getmarkersX-trXasyncio.WriteTransport.abortr(jjXShttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.abortX-trX#xml.etree.ElementTree.Element.clearr(jjX_http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.clearX-trX"http.client.HTTPConnection.requestr(jjXThttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.requestX-trXpathlib.PurePath.is_absoluter(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.is_absoluteX-trXimaplib.IMAP4.listr(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.listX-trXdecimal.Context.quantizer(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.quantizeX-trXsocket.socket.getsockoptr(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.getsockoptX-trXobject.__complex__r(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__complex__X-trXdecimal.Decimal.conjugater(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.conjugateX-trXpprint.PrettyPrinter.isreadabler(jjXLhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isreadableX-trX-distutils.ccompiler.CCompiler.link_shared_libr(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.link_shared_libX-trXmailbox.Mailbox.keysr (jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.keysX-tr Xobject.__mod__r (jjX@http://docs.python.org/3/reference/datamodel.html#object.__mod__X-tr X-xml.parsers.expat.xmlparser.EntityDeclHandlerr (jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EntityDeclHandlerX-trX)multiprocessing.managers.SyncManager.listr(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.listX-trXdatetime.datetime.dater(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.dateX-trXcodecs.StreamReader.resetr(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.resetX-trXemail.charset.Charset.__ne__r(jjXPhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.__ne__X-trXemail.parser.BytesParser.parser(jjXQhttp://docs.python.org/3/library/email.parser.html#email.parser.BytesParser.parseX-trXlogging.Logger.getChildr(jjXEhttp://docs.python.org/3/library/logging.html#logging.Logger.getChildX-trXdecimal.Context.logical_andr(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_andX-trX!urllib.request.Request.add_headerr(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.add_headerX-trXgenerator.sendr(jjXBhttp://docs.python.org/3/reference/expressions.html#generator.sendX-tr Xemail.header.Header.encoder!(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.encodeX-tr"Xtrace.Trace.runfuncr#(jjX?http://docs.python.org/3/library/trace.html#trace.Trace.runfuncX-tr$X*xml.etree.ElementTree.ElementTree.findtextr%(jjXfhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.findtextX-tr&Xtarfile.TarInfo.ischrr'(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.ischrX-tr(Xio.RawIOBase.readintor)(jjX>http://docs.python.org/3/library/io.html#io.RawIOBase.readintoX-tr*X$logging.handlers.SysLogHandler.closer+(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.closeX-tr,X*http.cookiejar.CookiePolicy.path_return_okr-(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.path_return_okX-tr.X.distutils.ccompiler.CCompiler.set_include_dirsr/(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_include_dirsX-tr0Xsmtplib.SMTP.helor1(jjX?http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.heloX-tr2X'urllib.request.BaseHandler.default_openr3(jjX\http://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.default_openX-tr4X$calendar.HTMLCalendar.formatyearpager5(jjXShttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatyearpageX-tr6Xstring.Formatter.convert_fieldr7(jjXKhttp://docs.python.org/3/library/string.html#string.Formatter.convert_fieldX-tr8Xdecimal.Context.min_magr9(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.min_magX-tr:Xmultiprocessing.Process.startr;(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.startX-tr<Xxdrlib.Unpacker.unpack_opaquer=(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_opaqueX-tr>X xml.dom.Element.getAttributeNoder?(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeNodeX-tr@X!curses.textpad.Textbox.do_commandrA(jjXNhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.do_commandX-trBXimaplib.IMAP4.setquotarC(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.setquotaX-trDXio.BufferedIOBase.read1rE(jjX@http://docs.python.org/3/library/io.html#io.BufferedIOBase.read1X-trFXsmtplib.SMTP.verifyrG(jjXAhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.verifyX-trHXmmap.mmap.moverI(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.moveX-trJXdbm.gnu.gdbm.reorganizerK(jjXAhttp://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.reorganizeX-trLXmailbox.Maildir.addrM(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.addX-trNXio.BytesIO.getbufferrO(jjX=http://docs.python.org/3/library/io.html#io.BytesIO.getbufferX-trPXthreading.Timer.cancelrQ(jjXFhttp://docs.python.org/3/library/threading.html#threading.Timer.cancelX-trRXmultiprocessing.Queue.qsizerS(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.qsizeX-trTX"email.headerregistry.Group.__str__rU(jjX]http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.__str__X-trVX)logging.handlers.RotatingFileHandler.emitrW(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler.emitX-trXXimaplib.IMAP4.namespacerY(jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.namespaceX-trZX/logging.handlers.NTEventLogHandler.getMessageIDr[(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.getMessageIDX-tr\X set.updater](jjX9http://docs.python.org/3/library/stdtypes.html#set.updateX-tr^Xcurses.window.derwinr_(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.derwinX-tr`Xdecimal.Context.is_nanra(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_nanX-trbXpathlib.Path.ownerrc(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.ownerX-trdXftplib.FTP_TLS.cccre(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.cccX-trfXxmlrpc.client.Binary.decoderg(jjXOhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.decodeX-trhXcurses.window.bkgdsetri(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.bkgdsetX-trjXdecimal.Context.compare_totalrk(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Context.compare_totalX-trlXpprint.PrettyPrinter.pprintrm(jjXHhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pprintX-trnXobject.__getattribute__ro(jjXIhttp://docs.python.org/3/reference/datamodel.html#object.__getattribute__X-trpXmailbox.MMDFMessage.get_flagsrq(jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_flagsX-trrX"unittest.mock.Mock._get_child_mockrs(jjXVhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock._get_child_mockX-trtXasyncio.Task.print_stackru(jjXKhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.print_stackX-trvX2asyncio.BaseSubprocessTransport.get_pipe_transportrw(jjXihttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.get_pipe_transportX-trxX#smtplib.SMTP.ehlo_or_helo_if_neededry(jjXQhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehlo_or_helo_if_neededX-trzXthreading.Semaphore.releaser{(jjXKhttp://docs.python.org/3/library/threading.html#threading.Semaphore.releaseX-tr|X!unittest.mock.Mock.configure_mockr}(jjXUhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.configure_mockX-tr~Xformatter.formatter.push_marginr(jjXOhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_marginX-trXobject.__delete__r(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__delete__X-trX+email.message.EmailMessage.iter_attachmentsr(jjXfhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.iter_attachmentsX-trXpickle.Unpickler.find_classr(jjXHhttp://docs.python.org/3/library/pickle.html#pickle.Unpickler.find_classX-trX"formatter.formatter.add_line_breakr(jjXRhttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_line_breakX-trXmailbox.mboxMessage.add_flagr(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.add_flagX-trXcontextmanager.__enter__r(jjXGhttp://docs.python.org/3/library/stdtypes.html#contextmanager.__enter__X-trX-multiprocessing.managers.BaseManager.shutdownr(jjXchttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.shutdownX-trXobject.__invert__r(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__invert__X-trXmailbox.Babyl.get_labelsr(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_labelsX-trX"argparse.ArgumentParser.print_helpr(jjXQhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.print_helpX-trXqueue.Queue.emptyr(jjX=http://docs.python.org/3/library/queue.html#queue.Queue.emptyX-trXemail.header.Header.__eq__r(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.__eq__X-trX pdb.Pdb.runr(jjX5http://docs.python.org/3/library/pdb.html#pdb.Pdb.runX-trX"distutils.ccompiler.CCompiler.linkr(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.linkX-trXobject.__bool__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__bool__X-trXpdb.Pdb.set_tracer(jjX;http://docs.python.org/3/library/pdb.html#pdb.Pdb.set_traceX-trXlogging.NullHandler.createLockr(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandler.createLockX-trX'importlib.abc.InspectLoader.exec_moduler(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.exec_moduleX-trXmimetypes.MimeTypes.readfpr(jjXJhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.readfpX-trX8xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_namer(jjXlhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_nameX-trXdatetime.datetime.timestampr(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timestampX-trX!configparser.ConfigParser.optionsr(jjXThttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.optionsX-trXssl.SSLContext.set_ecdh_curver(jjXGhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ecdh_curveX-trXzipfile.ZipFile.getinfor(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.getinfoX-trX tkinter.ttk.Style.element_creater(jjXRhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_createX-trXstruct.Struct.unpack_fromr(jjXFhttp://docs.python.org/3/library/struct.html#struct.Struct.unpack_fromX-trX unittest.TestResult.startTestRunr(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.startTestRunX-trX$xml.dom.pulldom.DOMEventStream.resetr(jjXZhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream.resetX-trX re.match.spanr(jjX6http://docs.python.org/3/library/re.html#re.match.spanX-trXlogging.Logger.makeRecordr(jjXGhttp://docs.python.org/3/library/logging.html#logging.Logger.makeRecordX-trXtarfile.TarFile.openr(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.openX-trXimaplib.IMAP4.partialr(jjXChttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.partialX-trXBxmlrpc.server.CGIXMLRPCRequestHandler.register_multicall_functionsr(jjXvhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_multicall_functionsX-trXpstats.Stats.print_calleesr(jjXHhttp://docs.python.org/3/library/profile.html#pstats.Stats.print_calleesX-trX>urllib.request.AbstractDigestAuthHandler.http_error_auth_reqedr(jjXshttp://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandler.http_error_auth_reqedX-trXselect.epoll.closer(jjX?http://docs.python.org/3/library/select.html#select.epoll.closeX-trXbdb.Bdb.canonicr(jjX9http://docs.python.org/3/library/bdb.html#bdb.Bdb.canonicX-trX*multiprocessing.managers.SyncManager.Eventr(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.EventX-trXobject.__rxor__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rxor__X-trX6http.cookiejar.DefaultCookiePolicy.set_blocked_domainsr(jjXkhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.set_blocked_domainsX-trXpathlib.Path.resolver(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.resolveX-trXtkinter.tix.tixCommand.tix_cgetr(jjXQhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_cgetX-trX modulefinder.ModuleFinder.reportr(jjXShttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.reportX-trX%logging.handlers.QueueHandler.preparer(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler.prepareX-trX.multiprocessing.managers.SyncManager.Conditionr(jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.ConditionX-trXtarfile.TarFile.listr(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.listX-trX.xml.sax.xmlreader.AttributesNS.getValueByQNamer(jjXchttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getValueByQNameX-trXio.IOBase.closer(jjX8http://docs.python.org/3/library/io.html#io.IOBase.closeX-trX bytes.decoder(jjX;http://docs.python.org/3/library/stdtypes.html#bytes.decodeX-trXlogging.Handler.flushr(jjXChttp://docs.python.org/3/library/logging.html#logging.Handler.flushX-trXftplib.FTP.quitr(jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.quitX-trX)xml.sax.xmlreader.XMLReader.setDTDHandlerr(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setDTDHandlerX-trXdifflib.SequenceMatcher.ratior(jjXKhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.ratioX-trXasyncio.Condition.notify_allr(jjXOhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.notify_allX-trX(importlib.abc.MetaPathFinder.find_moduler(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinder.find_moduleX-trXpathlib.Path.chmodr(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.chmodX-trXformatter.formatter.pop_styler(jjXMhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_styleX-trXmailbox.MMDFMessage.get_fromr(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_fromX-trXdecimal.Context.normalizer(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.normalizeX-trXlogging.NullHandler.handler(jjXQhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandler.handleX-trX$logging.handlers.QueueListener.startr(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.startX-trXmsilib.Control.eventr(jjXAhttp://docs.python.org/3/library/msilib.html#msilib.Control.eventX-trX$http.cookies.BaseCookie.value_decoder(jjXWhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.value_decodeX-trX#mimetypes.MimeTypes.guess_extensionr(jjXShttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_extensionX-trXdecimal.Context.divmodr(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.divmodX-trXbdb.Bdb.set_tracer(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_traceX-trX'xml.sax.handler.DTDHandler.notationDeclr(jjX]http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandler.notationDeclX-trX$email.headerregistry.Address.__str__r(jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.__str__X-trXbytes.translater (jjX>http://docs.python.org/3/library/stdtypes.html#bytes.translateX-tr Xaifc.aifc.rewindr (jjX;http://docs.python.org/3/library/aifc.html#aifc.aifc.rewindX-tr X float.hexr (jjX8http://docs.python.org/3/library/stdtypes.html#float.hexX-trX$doctest.DocTestRunner.report_failurer(jjXRhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_failureX-trXimaplib.IMAP4.statusr(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.statusX-trXpprint.PrettyPrinter.formatr(jjXHhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.formatX-trXtkinter.ttk.Treeview.existsr(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.existsX-trXobject.__pow__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__pow__X-trXimaplib.IMAP4.xatomr(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.xatomX-trXlogging.Handler.closer(jjXChttp://docs.python.org/3/library/logging.html#logging.Handler.closeX-trXsunau.AU_read.getnframesr(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getnframesX-trX(distutils.ccompiler.CCompiler.preprocessr(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.preprocessX-tr X4xmlrpc.server.CGIXMLRPCRequestHandler.handle_requestr!(jjXhhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.handle_requestX-tr"X(logging.handlers.MemoryHandler.setTargetr#(jjX_http://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.setTargetX-tr$Xcodecs.StreamReader.readliner%(jjXIhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.readlineX-tr&X0http.server.BaseHTTPRequestHandler.send_responser'(jjXbhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_responseX-tr(Xbdb.Bdb.clear_breakr)(jjX=http://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_breakX-tr*X ssl.SSLContext.set_npn_protocolsr+(jjXJhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_npn_protocolsX-tr,X/xml.parsers.expat.xmlparser.StartElementHandlerr-(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartElementHandlerX-tr.X#code.InteractiveInterpreter.runcoder/(jjXNhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.runcodeX-tr0X!urllib.request.Request.has_headerr1(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.has_headerX-tr2Xdatetime.date.toordinalr3(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.date.toordinalX-tr4X re.match.endr5(jjX5http://docs.python.org/3/library/re.html#re.match.endX-tr6X"xml.etree.ElementTree.Element.iterr7(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.iterX-tr8Xnntplib.NNTP.listr9(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.listX-tr:Xcurses.panel.Panel.bottomr;(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.bottomX-tr<Xmailbox.BabylMessage.set_labelsr=(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_labelsX-tr>Xsocket.socket.connect_exr?(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.connect_exX-tr@Xssl.SSLContext.load_dh_paramsrA(jjXGhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_dh_paramsX-trBXbdb.Bdb.set_nextrC(jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_nextX-trDXpoplib.POP3.uidlrE(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.uidlX-trFX#concurrent.futures.Future.exceptionrG(jjX\http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.exceptionX-trHXobject.__pos__rI(jjX@http://docs.python.org/3/reference/datamodel.html#object.__pos__X-trJX!multiprocessing.Process.terminaterK(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.terminateX-trLX0xml.sax.xmlreader.InputSource.getCharacterStreamrM(jjXehttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getCharacterStreamX-trNX$urllib.request.Request.remove_headerrO(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.remove_headerX-trPX"asyncio.AbstractServer.wait_closedrQ(jjXZhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractServer.wait_closedX-trRX http.client.HTTPConnection.closerS(jjXRhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.closeX-trTXmsilib.Dialog.bitmaprU(jjXAhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.bitmapX-trVXftplib.FTP.retrlinesrW(jjXAhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.retrlinesX-trXXasyncio.Queue.getrY(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.getX-trZXunittest.TestCase.addCleanupr[(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.addCleanupX-tr\X difflib.SequenceMatcher.set_seq1r](jjXNhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.set_seq1X-tr^Xselect.epoll.unregisterr_(jjXDhttp://docs.python.org/3/library/select.html#select.epoll.unregisterX-tr`Xthreading.Barrier.waitra(jjXFhttp://docs.python.org/3/library/threading.html#threading.Barrier.waitX-trbXdistutils.cmd.Command.runrc(jjXHhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.runX-trdXtkinter.ttk.Notebook.tabsre(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tabsX-trfX dict.clearrg(jjX9http://docs.python.org/3/library/stdtypes.html#dict.clearX-trhX urllib.request.BaseHandler.closeri(jjXUhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.closeX-trjXunittest.TestCase.subTestrk(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.subTestX-trlX,urllib.robotparser.RobotFileParser.can_fetchrm(jjXehttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.can_fetchX-trnXlzma.LZMAFile.peekro(jjX=http://docs.python.org/3/library/lzma.html#lzma.LZMAFile.peekX-trpXmailbox.MMDFMessage.add_flagrq(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.add_flagX-trrX!tkinter.ttk.Treeview.set_childrenrs(jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.set_childrenX-trtXxdrlib.Packer.pack_listru(jjXDhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_listX-trvXwave.Wave_write.setparamsrw(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setparamsX-trxXmailbox.mbox.get_filery(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.mbox.get_fileX-trzX"unittest.TestCase.assertCountEqualr{(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertCountEqualX-tr|Xzipfile.ZipFile.setpasswordr}(jjXIhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.setpasswordX-tr~X gettext.GNUTranslations.lgettextr(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.lgettextX-trX!tkinter.ttk.Treeview.get_childrenr(jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.get_childrenX-trXdatetime.date.timetupler(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.date.timetupleX-trXarray.array.tobytesr(jjX?http://docs.python.org/3/library/array.html#array.array.tobytesX-trXtelnetlib.Telnet.filenor(jjXGhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.filenoX-trXformatter.writer.send_paragraphr(jjXOhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_paragraphX-trX difflib.SequenceMatcher.set_seqsr(jjXNhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.set_seqsX-trXobject.__exit__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__exit__X-trXdecimal.Context.clear_flagsr(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.clear_flagsX-trXtkinter.ttk.Treeview.setr(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.setX-trXmsilib.Record.SetStringr(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.SetStringX-trXcurses.window.insertlnr(jjXChttp://docs.python.org/3/library/curses.html#curses.window.insertlnX-trX"asynchat.async_chat.get_terminatorr(jjXQhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.get_terminatorX-trXssl.SSLContext.wrap_socketr(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_socketX-trX#ossaudiodev.oss_mixer_device.filenor(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.filenoX-trXtkinter.ttk.Treeview.seer(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.seeX-trXnetrc.netrc.__repr__r(jjX@http://docs.python.org/3/library/netrc.html#netrc.netrc.__repr__X-trXmailbox.MH.remove_folderr(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.remove_folderX-trXprofile.Profile.runctxr(jjXDhttp://docs.python.org/3/library/profile.html#profile.Profile.runctxX-trXdecimal.Decimal.compare_signalr(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_signalX-trXlogging.NullHandler.emitr(jjXOhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandler.emitX-trXwave.Wave_write.setnchannelsr(jjXGhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setnchannelsX-trX,xml.sax.handler.ContentHandler.skippedEntityr(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.skippedEntityX-trXemail.message.Message.__str__r(jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.__str__X-trX'ossaudiodev.oss_mixer_device.set_recsrcr(jjXYhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.set_recsrcX-trXabc.ABCMeta.__subclasshook__r(jjXFhttp://docs.python.org/3/library/abc.html#abc.ABCMeta.__subclasshook__X-trX)xml.sax.xmlreader.InputSource.setEncodingr(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setEncodingX-trX&distutils.cmd.Command.finalize_optionsr(jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.finalize_optionsX-trX#xml.parsers.expat.xmlparser.SetBaser(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetBaseX-trXdifflib.HtmlDiff.make_tabler(jjXIhttp://docs.python.org/3/library/difflib.html#difflib.HtmlDiff.make_tableX-trX optparse.OptionParser.has_optionr(jjXOhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.has_optionX-trX-urllib.request.BaseHandler.http_error_defaultr(jjXbhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.http_error_defaultX-trXstr.joinr(jjX7http://docs.python.org/3/library/stdtypes.html#str.joinX-trXre.regex.finditerr(jjX:http://docs.python.org/3/library/re.html#re.regex.finditerX-trX$asyncio.ReadTransport.resume_readingr(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.ReadTransport.resume_readingX-trX.optparse.OptionParser.enable_interspersed_argsr(jjX]http://docs.python.org/3/library/optparse.html#optparse.OptionParser.enable_interspersed_argsX-trX0xml.parsers.expat.xmlparser.DefaultHandlerExpandr(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.DefaultHandlerExpandX-trXcodecs.StreamReader.readlinesr(jjXJhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.readlinesX-trXnntplib.NNTP.overr(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.overX-trX$formatter.formatter.assert_line_datar(jjXThttp://docs.python.org/3/library/formatter.html#formatter.formatter.assert_line_dataX-trXmailbox.MH.add_folderr(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.MH.add_folderX-trXgenerator.__next__r(jjXFhttp://docs.python.org/3/reference/expressions.html#generator.__next__X-trXpathlib.Path.openr(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.Path.openX-trX(asyncio.BaseEventLoop.run_until_completer(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.run_until_completeX-trXtelnetlib.Telnet.set_debuglevelr(jjXOhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.set_debuglevelX-trX3wsgiref.simple_server.WSGIRequestHandler.get_stderrr(jjXahttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandler.get_stderrX-trXmsilib.Database.OpenViewr(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Database.OpenViewX-trX2xml.sax.handler.ContentHandler.ignorableWhitespacer(jjXhhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.ignorableWhitespaceX-trX)xml.etree.ElementTree.XMLPullParser.closer(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser.closeX-trX"string.Formatter.check_unused_argsr(jjXOhttp://docs.python.org/3/library/string.html#string.Formatter.check_unused_argsX-trXdatetime.tzinfo.dstr(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.dstX-trX%html.parser.HTMLParser.handle_charrefr(jjXWhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_charrefX-trXpathlib.Path.existsr(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.existsX-trXarray.array.tofiler(jjX>http://docs.python.org/3/library/array.html#array.array.tofileX-trX*urllib.robotparser.RobotFileParser.set_urlr(jjXchttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.set_urlX-trX!xml.sax.xmlreader.XMLReader.parser(jjXVhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.parseX-trX'email.policy.Policy.header_source_parser(jjXZhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_source_parseX-trXwave.Wave_read.getsampwidthr(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getsampwidthX-trX$ossaudiodev.oss_audio_device.bufsizer(jjXVhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.bufsizeX-trXlogging.Logger.exceptionr(jjXFhttp://docs.python.org/3/library/logging.html#logging.Logger.exceptionX-trXio.RawIOBase.writer(jjX;http://docs.python.org/3/library/io.html#io.RawIOBase.writeX-trX!distutils.text_file.TextFile.openr(jjXPhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.openX-trX!code.InteractiveConsole.raw_inputr(jjXLhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.raw_inputX-trX%filecmp.dircmp.report_partial_closurer(jjXShttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.report_partial_closureX-trXaifc.aifc.closer(jjX:http://docs.python.org/3/library/aifc.html#aifc.aifc.closeX-trXmailbox.BabylMessage.get_labelsr(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_labelsX-trXwave.Wave_read.tellr(jjX>http://docs.python.org/3/library/wave.html#wave.Wave_read.tellX-trX!unittest.TestCase.assertDictEqualr(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertDictEqualX-trX/email.contentmanager.ContentManager.set_contentr(jjXjhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.set_contentX-trX!unittest.TestCase.assertListEqualr (jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertListEqualX-tr Xhtml.parser.HTMLParser.getposr (jjXOhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.getposX-tr Xasyncio.StreamReader.exceptionr (jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.exceptionX-trXzlib.Decompress.flushr(jjX@http://docs.python.org/3/library/zlib.html#zlib.Decompress.flushX-trXclass.__subclasscheck__r(jjXIhttp://docs.python.org/3/reference/datamodel.html#class.__subclasscheck__X-trXasyncio.Queue.fullr(jjXEhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.fullX-trXftplib.FTP.closer(jjX=http://docs.python.org/3/library/ftplib.html#ftplib.FTP.closeX-trXtkinter.ttk.Progressbar.stopr(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.stopX-trXlogging.StreamHandler.emitr(jjXQhttp://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler.emitX-trX'sqlite3.Connection.set_progress_handlerr(jjXUhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_progress_handlerX-trX"urllib.request.FTPHandler.ftp_openr(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandler.ftp_openX-trXcurses.panel.Panel.windowr(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.windowX-tr Xdatetime.datetime.isocalendarr!(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.datetime.isocalendarX-tr"X mailbox.BabylMessage.set_visibler#(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_visibleX-tr$X(mimetypes.MimeTypes.guess_all_extensionsr%(jjXXhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_all_extensionsX-tr&Xdecimal.Decimal.to_integralr'(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integralX-tr(X+xmlrpc.client.ServerProxy.system.methodHelpr)(jjX_http://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.methodHelpX-tr*Xcurses.window.mvwinr+(jjX@http://docs.python.org/3/library/curses.html#curses.window.mvwinX-tr,Xio.RawIOBase.readr-(jjX:http://docs.python.org/3/library/io.html#io.RawIOBase.readX-tr.Xsmtplib.SMTP.set_debuglevelr/(jjXIhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.set_debuglevelX-tr0X)mimetypes.MimeTypes.read_windows_registryr1(jjXYhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.read_windows_registryX-tr2X#ossaudiodev.oss_audio_device.filenor3(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.filenoX-tr4Xmsilib.Record.GetStringr5(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.GetStringX-tr6Xcollections.deque.extendr7(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.extendX-tr8Xbz2.BZ2Compressor.compressr9(jjXDhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.compressX-tr:Xselect.poll.unregisterr;(jjXChttp://docs.python.org/3/library/select.html#select.poll.unregisterX-tr<Xobject.__call__r=(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__call__X-tr>X"calendar.Calendar.yeardayscalendarr?(jjXQhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardayscalendarX-tr@Xstring.Template.substituterA(jjXGhttp://docs.python.org/3/library/string.html#string.Template.substituteX-trBXdatetime.datetime.isoweekdayrC(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.isoweekdayX-trDX0distutils.ccompiler.CCompiler.link_shared_objectrE(jjX_http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.link_shared_objectX-trFXemail.message.Message.keysrG(jjXNhttp://docs.python.org/3/library/email.message.html#email.message.Message.keysX-trHX email.message.Message.add_headerrI(jjXThttp://docs.python.org/3/library/email.message.html#email.message.Message.add_headerX-trJXimaplib.IMAP4.proxyauthrK(jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.proxyauthX-trLXunittest.TestCase.assertWarnsrM(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertWarnsX-trNXipaddress.IPv4Network.subnetsrO(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.subnetsX-trPX#concurrent.futures.Future.cancelledrQ(jjX\http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.cancelledX-trRXxdrlib.Packer.pack_floatrS(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_floatX-trTXselect.kqueue.filenorU(jjXAhttp://docs.python.org/3/library/select.html#select.kqueue.filenoX-trVXhmac.HMAC.hexdigestrW(jjX>http://docs.python.org/3/library/hmac.html#hmac.HMAC.hexdigestX-trXXaifc.aifc.setparamsrY(jjX>http://docs.python.org/3/library/aifc.html#aifc.aifc.setparamsX-trZX1urllib.request.HTTPRedirectHandler.http_error_301r[(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_301X-tr\Xsqlite3.Cursor.fetchoner](jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchoneX-tr^Xtkinter.ttk.Notebook.selectr_(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.selectX-tr`X4xml.sax.handler.ContentHandler.processingInstructionra(jjXjhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.processingInstructionX-trbXdecimal.Decimal.next_plusrc(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.next_plusX-trdXtarfile.TarFile.extractfilere(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractfileX-trfXstring.Template.safe_substituterg(jjXLhttp://docs.python.org/3/library/string.html#string.Template.safe_substituteX-trhX+ossaudiodev.oss_mixer_device.stereocontrolsri(jjX]http://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.stereocontrolsX-trjXobject.__imul__rk(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__imul__X-trlXimaplib.IMAP4.sortrm(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.sortX-trnX-xml.sax.handler.ContentHandler.startElementNSro(jjXchttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startElementNSX-trpXdecimal.Context.is_normalrq(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_normalX-trrX"asyncio.BaseProtocol.pause_writingrs(jjXYhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.pause_writingX-trtXcurses.window.clearokru(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.clearokX-trvX!msilib.SummaryInformation.Persistrw(jjXNhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.PersistX-trxX*ossaudiodev.oss_audio_device.setparametersry(jjX\http://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.setparametersX-trzXpathlib.Path.groupr{(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.groupX-tr|X$tkinter.tix.tixCommand.tix_getbitmapr}(jjXVhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getbitmapX-tr~Xcurses.window.noutrefreshr(jjXFhttp://docs.python.org/3/library/curses.html#curses.window.noutrefreshX-trXxml.dom.Element.getAttributer(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeX-trXdatetime.timezone.dstr(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.timezone.dstX-trXasynchat.fifo.firstr(jjXBhttp://docs.python.org/3/library/asynchat.html#asynchat.fifo.firstX-trXcontextmanager.__exit__r(jjXFhttp://docs.python.org/3/library/stdtypes.html#contextmanager.__exit__X-trXshlex.shlex.read_tokenr(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.read_tokenX-trXqueue.Queue.task_doner(jjXAhttp://docs.python.org/3/library/queue.html#queue.Queue.task_doneX-trXmsilib.Control.mappingr(jjXChttp://docs.python.org/3/library/msilib.html#msilib.Control.mappingX-trXnumbers.Complex.conjugater(jjXGhttp://docs.python.org/3/library/numbers.html#numbers.Complex.conjugateX-trX$asynchat.async_chat.found_terminatorr(jjXShttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.found_terminatorX-trXcurses.window.redrawlnr(jjXChttp://docs.python.org/3/library/curses.html#curses.window.redrawlnX-trX"ossaudiodev.oss_audio_device.speedr(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.speedX-trXstruct.Struct.pack_intor(jjXDhttp://docs.python.org/3/library/struct.html#struct.Struct.pack_intoX-trX#html.parser.HTMLParser.unknown_declr(jjXUhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.unknown_declX-trXsymtable.Symbol.is_parameterr(jjXKhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_parameterX-trX$calendar.Calendar.monthdays2calendarr(jjXShttp://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdays2calendarX-trXpathlib.PurePath.as_posixr(jjXGhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.as_posixX-trX unittest.TestCase.assertNotRegexr(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotRegexX-trX&multiprocessing.pool.AsyncResult.readyr(jjX\http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.readyX-trXcmd.Cmd.cmdloopr(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.cmdloopX-trXsunau.AU_read.getmarkr(jjXAhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getmarkX-trXwave.Wave_read.getmarkr(jjXAhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getmarkX-trXcurses.window.delchr(jjX@http://docs.python.org/3/library/curses.html#curses.window.delchX-trX,xml.sax.handler.ContentHandler.startDocumentr(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startDocumentX-trXzipfile.PyZipFile.writepyr(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.PyZipFile.writepyX-trX#logging.handlers.QueueListener.stopr(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.stopX-trXmailbox.Maildir.updater(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.updateX-trX'wsgiref.handlers.BaseHandler.get_schemer(jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.get_schemeX-trX*multiprocessing.managers.BaseManager.startr(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.startX-trX&ipaddress.IPv4Network.compare_networksr(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.compare_networksX-trXmailbox.Maildir.add_folderr(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.add_folderX-trX%urllib.request.URLopener.open_unknownr(jjXZhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.open_unknownX-trXxdrlib.Unpacker.set_positionr(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.set_positionX-trX*distutils.ccompiler.CCompiler.has_functionr(jjXYhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.has_functionX-trXstring.Formatter.get_valuer(jjXGhttp://docs.python.org/3/library/string.html#string.Formatter.get_valueX-trX#configparser.ConfigParser.read_filer(jjXVhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_fileX-trXimaplib.IMAP4.deleter(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.deleteX-trXcurses.window.idlokr(jjX@http://docs.python.org/3/library/curses.html#curses.window.idlokX-trXdatetime.datetime.strftimer(jjXIhttp://docs.python.org/3/library/datetime.html#datetime.datetime.strftimeX-trXasyncio.Task.get_stackr(jjXIhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.get_stackX-trX"configparser.ConfigParser.getfloatr(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getfloatX-trX!ossaudiodev.oss_audio_device.readr(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.readX-trXbdb.Bdb.break_herer(jjX<http://docs.python.org/3/library/bdb.html#bdb.Bdb.break_hereX-trXdecimal.Decimal.next_minusr(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.next_minusX-trXtkinter.ttk.Notebook.identifyr(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.identifyX-trXlogging.Logger.errorr(jjXBhttp://docs.python.org/3/library/logging.html#logging.Logger.errorX-trXssl.SSLSocket.do_handshaker(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.do_handshakeX-trXimaplib.IMAP4.storer(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.storeX-trXformatter.writer.new_alignmentr(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_alignmentX-trX"doctest.OutputChecker.check_outputr(jjXPhttp://docs.python.org/3/library/doctest.html#doctest.OutputChecker.check_outputX-trXsymtable.Symbol.is_globalr(jjXHhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_globalX-trX!email.message.Message.get_payloadr(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_payloadX-trXsmtplib.SMTP.loginr(jjX@http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.loginX-trXunittest.TestSuite.__iter__r(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.__iter__X-trX1urllib.request.HTTPRedirectHandler.http_error_303r(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_303X-trXimaplib.IMAP4.renamer(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.renameX-trX)email.message.Message.get_content_charsetr(jjX]http://docs.python.org/3/library/email.message.html#email.message.Message.get_content_charsetX-trX#urllib.request.OpenerDirector.errorr(jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirector.errorX-trX*asyncio.BaseEventLoop.set_default_executorr(jjXbhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.set_default_executorX-trXarray.array.fromfiler(jjX@http://docs.python.org/3/library/array.html#array.array.fromfileX-trXdecimal.Decimal.is_finiter(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_finiteX-trXxdrlib.Unpacker.unpack_listr(jjXHhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_listX-trX+multiprocessing.pool.AsyncResult.successfulr(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.successfulX-trX&unittest.TestCase.assertNotAlmostEqualr(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotAlmostEqualX-trX$logging.handlers.SocketHandler.closer(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.closeX-trXasyncio.BaseEventLoop.get_debugr(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.get_debugX-trX"formatter.formatter.push_alignmentr(jjXRhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_alignmentX-trXpathlib.Path.mkdirr(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.mkdirX-trX unittest.TestCase.countTestCasesr(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.countTestCasesX-trXhttp.client.HTTPResponse.readr (jjXOhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.readX-tr Xtrace.Trace.runr (jjX;http://docs.python.org/3/library/trace.html#trace.Trace.runX-tr Xmultiprocessing.SimpleQueue.putr (jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.putX-trXmultiprocessing.Process.joinr(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.joinX-trX bdb.Bdb.runr(jjX5http://docs.python.org/3/library/bdb.html#bdb.Bdb.runX-trXcurses.window.refreshr(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.refreshX-trXdecimal.Context.shiftr(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.shiftX-trX$distutils.ccompiler.CCompiler.mkpathr(jjXShttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.mkpathX-trX"email.message.Message.get_unixfromr(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_unixfromX-trXxml.dom.Document.createCommentr(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createCommentX-trXsymtable.Symbol.is_freer(jjXFhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_freeX-trXctypes._CData.in_dllr(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.in_dllX-tr Xio.TextIOBase.seekr!(jjX;http://docs.python.org/3/library/io.html#io.TextIOBase.seekX-tr"Xxml.dom.Element.getAttributeNSr#(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeNSX-tr$Xaifc.aifc.setframerater%(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.setframerateX-tr&Xmsilib.Record.SetStreamr'(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.SetStreamX-tr(X!http.client.HTTPResponse.readintor)(jjXShttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.readintoX-tr*Xctypes._CData.from_bufferr+(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_bufferX-tr,Xcodecs.StreamWriter.resetr-(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamWriter.resetX-tr.X'urllib.robotparser.RobotFileParser.readr/(jjX`http://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.readX-tr0Xlogging.Handler.handler1(jjXDhttp://docs.python.org/3/library/logging.html#logging.Handler.handleX-tr2Xasyncio.Condition.releaser3(jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.releaseX-tr4Xftplib.FTP.set_pasvr5(jjX@http://docs.python.org/3/library/ftplib.html#ftplib.FTP.set_pasvX-tr6Xmemoryview.tobytesr7(jjXAhttp://docs.python.org/3/library/stdtypes.html#memoryview.tobytesX-tr8Xbdb.Bdb.get_breaksr9(jjX<http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_breaksX-tr:X!xml.sax.SAXException.getExceptionr;(jjXOhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXException.getExceptionX-tr<X gettext.NullTranslations.installr=(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.installX-tr>X str.stripr?(jjX8http://docs.python.org/3/library/stdtypes.html#str.stripX-tr@Xcurses.window.clrtoeolrA(jjXChttp://docs.python.org/3/library/curses.html#curses.window.clrtoeolX-trBXcalendar.Calendar.iterweekdaysrC(jjXMhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.iterweekdaysX-trDXdatetime.date.weekdayrE(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.date.weekdayX-trFX$email.generator.BytesGenerator.clonerG(jjXZhttp://docs.python.org/3/library/email.generator.html#email.generator.BytesGenerator.cloneX-trHXipaddress.IPv4Network.supernetrI(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.supernetX-trJXtarfile.TarInfo.issymrK(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.issymX-trLXobject.__neg__rM(jjX@http://docs.python.org/3/reference/datamodel.html#object.__neg__X-trNXselect.epoll.filenorO(jjX@http://docs.python.org/3/library/select.html#select.epoll.filenoX-trPXobject.__ror__rQ(jjX@http://docs.python.org/3/reference/datamodel.html#object.__ror__X-trRXwave.Wave_read.getparamsrS(jjXChttp://docs.python.org/3/library/wave.html#wave.Wave_read.getparamsX-trTXdecimal.Decimal.max_magrU(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.max_magX-trVX!importlib.abc.FileLoader.get_datarW(jjXQhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.get_dataX-trXXunittest.TestCase.setUprY(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.setUpX-trZXcurses.window.timeoutr[(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.timeoutX-tr\X)http.client.HTTPConnection.set_debuglevelr](jjX[http://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.set_debuglevelX-tr^X+xml.sax.handler.ContentHandler.startElementr_(jjXahttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startElementX-tr`Xsunau.AU_read.getsampwidthra(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getsampwidthX-trbXsqlite3.Connection.commitrc(jjXGhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.commitX-trdX"xml.dom.Element.setAttributeNodeNSre(jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeNodeNSX-trfX asyncio.BaseEventLoop.call_laterrg(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_laterX-trhXasyncio.Future.resultri(jjXHhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.resultX-trjXpoplib.POP3.apoprk(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.apopX-trlXarray.array.fromlistrm(jjX@http://docs.python.org/3/library/array.html#array.array.fromlistX-trnX2importlib.machinery.ExtensionFileLoader.is_packagero(jjXbhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.is_packageX-trpXtimeit.Timer.repeatrq(jjX@http://docs.python.org/3/library/timeit.html#timeit.Timer.repeatX-trrXaifc.aifc.setsampwidthrs(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.setsampwidthX-trtXmailbox.BabylMessage.add_labelru(jjXLhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.add_labelX-trvXobject.__bytes__rw(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__bytes__X-trxXset.difference_updatery(jjXDhttp://docs.python.org/3/library/stdtypes.html#set.difference_updateX-trzXasyncio.BaseTransport.closer{(jjXRhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseTransport.closeX-tr|Xmailbox.Mailbox.remover}(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.removeX-tr~X"codecs.IncrementalDecoder.setstater(jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.setstateX-trX$test.support.EnvironmentVarGuard.setr(jjXOhttp://docs.python.org/3/library/test.html#test.support.EnvironmentVarGuard.setX-trX0distutils.ccompiler.CCompiler.library_dir_optionr(jjX_http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.library_dir_optionX-trX4importlib.machinery.ExtensionFileLoader.get_filenamer(jjXdhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.get_filenameX-trXbdb.Bdb.user_liner(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_lineX-trX)importlib.abc.PathEntryFinder.find_moduler(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.find_moduleX-trX asyncio.StreamReader.readexactlyr(jjXUhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.readexactlyX-trXsocket.socket.recvr(jjX?http://docs.python.org/3/library/socket.html#socket.socket.recvX-trX$asyncio.BaseSubprocessTransport.killr(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.killX-trXcurses.window.leaveokr(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.leaveokX-trXpathlib.Path.is_symlinkr(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_symlinkX-trXio.TextIOBase.detachr(jjX=http://docs.python.org/3/library/io.html#io.TextIOBase.detachX-trXmsilib.Dialog.textr(jjX?http://docs.python.org/3/library/msilib.html#msilib.Dialog.textX-trXnetrc.netrc.authenticatorsr(jjXFhttp://docs.python.org/3/library/netrc.html#netrc.netrc.authenticatorsX-trXpathlib.PurePath.joinpathr(jjXGhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.joinpathX-trXcurses.window.boxr(jjX>http://docs.python.org/3/library/curses.html#curses.window.boxX-trX&xml.etree.ElementTree.Element.itertextr(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.itertextX-trXcmd.Cmd.postloopr(jjX:http://docs.python.org/3/library/cmd.html#cmd.Cmd.postloopX-trXasyncio.Queue.get_nowaitr(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.get_nowaitX-trXcodecs.Codec.encoder(jjX@http://docs.python.org/3/library/codecs.html#codecs.Codec.encodeX-trXstr.isprintabler(jjX>http://docs.python.org/3/library/stdtypes.html#str.isprintableX-trXselect.poll.modifyr(jjX?http://docs.python.org/3/library/select.html#select.poll.modifyX-trXselect.devpoll.filenor(jjXBhttp://docs.python.org/3/library/select.html#select.devpoll.filenoX-trXdatetime.datetime.toordinalr(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.toordinalX-trX*importlib.abc.InspectLoader.source_to_coder(jjXZhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.source_to_codeX-trX4logging.handlers.TimedRotatingFileHandler.doRolloverr(jjXkhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler.doRolloverX-trX zipimport.zipimporter.is_packager(jjXPhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.is_packageX-trX$unittest.TestLoader.getTestCaseNamesr(jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.getTestCaseNamesX-trXstr.splitlinesr(jjX=http://docs.python.org/3/library/stdtypes.html#str.splitlinesX-trXprofile.Profile.create_statsr(jjXJhttp://docs.python.org/3/library/profile.html#profile.Profile.create_statsX-trX)importlib.abc.PathEntryFinder.find_loaderr(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.find_loaderX-trX)xml.sax.xmlreader.XMLReader.getDTDHandlerr(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getDTDHandlerX-trXlogging.Handler.__init__r(jjXFhttp://docs.python.org/3/library/logging.html#logging.Handler.__init__X-trXcodecs.IncrementalEncoder.resetr(jjXLhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.resetX-trXftplib.FTP.getwelcomer(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.getwelcomeX-trXasyncore.dispatcher.writabler(jjXKhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.writableX-trXobject.__getstate__r(jjX@http://docs.python.org/3/library/pickle.html#object.__getstate__X-trXobject.__reduce_ex__r(jjXAhttp://docs.python.org/3/library/pickle.html#object.__reduce_ex__X-trXemail.policy.EmailPolicy.foldr(jjXPhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.foldX-trX!http.cookies.Morsel.isReservedKeyr(jjXThttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.isReservedKeyX-trX5http.server.BaseHTTPRequestHandler.handle_one_requestr(jjXghttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.handle_one_requestX-trXmailbox.Mailbox.popr(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.popX-trXtkinter.ttk.Treeview.insertr(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.insertX-trXqueue.Queue.putr(jjX;http://docs.python.org/3/library/queue.html#queue.Queue.putX-trXre.regex.fullmatchr(jjX;http://docs.python.org/3/library/re.html#re.regex.fullmatchX-trX"xml.dom.Element.getAttributeNodeNSr(jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeNodeNSX-trXarray.array.insertr(jjX>http://docs.python.org/3/library/array.html#array.array.insertX-trX&distutils.ccompiler.CCompiler.announcer(jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.announceX-trX1http.cookiejar.DefaultCookiePolicy.is_not_allowedr(jjXfhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.is_not_allowedX-trXwave.Wave_write.setsampwidthr(jjXGhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setsampwidthX-trX"tkinter.ttk.Treeview.tag_configurer(jjXThttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_configureX-trXdecimal.Context.same_quantumr(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.same_quantumX-trX%importlib.abc.FileLoader.get_filenamer(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.get_filenameX-trXxdrlib.Unpacker.unpack_fopaquer(jjXKhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_fopaqueX-trXpstats.Stats.addr(jjX>http://docs.python.org/3/library/profile.html#pstats.Stats.addX-trXcurses.panel.Panel.abover(jjXKhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.aboveX-trX)decimal.Context.create_decimal_from_floatr(jjXWhttp://docs.python.org/3/library/decimal.html#decimal.Context.create_decimal_from_floatX-trXstruct.Struct.unpackr(jjXAhttp://docs.python.org/3/library/struct.html#struct.Struct.unpackX-trXdecimal.Context.copy_signr(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_signX-trX!http.cookiejar.FileCookieJar.saver(jjXVhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.saveX-trXnntplib.NNTP.newgroupsr(jjXDhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.newgroupsX-trXnntplib.NNTP.xoverr(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.xoverX-trX.asyncio.AbstractEventLoopPolicy.new_event_loopr(jjXfhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractEventLoopPolicy.new_event_loopX-trXftplib.FTP.mlsdr(jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.mlsdX-trXre.match.groupr(jjX7http://docs.python.org/3/library/re.html#re.match.groupX-tr X%configparser.ConfigParser.has_sectionr (jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.has_sectionX-tr Xobject.__mul__r (jjX@http://docs.python.org/3/reference/datamodel.html#object.__mul__X-tr Xobject.__del__r (jjX@http://docs.python.org/3/reference/datamodel.html#object.__del__X-tr X2http.cookiejar.DefaultCookiePolicy.blocked_domainsr (jjXghttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.blocked_domainsX-tr Xmsilib.Record.GetIntegerr (jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Record.GetIntegerX-tr Xsubprocess.Popen.killr (jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.killX-tr X/importlib.abc.PathEntryFinder.invalidate_cachesr (jjX_http://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.invalidate_cachesX-tr Xaifc.aifc.writeframesr (jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.writeframesX-tr X"formatter.writer.send_flowing_datar (jjXRhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_flowing_dataX-tr X4xml.parsers.expat.xmlparser.StartCdataSectionHandlerr (jjXbhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartCdataSectionHandlerX-tr Xchunk.Chunk.seekr (jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.seekX-tr Xmailbox.Maildir.get_folderr (jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_folderX-tr Xpathlib.PurePath.matchr (jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.matchX-tr Xmultiprocessing.Queue.putr (jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.putX-tr Xreprlib.Repr.repr1r (jjX@http://docs.python.org/3/library/reprlib.html#reprlib.Repr.repr1X-tr Xpipes.Template.debugr (jjX@http://docs.python.org/3/library/pipes.html#pipes.Template.debugX-tr Xfractions.Fraction.__ceil__r! (jjXKhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.__ceil__X-tr" X+logging.handlers.DatagramHandler.makeSocketr# (jjXbhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandler.makeSocketX-tr$ X'logging.handlers.NTEventLogHandler.emitr% (jjX^http://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.emitX-tr& Xhttp.cookies.Morsel.setr' (jjXJhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.setX-tr( Xdecimal.Context.powerr) (jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.powerX-tr* Xtkinter.ttk.Treeview.selectionr+ (jjXPhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selectionX-tr, Xsqlite3.Row.keysr- (jjX>http://docs.python.org/3/library/sqlite3.html#sqlite3.Row.keysX-tr. Xobject.__rshift__r/ (jjXChttp://docs.python.org/3/reference/datamodel.html#object.__rshift__X-tr0 Xnntplib.NNTP.quitr1 (jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.quitX-tr2 Xcontextlib.ExitStack.callbackr3 (jjXNhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.callbackX-tr4 X0telnetlib.Telnet.set_option_negotiation_callbackr5 (jjX`http://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.set_option_negotiation_callbackX-tr6 Xasyncore.dispatcher.readabler7 (jjXKhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.readableX-tr8 X%xml.sax.xmlreader.Locator.getPublicIdr9 (jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getPublicIdX-tr: Xftplib.FTP.nlstr; (jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.nlstX-tr< X"socketserver.RequestHandler.handler= (jjXUhttp://docs.python.org/3/library/socketserver.html#socketserver.RequestHandler.handleX-tr> Xnntplib.NNTP.xhdrr? (jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.xhdrX-tr@ X%ipaddress.IPv6Network.address_excluderA (jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.address_excludeX-trB Xmultiprocessing.Queue.emptyrC (jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.emptyX-trD Ximaplib.IMAP4.readrE (jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.readX-trF Xcodecs.StreamWriter.writerG (jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamWriter.writeX-trH Xre.match.groupsrI (jjX8http://docs.python.org/3/library/re.html#re.match.groupsX-trJ Xsmtplib.SMTP.quitrK (jjX?http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.quitX-trL Xobject.__contains__rM (jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__contains__X-trN Xlogging.Logger.warningrO (jjXDhttp://docs.python.org/3/library/logging.html#logging.Logger.warningX-trP Xbdb.Bdb.set_quitrQ (jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_quitX-trR Xmailbox.Mailbox.updaterS (jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.updateX-trT Xzlib.Compress.copyrU (jjX=http://docs.python.org/3/library/zlib.html#zlib.Compress.copyX-trV Xdecimal.Context.is_qnanrW (jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_qnanX-trX X)xml.etree.ElementTree.Element.makeelementrY (jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.makeelementX-trZ X#email.message.EmailMessage.get_bodyr[ (jjX^http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.get_bodyX-tr\ X urllib.request.Request.set_proxyr] (jjXUhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.set_proxyX-tr^ X$html.parser.HTMLParser.handle_endtagr_ (jjXVhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_endtagX-tr` X optparse.OptionParser.get_optionra (jjXOhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_optionX-trb X$doctest.DocTestRunner.report_successrc (jjXRhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_successX-trd Xdatetime.date.replacere (jjXDhttp://docs.python.org/3/library/datetime.html#datetime.date.replaceX-trf Xcurses.window.getchrg (jjX@http://docs.python.org/3/library/curses.html#curses.window.getchX-trh Xsocket.socket.recv_intori (jjXDhttp://docs.python.org/3/library/socket.html#socket.socket.recv_intoX-trj Xthreading.Thread.runrk (jjXDhttp://docs.python.org/3/library/threading.html#threading.Thread.runX-trl Xsunau.AU_read.getcomptyperm (jjXEhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getcomptypeX-trn Xasyncio.BaseEventLoop.sock_recvro (jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_recvX-trp X$email.headerregistry.BaseHeader.foldrq (jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.foldX-trr X%logging.handlers.QueueHandler.enqueuers (jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler.enqueueX-trt Xcurses.window.immedokru (jjXBhttp://docs.python.org/3/library/curses.html#curses.window.immedokX-trv Xselect.kqueue.fromfdrw (jjXAhttp://docs.python.org/3/library/select.html#select.kqueue.fromfdX-trx Xbdb.Breakpoint.deleteMery (jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Breakpoint.deleteMeX-trz Xselect.devpoll.registerr{ (jjXDhttp://docs.python.org/3/library/select.html#select.devpoll.registerX-tr| Xmultiprocessing.Connection.pollr} (jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.pollX-tr~ X(xml.dom.DOMImplementation.createDocumentr (jjXVhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMImplementation.createDocumentX-tr Xsymtable.SymbolTable.lookupr (jjXJhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.lookupX-tr X*difflib.SequenceMatcher.find_longest_matchr (jjXXhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.find_longest_matchX-tr Xselect.epoll.pollr (jjX>http://docs.python.org/3/library/select.html#select.epoll.pollX-tr Xqueue.Queue.joinr (jjX<http://docs.python.org/3/library/queue.html#queue.Queue.joinX-tr X object.__eq__r (jjX?http://docs.python.org/3/reference/datamodel.html#object.__eq__X-tr Xdecimal.Decimal.canonicalr (jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.canonicalX-tr X&email.message.EmailMessage.add_relatedr (jjXahttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.add_relatedX-tr Xtelnetlib.Telnet.read_lazyr (jjXJhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_lazyX-tr Xtkinter.ttk.Notebook.hider (jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.hideX-tr Xxml.dom.Node.isSameNoder (jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.isSameNodeX-tr Xoptparse.OptionParser.set_usager (jjXNhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.set_usageX-tr Xdecimal.Context.sqrtr (jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.sqrtX-tr Xsunau.AU_write.setnframesr (jjXEhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setnframesX-tr X"email.message.Message.set_boundaryr (jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_boundaryX-tr Xunittest.TestResult.addSkipr (jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addSkipX-tr X+xml.sax.xmlreader.InputSource.getByteStreamr (jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getByteStreamX-tr X2xmlrpc.server.SimpleXMLRPCServer.register_functionr (jjXfhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_functionX-tr Xaifc.aifc.getcompnamer (jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.getcompnameX-tr X!email.message.Message.__setitem__r (jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.__setitem__X-tr X'asyncio.BaseEventLoop.create_connectionr (jjX_http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_connectionX-tr Xhashlib.hash.copyr (jjX?http://docs.python.org/3/library/hashlib.html#hashlib.hash.copyX-tr Xasyncio.Future.cancelr (jjXHhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.cancelX-tr Xvenv.EnvBuilder.setup_scriptsr (jjXHhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.setup_scriptsX-tr X set.unionr (jjX8http://docs.python.org/3/library/stdtypes.html#set.unionX-tr X codecs.IncrementalDecoder.decoder (jjXMhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.decodeX-tr Xfractions.Fraction.__round__r (jjXLhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.__round__X-tr X!unittest.TestCase.assertIsNotNoner (jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsNotNoneX-tr Ximaplib.IMAP4.sendr (jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.sendX-tr Xemail.header.Header.appendr (jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.appendX-tr Xasyncio.StreamReader.at_eofr (jjXPhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.at_eofX-tr Xzlib.Decompress.decompressr (jjXEhttp://docs.python.org/3/library/zlib.html#zlib.Decompress.decompressX-tr Xdecimal.Context.canonicalr (jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.canonicalX-tr X,http.server.BaseHTTPRequestHandler.log_errorr (jjX^http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_errorX-tr Xlogging.LoggerAdapter.processr (jjXKhttp://docs.python.org/3/library/logging.html#logging.LoggerAdapter.processX-tr X7xmlrpc.server.CGIXMLRPCRequestHandler.register_instancer (jjXkhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_instanceX-tr Xbdb.Bdb.get_stackr (jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_stackX-tr X+difflib.SequenceMatcher.get_matching_blocksr (jjXYhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.get_matching_blocksX-tr X&importlib.abc.InspectLoader.get_sourcer (jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.get_sourceX-tr Xweakref.finalize.__call__r (jjXGhttp://docs.python.org/3/library/weakref.html#weakref.finalize.__call__X-tr Xaifc.aifc.writeframesrawr (jjXChttp://docs.python.org/3/library/aifc.html#aifc.aifc.writeframesrawX-tr Xobject.__enter__r (jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__enter__X-tr X'socketserver.BaseServer.process_requestr (jjXZhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.process_requestX-tr Xunittest.mock.Mock.__dir__r (jjXNhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.__dir__X-tr Xbz2.BZ2File.peekr (jjX:http://docs.python.org/3/library/bz2.html#bz2.BZ2File.peekX-tr X0xml.parsers.expat.xmlparser.NotStandaloneHandlerr (jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.NotStandaloneHandlerX-tr X"venv.EnvBuilder.ensure_directoriesr (jjXMhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.ensure_directoriesX-tr X#unittest.TestCase.assertRaisesRegexr (jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaisesRegexX-tr Xmailbox.mboxMessage.set_flagsr (jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_flagsX-tr X str.lowerr (jjX8http://docs.python.org/3/library/stdtypes.html#str.lowerX-tr X dict.keysr (jjX8http://docs.python.org/3/library/stdtypes.html#dict.keysX-tr X&xml.etree.ElementTree.ElementTree.findr (jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.findX-tr Xobject.__new__r (jjX@http://docs.python.org/3/reference/datamodel.html#object.__new__X-tr X"unittest.TestCase.assertIsInstancer (jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsInstanceX-tr X%http.client.HTTPConnection.putrequestr (jjXWhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.putrequestX-tr X$xml.etree.ElementTree.Element.insertr (jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.insertX-tr X$modulefinder.ModuleFinder.run_scriptr (jjXWhttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.run_scriptX-tr Xsymtable.SymbolTable.get_idr (jjXJhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_idX-tr Xmsilib.RadioButtonGroup.addr (jjXHhttp://docs.python.org/3/library/msilib.html#msilib.RadioButtonGroup.addX-tr Xdecimal.Decimal.log10r (jjXChttp://docs.python.org/3/library/decimal.html#decimal.Decimal.log10X-tr X%importlib.abc.ResourceLoader.get_datar (jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.ResourceLoader.get_dataX-tr X"email.message.Message.set_unixfromr (jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_unixfromX-tr Ximaplib.IMAP4.unsubscriber (jjXGhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.unsubscribeX-tr Xdecimal.Decimal.copy_signr (jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_signX-tr Xchunk.Chunk.skipr (jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.skipX-tr!Xtarfile.TarInfo.islnkr!(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.islnkX-tr!Xlogging.LogRecord.getMessager!(jjXJhttp://docs.python.org/3/library/logging.html#logging.LogRecord.getMessageX-tr!Xaifc.aifc.getnframesr!(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.getnframesX-tr!X"codecs.IncrementalDecoder.getstater!(jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.getstateX-tr!Xtkinter.ttk.Style.theme_user !(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_useX-tr !Xxdrlib.Unpacker.get_bufferr !(jjXGhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.get_bufferX-tr !X str.islowerr !(jjX:http://docs.python.org/3/library/stdtypes.html#str.islowerX-tr!Xpoplib.POP3.userr!(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.userX-tr!Xftplib.FTP.transfercmdr!(jjXChttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.transfercmdX-tr!X)email.message.Message.get_content_subtyper!(jjX]http://docs.python.org/3/library/email.message.html#email.message.Message.get_content_subtypeX-tr!Xobject.__ior__r!(jjX@http://docs.python.org/3/reference/datamodel.html#object.__ior__X-tr!Xthreading.Thread.isDaemonr!(jjXIhttp://docs.python.org/3/library/threading.html#threading.Thread.isDaemonX-tr!X#difflib.SequenceMatcher.get_opcodesr!(jjXQhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.get_opcodesX-tr!Xdecimal.Decimal.logbr!(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logbX-tr!X$importlib.abc.InspectLoader.get_coder!(jjXThttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.get_codeX-tr!Xlogging.StreamHandler.flushr!(jjXRhttp://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler.flushX-tr !X.http.server.BaseHTTPRequestHandler.log_requestr!!(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_requestX-tr"!Xasyncore.dispatcher.connectr#!(jjXJhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.connectX-tr$!Xdatetime.timezone.tznamer%!(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.timezone.tznameX-tr&!Xftplib.FTP_TLS.prot_pr'!(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.prot_pX-tr(!X#calendar.Calendar.yeardays2calendarr)!(jjXRhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardays2calendarX-tr*!X str.splitr+!(jjX8http://docs.python.org/3/library/stdtypes.html#str.splitX-tr,!Xpathlib.Path.statr-!(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.Path.statX-tr.!Xxml.dom.Node.normalizer/!(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.normalizeX-tr0!Xdbm.gnu.gdbm.nextkeyr1!(jjX>http://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.nextkeyX-tr2!Xbdb.Bdb.user_returnr3!(jjX=http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_returnX-tr4!X!asyncio.WriteTransport.writelinesr5!(jjXXhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.writelinesX-tr6!Xarray.array.popr7!(jjX;http://docs.python.org/3/library/array.html#array.array.popX-tr8!Xobject.__iter__r9!(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__iter__X-tr:!X!distutils.text_file.TextFile.warnr;!(jjXPhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.warnX-tr!X-distutils.ccompiler.CCompiler.add_library_dirr?!(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_library_dirX-tr@!Xobject.__rfloordiv__rA!(jjXFhttp://docs.python.org/3/reference/datamodel.html#object.__rfloordiv__X-trB!Xdatetime.time.isoformatrC!(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.time.isoformatX-trD!Xcurses.window.getstrrE!(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.getstrX-trF!Xdoctest.DocTestRunner.summarizerG!(jjXMhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.summarizeX-trH!X,xml.dom.Document.createProcessingInstructionrI!(jjXZhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createProcessingInstructionX-trJ!X0xml.parsers.expat.xmlparser.CharacterDataHandlerrK!(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CharacterDataHandlerX-trL!Xpathlib.Path.is_fiforM!(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_fifoX-trN!X&html.parser.HTMLParser.handle_starttagrO!(jjXXhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_starttagX-trP!X$socketserver.BaseServer.handle_errorrQ!(jjXWhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_errorX-trR!Xobject.__format__rS!(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__format__X-trT!X#asyncio.BaseEventLoop.create_serverrU!(jjX[http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_serverX-trV!Xmailbox.mbox.unlockrW!(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.mbox.unlockX-trX!Ximaplib.IMAP4.recentrY!(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.recentX-trZ!X+asyncio.BaseEventLoop.set_exception_handlerr[!(jjXchttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.set_exception_handlerX-tr\!Xsmtplib.SMTP.sendmailr]!(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.sendmailX-tr^!Xhttp.cookies.BaseCookie.outputr_!(jjXQhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.outputX-tr`!Xmailbox.Babyl.lockra!(jjX@http://docs.python.org/3/library/mailbox.html#mailbox.Babyl.lockX-trb!Xunittest.TestCase.assertLogsrc!(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertLogsX-trd!X)xml.sax.handler.ContentHandler.charactersre!(jjX_http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.charactersX-trf!X%ipaddress.IPv4Network.address_excluderg!(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.address_excludeX-trh!Xtkinter.ttk.Treeview.detachri!(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.detachX-trj!Xthreading.Condition.notifyrk!(jjXJhttp://docs.python.org/3/library/threading.html#threading.Condition.notifyX-trl!Xtypes.MappingProxyType.valuesrm!(jjXIhttp://docs.python.org/3/library/types.html#types.MappingProxyType.valuesX-trn!X str.isdigitro!(jjX:http://docs.python.org/3/library/stdtypes.html#str.isdigitX-trp!X%logging.handlers.DatagramHandler.sendrq!(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandler.sendX-trr!X&ssl.SSLContext.set_servername_callbackrs!(jjXPhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_servername_callbackX-trt!X-logging.handlers.BufferingHandler.shouldFlushru!(jjXdhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandler.shouldFlushX-trv!X/logging.handlers.NTEventLogHandler.getEventTyperw!(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.getEventTypeX-trx!Xxdrlib.Packer.pack_bytesry!(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_bytesX-trz!Xasyncio.Semaphore.releaser{!(jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore.releaseX-tr|!X3importlib.machinery.ExtensionFileLoader.load_moduler}!(jjXchttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.load_moduleX-tr~!Xasyncio.Lock.acquirer!(jjXGhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Lock.acquireX-tr!Xmsilib.Database.Commitr!(jjXChttp://docs.python.org/3/library/msilib.html#msilib.Database.CommitX-tr!X'urllib.request.BaseHandler.unknown_openr!(jjX\http://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.unknown_openX-tr!X*email.message.EmailMessage.add_alternativer!(jjXehttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.add_alternativeX-tr!Xsubprocess.Popen.waitr!(jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.waitX-tr!Xsubprocess.Popen.terminater!(jjXKhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.terminateX-tr!Xzipfile.ZipFile.readr!(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.readX-tr!Xasynchat.fifo.is_emptyr!(jjXEhttp://docs.python.org/3/library/asynchat.html#asynchat.fifo.is_emptyX-tr!X!code.InteractiveInterpreter.writer!(jjXLhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.writeX-tr!Xdecimal.Decimal.next_towardr!(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.next_towardX-tr!X str.translater!(jjX<http://docs.python.org/3/library/stdtypes.html#str.translateX-tr!X#tkinter.tix.tixCommand.tix_getimager!(jjXUhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getimageX-tr!X5multiprocessing.managers.SyncManager.BoundedSemaphorer!(jjXkhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.BoundedSemaphoreX-tr!X'socketserver.BaseServer.service_actionsr!(jjXZhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.service_actionsX-tr!Xmailbox.Mailbox.iteritemsr!(jjXGhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iteritemsX-tr!X%unittest.TestLoader.loadTestsFromNamer!(jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromNameX-tr!Xlogging.Logger.removeFilterr!(jjXIhttp://docs.python.org/3/library/logging.html#logging.Logger.removeFilterX-tr!X"mailbox.MaildirMessage.remove_flagr!(jjXPhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.remove_flagX-tr!Xunittest.TestResult.startTestr!(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.startTestX-tr!X%tkinter.ttk.Treeview.identify_elementr!(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_elementX-tr!Xthreading.Thread.setDaemonr!(jjXJhttp://docs.python.org/3/library/threading.html#threading.Thread.setDaemonX-tr!Xxmlrpc.client.DateTime.decoder!(jjXQhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTime.decodeX-tr!X!urllib.request.Request.get_methodr!(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.get_methodX-tr!X-xml.sax.handler.DTDHandler.unparsedEntityDeclr!(jjXchttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandler.unparsedEntityDeclX-tr!Xnntplib.NNTP.headr!(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.headX-tr!Xio.BufferedWriter.flushr!(jjX@http://docs.python.org/3/library/io.html#io.BufferedWriter.flushX-tr!Xcsv.csvwriter.writerowr!(jjX@http://docs.python.org/3/library/csv.html#csv.csvwriter.writerowX-tr!Xdifflib.HtmlDiff.make_filer!(jjXHhttp://docs.python.org/3/library/difflib.html#difflib.HtmlDiff.make_fileX-tr!Xipaddress.IPv6Network.hostsr!(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.hostsX-tr!Xformatter.formatter.pop_fontr!(jjXLhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_fontX-tr!X!urllib.request.URLopener.retriever!(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.retrieveX-tr!Xtracemalloc.Traceback.formatr!(jjXNhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Traceback.formatX-tr!Xmailbox.MH.unlockr!(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MH.unlockX-tr!Xftplib.FTP.retrbinaryr!(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.retrbinaryX-tr!Xtarfile.TarFile.getmembersr!(jjXHhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.getmembersX-tr!Xthreading.Thread.getNamer!(jjXHhttp://docs.python.org/3/library/threading.html#threading.Thread.getNameX-tr!Xmailbox.mboxMessage.set_fromr!(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_fromX-tr!Xaifc.aifc.aiffr!(jjX9http://docs.python.org/3/library/aifc.html#aifc.aifc.aiffX-tr!Xmmap.mmap.sizer!(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.sizeX-tr!X!sqlite3.Connection.load_extensionr!(jjXOhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.load_extensionX-tr!Xaifc.aifc.aifcr!(jjX9http://docs.python.org/3/library/aifc.html#aifc.aifc.aifcX-tr!X4wsgiref.simple_server.WSGIRequestHandler.get_environr!(jjXbhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandler.get_environX-tr!Xdatetime.time.__format__r!(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.time.__format__X-tr!X7http.server.BaseHTTPRequestHandler.log_date_time_stringr!(jjXihttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_date_time_stringX-tr!X%socketserver.BaseServer.serve_foreverr!(jjXXhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.serve_foreverX-tr!Xmsilib.Dialog.checkboxr!(jjXChttp://docs.python.org/3/library/msilib.html#msilib.Dialog.checkboxX-tr!Xnntplib.NNTP.getcapabilitiesr!(jjXJhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.getcapabilitiesX-tr!X)xml.sax.xmlreader.InputSource.getEncodingr!(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getEncodingX-tr!X3urllib.request.HTTPRedirectHandler.redirect_requestr!(jjXhhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.redirect_requestX-tr!X*logging.handlers.SocketHandler.handleErrorr!(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.handleErrorX-tr!X!gettext.GNUTranslations.lngettextr!(jjXOhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.lngettextX-tr!X)xml.etree.ElementTree.TreeBuilder.doctyper!(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.doctypeX-tr!X importlib.abc.Loader.exec_moduler!(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.exec_moduleX-tr!Xsched.scheduler.runr!(jjX?http://docs.python.org/3/library/sched.html#sched.scheduler.runX-tr!Xselect.epoll.fromfdr!(jjX@http://docs.python.org/3/library/select.html#select.epoll.fromfdX-tr!Xmsilib.View.Executer!(jjX@http://docs.python.org/3/library/msilib.html#msilib.View.ExecuteX-tr!Xmailbox.mbox.lockr!(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.mbox.lockX-tr!Xcurses.panel.Panel.showr!(jjXJhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.showX-tr!Xselect.poll.pollr!(jjX=http://docs.python.org/3/library/select.html#select.poll.pollX-tr!X,asyncio.WriteTransport.get_write_buffer_sizer!(jjXchttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.get_write_buffer_sizeX-tr!X asyncio.BaseEventLoop.add_readerr!(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.add_readerX-tr!Xsmtplib.SMTP.docmdr!(jjX@http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.docmdX-tr!Xtkinter.ttk.Style.configurer!(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.configureX-tr!Xcurses.window.chgatr!(jjX@http://docs.python.org/3/library/curses.html#curses.window.chgatX-tr!X(unittest.TestResult.addUnexpectedSuccessr!(jjXWhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addUnexpectedSuccessX-tr"X datetime.timedelta.total_secondsr"(jjXOhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.total_secondsX-tr"Xsunau.AU_write.setframerater"(jjXGhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setframerateX-tr"Xformatter.formatter.pop_marginr"(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_marginX-tr"X#argparse.ArgumentParser.print_usager"(jjXRhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.print_usageX-tr"X(sqlite3.Connection.enable_load_extensionr "(jjXVhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.enable_load_extensionX-tr "X$tkinter.tix.tixCommand.tix_configurer "(jjXVhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_configureX-tr "Xtelnetlib.Telnet.read_allr "(jjXIhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_allX-tr"X!email.policy.Policy.handle_defectr"(jjXThttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.handle_defectX-tr"Ximaplib.IMAP4.appendr"(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.appendX-tr"Xemail.message.Message.set_typer"(jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_typeX-tr"Xbdb.Breakpoint.bpprintr"(jjX@http://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpprintX-tr"X_thread.lock.releaser"(jjXBhttp://docs.python.org/3/library/_thread.html#_thread.lock.releaseX-tr"Xvenv.EnvBuilder.post_setupr"(jjXEhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.post_setupX-tr"Xunittest.TestCase.assertRaisesr"(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaisesX-tr"X$tkinter.ttk.Treeview.identify_columnr"(jjXVhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_columnX-tr"Xasyncore.dispatcher.sendr"(jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.sendX-tr "Xaifc.aifc.tellr!"(jjX9http://docs.python.org/3/library/aifc.html#aifc.aifc.tellX-tr""X"asyncore.dispatcher.handle_connectr#"(jjXQhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_connectX-tr$"Xnntplib.NNTP.nextr%"(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nextX-tr&"Xtkinter.ttk.Treeview.xviewr'"(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.xviewX-tr("X)wsgiref.handlers.BaseHandler.add_cgi_varsr)"(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.add_cgi_varsX-tr*"X)xml.etree.ElementTree.ElementTree.getrootr+"(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.getrootX-tr,"X!optparse.OptionParser.print_usager-"(jjXPhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.print_usageX-tr."Xdecimal.Context.remainder_nearr/"(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.remainder_nearX-tr0"X%xml.etree.ElementTree.TreeBuilder.endr1"(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.endX-tr2"Xtelnetlib.Telnet.msgr3"(jjXDhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.msgX-tr4"Xtkinter.ttk.Combobox.setr5"(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.setX-tr6"Xre.regex.matchr7"(jjX7http://docs.python.org/3/library/re.html#re.regex.matchX-tr8"X1http.server.BaseHTTPRequestHandler.version_stringr9"(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.version_stringX-tr:"X*multiprocessing.managers.SyncManager.Queuer;"(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.QueueX-tr<"X"formatter.writer.send_literal_datar="(jjXRhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_literal_dataX-tr>"Xtkinter.ttk.Treeview.yviewr?"(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.yviewX-tr@"Xcsv.Sniffer.sniffrA"(jjX;http://docs.python.org/3/library/csv.html#csv.Sniffer.sniffX-trB"Xprofile.Profile.runrC"(jjXAhttp://docs.python.org/3/library/profile.html#profile.Profile.runX-trD"Xmailbox.MH.closerE"(jjX>http://docs.python.org/3/library/mailbox.html#mailbox.MH.closeX-trF"Xwave.Wave_read.closerG"(jjX?http://docs.python.org/3/library/wave.html#wave.Wave_read.closeX-trH"Xset.isdisjointrI"(jjX=http://docs.python.org/3/library/stdtypes.html#set.isdisjointX-trJ"Xqueue.Queue.getrK"(jjX;http://docs.python.org/3/library/queue.html#queue.Queue.getX-trL"Xxdrlib.Unpacker.get_positionrM"(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.get_positionX-trN"Xxml.dom.Node.replaceChildrO"(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.replaceChildX-trP"X%html.parser.HTMLParser.handle_commentrQ"(jjXWhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_commentX-trR"Xobject.__iadd__rS"(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__iadd__X-trT"Xcurses.window.notimeoutrU"(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.notimeoutX-trV"Xunittest.TestSuite.addTestsrW"(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.addTestsX-trX"Xdatetime.datetime.__format__rY"(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.__format__X-trZ"Xchunk.Chunk.getsizer["(jjX?http://docs.python.org/3/library/chunk.html#chunk.Chunk.getsizeX-tr\"Xnntplib.NNTP.groupr]"(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.groupX-tr^"Xdecimal.Decimal.copy_absr_"(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_absX-tr`"X!tkinter.ttk.Treeview.identify_rowra"(jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_rowX-trb"Xturtle.Shape.addcomponentrc"(jjXFhttp://docs.python.org/3/library/turtle.html#turtle.Shape.addcomponentX-trd"X'asyncio.asyncio.subprocess.Process.killre"(jjX`http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.killX-trf"X"asyncio.StreamWriter.can_write_eofrg"(jjXWhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.can_write_eofX-trh"Xasyncio.Semaphore.lockedri"(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore.lockedX-trj"Xemail.parser.FeedParser.closerk"(jjXPhttp://docs.python.org/3/library/email.parser.html#email.parser.FeedParser.closeX-trl"Xcodecs.StreamWriter.writelinesrm"(jjXKhttp://docs.python.org/3/library/codecs.html#codecs.StreamWriter.writelinesX-trn"X(email.policy.Compat32.header_fetch_parsero"(jjX[http://docs.python.org/3/library/email.policy.html#email.policy.Compat32.header_fetch_parseX-trp"Xlogging.Logger.setLevelrq"(jjXEhttp://docs.python.org/3/library/logging.html#logging.Logger.setLevelX-trr"Xbdb.Breakpoint.enablers"(jjX?http://docs.python.org/3/library/bdb.html#bdb.Breakpoint.enableX-trt"X-importlib.machinery.SourceFileLoader.set_dataru"(jjX]http://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.set_dataX-trv"Xxml.dom.Node.cloneNoderw"(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.cloneNodeX-trx"Xselectors.BaseSelector.registerry"(jjXOhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.registerX-trz"Xaifc.aifc.setmarkr{"(jjX<http://docs.python.org/3/library/aifc.html#aifc.aifc.setmarkX-tr|"Xselectors.BaseSelector.get_keyr}"(jjXNhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_keyX-tr~"Xobject.__rlshift__r"(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__rlshift__X-tr"X-xml.parsers.expat.xmlparser.EndElementHandlerr"(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndElementHandlerX-tr"X ctypes.LibraryLoader.LoadLibraryr"(jjXMhttp://docs.python.org/3/library/ctypes.html#ctypes.LibraryLoader.LoadLibraryX-tr"X)xml.sax.xmlreader.InputSource.getPublicIdr"(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getPublicIdX-tr"Xpathlib.Path.is_socketr"(jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_socketX-tr"Ximaplib.IMAP4.searchr"(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.searchX-tr"Xtkinter.ttk.Widget.instater"(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.instateX-tr"Xasyncio.Condition.wait_forr"(jjXMhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.wait_forX-tr"Xlogging.Handler.setLevelr"(jjXFhttp://docs.python.org/3/library/logging.html#logging.Handler.setLevelX-tr"X%distutils.ccompiler.CCompiler.executer"(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.executeX-tr"X&email.message.EmailMessage.get_contentr"(jjXahttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.get_contentX-tr"Xzipfile.ZipFile.extractr"(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.extractX-tr"Xasyncio.JoinableQueue.joinr"(jjXMhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.JoinableQueue.joinX-tr"X)xml.etree.ElementTree.ElementTree.findallr"(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.findallX-tr"Xzipimport.zipimporter.get_coder"(jjXNhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_codeX-tr"Xxdrlib.Packer.pack_doubler"(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_doubleX-tr"Xparser.ST.compiler"(jjX>http://docs.python.org/3/library/parser.html#parser.ST.compileX-tr"X3xml.parsers.expat.xmlparser.StartDoctypeDeclHandlerr"(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartDoctypeDeclHandlerX-tr"Xipaddress.IPv6Network.overlapsr"(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.overlapsX-tr"Xdatetime.datetime.utctimetupler"(jjXMhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utctimetupleX-tr"u(X/asyncio.SubprocessProtocol.pipe_connection_lostr"(jjXfhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_connection_lostX-tr"X)xml.parsers.expat.xmlparser.UseForeignDTDr"(jjXWhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.UseForeignDTDX-tr"Xaifc.aifc.getframerater"(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.getframerateX-tr"X*multiprocessing.connection.Listener.acceptr"(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.acceptX-tr"Xmailbox.MaildirMessage.set_infor"(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_infoX-tr"X pickle.Unpickler.persistent_loadr"(jjXMhttp://docs.python.org/3/library/pickle.html#pickle.Unpickler.persistent_loadX-tr"X"email.message.Message.is_multipartr"(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.is_multipartX-tr"Ximaplib.IMAP4.readliner"(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.readlineX-tr"Xpipes.Template.resetr"(jjX@http://docs.python.org/3/library/pipes.html#pipes.Template.resetX-tr"X logging.Logger.getEffectiveLevelr"(jjXNhttp://docs.python.org/3/library/logging.html#logging.Logger.getEffectiveLevelX-tr"Xdecimal.Context.radixr"(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.radixX-tr"X'tkinter.tix.tixCommand.tix_addbitmapdirr"(jjXYhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_addbitmapdirX-tr"Xunittest.TestCase.tearDownr"(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.tearDownX-tr"Xxdrlib.Packer.pack_arrayr"(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_arrayX-tr"X(difflib.SequenceMatcher.real_quick_ratior"(jjXVhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.real_quick_ratioX-tr"Xdecimal.Context.number_classr"(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.number_classX-tr"Xdatetime.datetime.timetupler"(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timetupleX-tr"Xwave.Wave_write.closer"(jjX@http://docs.python.org/3/library/wave.html#wave.Wave_write.closeX-tr"X!multiprocessing.Queue.join_threadr"(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.join_threadX-tr"Xmmap.mmap.resizer"(jjX;http://docs.python.org/3/library/mmap.html#mmap.mmap.resizeX-tr"X1http.server.BaseHTTPRequestHandler.address_stringr"(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.address_stringX-tr"Xmailbox.Maildir.closer"(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.closeX-tr"X!decimal.Context.to_integral_exactr"(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Context.to_integral_exactX-tr"X%http.client.HTTPConnection.endheadersr"(jjXWhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.endheadersX-tr"Xaifc.aifc.getnchannelsr"(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.getnchannelsX-tr"Xzipfile.ZipFile.testzipr"(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.testzipX-tr"Xssl.SSLSocket.cipherr"(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.cipherX-tr"Xpipes.Template.copyr"(jjX?http://docs.python.org/3/library/pipes.html#pipes.Template.copyX-tr"X"configparser.ConfigParser.defaultsr"(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.defaultsX-tr"Xxdrlib.Unpacker.unpack_farrayr"(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_farrayX-tr"X str.centerr"(jjX9http://docs.python.org/3/library/stdtypes.html#str.centerX-tr"Xasyncore.dispatcher.handle_readr"(jjXNhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_readX-tr"Xdecimal.Decimal.min_magr"(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.min_magX-tr"Xbdb.Bdb.runevalr"(jjX9http://docs.python.org/3/library/bdb.html#bdb.Bdb.runevalX-tr"Xdecimal.Decimal.is_subnormalr"(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_subnormalX-tr"Xftplib.FTP_TLS.authr"(jjX@http://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.authX-tr"Xxml.sax.SAXException.getMessager"(jjXMhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXException.getMessageX-tr"Xre.regex.findallr"(jjX9http://docs.python.org/3/library/re.html#re.regex.findallX-tr"Xwave.Wave_read.getframerater"(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getframerateX-tr"X"unittest.TestCase.assertWarnsRegexr"(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertWarnsRegexX-tr"Xdatetime.date.strftimer"(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.date.strftimeX-tr"X$xml.dom.DOMImplementation.hasFeaturer"(jjXRhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMImplementation.hasFeatureX-tr"Ximaplib.IMAP4.selectr"(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.selectX-tr"X"unittest.TestCase.assertTupleEqualr"(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertTupleEqualX-tr"X(email.charset.Charset.get_output_charsetr"(jjX\http://docs.python.org/3/library/email.charset.html#email.charset.Charset.get_output_charsetX-tr#X)xml.sax.xmlreader.InputSource.setSystemIdr#(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setSystemIdX-tr#X)distutils.ccompiler.CCompiler.add_libraryr#(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_libraryX-tr#X0http.server.BaseHTTPRequestHandler.flush_headersr#(jjXbhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.flush_headersX-tr#X'xml.etree.ElementTree.TreeBuilder.startr#(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.startX-tr#Xcurses.window.overlayr #(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.overlayX-tr #Xsqlite3.Connection.executemanyr #(jjXLhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executemanyX-tr #Xobject.__init__r #(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__init__X-tr#Xcollections.deque.appendr#(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.appendX-tr#Xasyncio.Condition.notifyr#(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.notifyX-tr#Xunittest.TestCase.assertIsNotr#(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsNotX-tr#Xcalendar.TextCalendar.pryearr#(jjXKhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.pryearX-tr#Xsunau.AU_read.getparamsr#(jjXChttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getparamsX-tr#Xemail.policy.Policy.foldr#(jjXKhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.foldX-tr#X!ssl.SSLSocket.get_channel_bindingr#(jjXKhttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.get_channel_bindingX-tr#Xasyncio.BaseEventLoop.call_soonr#(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_soonX-tr#X%multiprocessing.pool.AsyncResult.waitr#(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.waitX-tr #X$urllib.request.HTTPHandler.http_openr!#(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandler.http_openX-tr"#Xasyncio.StreamWriter.writelinesr##(jjXThttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.writelinesX-tr$#Xobject.__repr__r%#(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__repr__X-tr&#Xnntplib.NNTP.helpr'#(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.helpX-tr(#X-logging.handlers.SysLogHandler.encodePriorityr)#(jjXdhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.encodePriorityX-tr*#Xasyncore.dispatcher.listenr+#(jjXIhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.listenX-tr,#Xthreading.Event.waitr-#(jjXDhttp://docs.python.org/3/library/threading.html#threading.Event.waitX-tr.#Xssl.SSLContext.load_cert_chainr/#(jjXHhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_cert_chainX-tr0#X!email.message.Message.set_payloadr1#(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_payloadX-tr2#Xio.IOBase.readlinesr3#(jjX<http://docs.python.org/3/library/io.html#io.IOBase.readlinesX-tr4#Xbdb.Bdb.dispatch_exceptionr5#(jjXDhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_exceptionX-tr6#Xdatetime.datetime.dstr7#(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.dstX-tr8#X$xml.etree.ElementTree.XMLParser.feedr9#(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser.feedX-tr:#Xnntplib.NNTP.loginr;#(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.loginX-tr<#X+xml.sax.xmlreader.XMLReader.setErrorHandlerr=#(jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setErrorHandlerX-tr>#X-xml.sax.xmlreader.XMLReader.getContentHandlerr?#(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getContentHandlerX-tr@#X&email.message.Message.get_default_typerA#(jjXZhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_default_typeX-trB#Xthreading.Thread.startrC#(jjXFhttp://docs.python.org/3/library/threading.html#threading.Thread.startX-trD#X asyncio.Future.add_done_callbackrE#(jjXShttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.add_done_callbackX-trF#Xdecimal.Decimal.compare_totalrG#(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_totalX-trH#Xmailbox.Mailbox.__iter__rI#(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__iter__X-trJ#X lzma.LZMADecompressor.decompressrK#(jjXKhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.decompressX-trL#X%unittest.TestCase.assertSequenceEqualrM#(jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertSequenceEqualX-trN#X configparser.RawConfigParser.setrO#(jjXShttp://docs.python.org/3/library/configparser.html#configparser.RawConfigParser.setX-trP#X3http.server.BaseHTTPRequestHandler.date_time_stringrQ#(jjXehttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.date_time_stringX-trR#Xformatter.writer.new_stylesrS#(jjXKhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_stylesX-trT#Xpstats.Stats.strip_dirsrU#(jjXEhttp://docs.python.org/3/library/profile.html#pstats.Stats.strip_dirsX-trV#Ximaplib.IMAP4.getannotationrW#(jjXIhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getannotationX-trX#Ximaplib.IMAP4.getquotarootrY#(jjXHhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getquotarootX-trZ#Ximaplib.IMAP4.login_cram_md5r[#(jjXJhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.login_cram_md5X-tr\#Xxml.dom.Element.setAttributer]#(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeX-tr^#Xmailbox.MHMessage.add_sequencer_#(jjXLhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.add_sequenceX-tr`#X"importlib.abc.Loader.create_modulera#(jjXRhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.create_moduleX-trb#Xthreading.Semaphore.acquirerc#(jjXKhttp://docs.python.org/3/library/threading.html#threading.Semaphore.acquireX-trd#Xsunau.AU_read.readframesre#(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.readframesX-trf#X$configparser.ConfigParser.getbooleanrg#(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getbooleanX-trh#Xcontextlib.ExitStack.pushri#(jjXJhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.pushX-trj#Xdecimal.Context.copy_absrk#(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_absX-trl#X'multiprocessing.pool.Pool.starmap_asyncrm#(jjX]http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.starmap_asyncX-trn#X.urllib.request.Request.add_unredirected_headerro#(jjXchttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.add_unredirected_headerX-trp#Xobject.__setstate__rq#(jjX@http://docs.python.org/3/library/pickle.html#object.__setstate__X-trr#X1xml.parsers.expat.xmlparser.SetParamEntityParsingrs#(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetParamEntityParsingX-trt#Xdict.popru#(jjX7http://docs.python.org/3/library/stdtypes.html#dict.popX-trv#Xbdb.Bdb.set_steprw#(jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_stepX-trx#X str.endswithry#(jjX;http://docs.python.org/3/library/stdtypes.html#str.endswithX-trz#Xio.IOBase.truncater{#(jjX;http://docs.python.org/3/library/io.html#io.IOBase.truncateX-tr|#Xsqlite3.Connection.interruptr}#(jjXJhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.interruptX-tr~#X str.istitler#(jjX:http://docs.python.org/3/library/stdtypes.html#str.istitleX-tr#Xdecimal.Context.minusr#(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.minusX-tr#Xftplib.FTP.pwdr#(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.pwdX-tr#Xmailbox.MH.lockr#(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MH.lockX-tr#Xtypes.MappingProxyType.itemsr#(jjXHhttp://docs.python.org/3/library/types.html#types.MappingProxyType.itemsX-tr#Xxdrlib.Packer.get_bufferr#(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.get_bufferX-tr#Xcurses.window.subwinr#(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.subwinX-tr#Xsocket.socket.setblockingr#(jjXFhttp://docs.python.org/3/library/socket.html#socket.socket.setblockingX-tr#Xcurses.window.eraser#(jjX@http://docs.python.org/3/library/curses.html#curses.window.eraseX-tr#X%gettext.NullTranslations.add_fallbackr#(jjXShttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.add_fallbackX-tr#X(multiprocessing.Queue.cancel_join_threadr#(jjX^http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.cancel_join_threadX-tr#Xdatetime.time.strftimer#(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.time.strftimeX-tr#X&xml.etree.ElementTree.TreeBuilder.datar#(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.dataX-tr#X configparser.ConfigParser.readfpr#(jjXShttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.readfpX-tr#X%msilib.SummaryInformation.GetPropertyr#(jjXRhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.GetPropertyX-tr#X#multiprocessing.pool.Pool.terminater#(jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.terminateX-tr#X str.countr#(jjX8http://docs.python.org/3/library/stdtypes.html#str.countX-tr#Xcurses.window.get_wchr#(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.get_wchX-tr#X str.zfillr#(jjX8http://docs.python.org/3/library/stdtypes.html#str.zfillX-tr#Xunittest.TestSuite.addTestr#(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.addTestX-tr#Xdatetime.time.__str__r#(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.time.__str__X-tr#Xdecimal.Context.is_subnormalr#(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_subnormalX-tr#X.asyncio.WriteTransport.set_write_buffer_limitsr#(jjXehttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.set_write_buffer_limitsX-tr#X'socketserver.BaseServer.server_activater#(jjXZhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_activateX-tr#Xunittest.TestCase.debugr#(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.debugX-tr#Xdecimal.Context.logical_invertr#(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_invertX-tr#Xsocket.socket.gettimeoutr#(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.gettimeoutX-tr#Xasyncore.dispatcher.bindr#(jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.bindX-tr#X$urllib.request.FileHandler.file_openr#(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandler.file_openX-tr#Xchunk.Chunk.getnamer#(jjX?http://docs.python.org/3/library/chunk.html#chunk.Chunk.getnameX-tr#X&logging.handlers.QueueListener.dequeuer#(jjX]http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.dequeueX-tr#X#collections.defaultdict.__missing__r#(jjXUhttp://docs.python.org/3/library/collections.html#collections.defaultdict.__missing__X-tr#Xtkinter.ttk.Treeview.indexr#(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.indexX-tr#Xunittest.TestResult.stopTestr#(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.stopTestX-tr#Xcurses.window.inschr#(jjX@http://docs.python.org/3/library/curses.html#curses.window.inschX-tr#Xdecimal.Context.logbr#(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.logbX-tr#Xsunau.AU_read.getnchannelsr#(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getnchannelsX-tr#Xasyncio.Event.is_setr#(jjXGhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.is_setX-tr#Xlogging.Handler.emitr#(jjXBhttp://docs.python.org/3/library/logging.html#logging.Handler.emitX-tr#X$concurrent.futures.Future.set_resultr#(jjX]http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.set_resultX-tr#Xpipes.Template.cloner#(jjX@http://docs.python.org/3/library/pipes.html#pipes.Template.cloneX-tr#Xstring.Formatter.formatr#(jjXDhttp://docs.python.org/3/library/string.html#string.Formatter.formatX-tr#Xwave.Wave_read.getcompnamer#(jjXEhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getcompnameX-tr#X%xml.etree.ElementTree.Element.findallr#(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findallX-tr#X,xml.dom.DOMImplementation.createDocumentTyper#(jjXZhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMImplementation.createDocumentTypeX-tr#Xemail.parser.Parser.parsestrr#(jjXOhttp://docs.python.org/3/library/email.parser.html#email.parser.Parser.parsestrX-tr#X"logging.logging.Formatter.__init__r#(jjXNhttp://docs.python.org/3/howto/logging.html#logging.logging.Formatter.__init__X-tr#Xmsilib.Record.ClearDatar#(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.ClearDataX-tr#Xlzma.LZMACompressor.flushr#(jjXDhttp://docs.python.org/3/library/lzma.html#lzma.LZMACompressor.flushX-tr#Xthreading.Barrier.resetr#(jjXGhttp://docs.python.org/3/library/threading.html#threading.Barrier.resetX-tr#Xdecimal.Decimal.maxr#(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.maxX-tr#Xdecimal.Context.to_eng_stringr#(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Context.to_eng_stringX-tr#Xftplib.FTP.sizer#(jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.sizeX-tr#Xasyncio.Queue.emptyr#(jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.emptyX-tr#X'asyncio.DatagramProtocol.error_receivedr#(jjX^http://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramProtocol.error_receivedX-tr#X/logging.handlers.QueueListener.enqueue_sentinelr#(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.enqueue_sentinelX-tr#Xpathlib.PurePath.as_urir#(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.as_uriX-tr#Xmailbox.Maildir.cleanr#(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.cleanX-tr#Xasyncio.StreamWriter.writer#(jjXOhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.writeX-tr#X%ossaudiodev.oss_audio_device.writeallr#(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.writeallX-tr#Xunittest.mock.call.call_listr#(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.call.call_listX-tr#X,email.policy.EmailPolicy.header_source_parser#(jjX_http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_source_parseX-tr#Xasyncio.Condition.waitr#(jjXIhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.waitX-tr#Xsocket.socket.sendallr#(jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.sendallX-tr#X,asyncio.asyncio.subprocess.Process.terminater#(jjXehttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.terminateX-tr$Xlogging.Logger.filterr$(jjXChttp://docs.python.org/3/library/logging.html#logging.Logger.filterX-tr$Xsunau.AU_read.getframerater$(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getframerateX-tr$X&email.message.EmailMessage.set_contentr$(jjXahttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.set_contentX-tr$Xstr.findr$(jjX7http://docs.python.org/3/library/stdtypes.html#str.findX-tr$Xasyncio.Event.setr $(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.setX-tr $Xsmtplib.SMTP.send_messager $(jjXGhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.send_messageX-tr $Xbdb.Bdb.clear_all_breaksr $(jjXBhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_all_breaksX-tr$Xwebbrowser.controller.openr$(jjXKhttp://docs.python.org/3/library/webbrowser.html#webbrowser.controller.openX-tr$X%tkinter.tix.tixCommand.tix_option_getr$(jjXWhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_option_getX-tr$X'configparser.ConfigParser.remove_optionr$(jjXZhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.remove_optionX-tr$Xselectors.EpollSelector.filenor$(jjXNhttp://docs.python.org/3/library/selectors.html#selectors.EpollSelector.filenoX-tr$Xio.IOBase.readabler$(jjX;http://docs.python.org/3/library/io.html#io.IOBase.readableX-tr$X2http.cookiejar.DefaultCookiePolicy.allowed_domainsr$(jjXghttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.allowed_domainsX-tr$X!decimal.Decimal.to_integral_exactr$(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_exactX-tr$Xset.intersection_updater$(jjXFhttp://docs.python.org/3/library/stdtypes.html#set.intersection_updateX-tr$Xbdb.Bdb.set_returnr$(jjX<http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_returnX-tr $X)http.server.CGIHTTPRequestHandler.do_POSTr!$(jjX[http://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler.do_POSTX-tr"$X$asyncio.WriteTransport.can_write_eofr#$(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.can_write_eofX-tr$$Xsunau.AU_write.closer%$(jjX@http://docs.python.org/3/library/sunau.html#sunau.AU_write.closeX-tr&$Xtypes.MappingProxyType.keysr'$(jjXGhttp://docs.python.org/3/library/types.html#types.MappingProxyType.keysX-tr($Xcsv.csvreader.__next__r)$(jjX@http://docs.python.org/3/library/csv.html#csv.csvreader.__next__X-tr*$Xset.differencer+$(jjX=http://docs.python.org/3/library/stdtypes.html#set.differenceX-tr,$X#trace.CoverageResults.write_resultsr-$(jjXOhttp://docs.python.org/3/library/trace.html#trace.CoverageResults.write_resultsX-tr.$X importlib.abc.Loader.module_reprr/$(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.module_reprX-tr0$Xformatter.formatter.push_styler1$(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_styleX-tr2$Xxdrlib.Unpacker.unpack_arrayr3$(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_arrayX-tr4$X"xml.sax.handler.ErrorHandler.errorr5$(jjXXhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.errorX-tr6$Xasyncio.BaseEventLoop.call_atr7$(jjXUhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_atX-tr8$Xssl.SSLContext.cert_store_statsr9$(jjXIhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.cert_store_statsX-tr:$X)logging.handlers.SocketHandler.makePickler;$(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.makePickleX-tr<$Xtkinter.ttk.Treeview.bboxr=$(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.bboxX-tr>$X$asyncio.BaseProtocol.connection_lostr?$(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.connection_lostX-tr@$X.xml.parsers.expat.xmlparser.AttlistDeclHandlerrA$(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.AttlistDeclHandlerX-trB$X*xml.etree.ElementTree.ElementTree.iterfindrC$(jjXfhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.iterfindX-trD$Xlogging.Logger.hasHandlersrE$(jjXHhttp://docs.python.org/3/library/logging.html#logging.Logger.hasHandlersX-trF$Xbdb.Bdb.set_untilrG$(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_untilX-trH$Xdecimal.Context.next_minusrI$(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Context.next_minusX-trJ$Xdecimal.Decimal.fmarK$(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.fmaX-trL$Xprofile.Profile.disablerM$(jjXEhttp://docs.python.org/3/library/profile.html#profile.Profile.disableX-trN$X&unittest.TestCase.assertMultiLineEqualrO$(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertMultiLineEqualX-trP$X$unittest.TestCase.assertGreaterEqualrQ$(jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertGreaterEqualX-trR$Xdecimal.Context.minrS$(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.minX-trT$Xsqlite3.Connection.cursorrU$(jjXGhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.cursorX-trV$X'email.message.EmailMessage.make_relatedrW$(jjXbhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.make_relatedX-trX$Xsymtable.Symbol.get_namespacerY$(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.get_namespaceX-trZ$X)distutils.fancy_getopt.FancyGetopt.getoptr[$(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetopt.getoptX-tr\$X,multiprocessing.managers.BaseManager.connectr]$(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.connectX-tr^$Xemail.policy.Compat32.foldr_$(jjXMhttp://docs.python.org/3/library/email.policy.html#email.policy.Compat32.foldX-tr`$X'xml.etree.ElementTree.ElementTree.parsera$(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.parseX-trb$X)xml.sax.xmlreader.IncrementalParser.resetrc$(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.resetX-trd$Xdatetime.datetime.timere$(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timeX-trf$X!weakref.WeakKeyDictionary.keyrefsrg$(jjXOhttp://docs.python.org/3/library/weakref.html#weakref.WeakKeyDictionary.keyrefsX-trh$Xunittest.TestResult.addErrorri$(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addErrorX-trj$Xmmap.mmap.read_byterk$(jjX>http://docs.python.org/3/library/mmap.html#mmap.mmap.read_byteX-trl$Xemail.message.Message.get_paramrm$(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.get_paramX-trn$Xdatetime.datetime.replacero$(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.datetime.replaceX-trp$X!mailbox.MaildirMessage.get_subdirrq$(jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_subdirX-trr$X(asyncio.BaseEventLoop.connect_write_pipers$(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.connect_write_pipeX-trt$Xbdb.Bdb.do_clearru$(jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.do_clearX-trv$X object.__ne__rw$(jjX?http://docs.python.org/3/reference/datamodel.html#object.__ne__X-trx$Xpathlib.Path.is_char_devicery$(jjXIhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_char_deviceX-trz$Xlogging.Logger.isEnabledForr{$(jjXIhttp://docs.python.org/3/library/logging.html#logging.Logger.isEnabledForX-tr|$X%unittest.mock.Mock.assert_called_withr}$(jjXYhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_called_withX-tr~$Xmailbox.Maildir.__setitem__r$(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.__setitem__X-tr$Xobject.__radd__r$(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__radd__X-tr$X1distutils.ccompiler.CCompiler.executable_filenamer$(jjX`http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.executable_filenameX-tr$Xdecimal.Decimal.lnr$(jjX@http://docs.python.org/3/library/decimal.html#decimal.Decimal.lnX-tr$Xssl.SSLSocket.compressionr$(jjXChttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.compressionX-tr$Xstr.rpartitionr$(jjX=http://docs.python.org/3/library/stdtypes.html#str.rpartitionX-tr$X%importlib.abc.SourceLoader.is_packager$(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.is_packageX-tr$X8distutils.ccompiler.CCompiler.runtime_library_dir_optionr$(jjXghttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.runtime_library_dir_optionX-tr$Xtkinter.ttk.Progressbar.stepr$(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.stepX-tr$Xasyncio.Handle.cancelr$(jjXMhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.Handle.cancelX-tr$Xcurses.window.echocharr$(jjXChttp://docs.python.org/3/library/curses.html#curses.window.echocharX-tr$Xio.BufferedReader.read1r$(jjX@http://docs.python.org/3/library/io.html#io.BufferedReader.read1X-tr$X#xml.parsers.expat.xmlparser.GetBaser$(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.GetBaseX-tr$Xformatter.formatter.push_fontr$(jjXMhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_fontX-tr$Xthreading.Condition.releaser$(jjXKhttp://docs.python.org/3/library/threading.html#threading.Condition.releaseX-tr$X%configparser.ConfigParser.read_stringr$(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_stringX-tr$X,distutils.ccompiler.CCompiler.library_optionr$(jjX[http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.library_optionX-tr$X&optparse.OptionParser.get_option_groupr$(jjXUhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_option_groupX-tr$Xmailbox.MH.__delitem__r$(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.__delitem__X-tr$Xmailbox.Mailbox.lockr$(jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.lockX-tr$X%ossaudiodev.oss_audio_device.obuffreer$(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.obuffreeX-tr$Xcurses.window.inchr$(jjX?http://docs.python.org/3/library/curses.html#curses.window.inchX-tr$Xdecimal.Context.logical_orr$(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_orX-tr$X*msilib.SummaryInformation.GetPropertyCountr$(jjXWhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.GetPropertyCountX-tr$X&logging.handlers.BufferingHandler.emitr$(jjX]http://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandler.emitX-tr$X"collections.somenamedtuple._asdictr$(jjXThttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._asdictX-tr$X%tkinter.tix.tixCommand.tix_filedialogr$(jjXWhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_filedialogX-tr$Xcurses.window.insdellnr$(jjXChttp://docs.python.org/3/library/curses.html#curses.window.insdellnX-tr$Xbdb.Bdb.stop_herer$(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.stop_hereX-tr$X&argparse.ArgumentParser.add_subparsersr$(jjXUhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_subparsersX-tr$Xsocket.socket.ioctlr$(jjX@http://docs.python.org/3/library/socket.html#socket.socket.ioctlX-tr$Xaifc.aifc.setposr$(jjX;http://docs.python.org/3/library/aifc.html#aifc.aifc.setposX-tr$Xmsilib.Dialog.pushbuttonr$(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.pushbuttonX-tr$Xmsilib.View.GetColumnInfor$(jjXFhttp://docs.python.org/3/library/msilib.html#msilib.View.GetColumnInfoX-tr$Xcollections.deque.extendleftr$(jjXNhttp://docs.python.org/3/library/collections.html#collections.deque.extendleftX-tr$Xdecimal.Context.is_canonicalr$(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_canonicalX-tr$Xformatter.formatter.set_spacingr$(jjXOhttp://docs.python.org/3/library/formatter.html#formatter.formatter.set_spacingX-tr$X'xml.sax.xmlreader.XMLReader.setPropertyr$(jjX\http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setPropertyX-tr$X,asyncio.BaseEventLoop.call_exception_handlerr$(jjXdhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_exception_handlerX-tr$X'concurrent.futures.Future.set_exceptionr$(jjX`http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.set_exceptionX-tr$X*multiprocessing.managers.BaseProxy.__str__r$(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy.__str__X-tr$Xbdb.Bdb.get_file_breaksr$(jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.get_file_breaksX-tr$X(asyncio.BaseEventLoop.add_signal_handlerr$(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.add_signal_handlerX-tr$X)distutils.ccompiler.CCompiler.debug_printr$(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.debug_printX-tr$Xprofile.Profile.print_statsr$(jjXIhttp://docs.python.org/3/library/profile.html#profile.Profile.print_statsX-tr$X object.__or__r$(jjX?http://docs.python.org/3/reference/datamodel.html#object.__or__X-tr$X$http.client.HTTPConnection.putheaderr$(jjXVhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.putheaderX-tr$X2importlib.machinery.ExtensionFileLoader.get_sourcer$(jjXbhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.get_sourceX-tr$Xunittest.mock.Mock.reset_mockr$(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.reset_mockX-tr$Xdatetime.datetime.weekdayr$(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.datetime.weekdayX-tr$Xbdb.Bdb.get_breakr$(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_breakX-tr$X&email.message.Message.get_content_typer$(jjXZhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_content_typeX-tr$X-distutils.ccompiler.CCompiler.detect_languager$(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.detect_languageX-tr$Xasyncio.DatagramTransport.abortr$(jjXVhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramTransport.abortX-tr$Xtypes.MappingProxyType.copyr$(jjXGhttp://docs.python.org/3/library/types.html#types.MappingProxyType.copyX-tr$Xasyncio.Future.cancelledr$(jjXKhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.cancelledX-tr$Xdatetime.time.utcoffsetr$(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.time.utcoffsetX-tr$X*multiprocessing.managers.SyncManager.Valuer$(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.ValueX-tr$X!email.policy.Compat32.fold_binaryr$(jjXThttp://docs.python.org/3/library/email.policy.html#email.policy.Compat32.fold_binaryX-tr$X0urllib.request.HTTPErrorProcessor.https_responser$(jjXehttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.https_responseX-tr$X#logging.handlers.SocketHandler.sendr$(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.sendX-tr$Xmailbox.Mailbox.valuesr$(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.valuesX-tr$Xdatetime.date.isocalendarr$(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.date.isocalendarX-tr$X"contextlib.ExitStack.enter_contextr$(jjXShttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.enter_contextX-tr$X#unittest.TestCase.assertAlmostEqualr$(jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertAlmostEqualX-tr%Xxdrlib.Unpacker.doner%(jjXAhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.doneX-tr%Xzipfile.ZipFile.writestrr%(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.writestrX-tr%X"asyncio.StreamReader.set_exceptionr%(jjXWhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.set_exceptionX-tr%X6concurrent.futures.Future.set_running_or_notify_cancelr%(jjXohttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.set_running_or_notify_cancelX-tr%X ossaudiodev.oss_mixer_device.getr %(jjXRhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.getX-tr %Xasyncore.dispatcher.closer %(jjXHhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.closeX-tr %Xunittest.TestResult.stopTestRunr %(jjXNhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.stopTestRunX-tr%X*xml.parsers.expat.xmlparser.CommentHandlerr%(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CommentHandlerX-tr%X mailbox.MaildirMessage.set_flagsr%(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_flagsX-tr%Xxml.dom.Element.hasAttributeNSr%(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.hasAttributeNSX-tr%X*multiprocessing.Connection.recv_bytes_intor%(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.recv_bytes_intoX-tr%X#http.cookiejar.CookieJar.set_cookier%(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.set_cookieX-tr%Xfloat.is_integerr%(jjX?http://docs.python.org/3/library/stdtypes.html#float.is_integerX-tr%Xcalendar.TextCalendar.prmonthr%(jjXLhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.prmonthX-tr%Xio.BufferedIOBase.detachr%(jjXAhttp://docs.python.org/3/library/io.html#io.BufferedIOBase.detachX-tr%X!calendar.TextCalendar.formatmonthr%(jjXPhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.formatmonthX-tr %X&asyncio.BaseEventLoop.subprocess_shellr!%(jjX_http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.BaseEventLoop.subprocess_shellX-tr"%X%msilib.SummaryInformation.SetPropertyr#%(jjXRhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.SetPropertyX-tr$%Xxdrlib.Packer.pack_opaquer%%(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_opaqueX-tr&%X str.indexr'%(jjX8http://docs.python.org/3/library/stdtypes.html#str.indexX-tr(%X#asyncio.BaseEventLoop.remove_readerr)%(jjX[http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.remove_readerX-tr*%X"concurrent.futures.Executor.submitr+%(jjX[http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor.submitX-tr,%Xthreading.Lock.acquirer-%(jjXFhttp://docs.python.org/3/library/threading.html#threading.Lock.acquireX-tr.%Xconcurrent.futures.Executor.mapr/%(jjXXhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor.mapX-tr0%Xasyncore.dispatcher.acceptr1%(jjXIhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.acceptX-tr2%Xcurses.window.idcokr3%(jjX@http://docs.python.org/3/library/curses.html#curses.window.idcokX-tr4%X*importlib.abc.ExecutionLoader.get_filenamer5%(jjXZhttp://docs.python.org/3/library/importlib.html#importlib.abc.ExecutionLoader.get_filenameX-tr6%X"webbrowser.controller.open_new_tabr7%(jjXShttp://docs.python.org/3/library/webbrowser.html#webbrowser.controller.open_new_tabX-tr8%Xtkinter.ttk.Combobox.getr9%(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.getX-tr:%Xasyncio.BaseEventLoop.stopr;%(jjXRhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.stopX-tr<%X set.issubsetr=%(jjX;http://docs.python.org/3/library/stdtypes.html#set.issubsetX-tr>%Xsched.scheduler.cancelr?%(jjXBhttp://docs.python.org/3/library/sched.html#sched.scheduler.cancelX-tr@%X$xml.etree.ElementTree.Element.extendrA%(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.extendX-trB%Xdecimal.Context.copy_negaterC%(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_negateX-trD%X#asynchat.async_chat.close_when_donerE%(jjXRhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.close_when_doneX-trF%X dict.updaterG%(jjX:http://docs.python.org/3/library/stdtypes.html#dict.updateX-trH%X*http.cookiejar.CookieJar.add_cookie_headerrI%(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.add_cookie_headerX-trJ%Xsocket.socket.listenrK%(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.listenX-trL%Xtracemalloc.Snapshot.statisticsrM%(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.statisticsX-trN%X!optparse.OptionParser.get_versionrO%(jjXPhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_versionX-trP%Xsymtable.Symbol.is_namespacerQ%(jjXKhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_namespaceX-trR%Xdatetime.datetime.tznamerS%(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.tznameX-trT%X%tkinter.ttk.Treeview.selection_removerU%(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_removeX-trV%Xtkinter.ttk.Treeview.tag_bindrW%(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_bindX-trX%Xchunk.Chunk.isattyrY%(jjX>http://docs.python.org/3/library/chunk.html#chunk.Chunk.isattyX-trZ%Xarray.array.extendr[%(jjX>http://docs.python.org/3/library/array.html#array.array.extendX-tr\%Xmailbox.MH.discardr]%(jjX@http://docs.python.org/3/library/mailbox.html#mailbox.MH.discardX-tr^%X#argparse.ArgumentParser.format_helpr_%(jjXRhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.format_helpX-tr`%X)code.InteractiveInterpreter.showtracebackra%(jjXThttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.showtracebackX-trb%Xdecimal.Decimal.logical_xorrc%(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_xorX-trd%Xipaddress.IPv6Network.supernetre%(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.supernetX-trf%Xmailbox.Babyl.get_filerg%(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_fileX-trh%Xdatetime.date.isoformatri%(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.date.isoformatX-trj%X#calendar.Calendar.monthdayscalendarrk%(jjXRhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdayscalendarX-trl%X.asyncio.asyncio.subprocess.Process.communicaterm%(jjXghttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.communicateX-trn%X!asyncore.dispatcher.create_socketro%(jjXPhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.create_socketX-trp%Xdecimal.Context.copyrq%(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.copyX-trr%X#collections.somenamedtuple._replacers%(jjXUhttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._replaceX-trt%Xobject.__divmod__ru%(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__divmod__X-trv%X#formatter.formatter.flush_softspacerw%(jjXShttp://docs.python.org/3/library/formatter.html#formatter.formatter.flush_softspaceX-trx%Xfractions.Fraction.__floor__ry%(jjXLhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.__floor__X-trz%Xaifc.aifc.readframesr{%(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.readframesX-tr|%X+email.message.EmailMessage.make_alternativer}%(jjXfhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.make_alternativeX-tr~%X+email.policy.EmailPolicy.header_fetch_parser%(jjX^http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_fetch_parseX-tr%Xsqlite3.Connection.rollbackr%(jjXIhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.rollbackX-tr%X1urllib.request.HTTPPasswordMgr.find_user_passwordr%(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.find_user_passwordX-tr%Xcsv.Sniffer.has_headerr%(jjX@http://docs.python.org/3/library/csv.html#csv.Sniffer.has_headerX-tr%X unittest.TestCase.assertNotEqualr%(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotEqualX-tr%Xsymtable.SymbolTable.has_execr%(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.has_execX-tr%Xcurses.window.addstrr%(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.addstrX-tr%Xlogging.Handler.handleErrorr%(jjXIhttp://docs.python.org/3/library/logging.html#logging.Handler.handleErrorX-tr%Xdecimal.Context.is_snanr%(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_snanX-tr%X-http.server.BaseHTTPRequestHandler.send_errorr%(jjX_http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_errorX-tr%X&xml.etree.ElementTree.Element.iterfindr%(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.iterfindX-tr%Xmultiprocessing.Connection.recvr%(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.recvX-tr%Xtkinter.ttk.Style.mapr%(jjXGhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.mapX-tr%Xdbm.gnu.gdbm.syncr%(jjX;http://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.syncX-tr%Xconfigparser.ConfigParser.writer%(jjXRhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.writeX-tr%Xcurses.window.attrsetr%(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.attrsetX-tr%Xobject.__irshift__r%(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__irshift__X-tr%Xdecimal.Decimal.is_canonicalr%(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_canonicalX-tr%X/importlib.machinery.SourceFileLoader.is_packager%(jjX_http://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.is_packageX-tr%Xmmap.mmap.seekr%(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.seekX-tr%X!concurrent.futures.Future.runningr%(jjXZhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.runningX-tr%Xtimeit.Timer.print_excr%(jjXChttp://docs.python.org/3/library/timeit.html#timeit.Timer.print_excX-tr%X#asyncio.BaseEventLoop.remove_writerr%(jjX[http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.remove_writerX-tr%Xobject.__delattr__r%(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__delattr__X-tr%X.asyncio.AbstractEventLoopPolicy.get_event_loopr%(jjXfhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractEventLoopPolicy.get_event_loopX-tr%Xiterator.__iter__r%(jjX@http://docs.python.org/3/library/stdtypes.html#iterator.__iter__X-tr%X%tkinter.ttk.Notebook.enable_traversalr%(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.enable_traversalX-tr%X"html.parser.HTMLParser.handle_datar%(jjXThttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_dataX-tr%Xzipfile.ZipFile.namelistr%(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.namelistX-tr%X asyncore.dispatcher.handle_closer%(jjXOhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_closeX-tr%X-distutils.ccompiler.CCompiler.add_include_dirr%(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_include_dirX-tr%Xaifc.aifc.getmarkr%(jjX<http://docs.python.org/3/library/aifc.html#aifc.aifc.getmarkX-tr%Xemail.header.Header.__ne__r%(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.__ne__X-tr%X&asynchat.async_chat.push_with_producerr%(jjXUhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.push_with_producerX-tr%Xlogging.Logger.logr%(jjX@http://docs.python.org/3/library/logging.html#logging.Logger.logX-tr%Xarray.array.remover%(jjX>http://docs.python.org/3/library/array.html#array.array.removeX-tr%X)http.server.BaseHTTPRequestHandler.handler%(jjX[http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.handleX-tr%Xemail.message.Message.get_allr%(jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_allX-tr%X#email.charset.Charset.header_encoder%(jjXWhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.header_encodeX-tr%Xtarfile.TarInfo.isfiler%(jjXDhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isfileX-tr%Xbdb.Bdb.format_stack_entryr%(jjXDhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.format_stack_entryX-tr%X#ssl.SSLSocket.selected_npn_protocolr%(jjXMhttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.selected_npn_protocolX-tr%Xzlib.Compress.flushr%(jjX>http://docs.python.org/3/library/zlib.html#zlib.Compress.flushX-tr%X#urllib.request.Request.header_itemsr%(jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.header_itemsX-tr%X*urllib.request.UnknownHandler.unknown_openr%(jjX_http://docs.python.org/3/library/urllib.request.html#urllib.request.UnknownHandler.unknown_openX-tr%Xdict.getr%(jjX7http://docs.python.org/3/library/stdtypes.html#dict.getX-tr%X#asyncio.ReadTransport.pause_readingr%(jjXZhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.ReadTransport.pause_readingX-tr%Xcurses.window.scrollr%(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.scrollX-tr%Xtkinter.ttk.Notebook.forgetr%(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.forgetX-tr%X email.contentmanager.get_contentr%(jjX[http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.get_contentX-tr%X"filecmp.dircmp.report_full_closurer%(jjXPhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.report_full_closureX-tr%Xcurses.panel.Panel.replacer%(jjXMhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.replaceX-tr%X.http.server.BaseHTTPRequestHandler.log_messager%(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_messageX-tr%Xobject.__and__r%(jjX@http://docs.python.org/3/reference/datamodel.html#object.__and__X-tr%X html.parser.HTMLParser.handle_pir%(jjXRhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_piX-tr%Xasyncore.dispatcher.recvr%(jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.recvX-tr%X6http.cookiejar.DefaultCookiePolicy.set_allowed_domainsr%(jjXkhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.set_allowed_domainsX-tr%Xpoplib.POP3.listr%(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.listX-tr%X*multiprocessing.managers.SyncManager.Arrayr%(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.ArrayX-tr%Xpstats.Stats.dump_statsr%(jjXEhttp://docs.python.org/3/library/profile.html#pstats.Stats.dump_statsX-tr%Xipaddress.IPv4Network.hostsr%(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.hostsX-tr%X0distutils.fancy_getopt.FancyGetopt.generate_helpr%(jjX_http://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetopt.generate_helpX-tr%Xstr.isidentifierr%(jjX?http://docs.python.org/3/library/stdtypes.html#str.isidentifierX-tr%Xpipes.Template.openr%(jjX?http://docs.python.org/3/library/pipes.html#pipes.Template.openX-tr%Xcsv.DictWriter.writeheaderr%(jjXDhttp://docs.python.org/3/library/csv.html#csv.DictWriter.writeheaderX-tr&Xwave.Wave_read.getnframesr&(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getnframesX-tr&X object.__gt__r&(jjX?http://docs.python.org/3/reference/datamodel.html#object.__gt__X-tr&Xcurses.window.syncupr&(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.syncupX-tr&Xformatter.writer.new_marginr&(jjXKhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_marginX-tr&Xasyncio.Queue.putr &(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.putX-tr &Xunittest.TestResult.addFailurer &(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addFailureX-tr &X$email.generator.BytesGenerator.writer &(jjXZhttp://docs.python.org/3/library/email.generator.html#email.generator.BytesGenerator.writeX-tr&Xdecimal.Context.fmar&(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.fmaX-tr&X,asyncio.BaseEventLoop.create_unix_connectionr&(jjXdhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_unix_connectionX-tr&X/xml.etree.ElementTree.XMLPullParser.read_eventsr&(jjXkhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser.read_eventsX-tr&X+http.server.SimpleHTTPRequestHandler.do_GETr&(jjX]http://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.do_GETX-tr&Xdecimal.Context.log10r&(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.log10X-tr&Xio.StringIO.getvaluer&(jjX=http://docs.python.org/3/library/io.html#io.StringIO.getvalueX-tr&X+asyncio.BaseSubprocessTransport.send_signalr&(jjXbhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.send_signalX-tr&Xipaddress.IPv6Network.subnetsr&(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.subnetsX-tr&Xaifc.aifc.getsampwidthr&(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.getsampwidthX-tr &X1xml.sax.handler.ContentHandler.setDocumentLocatorr!&(jjXghttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.setDocumentLocatorX-tr"&X)asynchat.async_chat.collect_incoming_datar#&(jjXXhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.collect_incoming_dataX-tr$&Xaifc.aifc.getparamsr%&(jjX>http://docs.python.org/3/library/aifc.html#aifc.aifc.getparamsX-tr&&Xhttp.client.HTTPResponse.filenor'&(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.filenoX-tr(&X#importlib.abc.SourceLoader.set_datar)&(jjXShttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.set_dataX-tr*&Xmmap.mmap.flushr+&(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.flushX-tr,&Xtarfile.TarInfo.fromtarfiler-&(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.fromtarfileX-tr.&Xasyncio.Event.clearr/&(jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.clearX-tr0&Xmailbox.Mailbox.__len__r1&(jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__len__X-tr2&Xxml.dom.Element.setAttributeNSr3&(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeNSX-tr4&Xio.BytesIO.read1r5&(jjX9http://docs.python.org/3/library/io.html#io.BytesIO.read1X-tr6&Xprofile.Profile.enabler7&(jjXDhttp://docs.python.org/3/library/profile.html#profile.Profile.enableX-tr8&X str.titler9&(jjX8http://docs.python.org/3/library/stdtypes.html#str.titleX-tr:&X!xml.parsers.expat.xmlparser.Parser;&(jjXOhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ParseX-tr<&Xmimetypes.MimeTypes.guess_typer=&(jjXNhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_typeX-tr>&X asyncore.dispatcher.handle_errorr?&(jjXOhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_errorX-tr@&X str.isnumericrA&(jjX<http://docs.python.org/3/library/stdtypes.html#str.isnumericX-trB&X.multiprocessing.managers.SyncManager.SemaphorerC&(jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.SemaphoreX-trD&Ximaplib.IMAP4.getquotarE&(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getquotaX-trF&X3importlib.machinery.SourcelessFileLoader.is_packagerG&(jjXchttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.is_packageX-trH&Xarray.array.appendrI&(jjX>http://docs.python.org/3/library/array.html#array.array.appendX-trJ&Xsocket.socket.getsocknamerK&(jjXFhttp://docs.python.org/3/library/socket.html#socket.socket.getsocknameX-trL&X&distutils.text_file.TextFile.readlinesrM&(jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.readlinesX-trN&X!gettext.NullTranslations.ngettextrO&(jjXOhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.ngettextX-trP&Xconfigparser.ConfigParser.getrQ&(jjXPhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getX-trR&Xsocket.socket.getpeernamerS&(jjXFhttp://docs.python.org/3/library/socket.html#socket.socket.getpeernameX-trT&Xxdrlib.Packer.resetrU&(jjX@http://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.resetX-trV&Xnntplib.NNTP.bodyrW&(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.bodyX-trX&Xtarfile.TarInfo.isdirrY&(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isdirX-trZ&Xpoplib.POP3.rsetr[&(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.rsetX-tr\&Xftplib.FTP.sendcmdr]&(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP.sendcmdX-tr^&Xthreading.Thread.setNamer_&(jjXHhttp://docs.python.org/3/library/threading.html#threading.Thread.setNameX-tr`&X xml.dom.minidom.Node.toprettyxmlra&(jjXVhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.toprettyxmlX-trb&X"argparse.ArgumentParser.parse_argsrc&(jjXQhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_argsX-trd&Xtkinter.ttk.Style.layoutre&(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.layoutX-trf&Xsmtplib.SMTP.connectrg&(jjXBhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.connectX-trh&Xasyncio.Protocol.eof_receivedri&(jjXThttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.Protocol.eof_receivedX-trj&X mailbox.MaildirMessage.get_flagsrk&(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_flagsX-trl&X%multiprocessing.pool.Pool.apply_asyncrm&(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.apply_asyncX-trn&Xpathlib.Path.rglobro&(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.rglobX-trp&Xparser.ST.isexprrq&(jjX=http://docs.python.org/3/library/parser.html#parser.ST.isexprX-trr&X$symtable.SymbolTable.has_import_starrs&(jjXShttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.has_import_starX-trt&X#logging.handlers.SocketHandler.emitru&(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.emitX-trv&X%configparser.ConfigParser.add_sectionrw&(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.add_sectionX-trx&Xobject.__len__ry&(jjX@http://docs.python.org/3/reference/datamodel.html#object.__len__X-trz&Xzipfile.ZipFile.extractallr{&(jjXHhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.extractallX-tr|&Xmsilib.Record.SetIntegerr}&(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Record.SetIntegerX-tr~&Xzipfile.ZipFile.infolistr&(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.infolistX-tr&Xwinreg.PyHKEY.__enter__r&(jjXDhttp://docs.python.org/3/library/winreg.html#winreg.PyHKEY.__enter__X-tr&Xasyncio.StreamWriter.write_eofr&(jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.write_eofX-tr&Xbdb.Breakpoint.disabler&(jjX@http://docs.python.org/3/library/bdb.html#bdb.Breakpoint.disableX-tr&Xcode.InteractiveConsole.pushr&(jjXGhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.pushX-tr&X#optparse.OptionParser.remove_optionr&(jjXRhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.remove_optionX-tr&X$email.message.Message.replace_headerr&(jjXXhttp://docs.python.org/3/library/email.message.html#email.message.Message.replace_headerX-tr&X.http.cookiejar.CookieJar.clear_session_cookiesr&(jjXchttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.clear_session_cookiesX-tr&Xxml.dom.Element.hasAttributer&(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.hasAttributeX-tr&Xmailbox.MH.flushr&(jjX>http://docs.python.org/3/library/mailbox.html#mailbox.MH.flushX-tr&Xcurses.window.instrr&(jjX@http://docs.python.org/3/library/curses.html#curses.window.instrX-tr&Xdatetime.time.dstr&(jjX@http://docs.python.org/3/library/datetime.html#datetime.time.dstX-tr&X5http.server.BaseHTTPRequestHandler.send_response_onlyr&(jjXghttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_response_onlyX-tr&Xcsv.csvwriter.writerowsr&(jjXAhttp://docs.python.org/3/library/csv.html#csv.csvwriter.writerowsX-tr&Xnntplib.NNTP.statr&(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.statX-tr&Xdatetime.datetime.isoformatr&(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.isoformatX-tr&X tkinter.ttk.Style.theme_settingsr&(jjXRhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_settingsX-tr&Xselect.devpoll.unregisterr&(jjXFhttp://docs.python.org/3/library/select.html#select.devpoll.unregisterX-tr&Xselect.devpoll.closer&(jjXAhttp://docs.python.org/3/library/select.html#select.devpoll.closeX-tr&X!doctest.DocTestParser.get_doctestr&(jjXOhttp://docs.python.org/3/library/doctest.html#doctest.DocTestParser.get_doctestX-tr&X#http.cookiejar.CookieJar.set_policyr&(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.set_policyX-tr&X set.discardr&(jjX:http://docs.python.org/3/library/stdtypes.html#set.discardX-tr&X-http.cookiejar.DefaultCookiePolicy.is_blockedr&(jjXbhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.is_blockedX-tr&X%importlib.abc.SourceLoader.get_sourcer&(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.get_sourceX-tr&Xmsilib.Dialog.liner&(jjX?http://docs.python.org/3/library/msilib.html#msilib.Dialog.lineX-tr&X calendar.Calendar.itermonthdatesr&(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdatesX-tr&Xcollections.Counter.elementsr&(jjXNhttp://docs.python.org/3/library/collections.html#collections.Counter.elementsX-tr&X)urllib.request.CacheFTPHandler.setTimeoutr&(jjX^http://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setTimeoutX-tr&X calendar.TextCalendar.formatyearr&(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.formatyearX-tr&Xaifc.aifc.getcomptyper&(jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.getcomptypeX-tr&Xmailbox.MH.get_sequencesr&(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.get_sequencesX-tr&Xtarfile.TarInfo.tobufr&(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.tobufX-tr&Xsocket.socket.sendmsgr&(jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.sendmsgX-tr&Xjson.JSONEncoder.encoder&(jjXBhttp://docs.python.org/3/library/json.html#json.JSONEncoder.encodeX-tr&Xobject.__getnewargs__r&(jjXBhttp://docs.python.org/3/library/pickle.html#object.__getnewargs__X-tr&Xmmap.mmap.findr&(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.findX-tr&X%weakref.WeakValueDictionary.valuerefsr&(jjXShttp://docs.python.org/3/library/weakref.html#weakref.WeakValueDictionary.valuerefsX-tr&XAxmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_documentationr&(jjXuhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_documentationX-tr&Xpoplib.POP3.topr&(jjX<http://docs.python.org/3/library/poplib.html#poplib.POP3.topX-tr&Xmailbox.Mailbox.__contains__r&(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__contains__X-tr&Xshlex.shlex.push_tokenr&(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.push_tokenX-tr&Xbdb.Bdb.runcallr&(jjX9http://docs.python.org/3/library/bdb.html#bdb.Bdb.runcallX-tr&Xasyncio.Condition.lockedr&(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.lockedX-tr&Xtkinter.ttk.Widget.identifyr&(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.identifyX-tr&X.distutils.ccompiler.CCompiler.library_filenamer&(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.library_filenameX-tr&X asyncio.BaseEventLoop.add_writerr&(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.add_writerX-tr&Xdatetime.date.__str__r&(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.date.__str__X-tr&X telnetlib.Telnet.read_very_eagerr&(jjXPhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_very_eagerX-tr&Xsocket.socket.filenor&(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.filenoX-tr&Ximaplib.IMAP4.fetchr&(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.fetchX-tr&Xssl.SSLContext.get_ca_certsr&(jjXEhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.get_ca_certsX-tr&Xdecimal.Context.logical_xorr&(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_xorX-tr&Xsocket.socket.closer&(jjX@http://docs.python.org/3/library/socket.html#socket.socket.closeX-tr&X+logging.handlers.BaseRotatingHandler.rotater&(jjXbhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotateX-tr&Xtarfile.TarFile.extractr&(jjXEhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractX-tr&Xtkinter.ttk.Style.theme_creater&(jjXPhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_createX-tr&Xmultiprocessing.pool.Pool.applyr&(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.applyX-tr&X1doctest.DocTestRunner.report_unexpected_exceptionr&(jjX_http://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_unexpected_exceptionX-tr&Xcurses.window.nodelayr&(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.nodelayX-tr&Xsymtable.Symbol.is_assignedr&(jjXJhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_assignedX-tr&Xdecimal.Context.is_signedr&(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_signedX-tr&Xselect.epoll.registerr&(jjXBhttp://docs.python.org/3/library/select.html#select.epoll.registerX-tr&X#asyncio.Future.remove_done_callbackr&(jjXVhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.remove_done_callbackX-tr&Xlogging.Logger.debugr&(jjXBhttp://docs.python.org/3/library/logging.html#logging.Logger.debugX-tr&X frame.clearr&(jjX=http://docs.python.org/3/reference/datamodel.html#frame.clearX-tr'Xpprint.PrettyPrinter.pformatr'(jjXIhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pformatX-tr'X)email.message.EmailMessage.add_attachmentr'(jjXdhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.add_attachmentX-tr'X)wsgiref.handlers.BaseHandler.error_outputr'(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_outputX-tr'Xdecimal.Context.copy_decimalr'(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_decimalX-tr'Xunittest.TestResult.addSubTestr '(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addSubTestX-tr 'Xdecimal.Context.comparer '(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.compareX-tr 'Xmailbox.Mailbox.itemsr '(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.itemsX-tr'Xsubprocess.Popen.communicater'(jjXMhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.communicateX-tr'X$email.policy.EmailPolicy.fold_binaryr'(jjXWhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.fold_binaryX-tr'Xlogging.Logger.infor'(jjXAhttp://docs.python.org/3/library/logging.html#logging.Logger.infoX-tr'Xxdrlib.Unpacker.unpack_doubler'(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_doubleX-tr'Xcurses.window.attronr'(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.attronX-tr'Xio.IOBase.flushr'(jjX8http://docs.python.org/3/library/io.html#io.IOBase.flushX-tr'Xmailbox.mboxMessage.remove_flagr'(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.remove_flagX-tr'Xmsilib.View.Closer'(jjX>http://docs.python.org/3/library/msilib.html#msilib.View.CloseX-tr'X(urllib.robotparser.RobotFileParser.mtimer'(jjXahttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.mtimeX-tr 'X sqlite3.Connection.executescriptr!'(jjXNhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executescriptX-tr"'Xweakref.finalize.detachr#'(jjXEhttp://docs.python.org/3/library/weakref.html#weakref.finalize.detachX-tr$'X str.rsplitr%'(jjX9http://docs.python.org/3/library/stdtypes.html#str.rsplitX-tr&'X!asyncio.BaseEventLoop.getaddrinfor''(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.getaddrinfoX-tr('X(email.message.EmailMessage.clear_contentr)'(jjXchttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.clear_contentX-tr*'Xxml.dom.Document.createElementr+'(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createElementX-tr,'Xdatetime.timezone.utcoffsetr-'(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.timezone.utcoffsetX-tr.'X re.regex.subnr/'(jjX6http://docs.python.org/3/library/re.html#re.regex.subnX-tr0'Xdecimal.Decimal.number_classr1'(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.number_classX-tr2'Xmailbox.Mailbox.popitemr3'(jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.popitemX-tr4'X)xml.etree.ElementTree.Element.getiteratorr5'(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.getiteratorX-tr6'Xmultiprocessing.SimpleQueue.getr7'(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.getX-tr8'X!calendar.HTMLCalendar.formatmonthr9'(jjXPhttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatmonthX-tr:'Xtkinter.ttk.Treeview.parentr;'(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.parentX-tr<'X%ossaudiodev.oss_audio_device.nonblockr='(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.nonblockX-tr>'Xdbm.gnu.gdbm.firstkeyr?'(jjX?http://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.firstkeyX-tr@'Xmmap.mmap.write_byterA'(jjX?http://docs.python.org/3/library/mmap.html#mmap.mmap.write_byteX-trB'X$formatter.formatter.add_flowing_datarC'(jjXThttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_flowing_dataX-trD'Xasyncio.Condition.acquirerE'(jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.acquireX-trF'Xsymtable.Class.get_methodsrG'(jjXIhttp://docs.python.org/3/library/symtable.html#symtable.Class.get_methodsX-trH'Xobject.__getitem__rI'(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__getitem__X-trJ'X"email.message.Message.get_boundaryrK'(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_boundaryX-trL'Xvenv.EnvBuilder.createrM'(jjXAhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.createX-trN'X0urllib.request.FancyURLopener.prompt_user_passwdrO'(jjXehttp://docs.python.org/3/library/urllib.request.html#urllib.request.FancyURLopener.prompt_user_passwdX-trP'X!email.charset.Charset.body_encoderQ'(jjXUhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.body_encodeX-trR'Xcurses.window.is_linetouchedrS'(jjXIhttp://docs.python.org/3/library/curses.html#curses.window.is_linetouchedX-trT'Xmailbox.MH.get_filerU'(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.get_fileX-trV'Xthreading.Event.is_setrW'(jjXFhttp://docs.python.org/3/library/threading.html#threading.Event.is_setX-trX'Xtkinter.ttk.Notebook.addrY'(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.addX-trZ'Xxml.dom.Element.removeAttributer['(jjXMhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.removeAttributeX-tr\'Xbdb.Bdb.break_anywherer]'(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.break_anywhereX-tr^'X.multiprocessing.managers.BaseProxy._callmethodr_'(jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy._callmethodX-tr`'Xctypes._CData.from_buffer_copyra'(jjXKhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_buffer_copyX-trb'X"gettext.NullTranslations.lngettextrc'(jjXPhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.lngettextX-trd'X!symtable.SymbolTable.has_childrenre'(jjXPhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.has_childrenX-trf'X,xml.sax.handler.EntityResolver.resolveEntityrg'(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.EntityResolver.resolveEntityX-trh'Xdbm.dumb.dumbdbm.syncri'(jjX?http://docs.python.org/3/library/dbm.html#dbm.dumb.dumbdbm.syncX-trj'Xunittest.TestSuite.debugrk'(jjXGhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.debugX-trl'X(xml.sax.xmlreader.IncrementalParser.feedrm'(jjX]http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.feedX-trn'Xasyncio.Event.waitro'(jjXEhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.waitX-trp'X!tkinter.ttk.Style.element_optionsrq'(jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_optionsX-trr'Xnntplib.NNTP.daters'(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.dateX-trt'Xmultiprocessing.Queue.getru'(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.getX-trv'Xpoplib.POP3.stlsrw'(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.stlsX-trx'X!asyncio.BaseEventLoop.sock_acceptry'(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_acceptX-trz'Xcurses.window.mvderwinr{'(jjXChttp://docs.python.org/3/library/curses.html#curses.window.mvderwinX-tr|'Xobject.__imod__r}'(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__imod__X-tr~'Xdecimal.Decimal.is_nanr'(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_nanX-tr'Xcurses.window.putwinr'(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.putwinX-tr'X)multiprocessing.managers.SyncManager.dictr'(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.dictX-tr'X'logging.handlers.BufferingHandler.flushr'(jjX^http://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandler.flushX-tr'Xobject.__getattr__r'(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__getattr__X-tr'X!email.message.Message.__getitem__r'(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.__getitem__X-tr'Xssl.SSLSocket.unwrapr'(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.unwrapX-tr'X0xmlrpc.client.ServerProxy.system.methodSignaturer'(jjXdhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.methodSignatureX-tr'X"codecs.IncrementalEncoder.getstater'(jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.getstateX-tr'Xtarfile.TarFile.closer'(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.closeX-tr'X#mailbox.BabylMessage.update_visibler'(jjXQhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.update_visibleX-tr'X"urllib.request.OpenerDirector.openr'(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirector.openX-tr'Xlogging.Formatter.formatr'(jjXFhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatX-tr'Xdecimal.Context.addr'(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.addX-tr'Xnntplib.NNTP.ihaver'(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.ihaveX-tr'X3logging.handlers.NTEventLogHandler.getEventCategoryr'(jjXjhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.getEventCategoryX-tr'Xasyncio.StreamReader.feed_eofr'(jjXRhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.feed_eofX-tr'X!formatter.formatter.pop_alignmentr'(jjXQhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_alignmentX-tr'Xtkinter.ttk.Treeview.headingr'(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.headingX-tr'X(configparser.ConfigParser.remove_sectionr'(jjX[http://docs.python.org/3/library/configparser.html#configparser.ConfigParser.remove_sectionX-tr'X/email.headerregistry.HeaderRegistry.__getitem__r'(jjXjhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistry.__getitem__X-tr'X$multiprocessing.pool.AsyncResult.getr'(jjXZhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.getX-tr'Xmsilib.CAB.commitr'(jjX>http://docs.python.org/3/library/msilib.html#msilib.CAB.commitX-tr'X)email.policy.EmailPolicy.header_max_countr'(jjX\http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_max_countX-tr'Xdecimal.Decimal.same_quantumr'(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.same_quantumX-tr'X*wsgiref.handlers.BaseHandler.log_exceptionr'(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.log_exceptionX-tr'Xwave.Wave_write.setcomptyper'(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setcomptypeX-tr'X'distutils.ccompiler.CCompiler.move_filer'(jjXVhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.move_fileX-tr'X+concurrent.futures.Future.add_done_callbackr'(jjXdhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.add_done_callbackX-tr'Xsymtable.Symbol.get_namer'(jjXGhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.get_nameX-tr'Xmailbox.MH.list_foldersr'(jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.list_foldersX-tr'X2xml.parsers.expat.xmlparser.EndCdataSectionHandlerr'(jjX`http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndCdataSectionHandlerX-tr'Xcollections.deque.reverser'(jjXKhttp://docs.python.org/3/library/collections.html#collections.deque.reverseX-tr'Xpipes.Template.prependr'(jjXBhttp://docs.python.org/3/library/pipes.html#pipes.Template.prependX-tr'Xtkinter.ttk.Treeview.deleter'(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.deleteX-tr'Xtrace.Trace.resultsr'(jjX?http://docs.python.org/3/library/trace.html#trace.Trace.resultsX-tr'Xtelnetlib.Telnet.read_very_lazyr'(jjXOhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_very_lazyX-tr'Xcurses.window.insstrr'(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.insstrX-tr'Xlogging.Logger.removeHandlerr'(jjXJhttp://docs.python.org/3/library/logging.html#logging.Logger.removeHandlerX-tr'X$venv.EnvBuilder.create_configurationr'(jjXOhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.create_configurationX-tr'X%xml.parsers.expat.xmlparser.ParseFiler'(jjXShttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ParseFileX-tr'Xio.TextIOBase.readliner'(jjX?http://docs.python.org/3/library/io.html#io.TextIOBase.readlineX-tr'X#socketserver.BaseServer.get_requestr'(jjXVhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.get_requestX-tr'Xunittest.TestResult.addSuccessr'(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addSuccessX-tr'Xhttp.cookiejar.CookieJar.clearr'(jjXShttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.clearX-tr'Xxdrlib.Unpacker.unpack_fstringr'(jjXKhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_fstringX-tr'X,http.cookiejar.CookiePolicy.domain_return_okr'(jjXahttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.domain_return_okX-tr'Xbytearray.decoder'(jjX?http://docs.python.org/3/library/stdtypes.html#bytearray.decodeX-tr'X"tracemalloc.Snapshot.filter_tracesr'(jjXThttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.filter_tracesX-tr'X/multiprocessing.managers.BaseManager.get_serverr'(jjXehttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.get_serverX-tr'X&email.message.Message.set_default_typer'(jjXZhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_default_typeX-tr'Xbdb.Bdb.user_exceptionr'(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_exceptionX-tr'Xtkinter.ttk.Treeview.columnr'(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.columnX-tr'X$argparse.ArgumentParser.set_defaultsr'(jjXShttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.set_defaultsX-tr'X(urllib.robotparser.RobotFileParser.parser'(jjXahttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.parseX-tr'X ossaudiodev.oss_mixer_device.setr'(jjXRhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.setX-tr'Xthreading.Lock.releaser'(jjXFhttp://docs.python.org/3/library/threading.html#threading.Lock.releaseX-tr'X.importlib.abc.MetaPathFinder.invalidate_cachesr'(jjX^http://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinder.invalidate_cachesX-tr'X str.partitionr'(jjX<http://docs.python.org/3/library/stdtypes.html#str.partitionX-tr'X$importlib.abc.FileLoader.load_moduler'(jjXThttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.load_moduleX-tr'Xmimetypes.MimeTypes.readr'(jjXHhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.readX-tr'X.multiprocessing.managers.SyncManager.Namespacer'(jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.NamespaceX-tr'Xsocket.socket.recvfromr'(jjXChttp://docs.python.org/3/library/socket.html#socket.socket.recvfromX-tr'Xiterator.__next__r'(jjX@http://docs.python.org/3/library/stdtypes.html#iterator.__next__X-tr'Xasyncio.StreamReader.feed_datar'(jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.feed_dataX-tr(Ximaplib.IMAP4.openr((jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.openX-tr(Xlogging.Handler.createLockr((jjXHhttp://docs.python.org/3/library/logging.html#logging.Handler.createLockX-tr(Xmsilib.View.Modifyr((jjX?http://docs.python.org/3/library/msilib.html#msilib.View.ModifyX-tr(Xdecimal.Context.remainderr((jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.remainderX-tr(X4argparse.ArgumentParser.add_mutually_exclusive_groupr ((jjXchttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_mutually_exclusive_groupX-tr (X.distutils.ccompiler.CCompiler.set_library_dirsr ((jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_library_dirsX-tr (X!sqlite3.Connection.set_authorizerr ((jjXOhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_authorizerX-tr(Xobject.__reduce__r((jjX>http://docs.python.org/3/library/pickle.html#object.__reduce__X-tr(Xcurses.window.is_wintouchedr((jjXHhttp://docs.python.org/3/library/curses.html#curses.window.is_wintouchedX-tr(X#asynchat.async_chat.discard_buffersr((jjXRhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.discard_buffersX-tr(Xobject.__reversed__r((jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__reversed__X-tr(Xvenv.EnvBuilder.install_scriptsr((jjXJhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.install_scriptsX-tr(X'xml.etree.ElementTree.ElementTree.writer((jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.writeX-tr(Xtkinter.ttk.Notebook.tabr((jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tabX-tr(Xcontextlib.ExitStack.pop_allr((jjXMhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.pop_allX-tr(X!mailbox.MaildirMessage.set_subdirr((jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_subdirX-tr (Xmailbox.Maildir.lockr!((jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.lockX-tr"(Xsunau.AU_write.tellr#((jjX?http://docs.python.org/3/library/sunau.html#sunau.AU_write.tellX-tr$(X&importlib.abc.MetaPathFinder.find_specr%((jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinder.find_specX-tr&(Xio.IOBase.writabler'((jjX;http://docs.python.org/3/library/io.html#io.IOBase.writableX-tr((Xstr.startswithr)((jjX=http://docs.python.org/3/library/stdtypes.html#str.startswithX-tr*(Xssl.SSLSocket.getpeercertr+((jjXChttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.getpeercertX-tr,(Xthreading.Thread.joinr-((jjXEhttp://docs.python.org/3/library/threading.html#threading.Thread.joinX-tr.(Xtkinter.ttk.Treeview.focusr/((jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.focusX-tr0(Xarray.array.tostringr1((jjX@http://docs.python.org/3/library/array.html#array.array.tostringX-tr2(Xxmlrpc.client.Binary.encoder3((jjXOhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.encodeX-tr4(Xdecimal.Context.multiplyr5((jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.multiplyX-tr6(Xemail.message.Message.as_bytesr7((jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.as_bytesX-tr8(Xsymtable.Symbol.is_localr9((jjXGhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_localX-tr:(Xxml.dom.Node.hasChildNodesr;((jjXHhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.hasChildNodesX-tr<(Xparser.ST.tolistr=((jjX=http://docs.python.org/3/library/parser.html#parser.ST.tolistX-tr>(X/optparse.OptionParser.disable_interspersed_argsr?((jjX^http://docs.python.org/3/library/optparse.html#optparse.OptionParser.disable_interspersed_argsX-tr@(X"formatter.formatter.add_label_datarA((jjXRhttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_label_dataX-trB(Xchunk.Chunk.tellrC((jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.tellX-trD(Xsubprocess.Popen.send_signalrE((jjXMhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.send_signalX-trF(X set.removerG((jjX9http://docs.python.org/3/library/stdtypes.html#set.removeX-trH(X"tkinter.ttk.Treeview.selection_addrI((jjXThttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_addX-trJ(Xcgi.FieldStorage.getlistrK((jjXBhttp://docs.python.org/3/library/cgi.html#cgi.FieldStorage.getlistX-trL(Xmailbox.MMDFMessage.set_flagsrM((jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_flagsX-trN(Ximaplib.IMAP4.subscriberO((jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.subscribeX-trP(Xtkinter.ttk.Notebook.insertrQ((jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.insertX-trR(X/asyncio.BaseEventLoop.default_exception_handlerrS((jjXghttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.default_exception_handlerX-trT(Xcurses.panel.Panel.set_userptrrU((jjXQhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.set_userptrX-trV(Xpathlib.Path.lchmodrW((jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.lchmodX-trX(X.xmlrpc.server.DocXMLRPCServer.set_server_titlerY((jjXbhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_titleX-trZ(X'tkinter.tix.tixCommand.tix_resetoptionsr[((jjXYhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_resetoptionsX-tr\(Xasyncio.Semaphore.acquirer]((jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore.acquireX-tr^(X6logging.handlers.BaseRotatingHandler.rotation_filenamer_((jjXmhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotation_filenameX-tr`(X0xml.sax.xmlreader.InputSource.setCharacterStreamra((jjXehttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setCharacterStreamX-trb(Ximaplib.IMAP4.uidrc((jjX?http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.uidX-trd(Xpathlib.PurePath.relative_tore((jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.relative_toX-trf(Xdecimal.Context.exprg((jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.expX-trh(Xcurses.window.syncokri((jjXAhttp://docs.python.org/3/library/curses.html#curses.window.syncokX-trj(X8xml.parsers.expat.xmlparser.ProcessingInstructionHandlerrk((jjXfhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ProcessingInstructionHandlerX-trl(X&socketserver.BaseServer.finish_requestrm((jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.finish_requestX-trn(X)xml.sax.xmlreader.InputSource.getSystemIdro((jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getSystemIdX-trp(Xsocket.socket.recvmsgrq((jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.recvmsgX-trr(Xxml.dom.Node.insertBeforers((jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.insertBeforeX-trt(Xdecimal.Decimal.to_eng_stringru((jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_eng_stringX-trv(Xasyncio.Queue.qsizerw((jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.qsizeX-trx(X object.__ge__ry((jjX?http://docs.python.org/3/reference/datamodel.html#object.__ge__X-trz(X&email.generator.BytesGenerator.flattenr{((jjX\http://docs.python.org/3/library/email.generator.html#email.generator.BytesGenerator.flattenX-tr|(X%sqlite3.Connection.set_trace_callbackr}((jjXShttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_trace_callbackX-tr~(Xwinreg.PyHKEY.__exit__r((jjXChttp://docs.python.org/3/library/winreg.html#winreg.PyHKEY.__exit__X-tr(Xio.IOBase.seekabler((jjX;http://docs.python.org/3/library/io.html#io.IOBase.seekableX-tr(Xbdb.Bdb.trace_dispatchr((jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.trace_dispatchX-tr(X"symtable.Symbol.is_declared_globalr((jjXQhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_declared_globalX-tr(X&email.policy.Policy.header_store_parser((jjXYhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_store_parseX-tr(X)xml.sax.xmlreader.IncrementalParser.closer((jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.closeX-tr(Xcurses.panel.Panel.hider((jjXJhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.hideX-tr(Xcollections.Counter.subtractr((jjXNhttp://docs.python.org/3/library/collections.html#collections.Counter.subtractX-tr(Xstr.format_mapr((jjX=http://docs.python.org/3/library/stdtypes.html#str.format_mapX-tr(X email.message.Message.get_paramsr((jjXThttp://docs.python.org/3/library/email.message.html#email.message.Message.get_paramsX-tr(Xunittest.TestResult.stopr((jjXGhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.stopX-tr(Xclass.__instancecheck__r((jjXIhttp://docs.python.org/3/reference/datamodel.html#class.__instancecheck__X-tr(Xobject.__floordiv__r((jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__floordiv__X-tr(X$ssl.SSLContext.load_verify_locationsr((jjXNhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locationsX-tr(Xlogging.Formatter.formatTimer((jjXJhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatTimeX-tr(Xobject.__rrshift__r((jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__rrshift__X-tr(X%unittest.TestCase.assertNotIsInstancer((jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotIsInstanceX-tr(XFxmlrpc.server.CGIXMLRPCRequestHandler.register_introspection_functionsr((jjXzhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_introspection_functionsX-tr(Xpathlib.Path.is_dirr((jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_dirX-tr(Xasyncio.Future.doner((jjXFhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.doneX-tr(X.http.server.BaseHTTPRequestHandler.end_headersr((jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.end_headersX-tr(Xpathlib.Path.replacer((jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.replaceX-tr(Xwave.Wave_read.setposr((jjX@http://docs.python.org/3/library/wave.html#wave.Wave_read.setposX-tr(X/importlib.machinery.SourceFileLoader.path_statsr((jjX_http://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.path_statsX-tr(Xlogging.Logger.criticalr((jjXEhttp://docs.python.org/3/library/logging.html#logging.Logger.criticalX-tr(Xunittest.TestCase.runr((jjXDhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.runX-tr(Xcurses.window.addnstrr((jjXBhttp://docs.python.org/3/library/curses.html#curses.window.addnstrX-tr(Xstring.Formatter.format_fieldr((jjXJhttp://docs.python.org/3/library/string.html#string.Formatter.format_fieldX-tr(Xset.copyr((jjX7http://docs.python.org/3/library/stdtypes.html#set.copyX-tr(Xobject.__rmul__r((jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rmul__X-tr(X#unittest.mock.Mock.assert_has_callsr((jjXWhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_has_callsX-tr(X formatter.writer.send_line_breakr((jjXPhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_line_breakX-tr(Xparser.ST.totupler((jjX>http://docs.python.org/3/library/parser.html#parser.ST.totupleX-tr(Xpstats.Stats.sort_statsr((jjXEhttp://docs.python.org/3/library/profile.html#pstats.Stats.sort_statsX-tr(Xunittest.TestCase.assertRegexr((jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRegexX-tr(Xxdrlib.Unpacker.unpack_bytesr((jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_bytesX-tr(Xre.match.groupdictr((jjX;http://docs.python.org/3/library/re.html#re.match.groupdictX-tr(Xcurses.panel.Panel.belowr((jjXKhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.belowX-tr(Xbdb.Bdb.user_callr((jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_callX-tr(Xtkinter.ttk.Treeview.reattachr((jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.reattachX-tr(X!ssl.SSLContext.load_default_certsr((jjXKhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_default_certsX-tr(X str.encoder((jjX9http://docs.python.org/3/library/stdtypes.html#str.encodeX-tr(Xtextwrap.TextWrapper.fillr((jjXHhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.fillX-tr(Xwave.Wave_write.writeframesrawr((jjXIhttp://docs.python.org/3/library/wave.html#wave.Wave_write.writeframesrawX-tr(Xcmd.Cmd.postcmdr((jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.postcmdX-tr(XAxmlrpc.server.SimpleXMLRPCServer.register_introspection_functionsr((jjXuhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_introspection_functionsX-tr(X#multiprocessing.pool.Pool.map_asyncr((jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.map_asyncX-tr(X"distutils.ccompiler.CCompiler.warnr((jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.warnX-tr(Xlogging.Formatter.formatStackr((jjXKhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatStackX-tr(Xtarfile.TarFile.getnamesr((jjXFhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.getnamesX-tr(Xthreading.Condition.wait_forr((jjXLhttp://docs.python.org/3/library/threading.html#threading.Condition.wait_forX-tr(Xxdrlib.Unpacker.resetr((jjXBhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.resetX-tr(Xwsgiref.headers.Headers.get_allr((jjXMhttp://docs.python.org/3/library/wsgiref.html#wsgiref.headers.Headers.get_allX-tr(X codecs.IncrementalEncoder.encoder((jjXMhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.encodeX-tr(X#urllib.request.Request.get_full_urlr((jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.get_full_urlX-tr(X&ossaudiodev.oss_audio_device.obufcountr((jjXXhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.obufcountX-tr(Ximaplib.IMAP4.setaclr((jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.setaclX-tr(Xcurses.panel.Panel.userptrr((jjXMhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.userptrX-tr(X)multiprocessing.connection.Listener.closer((jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.closeX-tr(Xemail.message.Message.__len__r((jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.__len__X-tr(Xlogging.Logger.addHandlerr((jjXGhttp://docs.python.org/3/library/logging.html#logging.Logger.addHandlerX-tr(Xsqlite3.Connection.executer((jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executeX-tr(X+xml.sax.handler.ContentHandler.endElementNSr((jjXahttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endElementNSX-tr(X+logging.handlers.SocketHandler.createSocketr((jjXbhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.createSocketX-tr(X*http.cookiejar.Cookie.get_nonstandard_attrr((jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.get_nonstandard_attrX-tr)Xpstats.Stats.print_callersr)(jjXHhttp://docs.python.org/3/library/profile.html#pstats.Stats.print_callersX-tr)X"unittest.mock.Mock.assert_any_callr)(jjXVhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_any_callX-tr)X'gettext.NullTranslations.output_charsetr)(jjXUhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.output_charsetX-tr)X&xml.sax.xmlreader.Attributes.getLengthr)(jjX[http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getLengthX-tr)Xobject.__round__r )(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__round__X-tr )X!multiprocessing.Connection.filenor )(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.filenoX-tr )X*asyncio.BaseEventLoop.call_soon_threadsafer )(jjXbhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_soon_threadsafeX-tr)X4http.server.BaseHTTPRequestHandler.handle_expect_100r)(jjXfhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.handle_expect_100X-tr)Xzipimport.zipimporter.get_datar)(jjXNhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_dataX-tr)Xmailbox.MaildirMessage.add_flagr)(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.add_flagX-tr)Xmmap.mmap.writer)(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.writeX-tr)X&urllib.request.HTTPSHandler.https_openr)(jjX[http://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPSHandler.https_openX-tr)X$formatter.formatter.add_literal_datar)(jjXThttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_literal_dataX-tr)Xselectors.BaseSelector.get_mapr)(jjXNhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_mapX-tr)X str.rjustr)(jjX8http://docs.python.org/3/library/stdtypes.html#str.rjustX-tr)Xxml.dom.Document.createTextNoder)(jjXMhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createTextNodeX-tr )Xcontainer.__iter__r!)(jjXAhttp://docs.python.org/3/library/stdtypes.html#container.__iter__X-tr")Xnntplib.NNTP.newnewsr#)(jjXBhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.newnewsX-tr$)Xcurses.window.addchr%)(jjX@http://docs.python.org/3/library/curses.html#curses.window.addchX-tr&)Xmailbox.Mailbox.addr')(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.addX-tr()X'importlib.abc.PathEntryFinder.find_specr))(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.find_specX-tr*)Xpoplib.POP3.statr+)(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.statX-tr,)Xobject.__float__r-)(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__float__X-tr.)X%asyncio.BaseEventLoop.subprocess_execr/)(jjX^http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.BaseEventLoop.subprocess_execX-tr0)Xdecimal.Decimal.is_snanr1)(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_snanX-tr2)X$logging.handlers.MemoryHandler.closer3)(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.closeX-tr4)Xthreading.Condition.acquirer5)(jjXKhttp://docs.python.org/3/library/threading.html#threading.Condition.acquireX-tr6)Xwave.Wave_write.setnframesr7)(jjXEhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setnframesX-tr8)X!zipimport.zipimporter.find_moduler9)(jjXQhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.find_moduleX-tr:)Xconfigparser.ConfigParser.setr;)(jjXPhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.setX-tr<)X"xml.etree.ElementTree.Element.findr=)(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findX-tr>)Xdecimal.Context.compare_signalr?)(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.compare_signalX-tr@)Xpoplib.POP3.rpoprA)(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.rpopX-trB)Xtarfile.TarFile.gettarinforC)(jjXHhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.gettarinfoX-trD)Xhttp.cookies.Morsel.outputrE)(jjXMhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.outputX-trF)Xmailbox.Mailbox.flushrG)(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.flushX-trH)X!email.message.Message.__delitem__rI)(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.__delitem__X-trJ)Xdecimal.Context.is_zerorK)(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_zeroX-trL)Xjson.JSONDecoder.raw_decoderM)(jjXFhttp://docs.python.org/3/library/json.html#json.JSONDecoder.raw_decodeX-trN)Xftplib.FTP.deleterO)(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.FTP.deleteX-trP)Xmailbox.Maildir.list_foldersrQ)(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.list_foldersX-trR)Xcurses.window.standoutrS)(jjXChttp://docs.python.org/3/library/curses.html#curses.window.standoutX-trT)X)urllib.request.BaseHandler.http_error_nnnrU)(jjX^http://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.http_error_nnnX-trV)X"email.message.Message.get_charsetsrW)(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_charsetsX-trX)Xdecimal.Decimal.as_tuplerY)(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.as_tupleX-trZ)Xmailbox.MaildirMessage.get_infor[)(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_infoX-tr\)X)email.charset.Charset.header_encode_linesr])(jjX]http://docs.python.org/3/library/email.charset.html#email.charset.Charset.header_encode_linesX-tr^)Xcollections.deque.rotater_)(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.rotateX-tr`)Xlogging.Handler.addFilterra)(jjXGhttp://docs.python.org/3/library/logging.html#logging.Handler.addFilterX-trb)Xmsilib.Directory.globrc)(jjXBhttp://docs.python.org/3/library/msilib.html#msilib.Directory.globX-trd)Xobject.__iand__re)(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__iand__X-trf)X str.rstriprg)(jjX9http://docs.python.org/3/library/stdtypes.html#str.rstripX-trh)X*argparse.ArgumentParser.add_argument_groupri)(jjXYhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument_groupX-trj)Xselectors.BaseSelector.selectrk)(jjXMhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.selectX-trl)Xtkinter.ttk.Treeview.prevrm)(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.prevX-trn)Xobject.__dir__ro)(jjX@http://docs.python.org/3/reference/datamodel.html#object.__dir__X-trp)Xpstats.Stats.reverse_orderrq)(jjXHhttp://docs.python.org/3/library/profile.html#pstats.Stats.reverse_orderX-trr)X(ossaudiodev.oss_mixer_device.reccontrolsrs)(jjXZhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.reccontrolsX-trt)Xbdb.Bdb.set_breakru)(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_breakX-trv)Xobject.__isub__rw)(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__isub__X-trx)Xsunau.AU_read.setposry)(jjX@http://docs.python.org/3/library/sunau.html#sunau.AU_read.setposX-trz)Xhttp.cookies.BaseCookie.loadr{)(jjXOhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.loadX-tr|)Xcollections.deque.appendleftr})(jjXNhttp://docs.python.org/3/library/collections.html#collections.deque.appendleftX-tr~)Xinspect.Signature.bind_partialr)(jjXLhttp://docs.python.org/3/library/inspect.html#inspect.Signature.bind_partialX-tr)Xtelnetlib.Telnet.get_socketr)(jjXKhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.get_socketX-tr)Xcollections.OrderedDict.popitemr)(jjXQhttp://docs.python.org/3/library/collections.html#collections.OrderedDict.popitemX-tr)Xmailbox.Maildir.remove_folderr)(jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.remove_folderX-tr)Xio.IOBase.filenor)(jjX9http://docs.python.org/3/library/io.html#io.IOBase.filenoX-tr)X&importlib.abc.SourceLoader.exec_moduler)(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.exec_moduleX-tr)Xunittest.TestCase.doCleanupsr)(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.doCleanupsX-tr)Xdecimal.Context.rotater)(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.rotateX-tr)Ximaplib.IMAP4.noopr)(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.noopX-tr)Xpoplib.POP3.noopr)(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.noopX-tr)X+xml.sax.xmlreader.InputSource.setByteStreamr)(jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setByteStreamX-tr)Xcurses.window.deletelnr)(jjXChttp://docs.python.org/3/library/curses.html#curses.window.deletelnX-tr)Xmsilib.Directory.remove_pycr)(jjXHhttp://docs.python.org/3/library/msilib.html#msilib.Directory.remove_pycX-tr)X str.isspacer)(jjX:http://docs.python.org/3/library/stdtypes.html#str.isspaceX-tr)Xdatetime.time.tznamer)(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.tznameX-tr)Xsymtable.Function.get_globalsr)(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_globalsX-tr)Xurllib.request.URLopener.openr)(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.openX-tr)Xdecimal.Decimal.shiftr)(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Decimal.shiftX-tr)Xdatetime.timezone.fromutcr)(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.timezone.fromutcX-tr)Xpoplib.POP3.capar)(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.capaX-tr)Xemail.message.Message.attachr)(jjXPhttp://docs.python.org/3/library/email.message.html#email.message.Message.attachX-tr)X/email.contentmanager.ContentManager.get_contentr)(jjXjhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.get_contentX-tr)Xunittest.TestCase.assertFalser)(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertFalseX-tr)Xhashlib.hash.digestr)(jjXAhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.digestX-tr)Xconfigparser.ConfigParser.readr)(jjXQhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.readX-tr)Xtkinter.ttk.Progressbar.startr)(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.startX-tr)X'multiprocessing.JoinableQueue.task_doner)(jjX]http://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueue.task_doneX-tr)X(logging.handlers.WatchedFileHandler.emitr)(jjX_http://docs.python.org/3/library/logging.handlers.html#logging.handlers.WatchedFileHandler.emitX-tr)Xnntplib.NNTP.slaver)(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.slaveX-tr)Xunittest.TextTestRunner.runr)(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TextTestRunner.runX-tr)X zipimport.zipimporter.get_sourcer)(jjXPhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_sourceX-tr)Xthreading.Event.setr)(jjXChttp://docs.python.org/3/library/threading.html#threading.Event.setX-tr)X str.swapcaser)(jjX;http://docs.python.org/3/library/stdtypes.html#str.swapcaseX-tr)Xdecimal.Decimal.adjustedr)(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.adjustedX-tr)X"ossaudiodev.oss_mixer_device.closer)(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.closeX-tr)Xxml.dom.Node.appendChildr)(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.appendChildX-tr)Xshlex.shlex.sourcehookr)(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.sourcehookX-tr)Xhmac.HMAC.digestr)(jjX;http://docs.python.org/3/library/hmac.html#hmac.HMAC.digestX-tr)Xdoctest.DocTestRunner.runr)(jjXGhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.runX-tr)X'xml.dom.Document.getElementsByTagNameNSr)(jjXUhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.getElementsByTagNameNSX-tr)Xxmlrpc.client.DateTime.encoder)(jjXQhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTime.encodeX-tr)Xobject.__get__r)(jjX@http://docs.python.org/3/reference/datamodel.html#object.__get__X-tr)Xemail.message.Message.itemsr)(jjXOhttp://docs.python.org/3/library/email.message.html#email.message.Message.itemsX-tr)Xio.IOBase.seekr)(jjX7http://docs.python.org/3/library/io.html#io.IOBase.seekX-tr)X3email.contentmanager.ContentManager.add_set_handlerr)(jjXnhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.add_set_handlerX-tr)Xmailbox.Mailbox.closer)(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.closeX-tr)Xsocket.socket.set_inheritabler)(jjXJhttp://docs.python.org/3/library/socket.html#socket.socket.set_inheritableX-tr)Xbdb.Bdb.clear_all_file_breaksr)(jjXGhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_all_file_breaksX-tr)X importlib.abc.Finder.find_moduler)(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Finder.find_moduleX-tr)Xsunau.AU_write.writeframesr)(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.writeframesX-tr)X!decimal.Decimal.compare_total_magr)(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_total_magX-tr)X"multiprocessing.JoinableQueue.joinr)(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueue.joinX-tr)Xdecimal.Context.lnr)(jjX@http://docs.python.org/3/library/decimal.html#decimal.Context.lnX-tr)Xsocket.socket.setsockoptr)(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.setsockoptX-tr)Xpickle.Pickler.persistent_idr)(jjXIhttp://docs.python.org/3/library/pickle.html#pickle.Pickler.persistent_idX-tr)Xsocket.socket.settimeoutr)(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.settimeoutX-tr)Xdecimal.Decimal.scalebr)(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.scalebX-tr)Xcurses.window.clearr)(jjX@http://docs.python.org/3/library/curses.html#curses.window.clearX-tr)Xobject.__str__r)(jjX@http://docs.python.org/3/reference/datamodel.html#object.__str__X-tr)X,multiprocessing.managers.SyncManager.Barrierr)(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.BarrierX-tr)X3urllib.request.HTTPDigestAuthHandler.http_error_401r)(jjXhhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandler.http_error_401X-tr)Xmultiprocessing.Connection.sendr)(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.sendX-tr)Xtarfile.TarInfo.isdevr)(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isdevX-tr)Xstring.Formatter.vformatr)(jjXEhttp://docs.python.org/3/library/string.html#string.Formatter.vformatX-tr)X,xmlrpc.client.ServerProxy.system.listMethodsr)(jjX`http://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.listMethodsX-tr*Xmailbox.Mailbox.clearr*(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.clearX-tr*Xpathlib.Path.renamer*(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.renameX-tr*Xmultiprocessing.pool.Pool.closer*(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.closeX-tr*X*xml.parsers.expat.xmlparser.DefaultHandlerr*(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.DefaultHandlerX-tr*Xdecimal.Decimal.is_normalr *(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_normalX-tr *Xdecimal.Decimal.copy_negater *(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_negateX-tr *X xml.dom.Document.createAttributer *(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createAttributeX-tr*Xftplib.FTP.storlinesr*(jjXAhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.storlinesX-tr*Xcurses.window.cursyncupr*(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.cursyncupX-tr*Xcurses.window.insnstrr*(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.insnstrX-tr*X!ossaudiodev.oss_audio_device.syncr*(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.syncX-tr*X$xml.sax.xmlreader.Attributes.getTyper*(jjXYhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getTypeX-tr*Ximaplib.IMAP4.starttlsr*(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.starttlsX-tr*X str.isdecimalr*(jjX<http://docs.python.org/3/library/stdtypes.html#str.isdecimalX-tr*Xpoplib.POP3.quitr*(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.quitX-tr*X0importlib.machinery.ExtensionFileLoader.get_coder*(jjX`http://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.get_codeX-tr *Xcontextlib.ExitStack.closer!*(jjXKhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.closeX-tr"*X#socketserver.BaseServer.server_bindr#*(jjXVhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_bindX-tr$*Xobject.__add__r%*(jjX@http://docs.python.org/3/reference/datamodel.html#object.__add__X-tr&*X$ossaudiodev.oss_audio_device.getfmtsr'*(jjXVhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.getfmtsX-tr(*X*http.cookiejar.Cookie.set_nonstandard_attrr)*(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.set_nonstandard_attrX-tr**X%email.message.EmailMessage.make_mixedr+*(jjX`http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.make_mixedX-tr,*X$concurrent.futures.Executor.shutdownr-*(jjX]http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor.shutdownX-tr.*X multiprocessing.Queue.get_nowaitr/*(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.get_nowaitX-tr0*Xdecimal.Context.scalebr1*(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.scalebX-tr2*Xsqlite3.Cursor.fetchmanyr3*(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchmanyX-tr4*XBaseException.with_tracebackr5*(jjXMhttp://docs.python.org/3/library/exceptions.html#BaseException.with_tracebackX-tr6*Xbdb.Bdb.get_all_breaksr7*(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_all_breaksX-tr8*X&socketserver.BaseServer.handle_requestr9*(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_requestX-tr:*Xmailbox.MH.get_folderr;*(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.MH.get_folderX-tr<*X!email.message.Message.get_charsetr=*(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_charsetX-tr>*Xpathlib.PurePath.with_suffixr?*(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.with_suffixX-tr@*Xwave.Wave_write.writeframesrA*(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_write.writeframesX-trB*Xhashlib.hash.updaterC*(jjXAhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.updateX-trD*X"xml.dom.Document.createAttributeNSrE*(jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createAttributeNSX-trF*X str.ljustrG*(jjX8http://docs.python.org/3/library/stdtypes.html#str.ljustX-trH*Xpathlib.Path.is_filerI*(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_fileX-trJ*X%multiprocessing.Connection.recv_bytesrK*(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.recv_bytesX-trL*Xsocket.socket.makefilerM*(jjXChttp://docs.python.org/3/library/socket.html#socket.socket.makefileX-trN*Xparser.ST.issuiterO*(jjX>http://docs.python.org/3/library/parser.html#parser.ST.issuiteX-trP*X"unittest.TestCase.shortDescriptionrQ*(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.shortDescriptionX-trR*Xdict.setdefaultrS*(jjX>http://docs.python.org/3/library/stdtypes.html#dict.setdefaultX-trT*X"logging.handlers.QueueHandler.emitrU*(jjXYhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler.emitX-trV*Xmailbox.MMDFMessage.remove_flagrW*(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.remove_flagX-trX*Xasyncio.Lock.lockedrY*(jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Lock.lockedX-trZ*Xobject.__rpow__r[*(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rpow__X-tr\*Xprofile.Profile.dump_statsr]*(jjXHhttp://docs.python.org/3/library/profile.html#profile.Profile.dump_statsX-tr^*X$tkinter.ttk.Treeview.identify_regionr_*(jjXVhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_regionX-tr`*Xarray.array.buffer_infora*(jjXChttp://docs.python.org/3/library/array.html#array.array.buffer_infoX-trb*X!xml.dom.Element.removeAttributeNSrc*(jjXOhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.removeAttributeNSX-trd*X dict.valuesre*(jjX:http://docs.python.org/3/library/stdtypes.html#dict.valuesX-trf*Xpathlib.PurePath.is_reservedrg*(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.is_reservedX-trh*X%unittest.TestCase.addTypeEqualityFuncri*(jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestCase.addTypeEqualityFuncX-trj*X.distutils.ccompiler.CCompiler.object_filenamesrk*(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.object_filenamesX-trl*X"http.client.HTTPResponse.getheaderrm*(jjXThttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.getheaderX-trn*X+gettext.NullTranslations.set_output_charsetro*(jjXYhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.set_output_charsetX-trp*Xasyncio.Queue.put_nowaitrq*(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.put_nowaitX-trr*Xio.TextIOBase.writers*(jjX<http://docs.python.org/3/library/io.html#io.TextIOBase.writeX-trt*X$fractions.Fraction.limit_denominatorru*(jjXThttp://docs.python.org/3/library/fractions.html#fractions.Fraction.limit_denominatorX-trv*u(X%distutils.ccompiler.CCompiler.compilerw*(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.compileX-trx*Xmailbox.Maildir.flushry*(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.flushX-trz*Xpathlib.Path.iterdirr{*(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.iterdirX-tr|*X gettext.NullTranslations.gettextr}*(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.gettextX-tr~*X)asyncio.SubprocessProtocol.process_exitedr*(jjX`http://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocol.process_exitedX-tr*X*http.cookiejar.Cookie.has_nonstandard_attrr*(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.has_nonstandard_attrX-tr*Xdis.Bytecode.infor*(jjX;http://docs.python.org/3/library/dis.html#dis.Bytecode.infoX-tr*X gettext.NullTranslations.charsetr*(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.charsetX-tr*X$urllib.request.DataHandler.data_openr*(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandler.data_openX-tr*X+email.policy.EmailPolicy.header_store_parser*(jjX^http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_store_parseX-tr*Xarray.array.tounicoder*(jjXAhttp://docs.python.org/3/library/array.html#array.array.tounicodeX-tr*X*unittest.mock.Mock.assert_called_once_withr*(jjX^http://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_called_once_withX-tr*X.asyncio.BaseSubprocessTransport.get_returncoder*(jjXehttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.get_returncodeX-tr*Xmailbox.mboxMessage.get_fromr*(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_fromX-tr*Xcurses.window.encloser*(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.encloseX-tr*Xmultiprocessing.Queue.fullr*(jjXPhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.fullX-tr*X-asyncio.SubprocessProtocol.pipe_data_receivedr*(jjXdhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_data_receivedX-tr*Xdatetime.datetime.__str__r*(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.datetime.__str__X-tr*Xdecimal.Context.Etinyr*(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.EtinyX-tr*Xdecimal.Context.next_plusr*(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.next_plusX-tr*Xmsilib.Dialog.radiogroupr*(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.radiogroupX-tr*Xemail.parser.FeedParser.feedr*(jjXOhttp://docs.python.org/3/library/email.parser.html#email.parser.FeedParser.feedX-tr*X xml.dom.Element.setAttributeNoder*(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeNodeX-tr*X!unittest.TestSuite.countTestCasesr*(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.countTestCasesX-tr*Xsunau.AU_read.getcompnamer*(jjXEhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getcompnameX-tr*Xemail.message.Message.getr*(jjXMhttp://docs.python.org/3/library/email.message.html#email.message.Message.getX-tr*Xsymtable.Symbol.is_referencedr*(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_referencedX-tr*Xqueue.Queue.get_nowaitr*(jjXBhttp://docs.python.org/3/library/queue.html#queue.Queue.get_nowaitX-tr*X%email.message.EmailMessage.iter_partsr*(jjX`http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.iter_partsX-tr*X(wsgiref.simple_server.WSGIServer.get_appr*(jjXVhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServer.get_appX-tr*Xcollections.deque.clearr*(jjXIhttp://docs.python.org/3/library/collections.html#collections.deque.clearX-tr*X difflib.SequenceMatcher.set_seq2r*(jjXNhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.set_seq2X-tr*X*email.message.Message.get_content_maintyper*(jjX^http://docs.python.org/3/library/email.message.html#email.message.Message.get_content_maintypeX-tr*Xarray.array.byteswapr*(jjX@http://docs.python.org/3/library/array.html#array.array.byteswapX-tr*X"asyncio.BaseEventLoop.sock_sendallr*(jjXZhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_sendallX-tr*X-xml.sax.xmlreader.XMLReader.getEntityResolverr*(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getEntityResolverX-tr*Xmailbox.Mailbox.unlockr*(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.unlockX-tr*Xtimeit.Timer.timeitr*(jjX@http://docs.python.org/3/library/timeit.html#timeit.Timer.timeitX-tr*X6xmlrpc.server.DocXMLRPCServer.set_server_documentationr*(jjXjhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_documentationX-tr*X'importlib.abc.InspectLoader.load_moduler*(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.load_moduleX-tr*Xgenerator.closer*(jjXChttp://docs.python.org/3/reference/expressions.html#generator.closeX-tr*Xcurses.window.redrawwinr*(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.redrawwinX-tr*Xshlex.shlex.pop_sourcer*(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.pop_sourceX-tr*X1xml.sax.handler.ContentHandler.startPrefixMappingr*(jjXghttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startPrefixMappingX-tr*Xdecimal.Context.is_infiniter*(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_infiniteX-tr*Xhmac.HMAC.updater*(jjX;http://docs.python.org/3/library/hmac.html#hmac.HMAC.updateX-tr*X&test.support.EnvironmentVarGuard.unsetr*(jjXQhttp://docs.python.org/3/library/test.html#test.support.EnvironmentVarGuard.unsetX-tr*X#asyncio.BaseProtocol.resume_writingr*(jjXZhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.resume_writingX-tr*Xaifc.aifc.setcomptyper*(jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.setcomptypeX-tr*X bdb.Bdb.resetr*(jjX7http://docs.python.org/3/library/bdb.html#bdb.Bdb.resetX-tr*Xmailbox.Mailbox.get_stringr*(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_stringX-tr*X!asyncio.BaseEventLoop.getnameinfor*(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.getnameinfoX-tr*X$http.cookies.BaseCookie.value_encoder*(jjXWhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.value_encodeX-tr*X)email.policy.Compat32.header_source_parser*(jjX\http://docs.python.org/3/library/email.policy.html#email.policy.Compat32.header_source_parseX-tr*X!symtable.SymbolTable.get_childrenr*(jjXPhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_childrenX-tr*X3importlib.machinery.SourcelessFileLoader.get_sourcer*(jjXchttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.get_sourceX-tr*X"ossaudiodev.oss_audio_device.writer*(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.writeX-tr*X4distutils.ccompiler.CCompiler.shared_object_filenamer*(jjXchttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.shared_object_filenameX-tr*Xgettext.GNUTranslations.gettextr*(jjXMhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.gettextX-tr*X%xml.dom.Document.getElementsByTagNamer*(jjXShttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.getElementsByTagNameX-tr*X#unittest.TestCase.defaultTestResultr*(jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.defaultTestResultX-tr*X*urllib.request.CacheFTPHandler.setMaxConnsr*(jjX_http://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setMaxConnsX-tr*Xunittest.TestCase.setUpClassr*(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.setUpClassX-tr*Xsunau.AU_write.setparamsr*(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setparamsX-tr*X+urllib.robotparser.RobotFileParser.modifiedr*(jjXdhttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.modifiedX-tr*Xdatetime.tzinfo.tznamer*(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.tznameX-tr*Xstr.expandtabsr*(jjX=http://docs.python.org/3/library/stdtypes.html#str.expandtabsX-tr*Xjson.JSONEncoder.iterencoder*(jjXFhttp://docs.python.org/3/library/json.html#json.JSONEncoder.iterencodeX-tr*Xcurses.window.attroffr*(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.attroffX-tr+X#collections.OrderedDict.move_to_endr+(jjXUhttp://docs.python.org/3/library/collections.html#collections.OrderedDict.move_to_endX-tr+Xmultiprocessing.pool.Pool.imapr+(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.imapX-tr+Xpstats.Stats.print_statsr+(jjXFhttp://docs.python.org/3/library/profile.html#pstats.Stats.print_statsX-tr+Xdecimal.Decimal.from_floatr+(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.from_floatX-tr+X"html.parser.HTMLParser.handle_declr +(jjXThttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_declX-tr +X formatter.formatter.add_hor_ruler +(jjXPhttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_hor_ruleX-tr +Xobject.__ipow__r +(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__ipow__X-tr+X"doctest.DocTestParser.get_examplesr+(jjXPhttp://docs.python.org/3/library/doctest.html#doctest.DocTestParser.get_examplesX-tr+X#http.cookiejar.FileCookieJar.revertr+(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.revertX-tr+Xcurses.panel.Panel.mover+(jjXJhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.moveX-tr+Xtelnetlib.Telnet.interactr+(jjXIhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.interactX-tr+Xsocket.socket.sendtor+(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.sendtoX-tr+X asyncio.BaseEventLoop.is_runningr+(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.is_runningX-tr+Xmailbox.MH.remover+(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MH.removeX-tr+X re.regex.subr+(jjX5http://docs.python.org/3/library/re.html#re.regex.subX-tr+X/xml.sax.handler.ContentHandler.endPrefixMappingr+(jjXehttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endPrefixMappingX-tr +X symtable.SymbolTable.get_symbolsr!+(jjXOhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_symbolsX-tr"+X!zipimport.zipimporter.load_moduler#+(jjXQhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.load_moduleX-tr$+Xhttp.cookies.Morsel.js_outputr%+(jjXPhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.js_outputX-tr&+X+xml.parsers.expat.xmlparser.GetInputContextr'+(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.GetInputContextX-tr(+X%xml.sax.xmlreader.Attributes.getValuer)+(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getValueX-tr*+Xnntplib.NNTP.getwelcomer++(jjXEhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.getwelcomeX-tr,+Xcurses.window.standendr-+(jjXChttp://docs.python.org/3/library/curses.html#curses.window.standendX-tr.+Xshlex.shlex.error_leaderr/+(jjXDhttp://docs.python.org/3/library/shlex.html#shlex.shlex.error_leaderX-tr0+X"codecs.IncrementalEncoder.setstater1+(jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.setstateX-tr2+Xthreading.Condition.notify_allr3+(jjXNhttp://docs.python.org/3/library/threading.html#threading.Condition.notify_allX-tr4+Xasyncio.Lock.releaser5+(jjXGhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Lock.releaseX-tr6+Xgzip.GzipFile.peekr7+(jjX=http://docs.python.org/3/library/gzip.html#gzip.GzipFile.peekX-tr8+X dict.popitemr9+(jjX;http://docs.python.org/3/library/stdtypes.html#dict.popitemX-tr:+X_thread.lock.lockedr;+(jjXAhttp://docs.python.org/3/library/_thread.html#_thread.lock.lockedX-tr<+Xcurses.window.overwriter=+(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.overwriteX-tr>+Xcurses.window.untouchwinr?+(jjXEhttp://docs.python.org/3/library/curses.html#curses.window.untouchwinX-tr@+X socketserver.BaseServer.shutdownrA+(jjXShttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.shutdownX-trB+X#optparse.OptionParser.print_versionrC+(jjXRhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.print_versionX-trD+Xbdb.Bdb.set_continuerE+(jjX>http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_continueX-trF+Xtelnetlib.Telnet.read_somerG+(jjXJhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_someX-trH+Xwinreg.PyHKEY.DetachrI+(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.PyHKEY.DetachX-trJ+X(html.parser.HTMLParser.get_starttag_textrK+(jjXZhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.get_starttag_textX-trL+Xdatetime.datetime.astimezonerM+(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.astimezoneX-trN+Xsocket.socket.get_inheritablerO+(jjXJhttp://docs.python.org/3/library/socket.html#socket.socket.get_inheritableX-trP+X)xml.dom.pulldom.DOMEventStream.expandNoderQ+(jjX_http://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream.expandNodeX-trR+Ximaplib.IMAP4.lsubrS+(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.lsubX-trT+Xio.BufferedIOBase.readrU+(jjX?http://docs.python.org/3/library/io.html#io.BufferedIOBase.readX-trV+Xasyncio.StreamWriter.closerW+(jjXOhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.closeX-trX+X unittest.mock.Mock.mock_add_specrY+(jjXThttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.mock_add_specX-trZ+Xtkinter.ttk.Combobox.currentr[+(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.currentX-tr\+X!unittest.TestCase.assertLessEqualr]+(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertLessEqualX-tr^+Xlogging.Filter.filterr_+(jjXChttp://docs.python.org/3/library/logging.html#logging.Filter.filterX-tr`+Xmailbox.MaildirMessage.set_datera+(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_dateX-trb+Xqueue.Queue.qsizerc+(jjX=http://docs.python.org/3/library/queue.html#queue.Queue.qsizeX-trd+X str.isalphare+(jjX:http://docs.python.org/3/library/stdtypes.html#str.isalphaX-trf+Xtarfile.TarInfo.isregrg+(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isregX-trh+X'asyncio.BaseEventLoop.connect_read_piperi+(jjX_http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.connect_read_pipeX-trj+X'wsgiref.handlers.BaseHandler.get_stderrrk+(jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.get_stderrX-trl+X"xml.etree.ElementTree.Element.keysrm+(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.keysX-trn+X!mailbox.BabylMessage.remove_labelro+(jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.remove_labelX-trp+Xlogging.Logger.addFilterrq+(jjXFhttp://docs.python.org/3/library/logging.html#logging.Logger.addFilterX-trr+X object.__lt__rs+(jjX?http://docs.python.org/3/reference/datamodel.html#object.__lt__X-trt+Xobject.__delitem__ru+(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__delitem__X-trv+Xtelnetlib.Telnet.closerw+(jjXFhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.closeX-trx+X#calendar.Calendar.yeardatescalendarry+(jjXRhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardatescalendarX-trz+Xemail.charset.Charset.__eq__r{+(jjXPhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.__eq__X-tr|+Xpoplib.POP3.getwelcomer}+(jjXChttp://docs.python.org/3/library/poplib.html#poplib.POP3.getwelcomeX-tr~+Xarray.array.reverser+(jjX?http://docs.python.org/3/library/array.html#array.array.reverseX-tr+X!symtable.SymbolTable.is_optimizedr+(jjXPhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.is_optimizedX-tr+X=xmlrpc.server.SimpleXMLRPCServer.register_multicall_functionsr+(jjXqhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_multicall_functionsX-tr+Xlogging.Handler.filterr+(jjXDhttp://docs.python.org/3/library/logging.html#logging.Handler.filterX-tr+Xstring.Formatter.parser+(jjXChttp://docs.python.org/3/library/string.html#string.Formatter.parseX-tr+X+xml.sax.xmlreader.XMLReader.getErrorHandlerr+(jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getErrorHandlerX-tr+X)html.parser.HTMLParser.handle_startendtagr+(jjX[http://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_startendtagX-tr+Ximaplib.IMAP4.deleteaclr+(jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.deleteaclX-tr+Xmailbox.Mailbox.discardr+(jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.discardX-tr+Xasyncio.Future.set_exceptionr+(jjXOhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.set_exceptionX-tr+X6distutils.ccompiler.CCompiler.set_runtime_library_dirsr+(jjXehttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_runtime_library_dirsX-tr+X configparser.ConfigParser.getintr+(jjXShttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getintX-tr+Xsunau.AU_read.rewindr+(jjX@http://docs.python.org/3/library/sunau.html#sunau.AU_read.rewindX-tr+X(http.cookiejar.CookieJar.extract_cookiesr+(jjX]http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.extract_cookiesX-tr+X unittest.TestCase.assertSetEqualr+(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertSetEqualX-tr+X int.to_bytesr+(jjX;http://docs.python.org/3/library/stdtypes.html#int.to_bytesX-tr+Xmultiprocessing.Queue.closer+(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.closeX-tr+Xpoplib.POP3.set_debuglevelr+(jjXGhttp://docs.python.org/3/library/poplib.html#poplib.POP3.set_debuglevelX-tr+X/distutils.ccompiler.CCompiler.create_static_libr+(jjX^http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.create_static_libX-tr+X slice.indicesr+(jjX?http://docs.python.org/3/reference/datamodel.html#slice.indicesX-tr+Xsocket.socket.sharer+(jjX@http://docs.python.org/3/library/socket.html#socket.socket.shareX-tr+X"email.message.Message.__contains__r+(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.__contains__X-tr+X#sqlite3.Connection.create_aggregater+(jjXQhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_aggregateX-tr+X*asyncio.DatagramProtocol.datagram_receivedr+(jjXahttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramProtocol.datagram_receivedX-tr+Xftplib.FTP.storbinaryr+(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.storbinaryX-tr+X#unittest.TextTestRunner._makeResultr+(jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TextTestRunner._makeResultX-tr+Xlogging.Handler.formatr+(jjXDhttp://docs.python.org/3/library/logging.html#logging.Handler.formatX-tr+Xdifflib.Differ.comparer+(jjXDhttp://docs.python.org/3/library/difflib.html#difflib.Differ.compareX-tr+Ximaplib.IMAP4.responser+(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.responseX-tr+Xgettext.NullTranslations._parser+(jjXMhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations._parseX-tr+Xcollections.deque.popr+(jjXGhttp://docs.python.org/3/library/collections.html#collections.deque.popX-tr+Xobject.__setattr__r+(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__setattr__X-tr+X#http.client.HTTPResponse.getheadersr+(jjXUhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.getheadersX-tr+Xemail.policy.Policy.fold_binaryr+(jjXRhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.fold_binaryX-tr+Xdatetime.time.replacer+(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.time.replaceX-tr+Xdecimal.Decimal.expr+(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.expX-tr+Xio.BufferedIOBase.readintor+(jjXChttp://docs.python.org/3/library/io.html#io.BufferedIOBase.readintoX-tr+Xftplib.FTP.ntransfercmdr+(jjXDhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.ntransfercmdX-tr+Xbdb.Bdb.dispatch_callr+(jjX?http://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_callX-tr+X_thread.lock.acquirer+(jjXBhttp://docs.python.org/3/library/_thread.html#_thread.lock.acquireX-tr+Xarray.array.tolistr+(jjX>http://docs.python.org/3/library/array.html#array.array.tolistX-tr+X#configparser.ConfigParser.read_dictr+(jjXVhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_dictX-tr+X'xml.sax.xmlreader.Locator.getLineNumberr+(jjX\http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getLineNumberX-tr+Xsocket.socket.recvfrom_intor+(jjXHhttp://docs.python.org/3/library/socket.html#socket.socket.recvfrom_intoX-tr+Xbdb.Bdb.dispatch_liner+(jjX?http://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_lineX-tr+Xstruct.Struct.iter_unpackr+(jjXFhttp://docs.python.org/3/library/struct.html#struct.Struct.iter_unpackX-tr+Xftplib.FTP.cwdr+(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.cwdX-tr+Xmailbox.MMDF.unlockr+(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDF.unlockX-tr+Xdecimal.Decimal.remainder_nearr+(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.remainder_nearX-tr+Xasyncio.Future.set_resultr+(jjXLhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.set_resultX-tr+X)logging.handlers.SocketHandler.makeSocketr+(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.makeSocketX-tr+Xemail.message.Message.del_paramr+(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.del_paramX-tr+Xtkinter.ttk.Widget.stater+(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.stateX-tr+X5xml.parsers.expat.xmlparser.StartNamespaceDeclHandlerr+(jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartNamespaceDeclHandlerX-tr+Xxdrlib.Unpacker.unpack_stringr+(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_stringX-tr+X%logging.handlers.QueueListener.handler+(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.handleX-tr+Xnntplib.NNTP.descriptionr+(jjXFhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.descriptionX-tr+X'doctest.OutputChecker.output_differencer+(jjXUhttp://docs.python.org/3/library/doctest.html#doctest.OutputChecker.output_differenceX-tr+Xcurses.window.vliner+(jjX@http://docs.python.org/3/library/curses.html#curses.window.vlineX-tr+Xwave.Wave_read.getnchannelsr+(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getnchannelsX-tr+X!multiprocessing.SimpleQueue.emptyr+(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.emptyX-tr+X,email.headerregistry.HeaderRegistry.__call__r+(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistry.__call__X-tr+Xwave.Wave_read.getmarkersr+(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getmarkersX-tr+Xobject.__rmod__r+(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rmod__X-tr+X object.__le__r+(jjX?http://docs.python.org/3/reference/datamodel.html#object.__le__X-tr,Xcollections.Counter.updater,(jjXLhttp://docs.python.org/3/library/collections.html#collections.Counter.updateX-tr,Xasyncio.BaseEventLoop.timer,(jjXRhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.timeX-tr,Xtypes.MappingProxyType.getr,(jjXFhttp://docs.python.org/3/library/types.html#types.MappingProxyType.getX-tr,Xdecimal.Decimal.sqrtr,(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.sqrtX-tr,Xpoplib.POP3.retrr ,(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.retrX-tr ,Xpathlib.Path.rmdirr ,(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.rmdirX-tr ,X1importlib.machinery.SourcelessFileLoader.get_coder ,(jjXahttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.get_codeX-tr,Xasyncio.StreamWriter.drainr,(jjXOhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.drainX-tr,Xmailbox.MaildirMessage.get_dater,(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_dateX-tr,X set.clearr,(jjX8http://docs.python.org/3/library/stdtypes.html#set.clearX-tr,Xcurses.window.mover,(jjX?http://docs.python.org/3/library/curses.html#curses.window.moveX-tr,X)xml.sax.xmlreader.InputSource.setPublicIdr,(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setPublicIdX-tr,X-xml.sax.xmlreader.XMLReader.setEntityResolverr,(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setEntityResolverX-tr,Xarray.array.frombytesr,(jjXAhttp://docs.python.org/3/library/array.html#array.array.frombytesX-tr,Xpoplib.POP3.pass_r,(jjX>http://docs.python.org/3/library/poplib.html#poplib.POP3.pass_X-tr,X(email.policy.Compat32.header_store_parser,(jjX[http://docs.python.org/3/library/email.policy.html#email.policy.Compat32.header_store_parseX-tr ,Xcurses.panel.Panel.topr!,(jjXIhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.topX-tr",X#logging.handlers.SysLogHandler.emitr#,(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.emitX-tr$,Xlogging.Logger.findCallerr%,(jjXGhttp://docs.python.org/3/library/logging.html#logging.Logger.findCallerX-tr&,Xftplib.FTP_TLS.prot_cr',(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.prot_cX-tr(,Xdecimal.Decimal.is_signedr),(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_signedX-tr*,Xsocketserver.BaseServer.filenor+,(jjXQhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.filenoX-tr,,X$calendar.Calendar.monthdatescalendarr-,(jjXShttp://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdatescalendarX-tr.,X*importlib.machinery.FileFinder.find_loaderr/,(jjXZhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.find_loaderX-tr0,X/distutils.ccompiler.CCompiler.find_library_filer1,(jjX^http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.find_library_fileX-tr2,Xdis.Bytecode.disr3,(jjX:http://docs.python.org/3/library/dis.html#dis.Bytecode.disX-tr4,Xfractions.Fraction.from_floatr5,(jjXMhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.from_floatX-tr6,X&ipaddress.IPv6Network.compare_networksr7,(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.compare_networksX-tr8,Xcurses.window.scrollokr9,(jjXChttp://docs.python.org/3/library/curses.html#curses.window.scrollokX-tr:,Xtkinter.ttk.Treeview.itemr;,(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.itemX-tr<,Xlogging.FileHandler.closer=,(jjXPhttp://docs.python.org/3/library/logging.handlers.html#logging.FileHandler.closeX-tr>,Xftplib.FTP.dirr?,(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.dirX-tr@,X-xml.sax.xmlreader.AttributesNS.getQNameByNamerA,(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getQNameByNameX-trB,X optparse.OptionParser.add_optionrC,(jjXOhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.add_optionX-trD,Xwebbrowser.controller.open_newrE,(jjXOhttp://docs.python.org/3/library/webbrowser.html#webbrowser.controller.open_newX-trF,X dict.itemsrG,(jjX9http://docs.python.org/3/library/stdtypes.html#dict.itemsX-trH,Xtkinter.ttk.Style.lookuprI,(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.lookupX-trJ,Xlogging.FileHandler.emitrK,(jjXOhttp://docs.python.org/3/library/logging.handlers.html#logging.FileHandler.emitX-trL,Xdifflib.HtmlDiff.__init__rM,(jjXGhttp://docs.python.org/3/library/difflib.html#difflib.HtmlDiff.__init__X-trN,X*logging.handlers.MemoryHandler.shouldFlushrO,(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.shouldFlushX-trP,Xsmtplib.SMTP.has_extnrQ,(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.has_extnX-trR,X str.lstriprS,(jjX9http://docs.python.org/3/library/stdtypes.html#str.lstripX-trT,Xtelnetlib.Telnet.expectrU,(jjXGhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.expectX-trV,Xhmac.HMAC.copyrW,(jjX9http://docs.python.org/3/library/hmac.html#hmac.HMAC.copyX-trX,X.asyncio.asyncio.subprocess.Process.send_signalrY,(jjXghttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.send_signalX-trZ,Xhashlib.hash.hexdigestr[,(jjXDhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.hexdigestX-tr\,Xftplib.FTP.connectr],(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP.connectX-tr^,Xbz2.BZ2Compressor.flushr_,(jjXAhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.flushX-tr`,X5distutils.ccompiler.CCompiler.add_runtime_library_dirra,(jjXdhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_runtime_library_dirX-trb,Xweakref.finalize.peekrc,(jjXChttp://docs.python.org/3/library/weakref.html#weakref.finalize.peekX-trd,Xsqlite3.Cursor.executescriptre,(jjXJhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executescriptX-trf,X$xml.etree.ElementTree.Element.appendrg,(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.appendX-trh,Xbdb.Bdb.get_bpbynumberri,(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_bpbynumberX-trj,Xmsilib.Control.conditionrk,(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Control.conditionX-trl,Xemail.message.Message.__bytes__rm,(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.__bytes__X-trn,X"tkinter.ttk.Treeview.selection_setro,(jjXThttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_setX-trp,Xdecimal.Decimal.logical_invertrq,(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_invertX-trr,Xconfigparser.optionxformrs,(jjXKhttp://docs.python.org/3/library/configparser.html#configparser.optionxformX-trt,Xunittest.TestSuite.runru,(jjXEhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.runX-trv,Xdecimal.Context.subtractrw,(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.subtractX-trx,Xdecimal.Context.create_decimalry,(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.create_decimalX-trz,X)urllib.request.OpenerDirector.add_handlerr{,(jjX^http://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirector.add_handlerX-tr|,Xsocket.socket.recvmsg_intor},(jjXGhttp://docs.python.org/3/library/socket.html#socket.socket.recvmsg_intoX-tr~,Xsunau.AU_write.writeframesrawr,(jjXIhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.writeframesrawX-tr,X"sqlite3.Connection.create_functionr,(jjXPhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_functionX-tr,Xsymtable.Symbol.get_namespacesr,(jjXMhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.get_namespacesX-tr,Xdoctest.DocTestFinder.findr,(jjXHhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFinder.findX-tr,Xformatter.writer.flushr,(jjXFhttp://docs.python.org/3/library/formatter.html#formatter.writer.flushX-tr,Xthreading.RLock.releaser,(jjXGhttp://docs.python.org/3/library/threading.html#threading.RLock.releaseX-tr,X(argparse.ArgumentParser.parse_known_argsr,(jjXWhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_known_argsX-tr,Xlogging.Handler.acquirer,(jjXEhttp://docs.python.org/3/library/logging.html#logging.Handler.acquireX-tr,X pprint.PrettyPrinter.isrecursiver,(jjXMhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isrecursiveX-tr,Xdecimal.Context.is_finiter,(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_finiteX-tr,X list.sortr,(jjX8http://docs.python.org/3/library/stdtypes.html#list.sortX-tr,Xfractions.Fraction.from_decimalr,(jjXOhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.from_decimalX-tr,Ximaplib.IMAP4.closer,(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.closeX-tr,Xcurses.window.keypadr,(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.keypadX-tr,Xdatetime.datetime.utcoffsetr,(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utcoffsetX-tr,X&http.client.HTTPConnection.getresponser,(jjXXhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.getresponseX-tr,X$xml.etree.ElementTree.Element.remover,(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.removeX-tr,Xxml.dom.minidom.Node.writexmlr,(jjXShttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.writexmlX-tr,Xcgi.FieldStorage.getfirstr,(jjXChttp://docs.python.org/3/library/cgi.html#cgi.FieldStorage.getfirstX-tr,Xftplib.FTP.rmdr,(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.rmdX-tr,Xsymtable.SymbolTable.is_nestedr,(jjXMhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.is_nestedX-tr,X%http.cookiejar.CookieJar.make_cookiesr,(jjXZhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.make_cookiesX-tr,Xnntplib.NNTP.descriptionsr,(jjXGhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.descriptionsX-tr,Xcurses.window.getparyxr,(jjXChttp://docs.python.org/3/library/curses.html#curses.window.getparyxX-tr,Xlogging.Logger.handler,(jjXChttp://docs.python.org/3/library/logging.html#logging.Logger.handleX-tr,Xcollections.ChainMap.new_childr,(jjXPhttp://docs.python.org/3/library/collections.html#collections.ChainMap.new_childX-tr,X%urllib.request.BaseHandler.add_parentr,(jjXZhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.add_parentX-tr,Xcurses.window.getyxr,(jjX@http://docs.python.org/3/library/curses.html#curses.window.getyxX-tr,X)multiprocessing.managers.SyncManager.Lockr,(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.LockX-tr,Xselectors.BaseSelector.closer,(jjXLhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.closeX-tr,Xunittest.TestCase.assertLessr,(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertLessX-tr,Xbdb.Bdb.dispatch_returnr,(jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_returnX-tr,Xcmd.Cmd.precmdr,(jjX8http://docs.python.org/3/library/cmd.html#cmd.Cmd.precmdX-tr,Xftplib.FTP.voidcmdr,(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP.voidcmdX-tr,Ximaplib.IMAP4.shutdownr,(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.shutdownX-tr,X'ossaudiodev.oss_mixer_device.get_recsrcr,(jjXYhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.get_recsrcX-tr,X2urllib.request.HTTPBasicAuthHandler.http_error_401r,(jjXghttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandler.http_error_401X-tr,Xcurses.window.setscrregr,(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.setscrregX-tr,Ximp.NullImporter.find_moduler,(jjXFhttp://docs.python.org/3/library/imp.html#imp.NullImporter.find_moduleX-tr,X4xml.parsers.expat.xmlparser.ExternalEntityRefHandlerr,(jjXbhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ExternalEntityRefHandlerX-tr,X-multiprocessing.managers.BaseManager.registerr,(jjXchttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.registerX-tr,X'xml.dom.pulldom.DOMEventStream.getEventr,(jjX]http://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream.getEventX-tr,X asyncio.DatagramTransport.sendtor,(jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramTransport.sendtoX-tr,Xtkinter.ttk.Notebook.indexr,(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.indexX-tr,Xobject.__rdivmod__r,(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__rdivmod__X-tr,Xsocket.socket.acceptr,(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.acceptX-tr,Xio.BufferedIOBase.writer,(jjX@http://docs.python.org/3/library/io.html#io.BufferedIOBase.writeX-tr,Xasyncio.Protocol.data_receivedr,(jjXUhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.Protocol.data_receivedX-tr,X symtable.Function.get_parametersr,(jjXOhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_parametersX-tr,Xsocket.socket.sendr,(jjX?http://docs.python.org/3/library/socket.html#socket.socket.sendX-tr,X&xml.etree.ElementTree.ElementTree.iterr,(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.iterX-tr,Xtarfile.TarFile.nextr,(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.nextX-tr,X"ossaudiodev.oss_audio_device.resetr,(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.resetX-tr,Xpathlib.Path.lstatr,(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.lstatX-tr,X)xml.etree.ElementTree.Element.getchildrenr,(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.getchildrenX-tr,X(configparser.RawConfigParser.add_sectionr,(jjX[http://docs.python.org/3/library/configparser.html#configparser.RawConfigParser.add_sectionX-tr,Xasyncore.dispatcher.handle_exptr,(jjXNhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_exptX-tr,X msilib.Directory.start_componentr,(jjXMhttp://docs.python.org/3/library/msilib.html#msilib.Directory.start_componentX-tr,X asyncio.WriteTransport.write_eofr,(jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.write_eofX-tr,Xio.IOBase.readliner,(jjX;http://docs.python.org/3/library/io.html#io.IOBase.readlineX-tr,Xpdb.Pdb.runevalr,(jjX9http://docs.python.org/3/library/pdb.html#pdb.Pdb.runevalX-tr,Xcurses.window.getbkgdr,(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.getbkgdX-tr,X calendar.HTMLCalendar.formatyearr,(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatyearX-tr,Xsocket.socket.dupr,(jjX>http://docs.python.org/3/library/socket.html#socket.socket.dupX-tr,Xmmap.mmap.rfindr,(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.rfindX-tr-Xemail.parser.Parser.parser-(jjXLhttp://docs.python.org/3/library/email.parser.html#email.parser.Parser.parseX-tr-Ximaplib.IMAP4.logoutr-(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.logoutX-tr-Xthreading.RLock.acquirer-(jjXGhttp://docs.python.org/3/library/threading.html#threading.RLock.acquireX-tr-Xxml.dom.NodeList.itemr-(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.NodeList.itemX-tr-X)unittest.TestLoader.loadTestsFromTestCaser -(jjXXhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromTestCaseX-tr -Xemail.generator.Generator.cloner -(jjXUhttp://docs.python.org/3/library/email.generator.html#email.generator.Generator.cloneX-tr -Xobject.__index__r -(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__index__X-tr-Xdecimal.Decimal.comparer-(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compareX-tr-X email.contentmanager.set_contentr-(jjX[http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.set_contentX-tr-X!http.cookiejar.FileCookieJar.loadr-(jjXVhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.loadX-tr-Xselect.devpoll.modifyr-(jjXBhttp://docs.python.org/3/library/select.html#select.devpoll.modifyX-tr-Xsymtable.SymbolTable.get_typer-(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_typeX-tr-X%xml.sax.xmlreader.Locator.getSystemIdr-(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getSystemIdX-tr-Xunittest.TestCase.assertTruer-(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertTrueX-tr-Xio.IOBase.writelinesr-(jjX=http://docs.python.org/3/library/io.html#io.IOBase.writelinesX-tr-X&xml.sax.xmlreader.XMLReader.setFeaturer-(jjX[http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setFeatureX-tr -Xnntplib.NNTP.starttlsr!-(jjXChttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.starttlsX-tr"-Xtelnetlib.Telnet.mt_interactr#-(jjXLhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.mt_interactX-tr$-Xasynchat.async_chat.pushr%-(jjXGhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.pushX-tr&-Xpickle.Unpickler.loadr'-(jjXBhttp://docs.python.org/3/library/pickle.html#pickle.Unpickler.loadX-tr(-X!decimal.Decimal.to_integral_valuer)-(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_valueX-tr*-Xemail.message.Message.valuesr+-(jjXPhttp://docs.python.org/3/library/email.message.html#email.message.Message.valuesX-tr,-Xre.match.startr--(jjX7http://docs.python.org/3/library/re.html#re.match.startX-tr.-Xformatter.writer.send_hor_ruler/-(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_hor_ruleX-tr0-X str.rindexr1-(jjX9http://docs.python.org/3/library/stdtypes.html#str.rindexX-tr2-X$configparser.ConfigParser.has_optionr3-(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.has_optionX-tr4-Xcmd.Cmd.completedefaultr5-(jjXAhttp://docs.python.org/3/library/cmd.html#cmd.Cmd.completedefaultX-tr6-Xsunau.AU_read.tellr7-(jjX>http://docs.python.org/3/library/sunau.html#sunau.AU_read.tellX-tr8-X"distutils.text_file.TextFile.closer9-(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.closeX-tr:-Ximaplib.IMAP4.myrightsr;-(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.myrightsX-tr<-X!logging.Formatter.formatExceptionr=-(jjXOhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatExceptionX-tr>-Xpoplib.POP3.deler?-(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.deleX-tr@-X%tkinter.ttk.Treeview.selection_togglerA-(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_toggleX-trB-Xmailbox.MMDFMessage.set_fromrC-(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_fromX-trD-X,distutils.ccompiler.CCompiler.undefine_macrorE-(jjX[http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.undefine_macroX-trF-X%configparser.ConfigParser.optionxformrG-(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.optionxformX-trH-X&wsgiref.handlers.BaseHandler.get_stdinrI-(jjXThttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.get_stdinX-trJ-Xaifc.aifc.setnframesrK-(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.setnframesX-trL-Xselect.devpoll.pollrM-(jjX@http://docs.python.org/3/library/select.html#select.devpoll.pollX-trN-Xselect.poll.registerrO-(jjXAhttp://docs.python.org/3/library/select.html#select.poll.registerX-trP-X%http.cookiejar.CookiePolicy.return_okrQ-(jjXZhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.return_okX-trR-Xio.RawIOBase.readallrS-(jjX=http://docs.python.org/3/library/io.html#io.RawIOBase.readallX-trT-X*logging.handlers.SysLogHandler.mapPriorityrU-(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.mapPriorityX-trV-Xwave.Wave_read.rewindrW-(jjX@http://docs.python.org/3/library/wave.html#wave.Wave_read.rewindX-trX-Xdecimal.Context.plusrY-(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.plusX-trZ-Xcodecs.Codec.decoder[-(jjX@http://docs.python.org/3/library/codecs.html#codecs.Codec.decodeX-tr\-X%xml.etree.ElementTree.XMLParser.closer]-(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser.closeX-tr^-X'html.parser.HTMLParser.handle_entityrefr_-(jjXYhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_entityrefX-tr`-X*xml.sax.handler.ContentHandler.endDocumentra-(jjX`http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endDocumentX-trb-X#importlib.abc.SourceLoader.get_coderc-(jjXShttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.get_codeX-trd-Xshelve.Shelf.syncre-(jjX>http://docs.python.org/3/library/shelve.html#shelve.Shelf.syncX-trf-Ximaplib.IMAP4.threadrg-(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.threadX-trh-Xsqlite3.Cursor.executemanyri-(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executemanyX-trj-Xdecimal.Decimal.minrk-(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.minX-trl-X"asyncio.StreamReader.set_transportrm-(jjXWhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.set_transportX-trn-X&socketserver.BaseServer.verify_requestro-(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.verify_requestX-trp-X$asyncio.BaseTransport.get_extra_inforq-(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseTransport.get_extra_infoX-trr-Xinspect.Signature.replacers-(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.Signature.replaceX-trt-X)asyncio.BaseSubprocessTransport.terminateru-(jjX`http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.terminateX-trv-Xselect.epoll.modifyrw-(jjX@http://docs.python.org/3/library/select.html#select.epoll.modifyX-trx-Xunittest.mock.Mock.attach_mockry-(jjXRhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.attach_mockX-trz-Xdecimal.Context.clear_trapsr{-(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.clear_trapsX-tr|-X&importlib.abc.InspectLoader.is_packager}-(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.is_packageX-tr~-Xasyncio.AbstractServer.closer-(jjXThttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractServer.closeX-tr-Xzlib.Compress.compressr-(jjXAhttp://docs.python.org/3/library/zlib.html#zlib.Compress.compressX-tr-X!formatter.formatter.end_paragraphr-(jjXQhttp://docs.python.org/3/library/formatter.html#formatter.formatter.end_paragraphX-tr-Xdecimal.Decimal.radixr-(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Decimal.radixX-tr-Xpathlib.Path.is_block_devicer-(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_block_deviceX-tr-X%multiprocessing.Connection.send_bytesr-(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.send_bytesX-tr-X"asynchat.async_chat.set_terminatorr-(jjXQhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.set_terminatorX-tr-Xpathlib.PurePath.with_namer-(jjXHhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.with_nameX-tr-Xshelve.Shelf.closer-(jjX?http://docs.python.org/3/library/shelve.html#shelve.Shelf.closeX-tr-Xdatetime.tzinfo.fromutcr-(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.fromutcX-tr-Xwave.Wave_write.tellr-(jjX?http://docs.python.org/3/library/wave.html#wave.Wave_write.tellX-tr-Xcurses.window.touchwinr-(jjXChttp://docs.python.org/3/library/curses.html#curses.window.touchwinX-tr-Xwave.Wave_read.getcomptyper-(jjXEhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getcomptypeX-tr-X-xmlrpc.server.DocXMLRPCServer.set_server_namer-(jjXahttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_nameX-tr-X#asyncio.StreamWriter.get_extra_infor-(jjXXhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.get_extra_infoX-tr-X.logging.handlers.TimedRotatingFileHandler.emitr-(jjXehttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler.emitX-tr-Xmailbox.Babyl.unlockr-(jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Babyl.unlockX-tr-X*distutils.ccompiler.CCompiler.define_macror-(jjXYhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.define_macroX-tr-Xcollections.deque.remover-(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.removeX-tr-X"http.client.HTTPConnection.connectr-(jjXThttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.connectX-tr-X=urllib.request.AbstractBasicAuthHandler.http_error_auth_reqedr-(jjXrhttp://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractBasicAuthHandler.http_error_auth_reqedX-tr-Xobject.__set__r-(jjX@http://docs.python.org/3/reference/datamodel.html#object.__set__X-tr-X/urllib.request.HTTPErrorProcessor.http_responser-(jjXdhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.http_responseX-tr-Xsunau.AU_write.setsampwidthr-(jjXGhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setsampwidthX-tr-Xcurses.textpad.Textbox.editr-(jjXHhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.editX-tr-X'xml.etree.ElementTree.XMLParser.doctyper-(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser.doctypeX-tr-Xunittest.TestCase.skipTestr-(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.skipTestX-tr-X-xml.sax.xmlreader.AttributesNS.getNameByQNamer-(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getNameByQNameX-tr-Xdecimal.Decimal.rotater-(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.rotateX-tr-X#sqlite3.Connection.create_collationr-(jjXQhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_collationX-tr-Xlogging.Handler.removeFilterr-(jjXJhttp://docs.python.org/3/library/logging.html#logging.Handler.removeFilterX-tr-Xvenv.EnvBuilder.setup_pythonr-(jjXGhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.setup_pythonX-tr-X#wsgiref.handlers.BaseHandler._writer-(jjXQhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler._writeX-tr-Xcollections.Counter.most_commonr-(jjXQhttp://docs.python.org/3/library/collections.html#collections.Counter.most_commonX-tr-Xzipfile.ZipFile.closer-(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.closeX-tr-X!multiprocessing.pool.Pool.starmapr-(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.starmapX-tr-X gettext.GNUTranslations.ngettextr-(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.ngettextX-tr-Xasyncio.BaseEventLoop.set_debugr-(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.set_debugX-tr-X#argparse.ArgumentParser.get_defaultr-(jjXRhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.get_defaultX-tr-X"optparse.OptionParser.set_defaultsr-(jjXQhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.set_defaultsX-tr-X)xml.sax.xmlreader.Locator.getColumnNumberr-(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getColumnNumberX-tr-X5xml.parsers.expat.xmlparser.UnparsedEntityDeclHandlerr-(jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.UnparsedEntityDeclHandlerX-tr-X2xmlrpc.server.SimpleXMLRPCServer.register_instancer-(jjXfhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_instanceX-tr-X concurrent.futures.Future.cancelr-(jjXYhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.cancelX-tr-Xaifc.aifc.setnchannelsr-(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.setnchannelsX-tr-X formatter.writer.send_label_datar-(jjXPhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_label_dataX-tr-Xtkinter.ttk.Treeview.nextr-(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.nextX-tr-Xre.match.expandr-(jjX8http://docs.python.org/3/library/re.html#re.match.expandX-tr-Xunittest.TestCase.assertEqualr-(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertEqualX-tr-Xtarfile.TarFile.extractallr-(jjXHhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractallX-tr-X'xml.sax.xmlreader.XMLReader.getPropertyr-(jjX\http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getPropertyX-tr-X!selectors.BaseSelector.unregisterr-(jjXQhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.unregisterX-tr-X(distutils.cmd.Command.initialize_optionsr-(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.initialize_optionsX-tr-Xtracemalloc.Snapshot.dumpr-(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.dumpX-tr-X!unittest.TestResult.wasSuccessfulr-(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.wasSuccessfulX-tr-Xzipfile.ZipFile.printdirr-(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.printdirX-tr-Xset.symmetric_difference_updater-(jjXNhttp://docs.python.org/3/library/stdtypes.html#set.symmetric_difference_updateX-tr-Xsymtable.Function.get_freesr-(jjXJhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_freesX-tr-Xsunau.AU_read.getmarkersr-(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getmarkersX-tr-Xpathlib.Path.globr-(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.Path.globX-tr-X"doctest.DocTestRunner.report_startr-(jjXPhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_startX-tr-Xre.regex.splitr-(jjX7http://docs.python.org/3/library/re.html#re.regex.splitX-tr-X!email.generator.Generator.flattenr-(jjXWhttp://docs.python.org/3/library/email.generator.html#email.generator.Generator.flattenX-tr-Xselect.kqueue.controlr-(jjXBhttp://docs.python.org/3/library/select.html#select.kqueue.controlX-tr-X http.cookiejar.Cookie.is_expiredr-(jjXUhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.is_expiredX-tr.X!logging.handlers.SMTPHandler.emitr.(jjXXhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandler.emitX-tr.X#xml.etree.ElementTree.Element.itemsr.(jjX_http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.itemsX-tr.X+distutils.ccompiler.CCompiler.set_librariesr.(jjXZhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_librariesX-tr.Xinspect.Signature.bindr.(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.Signature.bindX-tr.Xdatetime.date.__format__r .(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.date.__format__X-tr .Xmultiprocessing.pool.Pool.joinr .(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.joinX-tr .Xtarfile.TarInfo.frombufr .(jjXEhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.frombufX-tr.Xmailbox.MH.packr.(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MH.packX-tr.X%code.InteractiveInterpreter.runsourcer.(jjXPhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.runsourceX-tr.X&xml.etree.ElementTree.Element.findtextr.(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findtextX-tr.Xio.TextIOBase.tellr.(jjX;http://docs.python.org/3/library/io.html#io.TextIOBase.tellX-tr.Xxdrlib.Packer.pack_farrayr.(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_farrayX-tr.X wsgiref.handlers.BaseHandler.runr.(jjXNhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.runX-tr.X asyncore.dispatcher.handle_writer.(jjXOhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_writeX-tr.Xobject.__itruediv__r.(jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__itruediv__X-tr.X'asyncio.BaseSubprocessTransport.get_pidr.(jjX^http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.get_pidX-tr .Xbytearray.translater!.(jjXBhttp://docs.python.org/3/library/stdtypes.html#bytearray.translateX-tr".Xsmtplib.SMTP.ehlor#.(jjX?http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehloX-tr$.X(asyncio.BaseEventLoop.create_unix_serverr%.(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_unix_serverX-tr&.Xsocket.socket.detachr'.(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.detachX-tr(.Xasyncio.StreamReader.readr).(jjXNhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.readX-tr*.Xcollections.deque.popleftr+.(jjXKhttp://docs.python.org/3/library/collections.html#collections.deque.popleftX-tr,.X+multiprocessing.managers.BaseProxy.__repr__r-.(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy.__repr__X-tr..Xtkinter.ttk.Treeview.identifyr/.(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identifyX-tr0.Xmultiprocessing.Process.runr1.(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.runX-tr2.X%ossaudiodev.oss_mixer_device.controlsr3.(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.controlsX-tr4.Xsunau.AU_read.closer5.(jjX?http://docs.python.org/3/library/sunau.html#sunau.AU_read.closeX-tr6.Xstr.capitalizer7.(jjX=http://docs.python.org/3/library/stdtypes.html#str.capitalizeX-tr8.Xmailbox.MMDF.get_filer9.(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.MMDF.get_fileX-tr:.X(xml.sax.xmlreader.AttributesNS.getQNamesr;.(jjX]http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getQNamesX-tr<.X/wsgiref.simple_server.WSGIRequestHandler.handler=.(jjX]http://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandler.handleX-tr>.X&importlib.abc.SourceLoader.load_moduler?.(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.load_moduleX-tr@.Xdecimal.Decimal.is_infiniterA.(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_infiniteX-trB.Xobject.__getnewargs_ex__rC.(jjXEhttp://docs.python.org/3/library/pickle.html#object.__getnewargs_ex__X-trD.Xsymtable.SymbolTable.get_linenorE.(jjXNhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_linenoX-trF.X"zipimport.zipimporter.get_filenamerG.(jjXRhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_filenameX-trH.X"configparser.ConfigParser.sectionsrI.(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.sectionsX-trJ.Xdatetime.datetime.ctimerK.(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.datetime.ctimeX-trL.Xtarfile.TarInfo.isblkrM.(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isblkX-trN.Xunittest.TestCase.tearDownClassrO.(jjXNhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.tearDownClassX-trP.Xdatetime.datetime.timetzrQ.(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timetzX-trR.X$symtable.SymbolTable.get_identifiersrS.(jjXShttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_identifiersX-trT.Xtrace.Trace.runctxrU.(jjX>http://docs.python.org/3/library/trace.html#trace.Trace.runctxX-trV.X%importlib.abc.SourceLoader.path_mtimerW.(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.path_mtimeX-trX.X%http.client.HTTPConnection.set_tunnelrY.(jjXWhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.set_tunnelX-trZ.Xpathlib.Path.symlink_tor[.(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.symlink_toX-tr\.Xbdb.Bdb.runctxr].(jjX8http://docs.python.org/3/library/bdb.html#bdb.Bdb.runctxX-tr^.Xdatetime.date.ctimer_.(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.date.ctimeX-tr`.X#xml.dom.Element.removeAttributeNodera.(jjXQhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.removeAttributeNodeX-trb.Xobject.__rtruediv__rc.(jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__rtruediv__X-trd.Xmailbox.Mailbox.get_bytesre.(jjXGhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_bytesX-trf.X.asyncio.AbstractEventLoopPolicy.set_event_looprg.(jjXfhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractEventLoopPolicy.set_event_loopX-trh.X'xml.etree.ElementTree.TreeBuilder.closeri.(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.closeX-trj.Xemail.header.Header.__str__rk.(jjXNhttp://docs.python.org/3/library/email.header.html#email.header.Header.__str__X-trl.Xmailbox.Mailbox.__delitem__rm.(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__delitem__X-trn.Xmailbox.Maildir.unlockro.(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.unlockX-trp.Xmailbox.Mailbox.__getitem__rq.(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__getitem__X-trr.Xmultiprocessing.pool.Pool.maprs.(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.mapX-trt.X!asyncore.dispatcher.handle_acceptru.(jjXPhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_acceptX-trv.Xasyncio.JoinableQueue.task_donerw.(jjXRhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.JoinableQueue.task_doneX-trx.Xsunau.AU_write.setnchannelsry.(jjXGhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setnchannelsX-trz.Xzipfile.ZipFile.openr{.(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.openX-tr|.Xtkinter.ttk.Treeview.mover}.(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.moveX-tr~.Xabc.ABCMeta.registerr.(jjX>http://docs.python.org/3/library/abc.html#abc.ABCMeta.registerX-tr.Xsocket.socket.shutdownr.(jjXChttp://docs.python.org/3/library/socket.html#socket.socket.shutdownX-tr.X'email.charset.Charset.get_body_encodingr.(jjX[http://docs.python.org/3/library/email.charset.html#email.charset.Charset.get_body_encodingX-tr.Xunittest.TestCase.assertNotInr.(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotInX-tr.Xio.BufferedReader.peekr.(jjX?http://docs.python.org/3/library/io.html#io.BufferedReader.peekX-tr.Xre.regex.searchr.(jjX8http://docs.python.org/3/library/re.html#re.regex.searchX-tr.Xstruct.Struct.packr.(jjX?http://docs.python.org/3/library/struct.html#struct.Struct.packX-tr.Xobject.__hash__r.(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__hash__X-tr.X str.casefoldr.(jjX;http://docs.python.org/3/library/stdtypes.html#str.casefoldX-tr.Xctypes._CData.from_paramr.(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_paramX-tr.Xio.IOBase.tellr.(jjX7http://docs.python.org/3/library/io.html#io.IOBase.tellX-tr.Xmemoryview.__eq__r.(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.__eq__X-tr.X*xml.etree.ElementTree.ElementTree._setrootr.(jjXfhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree._setrootX-tr.Xcurses.window.getkeyr.(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.getkeyX-tr.Xmailbox.MMDF.lockr.(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MMDF.lockX-tr.X&xml.dom.Element.getElementsByTagNameNSr.(jjXThttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getElementsByTagNameNSX-tr.Xunittest.TestCase.failr.(jjXEhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.failX-tr.X+difflib.SequenceMatcher.get_grouped_opcodesr.(jjXYhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.get_grouped_opcodesX-tr.Xobject.__sub__r.(jjX@http://docs.python.org/3/reference/datamodel.html#object.__sub__X-tr.Xobject.__ixor__r.(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__ixor__X-tr.Xnntplib.NNTP.postr.(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.postX-tr.Xzlib.Decompress.copyr.(jjX?http://docs.python.org/3/library/zlib.html#zlib.Decompress.copyX-tr.X$argparse.ArgumentParser.format_usager.(jjXShttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.format_usageX-tr.Xcurses.window.getbegyxr.(jjXChttp://docs.python.org/3/library/curses.html#curses.window.getbegyxX-tr.X.asyncio.BaseEventLoop.create_datagram_endpointr.(jjXfhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_datagram_endpointX-tr.X!email.message.Message.set_charsetr.(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_charsetX-tr.X$asyncio.BaseProtocol.connection_mader.(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.connection_madeX-tr.X"email.message.Message.get_filenamer.(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_filenameX-tr.Xdecimal.Decimal.quantizer.(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.quantizeX-tr.Xmmap.mmap.readliner.(jjX=http://docs.python.org/3/library/mmap.html#mmap.mmap.readlineX-tr.X multiprocessing.Process.is_aliver.(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.is_aliveX-tr.X multiprocessing.Connection.closer.(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.closeX-tr.Xtelnetlib.Telnet.read_sb_datar.(jjXMhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_sb_dataX-tr.Xmailbox.mboxMessage.get_flagsr.(jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_flagsX-tr.Xmailbox.Mailbox.get_filer.(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_fileX-tr.Xasyncio.WriteTransport.writer.(jjXShttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.writeX-tr.X&socketserver.BaseServer.handle_timeoutr.(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_timeoutX-tr.Xpdb.Pdb.runcallr.(jjX9http://docs.python.org/3/library/pdb.html#pdb.Pdb.runcallX-tr.Xobject.__xor__r.(jjX@http://docs.python.org/3/reference/datamodel.html#object.__xor__X-tr.X/email.headerregistry.HeaderRegistry.map_to_typer.(jjXjhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistry.map_to_typeX-tr.Xast.NodeVisitor.visitr.(jjX?http://docs.python.org/3/library/ast.html#ast.NodeVisitor.visitX-tr.Xcurses.window.subpadr.(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.subpadX-tr.X!asyncio.BaseEventLoop.run_foreverr.(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.run_foreverX-tr.Xsymtable.Symbol.is_importedr.(jjXJhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_importedX-tr.Xthreading.Event.clearr.(jjXEhttp://docs.python.org/3/library/threading.html#threading.Event.clearX-tr.Xmailbox.MHMessage.set_sequencesr.(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.set_sequencesX-tr.Ximaplib.IMAP4.setannotationr.(jjXIhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.setannotationX-tr.X#distutils.ccompiler.CCompiler.spawnr.(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.spawnX-tr.Xdecimal.Decimal.is_qnanr.(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_qnanX-tr.Xftplib.FTP.renamer.(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.FTP.renameX-tr.X%importlib.abc.SourceLoader.path_statsr.(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.path_statsX-tr.Xio.BufferedReader.readr.(jjX?http://docs.python.org/3/library/io.html#io.BufferedReader.readX-tr.Xdecimal.Decimal.is_zeror.(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_zeroX-tr.Xcmd.Cmd.defaultr.(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.defaultX-tr.Xtelnetlib.Telnet.openr.(jjXEhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.openX-tr.Xsunau.AU_write.setcomptyper.(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setcomptypeX-tr.Ximaplib.IMAP4.creater.(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.createX-tr.Xmailbox.Mailbox.__setitem__r.(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__setitem__X-tr.Xarray.array.countr.(jjX=http://docs.python.org/3/library/array.html#array.array.countX-tr.X,http.server.SimpleHTTPRequestHandler.do_HEADr.(jjX^http://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.do_HEADX-tr.Xhtml.parser.HTMLParser.resetr.(jjXNhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.resetX-tr.Xasyncio.StreamReader.readliner.(jjXRhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.readlineX-tr.Xobject.__length_hint__r.(jjXHhttp://docs.python.org/3/reference/datamodel.html#object.__length_hint__X-tr.Xunittest.TestCase.assertIsr.(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsX-tr.Xwinreg.PyHKEY.Closer.(jjX@http://docs.python.org/3/library/winreg.html#winreg.PyHKEY.CloseX-tr/X0argparse.ArgumentParser.convert_arg_line_to_argsr/(jjX_http://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.convert_arg_line_to_argsX-tr/X http.cookies.Morsel.OutputStringr/(jjXShttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.OutputStringX-tr/X&unittest.TestLoader.loadTestsFromNamesr/(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromNamesX-tr/Xcurses.window.borderr/(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.borderX-tr/X!mailbox.MHMessage.remove_sequencer /(jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.remove_sequenceX-tr /Xtarfile.TarInfo.isfifor /(jjXDhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isfifoX-tr /X3distutils.fancy_getopt.FancyGetopt.get_option_orderr /(jjXbhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetopt.get_option_orderX-tr/Xdecimal.Context.next_towardr/(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.next_towardX-tr/Xfloat.as_integer_ratior/(jjXEhttp://docs.python.org/3/library/stdtypes.html#float.as_integer_ratioX-tr/X7xmlrpc.server.CGIXMLRPCRequestHandler.register_functionr/(jjXkhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_functionX-tr/Xunittest.TestCase.assertInr/(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertInX-tr/X-xml.etree.ElementTree.ElementTree.getiteratorr/(jjXihttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.getiteratorX-tr/X mailbox.BabylMessage.get_visibler/(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_visibleX-tr/Xmailbox.MH.set_sequencesr/(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.set_sequencesX-tr/Xunittest.TestCase.assertIsNoner/(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsNoneX-tr/Xhtml.parser.HTMLParser.feedr/(jjXMhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.feedX-tr /X str.replacer!/(jjX:http://docs.python.org/3/library/stdtypes.html#str.replaceX-tr"/X email.message.EmailMessage.clearr#/(jjX[http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.clearX-tr$/X str.rfindr%/(jjX8http://docs.python.org/3/library/stdtypes.html#str.rfindX-tr&/Xchunk.Chunk.closer'/(jjX=http://docs.python.org/3/library/chunk.html#chunk.Chunk.closeX-tr(/Ximaplib.IMAP4.authenticater)/(jjXHhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.authenticateX-tr*/Xio.IOBase.isattyr+/(jjX9http://docs.python.org/3/library/io.html#io.IOBase.isattyX-tr,/X6xml.parsers.expat.xmlparser.ExternalEntityParserCreater-/(jjXdhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ExternalEntityParserCreateX-tr./X!xml.etree.ElementTree.Element.getr//(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.getX-tr0/Xcmd.Cmd.onecmdr1/(jjX8http://docs.python.org/3/library/cmd.html#cmd.Cmd.onecmdX-tr2/Xemail.message.Message.set_paramr3/(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.set_paramX-tr4/X+asyncio.BaseEventLoop.remove_signal_handlerr5/(jjXchttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.remove_signal_handlerX-tr6/Xasyncio.BaseEventLoop.closer7/(jjXShttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.closeX-tr8/Xset.addr9/(jjX6http://docs.python.org/3/library/stdtypes.html#set.addX-tr:/Xasynchat.fifo.pushr;/(jjXAhttp://docs.python.org/3/library/asynchat.html#asynchat.fifo.pushX-tr/X3email.contentmanager.ContentManager.add_get_handlerr?/(jjXnhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.add_get_handlerX-tr@/Xssl.SSLContext.set_ciphersrA/(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ciphersX-trB/X&logging.handlers.QueueListener.preparerC/(jjX]http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.prepareX-trD/Xcurses.window.bkgdrE/(jjX?http://docs.python.org/3/library/curses.html#curses.window.bkgdX-trF/Xmailbox.Mailbox.itervaluesrG/(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.itervaluesX-trH/Xdecimal.Context.EtoprI/(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.EtopX-trJ/X+code.InteractiveInterpreter.showsyntaxerrorrK/(jjXVhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.showsyntaxerrorX-trL/Xobject.__lshift__rM/(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__lshift__X-trN/Xasyncio.Future.exceptionrO/(jjXKhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.exceptionX-trP/Xftplib.FTP.mkdrQ/(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.mkdX-trR/Xobject.__truediv__rS/(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__truediv__X-trT/Xwave.Wave_read.readframesrU/(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_read.readframesX-trV/Xmmap.mmap.tellrW/(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.tellX-trX/Xargparse.ArgumentParser.errorrY/(jjXLhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.errorX-trZ/X"ossaudiodev.oss_audio_device.closer[/(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.closeX-tr\/Xthreading.Barrier.abortr]/(jjXGhttp://docs.python.org/3/library/threading.html#threading.Barrier.abortX-tr^/Xset.intersectionr_/(jjX?http://docs.python.org/3/library/stdtypes.html#set.intersectionX-tr`/Xipaddress.IPv4Network.overlapsra/(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.overlapsX-trb/X!ossaudiodev.oss_audio_device.postrc/(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.postX-trd/X$logging.handlers.MemoryHandler.flushre/(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.flushX-trf/X"wsgiref.headers.Headers.add_headerrg/(jjXPhttp://docs.python.org/3/library/wsgiref.html#wsgiref.headers.Headers.add_headerX-trh/Xhttp.client.HTTPConnection.sendri/(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.sendX-trj/Xxdrlib.Packer.pack_stringrk/(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_stringX-trl/X)xml.sax.handler.ContentHandler.endElementrm/(jjX_http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endElementX-trn/Xtextwrap.TextWrapper.wrapro/(jjXHhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.wrapX-trp/X'logging.handlers.SMTPHandler.getSubjectrq/(jjX^http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandler.getSubjectX-trr/Xxdrlib.Packer.pack_fstringrs/(jjXGhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_fstringX-trt/Xtarfile.TarFile.addru/(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.addX-trv/Xnntplib.NNTP.xpathrw/(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.xpathX-trx/X#ossaudiodev.oss_audio_device.setfmtry/(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.setfmtX-trz/X$email.policy.Policy.header_max_countr{/(jjXWhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_max_countX-tr|/X!logging.handlers.HTTPHandler.emitr}/(jjXXhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.HTTPHandler.emitX-tr~/Xmmap.mmap.closer/(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.closeX-tr/Xinspect.Parameter.replacer/(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.replaceX-tr/Xnntplib.NNTP.lastr/(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.lastX-tr/Xmsilib.CAB.appendr/(jjX>http://docs.python.org/3/library/msilib.html#msilib.CAB.appendX-tr/X%wsgiref.handlers.BaseHandler.sendfiler/(jjXShttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.sendfileX-tr/Xemail.message.Message.walkr/(jjXNhttp://docs.python.org/3/library/email.message.html#email.message.Message.walkX-tr/Xtkinter.ttk.Treeview.tag_hasr/(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_hasX-tr/Xdecimal.Context.max_magr/(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.max_magX-tr/X str.upperr/(jjX8http://docs.python.org/3/library/stdtypes.html#str.upperX-tr/Xdoctest.DocTestParser.parser/(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.DocTestParser.parseX-tr/Xstring.Formatter.get_fieldr/(jjXGhttp://docs.python.org/3/library/string.html#string.Formatter.get_fieldX-tr/X-xml.sax.xmlreader.XMLReader.setContentHandlerr/(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setContentHandlerX-tr/Ximaplib.IMAP4.checkr/(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.checkX-tr/X#asyncore.dispatcher.handle_acceptedr/(jjXRhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_acceptedX-tr/Xbz2.BZ2Decompressor.decompressr/(jjXHhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.decompressX-tr/Xsched.scheduler.enterabsr/(jjXDhttp://docs.python.org/3/library/sched.html#sched.scheduler.enterabsX-tr/Xunittest.TestCase.idr/(jjXChttp://docs.python.org/3/library/unittest.html#unittest.TestCase.idX-tr/Xjson.JSONEncoder.defaultr/(jjXChttp://docs.python.org/3/library/json.html#json.JSONEncoder.defaultX-tr/Xtelnetlib.Telnet.writer/(jjXFhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.writeX-tr/Xselect.kqueue.closer/(jjX@http://docs.python.org/3/library/select.html#select.kqueue.closeX-tr/Xmmap.mmap.readr/(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.readX-tr/Xgettext.NullTranslations.infor/(jjXKhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.infoX-tr/X,urllib.parse.urllib.parse.SplitResult.geturlr/(jjX_http://docs.python.org/3/library/urllib.parse.html#urllib.parse.urllib.parse.SplitResult.geturlX-tr/Ximaplib.IMAP4.socketr/(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.socketX-tr/Xxml.dom.NamedNodeMap.itemr/(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NamedNodeMap.itemX-tr/X*xml.parsers.expat.xmlparser.XmlDeclHandlerr/(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.XmlDeclHandlerX-tr/Xcurses.window.syncdownr/(jjXChttp://docs.python.org/3/library/curses.html#curses.window.syncdownX-tr/Xnntplib.NNTP.articler/(jjXBhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.articleX-tr/Xsmtplib.SMTP.starttlsr/(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.starttlsX-tr/Xconfigparser.ConfigParser.itemsr/(jjXRhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.itemsX-tr/Xxdrlib.Packer.pack_fopaquer/(jjXGhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_fopaqueX-tr/X(multiprocessing.pool.Pool.imap_unorderedr/(jjX^http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.imap_unorderedX-tr/X class.mror/(jjX8http://docs.python.org/3/library/stdtypes.html#class.mroX-tr/X#email.policy.Policy.register_defectr/(jjXVhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.register_defectX-tr/Xunittest.TestCase.assertGreaterr/(jjXNhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertGreaterX-tr/Xarray.array.indexr/(jjX=http://docs.python.org/3/library/array.html#array.array.indexX-tr/Xtelnetlib.Telnet.read_untilr/(jjXKhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_untilX-tr/X%distutils.text_file.TextFile.readliner/(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.readlineX-tr/X/xml.parsers.expat.xmlparser.NotationDeclHandlerr/(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.NotationDeclHandlerX-tr/Xdecimal.Context.divider/(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.divideX-tr/Xdecimal.Context.absr/(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.absX-tr/Xselectors.BaseSelector.modifyr/(jjXMhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.modifyX-tr/Xthreading.Condition.waitr/(jjXHhttp://docs.python.org/3/library/threading.html#threading.Condition.waitX-tr/Xcollections.Counter.fromkeysr/(jjXNhttp://docs.python.org/3/library/collections.html#collections.Counter.fromkeysX-tr/Xmailbox.Mailbox.get_messager/(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_messageX-tr/Xcmd.Cmd.preloopr/(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.preloopX-tr/Xwave.Wave_write.setframerater/(jjXGhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setframerateX-tr/Xxml.dom.Node.removeChildr/(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.removeChildX-tr/X+urllib.request.HTTPPasswordMgr.add_passwordr/(jjX`http://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.add_passwordX-tr/Xxml.dom.minidom.Node.unlinkr/(jjXQhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.unlinkX-tr/Xcmd.Cmd.emptyliner/(jjX;http://docs.python.org/3/library/cmd.html#cmd.Cmd.emptylineX-tr/Xssl.SSLContext.session_statsr/(jjXFhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.session_statsX-tr/X'distutils.text_file.TextFile.unreadliner/(jjXVhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.unreadlineX-tr/Xcalendar.Calendar.itermonthdaysr/(jjXNhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdaysX-tr/Xtkinter.ttk.Style.element_namesr/(jjXQhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_namesX-tr/X/logging.handlers.RotatingFileHandler.doRolloverr/(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler.doRolloverX-tr/X dict.copyr/(jjX8http://docs.python.org/3/library/stdtypes.html#dict.copyX-tr/X!socketserver.RequestHandler.setupr/(jjXThttp://docs.python.org/3/library/socketserver.html#socketserver.RequestHandler.setupX-tr/Xsqlite3.Cursor.executer/(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executeX-tr/X str.isupperr/(jjX:http://docs.python.org/3/library/stdtypes.html#str.isupperX-tr/Xobject.__rand__r/(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rand__X-tr/Xobject.__ifloordiv__r/(jjXFhttp://docs.python.org/3/reference/datamodel.html#object.__ifloordiv__X-tr/Xio.BufferedWriter.writer/(jjX@http://docs.python.org/3/library/io.html#io.BufferedWriter.writeX-tr/X(logging.handlers.NTEventLogHandler.closer/(jjX_http://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.closeX-tr/X*wsgiref.handlers.BaseHandler.setup_environr/(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.setup_environX-tr0X)http.cookiejar.CookieJar.set_cookie_if_okr0(jjX^http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.set_cookie_if_okX-tr0Xset.issupersetr0(jjX=http://docs.python.org/3/library/stdtypes.html#set.issupersetX-tr0Xsqlite3.Connection.closer0(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.closeX-tr0Xgenerator.throwr0(jjXChttp://docs.python.org/3/reference/expressions.html#generator.throwX-tr0X0importlib.machinery.FileFinder.invalidate_cachesr 0(jjX`http://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.invalidate_cachesX-tr 0Xxml.dom.Node.hasAttributesr 0(jjXHhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.hasAttributesX-tr 0X"http.cookiejar.CookiePolicy.set_okr 0(jjXWhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.set_okX-tr0Xzipfile.ZipFile.writer0(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.writeX-tr0X#code.InteractiveConsole.resetbufferr0(jjXNhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.resetbufferX-tr0Xunittest.TestLoader.discoverr0(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.discoverX-tr0X%logging.handlers.DatagramHandler.emitr0(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandler.emitX-tr0X%msilib.Database.GetSummaryInformationr0(jjXRhttp://docs.python.org/3/library/msilib.html#msilib.Database.GetSummaryInformationX-tr0Xast.NodeVisitor.generic_visitr0(jjXGhttp://docs.python.org/3/library/ast.html#ast.NodeVisitor.generic_visitX-tr0Ximaplib.IMAP4.copyr0(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.copyX-tr0X%xml.sax.xmlreader.Attributes.getNamesr0(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getNamesX-tr0Xlogging.Handler.setFormatterr0(jjXJhttp://docs.python.org/3/library/logging.html#logging.Handler.setFormatterX-tr 0Xcurses.window.resizer!0(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.resizeX-tr"0Xcodecs.StreamReader.readr#0(jjXEhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.readX-tr$0Xjson.JSONDecoder.decoder%0(jjXBhttp://docs.python.org/3/library/json.html#json.JSONDecoder.decodeX-tr&0X!urllib.request.Request.get_headerr'0(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.get_headerX-tr(0uX std:optionr)0}r*0(X-Er+0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-EX-tr,0X --detailsr-0(jjXHhttp://docs.python.org/3/library/inspect.html#cmdoption-inspect--detailsX-tr.0X-Cr/0(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-CX-tr00X-Br10(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-BX-tr20X-Or30(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-OX-tr40X-Ir50(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-IX-tr60X-Jr70(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-JX-tr80X-Tr90(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-TX-tr:0X-Wr;0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-WX-tr<0X-Vr=0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-VX-tr>0X-Sr?0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-SX-tr@0X-RrA0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-RX-trB0X-XrC0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-XX-trD0X-erE0(jjXChttp://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-eX-trF0X-drG0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-dX-trH0X-grI0(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-gX-trJ0X-frK0(jjXChttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-fX-trL0X-arM0(jjXIhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools-aX-trN0X-crO0(jjXChttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-cX-trP0X-brQ0(jjXChttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-bX-trR0X-mrS0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-mX-trT0X-lrU0(jjXIhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools-lX-trV0X-orW0(jjXIhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools-oX-trX0X-nrY0(jjX?http://docs.python.org/3/library/timeit.html#cmdoption-timeit-nX-trZ0X-ir[0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-iX-tr\0X-hr]0(jjX?http://docs.python.org/3/library/timeit.html#cmdoption-timeit-hX-tr^0X-ur_0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-uX-tr`0X-tra0(jjXLhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-tX-trb0X-vrc0(jjXLhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-vX-trd0X-qre0(jjXGhttp://docs.python.org/3/library/compileall.html#cmdoption-compileall-qX-trf0X-prg0(jjXLhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-pX-trh0X-sri0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-sX-trj0X-rrk0(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-rX-trl0X --extractrm0(jjX@http://docs.python.org/3/library/tarfile.html#cmdoption--extractX-trn0X-xro0(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-xX-trp0X--createrq0(jjX?http://docs.python.org/3/library/tarfile.html#cmdoption--createX-trr0X --versionrs0(jjX>http://docs.python.org/3/using/cmdline.html#cmdoption--versionX-trt0X --user-baseru0(jjXDhttp://docs.python.org/3/library/site.html#cmdoption-site--user-baseX-trv0X--listrw0(jjX=http://docs.python.org/3/library/tarfile.html#cmdoption--listX-trx0X-OOry0(jjX8http://docs.python.org/3/using/cmdline.html#cmdoption-OOX-trz0X --ignore-dirr{0(jjXGhttp://docs.python.org/3/library/trace.html#cmdoption-trace--ignore-dirX-tr|0X--testr}0(jjX=http://docs.python.org/3/library/tarfile.html#cmdoption--testX-tr~0X--ignore-moduler0(jjXJhttp://docs.python.org/3/library/trace.html#cmdoption-trace--ignore-moduleX-tr0X--helpr0(jjXAhttp://docs.python.org/3/library/trace.html#cmdoption-trace--helpX-tr0X --user-siter0(jjXDhttp://docs.python.org/3/library/site.html#cmdoption-site--user-siteX-tr0uX c:functionr0}r0(XPyUnicode_AsUTF16Stringr0(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF16StringX-tr0XPyList_GET_SIZEr0(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_GET_SIZEX-tr0XPyDict_SetItemr0(jjX9http://docs.python.org/3/c-api/dict.html#c.PyDict_SetItemX-tr0XPyComplex_Checkr0(jjX=http://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckX-tr0XPyRun_InteractiveLoopr0(jjXDhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveLoopX-tr0X PyDict_Itemsr0(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_ItemsX-tr0XPyObject_CallMethodObjArgsr0(jjXGhttp://docs.python.org/3/c-api/object.html#c.PyObject_CallMethodObjArgsX-tr0XPyModule_Checkr0(jjX;http://docs.python.org/3/c-api/module.html#c.PyModule_CheckX-tr0XPyUnicode_READ_CHARr0(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHARX-tr0XPyFunction_NewWithQualNamer0(jjXIhttp://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualNameX-tr0XPyDateTime_TIME_GET_MINUTEr0(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MINUTEX-tr0XPyUnicode_DecodeUTF8Statefulr0(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8StatefulX-tr0XPySequence_Fast_GET_ITEMr0(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_Fast_GET_ITEMX-tr0X PyLong_Checkr0(jjX7http://docs.python.org/3/c-api/long.html#c.PyLong_CheckX-tr0XPyType_HasFeaturer0(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_HasFeatureX-tr0XPyDateTime_TIME_GET_HOURr0(jjXGhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_HOURX-tr0XPyEval_SetTracer0(jjX:http://docs.python.org/3/c-api/init.html#c.PyEval_SetTraceX-tr0XPyUnicode_DecodeLocaler0(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleX-tr0XPyFloat_ClearFreeListr0(jjXAhttp://docs.python.org/3/c-api/float.html#c.PyFloat_ClearFreeListX-tr0XPySlice_GetIndicesr0(jjX>http://docs.python.org/3/c-api/slice.html#c.PySlice_GetIndicesX-tr0XPyTuple_GetItemr0(jjX;http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GetItemX-tr0X PyGen_Checkr0(jjX5http://docs.python.org/3/c-api/gen.html#c.PyGen_CheckX-tr0XPy_FdIsInteractiver0(jjX<http://docs.python.org/3/c-api/sys.html#c.Py_FdIsInteractiveX-tr0XPyUnicodeDecodeError_SetStartr0(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_SetStartX-tr0X$PyErr_SetFromErrnoWithFilenameObjectr0(jjXUhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectX-tr0XPyLong_FromSize_tr0(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_FromSize_tX-tr0XPyErr_ExceptionMatchesr0(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_ExceptionMatchesX-tr0XPySys_ResetWarnOptionsr0(jjX@http://docs.python.org/3/c-api/sys.html#c.PySys_ResetWarnOptionsX-tr0XPyDict_MergeFromSeq2r0(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_MergeFromSeq2X-tr0XPyStructSequence_GET_ITEMr0(jjXEhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GET_ITEMX-tr0XPyUnicodeEncodeError_SetReasonr0(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_SetReasonX-tr0XPyUnicode_AsCharmapStringr0(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsCharmapStringX-tr0XPyType_FromSpecWithBasesr0(jjXChttp://docs.python.org/3/c-api/type.html#c.PyType_FromSpecWithBasesX-tr0XPyUnicode_AsUTF8Stringr0(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF8StringX-tr0XPyRun_InteractiveLoopFlagsr0(jjXIhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveLoopFlagsX-tr0X PyList_Newr0(jjX5http://docs.python.org/3/c-api/list.html#c.PyList_NewX-tr0XPyErr_Occurredr0(jjX?http://docs.python.org/3/c-api/exceptions.html#c.PyErr_OccurredX-tr0XPyType_IsSubtyper0(jjX;http://docs.python.org/3/c-api/type.html#c.PyType_IsSubtypeX-tr0XPyRun_AnyFileExFlagsr0(jjXChttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlagsX-tr0XPySys_WriteStderrr0(jjX;http://docs.python.org/3/c-api/sys.html#c.PySys_WriteStderrX-tr0XPyMapping_SetItemStringr0(jjXEhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemStringX-tr0X PyCell_Newr0(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_NewX-tr0XPyBytes_AsStringAndSizer0(jjXChttp://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSizeX-tr0X PyCode_Checkr0(jjX7http://docs.python.org/3/c-api/code.html#c.PyCode_CheckX-tr0XPyUnicode_DecodeMBCSr0(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSX-tr0X PyDict_Updater0(jjX8http://docs.python.org/3/c-api/dict.html#c.PyDict_UpdateX-tr0X PyDict_Checkr0(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_CheckX-tr0XPyList_CheckExactr0(jjX<http://docs.python.org/3/c-api/list.html#c.PyList_CheckExactX-tr0X PyCell_Getr0(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_GetX-tr0XPyByteArray_Resizer0(jjXBhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_ResizeX-tr0XPyErr_SetFromErrnoWithFilenamer0(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameX-tr0X PyOS_snprintfr0(jjX>http://docs.python.org/3/c-api/conversion.html#c.PyOS_snprintfX-tr0XPyUnicode_ClearFreeListr0(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ClearFreeListX-tr0X PyUnicode_DecodeFSDefaultAndSizer0(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSizeX-tr0X PyErr_SetNoner0(jjX>http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetNoneX-tr0XPy_Exitr0(jjX1http://docs.python.org/3/c-api/sys.html#c.Py_ExitX-tr0XPyCodec_IncrementalEncoderr0(jjXFhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_IncrementalEncoderX-tr0XPySequence_DelItemr0(jjXAhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_DelItemX-tr0XPyCodec_Encoder0(jjX:http://docs.python.org/3/c-api/codec.html#c.PyCodec_EncodeX-tr0XPyUnicode_FromObjectr0(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromObjectX-tr0XPyNumber_ToBaser0(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_ToBaseX-tr1XPyModule_AddIntMacror1(jjXAhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddIntMacroX-tr1XPyDateTime_FromDateAndTimer1(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeX-tr1XPyDict_CheckExactr1(jjX<http://docs.python.org/3/c-api/dict.html#c.PyDict_CheckExactX-tr1XPyParser_SimpleParseFileFlagsr1(jjXLhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseFileFlagsX-tr1XPyFloat_FromDoubler 1(jjX>http://docs.python.org/3/c-api/float.html#c.PyFloat_FromDoubleX-tr 1XPyDict_DelItemr 1(jjX9http://docs.python.org/3/c-api/dict.html#c.PyDict_DelItemX-tr 1XPyAnySet_Checkr 1(jjX8http://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckX-tr1XPy_UNICODE_TOUPPERr1(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOUPPERX-tr1XPyUnicodeDecodeError_GetReasonr1(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetReasonX-tr1X PyMethod_Newr1(jjX9http://docs.python.org/3/c-api/method.html#c.PyMethod_NewX-tr1XPyCapsule_SetContextr1(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetContextX-tr1X _Py_c_sumr1(jjX7http://docs.python.org/3/c-api/complex.html#c._Py_c_sumX-tr1XPyMapping_Itemsr1(jjX=http://docs.python.org/3/c-api/mapping.html#c.PyMapping_ItemsX-tr1X _Py_c_negr1(jjX7http://docs.python.org/3/c-api/complex.html#c._Py_c_negX-tr1XPyUnicode_AsUnicodeEscapeStringr1(jjXMhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeEscapeStringX-tr1XPyObject_NewVarr1(jjX@http://docs.python.org/3/c-api/allocation.html#c.PyObject_NewVarX-tr 1XPyUnicode_FromStringr!1(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringX-tr"1XPyInstanceMethod_Functionr#1(jjXFhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_FunctionX-tr$1XPyImport_GetMagicNumberr%1(jjXDhttp://docs.python.org/3/c-api/import.html#c.PyImport_GetMagicNumberX-tr&1XPyNumber_InPlaceAddr'1(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceAddX-tr(1XPyCodec_IncrementalDecoderr)1(jjXFhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_IncrementalDecoderX-tr*1XPyWeakref_GET_OBJECTr+1(jjXBhttp://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GET_OBJECTX-tr,1XPyRun_InteractiveOner-1(jjXChttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveOneX-tr.1XPyCodec_RegisterErrorr/1(jjXAhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_RegisterErrorX-tr01XPyMarshal_WriteLongToFiler11(jjXGhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFileX-tr21XPyType_GetFlagsr31(jjX:http://docs.python.org/3/c-api/type.html#c.PyType_GetFlagsX-tr41XPyFunction_Newr51(jjX=http://docs.python.org/3/c-api/function.html#c.PyFunction_NewX-tr61XPyList_SET_ITEMr71(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEMX-tr81X PyMem_Resizer91(jjX9http://docs.python.org/3/c-api/memory.html#c.PyMem_ResizeX-tr:1XPyUnicode_AsUnicodeAndSizer;1(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeAndSizeX-tr<1XPyObject_RichCompareBoolr=1(jjXEhttp://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBoolX-tr>1XPyDescr_NewMethodr?1(jjXBhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewMethodX-tr@1XPyDict_GetItemWithErrorrA1(jjXBhttp://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemWithErrorX-trB1XPyInterpreterState_HeadrC1(jjXBhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_HeadX-trD1XPyParser_SimpleParseFilerE1(jjXGhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseFileX-trF1XPyUnicodeEncodeError_GetReasonrG1(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetReasonX-trH1XPyLong_AsSize_trI1(jjX:http://docs.python.org/3/c-api/long.html#c.PyLong_AsSize_tX-trJ1XPyComplex_FromDoublesrK1(jjXChttp://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoublesX-trL1XPyFunction_GetDefaultsrM1(jjXEhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetDefaultsX-trN1XPyImport_CleanuprO1(jjX=http://docs.python.org/3/c-api/import.html#c.PyImport_CleanupX-trP1XPyEval_GetFramerQ1(jjX@http://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFrameX-trR1XPyMem_SetupDebugHooksrS1(jjXBhttp://docs.python.org/3/c-api/memory.html#c.PyMem_SetupDebugHooksX-trT1X PyTuple_NewrU1(jjX7http://docs.python.org/3/c-api/tuple.html#c.PyTuple_NewX-trV1XPyInterpreterState_NextrW1(jjXBhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_NextX-trX1XPyGen_CheckExactrY1(jjX:http://docs.python.org/3/c-api/gen.html#c.PyGen_CheckExactX-trZ1XPyType_GenericGetDictr[1(jjXBhttp://docs.python.org/3/c-api/object.html#c.PyType_GenericGetDictX-tr\1XPyUnicode_RichComparer]1(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichCompareX-tr^1XPyObject_GC_NewVarr_1(jjXBhttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_NewVarX-tr`1XPyModule_NewObjectra1(jjX?http://docs.python.org/3/c-api/module.html#c.PyModule_NewObjectX-trb1XPyBuffer_IsContiguousrc1(jjXBhttp://docs.python.org/3/c-api/buffer.html#c.PyBuffer_IsContiguousX-trd1XPyCapsule_GetContextre1(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetContextX-trf1XPyFunction_GetGlobalsrg1(jjXDhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetGlobalsX-trh1X PyIter_Checkri1(jjX7http://docs.python.org/3/c-api/iter.html#c.PyIter_CheckX-trj1XPyFunction_SetClosurerk1(jjXDhttp://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosureX-trl1XPyObject_IsTruerm1(jjX<http://docs.python.org/3/c-api/object.html#c.PyObject_IsTrueX-trn1XPyNumber_InPlaceSubtractro1(jjXEhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceSubtractX-trp1X Py_ReprEnterrq1(jjX=http://docs.python.org/3/c-api/exceptions.html#c.Py_ReprEnterX-trr1X PyObject_Dirrs1(jjX9http://docs.python.org/3/c-api/object.html#c.PyObject_DirX-trt1XPySequence_Fastru1(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_FastX-trv1XPy_NewInterpreterrw1(jjX<http://docs.python.org/3/c-api/init.html#c.Py_NewInterpreterX-trx1XPySequence_SetItemry1(jjXAhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_SetItemX-trz1XPyUnicodeEncodeError_Creater{1(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_CreateX-tr|1XPySequence_Indexr}1(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_IndexX-tr~1XPyObject_GetItemr1(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_GetItemX-tr1XPyLong_AsVoidPtrr1(jjX;http://docs.python.org/3/c-api/long.html#c.PyLong_AsVoidPtrX-tr1XPyUnicode_GET_SIZEr1(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_SIZEX-tr1XPyEval_GetFuncDescr1(jjXChttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncDescX-tr1X PyNumber_Andr1(jjX9http://docs.python.org/3/c-api/number.html#c.PyNumber_AndX-tr1X PyObject_Callr1(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_CallX-tr1XPyObject_GetIterr1(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_GetIterX-tr1XPyDateTime_DATE_GET_SECONDr1(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_SECONDX-tr1XPyGILState_GetThisThreadStater1(jjXHhttp://docs.python.org/3/c-api/init.html#c.PyGILState_GetThisThreadStateX-tr1XPyEval_EvalCoder1(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeX-tr1XPyEval_EvalCodeExr1(jjX@http://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExX-tr1XPyObject_RichComparer1(jjXAhttp://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareX-tr1XPyBytes_ConcatAndDelr1(jjX@http://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDelX-tr1XPyDict_GetItemr1(jjX9http://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemX-tr1XPyMemoryView_FromObjectr1(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromObjectX-tr1XPyMapping_GetItemStringr1(jjXEhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemStringX-tr1XPyInterpreterState_Clearr1(jjXChttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_ClearX-tr1XPyObject_GetArenaAllocatorr1(jjXGhttp://docs.python.org/3/c-api/memory.html#c.PyObject_GetArenaAllocatorX-tr1XPyUnicode_CheckExactr1(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckExactX-tr1XPyUnicode_2BYTE_DATAr1(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_2BYTE_DATAX-tr1XPyUnicode_FromUnicoder1(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromUnicodeX-tr1XPyUnicode_DecodeUTF32Statefulr1(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32StatefulX-tr1XPyUnicode_Checkr1(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckX-tr1XPyTime_FromTimer1(jjX>http://docs.python.org/3/c-api/datetime.html#c.PyTime_FromTimeX-tr1X PyList_Sortr1(jjX6http://docs.python.org/3/c-api/list.html#c.PyList_SortX-tr1XPySequence_InPlaceConcatr1(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_InPlaceConcatX-tr1XPyDescr_NewGetSetr1(jjXBhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewGetSetX-tr1XPyArg_UnpackTupler1(jjX;http://docs.python.org/3/c-api/arg.html#c.PyArg_UnpackTupleX-tr1X PySet_Discardr1(jjX7http://docs.python.org/3/c-api/set.html#c.PySet_DiscardX-tr1X!PyUnicodeTranslateError_GetObjectr1(jjXRhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetObjectX-tr1XPyTuple_SetItemr1(jjX;http://docs.python.org/3/c-api/tuple.html#c.PyTuple_SetItemX-tr1XPyLong_FromVoidPtrr1(jjX=http://docs.python.org/3/c-api/long.html#c.PyLong_FromVoidPtrX-tr1XPyObject_CheckBufferr1(jjXAhttp://docs.python.org/3/c-api/buffer.html#c.PyObject_CheckBufferX-tr1XPyEval_SetProfiler1(jjX<http://docs.python.org/3/c-api/init.html#c.PyEval_SetProfileX-tr1XPyUnicodeDecodeError_SetReasonr1(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_SetReasonX-tr1XPyNumber_InPlaceRemainderr1(jjXFhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceRemainderX-tr1XPyNumber_Subtractr1(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_SubtractX-tr1XPyImport_GetMagicTagr1(jjXAhttp://docs.python.org/3/c-api/import.html#c.PyImport_GetMagicTagX-tr1XPyErr_WarnExplicitr1(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitX-tr1XPyRun_InteractiveOneFlagsr1(jjXHhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveOneFlagsX-tr1XPyLong_AsDoubler1(jjX:http://docs.python.org/3/c-api/long.html#c.PyLong_AsDoubleX-tr1X_PyObject_GC_UNTRACKr1(jjXDhttp://docs.python.org/3/c-api/gcsupport.html#c._PyObject_GC_UNTRACKX-tr1X Py_XINCREFr1(jjX<http://docs.python.org/3/c-api/refcounting.html#c.Py_XINCREFX-tr1XPyModule_Creater1(jjX<http://docs.python.org/3/c-api/module.html#c.PyModule_CreateX-tr1X PyType_Readyr1(jjX7http://docs.python.org/3/c-api/type.html#c.PyType_ReadyX-tr1XPySys_SetArgvExr1(jjX:http://docs.python.org/3/c-api/init.html#c.PySys_SetArgvExX-tr1XPyUnicodeDecodeError_GetStartr1(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetStartX-tr1X _PyObject_Newr1(jjX>http://docs.python.org/3/c-api/allocation.html#c._PyObject_NewX-tr1XPyMem_GetAllocatorr1(jjX?http://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocatorX-tr1X PyList_Sizer1(jjX6http://docs.python.org/3/c-api/list.html#c.PyList_SizeX-tr1X PyIter_Nextr1(jjX6http://docs.python.org/3/c-api/iter.html#c.PyIter_NextX-tr1XPy_GetExecPrefixr1(jjX;http://docs.python.org/3/c-api/init.html#c.Py_GetExecPrefixX-tr1XPyEval_ThreadsInitializedr1(jjXDhttp://docs.python.org/3/c-api/init.html#c.PyEval_ThreadsInitializedX-tr1XPyImport_GetModuleDictr1(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_GetModuleDictX-tr1XPyLong_FromUnsignedLongr1(jjXBhttp://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongX-tr1XPyCodec_BackslashReplaceErrorsr1(jjXJhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_BackslashReplaceErrorsX-tr1XPy_UNICODE_ISNUMERICr1(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISNUMERICX-tr1XPyCodec_Encoderr1(jjX;http://docs.python.org/3/c-api/codec.html#c.PyCodec_EncoderX-tr1XPyCapsule_GetPointerr1(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetPointerX-tr1XPyType_GenericAllocr1(jjX>http://docs.python.org/3/c-api/type.html#c.PyType_GenericAllocX-tr1XPyTime_CheckExactr1(jjX@http://docs.python.org/3/c-api/datetime.html#c.PyTime_CheckExactX-tr1XPySequence_Concatr1(jjX@http://docs.python.org/3/c-api/sequence.html#c.PySequence_ConcatX-tr1XPyNumber_InPlaceFloorDivider1(jjXHhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceFloorDivideX-tr1XPyCodec_XMLCharRefReplaceErrorsr1(jjXKhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_XMLCharRefReplaceErrorsX-tr1XPyType_FromSpecr1(jjX:http://docs.python.org/3/c-api/type.html#c.PyType_FromSpecX-tr2XPyUnicode_AsWideCharr2(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsWideCharX-tr2XPyImport_ImportModuleLevelr2(jjXGhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelX-tr2XPyStructSequence_GetItemr2(jjXDhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GetItemX-tr2XPyFrozenSet_Checkr2(jjX;http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_CheckX-tr2XPyImport_ImportModuleNoBlockr 2(jjXIhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleNoBlockX-tr 2XPyUnicode_FSDecoderr 2(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoderX-tr 2XPyUnicodeTranslateError_SetEndr 2(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_SetEndX-tr2XPyWeakref_Checkr2(jjX=http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckX-tr2XPyDate_FromDater2(jjX>http://docs.python.org/3/c-api/datetime.html#c.PyDate_FromDateX-tr2X PyDict_Newr2(jjX5http://docs.python.org/3/c-api/dict.html#c.PyDict_NewX-tr2XPyObject_GetAttrr2(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrX-tr2XPyCodec_StreamReaderr2(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_StreamReaderX-tr2XPyMemoryView_GET_BASEr2(jjXFhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BASEX-tr2XPyList_SetSlicer2(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_SetSliceX-tr2XPyObject_IsSubclassr2(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclassX-tr2XPyLong_AsUnsignedLongLongMaskr2(jjXHhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongLongMaskX-tr 2XPyThreadState_Getr!2(jjX<http://docs.python.org/3/c-api/init.html#c.PyThreadState_GetX-tr"2XPyUnicode_TranslateCharmapr#2(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TranslateCharmapX-tr$2XPyObject_CallFunctionObjArgsr%2(jjXIhttp://docs.python.org/3/c-api/object.html#c.PyObject_CallFunctionObjArgsX-tr&2XPySys_GetXOptionsr'2(jjX;http://docs.python.org/3/c-api/sys.html#c.PySys_GetXOptionsX-tr(2XPyImport_AddModuler)2(jjX?http://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleX-tr*2XPy_UNICODE_ISUPPERr+2(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISUPPERX-tr,2XPyUnicodeEncodeError_GetObjectr-2(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetObjectX-tr.2XPyCodec_StreamWriterr/2(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_StreamWriterX-tr02XPyException_SetCauser12(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCauseX-tr22X PyMem_RawFreer32(jjX:http://docs.python.org/3/c-api/memory.html#c.PyMem_RawFreeX-tr42XPyUnicode_EncodeMBCSr52(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeMBCSX-tr62XPyModule_AddStringConstantr72(jjXGhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddStringConstantX-tr82X PyArg_Parser92(jjX5http://docs.python.org/3/c-api/arg.html#c.PyArg_ParseX-tr:2XPyObject_GC_Newr;2(jjX?http://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_NewX-tr<2XPy_IsInitializedr=2(jjX;http://docs.python.org/3/c-api/init.html#c.Py_IsInitializedX-tr>2X,PyErr_SetExcFromWindowsErrWithFilenameObjectr?2(jjX]http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectX-tr@2XPyWeakref_CheckRefrA2(jjX@http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRefX-trB2XPyInterpreterState_ThreadHeadrC2(jjXHhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_ThreadHeadX-trD2XPySys_FormatStderrrE2(jjX<http://docs.python.org/3/c-api/sys.html#c.PySys_FormatStderrX-trF2X'PyParser_SimpleParseStringFlagsFilenamerG2(jjXVhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseStringFlagsFilenameX-trH2XPyCodec_LookupErrorrI2(jjX?http://docs.python.org/3/c-api/codec.html#c.PyCodec_LookupErrorX-trJ2XPyTZInfo_CheckrK2(jjX=http://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckX-trL2XPyMapping_DelItemStringrM2(jjXEhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemStringX-trN2XPyRun_SimpleFileExFlagsrO2(jjXFhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleFileExFlagsX-trP2XPyFloat_FromStringrQ2(jjX>http://docs.python.org/3/c-api/float.html#c.PyFloat_FromStringX-trR2XPyType_ClearCacherS2(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_ClearCacheX-trT2XPyBytes_FromStringAndSizerU2(jjXEhttp://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSizeX-trV2X PyDict_SizerW2(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_SizeX-trX2XPyCapsule_GetNamerY2(jjX?http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetNameX-trZ2X PyTuple_Packr[2(jjX8http://docs.python.org/3/c-api/tuple.html#c.PyTuple_PackX-tr\2XPyLong_FromUnicoder]2(jjX=http://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeX-tr^2XPy_UNICODE_TONUMERICr_2(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TONUMERICX-tr`2XPySequence_Repeatra2(jjX@http://docs.python.org/3/c-api/sequence.html#c.PySequence_RepeatX-trb2XPyFrame_GetLineNumberrc2(jjXFhttp://docs.python.org/3/c-api/reflection.html#c.PyFrame_GetLineNumberX-trd2XPySequence_Fast_GET_SIZEre2(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_Fast_GET_SIZEX-trf2XPyUnicode_DecodeUTF32rg2(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32X-trh2XPyEval_EvalFrameri2(jjX?http://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameX-trj2X PyUnicodeTranslateError_SetStartrk2(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_SetStartX-trl2XPyByteArray_CheckExactrm2(jjXFhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckExactX-trn2XPyException_GetContextro2(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_GetContextX-trp2XPyImport_ReloadModulerq2(jjXBhttp://docs.python.org/3/c-api/import.html#c.PyImport_ReloadModuleX-trr2XPyFunction_GetCoders2(jjXAhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetCodeX-trt2X PyDict_Copyru2(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_CopyX-trv2XPyDict_GetItemStringrw2(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemStringX-trx2XPyLong_FromLongry2(jjX:http://docs.python.org/3/c-api/long.html#c.PyLong_FromLongX-trz2XPyMethod_Functionr{2(jjX>http://docs.python.org/3/c-api/method.html#c.PyMethod_FunctionX-tr|2XPyErr_BadInternalCallr}2(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_BadInternalCallX-tr~2X PySlice_Checkr2(jjX9http://docs.python.org/3/c-api/slice.html#c.PySlice_CheckX-tr2X PyErr_Restorer2(jjX>http://docs.python.org/3/c-api/exceptions.html#c.PyErr_RestoreX-tr2XPyErr_SetExcFromWindowsErrr2(jjXKhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrX-tr2XPyUnicode_DecodeUTF7Statefulr2(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7StatefulX-tr2XPy_UNICODE_ISTITLEr2(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISTITLEX-tr2XPyType_GetSlotr2(jjX9http://docs.python.org/3/c-api/type.html#c.PyType_GetSlotX-tr2X PyGen_Newr2(jjX3http://docs.python.org/3/c-api/gen.html#c.PyGen_NewX-tr2X PyFile_FromFdr2(jjX8http://docs.python.org/3/c-api/file.html#c.PyFile_FromFdX-tr2X PyMem_Newr2(jjX6http://docs.python.org/3/c-api/memory.html#c.PyMem_NewX-tr2XPyUnicodeEncodeError_GetStartr2(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetStartX-tr2XPyTuple_SET_ITEMr2(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_SET_ITEMX-tr2XPyNumber_Floatr2(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_FloatX-tr2XPyNumber_Invertr2(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_InvertX-tr2XPy_UNICODE_TODECIMALr2(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODECIMALX-tr2X PyBytes_Sizer2(jjX8http://docs.python.org/3/c-api/bytes.html#c.PyBytes_SizeX-tr2XPyObject_GC_Delr2(jjX?http://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_DelX-tr2XPyBytes_AS_STRINGr2(jjX=http://docs.python.org/3/c-api/bytes.html#c.PyBytes_AS_STRINGX-tr2XPySequence_GetItemr2(jjXAhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_GetItemX-tr2XPyImport_ImportModuleExr2(jjXDhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleExX-tr2XPyUnicode_Comparer2(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareX-tr2XPySet_ClearFreeListr2(jjX=http://docs.python.org/3/c-api/set.html#c.PySet_ClearFreeListX-tr2XPySys_AddWarnOptionUnicoder2(jjXDhttp://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionUnicodeX-tr2X PyNumber_Xorr2(jjX9http://docs.python.org/3/c-api/number.html#c.PyNumber_XorX-tr2XPyUnicodeTranslateError_GetEndr2(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetEndX-tr2XPy_CompileStringObjectr2(jjXEhttp://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObjectX-tr2XPyList_Reverser2(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_ReverseX-tr2XPyInstanceMethod_GET_FUNCTIONr2(jjXJhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_GET_FUNCTIONX-tr2XPyDateTime_DELTA_GET_DAYSr2(jjXHhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_DAYSX-tr2XPyUnicode_Translater2(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TranslateX-tr2XPyNumber_InPlaceTrueDivider2(jjXGhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceTrueDivideX-tr2XPyUnicodeEncodeError_SetStartr2(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_SetStartX-tr2XPyUnicode_GET_DATA_SIZEr2(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_DATA_SIZEX-tr2XPyEval_RestoreThreadr2(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_RestoreThreadX-tr2X PyDelta_Checkr2(jjX<http://docs.python.org/3/c-api/datetime.html#c.PyDelta_CheckX-tr2XPyErr_BadArgumentr2(jjXBhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_BadArgumentX-tr2X PyRun_Filer2(jjX9http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileX-tr2X&PyErr_SetExcFromWindowsErrWithFilenamer2(jjXWhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameX-tr2X PyDict_Keysr2(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_KeysX-tr2XPy_Mainr2(jjX6http://docs.python.org/3/c-api/veryhigh.html#c.Py_MainX-tr2XPyUnicode_DecodeLocaleAndSizer2(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSizeX-tr2XPyLong_FromUnicodeObjectr2(jjXChttp://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObjectX-tr2X PyDict_Valuesr2(jjX8http://docs.python.org/3/c-api/dict.html#c.PyDict_ValuesX-tr2XPyException_SetContextr2(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContextX-tr2X PySet_Checkr2(jjX5http://docs.python.org/3/c-api/set.html#c.PySet_CheckX-tr2X _Py_c_quotr2(jjX8http://docs.python.org/3/c-api/complex.html#c._Py_c_quotX-tr2XPyObject_TypeCheckr2(jjX?http://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheckX-tr2X PySeqIter_Newr2(jjX<http://docs.python.org/3/c-api/iterator.html#c.PySeqIter_NewX-tr2XPyEval_SaveThreadr2(jjX<http://docs.python.org/3/c-api/init.html#c.PyEval_SaveThreadX-tr2XPyBool_FromLongr2(jjX:http://docs.python.org/3/c-api/bool.html#c.PyBool_FromLongX-tr2XPyErr_SetInterruptr2(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterruptX-tr2XPyModule_GetFilenameObjectr2(jjXGhttp://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameObjectX-tr2XPyEval_GetFuncNamer2(jjXChttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncNameX-tr2XPy_UCS4_strcatr2(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strcatX-tr2X Py_GetPrefixr2(jjX7http://docs.python.org/3/c-api/init.html#c.Py_GetPrefixX-tr2XPy_UNICODE_TOLOWERr2(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOLOWERX-tr2XPy_GetBuildInfor2(jjX:http://docs.python.org/3/c-api/init.html#c.Py_GetBuildInfoX-tr2XPyDateTime_Checkr2(jjX?http://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckX-tr2XPyDict_Containsr2(jjX:http://docs.python.org/3/c-api/dict.html#c.PyDict_ContainsX-tr2XPyByteArray_Sizer2(jjX@http://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_SizeX-tr2XPyComplex_AsCComplexr2(jjXBhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_AsCComplexX-tr2X PyTime_Checkr2(jjX;http://docs.python.org/3/c-api/datetime.html#c.PyTime_CheckX-tr2XPyFrozenSet_Newr2(jjX9http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_NewX-tr2XPyMarshal_ReadLongFromFiler2(jjXHhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLongFromFileX-tr2XPyMethod_Checkr2(jjX;http://docs.python.org/3/c-api/method.html#c.PyMethod_CheckX-tr2XPyUnicode_EncodeUTF32r2(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF32X-tr3XPyObject_GC_Trackr3(jjXAhttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_TrackX-tr3XPyDateTime_DELTA_GET_SECONDSr3(jjXKhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_SECONDSX-tr3XPyRun_StringFlagsr3(jjX@http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_StringFlagsX-tr3XPyEval_AcquireLockr3(jjX=http://docs.python.org/3/c-api/init.html#c.PyEval_AcquireLockX-tr3X PySys_SetArgvr 3(jjX8http://docs.python.org/3/c-api/init.html#c.PySys_SetArgvX-tr 3XPyGILState_Checkr 3(jjX;http://docs.python.org/3/c-api/init.html#c.PyGILState_CheckX-tr 3X PyDate_Checkr 3(jjX;http://docs.python.org/3/c-api/datetime.html#c.PyDate_CheckX-tr3XPyMarshal_ReadObjectFromStringr3(jjXLhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromStringX-tr3XPyException_GetCauser3(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_GetCauseX-tr3XPyInstanceMethod_Newr3(jjXAhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_NewX-tr3X PyMem_Delr3(jjX6http://docs.python.org/3/c-api/memory.html#c.PyMem_DelX-tr3XPyUnicode_Fillr3(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FillX-tr3XPyCallable_Checkr3(jjX=http://docs.python.org/3/c-api/object.html#c.PyCallable_CheckX-tr3X Py_GetVersionr3(jjX8http://docs.python.org/3/c-api/init.html#c.Py_GetVersionX-tr3XPyErr_GetExcInfor3(jjXAhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfoX-tr3XPyObject_GetBufferr3(jjX?http://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBufferX-tr 3XPyDateTime_GET_YEARr!3(jjXBhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_YEARX-tr"3XPyList_GetItemr#3(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_GetItemX-tr$3XPyBytes_AsStringr%3(jjX<http://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringX-tr&3X PyObject_Sizer'3(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_SizeX-tr(3XPySequence_Listr)3(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_ListX-tr*3XPyObject_Printr+3(jjX;http://docs.python.org/3/c-api/object.html#c.PyObject_PrintX-tr,3XPyCapsule_IsValidr-3(jjX?http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_IsValidX-tr.3XPy_SetPythonHomer/3(jjX;http://docs.python.org/3/c-api/init.html#c.Py_SetPythonHomeX-tr03XPyUnicode_1BYTE_DATAr13(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_1BYTE_DATAX-tr23XPy_UCS4_strchrr33(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strchrX-tr43XPyUnicode_Countr53(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CountX-tr63XPyRun_SimpleFileExr73(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleFileExX-tr83XPyOS_CheckStackr93(jjX9http://docs.python.org/3/c-api/sys.html#c.PyOS_CheckStackX-tr:3XPyErr_SetExcInfor;3(jjXAhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfoX-tr<3XPyRun_AnyFileExr=3(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExX-tr>3XPyDescr_NewClassMethodr?3(jjXGhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewClassMethodX-tr@3XPyEval_GetLocalsrA3(jjXAhttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetLocalsX-trB3XPyLong_AsLongLongAndOverflowrC3(jjXGhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongAndOverflowX-trD3XPyDict_SetItemStringrE3(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_SetItemStringX-trF3XPyMapping_HasKeyStringrG3(jjXDhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringX-trH3XPyTuple_GET_SIZErI3(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_SIZEX-trJ3XPyUnicode_AS_UNICODErK3(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AS_UNICODEX-trL3XPyObject_ASCIIrM3(jjX;http://docs.python.org/3/c-api/object.html#c.PyObject_ASCIIX-trN3XPyComplex_RealAsDoublerO3(jjXDhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_RealAsDoubleX-trP3XPyEval_GetGlobalsrQ3(jjXBhttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetGlobalsX-trR3XPyCodec_ReplaceErrorsrS3(jjXAhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_ReplaceErrorsX-trT3XPyErr_SyntaxLocationExrU3(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationExX-trV3XPyLong_AsLongAndOverflowrW3(jjXChttp://docs.python.org/3/c-api/long.html#c.PyLong_AsLongAndOverflowX-trX3XPy_UNICODE_ISALNUMrY3(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALNUMX-trZ3XPyNumber_Multiplyr[3(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_MultiplyX-tr\3X PyType_IS_GCr]3(jjX7http://docs.python.org/3/c-api/type.html#c.PyType_IS_GCX-tr^3XPyThreadState_Deleter_3(jjX?http://docs.python.org/3/c-api/init.html#c.PyThreadState_DeleteX-tr`3XPyErr_WarnExplicitObjectra3(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectX-trb3X PyErr_Clearrc3(jjX<http://docs.python.org/3/c-api/exceptions.html#c.PyErr_ClearX-trd3XPyLong_FromStringre3(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_FromStringX-trf3XPyMapping_Keysrg3(jjX<http://docs.python.org/3/c-api/mapping.html#c.PyMapping_KeysX-trh3XPyObject_SetArenaAllocatorri3(jjXGhttp://docs.python.org/3/c-api/memory.html#c.PyObject_SetArenaAllocatorX-trj3XPySys_WriteStdoutrk3(jjX;http://docs.python.org/3/c-api/sys.html#c.PySys_WriteStdoutX-trl3XPyImport_AddModuleObjectrm3(jjXEhttp://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleObjectX-trn3X#PyErr_SetFromWindowsErrWithFilenamero3(jjXThttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilenameX-trp3XPyMapping_HasKeyrq3(jjX>http://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyX-trr3XPy_InitializeExrs3(jjX:http://docs.python.org/3/c-api/init.html#c.Py_InitializeExX-trt3XPyCode_GetNumFreeru3(jjX<http://docs.python.org/3/c-api/code.html#c.PyCode_GetNumFreeX-trv3XPyMem_SetAllocatorrw3(jjX?http://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocatorX-trx3X _Py_c_powry3(jjX7http://docs.python.org/3/c-api/complex.html#c._Py_c_powX-trz3XPyBytes_FromStringr{3(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringX-tr|3XPyState_RemoveModuler}3(jjXAhttp://docs.python.org/3/c-api/module.html#c.PyState_RemoveModuleX-tr~3XPyUnicode_DecodeMBCSStatefulr3(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStatefulX-tr3XPyObject_SetAttrStringr3(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrStringX-tr3XPyUnicodeDecodeError_GetObjectr3(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetObjectX-tr3XPyStructSequence_InitTyper3(jjXEhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitTypeX-tr3XPyErr_NormalizeExceptionr3(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeExceptionX-tr3XPyDateTime_CheckExactr3(jjXDhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckExactX-tr3XPyUnicode_AsEncodedStringr3(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsEncodedStringX-tr3XPyFunction_SetDefaultsr3(jjXEhttp://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaultsX-tr3XPyMethod_GET_SELFr3(jjX>http://docs.python.org/3/c-api/method.html#c.PyMethod_GET_SELFX-tr3X PyNumber_Longr3(jjX:http://docs.python.org/3/c-api/number.html#c.PyNumber_LongX-tr3XPyNumber_InPlaceXorr3(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceXorX-tr3XPyErr_WriteUnraisabler3(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WriteUnraisableX-tr3XPyFunction_GetModuler3(jjXChttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetModuleX-tr3XPyOS_double_to_stringr3(jjXFhttp://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_stringX-tr3XPyStructSequence_SetItemr3(jjXDhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SetItemX-tr3X PySet_Newr3(jjX3http://docs.python.org/3/c-api/set.html#c.PySet_NewX-tr3XPyCallIter_Newr3(jjX=http://docs.python.org/3/c-api/iterator.html#c.PyCallIter_NewX-tr3XPyComplex_CheckExactr3(jjXBhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckExactX-tr3XPy_LeaveRecursiveCallr3(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.Py_LeaveRecursiveCallX-tr3XPyErr_SetFromErrnor3(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoX-tr3XPyArg_ParseTupleAndKeywordsr3(jjXEhttp://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywordsX-tr3X PyDict_Nextr3(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_NextX-tr3XPyNumber_TrueDivider3(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_TrueDivideX-tr3XPyCapsule_SetNamer3(jjX?http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetNameX-tr3XPyLong_FromUnsignedLongLongr3(jjXFhttp://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongLongX-tr3XPyArg_VaParseTupleAndKeywordsr3(jjXGhttp://docs.python.org/3/c-api/arg.html#c.PyArg_VaParseTupleAndKeywordsX-tr3XPyCodec_Decoderr3(jjX;http://docs.python.org/3/c-api/codec.html#c.PyCodec_DecoderX-tr3XPy_UNICODE_ISALPHAr3(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALPHAX-tr3X PyList_Insertr3(jjX8http://docs.python.org/3/c-api/list.html#c.PyList_InsertX-tr3XPyCapsule_SetDestructorr3(jjXEhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetDestructorX-tr3XPyFloat_GetInfor3(jjX;http://docs.python.org/3/c-api/float.html#c.PyFloat_GetInfoX-tr3X PyUnicodeTranslateError_GetStartr3(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetStartX-tr3XPySignal_SetWakeupFdr3(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PySignal_SetWakeupFdX-tr3X PyOS_strnicmpr3(jjX>http://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmpX-tr3XPyFile_WriteObjectr3(jjX=http://docs.python.org/3/c-api/file.html#c.PyFile_WriteObjectX-tr3XPyErr_NewExceptionWithDocr3(jjXJhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDocX-tr3XPyRun_AnyFileFlagsr3(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlagsX-tr3XPyObject_SetAttrr3(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrX-tr3XPyException_SetTracebackr3(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTracebackX-tr3XPyDateTime_GET_DAYr3(jjXAhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_DAYX-tr3XPyDateTime_DATE_GET_HOURr3(jjXGhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_HOURX-tr3X_PyTuple_Resizer3(jjX;http://docs.python.org/3/c-api/tuple.html#c._PyTuple_ResizeX-tr3XPyEval_ReleaseThreadr3(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_ReleaseThreadX-tr3XPyMarshal_ReadObjectFromFiler3(jjXJhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromFileX-tr3XPyUnicode_AsUnicodeCopyr3(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeCopyX-tr3XPyUnicode_MAX_CHAR_VALUEr3(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_MAX_CHAR_VALUEX-tr3XPyNumber_Absoluter3(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_AbsoluteX-tr3XPyArg_ParseTupler3(jjX:http://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleX-tr3XPyObject_IsInstancer3(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_IsInstanceX-tr3XPyFloat_AS_DOUBLEr3(jjX=http://docs.python.org/3/c-api/float.html#c.PyFloat_AS_DOUBLEX-tr3X PyArg_VaParser3(jjX7http://docs.python.org/3/c-api/arg.html#c.PyArg_VaParseX-tr3XPyAnySet_CheckExactr3(jjX=http://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckExactX-tr3XPy_UCS4_strcmpr3(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strcmpX-tr3X PyList_Checkr3(jjX7http://docs.python.org/3/c-api/list.html#c.PyList_CheckX-tr3XPyObject_GenericSetAttrr3(jjXDhttp://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttrX-tr3XPyMapping_Lengthr3(jjX>http://docs.python.org/3/c-api/mapping.html#c.PyMapping_LengthX-tr3XPyNumber_Remainderr3(jjX?http://docs.python.org/3/c-api/number.html#c.PyNumber_RemainderX-tr3XPySequence_Tupler3(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_TupleX-tr3XPyRun_FileExFlagsr3(jjX@http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileExFlagsX-tr3X Py_GetPathr3(jjX5http://docs.python.org/3/c-api/init.html#c.Py_GetPathX-tr3XPyOS_string_to_doubler3(jjXFhttp://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_doubleX-tr3XPyFloat_CheckExactr3(jjX>http://docs.python.org/3/c-api/float.html#c.PyFloat_CheckExactX-tr3XPyUnicode_Substringr3(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_SubstringX-tr3XPyMarshal_ReadShortFromFiler3(jjXIhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadShortFromFileX-tr3XPyNumber_Indexr3(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_IndexX-tr4XPySys_FormatStdoutr4(jjX<http://docs.python.org/3/c-api/sys.html#c.PySys_FormatStdoutX-tr4XPyUnicode_Decoder4(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeX-tr4XPyUnicode_EncodeASCIIr4(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeASCIIX-tr4XPyLong_AsSsize_tr4(jjX;http://docs.python.org/3/c-api/long.html#c.PyLong_AsSsize_tX-tr4XPyUnicode_AsLatin1Stringr 4(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsLatin1StringX-tr 4XPyUnicode_AsUTF8AndSizer 4(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF8AndSizeX-tr 4XPy_UNICODE_ISLINEBREAKr 4(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLINEBREAKX-tr4XPyMapping_Checkr4(jjX=http://docs.python.org/3/c-api/mapping.html#c.PyMapping_CheckX-tr4X Py_AtExitr4(jjX3http://docs.python.org/3/c-api/sys.html#c.Py_AtExitX-tr4XPyUnicode_Splitr4(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_SplitX-tr4XPyInstanceMethod_Checkr4(jjXChttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_CheckX-tr4XPyObject_CallFunctionr4(jjXBhttp://docs.python.org/3/c-api/object.html#c.PyObject_CallFunctionX-tr4XPyDescr_IsDatar4(jjX?http://docs.python.org/3/c-api/descriptor.html#c.PyDescr_IsDataX-tr4XPyType_GenericNewr4(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_GenericNewX-tr4X PyList_Appendr4(jjX8http://docs.python.org/3/c-api/list.html#c.PyList_AppendX-tr4X PySet_Addr4(jjX3http://docs.python.org/3/c-api/set.html#c.PySet_AddX-tr 4XPyRun_SimpleFiler!4(jjX?http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleFileX-tr"4XPyNumber_InPlaceMultiplyr#4(jjXEhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceMultiplyX-tr$4XPyNumber_Lshiftr%4(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_LshiftX-tr&4X PyObject_Newr'4(jjX=http://docs.python.org/3/c-api/allocation.html#c.PyObject_NewX-tr(4XPyType_CheckExactr)4(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_CheckExactX-tr*4XPyBytes_FromObjectr+4(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromObjectX-tr,4X PyCell_Setr-4(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_SetX-tr.4XPyEval_InitThreadsr/4(jjX=http://docs.python.org/3/c-api/init.html#c.PyEval_InitThreadsX-tr04X_PyImport_FindExtensionr14(jjXDhttp://docs.python.org/3/c-api/import.html#c._PyImport_FindExtensionX-tr24X PyUnicodeEncodeError_GetEncodingr34(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetEncodingX-tr44XPy_SetStandardStreamEncodingr54(jjXGhttp://docs.python.org/3/c-api/init.html#c.Py_SetStandardStreamEncodingX-tr64XPy_AddPendingCallr74(jjX<http://docs.python.org/3/c-api/init.html#c.Py_AddPendingCallX-tr84XPyUnicode_AsUTF8r94(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF8X-tr:4XPyWeakref_NewRefr;4(jjX>http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRefX-tr<4XPyImport_ExecCodeModuleExr=4(jjXFhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleExX-tr>4XPyList_GET_ITEMr?4(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_GET_ITEMX-tr@4XPyGILState_ReleaserA4(jjX=http://docs.python.org/3/c-api/init.html#c.PyGILState_ReleaseX-trB4X PyObject_ReprrC4(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_ReprX-trD4XPyUnicode_AsUCS4rE4(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUCS4X-trF4XPyDict_SetDefaultrG4(jjX<http://docs.python.org/3/c-api/dict.html#c.PyDict_SetDefaultX-trH4XPyComplex_ImagAsDoublerI4(jjXDhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_ImagAsDoubleX-trJ4XPyByteArray_FromObjectrK4(jjXFhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromObjectX-trL4XPyUnicode_DecodeFSDefaultrM4(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultX-trN4XPyErr_SetStringrO4(jjX@http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetStringX-trP4XPyMem_RawMallocrQ4(jjX<http://docs.python.org/3/c-api/memory.html#c.PyMem_RawMallocX-trR4XPyEval_EvalFrameExrS4(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameExX-trT4XPyUnicode_DecodeCharmaprU4(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmapX-trV4X _Py_c_diffrW4(jjX8http://docs.python.org/3/c-api/complex.html#c._Py_c_diffX-trX4XPyUnicode_GET_LENGTHrY4(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_LENGTHX-trZ4XPyDateTime_DATE_GET_MINUTEr[4(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MINUTEX-tr\4XPyModule_GetDefr]4(jjX<http://docs.python.org/3/c-api/module.html#c.PyModule_GetDefX-tr^4XPyLong_AsLongLongr_4(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongX-tr`4XPyRun_SimpleStringra4(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleStringX-trb4XPyErr_SyntaxLocationrc4(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationX-trd4XPyUnicode_FromKindAndDatare4(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndDataX-trf4XPyThreadState_SetAsyncExcrg4(jjXDhttp://docs.python.org/3/c-api/init.html#c.PyThreadState_SetAsyncExcX-trh4XPyImport_Importri4(jjX<http://docs.python.org/3/c-api/import.html#c.PyImport_ImportX-trj4X PySet_Sizerk4(jjX4http://docs.python.org/3/c-api/set.html#c.PySet_SizeX-trl4XPyRun_SimpleStringFlagsrm4(jjXFhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleStringFlagsX-trn4XPyUnicode_DecodeLatin1ro4(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1X-trp4XPyUnicodeDecodeError_SetEndrq4(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_SetEndX-trr4XPyCodec_StrictErrorsrs4(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_StrictErrorsX-trt4X Py_SetPathru4(jjX5http://docs.python.org/3/c-api/init.html#c.Py_SetPathX-trv4XPySeqIter_Checkrw4(jjX>http://docs.python.org/3/c-api/iterator.html#c.PySeqIter_CheckX-trx4XPyFloat_GetMaxry4(jjX:http://docs.python.org/3/c-api/float.html#c.PyFloat_GetMaxX-trz4XPyUnicode_FSConverterr{4(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverterX-tr|4XPyModule_AddObjectr}4(jjX?http://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectX-tr~4XPyUnicode_READr4(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READX-tr4XPyUnicode_Splitlinesr4(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_SplitlinesX-tr4X PyMethod_Selfr4(jjX:http://docs.python.org/3/c-api/method.html#c.PyMethod_SelfX-tr4XPyState_AddModuler4(jjX>http://docs.python.org/3/c-api/module.html#c.PyState_AddModuleX-tr4X PyMem_Reallocr4(jjX:http://docs.python.org/3/c-api/memory.html#c.PyMem_ReallocX-tr4XPySequence_Checkr4(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_CheckX-tr4XPyObject_InitVarr4(jjXAhttp://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVarX-tr4XPyUnicode_FromStringAndSizer4(jjXIhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSizeX-tr4XPyTuple_CheckExactr4(jjX>http://docs.python.org/3/c-api/tuple.html#c.PyTuple_CheckExactX-tr4X PyDict_Merger4(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_MergeX-tr4XPyEval_ReInitThreadsr4(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_ReInitThreadsX-tr4XPyBuffer_SizeFromFormatr4(jjXDhttp://docs.python.org/3/c-api/buffer.html#c.PyBuffer_SizeFromFormatX-tr4XPyUnicode_EncodeUTF16r4(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF16X-tr4XPyObject_SetItemr4(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_SetItemX-tr4X PyFloat_Checkr4(jjX9http://docs.python.org/3/c-api/float.html#c.PyFloat_CheckX-tr4XPyObject_HasAttrStringr4(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringX-tr4X PyType_Checkr4(jjX7http://docs.python.org/3/c-api/type.html#c.PyType_CheckX-tr4X PyCapsule_Newr4(jjX;http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_NewX-tr4X PyObject_Delr4(jjX=http://docs.python.org/3/c-api/allocation.html#c.PyObject_DelX-tr4XPyUnicode_4BYTE_DATAr4(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_4BYTE_DATAX-tr4XPyUnicode_FromWideCharr4(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideCharX-tr4XPyCapsule_CheckExactr4(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_CheckExactX-tr4XPy_UNICODE_TOTITLEr4(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOTITLEX-tr4X!PyImport_ImportFrozenModuleObjectr4(jjXNhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModuleObjectX-tr4XPyList_GetSlicer4(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_GetSliceX-tr4XPyWeakref_NewProxyr4(jjX@http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxyX-tr4XPyFile_WriteStringr4(jjX=http://docs.python.org/3/c-api/file.html#c.PyFile_WriteStringX-tr4XPyMapping_Sizer4(jjX<http://docs.python.org/3/c-api/mapping.html#c.PyMapping_SizeX-tr4XPy_UNICODE_ISDECIMALr4(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDECIMALX-tr4XPyObject_LengthHintr4(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_LengthHintX-tr4XPyGILState_Ensurer4(jjX<http://docs.python.org/3/c-api/init.html#c.PyGILState_EnsureX-tr4XPyObject_AsFileDescriptorr4(jjXDhttp://docs.python.org/3/c-api/file.html#c.PyObject_AsFileDescriptorX-tr4XPy_CLEARr4(jjX:http://docs.python.org/3/c-api/refcounting.html#c.Py_CLEARX-tr4XPyEval_AcquireThreadr4(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_AcquireThreadX-tr4XPyObject_CallObjectr4(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_CallObjectX-tr4XPySys_AddWarnOptionr4(jjX=http://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionX-tr4XPyUnicode_DecodeUnicodeEscaper4(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscapeX-tr4XPyThreadState_Newr4(jjX<http://docs.python.org/3/c-api/init.html#c.PyThreadState_NewX-tr4X$PyImport_ExecCodeModuleWithPathnamesr4(jjXQhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnamesX-tr4X PyObject_Strr4(jjX9http://docs.python.org/3/c-api/object.html#c.PyObject_StrX-tr4XPyUnicode_AsWideCharStringr4(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsWideCharStringX-tr4X PyCell_Checkr4(jjX7http://docs.python.org/3/c-api/cell.html#c.PyCell_CheckX-tr4XPyErr_CheckSignalsr4(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_CheckSignalsX-tr4XPyNumber_Rshiftr4(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_RshiftX-tr4XPyDateTime_DATE_GET_MICROSECONDr4(jjXNhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MICROSECONDX-tr4XPy_UCS4_strlenr4(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strlenX-tr4X PyCode_Newr4(jjX5http://docs.python.org/3/c-api/code.html#c.PyCode_NewX-tr4X PySet_Popr4(jjX3http://docs.python.org/3/c-api/set.html#c.PySet_PopX-tr4XPyMemoryView_GetContiguousr4(jjXKhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguousX-tr4XPyMarshal_WriteObjectToStringr4(jjXKhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToStringX-tr4XPyImport_ExecCodeModuler4(jjXDhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleX-tr4X PyDict_Clearr4(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_ClearX-tr4XPyObject_AsReadBufferr4(jjXEhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_AsReadBufferX-tr4XPyNumber_Positiver4(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_PositiveX-tr4X PyMem_Freer4(jjX7http://docs.python.org/3/c-api/memory.html#c.PyMem_FreeX-tr4X!PyUnicodeTranslateError_GetReasonr4(jjXRhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetReasonX-tr4XPyLong_AsUnsignedLongr4(jjX@http://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongX-tr4XPyUnicode_FromFormatVr4(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatVX-tr4XPyUnicode_EncodeFSDefaultr4(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeFSDefaultX-tr4X_PyObject_GC_TRACKr4(jjXBhttp://docs.python.org/3/c-api/gcsupport.html#c._PyObject_GC_TRACKX-tr4XPyUnicode_AsUCS4Copyr4(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUCS4CopyX-tr4XPyObject_AsCharBufferr4(jjXEhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_AsCharBufferX-tr4XPyBytes_Concatr4(jjX:http://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatX-tr4XPyStructSequence_SET_ITEMr4(jjXEhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SET_ITEMX-tr4X"PyUnicode_AsRawUnicodeEscapeStringr4(jjXPhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsRawUnicodeEscapeStringX-tr5XPyUnicode_Containsr5(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ContainsX-tr5XPyLong_AsUnsignedLongLongr5(jjXDhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongLongX-tr5XPyWeakref_GetObjectr5(jjXAhttp://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetObjectX-tr5XPyModule_GetNameObjectr5(jjXChttp://docs.python.org/3/c-api/module.html#c.PyModule_GetNameObjectX-tr5X PyModule_Newr 5(jjX9http://docs.python.org/3/c-api/module.html#c.PyModule_NewX-tr 5XPyModule_AddIntConstantr 5(jjXDhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddIntConstantX-tr 5XPyNumber_Negativer 5(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_NegativeX-tr5X _Py_c_prodr5(jjX8http://docs.python.org/3/c-api/complex.html#c._Py_c_prodX-tr5XPyObject_DelAttrStringr5(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrStringX-tr5X PyObject_Typer5(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_TypeX-tr5XPyNumber_Divmodr5(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_DivmodX-tr5XPyParser_SimpleParseStringFlagsr5(jjXNhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseStringFlagsX-tr5XPySequence_Countr5(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_CountX-tr5XPyDelta_CheckExactr5(jjXAhttp://docs.python.org/3/c-api/datetime.html#c.PyDelta_CheckExactX-tr5XPyStructSequence_InitType2r5(jjXFhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitType2X-tr5XPyDateTime_TIME_GET_MICROSECONDr5(jjXNhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MICROSECONDX-tr 5X PyOS_stricmpr!5(jjX=http://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmpX-tr"5XPyObject_HashNotImplementedr#5(jjXHhttp://docs.python.org/3/c-api/object.html#c.PyObject_HashNotImplementedX-tr$5XPy_GetProgramFullPathr%5(jjX@http://docs.python.org/3/c-api/init.html#c.Py_GetProgramFullPathX-tr&5X_PyObject_NewVarr'5(jjXAhttp://docs.python.org/3/c-api/allocation.html#c._PyObject_NewVarX-tr(5XPy_GetCopyrightr)5(jjX:http://docs.python.org/3/c-api/init.html#c.Py_GetCopyrightX-tr*5XPyFunction_Checkr+5(jjX?http://docs.python.org/3/c-api/function.html#c.PyFunction_CheckX-tr,5XPyUnicode_KINDr-5(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_KINDX-tr.5XPyTuple_GetSlicer/5(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GetSliceX-tr05XPyImport_ImportFrozenModuler15(jjXHhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModuleX-tr25XPyMapping_Valuesr35(jjX>http://docs.python.org/3/c-api/mapping.html#c.PyMapping_ValuesX-tr45XPyUnicode_ReadCharr55(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadCharX-tr65XPy_CompileStringFlagsr75(jjXDhttp://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringFlagsX-tr85XPy_CompileStringr95(jjX?http://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringX-tr:5XPyBytes_FromFormatr;5(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatX-tr<5XPyRun_FileFlagsr=5(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileFlagsX-tr>5XPyDescr_NewWrapperr?5(jjXChttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewWrapperX-tr@5XPyBuffer_FillContiguousStridesrA5(jjXKhttp://docs.python.org/3/c-api/buffer.html#c.PyBuffer_FillContiguousStridesX-trB5XPyBuffer_FillInforC5(jjX>http://docs.python.org/3/c-api/buffer.html#c.PyBuffer_FillInfoX-trD5XPyUnicode_EncodeUnicodeEscaperE5(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUnicodeEscapeX-trF5XPyModule_AddStringMacrorG5(jjXDhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddStringMacroX-trH5XPyCodec_KnownEncodingrI5(jjXAhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_KnownEncodingX-trJ5XPyCodec_DecoderK5(jjX:http://docs.python.org/3/c-api/codec.html#c.PyCodec_DecodeX-trL5X Py_BuildValuerM5(jjX7http://docs.python.org/3/c-api/arg.html#c.Py_BuildValueX-trN5XPy_UNICODE_TODIGITrO5(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODIGITX-trP5XPyUnicode_ReplacerQ5(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReplaceX-trR5XPy_EndInterpreterrS5(jjX<http://docs.python.org/3/c-api/init.html#c.Py_EndInterpreterX-trT5XPy_GetCompilerrU5(jjX9http://docs.python.org/3/c-api/init.html#c.Py_GetCompilerX-trV5XPyObject_DelItemrW5(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_DelItemX-trX5XPyInterpreterState_NewrY5(jjXAhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_NewX-trZ5XPyLong_CheckExactr[5(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_CheckExactX-tr\5XPyUnicode_WriteCharr]5(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteCharX-tr^5XPy_UNICODE_ISDIGITr_5(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDIGITX-tr`5X_PyImport_Initra5(jjX;http://docs.python.org/3/c-api/import.html#c._PyImport_InitX-trb5XPy_UCS4_strrchrrc5(jjX=http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strrchrX-trd5X PyMem_Mallocre5(jjX9http://docs.python.org/3/c-api/memory.html#c.PyMem_MallocX-trf5XPyFunction_GetAnnotationsrg5(jjXHhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetAnnotationsX-trh5XPyNumber_FloorDivideri5(jjXAhttp://docs.python.org/3/c-api/number.html#c.PyNumber_FloorDivideX-trj5XPyUnicode_Encoderk5(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeX-trl5X!PyUnicodeTranslateError_SetReasonrm5(jjXRhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_SetReasonX-trn5XPyTZInfo_CheckExactro5(jjXBhttp://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckExactX-trp5XPyErr_NewExceptionrq5(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionX-trr5XPyThreadState_Swaprs5(jjX=http://docs.python.org/3/c-api/init.html#c.PyThreadState_SwapX-trt5XPyNumber_InPlacePowerru5(jjXBhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlacePowerX-trv5XPyList_ClearFreeListrw5(jjX?http://docs.python.org/3/c-api/list.html#c.PyList_ClearFreeListX-trx5XPy_UNICODE_ISSPACEry5(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISSPACEX-trz5XPyErr_GivenExceptionMatchesr{5(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatchesX-tr|5XPySequence_GetSlicer}5(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_GetSliceX-tr~5XPyList_AsTupler5(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_AsTupleX-tr5XPy_GetProgramNamer5(jjX<http://docs.python.org/3/c-api/init.html#c.Py_GetProgramNameX-tr5X-PyErr_SetExcFromWindowsErrWithFilenameObjectsr5(jjX^http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectsX-tr5X PySys_SetPathr5(jjX7http://docs.python.org/3/c-api/sys.html#c.PySys_SetPathX-tr5XPyCallIter_Checkr5(jjX?http://docs.python.org/3/c-api/iterator.html#c.PyCallIter_CheckX-tr5XPyObject_GC_Resizer5(jjXBhttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_ResizeX-tr5XPyMethod_ClearFreeListr5(jjXChttp://docs.python.org/3/c-api/method.html#c.PyMethod_ClearFreeListX-tr5X PyBytes_Checkr5(jjX9http://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckX-tr5XPyObject_HasAttrr5(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrX-tr5XPyWeakref_CheckProxyr5(jjXBhttp://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckProxyX-tr5XPyDate_CheckExactr5(jjX@http://docs.python.org/3/c-api/datetime.html#c.PyDate_CheckExactX-tr5XPy_UNICODE_ISLOWERr5(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLOWERX-tr5XPy_UCS4_strcpyr5(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strcpyX-tr5XPyStructSequence_NewTyper5(jjXDhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_NewTypeX-tr5XPyNumber_InPlaceLshiftr5(jjXChttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceLshiftX-tr5XPySet_GET_SIZEr5(jjX8http://docs.python.org/3/c-api/set.html#c.PySet_GET_SIZEX-tr5X Py_Finalizer5(jjX6http://docs.python.org/3/c-api/init.html#c.Py_FinalizeX-tr5XPyFunction_SetAnnotationsr5(jjXHhttp://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotationsX-tr5XPyUnicode_GetSizer5(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetSizeX-tr5XPyInterpreterState_Deleter5(jjXDhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_DeleteX-tr5XPyNumber_InPlaceOrr5(jjX?http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceOrX-tr5XPySet_Containsr5(jjX8http://docs.python.org/3/c-api/set.html#c.PySet_ContainsX-tr5XPyUnicode_FromEncodedObjectr5(jjXIhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObjectX-tr5X PyObject_Initr5(jjX>http://docs.python.org/3/c-api/allocation.html#c.PyObject_InitX-tr5XPySequence_DelSlicer5(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_DelSliceX-tr5XPyFile_GetLiner5(jjX9http://docs.python.org/3/c-api/file.html#c.PyFile_GetLineX-tr5XPyByteArray_FromStringAndSizer5(jjXMhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSizeX-tr5XPyEval_GetBuiltinsr5(jjXChttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetBuiltinsX-tr5XPyDict_ClearFreeListr5(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_ClearFreeListX-tr5XPyMethod_GET_FUNCTIONr5(jjXBhttp://docs.python.org/3/c-api/method.html#c.PyMethod_GET_FUNCTIONX-tr5XPyObject_Lengthr5(jjX<http://docs.python.org/3/c-api/object.html#c.PyObject_LengthX-tr5XPySequence_SetSlicer5(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_SetSliceX-tr5XPyModule_GetStater5(jjX>http://docs.python.org/3/c-api/module.html#c.PyModule_GetStateX-tr5XPyImport_ImportModuler5(jjXBhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleX-tr5XPy_UCS4_strncpyr5(jjX=http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strncpyX-tr5XPySys_AddXOptionr5(jjX:http://docs.python.org/3/c-api/sys.html#c.PySys_AddXOptionX-tr5X PyUnicodeDecodeError_GetEncodingr5(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetEncodingX-tr5XPy_UNICODE_ISPRINTABLEr5(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISPRINTABLEX-tr5XPyComplex_FromCComplexr5(jjXDhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_FromCComplexX-tr5XPyUnicodeEncodeError_SetEndr5(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_SetEndX-tr5XPyEval_GetCallStatsr5(jjX>http://docs.python.org/3/c-api/init.html#c.PyEval_GetCallStatsX-tr5X PyDateTime_DELTA_GET_MICROSECONDr5(jjXOhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_MICROSECONDX-tr5X Py_ReprLeaver5(jjX=http://docs.python.org/3/c-api/exceptions.html#c.Py_ReprLeaveX-tr5X PySlice_Newr5(jjX7http://docs.python.org/3/c-api/slice.html#c.PySlice_NewX-tr5X Py_FatalErrorr5(jjX7http://docs.python.org/3/c-api/sys.html#c.Py_FatalErrorX-tr5X Py_XDECREFr5(jjX<http://docs.python.org/3/c-api/refcounting.html#c.Py_XDECREFX-tr5XPyUnicode_AsUnicoder5(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeX-tr5XPySequence_ITEMr5(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_ITEMX-tr5X PyErr_Printr5(jjX<http://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintX-tr5XPyUnicode_Joinr5(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_JoinX-tr5X PyErr_PrintExr5(jjX>http://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintExX-tr5XPyNumber_InPlaceAndr5(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceAndX-tr5X PyLong_AsLongr5(jjX8http://docs.python.org/3/c-api/long.html#c.PyLong_AsLongX-tr5X_PyImport_FixupExtensionr5(jjXEhttp://docs.python.org/3/c-api/import.html#c._PyImport_FixupExtensionX-tr5XPyErr_SetFromWindowsErrr5(jjXHhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrX-tr5XPyUnicode_WRITEr5(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITEX-tr5X_PyImport_Finir5(jjX;http://docs.python.org/3/c-api/import.html#c._PyImport_FiniX-tr5XPyErr_WarnFormatr5(jjXAhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormatX-tr5X PyErr_WarnExr5(jjX=http://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExX-tr5XPyLong_AsUnsignedLongMaskr5(jjXDhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongMaskX-tr5XPyArg_ValidateKeywordArgumentsr5(jjXHhttp://docs.python.org/3/c-api/arg.html#c.PyArg_ValidateKeywordArgumentsX-tr5XPyUnicode_EncodeLocaler5(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocaleX-tr5XPyOS_vsnprintfr5(jjX?http://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintfX-tr5X PyMarshal_ReadLastObjectFromFiler5(jjXNhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLastObjectFromFileX-tr5XPyUnicode_AsMBCSStringr5(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsMBCSStringX-tr6XPyLong_FromSsize_tr6(jjX=http://docs.python.org/3/c-api/long.html#c.PyLong_FromSsize_tX-tr6XPyObject_GC_UnTrackr6(jjXChttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_UnTrackX-tr6XPyErr_SyntaxLocationObjectr6(jjXKhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObjectX-tr6X PyErr_Fetchr6(jjX<http://docs.python.org/3/c-api/exceptions.html#c.PyErr_FetchX-tr6XPyImport_AppendInittabr 6(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittabX-tr 6XPyErr_NoMemoryr 6(jjX?http://docs.python.org/3/c-api/exceptions.html#c.PyErr_NoMemoryX-tr 6XPyCodec_Registerr 6(jjX<http://docs.python.org/3/c-api/codec.html#c.PyCodec_RegisterX-tr6XPyUnicode_Findr6(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindX-tr6X PyUnicode_CompareWithASCIIStringr6(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIStringX-tr6XPyByteArray_Checkr6(jjXAhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckX-tr6XPyMapping_DelItemr6(jjX?http://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemX-tr6XPyState_FindModuler6(jjX?http://docs.python.org/3/c-api/module.html#c.PyState_FindModuleX-tr6XPyUnicode_FromFormatr6(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatX-tr6XPyEval_MergeCompilerFlagsr6(jjXHhttp://docs.python.org/3/c-api/veryhigh.html#c.PyEval_MergeCompilerFlagsX-tr6XPyFloat_GetMinr6(jjX:http://docs.python.org/3/c-api/float.html#c.PyFloat_GetMinX-tr6XPyUnicode_FindCharr6(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharX-tr 6XPyMem_RawReallocr!6(jjX=http://docs.python.org/3/c-api/memory.html#c.PyMem_RawReallocX-tr"6XPyErr_SetObjectr#6(jjX@http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObjectX-tr$6XPyUnicode_EncodeUTF8r%6(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF8X-tr&6XPyUnicode_AS_DATAr'6(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AS_DATAX-tr(6XPyUnicode_EncodeUTF7r)6(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF7X-tr*6XPy_CompileStringExFlagsr+6(jjXFhttp://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlagsX-tr,6XPyFloat_AsDoubler-6(jjX<http://docs.python.org/3/c-api/float.html#c.PyFloat_AsDoubleX-tr.6XPyUnicode_DATAr/6(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DATAX-tr06XPyUnicode_DecodeUTF16r16(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16X-tr26XPy_SetProgramNamer36(jjX<http://docs.python.org/3/c-api/init.html#c.Py_SetProgramNameX-tr46XPyObject_GenericGetAttrr56(jjXDhttp://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttrX-tr66XPyUnicode_Formatr76(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FormatX-tr86XPyMemoryView_FromMemoryr96(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemoryX-tr:6XPyModule_Create2r;6(jjX=http://docs.python.org/3/c-api/module.html#c.PyModule_Create2X-tr<6XPyException_GetTracebackr=6(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_GetTracebackX-tr>6X PyNumber_Orr?6(jjX8http://docs.python.org/3/c-api/number.html#c.PyNumber_OrX-tr@6XPyUnicodeEncodeError_GetEndrA6(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetEndX-trB6XPyByteArray_AS_STRINGrC6(jjXEhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AS_STRINGX-trD6X PyCell_GETrE6(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_GETX-trF6XPyModule_GetFilenamerG6(jjXAhttp://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameX-trH6XPy_GetPlatformrI6(jjX9http://docs.python.org/3/c-api/init.html#c.Py_GetPlatformX-trJ6X!PyUnicode_TransformDecimalToASCIIrK6(jjXOhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TransformDecimalToASCIIX-trL6XPyUnicode_AsASCIIStringrM6(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsASCIIStringX-trN6XPyUnicode_TailmatchrO6(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TailmatchX-trP6XPyEval_ReleaseLockrQ6(jjX=http://docs.python.org/3/c-api/init.html#c.PyEval_ReleaseLockX-trR6XPyBuffer_ReleaserS6(jjX=http://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ReleaseX-trT6X PyObject_NotrU6(jjX9http://docs.python.org/3/c-api/object.html#c.PyObject_NotX-trV6X PyTuple_SizerW6(jjX8http://docs.python.org/3/c-api/tuple.html#c.PyTuple_SizeX-trX6X PyImport_ImportModuleLevelObjectrY6(jjXMhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectX-trZ6XPyMemoryView_Checkr[6(jjXChttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_CheckX-tr\6X PyIndex_Checkr]6(jjX:http://docs.python.org/3/c-api/number.html#c.PyIndex_CheckX-tr^6X PyBool_Checkr_6(jjX7http://docs.python.org/3/c-api/bool.html#c.PyBool_CheckX-tr`6XPyDict_DelItemStringra6(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_DelItemStringX-trb6XPyUnicode_InternInPlacerc6(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternInPlaceX-trd6XPySys_SetObjectre6(jjX9http://docs.python.org/3/c-api/sys.html#c.PySys_SetObjectX-trf6XPyUnicode_DecodeUTF8rg6(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8X-trh6XPyByteArray_GET_SIZEri6(jjXDhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_GET_SIZEX-trj6XPyDictProxy_Newrk6(jjX:http://docs.python.org/3/c-api/dict.html#c.PyDictProxy_NewX-trl6XPyDate_FromTimestamprm6(jjXChttp://docs.python.org/3/c-api/datetime.html#c.PyDate_FromTimestampX-trn6XPyStructSequence_Newro6(jjX@http://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_NewX-trp6XPyUnicode_DecodeUTF7rq6(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7X-trr6X PyObject_Hashrs6(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_HashX-trt6XPyDateTime_TIME_GET_SECONDru6(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_SECONDX-trv6X PyCell_SETrw6(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_SETX-trx6X PyErr_Formatry6(jjX=http://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatX-trz6XPyDateTime_GET_MONTHr{6(jjXChttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_MONTHX-tr|6XPyCapsule_GetDestructorr}6(jjXEhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetDestructorX-tr~6XPyDateTime_FromTimestampr6(jjXGhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromTimestampX-tr6X Py_Initializer6(jjX8http://docs.python.org/3/c-api/init.html#c.Py_InitializeX-tr6X PySet_Clearr6(jjX5http://docs.python.org/3/c-api/set.html#c.PySet_ClearX-tr6XPyImport_ExecCodeModuleObjectr6(jjXJhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObjectX-tr6XPyCodec_IgnoreErrorsr6(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_IgnoreErrorsX-tr6XPyUnicode_Concatr6(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ConcatX-tr6XPyUnicode_EncodeLatin1r6(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLatin1X-tr6XPyObject_CheckReadBufferr6(jjXHhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_CheckReadBufferX-tr6XPy_GetPythonHomer6(jjX;http://docs.python.org/3/c-api/init.html#c.Py_GetPythonHomeX-tr6XPyDescr_NewMemberr6(jjXBhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewMemberX-tr6XPyByteArray_AsStringr6(jjXDhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AsStringX-tr6XPyTuple_ClearFreeListr6(jjXAhttp://docs.python.org/3/c-api/tuple.html#c.PyTuple_ClearFreeListX-tr6XPyModule_GetDictr6(jjX=http://docs.python.org/3/c-api/module.html#c.PyModule_GetDictX-tr6X Py_DECREFr6(jjX;http://docs.python.org/3/c-api/refcounting.html#c.Py_DECREFX-tr6XPyList_SetItemr6(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_SetItemX-tr6XPyImport_GetImporterr6(jjXAhttp://docs.python.org/3/c-api/import.html#c.PyImport_GetImporterX-tr6XPyFunction_GetClosurer6(jjXDhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetClosureX-tr6XPyUnicode_AsUTF32Stringr6(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF32StringX-tr6X PyUnicode_Newr6(jjX;http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_NewX-tr6XPySequence_Fast_ITEMSr6(jjXDhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_Fast_ITEMSX-tr6XPyTuple_GET_ITEMr6(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_ITEMX-tr6XPyNumber_AsSsize_tr6(jjX?http://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_tX-tr6XPyThreadState_Nextr6(jjX=http://docs.python.org/3/c-api/init.html#c.PyThreadState_NextX-tr6XPyUnicodeDecodeError_Creater6(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_CreateX-tr6XPyBytes_FromFormatVr6(jjX?http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatVX-tr6XPyUnicodeDecodeError_GetEndr6(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetEndX-tr6X PyRun_Stringr6(jjX;http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_StringX-tr6XPyMemoryView_FromBufferr6(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromBufferX-tr6XPyMemoryView_GET_BUFFERr6(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BUFFERX-tr6XPySlice_GetIndicesExr6(jjX@http://docs.python.org/3/c-api/slice.html#c.PySlice_GetIndicesExX-tr6XPyUnicode_DecodeUTF16Statefulr6(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16StatefulX-tr6XPyUnicode_GetLengthr6(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetLengthX-tr6XPyType_Modifiedr6(jjX:http://docs.python.org/3/c-api/type.html#c.PyType_ModifiedX-tr6X%PyErr_SetFromErrnoWithFilenameObjectsr6(jjXVhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectsX-tr6XPySequence_Lengthr6(jjX@http://docs.python.org/3/c-api/sequence.html#c.PySequence_LengthX-tr6X PyUnicode_DecodeRawUnicodeEscaper6(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscapeX-tr6XPyOS_AfterForkr6(jjX8http://docs.python.org/3/c-api/sys.html#c.PyOS_AfterForkX-tr6XPy_VaBuildValuer6(jjX9http://docs.python.org/3/c-api/arg.html#c.Py_VaBuildValueX-tr6XPyModule_GetNamer6(jjX=http://docs.python.org/3/c-api/module.html#c.PyModule_GetNameX-tr6XPyThreadState_Clearr6(jjX>http://docs.python.org/3/c-api/init.html#c.PyThreadState_ClearX-tr6X PyNumber_Addr6(jjX9http://docs.python.org/3/c-api/number.html#c.PyNumber_AddX-tr6XPy_EnterRecursiveCallr6(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.Py_EnterRecursiveCallX-tr6XPyThreadState_GetDictr6(jjX@http://docs.python.org/3/c-api/init.html#c.PyThreadState_GetDictX-tr6X PyUnicode_EncodeRawUnicodeEscaper6(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeRawUnicodeEscapeX-tr6XPyUnicode_InternFromStringr6(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternFromStringX-tr6XPyBytes_GET_SIZEr6(jjX<http://docs.python.org/3/c-api/bytes.html#c.PyBytes_GET_SIZEX-tr6XPyCapsule_SetPointerr6(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetPointerX-tr6XPyMarshal_WriteObjectToFiler6(jjXIhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFileX-tr6XPySys_GetObjectr6(jjX9http://docs.python.org/3/c-api/sys.html#c.PySys_GetObjectX-tr6X PyOS_setsigr6(jjX5http://docs.python.org/3/c-api/sys.html#c.PyOS_setsigX-tr6XPyUnicode_READYr6(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READYX-tr6XPy_UCS4_strncmpr6(jjX=http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strncmpX-tr6XPyUnicode_EncodeCodePager6(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePageX-tr6XPyModule_CheckExactr6(jjX@http://docs.python.org/3/c-api/module.html#c.PyModule_CheckExactX-tr6XPyParser_SimpleParseStringr6(jjXIhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseStringX-tr6XPyErr_SetImportErrorr6(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorX-tr6XPyUnicode_EncodeCharmapr6(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCharmapX-tr6XPyCapsule_Importr6(jjX>http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_ImportX-tr6XPyUnicode_DecodeASCIIr6(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCIIX-tr6X PyWrapper_Newr6(jjX>http://docs.python.org/3/c-api/descriptor.html#c.PyWrapper_NewX-tr6X PyRun_FileExr6(jjX;http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileExX-tr6XPyUnicodeTranslateError_Creater6(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_CreateX-tr6XPyObject_GetAttrStringr6(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrStringX-tr6XPyObject_Bytesr6(jjX;http://docs.python.org/3/c-api/object.html#c.PyObject_BytesX-tr6X PyRun_AnyFiler6(jjX<http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileX-tr7XPyObject_AsWriteBufferr7(jjXFhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_AsWriteBufferX-tr7XPyNumber_InPlaceRshiftr7(jjXChttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceRshiftX-tr7XPyFrozenSet_CheckExactr7(jjX@http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_CheckExactX-tr7XPy_VISITr7(jjX8http://docs.python.org/3/c-api/gcsupport.html#c.Py_VISITX-tr7XPySequence_InPlaceRepeatr 7(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_InPlaceRepeatX-tr 7X PyTuple_Checkr 7(jjX9http://docs.python.org/3/c-api/tuple.html#c.PyTuple_CheckX-tr 7XPyCode_NewEmptyr 7(jjX:http://docs.python.org/3/c-api/code.html#c.PyCode_NewEmptyX-tr7XPyNumber_Checkr7(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_CheckX-tr7X Py_INCREFr7(jjX;http://docs.python.org/3/c-api/refcounting.html#c.Py_INCREFX-tr7XPyLong_FromDoubler7(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_FromDoubleX-tr7XPyNumber_Powerr7(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_PowerX-tr7X PyOS_getsigr7(jjX5http://docs.python.org/3/c-api/sys.html#c.PyOS_getsigX-tr7XPyDelta_FromDSUr7(jjX>http://docs.python.org/3/c-api/datetime.html#c.PyDelta_FromDSUX-tr7XPyLong_FromLongLongr7(jjX>http://docs.python.org/3/c-api/long.html#c.PyLong_FromLongLongX-tr7XPyUnicode_CopyCharactersr7(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersX-tr7XPyObject_DelAttrr7(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrX-tr 7XPyImport_ExtendInittabr!7(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_ExtendInittabX-tr"7X_PyBytes_Resizer#7(jjX;http://docs.python.org/3/c-api/bytes.html#c._PyBytes_ResizeX-tr$7XPyType_GenericSetDictr%7(jjXBhttp://docs.python.org/3/c-api/object.html#c.PyType_GenericSetDictX-tr&7XPySequence_Containsr'7(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_ContainsX-tr(7XPyByteArray_Concatr)7(jjXBhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_ConcatX-tr*7XPySequence_Sizer+7(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_SizeX-tr,7XPyBytes_CheckExactr-7(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckExactX-tr.7XPyObject_CallMethodr/7(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_CallMethodX-tr07uXpy:datar17}r27(Xdoctest.DONT_ACCEPT_BLANKLINEr37(jjXKhttp://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_BLANKLINEX-tr47Xsignal.SIG_SETMASKr57(jjX?http://docs.python.org/3/library/signal.html#signal.SIG_SETMASKX-tr67Xwinsound.SND_ASYNCr77(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.SND_ASYNCX-tr87Xcsv.QUOTE_NONEr97(jjX8http://docs.python.org/3/library/csv.html#csv.QUOTE_NONEX-tr:7X re.VERBOSEr;7(jjX3http://docs.python.org/3/library/re.html#re.VERBOSEX-tr<7XMETH_Or=7(jjX5http://docs.python.org/3/c-api/structures.html#METH_OX-tr>7Xerrno.ETIMEDOUTr?7(jjX;http://docs.python.org/3/library/errno.html#errno.ETIMEDOUTX-tr@7Xsys.version_inforA7(jjX:http://docs.python.org/3/library/sys.html#sys.version_infoX-trB7X token.STARrC7(jjX6http://docs.python.org/3/library/token.html#token.STARX-trD7Xos.X_OKrE7(jjX0http://docs.python.org/3/library/os.html#os.X_OKX-trF7Xdis.Bytecode.codeobjrG7(jjX>http://docs.python.org/3/library/dis.html#dis.Bytecode.codeobjX-trH7Xtypes.MethodTyperI7(jjX<http://docs.python.org/3/library/types.html#types.MethodTypeX-trJ7X os.EX_CONFIGrK7(jjX5http://docs.python.org/3/library/os.html#os.EX_CONFIGX-trL7Xos.EX_TEMPFAILrM7(jjX7http://docs.python.org/3/library/os.html#os.EX_TEMPFAILX-trN7X9xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENTrO7(jjXghttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENTX-trP7Xtoken.tok_namerQ7(jjX:http://docs.python.org/3/library/token.html#token.tok_nameX-trR7X codecs.BOMrS7(jjX7http://docs.python.org/3/library/codecs.html#codecs.BOMX-trT7X#subprocess.CREATE_NEW_PROCESS_GROUPrU7(jjXThttp://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_PROCESS_GROUPX-trV7Xos.O_SEQUENTIALrW7(jjX8http://docs.python.org/3/library/os.html#os.O_SEQUENTIALX-trX7XPy_TPFLAGS_HAVE_GCrY7(jjX>http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_HAVE_GCX-trZ7X os.WEXITEDr[7(jjX3http://docs.python.org/3/library/os.html#os.WEXITEDX-tr\7X errno.ELIBACCr]7(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBACCX-tr^7Xdecimal.MAX_EMAXr_7(jjX>http://docs.python.org/3/library/decimal.html#decimal.MAX_EMAXX-tr`7Xhashlib.algorithms_availablera7(jjXJhttp://docs.python.org/3/library/hashlib.html#hashlib.algorithms_availableX-trb7Xwinreg.KEY_WOW64_64KEYrc7(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_64KEYX-trd7X errno.EBADMSGre7(jjX9http://docs.python.org/3/library/errno.html#errno.EBADMSGX-trf7Xhttp.client.HTTPS_PORTrg7(jjXHhttp://docs.python.org/3/library/http.client.html#http.client.HTTPS_PORTX-trh7X token.SLASHri7(jjX7http://docs.python.org/3/library/token.html#token.SLASHX-trj7Xsunau.AUDIO_FILE_ENCODING_FLOATrk7(jjXKhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_FLOATX-trl7X os.EX_DATAERRrm7(jjX6http://docs.python.org/3/library/os.html#os.EX_DATAERRX-trn7Xlocale.CRNCYSTRro7(jjX<http://docs.python.org/3/library/locale.html#locale.CRNCYSTRX-trp7X sys.meta_pathrq7(jjX7http://docs.python.org/3/library/sys.html#sys.meta_pathX-trr7Xsocket.AF_UNIXrs7(jjX;http://docs.python.org/3/library/socket.html#socket.AF_UNIXX-trt7X METH_NOARGSru7(jjX:http://docs.python.org/3/c-api/structures.html#METH_NOARGSX-trv7X errno.EREMCHGrw7(jjX9http://docs.python.org/3/library/errno.html#errno.EREMCHGX-trx7X socket.AF_RDSry7(jjX:http://docs.python.org/3/library/socket.html#socket.AF_RDSX-trz7Xwinreg.KEY_ENUMERATE_SUB_KEYSr{7(jjXJhttp://docs.python.org/3/library/winreg.html#winreg.KEY_ENUMERATE_SUB_KEYSX-tr|7Xtoken.NT_OFFSETr}7(jjX;http://docs.python.org/3/library/token.html#token.NT_OFFSETX-tr~7X locale.LC_ALLr7(jjX:http://docs.python.org/3/library/locale.html#locale.LC_ALLX-tr7X stat.S_IFREGr7(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFREGX-tr7X"os.path.supports_unicode_filenamesr7(jjXPhttp://docs.python.org/3/library/os.path.html#os.path.supports_unicode_filenamesX-tr7Xwinreg.KEY_QUERY_VALUEr7(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_QUERY_VALUEX-tr7Xlocale.CODESETr7(jjX;http://docs.python.org/3/library/locale.html#locale.CODESETX-tr7Xerrno.ENETDOWNr7(jjX:http://docs.python.org/3/library/errno.html#errno.ENETDOWNX-tr7Xos.pathconf_namesr7(jjX:http://docs.python.org/3/library/os.html#os.pathconf_namesX-tr7XFalser7(jjX5http://docs.python.org/3/library/constants.html#FalseX-tr7X errno.ERANGEr7(jjX8http://docs.python.org/3/library/errno.html#errno.ERANGEX-tr7Xsubprocess.PIPEr7(jjX@http://docs.python.org/3/library/subprocess.html#subprocess.PIPEX-tr7Xwinreg.KEY_WRITEr7(jjX=http://docs.python.org/3/library/winreg.html#winreg.KEY_WRITEX-tr7Xpathlib.PurePath.rootr7(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.rootX-tr7X os.RTLD_LOCALr7(jjX6http://docs.python.org/3/library/os.html#os.RTLD_LOCALX-tr7X errno.EREMOTEr7(jjX9http://docs.python.org/3/library/errno.html#errno.EREMOTEX-tr7Xsignal.CTRL_C_EVENTr7(jjX@http://docs.python.org/3/library/signal.html#signal.CTRL_C_EVENTX-tr7Xlocale.YESEXPRr7(jjX;http://docs.python.org/3/library/locale.html#locale.YESEXPRX-tr7Xcodecs.BOM_UTF16_LEr7(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_LEX-tr7X os.EX_IOERRr7(jjX4http://docs.python.org/3/library/os.html#os.EX_IOERRX-tr7X@xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REFr7(jjXnhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REFX-tr7X errno.EBUSYr7(jjX7http://docs.python.org/3/library/errno.html#errno.EBUSYX-tr7Xsys.__stderr__r7(jjX8http://docs.python.org/3/library/sys.html#sys.__stderr__X-tr7Xerrno.EOVERFLOWr7(jjX;http://docs.python.org/3/library/errno.html#errno.EOVERFLOWX-tr7X msilib.schemar7(jjX:http://docs.python.org/3/library/msilib.html#msilib.schemaX-tr7Xdoctest.FAIL_FASTr7(jjX?http://docs.python.org/3/library/doctest.html#doctest.FAIL_FASTX-tr7Xlocale.THOUSEPr7(jjX;http://docs.python.org/3/library/locale.html#locale.THOUSEPX-tr7X&sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5r7(jjXRhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5X-tr7X token.TILDEr7(jjX7http://docs.python.org/3/library/token.html#token.TILDEX-tr7X errno.ENOTBLKr7(jjX9http://docs.python.org/3/library/errno.html#errno.ENOTBLKX-tr7X9xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTIONr7(jjXghttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTIONX-tr7Xxml.dom.XMLNS_NAMESPACEr7(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.XMLNS_NAMESPACEX-tr7X stat.ST_NLINKr7(jjX8http://docs.python.org/3/library/stat.html#stat.ST_NLINKX-tr7Xos.EX_OKr7(jjX1http://docs.python.org/3/library/os.html#os.EX_OKX-tr7X sys.versionr7(jjX5http://docs.python.org/3/library/sys.html#sys.versionX-tr7Xos.namer7(jjX0http://docs.python.org/3/library/os.html#os.nameX-tr7Xcodecs.BOM_UTF16_BEr7(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_BEX-tr7Xxml.sax.handler.all_propertiesr7(jjXThttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_propertiesX-tr7Xzlib.ZLIB_RUNTIME_VERSIONr7(jjXDhttp://docs.python.org/3/library/zlib.html#zlib.ZLIB_RUNTIME_VERSIONX-tr7Xwinreg.HKEY_LOCAL_MACHINEr7(jjXFhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_LOCAL_MACHINEX-tr7X dis.hasjrelr7(jjX5http://docs.python.org/3/library/dis.html#dis.hasjrelX-tr7X time.tznamer7(jjX6http://docs.python.org/3/library/time.html#time.tznameX-tr7X errno.ELOOPr7(jjX7http://docs.python.org/3/library/errno.html#errno.ELOOPX-tr7X os.SF_SYNCr7(jjX3http://docs.python.org/3/library/os.html#os.SF_SYNCX-tr7X errno.ETIMEr7(jjX7http://docs.python.org/3/library/errno.html#errno.ETIMEX-tr7X token.NAMEr7(jjX6http://docs.python.org/3/library/token.html#token.NAMEX-tr7Xwinreg.KEY_EXECUTEr7(jjX?http://docs.python.org/3/library/winreg.html#winreg.KEY_EXECUTEX-tr7X os.O_ASYNCr7(jjX3http://docs.python.org/3/library/os.html#os.O_ASYNCX-tr7XTruer7(jjX4http://docs.python.org/3/library/constants.html#TrueX-tr7Xre.DEBUGr7(jjX1http://docs.python.org/3/library/re.html#re.DEBUGX-tr7X errno.EADVr7(jjX6http://docs.python.org/3/library/errno.html#errno.EADVX-tr7Xssl.OP_NO_TLSv1r7(jjX9http://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1X-tr7Xresource.RLIMIT_STACKr7(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_STACKX-tr7Xerrno.EDESTADDRREQr7(jjX>http://docs.python.org/3/library/errno.html#errno.EDESTADDRREQX-tr7X errno.EISCONNr7(jjX9http://docs.python.org/3/library/errno.html#errno.EISCONNX-tr7Xwinreg.HKEY_CURRENT_USERr7(jjXEhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_USERX-tr7Xtoken.N_TOKENSr7(jjX:http://docs.python.org/3/library/token.html#token.N_TOKENSX-tr7X errno.ENODEVr7(jjX8http://docs.python.org/3/library/errno.html#errno.ENODEVX-tr7X sys.maxsizer7(jjX5http://docs.python.org/3/library/sys.html#sys.maxsizeX-tr7Xsubprocess.STARTF_USESTDHANDLESr7(jjXPhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESTDHANDLESX-tr7Xtypes.FrameTyper7(jjX;http://docs.python.org/3/library/types.html#types.FrameTypeX-tr7X ssl.OP_ALLr7(jjX4http://docs.python.org/3/library/ssl.html#ssl.OP_ALLX-tr7X locale.NOEXPRr7(jjX:http://docs.python.org/3/library/locale.html#locale.NOEXPRX-tr7X errno.ENOLCKr7(jjX8http://docs.python.org/3/library/errno.html#errno.ENOLCKX-tr7X$ssl.ALERT_DESCRIPTION_INTERNAL_ERRORr7(jjXNhttp://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_INTERNAL_ERRORX-tr7X tokenize.NLr7(jjX:http://docs.python.org/3/library/tokenize.html#tokenize.NLX-tr7Xsubprocess.STARTF_USESHOWWINDOWr7(jjXPhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESHOWWINDOWX-tr8Xhttp.client.HTTP_PORTr8(jjXGhttp://docs.python.org/3/library/http.client.html#http.client.HTTP_PORTX-tr8Xdoctest.REPORT_UDIFFr8(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_UDIFFX-tr8Xsys.path_hooksr8(jjX8http://docs.python.org/3/library/sys.html#sys.path_hooksX-tr8X errno.E2BIGr8(jjX7http://docs.python.org/3/library/errno.html#errno.E2BIGX-tr8X os.WSTOPPEDr 8(jjX4http://docs.python.org/3/library/os.html#os.WSTOPPEDX-tr 8X os.O_CLOEXECr 8(jjX5http://docs.python.org/3/library/os.html#os.O_CLOEXECX-tr 8Xsubprocess.STDOUTr 8(jjXBhttp://docs.python.org/3/library/subprocess.html#subprocess.STDOUTX-tr8Xstring.octdigitsr8(jjX=http://docs.python.org/3/library/string.html#string.octdigitsX-tr8Xarray.typecodesr8(jjX;http://docs.python.org/3/library/array.html#array.typecodesX-tr8Xerrno.ERESTARTr8(jjX:http://docs.python.org/3/library/errno.html#errno.ERESTARTX-tr8Xtarfile.ENCODINGr8(jjX>http://docs.python.org/3/library/tarfile.html#tarfile.ENCODINGX-tr8Xcrypt.METHOD_CRYPTr8(jjX>http://docs.python.org/3/library/crypt.html#crypt.METHOD_CRYPTX-tr8X stat.S_IFWHTr8(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFWHTX-tr8Xos.EX_CANTCREATr8(jjX8http://docs.python.org/3/library/os.html#os.EX_CANTCREATX-tr8X errno.ESTALEr8(jjX8http://docs.python.org/3/library/errno.html#errno.ESTALEX-tr8Xwinreg.KEY_CREATE_SUB_KEYr8(jjXFhttp://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_SUB_KEYX-tr 8X os.defpathr!8(jjX3http://docs.python.org/3/library/os.html#os.defpathX-tr"8XEllipsisr#8(jjX8http://docs.python.org/3/library/constants.html#EllipsisX-tr$8X os.O_BINARYr%8(jjX4http://docs.python.org/3/library/os.html#os.O_BINARYX-tr&8X os.O_NOATIMEr'8(jjX5http://docs.python.org/3/library/os.html#os.O_NOATIMEX-tr(8X os.linesepr)8(jjX3http://docs.python.org/3/library/os.html#os.linesepX-tr*8X os.environr+8(jjX3http://docs.python.org/3/library/os.html#os.environX-tr,8Xos.POSIX_FADV_NOREUSEr-8(jjX>http://docs.python.org/3/library/os.html#os.POSIX_FADV_NOREUSEX-tr.8X stat.S_IFLNKr/8(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFLNKX-tr08X errno.EISDIRr18(jjX8http://docs.python.org/3/library/errno.html#errno.EISDIRX-tr28Xcodecs.BOM_UTF8r38(jjX<http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF8X-tr48Xsys.__excepthook__r58(jjX<http://docs.python.org/3/library/sys.html#sys.__excepthook__X-tr68Xtempfile.tempdirr78(jjX?http://docs.python.org/3/library/tempfile.html#tempfile.tempdirX-tr88X stat.S_IFIFOr98(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFIFOX-tr:8Xthreading.TIMEOUT_MAXr;8(jjXEhttp://docs.python.org/3/library/threading.html#threading.TIMEOUT_MAXX-tr<8Xresource.RLIMIT_VMEMr=8(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_VMEMX-tr>8Xsignal.ITIMER_VIRTUALr?8(jjXBhttp://docs.python.org/3/library/signal.html#signal.ITIMER_VIRTUALX-tr@8Xtokenize.COMMENTrA8(jjX?http://docs.python.org/3/library/tokenize.html#tokenize.COMMENTX-trB8Xos.supports_bytes_environrC8(jjXBhttp://docs.python.org/3/library/os.html#os.supports_bytes_environX-trD8Xerrno.ECONNRESETrE8(jjX<http://docs.python.org/3/library/errno.html#errno.ECONNRESETX-trF8X signal.NSIGrG8(jjX8http://docs.python.org/3/library/signal.html#signal.NSIGX-trH8X0xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDEDrI8(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDEDX-trJ8Xuuid.RESERVED_FUTURErK8(jjX?http://docs.python.org/3/library/uuid.html#uuid.RESERVED_FUTUREX-trL8X os.WNOWAITrM8(jjX3http://docs.python.org/3/library/os.html#os.WNOWAITX-trN8Xos.SCHED_BATCHrO8(jjX7http://docs.python.org/3/library/os.html#os.SCHED_BATCHX-trP8Xxml.parsers.expat.errors.codesrQ8(jjXLhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.codesX-trR8X re.DOTALLrS8(jjX2http://docs.python.org/3/library/re.html#re.DOTALLX-trT8Xsys.implementationrU8(jjX<http://docs.python.org/3/library/sys.html#sys.implementationX-trV8X stat.S_IRWXGrW8(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRWXGX-trX8Xtypes.MemberDescriptorTyperY8(jjXFhttp://docs.python.org/3/library/types.html#types.MemberDescriptorTypeX-trZ8X_thread.LockTyper[8(jjX>http://docs.python.org/3/library/_thread.html#_thread.LockTypeX-tr\8Xtoken.LEFTSHIFTr]8(jjX;http://docs.python.org/3/library/token.html#token.LEFTSHIFTX-tr^8X stat.S_IRWXOr_8(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRWXOX-tr`8X sys.hash_infora8(jjX7http://docs.python.org/3/library/sys.html#sys.hash_infoX-trb8X&sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3rc8(jjXRhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3X-trd8Xobject.__slots__re8(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__slots__X-trf8X stat.S_IRWXUrg8(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRWXUX-trh8Xunittest.mock.ANYri8(jjXEhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.ANYX-trj8X stat.S_IFCHRrk8(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFCHRX-trl8X token.DOTrm8(jjX5http://docs.python.org/3/library/token.html#token.DOTX-trn8Xresource.RLIMIT_NOFILEro8(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NOFILEX-trp8X errno.EL3RSTrq8(jjX8http://docs.python.org/3/library/errno.html#errno.EL3RSTX-trr8X parser.STTypers8(jjX:http://docs.python.org/3/library/parser.html#parser.STTypeX-trt8X errno.ECHRNGru8(jjX8http://docs.python.org/3/library/errno.html#errno.ECHRNGX-trv8X stat.S_ISVTXrw8(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISVTXX-trx8X os.P_WAITry8(jjX2http://docs.python.org/3/library/os.html#os.P_WAITX-trz8X errno.EDQUOTr{8(jjX8http://docs.python.org/3/library/errno.html#errno.EDQUOTX-tr|8X errno.ENOSTRr}8(jjX8http://docs.python.org/3/library/errno.html#errno.ENOSTRX-tr~8X gc.garbager8(jjX3http://docs.python.org/3/library/gc.html#gc.garbageX-tr8X errno.EBADRQCr8(jjX9http://docs.python.org/3/library/errno.html#errno.EBADRQCX-tr8X os.O_RDONLYr8(jjX4http://docs.python.org/3/library/os.html#os.O_RDONLYX-tr8Xlocale.ERA_D_FMTr8(jjX=http://docs.python.org/3/library/locale.html#locale.ERA_D_FMTX-tr8Xos.supports_follow_symlinksr8(jjXDhttp://docs.python.org/3/library/os.html#os.supports_follow_symlinksX-tr8X errno.EACCESr8(jjX8http://docs.python.org/3/library/errno.html#errno.EACCESX-tr8Xsocket.has_ipv6r8(jjX<http://docs.python.org/3/library/socket.html#socket.has_ipv6X-tr8X sys.int_infor8(jjX6http://docs.python.org/3/library/sys.html#sys.int_infoX-tr8X os.CLD_DUMPEDr8(jjX6http://docs.python.org/3/library/os.html#os.CLD_DUMPEDX-tr8Ximp.PKG_DIRECTORYr8(jjX;http://docs.python.org/3/library/imp.html#imp.PKG_DIRECTORYX-tr8Xtoken.DOUBLESTARr8(jjX<http://docs.python.org/3/library/token.html#token.DOUBLESTARX-tr8Xsys.base_exec_prefixr8(jjX>http://docs.python.org/3/library/sys.html#sys.base_exec_prefixX-tr8Xssl.CERT_OPTIONALr8(jjX;http://docs.python.org/3/library/ssl.html#ssl.CERT_OPTIONALX-tr8Xos.POSIX_FADV_RANDOMr8(jjX=http://docs.python.org/3/library/os.html#os.POSIX_FADV_RANDOMX-tr8Xos.sysconf_namesr8(jjX9http://docs.python.org/3/library/os.html#os.sysconf_namesX-tr8Xsys.__displayhook__r8(jjX=http://docs.python.org/3/library/sys.html#sys.__displayhook__X-tr8Xzlib.ZLIB_VERSIONr8(jjX<http://docs.python.org/3/library/zlib.html#zlib.ZLIB_VERSIONX-tr8Xos.confstr_namesr8(jjX9http://docs.python.org/3/library/os.html#os.confstr_namesX-tr8Xsys.dont_write_bytecoder8(jjXAhttp://docs.python.org/3/library/sys.html#sys.dont_write_bytecodeX-tr8X,xml.sax.handler.property_declaration_handlerr8(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_declaration_handlerX-tr8XNotImplementedr8(jjX>http://docs.python.org/3/library/constants.html#NotImplementedX-tr8X stat.ST_CTIMEr8(jjX8http://docs.python.org/3/library/stat.html#stat.ST_CTIMEX-tr8X os.P_PGIDr8(jjX2http://docs.python.org/3/library/os.html#os.P_PGIDX-tr8Xssl.OPENSSL_VERSIONr8(jjX=http://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSIONX-tr8Xcalendar.day_abbrr8(jjX@http://docs.python.org/3/library/calendar.html#calendar.day_abbrX-tr8Xsite.USER_SITEr8(jjX9http://docs.python.org/3/library/site.html#site.USER_SITEX-tr8Xsys.pathr8(jjX2http://docs.python.org/3/library/sys.html#sys.pathX-tr8X os.O_EXLOCKr8(jjX4http://docs.python.org/3/library/os.html#os.O_EXLOCKX-tr8Xsqlite3.sqlite_version_infor8(jjXIhttp://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_version_infoX-tr8X-xml.parsers.expat.errors.XML_ERROR_SUSPEND_PEr8(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPEND_PEX-tr8X stat.ST_ATIMEr8(jjX8http://docs.python.org/3/library/stat.html#stat.ST_ATIMEX-tr8Xsocket.SOL_RDSr8(jjX;http://docs.python.org/3/library/socket.html#socket.SOL_RDSX-tr8X os.O_TRUNCr8(jjX3http://docs.python.org/3/library/os.html#os.O_TRUNCX-tr8X __debug__r8(jjX9http://docs.python.org/3/library/constants.html#__debug__X-tr8Xlocale.LC_COLLATEr8(jjX>http://docs.python.org/3/library/locale.html#locale.LC_COLLATEX-tr8X os.O_TMPFILEr8(jjX5http://docs.python.org/3/library/os.html#os.O_TMPFILEX-tr8Xwinreg.REG_BINARYr8(jjX>http://docs.python.org/3/library/winreg.html#winreg.REG_BINARYX-tr8Xsys.__interactivehook__r8(jjXAhttp://docs.python.org/3/library/sys.html#sys.__interactivehook__X-tr8X errno.ENFILEr8(jjX8http://docs.python.org/3/library/errno.html#errno.ENFILEX-tr8Xssl.OP_NO_TLSv1_1r8(jjX;http://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1_1X-tr8Xtest.support.TESTFNr8(jjX>http://docs.python.org/3/library/test.html#test.support.TESTFNX-tr8X os.P_DETACHr8(jjX4http://docs.python.org/3/library/os.html#os.P_DETACHX-tr8Xsocket.SOCK_RDMr8(jjX<http://docs.python.org/3/library/socket.html#socket.SOCK_RDMX-tr8Xstring.ascii_lettersr8(jjXAhttp://docs.python.org/3/library/string.html#string.ascii_lettersX-tr8Xwinreg.KEY_READr8(jjX<http://docs.python.org/3/library/winreg.html#winreg.KEY_READX-tr8X sunau.AUDIO_FILE_ENCODING_DOUBLEr8(jjXLhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_DOUBLEX-tr8XPy_TPFLAGS_READYr8(jjX<http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_READYX-tr8Xos.CLD_TRAPPEDr8(jjX7http://docs.python.org/3/library/os.html#os.CLD_TRAPPEDX-tr8X$xml.sax.handler.feature_external_gesr8(jjXZhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_gesX-tr8X os.WUNTRACEDr8(jjX5http://docs.python.org/3/library/os.html#os.WUNTRACEDX-tr8Xssl.PROTOCOL_SSLv23r8(jjX=http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv23X-tr8Xstat.UF_APPENDr8(jjX9http://docs.python.org/3/library/stat.html#stat.UF_APPENDX-tr8Xos.O_SHORT_LIVEDr8(jjX9http://docs.python.org/3/library/os.html#os.O_SHORT_LIVEDX-tr8Xsubprocess.STD_OUTPUT_HANDLEr8(jjXMhttp://docs.python.org/3/library/subprocess.html#subprocess.STD_OUTPUT_HANDLEX-tr8Xresource.RLIMIT_RTPRIOr8(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_RTPRIOX-tr8X uuid.RFC_4122r8(jjX8http://docs.python.org/3/library/uuid.html#uuid.RFC_4122X-tr8Xtypes.TracebackTyper8(jjX?http://docs.python.org/3/library/types.html#types.TracebackTypeX-tr8X os.F_TESTr8(jjX2http://docs.python.org/3/library/os.html#os.F_TESTX-tr8Xlocale.ERA_D_T_FMTr8(jjX?http://docs.python.org/3/library/locale.html#locale.ERA_D_T_FMTX-tr8X os.PRIO_USERr8(jjX5http://docs.python.org/3/library/os.html#os.PRIO_USERX-tr8X os.extsepr8(jjX2http://docs.python.org/3/library/os.html#os.extsepX-tr8X#sunau.AUDIO_FILE_ENCODING_LINEAR_16r8(jjXOhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_16X-tr8Xlocale.ALT_DIGITSr8(jjX>http://docs.python.org/3/library/locale.html#locale.ALT_DIGITSX-tr8Xre.ASCIIr8(jjX1http://docs.python.org/3/library/re.html#re.ASCIIX-tr8Xwinreg.REG_EXPAND_SZr8(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.REG_EXPAND_SZX-tr9X sys.__stdin__r9(jjX7http://docs.python.org/3/library/sys.html#sys.__stdin__X-tr9X token.SEMIr9(jjX6http://docs.python.org/3/library/token.html#token.SEMIX-tr9Xos.P_ALLr9(jjX1http://docs.python.org/3/library/os.html#os.P_ALLX-tr9X time.altzoner9(jjX7http://docs.python.org/3/library/time.html#time.altzoneX-tr9Xresource.RLIMIT_OFILEr 9(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_OFILEX-tr 9Xerrno.EOPNOTSUPPr 9(jjX<http://docs.python.org/3/library/errno.html#errno.EOPNOTSUPPX-tr 9Xerrno.ENOTCONNr 9(jjX:http://docs.python.org/3/library/errno.html#errno.ENOTCONNX-tr9Xhashlib.hash.digest_sizer9(jjXFhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.digest_sizeX-tr9Xerrno.ENOPROTOOPTr9(jjX=http://docs.python.org/3/library/errno.html#errno.ENOPROTOOPTX-tr9Xwinsound.SND_NOSTOPr9(jjXBhttp://docs.python.org/3/library/winsound.html#winsound.SND_NOSTOPX-tr9Xcmath.pir9(jjX4http://docs.python.org/3/library/cmath.html#cmath.piX-tr9Xerrno.ESTRPIPEr9(jjX:http://docs.python.org/3/library/errno.html#errno.ESTRPIPEX-tr9X sys.byteorderr9(jjX7http://docs.python.org/3/library/sys.html#sys.byteorderX-tr9Xstat.UF_IMMUTABLEr9(jjX<http://docs.python.org/3/library/stat.html#stat.UF_IMMUTABLEX-tr9Xweakref.ProxyTypesr9(jjX@http://docs.python.org/3/library/weakref.html#weakref.ProxyTypesX-tr9X$configparser.MAX_INTERPOLATION_DEPTHr9(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.MAX_INTERPOLATION_DEPTHX-tr 9Xsocket.SOMAXCONNr!9(jjX=http://docs.python.org/3/library/socket.html#socket.SOMAXCONNX-tr"9X gc.DEBUG_LEAKr#9(jjX6http://docs.python.org/3/library/gc.html#gc.DEBUG_LEAKX-tr$9X os.EX_NOHOSTr%9(jjX5http://docs.python.org/3/library/os.html#os.EX_NOHOSTX-tr&9Xsocket.CAN_BCMr'9(jjX;http://docs.python.org/3/library/socket.html#socket.CAN_BCMX-tr(9X,xml.parsers.expat.errors.XML_ERROR_SUSPENDEDr)9(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPENDEDX-tr*9Xsys.argvr+9(jjX2http://docs.python.org/3/library/sys.html#sys.argvX-tr,9X token.RARROWr-9(jjX8http://docs.python.org/3/library/token.html#token.RARROWX-tr.9Xtoken.ENDMARKERr/9(jjX;http://docs.python.org/3/library/token.html#token.ENDMARKERX-tr09Xxml.sax.handler.all_featuresr19(jjXRhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_featuresX-tr29Xxml.dom.XHTML_NAMESPACEr39(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.XHTML_NAMESPACEX-tr49Xwinreg.REG_DWORDr59(jjX=http://docs.python.org/3/library/winreg.html#winreg.REG_DWORDX-tr69Xos.P_PIDr79(jjX1http://docs.python.org/3/library/os.html#os.P_PIDX-tr89X locale.T_FMTr99(jjX9http://docs.python.org/3/library/locale.html#locale.T_FMTX-tr:9Xerrno.EADDRNOTAVAILr;9(jjX?http://docs.python.org/3/library/errno.html#errno.EADDRNOTAVAILX-tr<9X stat.S_IXGRPr=9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IXGRPX-tr>9Xpickle.DEFAULT_PROTOCOLr?9(jjXDhttp://docs.python.org/3/library/pickle.html#pickle.DEFAULT_PROTOCOLX-tr@9Xpathlib.PurePath.driverA9(jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.driveX-trB9X!xml.sax.handler.property_dom_noderC9(jjXWhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_dom_nodeX-trD9Xtarfile.DEFAULT_FORMATrE9(jjXDhttp://docs.python.org/3/library/tarfile.html#tarfile.DEFAULT_FORMATX-trF9X errno.EDEADLKrG9(jjX9http://docs.python.org/3/library/errno.html#errno.EDEADLKX-trH9Xsignal.SIG_DFLrI9(jjX;http://docs.python.org/3/library/signal.html#signal.SIG_DFLX-trJ9Xresource.RLIMIT_SIGPENDINGrK9(jjXIhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_SIGPENDINGX-trL9X3xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REFrM9(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REFX-trN9Xerrno.EADDRINUSErO9(jjX<http://docs.python.org/3/library/errno.html#errno.EADDRINUSEX-trP9Xssl.Purpose.SERVER_AUTHrQ9(jjXAhttp://docs.python.org/3/library/ssl.html#ssl.Purpose.SERVER_AUTHX-trR9Xwinreg.KEY_NOTIFYrS9(jjX>http://docs.python.org/3/library/winreg.html#winreg.KEY_NOTIFYX-trT9X codecs.BOM_LErU9(jjX:http://docs.python.org/3/library/codecs.html#codecs.BOM_LEX-trV9X errno.ENAVAILrW9(jjX9http://docs.python.org/3/library/errno.html#errno.ENAVAILX-trX9X token.STRINGrY9(jjX8http://docs.python.org/3/library/token.html#token.STRINGX-trZ9X token.COLONr[9(jjX7http://docs.python.org/3/library/token.html#token.COLONX-tr\9X stat.S_IWGRPr]9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IWGRPX-tr^9Xtoken.DOUBLESTAREQUALr_9(jjXAhttp://docs.python.org/3/library/token.html#token.DOUBLESTAREQUALX-tr`9X stat.ST_SIZEra9(jjX7http://docs.python.org/3/library/stat.html#stat.ST_SIZEX-trb9X token.VBARrc9(jjX6http://docs.python.org/3/library/token.html#token.VBARX-trd9Xresource.RLIMIT_NICEre9(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NICEX-trf9Xerrno.ECONNABORTEDrg9(jjX>http://docs.python.org/3/library/errno.html#errno.ECONNABORTEDX-trh9Xsys.thread_infori9(jjX9http://docs.python.org/3/library/sys.html#sys.thread_infoX-trj9Xos.SF_NODISKIOrk9(jjX7http://docs.python.org/3/library/os.html#os.SF_NODISKIOX-trl9X token.GREATERrm9(jjX9http://docs.python.org/3/library/token.html#token.GREATERX-trn9X3xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATEro9(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATEX-trp9X socket.AF_CANrq9(jjX:http://docs.python.org/3/library/socket.html#socket.AF_CANX-trr9X errno.ENOSPCrs9(jjX8http://docs.python.org/3/library/errno.html#errno.ENOSPCX-trt9Xdis.Instruction.starts_lineru9(jjXEhttp://docs.python.org/3/library/dis.html#dis.Instruction.starts_lineX-trv9Xsys.last_valuerw9(jjX8http://docs.python.org/3/library/sys.html#sys.last_valueX-trx9X os.curdirry9(jjX2http://docs.python.org/3/library/os.html#os.curdirX-trz9X stat.S_IRUSRr{9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRUSRX-tr|9Xos.XATTR_REPLACEr}9(jjX9http://docs.python.org/3/library/os.html#os.XATTR_REPLACEX-tr~9X*xml.sax.handler.feature_namespace_prefixesr9(jjX`http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespace_prefixesX-tr9Xpathlib.PurePath.suffixesr9(jjXGhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffixesX-tr9Xgc.DEBUG_UNCOLLECTABLEr9(jjX?http://docs.python.org/3/library/gc.html#gc.DEBUG_UNCOLLECTABLEX-tr9X errno.EUNATCHr9(jjX9http://docs.python.org/3/library/errno.html#errno.EUNATCHX-tr9Xssl.OP_CIPHER_SERVER_PREFERENCEr9(jjXIhttp://docs.python.org/3/library/ssl.html#ssl.OP_CIPHER_SERVER_PREFERENCEX-tr9Xtime.CLOCK_THREAD_CPUTIME_IDr9(jjXGhttp://docs.python.org/3/library/time.html#time.CLOCK_THREAD_CPUTIME_IDX-tr9Xunittest.defaultTestLoaderr9(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.defaultTestLoaderX-tr9Xerrno.EMULTIHOPr9(jjX;http://docs.python.org/3/library/errno.html#errno.EMULTIHOPX-tr9X errno.EILSEQr9(jjX8http://docs.python.org/3/library/errno.html#errno.EILSEQX-tr9X os.O_EXCLr9(jjX2http://docs.python.org/3/library/os.html#os.O_EXCLX-tr9X.xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTSr9(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTSX-tr9X os.F_ULOCKr9(jjX3http://docs.python.org/3/library/os.html#os.F_ULOCKX-tr9X errno.ENOPKGr9(jjX8http://docs.python.org/3/library/errno.html#errno.ENOPKGX-tr9XNoner9(jjX4http://docs.python.org/3/library/constants.html#NoneX-tr9Xssl.PROTOCOL_TLSv1r9(jjX<http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1X-tr9Xwinreg.REG_RESOURCE_LISTr9(jjXEhttp://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_LISTX-tr9Xsignal.SIG_IGNr9(jjX;http://docs.python.org/3/library/signal.html#signal.SIG_IGNX-tr9X token.INDENTr9(jjX8http://docs.python.org/3/library/token.html#token.INDENTX-tr9X os.O_SHLOCKr9(jjX4http://docs.python.org/3/library/os.html#os.O_SHLOCKX-tr9X os.SF_MNOWAITr9(jjX6http://docs.python.org/3/library/os.html#os.SF_MNOWAITX-tr9Xcsv.QUOTE_NONNUMERICr9(jjX>http://docs.python.org/3/library/csv.html#csv.QUOTE_NONNUMERICX-tr9X os.F_LOCKr9(jjX2http://docs.python.org/3/library/os.html#os.F_LOCKX-tr9Xdis.Instruction.opnamer9(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.opnameX-tr9Xsymbol.sym_namer9(jjX<http://docs.python.org/3/library/symbol.html#symbol.sym_nameX-tr9Xxml.dom.EMPTY_NAMESPACEr9(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.EMPTY_NAMESPACEX-tr9Xtoken.DOUBLESLASHr9(jjX=http://docs.python.org/3/library/token.html#token.DOUBLESLASHX-tr9Xgc.DEBUG_COLLECTABLEr9(jjX=http://docs.python.org/3/library/gc.html#gc.DEBUG_COLLECTABLEX-tr9X6xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTEr9(jjXdhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTEX-tr9X METH_STATICr9(jjX:http://docs.python.org/3/c-api/structures.html#METH_STATICX-tr9Xtypes.GetSetDescriptorTyper9(jjXFhttp://docs.python.org/3/library/types.html#types.GetSetDescriptorTypeX-tr9X errno.EBADFDr9(jjX8http://docs.python.org/3/library/errno.html#errno.EBADFDX-tr9X dis.hasfreer9(jjX5http://docs.python.org/3/library/dis.html#dis.hasfreeX-tr9Xformatter.AS_ISr9(jjX?http://docs.python.org/3/library/formatter.html#formatter.AS_ISX-tr9Xuuid.NAMESPACE_X500r9(jjX>http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_X500X-tr9Xsys.last_tracebackr9(jjX<http://docs.python.org/3/library/sys.html#sys.last_tracebackX-tr9X errno.EDOTDOTr9(jjX9http://docs.python.org/3/library/errno.html#errno.EDOTDOTX-tr9Xhtml.entities.codepoint2namer9(jjXPhttp://docs.python.org/3/library/html.entities.html#html.entities.codepoint2nameX-tr9Xdecimal.ROUND_FLOORr9(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.ROUND_FLOORX-tr9X os.SEEK_CURr9(jjX4http://docs.python.org/3/library/os.html#os.SEEK_CURX-tr9X os.O_NOCTTYr9(jjX4http://docs.python.org/3/library/os.html#os.O_NOCTTYX-tr9Xemail.policy.defaultr9(jjXGhttp://docs.python.org/3/library/email.policy.html#email.policy.defaultX-tr9Xtime.CLOCK_MONOTONICr9(jjX?http://docs.python.org/3/library/time.html#time.CLOCK_MONOTONICX-tr9X imp.PY_FROZENr9(jjX7http://docs.python.org/3/library/imp.html#imp.PY_FROZENX-tr9X errno.EL3HLTr9(jjX8http://docs.python.org/3/library/errno.html#errno.EL3HLTX-tr9X dis.haslocalr9(jjX6http://docs.python.org/3/library/dis.html#dis.haslocalX-tr9Xmsvcrt.LK_RLCKr9(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_RLCKX-tr9Xdistutils.sysconfig.EXEC_PREFIXr9(jjXNhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.EXEC_PREFIXX-tr9X os.WCONTINUEDr9(jjX6http://docs.python.org/3/library/os.html#os.WCONTINUEDX-tr9Xtoken.RIGHTSHIFTr9(jjX<http://docs.python.org/3/library/token.html#token.RIGHTSHIFTX-tr9X os.SCHED_RRr9(jjX4http://docs.python.org/3/library/os.html#os.SCHED_RRX-tr9Xgc.DEBUG_SAVEALLr9(jjX9http://docs.python.org/3/library/gc.html#gc.DEBUG_SAVEALLX-tr9X stat.S_IWRITEr9(jjX8http://docs.python.org/3/library/stat.html#stat.S_IWRITEX-tr9X1xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONEr9(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONEX-tr9Xdecimal.MAX_PRECr9(jjX>http://docs.python.org/3/library/decimal.html#decimal.MAX_PRECX-tr9X0xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PEr9(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PEX-tr9X stat.ST_DEVr9(jjX6http://docs.python.org/3/library/stat.html#stat.ST_DEVX-tr9Xcodecs.BOM_UTF32_BEr9(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_BEX-tr9Xwinreg.KEY_SET_VALUEr9(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.KEY_SET_VALUEX-tr9Xtarfile.GNU_FORMATr9(jjX@http://docs.python.org/3/library/tarfile.html#tarfile.GNU_FORMATX-tr9Xcodecs.BOM_UTF32r9(jjX=http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32X-tr9Xssl.OP_SINGLE_ECDH_USEr9(jjX@http://docs.python.org/3/library/ssl.html#ssl.OP_SINGLE_ECDH_USEX-tr9X sys.platformr9(jjX6http://docs.python.org/3/library/sys.html#sys.platformX-tr9X stat.S_IREADr9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IREADX-tr9Xcalendar.day_namer9(jjX@http://docs.python.org/3/library/calendar.html#calendar.day_nameX-tr9Xresource.RLIMIT_NPROCr9(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NPROCX-tr:X%email.contentmanager.raw_data_managerr:(jjX`http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.raw_data_managerX-tr:Xmimetypes.common_typesr:(jjXFhttp://docs.python.org/3/library/mimetypes.html#mimetypes.common_typesX-tr:X sys.modulesr:(jjX5http://docs.python.org/3/library/sys.html#sys.modulesX-tr:Xmsilib.sequencer:(jjX<http://docs.python.org/3/library/msilib.html#msilib.sequenceX-tr:X4xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REFr :(jjXbhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REFX-tr :Xerrno.EHOSTUNREACHr :(jjX>http://docs.python.org/3/library/errno.html#errno.EHOSTUNREACHX-tr :X1xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKENr :(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKENX-tr:Xdis.Instruction.argr:(jjX=http://docs.python.org/3/library/dis.html#dis.Instruction.argX-tr:Xtoken.LEFTSHIFTEQUALr:(jjX@http://docs.python.org/3/library/token.html#token.LEFTSHIFTEQUALX-tr:Xpathlib.PurePath.partsr:(jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.partsX-tr:X re.MULTILINEr:(jjX5http://docs.python.org/3/library/re.html#re.MULTILINEX-tr:X token.LBRACEr:(jjX8http://docs.python.org/3/library/token.html#token.LBRACEX-tr:X/xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHARr:(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHARX-tr:X'ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILUREr:(jjXQhttp://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILUREX-tr:X errno.EFBIGr:(jjX7http://docs.python.org/3/library/errno.html#errno.EFBIGX-tr:Xtabnanny.verboser:(jjX?http://docs.python.org/3/library/tabnanny.html#tabnanny.verboseX-tr :X os.devnullr!:(jjX3http://docs.python.org/3/library/os.html#os.devnullX-tr":Xstat.SF_IMMUTABLEr#:(jjX<http://docs.python.org/3/library/stat.html#stat.SF_IMMUTABLEX-tr$:X(xml.sax.handler.feature_string_interningr%:(jjX^http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_string_interningX-tr&:Xos.RTLD_GLOBALr':(jjX7http://docs.python.org/3/library/os.html#os.RTLD_GLOBALX-tr(:X token.RSQBr):(jjX6http://docs.python.org/3/library/token.html#token.RSQBX-tr*:X_thread.TIMEOUT_MAXr+:(jjXAhttp://docs.python.org/3/library/_thread.html#_thread.TIMEOUT_MAXX-tr,:Xcsv.QUOTE_MINIMALr-:(jjX;http://docs.python.org/3/library/csv.html#csv.QUOTE_MINIMALX-tr.:Xtoken.RIGHTSHIFTEQUALr/:(jjXAhttp://docs.python.org/3/library/token.html#token.RIGHTSHIFTEQUALX-tr0:Xstring.punctuationr1:(jjX?http://docs.python.org/3/library/string.html#string.punctuationX-tr2:X stat.S_IXOTHr3:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IXOTHX-tr4:Xerrno.EDEADLOCKr5:(jjX;http://docs.python.org/3/library/errno.html#errno.EDEADLOCKX-tr6:X errno.ETXTBSYr7:(jjX9http://docs.python.org/3/library/errno.html#errno.ETXTBSYX-tr8:Xsignal.CTRL_BREAK_EVENTr9:(jjXDhttp://docs.python.org/3/library/signal.html#signal.CTRL_BREAK_EVENTX-tr::Xdoctest.ELLIPSISr;:(jjX>http://docs.python.org/3/library/doctest.html#doctest.ELLIPSISX-tr<:X os.O_NDELAYr=:(jjX4http://docs.python.org/3/library/os.html#os.O_NDELAYX-tr>:Xmimetypes.encodings_mapr?:(jjXGhttp://docs.python.org/3/library/mimetypes.html#mimetypes.encodings_mapX-tr@:X!asyncio.asyncio.subprocess.STDOUTrA:(jjXZhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.STDOUTX-trB:Xsocket.SOCK_SEQPACKETrC:(jjXBhttp://docs.python.org/3/library/socket.html#socket.SOCK_SEQPACKETX-trD:X errno.ENONETrE:(jjX8http://docs.python.org/3/library/errno.html#errno.ENONETX-trF:X stat.S_IRGRPrG:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRGRPX-trH:X os.WNOHANGrI:(jjX3http://docs.python.org/3/library/os.html#os.WNOHANGX-trJ:Xerrno.EHOSTDOWNrK:(jjX;http://docs.python.org/3/library/errno.html#errno.EHOSTDOWNX-trL:X)xml.parsers.expat.errors.XML_ERROR_SYNTAXrM:(jjXWhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SYNTAXX-trN:X os.O_CREATrO:(jjX3http://docs.python.org/3/library/os.html#os.O_CREATX-trP:X stat.S_IEXECrQ:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IEXECX-trR:X os.O_APPENDrS:(jjX4http://docs.python.org/3/library/os.html#os.O_APPENDX-trT:X"asyncio.asyncio.subprocess.DEVNULLrU:(jjX[http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.DEVNULLX-trV:Xos.RTLD_DEEPBINDrW:(jjX9http://docs.python.org/3/library/os.html#os.RTLD_DEEPBINDX-trX:X stat.S_IWUSRrY:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IWUSRX-trZ:Xssl.OPENSSL_VERSION_INFOr[:(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_INFOX-tr\:Xhashlib.hash.block_sizer]:(jjXEhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.block_sizeX-tr^:Xzipfile.ZIP_STOREDr_:(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STOREDX-tr`:Xcmath.era:(jjX3http://docs.python.org/3/library/cmath.html#cmath.eX-trb:Xsubprocess.STD_ERROR_HANDLErc:(jjXLhttp://docs.python.org/3/library/subprocess.html#subprocess.STD_ERROR_HANDLEX-trd:Xwinreg.REG_LINKre:(jjX<http://docs.python.org/3/library/winreg.html#winreg.REG_LINKX-trf:X os.O_DIRECTrg:(jjX4http://docs.python.org/3/library/os.html#os.O_DIRECTX-trh:X/xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITYri:(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITYX-trj:X errno.ENODATArk:(jjX9http://docs.python.org/3/library/errno.html#errno.ENODATAX-trl:X stat.S_IFBLKrm:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFBLKX-trn:Xsys.__stdout__ro:(jjX8http://docs.python.org/3/library/sys.html#sys.__stdout__X-trp:Xsignal.ITIMER_REALrq:(jjX?http://docs.python.org/3/library/signal.html#signal.ITIMER_REALX-trr:Xweakref.ProxyTypers:(jjX?http://docs.python.org/3/library/weakref.html#weakref.ProxyTypeX-trt:X imp.PY_SOURCEru:(jjX7http://docs.python.org/3/library/imp.html#imp.PY_SOURCEX-trv:Xsys.ps2rw:(jjX1http://docs.python.org/3/library/sys.html#sys.ps2X-trx:Xsocket.AF_INET6ry:(jjX<http://docs.python.org/3/library/socket.html#socket.AF_INET6X-trz:X!doctest.REPORT_ONLY_FIRST_FAILUREr{:(jjXOhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_ONLY_FIRST_FAILUREX-tr|:Xos.sepr}:(jjX/http://docs.python.org/3/library/os.html#os.sepX-tr~:Xmimetypes.types_mapr:(jjXChttp://docs.python.org/3/library/mimetypes.html#mimetypes.types_mapX-tr:X errno.EXDEVr:(jjX7http://docs.python.org/3/library/errno.html#errno.EXDEVX-tr:X dis.hasconstr:(jjX6http://docs.python.org/3/library/dis.html#dis.hasconstX-tr:X imghdr.testsr:(jjX9http://docs.python.org/3/library/imghdr.html#imghdr.testsX-tr:Xmath.pir:(jjX2http://docs.python.org/3/library/math.html#math.piX-tr:X5xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODINGr:(jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODINGX-tr:Xos.EX_UNAVAILABLEr:(jjX:http://docs.python.org/3/library/os.html#os.EX_UNAVAILABLEX-tr:X errno.EINVALr:(jjX8http://docs.python.org/3/library/errno.html#errno.EINVALX-tr:Xos.F_OKr:(jjX0http://docs.python.org/3/library/os.html#os.F_OKX-tr:X os.EX_OSFILEr:(jjX5http://docs.python.org/3/library/os.html#os.EX_OSFILEX-tr:X errno.ELIBSCNr:(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBSCNX-tr:Xsys.builtin_module_namesr:(jjXBhttp://docs.python.org/3/library/sys.html#sys.builtin_module_namesX-tr:X errno.ECHILDr:(jjX8http://docs.python.org/3/library/errno.html#errno.ECHILDX-tr:Xplistlib.FMT_XMLr:(jjX?http://docs.python.org/3/library/plistlib.html#plistlib.FMT_XMLX-tr:Xlocale.LC_TIMEr:(jjX;http://docs.python.org/3/library/locale.html#locale.LC_TIMEX-tr:Xstat.UF_NODUMPr:(jjX9http://docs.python.org/3/library/stat.html#stat.UF_NODUMPX-tr:X errno.ENOTTYr:(jjX8http://docs.python.org/3/library/errno.html#errno.ENOTTYX-tr:X curses.ERRr:(jjX7http://docs.python.org/3/library/curses.html#curses.ERRX-tr:X re.IGNORECASEr:(jjX6http://docs.python.org/3/library/re.html#re.IGNORECASEX-tr:X*xml.parsers.expat.errors.XML_ERROR_ABORTEDr:(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ABORTEDX-tr:X socket.PF_RDSr:(jjX:http://docs.python.org/3/library/socket.html#socket.PF_RDSX-tr:Xwinreg.KEY_ALL_ACCESSr:(jjXBhttp://docs.python.org/3/library/winreg.html#winreg.KEY_ALL_ACCESSX-tr:Xerrno.EINPROGRESSr:(jjX=http://docs.python.org/3/library/errno.html#errno.EINPROGRESSX-tr:Xuuid.RESERVED_MICROSOFTr:(jjXBhttp://docs.python.org/3/library/uuid.html#uuid.RESERVED_MICROSOFTX-tr:Xtoken.PERCENTEQUALr:(jjX>http://docs.python.org/3/library/token.html#token.PERCENTEQUALX-tr:Xuuid.NAMESPACE_DNSr:(jjX=http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_DNSX-tr:Xos.POSIX_FADV_SEQUENTIALr:(jjXAhttp://docs.python.org/3/library/os.html#os.POSIX_FADV_SEQUENTIALX-tr:Xmimetypes.initedr:(jjX@http://docs.python.org/3/library/mimetypes.html#mimetypes.initedX-tr:Xmsvcrt.LK_NBLCKr:(jjX<http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_NBLCKX-tr:X errno.ENOCSIr:(jjX8http://docs.python.org/3/library/errno.html#errno.ENOCSIX-tr:Xresource.RLIMIT_MSGQUEUEr:(jjXGhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_MSGQUEUEX-tr:Xwinsound.MB_OKr:(jjX=http://docs.python.org/3/library/winsound.html#winsound.MB_OKX-tr:X os.O_TEXTr:(jjX2http://docs.python.org/3/library/os.html#os.O_TEXTX-tr:X errno.ENOTNAMr:(jjX9http://docs.python.org/3/library/errno.html#errno.ENOTNAMX-tr:Xwinsound.SND_LOOPr:(jjX@http://docs.python.org/3/library/winsound.html#winsound.SND_LOOPX-tr:Xresource.RLIMIT_SBSIZEr:(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_SBSIZEX-tr:Xerrno.errorcoder:(jjX;http://docs.python.org/3/library/errno.html#errno.errorcodeX-tr:X errno.EL2HLTr:(jjX8http://docs.python.org/3/library/errno.html#errno.EL2HLTX-tr:Xssl.VERIFY_CRL_CHECK_LEAFr:(jjXChttp://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_LEAFX-tr:Xhashlib.algorithms_guaranteedr:(jjXKhttp://docs.python.org/3/library/hashlib.html#hashlib.algorithms_guaranteedX-tr:Xmsvcrt.LK_UNLCKr:(jjX<http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_UNLCKX-tr:Xtime.CLOCK_HIGHRESr:(jjX=http://docs.python.org/3/library/time.html#time.CLOCK_HIGHRESX-tr:X copyrightr:(jjX9http://docs.python.org/3/library/constants.html#copyrightX-tr:X winreg.REG_SZr:(jjX:http://docs.python.org/3/library/winreg.html#winreg.REG_SZX-tr:X&asynchat.async_chat.ac_out_buffer_sizer:(jjXUhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.ac_out_buffer_sizeX-tr:Xtoken.STAREQUALr:(jjX;http://docs.python.org/3/library/token.html#token.STAREQUALX-tr:X stat.S_ENFMTr:(jjX7http://docs.python.org/3/library/stat.html#stat.S_ENFMTX-tr:Xxml.parsers.expat.XMLParserTyper:(jjXMhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.XMLParserTypeX-tr:X dis.opmapr:(jjX3http://docs.python.org/3/library/dis.html#dis.opmapX-tr:X os.pathsepr:(jjX3http://docs.python.org/3/library/os.html#os.pathsepX-tr:Xwinsound.SND_FILENAMEr:(jjXDhttp://docs.python.org/3/library/winsound.html#winsound.SND_FILENAMEX-tr:Xdis.Instruction.offsetr:(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.offsetX-tr:X3xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITYr:(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITYX-tr:Xcalendar.month_abbrr:(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.month_abbrX-tr:Xmsvcrt.LK_LOCKr:(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_LOCKX-tr:Xerrno.EREMOTEIOr:(jjX;http://docs.python.org/3/library/errno.html#errno.EREMOTEIOX-tr:Xssl.CERT_REQUIREDr:(jjX;http://docs.python.org/3/library/ssl.html#ssl.CERT_REQUIREDX-tr:X os.altsepr:(jjX2http://docs.python.org/3/library/os.html#os.altsepX-tr:Xwinreg.REG_NONEr:(jjX<http://docs.python.org/3/library/winreg.html#winreg.REG_NONEX-tr:X os.O_RSYNCr:(jjX3http://docs.python.org/3/library/os.html#os.O_RSYNCX-tr:X locale.D_FMTr:(jjX9http://docs.python.org/3/library/locale.html#locale.D_FMTX-tr:X os.SCHED_FIFOr:(jjX6http://docs.python.org/3/library/os.html#os.SCHED_FIFOX-tr:Xsocket.SOCK_CLOEXECr:(jjX@http://docs.python.org/3/library/socket.html#socket.SOCK_CLOEXECX-tr:X locale.ERAr:(jjX7http://docs.python.org/3/library/locale.html#locale.ERAX-tr:X#sunau.AUDIO_FILE_ENCODING_LINEAR_24r:(jjXOhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_24X-tr;Xssl.OP_NO_TLSv1_2r;(jjX;http://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1_2X-tr;Xwinsound.MB_ICONHANDr;(jjXChttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONHANDX-tr;Xemail.policy.strictr;(jjXFhttp://docs.python.org/3/library/email.policy.html#email.policy.strictX-tr;Xdoctest.NORMALIZE_WHITESPACEr;(jjXJhttp://docs.python.org/3/library/doctest.html#doctest.NORMALIZE_WHITESPACEX-tr;X token.NEWLINEr ;(jjX9http://docs.python.org/3/library/token.html#token.NEWLINEX-tr ;X errno.ELNRNGr ;(jjX8http://docs.python.org/3/library/errno.html#errno.ELNRNGX-tr ;Xwinreg.HKEY_DYN_DATAr ;(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_DYN_DATAX-tr;Xstat.UF_NOUNLINKr;(jjX;http://docs.python.org/3/library/stat.html#stat.UF_NOUNLINKX-tr;Xasyncio.asyncio.subprocess.PIPEr;(jjXXhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.PIPEX-tr;Xlocale.T_FMT_AMPMr;(jjX>http://docs.python.org/3/library/locale.html#locale.T_FMT_AMPMX-tr;Xstat.SF_ARCHIVEDr;(jjX;http://docs.python.org/3/library/stat.html#stat.SF_ARCHIVEDX-tr;Xdis.Instruction.argreprr;(jjXAhttp://docs.python.org/3/library/dis.html#dis.Instruction.argreprX-tr;Xdecimal.ROUND_HALF_UPr;(jjXChttp://docs.python.org/3/library/decimal.html#decimal.ROUND_HALF_UPX-tr;Xdoctest.REPORTING_FLAGSr;(jjXEhttp://docs.python.org/3/library/doctest.html#doctest.REPORTING_FLAGSX-tr;Xdis.Instruction.opcoder;(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.opcodeX-tr;X errno.EUCLEANr;(jjX9http://docs.python.org/3/library/errno.html#errno.EUCLEANX-tr ;X sys.flagsr!;(jjX3http://docs.python.org/3/library/sys.html#sys.flagsX-tr";Xtypes.FunctionTyper#;(jjX>http://docs.python.org/3/library/types.html#types.FunctionTypeX-tr$;X errno.EPROTOr%;(jjX8http://docs.python.org/3/library/errno.html#errno.EPROTOX-tr&;X re.LOCALEr';(jjX2http://docs.python.org/3/library/re.html#re.LOCALEX-tr(;X token.RPARr);(jjX6http://docs.python.org/3/library/token.html#token.RPARX-tr*;X os.P_OVERLAYr+;(jjX5http://docs.python.org/3/library/os.html#os.P_OVERLAYX-tr,;X/xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCHr-;(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCHX-tr.;Xerrno.EPROTONOSUPPORTr/;(jjXAhttp://docs.python.org/3/library/errno.html#errno.EPROTONOSUPPORTX-tr0;X!sunau.AUDIO_FILE_ENCODING_MULAW_8r1;(jjXMhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_MULAW_8X-tr2;X%winreg.REG_RESOURCE_REQUIREMENTS_LISTr3;(jjXRhttp://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_REQUIREMENTS_LISTX-tr4;Xtarfile.USTAR_FORMATr5;(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.USTAR_FORMATX-tr6;Xtoken.ERRORTOKENr7;(jjX<http://docs.python.org/3/library/token.html#token.ERRORTOKENX-tr8;Xwinreg.REG_DWORD_BIG_ENDIANr9;(jjXHhttp://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_BIG_ENDIANX-tr:;Xio.DEFAULT_BUFFER_SIZEr;;(jjX?http://docs.python.org/3/library/io.html#io.DEFAULT_BUFFER_SIZEX-tr<;Xtoken.ELLIPSISr=;(jjX:http://docs.python.org/3/library/token.html#token.ELLIPSISX-tr>;Xweakref.ReferenceTyper?;(jjXChttp://docs.python.org/3/library/weakref.html#weakref.ReferenceTypeX-tr@;Xdecimal.MIN_EMINrA;(jjX>http://docs.python.org/3/library/decimal.html#decimal.MIN_EMINX-trB;Xos.SCHED_RESET_ON_FORKrC;(jjX?http://docs.python.org/3/library/os.html#os.SCHED_RESET_ON_FORKX-trD;Xsys.path_importer_cacherE;(jjXAhttp://docs.python.org/3/library/sys.html#sys.path_importer_cacheX-trF;Xdistutils.sysconfig.PREFIXrG;(jjXIhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.PREFIXX-trH;Xmimetypes.knownfilesrI;(jjXDhttp://docs.python.org/3/library/mimetypes.html#mimetypes.knownfilesX-trJ;Xwinreg.REG_DWORD_LITTLE_ENDIANrK;(jjXKhttp://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_LITTLE_ENDIANX-trL;Xos.SCHED_OTHERrM;(jjX7http://docs.python.org/3/library/os.html#os.SCHED_OTHERX-trN;X stat.ST_UIDrO;(jjX6http://docs.python.org/3/library/stat.html#stat.ST_UIDX-trP;Xunittest.mock.DEFAULTrQ;(jjXIhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.DEFAULTX-trR;Xhtml.entities.html5rS;(jjXGhttp://docs.python.org/3/library/html.entities.html#html.entities.html5X-trT;Xtoken.MINEQUALrU;(jjX:http://docs.python.org/3/library/token.html#token.MINEQUALX-trV;X string.digitsrW;(jjX:http://docs.python.org/3/library/string.html#string.digitsX-trX;Xsqlite3.PARSE_DECLTYPESrY;(jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_DECLTYPESX-trZ;X stat.ST_MTIMEr[;(jjX8http://docs.python.org/3/library/stat.html#stat.ST_MTIMEX-tr\;X errno.EPIPEr];(jjX7http://docs.python.org/3/library/errno.html#errno.EPIPEX-tr^;Xwinreg.HKEY_PERFORMANCE_DATAr_;(jjXIhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_PERFORMANCE_DATAX-tr`;X errno.EMLINKra;(jjX8http://docs.python.org/3/library/errno.html#errno.EMLINKX-trb;X dis.hasjabsrc;(jjX5http://docs.python.org/3/library/dis.html#dis.hasjabsX-trd;X posix.environre;(jjX9http://docs.python.org/3/library/posix.html#posix.environX-trf;Xwinreg.KEY_WOW64_32KEYrg;(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_32KEYX-trh;X imp.C_BUILTINri;(jjX7http://docs.python.org/3/library/imp.html#imp.C_BUILTINX-trj;XPy_TPFLAGS_HEAPTYPErk;(jjX?http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_HEAPTYPEX-trl;Xtoken.OPrm;(jjX4http://docs.python.org/3/library/token.html#token.OPX-trn;X METH_KEYWORDSro;(jjX<http://docs.python.org/3/c-api/structures.html#METH_KEYWORDSX-trp;X os.O_NOFOLLOWrq;(jjX6http://docs.python.org/3/library/os.html#os.O_NOFOLLOWX-trr;X stat.S_IROTHrs;(jjX7http://docs.python.org/3/library/stat.html#stat.S_IROTHX-trt;Xssl.VERIFY_CRL_CHECK_CHAINru;(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_CHAINX-trv;X csv.QUOTE_ALLrw;(jjX7http://docs.python.org/3/library/csv.html#csv.QUOTE_ALLX-trx;Xre.Ary;(jjX-http://docs.python.org/3/library/re.html#re.AX-trz;Xxml.dom.XML_NAMESPACEr{;(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.XML_NAMESPACEX-tr|;Xpathlib.PurePath.parentsr};(jjXFhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parentsX-tr~;Xlicenser;(jjX7http://docs.python.org/3/library/constants.html#licenseX-tr;Xre.Ir;(jjX-http://docs.python.org/3/library/re.html#re.IX-tr;Xerrno.ENOTSOCKr;(jjX:http://docs.python.org/3/library/errno.html#errno.ENOTSOCKX-tr;Xzipfile.ZIP_BZIP2r;(jjX?http://docs.python.org/3/library/zipfile.html#zipfile.ZIP_BZIP2X-tr;Xre.Mr;(jjX-http://docs.python.org/3/library/re.html#re.MX-tr;Xsocket.SocketTyper;(jjX>http://docs.python.org/3/library/socket.html#socket.SocketTypeX-tr;Xtabnanny.filename_onlyr;(jjXEhttp://docs.python.org/3/library/tabnanny.html#tabnanny.filename_onlyX-tr;Xtoken.NOTEQUALr;(jjX:http://docs.python.org/3/library/token.html#token.NOTEQUALX-tr;Xhtml.entities.entitydefsr;(jjXLhttp://docs.python.org/3/library/html.entities.html#html.entities.entitydefsX-tr;Xtime.CLOCK_PROCESS_CPUTIME_IDr;(jjXHhttp://docs.python.org/3/library/time.html#time.CLOCK_PROCESS_CPUTIME_IDX-tr;Xwinsound.SND_MEMORYr;(jjXBhttp://docs.python.org/3/library/winsound.html#winsound.SND_MEMORYX-tr;X3xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODINGr;(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODINGX-tr;X token.EQEQUALr;(jjX9http://docs.python.org/3/library/token.html#token.EQEQUALX-tr;Xlocale.LC_CTYPEr;(jjX<http://docs.python.org/3/library/locale.html#locale.LC_CTYPEX-tr;X token.COMMAr;(jjX7http://docs.python.org/3/library/token.html#token.COMMAX-tr;X os.O_RDWRr;(jjX2http://docs.python.org/3/library/os.html#os.O_RDWRX-tr;X os.pardirr;(jjX2http://docs.python.org/3/library/os.html#os.pardirX-tr;X5xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIXr;(jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIXX-tr;Xos.O_TEMPORARYr;(jjX7http://docs.python.org/3/library/os.html#os.O_TEMPORARYX-tr;Xos.supports_effective_idsr;(jjXBhttp://docs.python.org/3/library/os.html#os.supports_effective_idsX-tr;Xsqlite3.versionr;(jjX=http://docs.python.org/3/library/sqlite3.html#sqlite3.versionX-tr;X curses.OKr;(jjX6http://docs.python.org/3/library/curses.html#curses.OKX-tr;Xgc.DEBUG_STATSr;(jjX7http://docs.python.org/3/library/gc.html#gc.DEBUG_STATSX-tr;Xssl.OP_NO_SSLv3r;(jjX9http://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv3X-tr;Xssl.OP_NO_SSLv2r;(jjX9http://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv2X-tr;Xpathlib.PurePath.anchorr;(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.anchorX-tr;X time.daylightr;(jjX8http://docs.python.org/3/library/time.html#time.daylightX-tr;Xquitr;(jjX4http://docs.python.org/3/library/constants.html#quitX-tr;Xssl.OP_NO_COMPRESSIONr;(jjX?http://docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSIONX-tr;Xlocale.ERA_T_FMTr;(jjX=http://docs.python.org/3/library/locale.html#locale.ERA_T_FMTX-tr;Xsubprocess.STD_INPUT_HANDLEr;(jjXLhttp://docs.python.org/3/library/subprocess.html#subprocess.STD_INPUT_HANDLEX-tr;X errno.EUSERSr;(jjX8http://docs.python.org/3/library/errno.html#errno.EUSERSX-tr;X errno.ELIBBADr;(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBBADX-tr;Xwinsound.SND_NODEFAULTr;(jjXEhttp://docs.python.org/3/library/winsound.html#winsound.SND_NODEFAULTX-tr;X0xml.parsers.expat.errors.XML_ERROR_INVALID_TOKENr;(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INVALID_TOKENX-tr;Xunittest.mock.sentinelr;(jjXJhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.sentinelX-tr;X sys.winverr;(jjX4http://docs.python.org/3/library/sys.html#sys.winverX-tr;Xunittest.mock.FILTER_DIRr;(jjXLhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.FILTER_DIRX-tr;Xunicodedata.unidata_versionr;(jjXMhttp://docs.python.org/3/library/unicodedata.html#unicodedata.unidata_versionX-tr;X sunau.AUDIO_FILE_ENCODING_ALAW_8r;(jjXLhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ALAW_8X-tr;Xerrno.ELIBEXECr;(jjX:http://docs.python.org/3/library/errno.html#errno.ELIBEXECX-tr;X ssl.CERT_NONEr;(jjX7http://docs.python.org/3/library/ssl.html#ssl.CERT_NONEX-tr;X socket.PF_CANr;(jjX:http://docs.python.org/3/library/socket.html#socket.PF_CANX-tr;X os.O_WRONLYr;(jjX4http://docs.python.org/3/library/os.html#os.O_WRONLYX-tr;Xcrypt.METHOD_SHA256r;(jjX?http://docs.python.org/3/library/crypt.html#crypt.METHOD_SHA256X-tr;Xos.PRIO_PROCESSr;(jjX8http://docs.python.org/3/library/os.html#os.PRIO_PROCESSX-tr;X errno.ENOMSGr;(jjX8http://docs.python.org/3/library/errno.html#errno.ENOMSGX-tr;Xresource.RUSAGE_BOTHr;(jjXChttp://docs.python.org/3/library/resource.html#resource.RUSAGE_BOTHX-tr;X token.MINUSr;(jjX7http://docs.python.org/3/library/token.html#token.MINUSX-tr;Xtoken.ATr;(jjX4http://docs.python.org/3/library/token.html#token.ATX-tr;Xstat.SF_APPENDr;(jjX9http://docs.python.org/3/library/stat.html#stat.SF_APPENDX-tr;Xerrno.ENOTUNIQr;(jjX:http://docs.python.org/3/library/errno.html#errno.ENOTUNIQX-tr;Xos.RTLD_NODELETEr;(jjX9http://docs.python.org/3/library/os.html#os.RTLD_NODELETEX-tr;X,xml.parsers.expat.errors.XML_ERROR_NO_MEMORYr;(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_MEMORYX-tr;Xresource.RLIMIT_MEMLOCKr;(jjXFhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_MEMLOCKX-tr;Xstring.ascii_uppercaser;(jjXChttp://docs.python.org/3/library/string.html#string.ascii_uppercaseX-tr;Xhtml.entities.name2codepointr;(jjXPhttp://docs.python.org/3/library/html.entities.html#html.entities.name2codepointX-tr;Xuuid.RESERVED_NCSr;(jjX<http://docs.python.org/3/library/uuid.html#uuid.RESERVED_NCSX-tr;X"sunau.AUDIO_FILE_ENCODING_LINEAR_8r;(jjXNhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_8X-tr;Xwinreg.HKEY_USERSr;(jjX>http://docs.python.org/3/library/winreg.html#winreg.HKEY_USERSX-tr;X errno.ENOTDIRr;(jjX9http://docs.python.org/3/library/errno.html#errno.ENOTDIRX-tr;Xsubprocess.DEVNULLr;(jjXChttp://docs.python.org/3/library/subprocess.html#subprocess.DEVNULLX-tr;X msilib.textr;(jjX8http://docs.python.org/3/library/msilib.html#msilib.textX-tr;Xtoken.PLUSEQUALr;(jjX;http://docs.python.org/3/library/token.html#token.PLUSEQUALX-tr;Xresource.RLIMIT_COREr;(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_COREX-tr<Xstat.SF_NOUNLINKr<(jjX;http://docs.python.org/3/library/stat.html#stat.SF_NOUNLINKX-tr<Xdecimal.ROUND_HALF_DOWNr<(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.ROUND_HALF_DOWNX-tr<Xdoctest.REPORT_NDIFFr<(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_NDIFFX-tr<X reprlib.aReprr<(jjX;http://docs.python.org/3/library/reprlib.html#reprlib.aReprX-tr<X errno.EXFULLr <(jjX8http://docs.python.org/3/library/errno.html#errno.EXFULLX-tr <X os.O_PATHr <(jjX2http://docs.python.org/3/library/os.html#os.O_PATHX-tr <Xresource.RLIMIT_FSIZEr <(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_FSIZEX-tr<Xwinsound.SND_NOWAITr<(jjXBhttp://docs.python.org/3/library/winsound.html#winsound.SND_NOWAITX-tr<Xerrno.EL2NSYNCr<(jjX:http://docs.python.org/3/library/errno.html#errno.EL2NSYNCX-tr<Xre.Lr<(jjX-http://docs.python.org/3/library/re.html#re.LX-tr<Xsys.float_repr_styler<(jjX>http://docs.python.org/3/library/sys.html#sys.float_repr_styleX-tr<Xos.EX_NOTFOUNDr<(jjX7http://docs.python.org/3/library/os.html#os.EX_NOTFOUNDX-tr<X os.EX_NOUSERr<(jjX5http://docs.python.org/3/library/os.html#os.EX_NOUSERX-tr<X+xml.parsers.expat.errors.XML_ERROR_XML_DECLr<(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_XML_DECLX-tr<X stat.S_IWOTHr<(jjX7http://docs.python.org/3/library/stat.html#stat.S_IWOTHX-tr<Xcalendar.month_namer<(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.month_nameX-tr <Xtypes.GeneratorTyper!<(jjX?http://docs.python.org/3/library/types.html#types.GeneratorTypeX-tr"<XPy_TPFLAGS_HAVE_FINALIZEr#<(jjXDhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_HAVE_FINALIZEX-tr$<X errno.ENOBUFSr%<(jjX9http://docs.python.org/3/library/errno.html#errno.ENOBUFSX-tr&<Xlocale.RADIXCHARr'<(jjX=http://docs.python.org/3/library/locale.html#locale.RADIXCHARX-tr(<Xos.O_NOINHERITr)<(jjX7http://docs.python.org/3/library/os.html#os.O_NOINHERITX-tr*<Xerrno.EPROTOTYPEr+<(jjX<http://docs.python.org/3/library/errno.html#errno.EPROTOTYPEX-tr,<Xre.Sr-<(jjX-http://docs.python.org/3/library/re.html#re.SX-tr.<Xstat.UF_COMPRESSEDr/<(jjX=http://docs.python.org/3/library/stat.html#stat.UF_COMPRESSEDX-tr0<Xresource.RLIMIT_RSSr1<(jjXBhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_RSSX-tr2<X os.PRIO_PGRPr3<(jjX5http://docs.python.org/3/library/os.html#os.PRIO_PGRPX-tr4<X sys._xoptionsr5<(jjX7http://docs.python.org/3/library/sys.html#sys._xoptionsX-tr6<Xresource.RLIMIT_ASr7<(jjXAhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_ASX-tr8<Xtoken.LESSEQUALr9<(jjX;http://docs.python.org/3/library/token.html#token.LESSEQUALX-tr:<X METH_COEXISTr;<(jjX;http://docs.python.org/3/c-api/structures.html#METH_COEXISTX-tr<<X stat.ST_GIDr=<(jjX6http://docs.python.org/3/library/stat.html#stat.ST_GIDX-tr><Xssl.VERIFY_X509_STRICTr?<(jjX@http://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_STRICTX-tr@<Xwinreg.REG_MULTI_SZrA<(jjX@http://docs.python.org/3/library/winreg.html#winreg.REG_MULTI_SZX-trB<X os.SCHED_IDLErC<(jjX6http://docs.python.org/3/library/os.html#os.SCHED_IDLEX-trD<Xdoctest.DONT_ACCEPT_TRUE_FOR_1rE<(jjXLhttp://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_TRUE_FOR_1X-trF<Xdis.Bytecode.first_linerG<(jjXAhttp://docs.python.org/3/library/dis.html#dis.Bytecode.first_lineX-trH<Xcurses.versionrI<(jjX;http://docs.python.org/3/library/curses.html#curses.versionX-trJ<Xwinreg.KEY_CREATE_LINKrK<(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_LINKX-trL<X/xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REFrM<(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REFX-trN<X#xml.sax.handler.property_xml_stringrO<(jjXYhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_xml_stringX-trP<Xsignal.SIG_BLOCKrQ<(jjX=http://docs.python.org/3/library/signal.html#signal.SIG_BLOCKX-trR<Xtypes.LambdaTyperS<(jjX<http://docs.python.org/3/library/types.html#types.LambdaTypeX-trT<Xre.XrU<(jjX-http://docs.python.org/3/library/re.html#re.XX-trV<Xsqlite3.PARSE_COLNAMESrW<(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_COLNAMESX-trX<X;xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTDrY<(jjXihttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTDX-trZ<X sys.stderrr[<(jjX4http://docs.python.org/3/library/sys.html#sys.stderrX-tr\<Xpathlib.PurePath.suffixr]<(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffixX-tr^<Xerrno.EWOULDBLOCKr_<(jjX=http://docs.python.org/3/library/errno.html#errno.EWOULDBLOCKX-tr`<Xerrno.ESHUTDOWNra<(jjX;http://docs.python.org/3/library/errno.html#errno.ESHUTDOWNX-trb<Xsys.tracebacklimitrc<(jjX<http://docs.python.org/3/library/sys.html#sys.tracebacklimitX-trd<Xsite.USER_BASEre<(jjX9http://docs.python.org/3/library/site.html#site.USER_BASEX-trf<X errno.EIOrg<(jjX5http://docs.python.org/3/library/errno.html#errno.EIOX-trh<X errno.EBFONTri<(jjX8http://docs.python.org/3/library/errno.html#errno.EBFONTX-trj<X stat.ST_MODErk<(jjX7http://docs.python.org/3/library/stat.html#stat.ST_MODEX-trl<Xsys.ps1rm<(jjX1http://docs.python.org/3/library/sys.html#sys.ps1X-trn<Xlocale.LC_MONETARYro<(jjX?http://docs.python.org/3/library/locale.html#locale.LC_MONETARYX-trp<X os.SEEK_ENDrq<(jjX4http://docs.python.org/3/library/os.html#os.SEEK_ENDX-trr<Xsubprocess.SW_HIDErs<(jjXChttp://docs.python.org/3/library/subprocess.html#subprocess.SW_HIDEX-trt<Xstring.hexdigitsru<(jjX=http://docs.python.org/3/library/string.html#string.hexdigitsX-trv<X errno.ESPIPErw<(jjX8http://docs.python.org/3/library/errno.html#errno.ESPIPEX-trx<Xmarshal.versionry<(jjX=http://docs.python.org/3/library/marshal.html#marshal.versionX-trz<X errno.ENOMEMr{<(jjX8http://docs.python.org/3/library/errno.html#errno.ENOMEMX-tr|<Xresource.RUSAGE_SELFr}<(jjXChttp://docs.python.org/3/library/resource.html#resource.RUSAGE_SELFX-tr~<Xtest.support.is_jythonr<(jjXAhttp://docs.python.org/3/library/test.html#test.support.is_jythonX-tr<X os.EX_NOPERMr<(jjX5http://docs.python.org/3/library/os.html#os.EX_NOPERMX-tr<Xresource.RLIM_INFINITYr<(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIM_INFINITYX-tr<Xtoken.VBAREQUALr<(jjX;http://docs.python.org/3/library/token.html#token.VBAREQUALX-tr<Xtarfile.PAX_FORMATr<(jjX@http://docs.python.org/3/library/tarfile.html#tarfile.PAX_FORMATX-tr<X os.O_SYNCr<(jjX2http://docs.python.org/3/library/os.html#os.O_SYNCX-tr<X token.PERCENTr<(jjX9http://docs.python.org/3/library/token.html#token.PERCENTX-tr<Xssl.OP_SINGLE_DH_USEr<(jjX>http://docs.python.org/3/library/ssl.html#ssl.OP_SINGLE_DH_USEX-tr<Xerrno.ECONNREFUSEDr<(jjX>http://docs.python.org/3/library/errno.html#errno.ECONNREFUSEDX-tr<Xftplib.all_errorsr<(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.all_errorsX-tr<Xerrno.ENOTEMPTYr<(jjX;http://docs.python.org/3/library/errno.html#errno.ENOTEMPTYX-tr<X os.O_DSYNCr<(jjX3http://docs.python.org/3/library/os.html#os.O_DSYNCX-tr<Xstat.SF_SNAPSHOTr<(jjX;http://docs.python.org/3/library/stat.html#stat.SF_SNAPSHOTX-tr<Xsqlite3.version_infor<(jjXBhttp://docs.python.org/3/library/sqlite3.html#sqlite3.version_infoX-tr<Xcrypt.METHOD_SHA512r<(jjX?http://docs.python.org/3/library/crypt.html#crypt.METHOD_SHA512X-tr<X os.EX_NOINPUTr<(jjX6http://docs.python.org/3/library/os.html#os.EX_NOINPUTX-tr<X dis.opnamer<(jjX4http://docs.python.org/3/library/dis.html#dis.opnameX-tr<X errno.ENOANOr<(jjX8http://docs.python.org/3/library/errno.html#errno.ENOANOX-tr<Xdecimal.MIN_ETINYr<(jjX?http://docs.python.org/3/library/decimal.html#decimal.MIN_ETINYX-tr<X METH_CLASSr<(jjX9http://docs.python.org/3/c-api/structures.html#METH_CLASSX-tr<Xdatetime.MINYEARr<(jjX?http://docs.python.org/3/library/datetime.html#datetime.MINYEARX-tr<Xerrno.EPFNOSUPPORTr<(jjX>http://docs.python.org/3/library/errno.html#errno.EPFNOSUPPORTX-tr<Xtoken.AMPEREQUALr<(jjX<http://docs.python.org/3/library/token.html#token.AMPEREQUALX-tr<Xresource.RLIMIT_SWAPr<(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_SWAPX-tr<Xstring.whitespacer<(jjX>http://docs.python.org/3/library/string.html#string.whitespaceX-tr<Xtoken.CIRCUMFLEXr<(jjX<http://docs.python.org/3/library/token.html#token.CIRCUMFLEXX-tr<Xos.EX_PROTOCOLr<(jjX7http://docs.python.org/3/library/os.html#os.EX_PROTOCOLX-tr<Xsignal.ITIMER_PROFr<(jjX?http://docs.python.org/3/library/signal.html#signal.ITIMER_PROFX-tr<X time.timezoner<(jjX8http://docs.python.org/3/library/time.html#time.timezoneX-tr<X errno.ENOEXECr<(jjX9http://docs.python.org/3/library/errno.html#errno.ENOEXECX-tr<XCxml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSINGr<(jjXqhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSINGX-tr<Xos.RTLD_NOLOADr<(jjX7http://docs.python.org/3/library/os.html#os.RTLD_NOLOADX-tr<Xwinsound.SND_ALIASr<(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.SND_ALIASX-tr<Xos.POSIX_FADV_WILLNEEDr<(jjX?http://docs.python.org/3/library/os.html#os.POSIX_FADV_WILLNEEDX-tr<X sys.last_typer<(jjX7http://docs.python.org/3/library/sys.html#sys.last_typeX-tr<X stat.S_ISUIDr<(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISUIDX-tr<X errno.EAGAINr<(jjX8http://docs.python.org/3/library/errno.html#errno.EAGAINX-tr<Xsite.ENABLE_USER_SITEr<(jjX@http://docs.python.org/3/library/site.html#site.ENABLE_USER_SITEX-tr<X stat.S_IFPORTr<(jjX8http://docs.python.org/3/library/stat.html#stat.S_IFPORTX-tr<Xsqlite3.sqlite_versionr<(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_versionX-tr<Xwinsound.MB_ICONEXCLAMATIONr<(jjXJhttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONEXCLAMATIONX-tr<Xtest.support.verboser<(jjX?http://docs.python.org/3/library/test.html#test.support.verboseX-tr<X os.EX_OSERRr<(jjX4http://docs.python.org/3/library/os.html#os.EX_OSERRX-tr<Xdecimal.ROUND_UPr<(jjX>http://docs.python.org/3/library/decimal.html#decimal.ROUND_UPX-tr<X os.O_NONBLOCKr<(jjX6http://docs.python.org/3/library/os.html#os.O_NONBLOCKX-tr<Xresource.RLIMIT_RTTIMEr<(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_RTTIMEX-tr<Xerrno.ESOCKTNOSUPPORTr<(jjXAhttp://docs.python.org/3/library/errno.html#errno.ESOCKTNOSUPPORTX-tr<X errno.EPERMr<(jjX7http://docs.python.org/3/library/errno.html#errno.EPERMX-tr<X7xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REFr<(jjXehttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REFX-tr<Xresource.RLIMIT_NPTSr<(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NPTSX-tr<Xzipfile.ZIP_LZMAr<(jjX>http://docs.python.org/3/library/zipfile.html#zipfile.ZIP_LZMAX-tr<X os.F_TLOCKr<(jjX3http://docs.python.org/3/library/os.html#os.F_TLOCKX-tr<Xtypes.CodeTyper<(jjX:http://docs.python.org/3/library/types.html#types.CodeTypeX-tr<X stat.ST_INOr<(jjX6http://docs.python.org/3/library/stat.html#stat.ST_INOX-tr<Xpathlib.PurePath.namer<(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.nameX-tr<Xdecimal.ROUND_DOWNr<(jjX@http://docs.python.org/3/library/decimal.html#decimal.ROUND_DOWNX-tr<X ssl.HAS_SNIr<(jjX5http://docs.python.org/3/library/ssl.html#ssl.HAS_SNIX-tr<Xdecimal.ROUND_CEILINGr<(jjXChttp://docs.python.org/3/library/decimal.html#decimal.ROUND_CEILINGX-tr<X errno.EMFILEr<(jjX8http://docs.python.org/3/library/errno.html#errno.EMFILEX-tr<Xuuid.NAMESPACE_OIDr<(jjX=http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_OIDX-tr<X gc.callbacksr<(jjX5http://docs.python.org/3/library/gc.html#gc.callbacksX-tr<Xsys.executabler<(jjX8http://docs.python.org/3/library/sys.html#sys.executableX-tr<X,xml.parsers.expat.errors.XML_ERROR_TEXT_DECLr<(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TEXT_DECLX-tr<Xresource.RUSAGE_CHILDRENr<(jjXGhttp://docs.python.org/3/library/resource.html#resource.RUSAGE_CHILDRENX-tr<Xwinreg.HKEY_CLASSES_ROOTr<(jjXEhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_CLASSES_ROOTX-tr=Xzipfile.ZIP_DEFLATEDr=(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.ZIP_DEFLATEDX-tr=Xsocket.AF_LINKr=(jjX;http://docs.python.org/3/library/socket.html#socket.AF_LINKX-tr=X errno.ENOLINKr=(jjX9http://docs.python.org/3/library/errno.html#errno.ENOLINKX-tr=X#sunau.AUDIO_FILE_ENCODING_LINEAR_32r=(jjXOhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_32X-tr=Xos.R_OKr =(jjX0http://docs.python.org/3/library/os.html#os.R_OKX-tr =X errno.EBADSLTr =(jjX9http://docs.python.org/3/library/errno.html#errno.EBADSLTX-tr =Xsys.hexversionr =(jjX8http://docs.python.org/3/library/sys.html#sys.hexversionX-tr=Xuuid.NAMESPACE_URLr=(jjX=http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_URLX-tr=X errno.ESRCHr=(jjX7http://docs.python.org/3/library/errno.html#errno.ESRCHX-tr=X errno.ELIBMAXr=(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBMAXX-tr=Xtime.CLOCK_MONOTONIC_RAWr=(jjXChttp://docs.python.org/3/library/time.html#time.CLOCK_MONOTONIC_RAWX-tr=Xstat.UF_HIDDENr=(jjX9http://docs.python.org/3/library/stat.html#stat.UF_HIDDENX-tr=Xssl.VERIFY_DEFAULTr=(jjX<http://docs.python.org/3/library/ssl.html#ssl.VERIFY_DEFAULTX-tr=Xsys.float_infor=(jjX8http://docs.python.org/3/library/sys.html#sys.float_infoX-tr=X stat.S_IFSOCKr=(jjX8http://docs.python.org/3/library/stat.html#stat.S_IFSOCKX-tr=XPy_TPFLAGS_DEFAULTr=(jjX>http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_DEFAULTX-tr =Xsys.base_prefixr!=(jjX9http://docs.python.org/3/library/sys.html#sys.base_prefixX-tr"=Xos.supports_fdr#=(jjX7http://docs.python.org/3/library/os.html#os.supports_fdX-tr$=Xssl.Purpose.CLIENT_AUTHr%=(jjXAhttp://docs.python.org/3/library/ssl.html#ssl.Purpose.CLIENT_AUTHX-tr&=X$xml.sax.handler.feature_external_pesr'=(jjXZhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_pesX-tr(=Xexitr)=(jjX4http://docs.python.org/3/library/constants.html#exitX-tr*=X token.DEDENTr+=(jjX8http://docs.python.org/3/library/token.html#token.DEDENTX-tr,=Xtime.CLOCK_REALTIMEr-=(jjX>http://docs.python.org/3/library/time.html#time.CLOCK_REALTIMEX-tr.=Xdis.hascomparer/=(jjX8http://docs.python.org/3/library/dis.html#dis.hascompareX-tr0=Xstring.printabler1=(jjX=http://docs.python.org/3/library/string.html#string.printableX-tr2=Xstat.UF_OPAQUEr3=(jjX9http://docs.python.org/3/library/stat.html#stat.UF_OPAQUEX-tr4=Xresource.RLIMIT_DATAr5=(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_DATAX-tr6=X errno.ENXIOr7=(jjX7http://docs.python.org/3/library/errno.html#errno.ENXIOX-tr8=Xcrypt.METHOD_MD5r9=(jjX<http://docs.python.org/3/library/crypt.html#crypt.METHOD_MD5X-tr:=X#winreg.REG_FULL_RESOURCE_DESCRIPTORr;=(jjXPhttp://docs.python.org/3/library/winreg.html#winreg.REG_FULL_RESOURCE_DESCRIPTORX-tr<=X METH_VARARGSr==(jjX;http://docs.python.org/3/c-api/structures.html#METH_VARARGSX-tr>=X3xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PIr?=(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PIX-tr@=XcreditsrA=(jjX7http://docs.python.org/3/library/constants.html#creditsX-trB=Xsocket.SOCK_NONBLOCKrC=(jjXAhttp://docs.python.org/3/library/socket.html#socket.SOCK_NONBLOCKX-trD=X+xml.parsers.expat.errors.XML_ERROR_PUBLICIDrE=(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PUBLICIDX-trF=X token.RBRACErG=(jjX8http://docs.python.org/3/library/token.html#token.RBRACEX-trH=Xwinreg.HKEY_CURRENT_CONFIGrI=(jjXGhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_CONFIGX-trJ=X sys.abiflagsrK=(jjX6http://docs.python.org/3/library/sys.html#sys.abiflagsX-trL=X errno.ENOSYSrM=(jjX8http://docs.python.org/3/library/errno.html#errno.ENOSYSX-trN=X errno.EINTRrO=(jjX7http://docs.python.org/3/library/errno.html#errno.EINTRX-trP=Xunicodedata.ucd_3_2_0rQ=(jjXGhttp://docs.python.org/3/library/unicodedata.html#unicodedata.ucd_3_2_0X-trR=Xemail.policy.HTTPrS=(jjXDhttp://docs.python.org/3/library/email.policy.html#email.policy.HTTPX-trT=X%asynchat.async_chat.ac_in_buffer_sizerU=(jjXThttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.ac_in_buffer_sizeX-trV=X os.SEEK_SETrW=(jjX4http://docs.python.org/3/library/os.html#os.SEEK_SETX-trX=X dis.cmp_oprY=(jjX4http://docs.python.org/3/library/dis.html#dis.cmp_opX-trZ=X"xml.sax.handler.feature_namespacesr[=(jjXXhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespacesX-tr\=X os.P_NOWAITr]=(jjX4http://docs.python.org/3/library/os.html#os.P_NOWAITX-tr^=Xsys.maxunicoder_=(jjX8http://docs.python.org/3/library/sys.html#sys.maxunicodeX-tr`=X os.EX_USAGEra=(jjX4http://docs.python.org/3/library/os.html#os.EX_USAGEX-trb=Xresource.RLIMIT_CPUrc=(jjXBhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_CPUX-trd=X sys.stdinre=(jjX3http://docs.python.org/3/library/sys.html#sys.stdinX-trf=Xos.EX_SOFTWARErg=(jjX7http://docs.python.org/3/library/os.html#os.EX_SOFTWAREX-trh=X sys.dllhandleri=(jjX7http://docs.python.org/3/library/sys.html#sys.dllhandleX-trj=Xtoken.GREATEREQUALrk=(jjX>http://docs.python.org/3/library/token.html#token.GREATEREQUALX-trl=X os.RTLD_NOWrm=(jjX4http://docs.python.org/3/library/os.html#os.RTLD_NOWX-trn=X errno.EIDRMro=(jjX7http://docs.python.org/3/library/errno.html#errno.EIDRMX-trp=Ximp.C_EXTENSIONrq=(jjX9http://docs.python.org/3/library/imp.html#imp.C_EXTENSIONX-trr=Xsocket.SOCK_RAWrs=(jjX<http://docs.python.org/3/library/socket.html#socket.SOCK_RAWX-trt=Xsocket.SOCK_STREAMru=(jjX?http://docs.python.org/3/library/socket.html#socket.SOCK_STREAMX-trv=Xdoctest.COMPARISON_FLAGSrw=(jjXFhttp://docs.python.org/3/library/doctest.html#doctest.COMPARISON_FLAGSX-trx=X errno.EEXISTry=(jjX8http://docs.python.org/3/library/errno.html#errno.EEXISTX-trz=X"xml.sax.handler.feature_validationr{=(jjXXhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_validationX-tr|=Xos.CLD_CONTINUEDr}=(jjX9http://docs.python.org/3/library/os.html#os.CLD_CONTINUEDX-tr~=X dis.hasnamer=(jjX5http://docs.python.org/3/library/dis.html#dis.hasnameX-tr=Xplistlib.FMT_BINARYr=(jjXBhttp://docs.python.org/3/library/plistlib.html#plistlib.FMT_BINARYX-tr=Xmimetypes.suffix_mapr=(jjXDhttp://docs.python.org/3/library/mimetypes.html#mimetypes.suffix_mapX-tr=Xlocale.CHAR_MAXr=(jjX<http://docs.python.org/3/library/locale.html#locale.CHAR_MAXX-tr=Xtokenize.ENCODINGr=(jjX@http://docs.python.org/3/library/tokenize.html#tokenize.ENCODINGX-tr=Xemail.policy.SMTPr=(jjXDhttp://docs.python.org/3/library/email.policy.html#email.policy.SMTPX-tr=Xos.XATTR_SIZE_MAXr=(jjX:http://docs.python.org/3/library/os.html#os.XATTR_SIZE_MAXX-tr=Xdatetime.MAXYEARr=(jjX?http://docs.python.org/3/library/datetime.html#datetime.MAXYEARX-tr=Xkeyword.kwlistr=(jjX<http://docs.python.org/3/library/keyword.html#keyword.kwlistX-tr=Xwinsound.SND_PURGEr=(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.SND_PURGEX-tr=Xos.supports_dir_fdr=(jjX;http://docs.python.org/3/library/os.html#os.supports_dir_fdX-tr=Xssl.CHANNEL_BINDING_TYPESr=(jjXChttp://docs.python.org/3/library/ssl.html#ssl.CHANNEL_BINDING_TYPESX-tr=X os.CLD_EXITEDr=(jjX6http://docs.python.org/3/library/os.html#os.CLD_EXITEDX-tr=Xos.W_OKr=(jjX0http://docs.python.org/3/library/os.html#os.W_OKX-tr=Xdecimal.HAVE_THREADSr=(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.HAVE_THREADSX-tr=X!xml.parsers.expat.errors.messagesr=(jjXOhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.messagesX-tr=X token.NUMBERr=(jjX8http://docs.python.org/3/library/token.html#token.NUMBERX-tr=Xtypes.BuiltinMethodTyper=(jjXChttp://docs.python.org/3/library/types.html#types.BuiltinMethodTypeX-tr=Xos.POSIX_FADV_DONTNEEDr=(jjX?http://docs.python.org/3/library/os.html#os.POSIX_FADV_DONTNEEDX-tr=Xsys.exec_prefixr=(jjX9http://docs.python.org/3/library/sys.html#sys.exec_prefixX-tr=Xos.XATTR_CREATEr=(jjX8http://docs.python.org/3/library/os.html#os.XATTR_CREATEX-tr=X sys.copyrightr=(jjX7http://docs.python.org/3/library/sys.html#sys.copyrightX-tr=Xsocket.SOCK_DGRAMr=(jjX>http://docs.python.org/3/library/socket.html#socket.SOCK_DGRAMX-tr=Xerrno.EALREADYr=(jjX:http://docs.python.org/3/library/errno.html#errno.EALREADYX-tr=Xerrno.ETOOMANYREFSr=(jjX>http://docs.python.org/3/library/errno.html#errno.ETOOMANYREFSX-tr=Xerrno.EMSGSIZEr=(jjX:http://docs.python.org/3/library/errno.html#errno.EMSGSIZEX-tr=Xpathlib.PurePath.parentr=(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parentX-tr=Xos.O_DIRECTORYr=(jjX7http://docs.python.org/3/library/os.html#os.O_DIRECTORYX-tr=Xweakref.CallableProxyTyper=(jjXGhttp://docs.python.org/3/library/weakref.html#weakref.CallableProxyTypeX-tr=X os.RTLD_LAZYr=(jjX5http://docs.python.org/3/library/os.html#os.RTLD_LAZYX-tr=Xwinsound.MB_ICONASTERISKr=(jjXGhttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONASTERISKX-tr=Xdoctest.REPORT_CDIFFr=(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_CDIFFX-tr=Xssl.PROTOCOL_SSLv3r=(jjX<http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv3X-tr=Xssl.PROTOCOL_SSLv2r=(jjX<http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv2X-tr=X errno.EBADFr=(jjX7http://docs.python.org/3/library/errno.html#errno.EBADFX-tr=X errno.EBADEr=(jjX7http://docs.python.org/3/library/errno.html#errno.EBADEX-tr=X os.environbr=(jjX4http://docs.python.org/3/library/os.html#os.environbX-tr=X os.O_RANDOMr=(jjX4http://docs.python.org/3/library/os.html#os.O_RANDOMX-tr=Xdbm.ndbm.libraryr=(jjX:http://docs.python.org/3/library/dbm.html#dbm.ndbm.libraryX-tr=Xxml.dom.pulldom.default_bufsizer=(jjXUhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.default_bufsizeX-tr=X;xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLINGr=(jjXihttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLINGX-tr=Xresource.RUSAGE_THREADr=(jjXEhttp://docs.python.org/3/library/resource.html#resource.RUSAGE_THREADX-tr=X ssl.HAS_ECDHr=(jjX6http://docs.python.org/3/library/ssl.html#ssl.HAS_ECDHX-tr=X errno.ENOSRr=(jjX7http://docs.python.org/3/library/errno.html#errno.ENOSRX-tr=X errno.EBADRr=(jjX7http://docs.python.org/3/library/errno.html#errno.EBADRX-tr=Xerrno.EAFNOSUPPORTr=(jjX>http://docs.python.org/3/library/errno.html#errno.EAFNOSUPPORTX-tr=X token.PLUSr=(jjX6http://docs.python.org/3/library/token.html#token.PLUSX-tr=Xlocale.D_T_FMTr=(jjX;http://docs.python.org/3/library/locale.html#locale.D_T_FMTX-tr=X errno.EROFSr=(jjX7http://docs.python.org/3/library/errno.html#errno.EROFSX-tr=X codecs.BOM_BEr=(jjX:http://docs.python.org/3/library/codecs.html#codecs.BOM_BEX-tr=Xdis.Instruction.is_jump_targetr=(jjXHhttp://docs.python.org/3/library/dis.html#dis.Instruction.is_jump_targetX-tr=X os.P_NOWAITOr=(jjX5http://docs.python.org/3/library/os.html#os.P_NOWAITOX-tr=Xsubprocess.CREATE_NEW_CONSOLEr=(jjXNhttp://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_CONSOLEX-tr=X sys.stdoutr=(jjX4http://docs.python.org/3/library/sys.html#sys.stdoutX-tr=Xtoken.CIRCUMFLEXEQUALr=(jjXAhttp://docs.python.org/3/library/token.html#token.CIRCUMFLEXEQUALX-tr=X errno.EFAULTr=(jjX8http://docs.python.org/3/library/errno.html#errno.EFAULTX-tr=X$sunau.AUDIO_FILE_ENCODING_ADPCM_G722r=(jjXPhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G722X-tr=X token.LPARr=(jjX6http://docs.python.org/3/library/token.html#token.LPARX-tr=Xsocket.AF_INETr=(jjX;http://docs.python.org/3/library/socket.html#socket.AF_INETX-tr=X+xml.parsers.expat.errors.XML_ERROR_FINISHEDr=(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FINISHEDX-tr=X token.AMPERr=(jjX7http://docs.python.org/3/library/token.html#token.AMPERX-tr=X stat.S_IFDOORr=(jjX8http://docs.python.org/3/library/stat.html#stat.S_IFDOORX-tr=X$sunau.AUDIO_FILE_ENCODING_ADPCM_G721r=(jjXPhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G721X-tr=Xcurses.ascii.controlnamesr=(jjXLhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.controlnamesX-tr=Xlocale.LC_MESSAGESr=(jjX?http://docs.python.org/3/library/locale.html#locale.LC_MESSAGESX-tr>Xpathlib.PurePath.stemr>(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.stemX-tr>Xdoctest.IGNORE_EXCEPTION_DETAILr>(jjXMhttp://docs.python.org/3/library/doctest.html#doctest.IGNORE_EXCEPTION_DETAILX-tr>Xcodecs.BOM_UTF32_LEr>(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_LEX-tr>Xerrno.ENETRESETr>(jjX;http://docs.python.org/3/library/errno.html#errno.ENETRESETX-tr>Xerrno.ENAMETOOLONGr >(jjX>http://docs.python.org/3/library/errno.html#errno.ENAMETOOLONGX-tr >Xtypes.BuiltinFunctionTyper >(jjXEhttp://docs.python.org/3/library/types.html#types.BuiltinFunctionTypeX-tr >Xsys.api_versionr >(jjX9http://docs.python.org/3/library/sys.html#sys.api_versionX-tr>X errno.EISNAMr>(jjX8http://docs.python.org/3/library/errno.html#errno.EISNAMX-tr>X(xml.sax.handler.property_lexical_handlerr>(jjX^http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_lexical_handlerX-tr>Xsunau.AUDIO_FILE_MAGICr>(jjXBhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_MAGICX-tr>X stat.S_IFDIRr>(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFDIRX-tr>Ximp.PY_COMPILEDr>(jjX9http://docs.python.org/3/library/imp.html#imp.PY_COMPILEDX-tr>Xdecimal.ROUND_HALF_EVENr>(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.ROUND_HALF_EVENX-tr>X site.PREFIXESr>(jjX8http://docs.python.org/3/library/site.html#site.PREFIXESX-tr>Xlocale.LC_NUMERICr>(jjX>http://docs.python.org/3/library/locale.html#locale.LC_NUMERICX-tr>X stat.S_IXUSRr>(jjX7http://docs.python.org/3/library/stat.html#stat.S_IXUSRX-tr >Xpickle.HIGHEST_PROTOCOLr!>(jjXDhttp://docs.python.org/3/library/pickle.html#pickle.HIGHEST_PROTOCOLX-tr">Xmsvcrt.LK_NBRLCKr#>(jjX=http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_NBRLCKX-tr$>X sys.prefixr%>(jjX4http://docs.python.org/3/library/sys.html#sys.prefixX-tr&>Xhttp.client.responsesr'>(jjXGhttp://docs.python.org/3/library/http.client.html#http.client.responsesX-tr(>X errno.EDOMr)>(jjX6http://docs.python.org/3/library/errno.html#errno.EDOMX-tr*>Xcodecs.BOM_UTF16r+>(jjX=http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16X-tr,>Xsignal.SIG_UNBLOCKr->(jjX?http://docs.python.org/3/library/signal.html#signal.SIG_UNBLOCKX-tr.>X token.LSQBr/>(jjX6http://docs.python.org/3/library/token.html#token.LSQBX-tr0>X1xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIXr1>(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIXX-tr2>Xdis.Instruction.argvalr3>(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.argvalX-tr4>Xdecimal.ROUND_05UPr5>(jjX@http://docs.python.org/3/library/decimal.html#decimal.ROUND_05UPX-tr6>Xtoken.SLASHEQUALr7>(jjX<http://docs.python.org/3/library/token.html#token.SLASHEQUALX-tr8>Xssl.OPENSSL_VERSION_NUMBERr9>(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_NUMBERX-tr:>Xos.POSIX_FADV_NORMALr;>(jjX=http://docs.python.org/3/library/os.html#os.POSIX_FADV_NORMALX-tr<>XPy_TPFLAGS_READYINGr=>(jjX?http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_READYINGX-tr>>Xtoken.DOUBLESLASHEQUALr?>(jjXBhttp://docs.python.org/3/library/token.html#token.DOUBLESLASHEQUALX-tr@>Xssl.PROTOCOL_TLSv1_1rA>(jjX>http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_1X-trB>Xssl.PROTOCOL_TLSv1_2rC>(jjX>http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_2X-trD>Xmath.erE>(jjX1http://docs.python.org/3/library/math.html#math.eX-trF>X errno.ECOMMrG>(jjX7http://docs.python.org/3/library/errno.html#errno.ECOMMX-trH>X token.LESSrI>(jjX6http://docs.python.org/3/library/token.html#token.LESSX-trJ>XPy_TPFLAGS_BASETYPErK>(jjX?http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_BASETYPEX-trL>X ssl.HAS_NPNrM>(jjX5http://docs.python.org/3/library/ssl.html#ssl.HAS_NPNX-trN>Xstring.ascii_lowercaserO>(jjXChttp://docs.python.org/3/library/string.html#string.ascii_lowercaseX-trP>Xwinsound.MB_ICONQUESTIONrQ>(jjXGhttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONQUESTIONX-trR>X errno.ESRMNTrS>(jjX8http://docs.python.org/3/library/errno.html#errno.ESRMNTX-trT>X token.EQUALrU>(jjX7http://docs.python.org/3/library/token.html#token.EQUALX-trV>Xerrno.ENETUNREACHrW>(jjX=http://docs.python.org/3/library/errno.html#errno.ENETUNREACHX-trX>X doctest.SKIPrY>(jjX:http://docs.python.org/3/library/doctest.html#doctest.SKIPX-trZ>Xos.SCHED_SPORADICr[>(jjX:http://docs.python.org/3/library/os.html#os.SCHED_SPORADICX-tr\>X8xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PEr]>(jjXfhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PEX-tr^>X stat.S_ISGIDr_>(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISGIDX-tr`>Xsys.warnoptionsra>(jjX9http://docs.python.org/3/library/sys.html#sys.warnoptionsX-trb>X errno.ENOENTrc>(jjX8http://docs.python.org/3/library/errno.html#errno.ENOENTX-trd>uXstd:termre>}rf>(Xvirtual machinerg>(jjX;http://docs.python.org/3/glossary.html#term-virtual-machineX-trh>X __future__ri>(jjX2http://docs.python.org/3/glossary.html#term-futureX-trj>X named tuplerk>(jjX7http://docs.python.org/3/glossary.html#term-named-tupleX-trl>Xiteratorrm>(jjX4http://docs.python.org/3/glossary.html#term-iteratorX-trn>Xlbylro>(jjX0http://docs.python.org/3/glossary.html#term-lbylX-trp>Xgeneric functionrq>(jjX<http://docs.python.org/3/glossary.html#term-generic-functionX-trr>X interpretedrs>(jjX7http://docs.python.org/3/glossary.html#term-interpretedX-trt>Xbytecoderu>(jjX4http://docs.python.org/3/glossary.html#term-bytecodeX-trv>X python 3000rw>(jjX7http://docs.python.org/3/glossary.html#term-python-3000X-trx>Xcoercionry>(jjX4http://docs.python.org/3/glossary.html#term-coercionX-trz>Xabstract base classr{>(jjX?http://docs.python.org/3/glossary.html#term-abstract-base-classX-tr|>X generatorr}>(jjX5http://docs.python.org/3/glossary.html#term-generatorX-tr~>X file objectr>(jjX7http://docs.python.org/3/glossary.html#term-file-objectX-tr>Xcomplex numberr>(jjX:http://docs.python.org/3/glossary.html#term-complex-numberX-tr>Xpath entry finderr>(jjX=http://docs.python.org/3/glossary.html#term-path-entry-finderX-tr>X2to3r>(jjX/http://docs.python.org/3/glossary.html#term-to3X-tr>Xkeyword argumentr>(jjX<http://docs.python.org/3/glossary.html#term-keyword-argumentX-tr>Xnamespace packager>(jjX=http://docs.python.org/3/glossary.html#term-namespace-packageX-tr>X>>>r>(jjX,http://docs.python.org/3/glossary.html#term-X-tr>Xtriple-quoted stringr>(jjX@http://docs.python.org/3/glossary.html#term-triple-quoted-stringX-tr>X statementr>(jjX5http://docs.python.org/3/glossary.html#term-statementX-tr>X module specr>(jjX7http://docs.python.org/3/glossary.html#term-module-specX-tr>Xgilr>(jjX/http://docs.python.org/3/glossary.html#term-gilX-tr>Xtyper>(jjX0http://docs.python.org/3/glossary.html#term-typeX-tr>X immutabler>(jjX5http://docs.python.org/3/glossary.html#term-immutableX-tr>Xfinderr>(jjX2http://docs.python.org/3/glossary.html#term-finderX-tr>Xfunctionr>(jjX4http://docs.python.org/3/glossary.html#term-functionX-tr>X...r>(jjX-http://docs.python.org/3/glossary.html#term-1X-tr>Xprovisional packager>(jjX?http://docs.python.org/3/glossary.html#term-provisional-packageX-tr>Xcontext managerr>(jjX;http://docs.python.org/3/glossary.html#term-context-managerX-tr>Xspecial methodr>(jjX:http://docs.python.org/3/glossary.html#term-special-methodX-tr>Xglobal interpreter lockr>(jjXChttp://docs.python.org/3/glossary.html#term-global-interpreter-lockX-tr>X text filer>(jjX5http://docs.python.org/3/glossary.html#term-text-fileX-tr>Xloaderr>(jjX2http://docs.python.org/3/glossary.html#term-loaderX-tr>X decoratorr>(jjX5http://docs.python.org/3/glossary.html#term-decoratorX-tr>Xlist comprehensionr>(jjX>http://docs.python.org/3/glossary.html#term-list-comprehensionX-tr>Xcpythonr>(jjX3http://docs.python.org/3/glossary.html#term-cpythonX-tr>Xprovisional apir>(jjX;http://docs.python.org/3/glossary.html#term-provisional-apiX-tr>Xlistr>(jjX0http://docs.python.org/3/glossary.html#term-listX-tr>Xpath based finderr>(jjX=http://docs.python.org/3/glossary.html#term-path-based-finderX-tr>Xgarbage collectionr>(jjX>http://docs.python.org/3/glossary.html#term-garbage-collectionX-tr>X descriptorr>(jjX6http://docs.python.org/3/glossary.html#term-descriptorX-tr>Xidler>(jjX0http://docs.python.org/3/glossary.html#term-idleX-tr>X zen of pythonr>(jjX9http://docs.python.org/3/glossary.html#term-zen-of-pythonX-tr>X duck-typingr>(jjX7http://docs.python.org/3/glossary.html#term-duck-typingX-tr>Xregular packager>(jjX;http://docs.python.org/3/glossary.html#term-regular-packageX-tr>Xfunction annotationr>(jjX?http://docs.python.org/3/glossary.html#term-function-annotationX-tr>Xreference countr>(jjX;http://docs.python.org/3/glossary.html#term-reference-countX-tr>Xmeta path finderr>(jjX<http://docs.python.org/3/glossary.html#term-meta-path-finderX-tr>Xfloor divisionr>(jjX:http://docs.python.org/3/glossary.html#term-floor-divisionX-tr>X interactiver>(jjX7http://docs.python.org/3/glossary.html#term-interactiveX-tr>Xpositional argumentr>(jjX?http://docs.python.org/3/glossary.html#term-positional-argumentX-tr>Xsequencer>(jjX4http://docs.python.org/3/glossary.html#term-sequenceX-tr>Xbdflr>(jjX0http://docs.python.org/3/glossary.html#term-bdflX-tr>X attributer>(jjX5http://docs.python.org/3/glossary.html#term-attributeX-tr>Xargumentr>(jjX4http://docs.python.org/3/glossary.html#term-argumentX-tr>Xmoduler>(jjX2http://docs.python.org/3/glossary.html#term-moduleX-tr>Xeafpr>(jjX0http://docs.python.org/3/glossary.html#term-eafpX-tr>X importingr>(jjX5http://docs.python.org/3/glossary.html#term-importingX-tr>Xnew-style classr>(jjX;http://docs.python.org/3/glossary.html#term-new-style-classX-tr>Xstruct sequencer>(jjX;http://docs.python.org/3/glossary.html#term-struct-sequenceX-tr>Xpythonicr>(jjX4http://docs.python.org/3/glossary.html#term-pythonicX-tr>Xslicer>(jjX1http://docs.python.org/3/glossary.html#term-sliceX-tr>Xiterabler>(jjX4http://docs.python.org/3/glossary.html#term-iterableX-tr>Xbytes-like objectr>(jjX=http://docs.python.org/3/glossary.html#term-bytes-like-objectX-tr>X namespacer>(jjX5http://docs.python.org/3/glossary.html#term-namespaceX-tr>X __slots__r>(jjX1http://docs.python.org/3/glossary.html#term-slotsX-tr>X binary filer>(jjX7http://docs.python.org/3/glossary.html#term-binary-fileX-tr>Ximporterr>(jjX4http://docs.python.org/3/glossary.html#term-importerX-tr>Xqualified namer>(jjX:http://docs.python.org/3/glossary.html#term-qualified-nameX-tr>Xfile-like objectr>(jjX<http://docs.python.org/3/glossary.html#term-file-like-objectX-tr>Xmutabler>(jjX3http://docs.python.org/3/glossary.html#term-mutableX-tr>X metaclassr>(jjX5http://docs.python.org/3/glossary.html#term-metaclassX-tr>Xmethodr>(jjX2http://docs.python.org/3/glossary.html#term-methodX-tr>Xpath entry hookr>(jjX;http://docs.python.org/3/glossary.html#term-path-entry-hookX-tr>X dictionaryr>(jjX6http://docs.python.org/3/glossary.html#term-dictionaryX-tr>Xobjectr>(jjX2http://docs.python.org/3/glossary.html#term-objectX-tr?X docstringr?(jjX5http://docs.python.org/3/glossary.html#term-docstringX-tr?Xmappingr?(jjX3http://docs.python.org/3/glossary.html#term-mappingX-tr?Xextension moduler?(jjX<http://docs.python.org/3/glossary.html#term-extension-moduleX-tr?X key functionr?(jjX8http://docs.python.org/3/glossary.html#term-key-functionX-tr?Xmethod resolution orderr ?(jjXChttp://docs.python.org/3/glossary.html#term-method-resolution-orderX-tr ?Xclassr ?(jjX1http://docs.python.org/3/glossary.html#term-classX-tr ?Xhashabler ?(jjX4http://docs.python.org/3/glossary.html#term-hashableX-tr?X import pathr?(jjX7http://docs.python.org/3/glossary.html#term-import-pathX-tr?Xpackager?(jjX3http://docs.python.org/3/glossary.html#term-packageX-tr?X parameterr?(jjX5http://docs.python.org/3/glossary.html#term-parameterX-tr?X path entryr?(jjX6http://docs.python.org/3/glossary.html#term-path-entryX-tr?Xsingle dispatchr?(jjX;http://docs.python.org/3/glossary.html#term-single-dispatchX-tr?Xportionr?(jjX3http://docs.python.org/3/glossary.html#term-portionX-tr?Xmror?(jjX/http://docs.python.org/3/glossary.html#term-mroX-tr?Xuniversal newlinesr?(jjX>http://docs.python.org/3/glossary.html#term-universal-newlinesX-tr?Xgenerator expressionr?(jjX@http://docs.python.org/3/glossary.html#term-generator-expressionX-tr ?X nested scoper!?(jjX8http://docs.python.org/3/glossary.html#term-nested-scopeX-tr"?Xviewr#?(jjX0http://docs.python.org/3/glossary.html#term-viewX-tr$?X expressionr%?(jjX6http://docs.python.org/3/glossary.html#term-expressionX-tr&?Xlambdar'?(jjX2http://docs.python.org/3/glossary.html#term-lambdaX-tr(?uX py:functionr)?}r*?(X bytearrayr+?(jjX9http://docs.python.org/3/library/functions.html#bytearrayX-tr,?Xallr-?(jjX3http://docs.python.org/3/library/functions.html#allX-tr.?Xcodecs.iterencoder/?(jjX>http://docs.python.org/3/library/codecs.html#codecs.iterencodeX-tr0?Xtest.support.bind_portr1?(jjXAhttp://docs.python.org/3/library/test.html#test.support.bind_portX-tr2?Xssl.get_server_certificater3?(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.get_server_certificateX-tr4?X os.chflagsr5?(jjX3http://docs.python.org/3/library/os.html#os.chflagsX-tr6?X stat.S_ISLNKr7?(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISLNKX-tr8?X os.removedirsr9?(jjX6http://docs.python.org/3/library/os.html#os.removedirsX-tr:?Xsite.getusersitepackagesr;?(jjXChttp://docs.python.org/3/library/site.html#site.getusersitepackagesX-trhttp://docs.python.org/3/library/hmac.html#hmac.compare_digestX-tr>?Xctypes.addressofr??(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.addressofX-tr@?Xtypes.new_classrA?(jjX;http://docs.python.org/3/library/types.html#types.new_classX-trB?Xctypes.pointerrC?(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.pointerX-trD?Xinspect.getgeneratorlocalsrE?(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.getgeneratorlocalsX-trF?Xplatform.platformrG?(jjX@http://docs.python.org/3/library/platform.html#platform.platformX-trH?Xresource.getpagesizerI?(jjXChttp://docs.python.org/3/library/resource.html#resource.getpagesizeX-trJ?Xstatistics.moderK?(jjX@http://docs.python.org/3/library/statistics.html#statistics.modeX-trL?Xunicodedata.digitrM?(jjXChttp://docs.python.org/3/library/unicodedata.html#unicodedata.digitX-trN?Xfilecmp.cmpfilesrO?(jjX>http://docs.python.org/3/library/filecmp.html#filecmp.cmpfilesX-trP?Xoperator.__and__rQ?(jjX?http://docs.python.org/3/library/operator.html#operator.__and__X-trR?Xgettext.textdomainrS?(jjX@http://docs.python.org/3/library/gettext.html#gettext.textdomainX-trT?Ximportlib.util.decode_sourcerU?(jjXLhttp://docs.python.org/3/library/importlib.html#importlib.util.decode_sourceX-trV?Xshutil.make_archiverW?(jjX@http://docs.python.org/3/library/shutil.html#shutil.make_archiveX-trX?Xquopri.encodestringrY?(jjX@http://docs.python.org/3/library/quopri.html#quopri.encodestringX-trZ?X time.sleepr[?(jjX5http://docs.python.org/3/library/time.html#time.sleepX-tr\?Xzipfile.is_zipfiler]?(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.is_zipfileX-tr^?X quopri.encoder_?(jjX:http://docs.python.org/3/library/quopri.html#quopri.encodeX-tr`?X warnings.warnra?(jjX<http://docs.python.org/3/library/warnings.html#warnings.warnX-trb?X*distutils.ccompiler.gen_preprocess_optionsrc?(jjXYhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.gen_preprocess_optionsX-trd?X imp.get_magicre?(jjX7http://docs.python.org/3/library/imp.html#imp.get_magicX-trf?Xbase64.b64encoderg?(jjX=http://docs.python.org/3/library/base64.html#base64.b64encodeX-trh?X pdb.runevalri?(jjX5http://docs.python.org/3/library/pdb.html#pdb.runevalX-trj?Xwebbrowser.open_newrk?(jjXDhttp://docs.python.org/3/library/webbrowser.html#webbrowser.open_newX-trl?Xoperator.__rshift__rm?(jjXBhttp://docs.python.org/3/library/operator.html#operator.__rshift__X-trn?Xoperator.__sub__ro?(jjX?http://docs.python.org/3/library/operator.html#operator.__sub__X-trp?X turtle.byerq?(jjX7http://docs.python.org/3/library/turtle.html#turtle.byeX-trr?X stat.S_ISCHRrs?(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISCHRX-trt?Xinspect.getfullargspecru?(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getfullargspecX-trv?Ximportlib.util.set_packagerw?(jjXJhttp://docs.python.org/3/library/importlib.html#importlib.util.set_packageX-trx?X heapq.mergery?(jjX7http://docs.python.org/3/library/heapq.html#heapq.mergeX-trz?Xipaddress.ip_addressr{?(jjXDhttp://docs.python.org/3/library/ipaddress.html#ipaddress.ip_addressX-tr|?Xxml.dom.pulldom.parseStringr}?(jjXQhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.parseStringX-tr~?Xoperator.setitemr?(jjX?http://docs.python.org/3/library/operator.html#operator.setitemX-tr?Xturtle.onreleaser?(jjX=http://docs.python.org/3/library/turtle.html#turtle.onreleaseX-tr?Xcontextlib.suppressr?(jjXDhttp://docs.python.org/3/library/contextlib.html#contextlib.suppressX-tr?Xsignal.sigwaitinfor?(jjX?http://docs.python.org/3/library/signal.html#signal.sigwaitinfoX-tr?X operator.and_r?(jjX<http://docs.python.org/3/library/operator.html#operator.and_X-tr?Xwinreg.SetValuer?(jjX<http://docs.python.org/3/library/winreg.html#winreg.SetValueX-tr?Xdistutils.dir_util.copy_treer?(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.copy_treeX-tr?Xtempfile.mkdtempr?(jjX?http://docs.python.org/3/library/tempfile.html#tempfile.mkdtempX-tr?Xstringprep.in_table_c11_c12r?(jjXLhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11_c12X-tr?X turtle.rightr?(jjX9http://docs.python.org/3/library/turtle.html#turtle.rightX-tr?Xabc.abstractpropertyr?(jjX>http://docs.python.org/3/library/abc.html#abc.abstractpropertyX-tr?Xoperator.__ne__r?(jjX>http://docs.python.org/3/library/operator.html#operator.__ne__X-tr?Xzlib.compressobjr?(jjX;http://docs.python.org/3/library/zlib.html#zlib.compressobjX-tr?X(distutils.ccompiler.get_default_compilerr?(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.get_default_compilerX-tr?Xsys.setcheckintervalr?(jjX>http://docs.python.org/3/library/sys.html#sys.setcheckintervalX-tr?Xasyncio.coroutiner?(jjXDhttp://docs.python.org/3/library/asyncio-task.html#asyncio.coroutineX-tr?Xcodecs.registerr?(jjX<http://docs.python.org/3/library/codecs.html#codecs.registerX-tr?Xturtle.begin_polyr?(jjX>http://docs.python.org/3/library/turtle.html#turtle.begin_polyX-tr?Xbase64.b32encoder?(jjX=http://docs.python.org/3/library/base64.html#base64.b32encodeX-tr?X ast.parser?(jjX3http://docs.python.org/3/library/ast.html#ast.parseX-tr?Xcalendar.firstweekdayr?(jjXDhttp://docs.python.org/3/library/calendar.html#calendar.firstweekdayX-tr?X_thread.allocate_lockr?(jjXChttp://docs.python.org/3/library/_thread.html#_thread.allocate_lockX-tr?X operator.imulr?(jjX<http://docs.python.org/3/library/operator.html#operator.imulX-tr?X math.ldexpr?(jjX5http://docs.python.org/3/library/math.html#math.ldexpX-tr?X cmath.tanhr?(jjX6http://docs.python.org/3/library/cmath.html#cmath.tanhX-tr?Xinspect.currentframer?(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.currentframeX-tr?Xmsilib.add_tablesr?(jjX>http://docs.python.org/3/library/msilib.html#msilib.add_tablesX-tr?X imp.reloadr?(jjX4http://docs.python.org/3/library/imp.html#imp.reloadX-tr?X os.getsidr?(jjX2http://docs.python.org/3/library/os.html#os.getsidX-tr?Xsumr?(jjX3http://docs.python.org/3/library/functions.html#sumX-tr?Xxml.parsers.expat.ErrorStringr?(jjXKhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ErrorStringX-tr?Xbase64.standard_b64decoder?(jjXFhttp://docs.python.org/3/library/base64.html#base64.standard_b64decodeX-tr?Xmath.logr?(jjX3http://docs.python.org/3/library/math.html#math.logX-tr?Xlinecache.clearcacher?(jjXDhttp://docs.python.org/3/library/linecache.html#linecache.clearcacheX-tr?Xabsr?(jjX3http://docs.python.org/3/library/functions.html#absX-tr?Xtextwrap.indentr?(jjX>http://docs.python.org/3/library/textwrap.html#textwrap.indentX-tr?Xunittest.mock.create_autospecr?(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.create_autospecX-tr?Xasyncio.start_serverr?(jjXIhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.start_serverX-tr?X os.path.joinr?(jjX:http://docs.python.org/3/library/os.path.html#os.path.joinX-tr?Xheapq.heappushpopr?(jjX=http://docs.python.org/3/library/heapq.html#heapq.heappushpopX-tr?Xinspect.getsourcer?(jjX?http://docs.python.org/3/library/inspect.html#inspect.getsourceX-tr?Xthreading.active_countr?(jjXFhttp://docs.python.org/3/library/threading.html#threading.active_countX-tr?Xos.path.sameopenfiler?(jjXBhttp://docs.python.org/3/library/os.path.html#os.path.sameopenfileX-tr?Xipaddress.v4_int_to_packedr?(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.v4_int_to_packedX-tr?Xsys._clear_type_cacher?(jjX?http://docs.python.org/3/library/sys.html#sys._clear_type_cacheX-tr?Xstringprep.in_table_c3r?(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c3X-tr?Xstringprep.in_table_c4r?(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c4X-tr?Xstringprep.in_table_c5r?(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c5X-tr?Xstringprep.in_table_c6r?(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c6X-tr?Xstringprep.in_table_c7r?(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c7X-tr?Xstringprep.in_table_c8r?(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c8X-tr?Xstringprep.in_table_c9r?(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c9X-tr?Xtest.support.temp_cwdr?(jjX@http://docs.python.org/3/library/test.html#test.support.temp_cwdX-tr?Xtraceback.print_tbr?(jjXBhttp://docs.python.org/3/library/traceback.html#traceback.print_tbX-tr?X signal.alarmr?(jjX9http://docs.python.org/3/library/signal.html#signal.alarmX-tr?Xtest.support.requiresr?(jjX@http://docs.python.org/3/library/test.html#test.support.requiresX-tr?Xdifflib.context_diffr?(jjXBhttp://docs.python.org/3/library/difflib.html#difflib.context_diffX-tr?X turtle.xcorr?(jjX8http://docs.python.org/3/library/turtle.html#turtle.xcorX-tr?Xos.nicer?(jjX0http://docs.python.org/3/library/os.html#os.niceX-tr?Xaudioop.getsampler?(jjX?http://docs.python.org/3/library/audioop.html#audioop.getsampleX-tr?X uu.decoder?(jjX2http://docs.python.org/3/library/uu.html#uu.decodeX-tr?Xitertools.cycler?(jjX?http://docs.python.org/3/library/itertools.html#itertools.cycleX-tr?X ctypes.resizer?(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.resizeX-tr?Xtempfile.SpooledTemporaryFiler?(jjXLhttp://docs.python.org/3/library/tempfile.html#tempfile.SpooledTemporaryFileX-tr?Xdoctest.register_optionflagr?(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.register_optionflagX-tr@X dbm.ndbm.openr@(jjX7http://docs.python.org/3/library/dbm.html#dbm.ndbm.openX-tr@Xpropertyr@(jjX8http://docs.python.org/3/library/functions.html#propertyX-tr@Xlogging.getLogRecordFactoryr@(jjXIhttp://docs.python.org/3/library/logging.html#logging.getLogRecordFactoryX-tr@Xtest.support.make_bad_fdr@(jjXChttp://docs.python.org/3/library/test.html#test.support.make_bad_fdX-tr@Xwinreg.ConnectRegistryr @(jjXChttp://docs.python.org/3/library/winreg.html#winreg.ConnectRegistryX-tr @X spwd.getspnamr @(jjX8http://docs.python.org/3/library/spwd.html#spwd.getspnamX-tr @Xplatform.architecturer @(jjXDhttp://docs.python.org/3/library/platform.html#platform.architectureX-tr@Xos.path.getatimer@(jjX>http://docs.python.org/3/library/os.path.html#os.path.getatimeX-tr@X distutils.fancy_getopt.wrap_textr@(jjXOhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.wrap_textX-tr@X os.setpgidr@(jjX3http://docs.python.org/3/library/os.html#os.setpgidX-tr@Xparser.st2listr@(jjX;http://docs.python.org/3/library/parser.html#parser.st2listX-tr@X msvcrt.putwchr@(jjX:http://docs.python.org/3/library/msvcrt.html#msvcrt.putwchX-tr@Xplatform.python_implementationr@(jjXMhttp://docs.python.org/3/library/platform.html#platform.python_implementationX-tr@Xfileinput.filelinenor@(jjXDhttp://docs.python.org/3/library/fileinput.html#fileinput.filelinenoX-tr@Xsymtable.symtabler@(jjX@http://docs.python.org/3/library/symtable.html#symtable.symtableX-tr@Xsysconfig.get_path_namesr@(jjXHhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_path_namesX-tr @Xwsgiref.util.guess_schemer!@(jjXGhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.guess_schemeX-tr"@X msvcrt.getcher#@(jjX:http://docs.python.org/3/library/msvcrt.html#msvcrt.getcheX-tr$@X"distutils.sysconfig.get_config_varr%@(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_varX-tr&@X locale.atoir'@(jjX8http://docs.python.org/3/library/locale.html#locale.atoiX-tr(@Ximportlib.util.spec_from_loaderr)@(jjXOhttp://docs.python.org/3/library/importlib.html#importlib.util.spec_from_loaderX-tr*@Xsubprocess.check_callr+@(jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.check_callX-tr,@Xaudioop.reverser-@(jjX=http://docs.python.org/3/library/audioop.html#audioop.reverseX-tr.@Xcurses.reset_shell_moder/@(jjXDhttp://docs.python.org/3/library/curses.html#curses.reset_shell_modeX-tr0@X turtle.gotor1@(jjX8http://docs.python.org/3/library/turtle.html#turtle.gotoX-tr2@Xos.chmodr3@(jjX1http://docs.python.org/3/library/os.html#os.chmodX-tr4@Xlogging.criticalr5@(jjX>http://docs.python.org/3/library/logging.html#logging.criticalX-tr6@Xlocale.getdefaultlocaler7@(jjXDhttp://docs.python.org/3/library/locale.html#locale.getdefaultlocaleX-tr8@Xcurses.textpad.rectangler9@(jjXEhttp://docs.python.org/3/library/curses.html#curses.textpad.rectangleX-tr:@X locale.atofr;@(jjX8http://docs.python.org/3/library/locale.html#locale.atofX-tr<@Xplatform.mac_verr=@(jjX?http://docs.python.org/3/library/platform.html#platform.mac_verX-tr>@Xdifflib.IS_CHARACTER_JUNKr?@(jjXGhttp://docs.python.org/3/library/difflib.html#difflib.IS_CHARACTER_JUNKX-tr@@X os.getpgidrA@(jjX3http://docs.python.org/3/library/os.html#os.getpgidX-trB@X cmath.exprC@(jjX5http://docs.python.org/3/library/cmath.html#cmath.expX-trD@Xpkgutil.get_loaderrE@(jjX@http://docs.python.org/3/library/pkgutil.html#pkgutil.get_loaderX-trF@Xinspect.isgetsetdescriptorrG@(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.isgetsetdescriptorX-trH@X#distutils.fancy_getopt.fancy_getoptrI@(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.fancy_getoptX-trJ@X_thread.get_identrK@(jjX?http://docs.python.org/3/library/_thread.html#_thread.get_identX-trL@Xbinascii.a2b_qprM@(jjX>http://docs.python.org/3/library/binascii.html#binascii.a2b_qpX-trN@Xoperator.is_notrO@(jjX>http://docs.python.org/3/library/operator.html#operator.is_notX-trP@Xreadline.set_completerrQ@(jjXEhttp://docs.python.org/3/library/readline.html#readline.set_completerX-trR@Xfaulthandler.enablerS@(jjXFhttp://docs.python.org/3/library/faulthandler.html#faulthandler.enableX-trT@X cgitb.handlerrU@(jjX9http://docs.python.org/3/library/cgitb.html#cgitb.handlerX-trV@Xdistutils.util.rfc822_escaperW@(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.util.rfc822_escapeX-trX@X html.escaperY@(jjX6http://docs.python.org/3/library/html.html#html.escapeX-trZ@Xossaudiodev.openmixerr[@(jjXGhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.openmixerX-tr\@Xcgi.print_environ_usager]@(jjXAhttp://docs.python.org/3/library/cgi.html#cgi.print_environ_usageX-tr^@Xunittest.mock.patch.dictr_@(jjXLhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.dictX-tr`@Xaudioop.minmaxra@(jjX<http://docs.python.org/3/library/audioop.html#audioop.minmaxX-trb@X pickle.loadsrc@(jjX9http://docs.python.org/3/library/pickle.html#pickle.loadsX-trd@Xstatistics.median_highre@(jjXGhttp://docs.python.org/3/library/statistics.html#statistics.median_highX-trf@Xturtle.tiltanglerg@(jjX=http://docs.python.org/3/library/turtle.html#turtle.tiltangleX-trh@Xsocket.inet_ptonri@(jjX=http://docs.python.org/3/library/socket.html#socket.inet_ptonX-trj@Xtyperk@(jjX4http://docs.python.org/3/library/functions.html#typeX-trl@Xoperator.__not__rm@(jjX?http://docs.python.org/3/library/operator.html#operator.__not__X-trn@Xctypes.WinErrorro@(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.WinErrorX-trp@Xsocket.inet_atonrq@(jjX=http://docs.python.org/3/library/socket.html#socket.inet_atonX-trr@Xreadline.get_history_itemrs@(jjXHhttp://docs.python.org/3/library/readline.html#readline.get_history_itemX-trt@X plistlib.dumpru@(jjX<http://docs.python.org/3/library/plistlib.html#plistlib.dumpX-trv@Xsys.setswitchintervalrw@(jjX?http://docs.python.org/3/library/sys.html#sys.setswitchintervalX-trx@Xinspect.getclasstreery@(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.getclasstreeX-trz@Xsocket.sethostnamer{@(jjX?http://docs.python.org/3/library/socket.html#socket.sethostnameX-tr|@X msvcrt.putchr}@(jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt.putchX-tr~@X turtle.undor@(jjX8http://docs.python.org/3/library/turtle.html#turtle.undoX-tr@X turtle.ycorr@(jjX8http://docs.python.org/3/library/turtle.html#turtle.ycorX-tr@Xcsv.list_dialectsr@(jjX;http://docs.python.org/3/library/csv.html#csv.list_dialectsX-tr@Xxml.dom.minidom.parseStringr@(jjXQhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.parseStringX-tr@Xaudioop.lin2linr@(jjX=http://docs.python.org/3/library/audioop.html#audioop.lin2linX-tr@X%multiprocessing.sharedctypes.RawArrayr@(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.RawArrayX-tr@Xinspect.isroutiner@(jjX?http://docs.python.org/3/library/inspect.html#inspect.isroutineX-tr@X"distutils.ccompiler.show_compilersr@(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.show_compilersX-tr@Xdelattrr@(jjX7http://docs.python.org/3/library/functions.html#delattrX-tr@Xmodulefinder.AddPackagePathr@(jjXNhttp://docs.python.org/3/library/modulefinder.html#modulefinder.AddPackagePathX-tr@Xparser.compilestr@(jjX=http://docs.python.org/3/library/parser.html#parser.compilestX-tr@Xos.get_exec_pathr@(jjX9http://docs.python.org/3/library/os.html#os.get_exec_pathX-tr@Xplatform.python_version_tupler@(jjXLhttp://docs.python.org/3/library/platform.html#platform.python_version_tupleX-tr@X zlib.crc32r@(jjX5http://docs.python.org/3/library/zlib.html#zlib.crc32X-tr@Xsocket.gethostnamer@(jjX?http://docs.python.org/3/library/socket.html#socket.gethostnameX-tr@Xsysconfig.get_config_varr@(jjXHhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_config_varX-tr@Xfileinput.isfirstliner@(jjXEhttp://docs.python.org/3/library/fileinput.html#fileinput.isfirstlineX-tr@Xunittest.mock.patchr@(jjXGhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patchX-tr@X select.kqueuer@(jjX:http://docs.python.org/3/library/select.html#select.kqueueX-tr@Xmath.erfr@(jjX3http://docs.python.org/3/library/math.html#math.erfX-tr@Xturtle.distancer@(jjX<http://docs.python.org/3/library/turtle.html#turtle.distanceX-tr@Xcurses.ascii.iscntrlr@(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.iscntrlX-tr@Xos.getgrouplistr@(jjX8http://docs.python.org/3/library/os.html#os.getgrouplistX-tr@Xaudioop.findfitr@(jjX=http://docs.python.org/3/library/audioop.html#audioop.findfitX-tr@X_thread.start_new_threadr@(jjXFhttp://docs.python.org/3/library/_thread.html#_thread.start_new_threadX-tr@Xinspect.getmoduler@(jjX?http://docs.python.org/3/library/inspect.html#inspect.getmoduleX-tr@Xlinecache.getliner@(jjXAhttp://docs.python.org/3/library/linecache.html#linecache.getlineX-tr@X operator.eqr@(jjX:http://docs.python.org/3/library/operator.html#operator.eqX-tr@Xasyncio.open_connectionr@(jjXLhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.open_connectionX-tr@X operator.iaddr@(jjX<http://docs.python.org/3/library/operator.html#operator.iaddX-tr@X os.lchownr@(jjX2http://docs.python.org/3/library/os.html#os.lchownX-tr@Xoperator.truthr@(jjX=http://docs.python.org/3/library/operator.html#operator.truthX-tr@Xdoctest.testsourcer@(jjX@http://docs.python.org/3/library/doctest.html#doctest.testsourceX-tr@X os.cpu_countr@(jjX5http://docs.python.org/3/library/os.html#os.cpu_countX-tr@Xcurses.initscrr@(jjX;http://docs.python.org/3/library/curses.html#curses.initscrX-tr@Xwebbrowser.getr@(jjX?http://docs.python.org/3/library/webbrowser.html#webbrowser.getX-tr@X gc.enabler@(jjX2http://docs.python.org/3/library/gc.html#gc.enableX-tr@Xxml.sax.saxutils.quoteattrr@(jjXNhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.quoteattrX-tr@Xreadline.set_startup_hookr@(jjXHhttp://docs.python.org/3/library/readline.html#readline.set_startup_hookX-tr@Xfnmatch.translater@(jjX?http://docs.python.org/3/library/fnmatch.html#fnmatch.translateX-tr@X operator.ixorr@(jjX<http://docs.python.org/3/library/operator.html#operator.ixorX-tr@Xatexit.unregisterr@(jjX>http://docs.python.org/3/library/atexit.html#atexit.unregisterX-tr@X operator.ipowr@(jjX<http://docs.python.org/3/library/operator.html#operator.ipowX-tr@Xcurses.ascii.isgraphr@(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isgraphX-tr@X"email.utils.collapse_rfc2231_valuer@(jjXShttp://docs.python.org/3/library/email.util.html#email.utils.collapse_rfc2231_valueX-tr@X os.getuidr@(jjX2http://docs.python.org/3/library/os.html#os.getuidX-tr@Xtarfile.is_tarfiler@(jjX@http://docs.python.org/3/library/tarfile.html#tarfile.is_tarfileX-tr@X gzip.compressr@(jjX8http://docs.python.org/3/library/gzip.html#gzip.compressX-tr@Xplistlib.writePlistr@(jjXBhttp://docs.python.org/3/library/plistlib.html#plistlib.writePlistX-tr@Xcurses.termattrsr@(jjX=http://docs.python.org/3/library/curses.html#curses.termattrsX-tr@X curses.napmsr@(jjX9http://docs.python.org/3/library/curses.html#curses.napmsX-tr@Ximportlib.import_moduler@(jjXGhttp://docs.python.org/3/library/importlib.html#importlib.import_moduleX-tr@Xfpectl.turnon_sigfper@(jjXAhttp://docs.python.org/3/library/fpectl.html#fpectl.turnon_sigfpeX-tr@Xos.path.realpathr@(jjX>http://docs.python.org/3/library/os.path.html#os.path.realpathX-tr@Xcurses.def_prog_moder@(jjXAhttp://docs.python.org/3/library/curses.html#curses.def_prog_modeX-tr@X math.copysignr@(jjX8http://docs.python.org/3/library/math.html#math.copysignX-tr@Xtest.support.run_unittestr@(jjXDhttp://docs.python.org/3/library/test.html#test.support.run_unittestX-tr@Xos.getpriorityr@(jjX7http://docs.python.org/3/library/os.html#os.getpriorityX-tr@X shutil.whichr@(jjX9http://docs.python.org/3/library/shutil.html#shutil.whichX-tr@X curses.noechor@(jjX:http://docs.python.org/3/library/curses.html#curses.noechoX-tr@Xparser.issuiter@(jjX;http://docs.python.org/3/library/parser.html#parser.issuiteX-tr@X math.erfcr@(jjX4http://docs.python.org/3/library/math.html#math.erfcX-tr@X turtle.speedr@(jjX9http://docs.python.org/3/library/turtle.html#turtle.speedX-tr@Xensurepip.bootstrapr@(jjXChttp://docs.python.org/3/library/ensurepip.html#ensurepip.bootstrapX-tr@X math.sinhr@(jjX4http://docs.python.org/3/library/math.html#math.sinhX-trAX inspect.stackrA(jjX;http://docs.python.org/3/library/inspect.html#inspect.stackX-trAX turtle.clonerA(jjX9http://docs.python.org/3/library/turtle.html#turtle.cloneX-trAXinspect.getsourcefilerA(jjXChttp://docs.python.org/3/library/inspect.html#inspect.getsourcefileX-trAXssl.get_default_verify_pathsrA(jjXFhttp://docs.python.org/3/library/ssl.html#ssl.get_default_verify_pathsX-trAX classmethodr A(jjX;http://docs.python.org/3/library/functions.html#classmethodX-tr AXfileinput.inputr A(jjX?http://docs.python.org/3/library/fileinput.html#fileinput.inputX-tr AXturtle.shapetransformr A(jjXBhttp://docs.python.org/3/library/turtle.html#turtle.shapetransformX-trAXshutil.copyfilerA(jjX<http://docs.python.org/3/library/shutil.html#shutil.copyfileX-trAXoperator.__gt__rA(jjX>http://docs.python.org/3/library/operator.html#operator.__gt__X-trAXunittest.removeResultrA(jjXDhttp://docs.python.org/3/library/unittest.html#unittest.removeResultX-trAXwinreg.QueryValueExrA(jjX@http://docs.python.org/3/library/winreg.html#winreg.QueryValueExX-trAXturtle.undobufferentriesrA(jjXEhttp://docs.python.org/3/library/turtle.html#turtle.undobufferentriesX-trAXunicodedata.decompositionrA(jjXKhttp://docs.python.org/3/library/unicodedata.html#unicodedata.decompositionX-trAXoperator.__neg__rA(jjX?http://docs.python.org/3/library/operator.html#operator.__neg__X-trAXshutil.get_archive_formatsrA(jjXGhttp://docs.python.org/3/library/shutil.html#shutil.get_archive_formatsX-trAXwarnings.showwarningrA(jjXChttp://docs.python.org/3/library/warnings.html#warnings.showwarningX-tr AXplatform.python_compilerr!A(jjXGhttp://docs.python.org/3/library/platform.html#platform.python_compilerX-tr"AXoperator.__ixor__r#A(jjX@http://docs.python.org/3/library/operator.html#operator.__ixor__X-tr$AXhelpr%A(jjX4http://docs.python.org/3/library/functions.html#helpX-tr&AXvarsr'A(jjX4http://docs.python.org/3/library/functions.html#varsX-tr(AXgetopt.gnu_getoptr)A(jjX>http://docs.python.org/3/library/getopt.html#getopt.gnu_getoptX-tr*AXtokenize.detect_encodingr+A(jjXGhttp://docs.python.org/3/library/tokenize.html#tokenize.detect_encodingX-tr,AXos.syncr-A(jjX0http://docs.python.org/3/library/os.html#os.syncX-tr.AX"email.iterators.body_line_iteratorr/A(jjXXhttp://docs.python.org/3/library/email.iterators.html#email.iterators.body_line_iteratorX-tr0AXcurses.tigetstrr1A(jjX<http://docs.python.org/3/library/curses.html#curses.tigetstrX-tr2AXcurses.getmouser3A(jjX<http://docs.python.org/3/library/curses.html#curses.getmouseX-tr4AX turtle.tracerr5A(jjX:http://docs.python.org/3/library/turtle.html#turtle.tracerX-tr6AXcurses.ascii.unctrlr7A(jjXFhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.unctrlX-tr8AXreprlib.recursive_reprr9A(jjXDhttp://docs.python.org/3/library/reprlib.html#reprlib.recursive_reprX-tr:AXoperator.itruedivr;A(jjX@http://docs.python.org/3/library/operator.html#operator.itruedivX-trAX asyncio.waitr?A(jjX?http://docs.python.org/3/library/asyncio-task.html#asyncio.waitX-tr@AX os.listdirrAA(jjX3http://docs.python.org/3/library/os.html#os.listdirX-trBAXsignal.sigtimedwaitrCA(jjX@http://docs.python.org/3/library/signal.html#signal.sigtimedwaitX-trDAX pdb.set_tracerEA(jjX7http://docs.python.org/3/library/pdb.html#pdb.set_traceX-trFAX operator.is_rGA(jjX;http://docs.python.org/3/library/operator.html#operator.is_X-trHAXturtle.degreesrIA(jjX;http://docs.python.org/3/library/turtle.html#turtle.degreesX-trJAX parser.suiterKA(jjX9http://docs.python.org/3/library/parser.html#parser.suiteX-trLAXsys.getallocatedblocksrMA(jjX@http://docs.python.org/3/library/sys.html#sys.getallocatedblocksX-trNAXsys._debugmallocstatsrOA(jjX?http://docs.python.org/3/library/sys.html#sys._debugmallocstatsX-trPAXdbm.openrQA(jjX2http://docs.python.org/3/library/dbm.html#dbm.openX-trRAXfpectl.turnoff_sigfperSA(jjXBhttp://docs.python.org/3/library/fpectl.html#fpectl.turnoff_sigfpeX-trTAXos.path.getmtimerUA(jjX>http://docs.python.org/3/library/os.path.html#os.path.getmtimeX-trVAXsys.getdlopenflagsrWA(jjX<http://docs.python.org/3/library/sys.html#sys.getdlopenflagsX-trXAXasyncio.wait_forrYA(jjXChttp://docs.python.org/3/library/asyncio-task.html#asyncio.wait_forX-trZAXinspect.isframer[A(jjX=http://docs.python.org/3/library/inspect.html#inspect.isframeX-tr\AXoperator.__truediv__r]A(jjXChttp://docs.python.org/3/library/operator.html#operator.__truediv__X-tr^AXreadline.add_historyr_A(jjXChttp://docs.python.org/3/library/readline.html#readline.add_historyX-tr`AXemail.encoders.encode_noopraA(jjXOhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_noopX-trbAXos.path.islinkrcA(jjX<http://docs.python.org/3/library/os.path.html#os.path.islinkX-trdAXsocket.getservbynamereA(jjXAhttp://docs.python.org/3/library/socket.html#socket.getservbynameX-trfAXturtle.shapesizergA(jjX=http://docs.python.org/3/library/turtle.html#turtle.shapesizeX-trhAXdoctest.script_from_examplesriA(jjXJhttp://docs.python.org/3/library/doctest.html#doctest.script_from_examplesX-trjAXos.majorrkA(jjX1http://docs.python.org/3/library/os.html#os.majorX-trlAXinspect.getouterframesrmA(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getouterframesX-trnAX math.truncroA(jjX5http://docs.python.org/3/library/math.html#math.truncX-trpAX marshal.dumpsrqA(jjX;http://docs.python.org/3/library/marshal.html#marshal.dumpsX-trrAXimp.release_lockrsA(jjX:http://docs.python.org/3/library/imp.html#imp.release_lockX-trtAXcurses.doupdateruA(jjX<http://docs.python.org/3/library/curses.html#curses.doupdateX-trvAXaudioop.ulaw2linrwA(jjX>http://docs.python.org/3/library/audioop.html#audioop.ulaw2linX-trxAXaudioop.lin2alawryA(jjX>http://docs.python.org/3/library/audioop.html#audioop.lin2alawX-trzAX uuid.uuid3r{A(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid3X-tr|AX sys.gettracer}A(jjX6http://docs.python.org/3/library/sys.html#sys.gettraceX-tr~AX locale.strrA(jjX7http://docs.python.org/3/library/locale.html#locale.strX-trAXlogging.getLoggerClassrA(jjXDhttp://docs.python.org/3/library/logging.html#logging.getLoggerClassX-trAX cgi.escaperA(jjX4http://docs.python.org/3/library/cgi.html#cgi.escapeX-trAXcalendar.weekdayrA(jjX?http://docs.python.org/3/library/calendar.html#calendar.weekdayX-trAXwarnings.filterwarningsrA(jjXFhttp://docs.python.org/3/library/warnings.html#warnings.filterwarningsX-trAXrandom.getstaterA(jjX<http://docs.python.org/3/library/random.html#random.getstateX-trAXreadline.replace_history_itemrA(jjXLhttp://docs.python.org/3/library/readline.html#readline.replace_history_itemX-trAXctypes.CFUNCTYPErA(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.CFUNCTYPEX-trAXdecimal.setcontextrA(jjX@http://docs.python.org/3/library/decimal.html#decimal.setcontextX-trAXdecimal.localcontextrA(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.localcontextX-trAXos.path.lexistsrA(jjX=http://docs.python.org/3/library/os.path.html#os.path.lexistsX-trAXxml.etree.ElementTree.parserA(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.parseX-trAX%multiprocessing.get_all_start_methodsrA(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_all_start_methodsX-trAXos.wait3rA(jjX1http://docs.python.org/3/library/os.html#os.wait3X-trAXinspect.isclassrA(jjX=http://docs.python.org/3/library/inspect.html#inspect.isclassX-trAX shutil.chownrA(jjX9http://docs.python.org/3/library/shutil.html#shutil.chownX-trAXitertools.combinationsrA(jjXFhttp://docs.python.org/3/library/itertools.html#itertools.combinationsX-trAX binhex.hexbinrA(jjX:http://docs.python.org/3/library/binhex.html#binhex.hexbinX-trAX weakref.proxyrA(jjX;http://docs.python.org/3/library/weakref.html#weakref.proxyX-trAXcodecs.lookup_errorrA(jjX@http://docs.python.org/3/library/codecs.html#codecs.lookup_errorX-trAXitertools.islicerA(jjX@http://docs.python.org/3/library/itertools.html#itertools.isliceX-trAXinspect.isabstractrA(jjX@http://docs.python.org/3/library/inspect.html#inspect.isabstractX-trAXxml.etree.ElementTree.XMLIDrA(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLIDX-trAX curses.getsyxrA(jjX:http://docs.python.org/3/library/curses.html#curses.getsyxX-trAXlogging.config.listenrA(jjXJhttp://docs.python.org/3/library/logging.config.html#logging.config.listenX-trAXdoctest.DocTestSuiterA(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.DocTestSuiteX-trAXurllib.request.pathname2urlrA(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.pathname2urlX-trAXturtle.towardsrA(jjX;http://docs.python.org/3/library/turtle.html#turtle.towardsX-trAXbase64.b16decoderA(jjX=http://docs.python.org/3/library/base64.html#base64.b16decodeX-trAXfileinput.linenorA(jjX@http://docs.python.org/3/library/fileinput.html#fileinput.linenoX-trAXcurses.color_contentrA(jjXAhttp://docs.python.org/3/library/curses.html#curses.color_contentX-trAX os.truncaterA(jjX4http://docs.python.org/3/library/os.html#os.truncateX-trAXimaplib.Int2APrA(jjX<http://docs.python.org/3/library/imaplib.html#imaplib.Int2APX-trAXturtle.getcanvasrA(jjX=http://docs.python.org/3/library/turtle.html#turtle.getcanvasX-trAX turtle.isdownrA(jjX:http://docs.python.org/3/library/turtle.html#turtle.isdownX-trAXinspect.isgeneratorrA(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.isgeneratorX-trAX os.unsetenvrA(jjX4http://docs.python.org/3/library/os.html#os.unsetenvX-trAXmultiprocessing.connection.waitrA(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.waitX-trAXsys.displayhookrA(jjX9http://docs.python.org/3/library/sys.html#sys.displayhookX-trAX parser.exprrA(jjX8http://docs.python.org/3/library/parser.html#parser.exprX-trAX os.makedevrA(jjX3http://docs.python.org/3/library/os.html#os.makedevX-trAX math.asinrA(jjX4http://docs.python.org/3/library/math.html#math.asinX-trAXheapq.heapreplacerA(jjX=http://docs.python.org/3/library/heapq.html#heapq.heapreplaceX-trAX os.removerA(jjX2http://docs.python.org/3/library/os.html#os.removeX-trAXxml.sax.make_parserrA(jjXAhttp://docs.python.org/3/library/xml.sax.html#xml.sax.make_parserX-trAXensurepip.versionrA(jjXAhttp://docs.python.org/3/library/ensurepip.html#ensurepip.versionX-trAX!multiprocessing.sharedctypes.copyrA(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.copyX-trAXpprint.isreadablerA(jjX>http://docs.python.org/3/library/pprint.html#pprint.isreadableX-trAXos.fwalkrA(jjX1http://docs.python.org/3/library/os.html#os.fwalkX-trAXos.closerA(jjX1http://docs.python.org/3/library/os.html#os.closeX-trAXabc.get_cache_tokenrA(jjX=http://docs.python.org/3/library/abc.html#abc.get_cache_tokenX-trAXwebbrowser.openrA(jjX@http://docs.python.org/3/library/webbrowser.html#webbrowser.openX-trAX cgi.parserA(jjX3http://docs.python.org/3/library/cgi.html#cgi.parseX-trAX math.frexprA(jjX5http://docs.python.org/3/library/math.html#math.frexpX-trAXsndhdr.whathdrrA(jjX;http://docs.python.org/3/library/sndhdr.html#sndhdr.whathdrX-trAXbinascii.b2a_hexrA(jjX?http://docs.python.org/3/library/binascii.html#binascii.b2a_hexX-trAX cmath.asinrA(jjX6http://docs.python.org/3/library/cmath.html#cmath.asinX-trAXatexit.registerrA(jjX<http://docs.python.org/3/library/atexit.html#atexit.registerX-trAX pickle.loadrA(jjX8http://docs.python.org/3/library/pickle.html#pickle.loadX-trAX operator.mulrA(jjX;http://docs.python.org/3/library/operator.html#operator.mulX-trAX sunau.openfprA(jjX8http://docs.python.org/3/library/sunau.html#sunau.openfpX-trAXxml.dom.getDOMImplementationrA(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.getDOMImplementationX-trAX code.interactrA(jjX8http://docs.python.org/3/library/code.html#code.interactX-trAX syslog.syslogrA(jjX:http://docs.python.org/3/library/syslog.html#syslog.syslogX-trAXsys.getdefaultencodingrA(jjX@http://docs.python.org/3/library/sys.html#sys.getdefaultencodingX-trBXtracemalloc.take_snapshotrB(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.take_snapshotX-trBXcodecs.register_errorrB(jjXBhttp://docs.python.org/3/library/codecs.html#codecs.register_errorX-trBXinspect.getframeinforB(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.getframeinfoX-trBXdirectory_createdrB(jjXChttp://docs.python.org/3/distutils/builtdist.html#directory_createdX-trBX pty.spawnr B(jjX3http://docs.python.org/3/library/pty.html#pty.spawnX-tr BXoperator.__iand__r B(jjX@http://docs.python.org/3/library/operator.html#operator.__iand__X-tr BXbinascii.a2b_base64r B(jjXBhttp://docs.python.org/3/library/binascii.html#binascii.a2b_base64X-trBXinspect.getinnerframesrB(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getinnerframesX-trBXfilterrB(jjX6http://docs.python.org/3/library/functions.html#filterX-trBX glob.iglobrB(jjX5http://docs.python.org/3/library/glob.html#glob.iglobX-trBX turtle.ltrB(jjX6http://docs.python.org/3/library/turtle.html#turtle.ltX-trBX parser.isexprrB(jjX:http://docs.python.org/3/library/parser.html#parser.isexprX-trBX os.fchmodrB(jjX2http://docs.python.org/3/library/os.html#os.fchmodX-trBXos.readrB(jjX0http://docs.python.org/3/library/os.html#os.readX-trBXdis.get_instructionsrB(jjX>http://docs.python.org/3/library/dis.html#dis.get_instructionsX-trBXtest.support.forgetrB(jjX>http://docs.python.org/3/library/test.html#test.support.forgetX-tr BXplatform.releaser!B(jjX?http://docs.python.org/3/library/platform.html#platform.releaseX-tr"BXstringprep.in_table_b1r#B(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_b1X-tr$BXsocket.if_nametoindexr%B(jjXBhttp://docs.python.org/3/library/socket.html#socket.if_nametoindexX-tr&BXtraceback.extract_tbr'B(jjXDhttp://docs.python.org/3/library/traceback.html#traceback.extract_tbX-tr(BX enumerater)B(jjX9http://docs.python.org/3/library/functions.html#enumerateX-tr*BXos.set_handle_inheritabler+B(jjXBhttp://docs.python.org/3/library/os.html#os.set_handle_inheritableX-tr,BXmultiprocessing.set_executabler-B(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.set_executableX-tr.BXshutil.copymoder/B(jjX<http://docs.python.org/3/library/shutil.html#shutil.copymodeX-tr0BXturtle.onclickr1B(jjX;http://docs.python.org/3/library/turtle.html#turtle.onclickX-tr2BXinspect.getmror3B(jjX<http://docs.python.org/3/library/inspect.html#inspect.getmroX-tr4BXconcurrent.futures.waitr5B(jjXPhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.waitX-tr6BXgettext.installr7B(jjX=http://docs.python.org/3/library/gettext.html#gettext.installX-tr8BXinspect.getmoduleinfor9B(jjXChttp://docs.python.org/3/library/inspect.html#inspect.getmoduleinfoX-tr:BX struct.unpackr;B(jjX:http://docs.python.org/3/library/struct.html#struct.unpackX-trBXos.path.isfiler?B(jjX<http://docs.python.org/3/library/os.path.html#os.path.isfileX-tr@BXplistlib.readPlistFromBytesrAB(jjXJhttp://docs.python.org/3/library/plistlib.html#plistlib.readPlistFromBytesX-trBBX plistlib.loadrCB(jjX<http://docs.python.org/3/library/plistlib.html#plistlib.loadX-trDBXturtle.addshaperEB(jjX<http://docs.python.org/3/library/turtle.html#turtle.addshapeX-trFBXtabnanny.checkrGB(jjX=http://docs.python.org/3/library/tabnanny.html#tabnanny.checkX-trHBX importlib.util.module_for_loaderrIB(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.util.module_for_loaderX-trJBXrandom.getrandbitsrKB(jjX?http://docs.python.org/3/library/random.html#random.getrandbitsX-trLBXsubprocess.callrMB(jjX@http://docs.python.org/3/library/subprocess.html#subprocess.callX-trNBX shutil.unregister_archive_formatrOB(jjXMhttp://docs.python.org/3/library/shutil.html#shutil.unregister_archive_formatX-trPBXos._exitrQB(jjX1http://docs.python.org/3/library/os.html#os._exitX-trRBX token.ISEOFrSB(jjX7http://docs.python.org/3/library/token.html#token.ISEOFX-trTBX os.setxattrrUB(jjX4http://docs.python.org/3/library/os.html#os.setxattrX-trVBX marshal.loadrWB(jjX:http://docs.python.org/3/library/marshal.html#marshal.loadX-trXBXmodulefinder.ReplacePackagerYB(jjXNhttp://docs.python.org/3/library/modulefinder.html#modulefinder.ReplacePackageX-trZBXos.path.existsr[B(jjX<http://docs.python.org/3/library/os.path.html#os.path.existsX-tr\BXcurses.ungetmouser]B(jjX>http://docs.python.org/3/library/curses.html#curses.ungetmouseX-tr^BXsocket.inet_ntoar_B(jjX=http://docs.python.org/3/library/socket.html#socket.inet_ntoaX-tr`BXwinreg.OpenKeyraB(jjX;http://docs.python.org/3/library/winreg.html#winreg.OpenKeyX-trbBXwsgiref.simple_server.demo_apprcB(jjXLhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.demo_appX-trdBXemail.utils.decode_paramsreB(jjXJhttp://docs.python.org/3/library/email.util.html#email.utils.decode_paramsX-trfBXwsgiref.validate.validatorrgB(jjXHhttp://docs.python.org/3/library/wsgiref.html#wsgiref.validate.validatorX-trhBXtypes.prepare_classriB(jjX?http://docs.python.org/3/library/types.html#types.prepare_classX-trjBX base64.encoderkB(jjX:http://docs.python.org/3/library/base64.html#base64.encodeX-trlBXsocket.inet_ntoprmB(jjX=http://docs.python.org/3/library/socket.html#socket.inet_ntopX-trnBXos.execlroB(jjX1http://docs.python.org/3/library/os.html#os.execlX-trpBX sys.settracerqB(jjX6http://docs.python.org/3/library/sys.html#sys.settraceX-trrBXoperator.indexOfrsB(jjX?http://docs.python.org/3/library/operator.html#operator.indexOfX-trtBXbinascii.b2a_uuruB(jjX>http://docs.python.org/3/library/binascii.html#binascii.b2a_uuX-trvBXmimetypes.guess_extensionrwB(jjXIhttp://docs.python.org/3/library/mimetypes.html#mimetypes.guess_extensionX-trxBX stat.S_ISFIFOryB(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISFIFOX-trzBXsignal.sigwaitr{B(jjX;http://docs.python.org/3/library/signal.html#signal.sigwaitX-tr|BXbz2.decompressr}B(jjX8http://docs.python.org/3/library/bz2.html#bz2.decompressX-tr~BX issubclassrB(jjX:http://docs.python.org/3/library/functions.html#issubclassX-trBXcurses.killcharrB(jjX<http://docs.python.org/3/library/curses.html#curses.killcharX-trBXos.execvrB(jjX1http://docs.python.org/3/library/os.html#os.execvX-trBXgetpass.getpassrB(jjX=http://docs.python.org/3/library/getpass.html#getpass.getpassX-trBX#distutils.archive_util.make_tarballrB(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_tarballX-trBXitertools.dropwhilerB(jjXChttp://docs.python.org/3/library/itertools.html#itertools.dropwhileX-trBXwinreg.LoadKeyrB(jjX;http://docs.python.org/3/library/winreg.html#winreg.LoadKeyX-trBXpdb.post_mortemrB(jjX9http://docs.python.org/3/library/pdb.html#pdb.post_mortemX-trBX ssl.RAND_egdrB(jjX6http://docs.python.org/3/library/ssl.html#ssl.RAND_egdX-trBXoperator.invertrB(jjX>http://docs.python.org/3/library/operator.html#operator.invertX-trBXpickletools.disrB(jjXAhttp://docs.python.org/3/library/pickletools.html#pickletools.disX-trBXnis.get_default_domainrB(jjX@http://docs.python.org/3/library/nis.html#nis.get_default_domainX-trBX curses.nonlrB(jjX8http://docs.python.org/3/library/curses.html#curses.nonlX-trBXheapq.nlargestrB(jjX:http://docs.python.org/3/library/heapq.html#heapq.nlargestX-trBXos.path.expandvarsrB(jjX@http://docs.python.org/3/library/os.path.html#os.path.expandvarsX-trBX binhex.binhexrB(jjX:http://docs.python.org/3/library/binhex.html#binhex.binhexX-trBXlogging.getLevelNamerB(jjXBhttp://docs.python.org/3/library/logging.html#logging.getLevelNameX-trBXsys.getrecursionlimitrB(jjX?http://docs.python.org/3/library/sys.html#sys.getrecursionlimitX-trBXdistutils.dep_util.newerrB(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newerX-trBXsysconfig.parse_config_hrB(jjXHhttp://docs.python.org/3/library/sysconfig.html#sysconfig.parse_config_hX-trBX importlib.util.cache_from_sourcerB(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.util.cache_from_sourceX-trBX fcntl.lockfrB(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.lockfX-trBXmultiprocessing.ArrayrB(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ArrayX-trBX cmath.isinfrB(jjX7http://docs.python.org/3/library/cmath.html#cmath.isinfX-trBXos.path.getsizerB(jjX=http://docs.python.org/3/library/os.path.html#os.path.getsizeX-trBXmimetypes.add_typerB(jjXBhttp://docs.python.org/3/library/mimetypes.html#mimetypes.add_typeX-trBXtermios.tcsendbreakrB(jjXAhttp://docs.python.org/3/library/termios.html#termios.tcsendbreakX-trBXcurses.erasecharrB(jjX=http://docs.python.org/3/library/curses.html#curses.erasecharX-trBXssl.RAND_bytesrB(jjX8http://docs.python.org/3/library/ssl.html#ssl.RAND_bytesX-trBXfileinput.filenorB(jjX@http://docs.python.org/3/library/fileinput.html#fileinput.filenoX-trBX locale.formatrB(jjX:http://docs.python.org/3/library/locale.html#locale.formatX-trBX ctypes.sizeofrB(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.sizeofX-trBXpy_compile.compilerB(jjXChttp://docs.python.org/3/library/py_compile.html#py_compile.compileX-trBXmultiprocessing.get_loggerrB(jjXPhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_loggerX-trBXturtle.end_fillrB(jjX<http://docs.python.org/3/library/turtle.html#turtle.end_fillX-trBXcgi.print_directoryrB(jjX=http://docs.python.org/3/library/cgi.html#cgi.print_directoryX-trBXaudioop.tostereorB(jjX>http://docs.python.org/3/library/audioop.html#audioop.tostereoX-trBXos.lseekrB(jjX1http://docs.python.org/3/library/os.html#os.lseekX-trBX json.loadsrB(jjX5http://docs.python.org/3/library/json.html#json.loadsX-trBXmsilib.add_datarB(jjX<http://docs.python.org/3/library/msilib.html#msilib.add_dataX-trBXgc.get_thresholdrB(jjX9http://docs.python.org/3/library/gc.html#gc.get_thresholdX-trBXmailcap.getcapsrB(jjX=http://docs.python.org/3/library/mailcap.html#mailcap.getcapsX-trBXexecrB(jjX4http://docs.python.org/3/library/functions.html#execX-trBXasyncio.new_event_looprB(jjXNhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.new_event_loopX-trBXobjectrB(jjX6http://docs.python.org/3/library/functions.html#objectX-trBX math.asinhrB(jjX5http://docs.python.org/3/library/math.html#math.asinhX-trBXemail.utils.make_msgidrB(jjXGhttp://docs.python.org/3/library/email.util.html#email.utils.make_msgidX-trBX os.path.isabsrB(jjX;http://docs.python.org/3/library/os.path.html#os.path.isabsX-trBXemail.header.decode_headerrB(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.decode_headerX-trBXwarnings.warn_explicitrB(jjXEhttp://docs.python.org/3/library/warnings.html#warnings.warn_explicitX-trBX operator.not_rB(jjX<http://docs.python.org/3/library/operator.html#operator.not_X-trBXurllib.parse.unquote_plusrB(jjXLhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquote_plusX-trBXbinascii.unhexlifyrB(jjXAhttp://docs.python.org/3/library/binascii.html#binascii.unhexlifyX-trBX)multiprocessing.sharedctypes.synchronizedrB(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.synchronizedX-trBXtempfile.TemporaryFilerB(jjXEhttp://docs.python.org/3/library/tempfile.html#tempfile.TemporaryFileX-trBXos.popenrB(jjX1http://docs.python.org/3/library/os.html#os.popenX-trBXdoctest.testfilerB(jjX>http://docs.python.org/3/library/doctest.html#doctest.testfileX-trBXoperator.__or__rB(jjX>http://docs.python.org/3/library/operator.html#operator.__or__X-trBX curses.beeprB(jjX8http://docs.python.org/3/library/curses.html#curses.beepX-trBXtest.support.check_warningsrB(jjXFhttp://docs.python.org/3/library/test.html#test.support.check_warningsX-trBX os.getloginrB(jjX4http://docs.python.org/3/library/os.html#os.getloginX-trBXpkgutil.get_datarB(jjX>http://docs.python.org/3/library/pkgutil.html#pkgutil.get_dataX-trBX shutil.moverB(jjX8http://docs.python.org/3/library/shutil.html#shutil.moveX-trBX os.startfilerB(jjX5http://docs.python.org/3/library/os.html#os.startfileX-trBXasyncio.create_subprocess_shellrB(jjXXhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_shellX-trCX math.gammarC(jjX5http://docs.python.org/3/library/math.html#math.gammaX-trCXos.openrC(jjX0http://docs.python.org/3/library/os.html#os.openX-trCXsignal.siginterruptrC(jjX@http://docs.python.org/3/library/signal.html#signal.siginterruptX-trCX os.renamesrC(jjX3http://docs.python.org/3/library/os.html#os.renamesX-trCXturtle.pensizer C(jjX;http://docs.python.org/3/library/turtle.html#turtle.pensizeX-tr CXmath.expr C(jjX3http://docs.python.org/3/library/math.html#math.expX-tr CXos.sched_rr_get_intervalr C(jjXAhttp://docs.python.org/3/library/os.html#os.sched_rr_get_intervalX-trCXtest.support.findfilerC(jjX@http://docs.python.org/3/library/test.html#test.support.findfileX-trCX operator.absrC(jjX;http://docs.python.org/3/library/operator.html#operator.absX-trCXtest.support.captured_stderrrC(jjXGhttp://docs.python.org/3/library/test.html#test.support.captured_stderrX-trCXshutil.unregister_unpack_formatrC(jjXLhttp://docs.python.org/3/library/shutil.html#shutil.unregister_unpack_formatX-trCXinspect.getargspecrC(jjX@http://docs.python.org/3/library/inspect.html#inspect.getargspecX-trCX turtle.sethrC(jjX8http://docs.python.org/3/library/turtle.html#turtle.sethX-trCX#distutils.ccompiler.gen_lib_optionsrC(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.gen_lib_optionsX-trCXrandom.lognormvariaterC(jjXBhttp://docs.python.org/3/library/random.html#random.lognormvariateX-trCX select.epollrC(jjX9http://docs.python.org/3/library/select.html#select.epollX-tr CXdis.disassembler!C(jjX9http://docs.python.org/3/library/dis.html#dis.disassembleX-tr"CX os.unlinkr#C(jjX2http://docs.python.org/3/library/os.html#os.unlinkX-tr$CX turtle.writer%C(jjX9http://docs.python.org/3/library/turtle.html#turtle.writeX-tr&CX turtle.setyr'C(jjX8http://docs.python.org/3/library/turtle.html#turtle.setyX-tr(CX turtle.setxr)C(jjX8http://docs.python.org/3/library/turtle.html#turtle.setxX-tr*CXwinsound.MessageBeepr+C(jjXChttp://docs.python.org/3/library/winsound.html#winsound.MessageBeepX-tr,CXemail.utils.getaddressesr-C(jjXIhttp://docs.python.org/3/library/email.util.html#email.utils.getaddressesX-tr.CX operator.xorr/C(jjX;http://docs.python.org/3/library/operator.html#operator.xorX-tr0CXunittest.mock.patch.multipler1C(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.multipleX-tr2CX copy.copyr3C(jjX4http://docs.python.org/3/library/copy.html#copy.copyX-tr4CXturtle.exitonclickr5C(jjX?http://docs.python.org/3/library/turtle.html#turtle.exitonclickX-tr6CX stat.S_ISDIRr7C(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISDIRX-tr8CXdistutils.dir_util.create_treer9C(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.create_treeX-tr:CXoperator.__lshift__r;C(jjXBhttp://docs.python.org/3/library/operator.html#operator.__lshift__X-trCX crypt.mksaltr?C(jjX8http://docs.python.org/3/library/crypt.html#crypt.mksaltX-tr@CXlogging.setLogRecordFactoryrAC(jjXIhttp://docs.python.org/3/library/logging.html#logging.setLogRecordFactoryX-trBCX os.chrootrCC(jjX2http://docs.python.org/3/library/os.html#os.chrootX-trDCXrandom.randintrEC(jjX;http://docs.python.org/3/library/random.html#random.randintX-trFCX operator.iandrGC(jjX<http://docs.python.org/3/library/operator.html#operator.iandX-trHCXoctrIC(jjX3http://docs.python.org/3/library/functions.html#octX-trJCXemail.utils.mktime_tzrKC(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.mktime_tzX-trLCXimaplib.Internaldate2tuplerMC(jjXHhttp://docs.python.org/3/library/imaplib.html#imaplib.Internaldate2tupleX-trNCX!multiprocessing.connection.ClientrOC(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.ClientX-trPCXos.path.basenamerQC(jjX>http://docs.python.org/3/library/os.path.html#os.path.basenameX-trRCXos.sched_getparamrSC(jjX:http://docs.python.org/3/library/os.html#os.sched_getparamX-trTCX ctypes.castrUC(jjX8http://docs.python.org/3/library/ctypes.html#ctypes.castX-trVCXrandom.uniformrWC(jjX;http://docs.python.org/3/library/random.html#random.uniformX-trXCXurllib.request.urlretrieverYC(jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.urlretrieveX-trZCX turtle.clearr[C(jjX9http://docs.python.org/3/library/turtle.html#turtle.clearX-tr\CXwebbrowser.registerr]C(jjXDhttp://docs.python.org/3/library/webbrowser.html#webbrowser.registerX-tr^CX pty.openptyr_C(jjX5http://docs.python.org/3/library/pty.html#pty.openptyX-tr`CXlocale.format_stringraC(jjXAhttp://docs.python.org/3/library/locale.html#locale.format_stringX-trbCX pdb.runcallrcC(jjX5http://docs.python.org/3/library/pdb.html#pdb.runcallX-trdCXcalendar.leapdaysreC(jjX@http://docs.python.org/3/library/calendar.html#calendar.leapdaysX-trfCX os.readlinkrgC(jjX4http://docs.python.org/3/library/os.html#os.readlinkX-trhCXsetattrriC(jjX7http://docs.python.org/3/library/functions.html#setattrX-trjCXbytesrkC(jjX5http://docs.python.org/3/library/functions.html#bytesX-trlCXcurses.isendwinrmC(jjX<http://docs.python.org/3/library/curses.html#curses.isendwinX-trnCXcurses.longnameroC(jjX<http://docs.python.org/3/library/curses.html#curses.longnameX-trpCX uuid.uuid4rqC(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid4X-trrCX uuid.uuid5rsC(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid5X-trtCX stat.S_ISREGruC(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISREGX-trvCX importlib.util.source_from_cacherwC(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.util.source_from_cacheX-trxCX xml.etree.ElementTree.SubElementryC(jjX\http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.SubElementX-trzCX uuid.uuid1r{C(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid1X-tr|CXsys.getcheckintervalr}C(jjX>http://docs.python.org/3/library/sys.html#sys.getcheckintervalX-tr~CX os.spawnlrC(jjX2http://docs.python.org/3/library/os.html#os.spawnlX-trCXcodecs.getreaderrC(jjX=http://docs.python.org/3/library/codecs.html#codecs.getreaderX-trCXoperator.__iconcat__rC(jjXChttp://docs.python.org/3/library/operator.html#operator.__iconcat__X-trCXmsvcrt.getwcherC(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.getwcheX-trCXpyclbr.readmodule_exrC(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.readmodule_exX-trCXcurses.resettyrC(jjX;http://docs.python.org/3/library/curses.html#curses.resettyX-trCXthreading.main_threadrC(jjXEhttp://docs.python.org/3/library/threading.html#threading.main_threadX-trCXmsilib.init_databaserC(jjXAhttp://docs.python.org/3/library/msilib.html#msilib.init_databaseX-trCXrandom.triangularrC(jjX>http://docs.python.org/3/library/random.html#random.triangularX-trCXsignal.set_wakeup_fdrC(jjXAhttp://docs.python.org/3/library/signal.html#signal.set_wakeup_fdX-trCXcurses.ascii.ispunctrC(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.ispunctX-trCX curses.echorC(jjX8http://docs.python.org/3/library/curses.html#curses.echoX-trCXurllib.parse.urlparserC(jjXHhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparseX-trCX importlib.machinery.all_suffixesrC(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.machinery.all_suffixesX-trCXhashrC(jjX4http://docs.python.org/3/library/functions.html#hashX-trCXbase64.b85decoderC(jjX=http://docs.python.org/3/library/base64.html#base64.b85decodeX-trCX turtle.fdrC(jjX6http://docs.python.org/3/library/turtle.html#turtle.fdX-trCX turtle.getpenrC(jjX:http://docs.python.org/3/library/turtle.html#turtle.getpenX-trCXlocalsrC(jjX6http://docs.python.org/3/library/functions.html#localsX-trCX enum.uniquerC(jjX6http://docs.python.org/3/library/enum.html#enum.uniqueX-trCXwinreg.OpenKeyExrC(jjX=http://docs.python.org/3/library/winreg.html#winreg.OpenKeyExX-trCX"distutils.sysconfig.get_python_librC(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_python_libX-trCXdoctest.debug_srcrC(jjX?http://docs.python.org/3/library/doctest.html#doctest.debug_srcX-trCX cmath.sqrtrC(jjX6http://docs.python.org/3/library/cmath.html#cmath.sqrtX-trCXcalendar.weekheaderrC(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.weekheaderX-trCXturtle.setpositionrC(jjX?http://docs.python.org/3/library/turtle.html#turtle.setpositionX-trCXunicodedata.east_asian_widthrC(jjXNhttp://docs.python.org/3/library/unicodedata.html#unicodedata.east_asian_widthX-trCXfunctools.cmp_to_keyrC(jjXDhttp://docs.python.org/3/library/functools.html#functools.cmp_to_keyX-trCXplistlib.writePlistToBytesrC(jjXIhttp://docs.python.org/3/library/plistlib.html#plistlib.writePlistToBytesX-trCX fractions.gcdrC(jjX=http://docs.python.org/3/library/fractions.html#fractions.gcdX-trCXimportlib.invalidate_cachesrC(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.invalidate_cachesX-trCX dis.discorC(jjX3http://docs.python.org/3/library/dis.html#dis.discoX-trCXdifflib.restorerC(jjX=http://docs.python.org/3/library/difflib.html#difflib.restoreX-trCX)distutils.sysconfig.get_makefile_filenamerC(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_makefile_filenameX-trCXoperator.__add__rC(jjX?http://docs.python.org/3/library/operator.html#operator.__add__X-trCXturtle.clearscreenrC(jjX?http://docs.python.org/3/library/turtle.html#turtle.clearscreenX-trCXdistutils.file_util.copy_filerC(jjXLhttp://docs.python.org/3/distutils/apiref.html#distutils.file_util.copy_fileX-trCX sys._getframerC(jjX7http://docs.python.org/3/library/sys.html#sys._getframeX-trCXurllib.request.install_openerrC(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.install_openerX-trCX pprint.pprintrC(jjX:http://docs.python.org/3/library/pprint.html#pprint.pprintX-trCXoperator.__mul__rC(jjX?http://docs.python.org/3/library/operator.html#operator.__mul__X-trCX shutil.copyrC(jjX8http://docs.python.org/3/library/shutil.html#shutil.copyX-trCX operator.subrC(jjX;http://docs.python.org/3/library/operator.html#operator.subX-trCXlenrC(jjX3http://docs.python.org/3/library/functions.html#lenX-trCXinspect.getargvaluesrC(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.getargvaluesX-trCX time.mktimerC(jjX6http://docs.python.org/3/library/time.html#time.mktimeX-trCXcurses.pair_numberrC(jjX?http://docs.python.org/3/library/curses.html#curses.pair_numberX-trCX cmath.polarrC(jjX7http://docs.python.org/3/library/cmath.html#cmath.polarX-trCX os.spawnlperC(jjX4http://docs.python.org/3/library/os.html#os.spawnlpeX-trCXsignal.pthread_sigmaskrC(jjXChttp://docs.python.org/3/library/signal.html#signal.pthread_sigmaskX-trCX os.pathconfrC(jjX4http://docs.python.org/3/library/os.html#os.pathconfX-trCXfaulthandler.dump_tracebackrC(jjXNhttp://docs.python.org/3/library/faulthandler.html#faulthandler.dump_tracebackX-trCXoperator.methodcallerrC(jjXDhttp://docs.python.org/3/library/operator.html#operator.methodcallerX-trCXtracemalloc.get_traced_memoryrC(jjXOhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_traced_memoryX-trCX turtle.backrC(jjX8http://docs.python.org/3/library/turtle.html#turtle.backX-trCXctypes.create_string_bufferrC(jjXHhttp://docs.python.org/3/library/ctypes.html#ctypes.create_string_bufferX-trCX turtle.setuprC(jjX9http://docs.python.org/3/library/turtle.html#turtle.setupX-trCXstatistics.pstdevrC(jjXBhttp://docs.python.org/3/library/statistics.html#statistics.pstdevX-trCX os.execvperC(jjX3http://docs.python.org/3/library/os.html#os.execvpeX-trCXcgi.testrC(jjX2http://docs.python.org/3/library/cgi.html#cgi.testX-trCXshutil.disk_usagerC(jjX>http://docs.python.org/3/library/shutil.html#shutil.disk_usageX-trCX reprlib.reprrC(jjX:http://docs.python.org/3/library/reprlib.html#reprlib.reprX-trCXgettext.dgettextrC(jjX>http://docs.python.org/3/library/gettext.html#gettext.dgettextX-trCX os.killpgrC(jjX2http://docs.python.org/3/library/os.html#os.killpgX-trCXcurses.panel.top_panelrC(jjXIhttp://docs.python.org/3/library/curses.panel.html#curses.panel.top_panelX-trDXfunctools.update_wrapperrD(jjXHhttp://docs.python.org/3/library/functools.html#functools.update_wrapperX-trDX turtle.listenrD(jjX:http://docs.python.org/3/library/turtle.html#turtle.listenX-trDXglobalsrD(jjX7http://docs.python.org/3/library/functions.html#globalsX-trDXreadline.clear_historyrD(jjXEhttp://docs.python.org/3/library/readline.html#readline.clear_historyX-trDX gc.is_trackedr D(jjX6http://docs.python.org/3/library/gc.html#gc.is_trackedX-tr DXcontextlib.contextmanagerr D(jjXJhttp://docs.python.org/3/library/contextlib.html#contextlib.contextmanagerX-tr DX turtle.leftr D(jjX8http://docs.python.org/3/library/turtle.html#turtle.leftX-trDXplatform.system_aliasrD(jjXDhttp://docs.python.org/3/library/platform.html#platform.system_aliasX-trDXitertools.filterfalserD(jjXEhttp://docs.python.org/3/library/itertools.html#itertools.filterfalseX-trDXpkgutil.iter_importersrD(jjXDhttp://docs.python.org/3/library/pkgutil.html#pkgutil.iter_importersX-trDX turtle.pdrD(jjX6http://docs.python.org/3/library/turtle.html#turtle.pdX-trDX bz2.compressrD(jjX6http://docs.python.org/3/library/bz2.html#bz2.compressX-trDXunicodedata.categoryrD(jjXFhttp://docs.python.org/3/library/unicodedata.html#unicodedata.categoryX-trDX socket.ntohsrD(jjX9http://docs.python.org/3/library/socket.html#socket.ntohsX-trDXwinreg.DeleteKeyrD(jjX=http://docs.python.org/3/library/winreg.html#winreg.DeleteKeyX-trDX stat.S_IMODErD(jjX7http://docs.python.org/3/library/stat.html#stat.S_IMODEX-tr DX math.fabsr!D(jjX4http://docs.python.org/3/library/math.html#math.fabsX-tr"DX turtle.pur#D(jjX6http://docs.python.org/3/library/turtle.html#turtle.puX-tr$DXcodecs.backslashreplace_errorsr%D(jjXKhttp://docs.python.org/3/library/codecs.html#codecs.backslashreplace_errorsX-tr&DX bisect.insortr'D(jjX:http://docs.python.org/3/library/bisect.html#bisect.insortX-tr(DX turtle.colorr)D(jjX9http://docs.python.org/3/library/turtle.html#turtle.colorX-tr*DX socket.ntohlr+D(jjX9http://docs.python.org/3/library/socket.html#socket.ntohlX-tr,DXunittest.mock.patch.stopallr-D(jjXOhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.stopallX-tr.DX cmath.coshr/D(jjX6http://docs.python.org/3/library/cmath.html#cmath.coshX-tr0DXmath.sinr1D(jjX3http://docs.python.org/3/library/math.html#math.sinX-tr2DXre.subr3D(jjX/http://docs.python.org/3/library/re.html#re.subX-tr4DXsysconfig.is_python_buildr5D(jjXIhttp://docs.python.org/3/library/sysconfig.html#sysconfig.is_python_buildX-tr6DX os.confstrr7D(jjX3http://docs.python.org/3/library/os.html#os.confstrX-tr8DXurllib.parse.urldefragr9D(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urldefragX-tr:DXmsvcrt.get_osfhandler;D(jjXAhttp://docs.python.org/3/library/msvcrt.html#msvcrt.get_osfhandleX-trDXitertools.zip_longestr?D(jjXEhttp://docs.python.org/3/library/itertools.html#itertools.zip_longestX-tr@DXdistutils.core.setuprAD(jjXChttp://docs.python.org/3/distutils/apiref.html#distutils.core.setupX-trBDXturtle.pencolorrCD(jjX<http://docs.python.org/3/library/turtle.html#turtle.pencolorX-trDDX os.replacerED(jjX3http://docs.python.org/3/library/os.html#os.replaceX-trFDX os.fsencoderGD(jjX4http://docs.python.org/3/library/os.html#os.fsencodeX-trHDX%xml.sax.saxutils.prepare_input_sourcerID(jjXYhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.prepare_input_sourceX-trJDXos.setpriorityrKD(jjX7http://docs.python.org/3/library/os.html#os.setpriorityX-trLDXbisect.insort_rightrMD(jjX@http://docs.python.org/3/library/bisect.html#bisect.insort_rightX-trNDXwinreg.SetValueExrOD(jjX>http://docs.python.org/3/library/winreg.html#winreg.SetValueExX-trPDXinspect.ismodulerQD(jjX>http://docs.python.org/3/library/inspect.html#inspect.ismoduleX-trRDX marshal.loadsrSD(jjX;http://docs.python.org/3/library/marshal.html#marshal.loadsX-trTDXcurses.init_pairrUD(jjX=http://docs.python.org/3/library/curses.html#curses.init_pairX-trVDXos.chdirrWD(jjX1http://docs.python.org/3/library/os.html#os.chdirX-trXDX msvcrt.getwchrYD(jjX:http://docs.python.org/3/library/msvcrt.html#msvcrt.getwchX-trZDX operator.modr[D(jjX;http://docs.python.org/3/library/operator.html#operator.modX-tr\DXgettext.bindtextdomainr]D(jjXDhttp://docs.python.org/3/library/gettext.html#gettext.bindtextdomainX-tr^DXplatform.python_branchr_D(jjXEhttp://docs.python.org/3/library/platform.html#platform.python_branchX-tr`DX multiprocessing.set_start_methodraD(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.set_start_methodX-trbDXemail.encoders.encode_7or8bitrcD(jjXRhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_7or8bitX-trdDXipaddress.v6_int_to_packedreD(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.v6_int_to_packedX-trfDXcurses.halfdelayrgD(jjX=http://docs.python.org/3/library/curses.html#curses.halfdelayX-trhDXmultiprocessing.log_to_stderrriD(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.log_to_stderrX-trjDX curses.rawrkD(jjX7http://docs.python.org/3/library/curses.html#curses.rawX-trlDXstatistics.median_groupedrmD(jjXJhttp://docs.python.org/3/library/statistics.html#statistics.median_groupedX-trnDXos.get_inheritableroD(jjX;http://docs.python.org/3/library/os.html#os.get_inheritableX-trpDXaudioop.alaw2linrqD(jjX>http://docs.python.org/3/library/audioop.html#audioop.alaw2linX-trrDXbinascii.a2b_hexrsD(jjX?http://docs.python.org/3/library/binascii.html#binascii.a2b_hexX-trtDX)distutils.sysconfig.get_config_h_filenameruD(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_h_filenameX-trvDX file_createdrwD(jjX>http://docs.python.org/3/distutils/builtdist.html#file_createdX-trxDXoperator.ifloordivryD(jjXAhttp://docs.python.org/3/library/operator.html#operator.ifloordivX-trzDXinspect.getcommentsr{D(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.getcommentsX-tr|DX imp.lock_heldr}D(jjX7http://docs.python.org/3/library/imp.html#imp.lock_heldX-tr~DXstring.capwordsrD(jjX<http://docs.python.org/3/library/string.html#string.capwordsX-trDXidrD(jjX2http://docs.python.org/3/library/functions.html#idX-trDX cmath.sinhrD(jjX6http://docs.python.org/3/library/cmath.html#cmath.sinhX-trDXreadline.get_completerrD(jjXEhttp://docs.python.org/3/library/readline.html#readline.get_completerX-trDXsysconfig.get_python_versionrD(jjXLhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_python_versionX-trDX tty.setcbreakrD(jjX7http://docs.python.org/3/library/tty.html#tty.setcbreakX-trDXos.unamerD(jjX1http://docs.python.org/3/library/os.html#os.unameX-trDXemail.charset.add_charsetrD(jjXMhttp://docs.python.org/3/library/email.charset.html#email.charset.add_charsetX-trDXos.sched_yieldrD(jjX7http://docs.python.org/3/library/os.html#os.sched_yieldX-trDXcgi.print_environrD(jjX;http://docs.python.org/3/library/cgi.html#cgi.print_environX-trDX os.fstatvfsrD(jjX4http://docs.python.org/3/library/os.html#os.fstatvfsX-trDXsignal.getitimerrD(jjX=http://docs.python.org/3/library/signal.html#signal.getitimerX-trDXcomplexrD(jjX7http://docs.python.org/3/library/functions.html#complexX-trDX tokenize.openrD(jjX<http://docs.python.org/3/library/tokenize.html#tokenize.openX-trDX multiprocessing.get_start_methodrD(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_start_methodX-trDX gc.get_statsrD(jjX5http://docs.python.org/3/library/gc.html#gc.get_statsX-trDX time.timerD(jjX4http://docs.python.org/3/library/time.html#time.timeX-trDXemail.utils.localtimerD(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.localtimeX-trDX uu.encoderD(jjX2http://docs.python.org/3/library/uu.html#uu.encodeX-trDXxml.sax.parseStringrD(jjXAhttp://docs.python.org/3/library/xml.sax.html#xml.sax.parseStringX-trDXxml.sax.saxutils.escaperD(jjXKhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.escapeX-trDXplistlib.dumpsrD(jjX=http://docs.python.org/3/library/plistlib.html#plistlib.dumpsX-trDXasyncio.iscoroutinerD(jjXFhttp://docs.python.org/3/library/asyncio-task.html#asyncio.iscoroutineX-trDXbz2.openrD(jjX2http://docs.python.org/3/library/bz2.html#bz2.openX-trDXmsvcrt.heapminrD(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.heapminX-trDXlogging.basicConfigrD(jjXAhttp://docs.python.org/3/library/logging.html#logging.basicConfigX-trDXoperator.__concat__rD(jjXBhttp://docs.python.org/3/library/operator.html#operator.__concat__X-trDXdifflib.unified_diffrD(jjXBhttp://docs.python.org/3/library/difflib.html#difflib.unified_diffX-trDX"distutils.sysconfig.get_python_incrD(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_python_incX-trDXctypes.string_atrD(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.string_atX-trDX math.tanhrD(jjX4http://docs.python.org/3/library/math.html#math.tanhX-trDXminrD(jjX3http://docs.python.org/3/library/functions.html#minX-trDXsyslog.openlogrD(jjX;http://docs.python.org/3/library/syslog.html#syslog.openlogX-trDXbase64.standard_b64encoderD(jjXFhttp://docs.python.org/3/library/base64.html#base64.standard_b64encodeX-trDXmimetypes.guess_all_extensionsrD(jjXNhttp://docs.python.org/3/library/mimetypes.html#mimetypes.guess_all_extensionsX-trDXplatform.java_verrD(jjX@http://docs.python.org/3/library/platform.html#platform.java_verX-trDXturtle.numinputrD(jjX<http://docs.python.org/3/library/turtle.html#turtle.numinputX-trDXrandom.randrangerD(jjX=http://docs.python.org/3/library/random.html#random.randrangeX-trDX math.lgammarD(jjX6http://docs.python.org/3/library/math.html#math.lgammaX-trDXfunctools.reducerD(jjX@http://docs.python.org/3/library/functools.html#functools.reduceX-trDXoperator.__ilshift__rD(jjXChttp://docs.python.org/3/library/operator.html#operator.__ilshift__X-trDXunittest.skipUnlessrD(jjXBhttp://docs.python.org/3/library/unittest.html#unittest.skipUnlessX-trDXwinreg.SaveKeyrD(jjX;http://docs.python.org/3/library/winreg.html#winreg.SaveKeyX-trDX os.execlprD(jjX2http://docs.python.org/3/library/os.html#os.execlpX-trDX heapq.heappoprD(jjX9http://docs.python.org/3/library/heapq.html#heapq.heappopX-trDX pwd.getpwallrD(jjX6http://docs.python.org/3/library/pwd.html#pwd.getpwallX-trDXunittest.installHandlerrD(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.installHandlerX-trDX spwd.getspallrD(jjX8http://docs.python.org/3/library/spwd.html#spwd.getspallX-trDXcurses.tigetnumrD(jjX<http://docs.python.org/3/library/curses.html#curses.tigetnumX-trDXsysconfig.get_config_h_filenamerD(jjXOhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_config_h_filenameX-trDXheapq.heappushrD(jjX:http://docs.python.org/3/library/heapq.html#heapq.heappushX-trDX turtle.setposrD(jjX:http://docs.python.org/3/library/turtle.html#turtle.setposX-trDXssl.RAND_statusrD(jjX9http://docs.python.org/3/library/ssl.html#ssl.RAND_statusX-trDX os.execlerD(jjX2http://docs.python.org/3/library/os.html#os.execleX-trDX math.acoshrD(jjX5http://docs.python.org/3/library/math.html#math.acoshX-trDXaudioop.lin2ulawrD(jjX>http://docs.python.org/3/library/audioop.html#audioop.lin2ulawX-trDXos.abortrD(jjX1http://docs.python.org/3/library/os.html#os.abortX-trDX logging.inforD(jjX:http://docs.python.org/3/library/logging.html#logging.infoX-trDXoperator.containsrD(jjX@http://docs.python.org/3/library/operator.html#operator.containsX-trDXplatform.python_versionrD(jjXFhttp://docs.python.org/3/library/platform.html#platform.python_versionX-trDXshutil.get_terminal_sizerD(jjXEhttp://docs.python.org/3/library/shutil.html#shutil.get_terminal_sizeX-trDXemail.message_from_filerD(jjXJhttp://docs.python.org/3/library/email.parser.html#email.message_from_fileX-trDXturtle.screensizerD(jjX>http://docs.python.org/3/library/turtle.html#turtle.screensizeX-trDXast.get_docstringrD(jjX;http://docs.python.org/3/library/ast.html#ast.get_docstringX-trDXturtle.resizemoderD(jjX>http://docs.python.org/3/library/turtle.html#turtle.resizemodeX-trEX time.asctimerE(jjX7http://docs.python.org/3/library/time.html#time.asctimeX-trEXctypes.memmoverE(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.memmoveX-trEXos.piperE(jjX0http://docs.python.org/3/library/os.html#os.pipeX-trEXcollections.namedtuplerE(jjXHhttp://docs.python.org/3/library/collections.html#collections.namedtupleX-trEXtimeit.default_timerr E(jjXAhttp://docs.python.org/3/library/timeit.html#timeit.default_timerX-tr EX cmath.tanr E(jjX5http://docs.python.org/3/library/cmath.html#cmath.tanX-tr EXfunctools.total_orderingr E(jjXHhttp://docs.python.org/3/library/functools.html#functools.total_orderingX-trEXtime.clock_gettimerE(jjX=http://docs.python.org/3/library/time.html#time.clock_gettimeX-trEXfileinput.nextfilerE(jjXBhttp://docs.python.org/3/library/fileinput.html#fileinput.nextfileX-trEXunittest.expectedFailurerE(jjXGhttp://docs.python.org/3/library/unittest.html#unittest.expectedFailureX-trEXnntplib.decode_headerrE(jjXChttp://docs.python.org/3/library/nntplib.html#nntplib.decode_headerX-trEXinputrE(jjX5http://docs.python.org/3/library/functions.html#inputX-trEX unittest.mainrE(jjX<http://docs.python.org/3/library/unittest.html#unittest.mainX-trEXbinrE(jjX3http://docs.python.org/3/library/functions.html#binX-trEX re.findallrE(jjX3http://docs.python.org/3/library/re.html#re.findallX-trEXsys.excepthookrE(jjX8http://docs.python.org/3/library/sys.html#sys.excepthookX-tr EX curses.metar!E(jjX8http://docs.python.org/3/library/curses.html#curses.metaX-tr"EXformatr#E(jjX6http://docs.python.org/3/library/functions.html#formatX-tr$EX audioop.crossr%E(jjX;http://docs.python.org/3/library/audioop.html#audioop.crossX-tr&EXsys.setprofiler'E(jjX8http://docs.python.org/3/library/sys.html#sys.setprofileX-tr(EX fcntl.ioctlr)E(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.ioctlX-tr*EXoperator.length_hintr+E(jjXChttp://docs.python.org/3/library/operator.html#operator.length_hintX-tr,EXurllib.parse.urlunparser-E(jjXJhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlunparseX-tr.EXcalendar.setfirstweekdayr/E(jjXGhttp://docs.python.org/3/library/calendar.html#calendar.setfirstweekdayX-tr0EX turtle.dotr1E(jjX7http://docs.python.org/3/library/turtle.html#turtle.dotX-tr2EX os.getpgrpr3E(jjX3http://docs.python.org/3/library/os.html#os.getpgrpX-tr4EXturtle.fillingr5E(jjX;http://docs.python.org/3/library/turtle.html#turtle.fillingX-tr6EXstringprep.in_table_c12r7E(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c12X-tr8EX,readline.set_completion_display_matches_hookr9E(jjX[http://docs.python.org/3/library/readline.html#readline.set_completion_display_matches_hookX-tr:EXstringprep.in_table_c11r;E(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11X-trEXmailcap.findmatchr?E(jjX?http://docs.python.org/3/library/mailcap.html#mailcap.findmatchX-tr@EX os.setregidrAE(jjX4http://docs.python.org/3/library/os.html#os.setregidX-trBEX json.dumprCE(jjX4http://docs.python.org/3/library/json.html#json.dumpX-trDEXmultiprocessing.PiperEE(jjXJhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.PipeX-trFEXstringprep.map_table_b2rGE(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.map_table_b2X-trHEXcurses.ascii.ismetarIE(jjXFhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.ismetaX-trJEXsys.getprofilerKE(jjX8http://docs.python.org/3/library/sys.html#sys.getprofileX-trLEXsite.addsitedirrME(jjX:http://docs.python.org/3/library/site.html#site.addsitedirX-trNEXshutil.get_unpack_formatsrOE(jjXFhttp://docs.python.org/3/library/shutil.html#shutil.get_unpack_formatsX-trPEXctypes.set_last_errorrQE(jjXBhttp://docs.python.org/3/library/ctypes.html#ctypes.set_last_errorX-trREX math.modfrSE(jjX4http://docs.python.org/3/library/math.html#math.modfX-trTEXresource.getrlimitrUE(jjXAhttp://docs.python.org/3/library/resource.html#resource.getrlimitX-trVEXtempfile.mktemprWE(jjX>http://docs.python.org/3/library/tempfile.html#tempfile.mktempX-trXEXcurses.can_change_colorrYE(jjXDhttp://docs.python.org/3/library/curses.html#curses.can_change_colorX-trZEXos.preadr[E(jjX1http://docs.python.org/3/library/os.html#os.preadX-tr\EXdecimal.getcontextr]E(jjX@http://docs.python.org/3/library/decimal.html#decimal.getcontextX-tr^EX cmath.sinr_E(jjX5http://docs.python.org/3/library/cmath.html#cmath.sinX-tr`EXresource.prlimitraE(jjX?http://docs.python.org/3/library/resource.html#resource.prlimitX-trbEXturtle.textinputrcE(jjX=http://docs.python.org/3/library/turtle.html#turtle.textinputX-trdEXturtle.positionreE(jjX<http://docs.python.org/3/library/turtle.html#turtle.positionX-trfEX#distutils.archive_util.make_zipfilergE(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_zipfileX-trhEX operator.or_riE(jjX;http://docs.python.org/3/library/operator.html#operator.or_X-trjEXbase64.encodestringrkE(jjX@http://docs.python.org/3/library/base64.html#base64.encodestringX-trlEXmsilib.add_streamrmE(jjX>http://docs.python.org/3/library/msilib.html#msilib.add_streamX-trnEX math.sqrtroE(jjX4http://docs.python.org/3/library/math.html#math.sqrtX-trpEXos.fsyncrqE(jjX1http://docs.python.org/3/library/os.html#os.fsyncX-trrEXipaddress.ip_networkrsE(jjXDhttp://docs.python.org/3/library/ipaddress.html#ipaddress.ip_networkX-trtEXpprint.isrecursiveruE(jjX?http://docs.python.org/3/library/pprint.html#pprint.isrecursiveX-trvEX math.isnanrwE(jjX5http://docs.python.org/3/library/math.html#math.isnanX-trxEXlogging.disableryE(jjX=http://docs.python.org/3/library/logging.html#logging.disableX-trzEXinspect.getmodulenamer{E(jjXChttp://docs.python.org/3/library/inspect.html#inspect.getmodulenameX-tr|EX curses.filterr}E(jjX:http://docs.python.org/3/library/curses.html#curses.filterX-tr~EX os.sendfilerE(jjX4http://docs.python.org/3/library/os.html#os.sendfileX-trEX re.searchrE(jjX2http://docs.python.org/3/library/re.html#re.searchX-trEXtermios.tcdrainrE(jjX=http://docs.python.org/3/library/termios.html#termios.tcdrainX-trEXtime.get_clock_inforE(jjX>http://docs.python.org/3/library/time.html#time.get_clock_infoX-trEXtime.clock_settimerE(jjX=http://docs.python.org/3/library/time.html#time.clock_settimeX-trEX gc.set_debugrE(jjX5http://docs.python.org/3/library/gc.html#gc.set_debugX-trEX math.atanrE(jjX4http://docs.python.org/3/library/math.html#math.atanX-trEX curses.newwinrE(jjX:http://docs.python.org/3/library/curses.html#curses.newwinX-trEX shlex.quoterE(jjX7http://docs.python.org/3/library/shlex.html#shlex.quoteX-trEXcolorsys.hls_to_rgbrE(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.hls_to_rgbX-trEX turtle.donerE(jjX8http://docs.python.org/3/library/turtle.html#turtle.doneX-trEXimp.load_modulerE(jjX9http://docs.python.org/3/library/imp.html#imp.load_moduleX-trEXwarnings.resetwarningsrE(jjXEhttp://docs.python.org/3/library/warnings.html#warnings.resetwarningsX-trEXcurses.mousemaskrE(jjX=http://docs.python.org/3/library/curses.html#curses.mousemaskX-trEXdis.findlabelsrE(jjX8http://docs.python.org/3/library/dis.html#dis.findlabelsX-trEXbdb.checkfuncnamerE(jjX;http://docs.python.org/3/library/bdb.html#bdb.checkfuncnameX-trEX bdb.effectiverE(jjX7http://docs.python.org/3/library/bdb.html#bdb.effectiveX-trEXoperator.__imul__rE(jjX@http://docs.python.org/3/library/operator.html#operator.__imul__X-trEXgzip.decompressrE(jjX:http://docs.python.org/3/library/gzip.html#gzip.decompressX-trEXsys.getwindowsversionrE(jjX?http://docs.python.org/3/library/sys.html#sys.getwindowsversionX-trEXturtle.setworldcoordinatesrE(jjXGhttp://docs.python.org/3/library/turtle.html#turtle.setworldcoordinatesX-trEXurllib.request.getproxiesrE(jjXNhttp://docs.python.org/3/library/urllib.request.html#urllib.request.getproxiesX-trEXturtle.bgcolorrE(jjX;http://docs.python.org/3/library/turtle.html#turtle.bgcolorX-trEXsuperrE(jjX5http://docs.python.org/3/library/functions.html#superX-trEXtime.localtimerE(jjX9http://docs.python.org/3/library/time.html#time.localtimeX-trEXos.dup2rE(jjX0http://docs.python.org/3/library/os.html#os.dup2X-trEXpkgutil.extend_pathrE(jjXAhttp://docs.python.org/3/library/pkgutil.html#pkgutil.extend_pathX-trEXcalendar.monthrangerE(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.monthrangeX-trEXos.path.expanduserrE(jjX@http://docs.python.org/3/library/os.path.html#os.path.expanduserX-trEXlogging.setLoggerClassrE(jjXDhttp://docs.python.org/3/library/logging.html#logging.setLoggerClassX-trEXfunctools.singledispatchrE(jjXHhttp://docs.python.org/3/library/functools.html#functools.singledispatchX-trEX os.ftruncaterE(jjX5http://docs.python.org/3/library/os.html#os.ftruncateX-trEXurllib.parse.quote_plusrE(jjXJhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote_plusX-trEXreadline.read_history_filerE(jjXIhttp://docs.python.org/3/library/readline.html#readline.read_history_fileX-trEXcurses.panel.update_panelsrE(jjXMhttp://docs.python.org/3/library/curses.panel.html#curses.panel.update_panelsX-trEXlogging.makeLogRecordrE(jjXChttp://docs.python.org/3/library/logging.html#logging.makeLogRecordX-trEXasyncio.shieldrE(jjXAhttp://docs.python.org/3/library/asyncio-task.html#asyncio.shieldX-trEXos.mkdirrE(jjX1http://docs.python.org/3/library/os.html#os.mkdirX-trEXsignal.getsignalrE(jjX=http://docs.python.org/3/library/signal.html#signal.getsignalX-trEX curses.tparmrE(jjX9http://docs.python.org/3/library/curses.html#curses.tparmX-trEXturtle.backwardrE(jjX<http://docs.python.org/3/library/turtle.html#turtle.backwardX-trEXsignal.sigpendingrE(jjX>http://docs.python.org/3/library/signal.html#signal.sigpendingX-trEXoperator.indexrE(jjX=http://docs.python.org/3/library/operator.html#operator.indexX-trEXstruct.unpack_fromrE(jjX?http://docs.python.org/3/library/struct.html#struct.unpack_fromX-trEX audioop.avgpprE(jjX;http://docs.python.org/3/library/audioop.html#audioop.avgppX-trEXsocket.CMSG_LENrE(jjX<http://docs.python.org/3/library/socket.html#socket.CMSG_LENX-trEXfloatrE(jjX5http://docs.python.org/3/library/functions.html#floatX-trEXoperator.__ge__rE(jjX>http://docs.python.org/3/library/operator.html#operator.__ge__X-trEXabc.abstractclassmethodrE(jjXAhttp://docs.python.org/3/library/abc.html#abc.abstractclassmethodX-trEXcurses.curs_setrE(jjX<http://docs.python.org/3/library/curses.html#curses.curs_setX-trEXoperator.__contains__rE(jjXDhttp://docs.python.org/3/library/operator.html#operator.__contains__X-trEXos.walkrE(jjX0http://docs.python.org/3/library/os.html#os.walkX-trEXcurses.ascii.ctrlrE(jjXDhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.ctrlX-trEXnextrE(jjX4http://docs.python.org/3/library/functions.html#nextX-trEX nis.matchrE(jjX3http://docs.python.org/3/library/nis.html#nis.matchX-trEXcgi.parse_multipartrE(jjX=http://docs.python.org/3/library/cgi.html#cgi.parse_multipartX-trEXoperator.__pos__rE(jjX?http://docs.python.org/3/library/operator.html#operator.__pos__X-trEXos.writerE(jjX1http://docs.python.org/3/library/os.html#os.writeX-trEXpprint.pformatrE(jjX;http://docs.python.org/3/library/pprint.html#pprint.pformatX-trEX cmath.rectrE(jjX6http://docs.python.org/3/library/cmath.html#cmath.rectX-trEXlocale.getlocalerE(jjX=http://docs.python.org/3/library/locale.html#locale.getlocaleX-trEXsqlite3.register_adapterrE(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.register_adapterX-trEXtraceback.format_exception_onlyrE(jjXOhttp://docs.python.org/3/library/traceback.html#traceback.format_exception_onlyX-trEX itertools.teerE(jjX=http://docs.python.org/3/library/itertools.html#itertools.teeX-trEX ssl.RAND_addrE(jjX6http://docs.python.org/3/library/ssl.html#ssl.RAND_addX-trFX audioop.maxpprF(jjX;http://docs.python.org/3/library/audioop.html#audioop.maxppX-trFXwinreg.EnableReflectionKeyrF(jjXGhttp://docs.python.org/3/library/winreg.html#winreg.EnableReflectionKeyX-trFXfileinput.hook_encodedrF(jjXFhttp://docs.python.org/3/library/fileinput.html#fileinput.hook_encodedX-trFXcompileall.compile_pathrF(jjXHhttp://docs.python.org/3/library/compileall.html#compileall.compile_pathX-trFX os.fchownr F(jjX2http://docs.python.org/3/library/os.html#os.fchownX-tr FXctypes.wstring_atr F(jjX>http://docs.python.org/3/library/ctypes.html#ctypes.wstring_atX-tr FX codecs.encoder F(jjX:http://docs.python.org/3/library/codecs.html#codecs.encodeX-trFXos.linkrF(jjX0http://docs.python.org/3/library/os.html#os.linkX-trFX curses.unctrlrF(jjX:http://docs.python.org/3/library/curses.html#curses.unctrlX-trFXshutil.copyfileobjrF(jjX?http://docs.python.org/3/library/shutil.html#shutil.copyfileobjX-trFXunicodedata.decimalrF(jjXEhttp://docs.python.org/3/library/unicodedata.html#unicodedata.decimalX-trFXturtle.colormoderF(jjX=http://docs.python.org/3/library/turtle.html#turtle.colormodeX-trFX os.WIFEXITEDrF(jjX5http://docs.python.org/3/library/os.html#os.WIFEXITEDX-trFXcsv.get_dialectrF(jjX9http://docs.python.org/3/library/csv.html#csv.get_dialectX-trFX profile.runrF(jjX9http://docs.python.org/3/library/profile.html#profile.runX-trFXbase64.b85encoderF(jjX=http://docs.python.org/3/library/base64.html#base64.b85encodeX-tr FXcurses.wrapperr!F(jjX;http://docs.python.org/3/library/curses.html#curses.wrapperX-tr"FX platform.distr#F(jjX<http://docs.python.org/3/library/platform.html#platform.distX-tr$FX ctypes.byrefr%F(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.byrefX-tr&FXplatform.python_buildr'F(jjXDhttp://docs.python.org/3/library/platform.html#platform.python_buildX-tr(FXinspect.signaturer)F(jjX?http://docs.python.org/3/library/inspect.html#inspect.signatureX-tr*FXbinascii.crc_hqxr+F(jjX?http://docs.python.org/3/library/binascii.html#binascii.crc_hqxX-tr,FXwinreg.DisableReflectionKeyr-F(jjXHhttp://docs.python.org/3/library/winreg.html#winreg.DisableReflectionKeyX-tr.FXbase64.encodebytesr/F(jjX?http://docs.python.org/3/library/base64.html#base64.encodebytesX-tr0FXunicodedata.namer1F(jjXBhttp://docs.python.org/3/library/unicodedata.html#unicodedata.nameX-tr2FXos.get_terminal_sizer3F(jjX=http://docs.python.org/3/library/os.html#os.get_terminal_sizeX-tr4FXemail.utils.quoter5F(jjXBhttp://docs.python.org/3/library/email.util.html#email.utils.quoteX-tr6FX asyncore.loopr7F(jjX<http://docs.python.org/3/library/asyncore.html#asyncore.loopX-tr8FXsqlite3.register_converterr9F(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.register_converterX-tr:FXtextwrap.shortenr;F(jjX?http://docs.python.org/3/library/textwrap.html#textwrap.shortenX-trFXctypes.util.find_libraryr?F(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes.util.find_libraryX-tr@FXdis.stack_effectrAF(jjX:http://docs.python.org/3/library/dis.html#dis.stack_effectX-trBFXbinascii.rledecode_hqxrCF(jjXEhttp://docs.python.org/3/library/binascii.html#binascii.rledecode_hqxX-trDFX logging.debugrEF(jjX;http://docs.python.org/3/library/logging.html#logging.debugX-trFFXstringprep.map_table_b3rGF(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.map_table_b3X-trHFXos.rmdirrIF(jjX1http://docs.python.org/3/library/os.html#os.rmdirX-trJFXsyslog.closelogrKF(jjX<http://docs.python.org/3/library/syslog.html#syslog.closelogX-trLFXfunctools.partialrMF(jjXAhttp://docs.python.org/3/library/functools.html#functools.partialX-trNFX getopt.getoptrOF(jjX:http://docs.python.org/3/library/getopt.html#getopt.getoptX-trPFX os.getpidrQF(jjX2http://docs.python.org/3/library/os.html#os.getpidX-trRFX cmath.isnanrSF(jjX7http://docs.python.org/3/library/cmath.html#cmath.isnanX-trTFXos.path.splituncrUF(jjX>http://docs.python.org/3/library/os.path.html#os.path.splituncX-trVFXstringprep.in_table_d1rWF(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_d1X-trXFXsqlite3.complete_statementrYF(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.complete_statementX-trZFXstringprep.in_table_d2r[F(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_d2X-tr\FXfaulthandler.registerr]F(jjXHhttp://docs.python.org/3/library/faulthandler.html#faulthandler.registerX-tr^FX!distutils.dep_util.newer_pairwiser_F(jjXPhttp://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newer_pairwiseX-tr`FXoperator.__iadd__raF(jjX@http://docs.python.org/3/library/operator.html#operator.__iadd__X-trbFXoperator.lshiftrcF(jjX>http://docs.python.org/3/library/operator.html#operator.lshiftX-trdFXtokenize.untokenizereF(jjXBhttp://docs.python.org/3/library/tokenize.html#tokenize.untokenizeX-trfFXcurses.ungetchrgF(jjX;http://docs.python.org/3/library/curses.html#curses.ungetchX-trhFX pwd.getpwnamriF(jjX6http://docs.python.org/3/library/pwd.html#pwd.getpwnamX-trjFXtraceback.print_excrkF(jjXChttp://docs.python.org/3/library/traceback.html#traceback.print_excX-trlFXos.minorrmF(jjX1http://docs.python.org/3/library/os.html#os.minorX-trnFXcopyreg.pickleroF(jjX<http://docs.python.org/3/library/copyreg.html#copyreg.pickleX-trpFXturtle.showturtlerqF(jjX>http://docs.python.org/3/library/turtle.html#turtle.showturtleX-trrFXunittest.mock.callrsF(jjXFhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.callX-trtFXlocale.strxfrmruF(jjX;http://docs.python.org/3/library/locale.html#locale.strxfrmX-trvFXzlib.decompressrwF(jjX:http://docs.python.org/3/library/zlib.html#zlib.decompressX-trxFX curses.flashryF(jjX9http://docs.python.org/3/library/curses.html#curses.flashX-trzFX codecs.openr{F(jjX8http://docs.python.org/3/library/codecs.html#codecs.openX-tr|FXemail.utils.formataddrr}F(jjXGhttp://docs.python.org/3/library/email.util.html#email.utils.formataddrX-tr~FX math.atanhrF(jjX5http://docs.python.org/3/library/math.html#math.atanhX-trFXitertools.starmaprF(jjXAhttp://docs.python.org/3/library/itertools.html#itertools.starmapX-trFXos.posix_fallocaterF(jjX;http://docs.python.org/3/library/os.html#os.posix_fallocateX-trFXbinascii.rlecode_hqxrF(jjXChttp://docs.python.org/3/library/binascii.html#binascii.rlecode_hqxX-trFXitertools.groupbyrF(jjXAhttp://docs.python.org/3/library/itertools.html#itertools.groupbyX-trFX heapq.heapifyrF(jjX9http://docs.python.org/3/library/heapq.html#heapq.heapifyX-trFX+multiprocessing.connection.answer_challengerF(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.answer_challengeX-trFX gettext.findrF(jjX:http://docs.python.org/3/library/gettext.html#gettext.findX-trFXsysconfig.get_pathsrF(jjXChttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_pathsX-trFXrandom.betavariaterF(jjX?http://docs.python.org/3/library/random.html#random.betavariateX-trFXpdb.runrF(jjX1http://docs.python.org/3/library/pdb.html#pdb.runX-trFXasyncio.get_event_loop_policyrF(jjXUhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.get_event_loop_policyX-trFXaudioop.findfactorrF(jjX@http://docs.python.org/3/library/audioop.html#audioop.findfactorX-trFXos.path.normpathrF(jjX>http://docs.python.org/3/library/os.path.html#os.path.normpathX-trFXoperator.__setitem__rF(jjXChttp://docs.python.org/3/library/operator.html#operator.__setitem__X-trFXthreading.stack_sizerF(jjXDhttp://docs.python.org/3/library/threading.html#threading.stack_sizeX-trFXos.path.abspathrF(jjX=http://docs.python.org/3/library/os.path.html#os.path.abspathX-trFXplatform.versionrF(jjX?http://docs.python.org/3/library/platform.html#platform.versionX-trFX imghdr.whatrF(jjX8http://docs.python.org/3/library/imghdr.html#imghdr.whatX-trFXcurses.has_keyrF(jjX;http://docs.python.org/3/library/curses.html#curses.has_keyX-trFXcodecs.ignore_errorsrF(jjXAhttp://docs.python.org/3/library/codecs.html#codecs.ignore_errorsX-trFXlogging.config.dictConfigrF(jjXNhttp://docs.python.org/3/library/logging.config.html#logging.config.dictConfigX-trFXcodecs.getincrementalencoderrF(jjXIhttp://docs.python.org/3/library/codecs.html#codecs.getincrementalencoderX-trFXimaplib.ParseFlagsrF(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.ParseFlagsX-trFXlocale.resetlocalerF(jjX?http://docs.python.org/3/library/locale.html#locale.resetlocaleX-trFXtest.support.anticipate_failurerF(jjXJhttp://docs.python.org/3/library/test.html#test.support.anticipate_failureX-trFX os.getenvrF(jjX2http://docs.python.org/3/library/os.html#os.getenvX-trFXturtle.onscreenclickrF(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.onscreenclickX-trFXwinreg.ExpandEnvironmentStringsrF(jjXLhttp://docs.python.org/3/library/winreg.html#winreg.ExpandEnvironmentStringsX-trFXimportlib.__import__rF(jjXDhttp://docs.python.org/3/library/importlib.html#importlib.__import__X-trFXoperator.__pow__rF(jjX?http://docs.python.org/3/library/operator.html#operator.__pow__X-trFXcurses.has_colorsrF(jjX>http://docs.python.org/3/library/curses.html#curses.has_colorsX-trFXlocale.currencyrF(jjX<http://docs.python.org/3/library/locale.html#locale.currencyX-trFX sys.internrF(jjX4http://docs.python.org/3/library/sys.html#sys.internX-trFXdifflib.get_close_matchesrF(jjXGhttp://docs.python.org/3/library/difflib.html#difflib.get_close_matchesX-trFXweakref.getweakrefsrF(jjXAhttp://docs.python.org/3/library/weakref.html#weakref.getweakrefsX-trFXasyncio.start_unix_serverrF(jjXNhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.start_unix_serverX-trFXcurses.resizetermrF(jjX>http://docs.python.org/3/library/curses.html#curses.resizetermX-trFXos.path.splitdriverF(jjX@http://docs.python.org/3/library/os.path.html#os.path.splitdriveX-trFXsocket.getdefaulttimeoutrF(jjXEhttp://docs.python.org/3/library/socket.html#socket.getdefaulttimeoutX-trFXlogging.warningrF(jjX=http://docs.python.org/3/library/logging.html#logging.warningX-trFXos.mknodrF(jjX1http://docs.python.org/3/library/os.html#os.mknodX-trFX os.WCOREDUMPrF(jjX5http://docs.python.org/3/library/os.html#os.WCOREDUMPX-trFXctypes.POINTERrF(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.POINTERX-trFX math.atan2rF(jjX5http://docs.python.org/3/library/math.html#math.atan2X-trFXreadline.get_completion_typerF(jjXKhttp://docs.python.org/3/library/readline.html#readline.get_completion_typeX-trFX os.WIFSTOPPEDrF(jjX6http://docs.python.org/3/library/os.html#os.WIFSTOPPEDX-trFX os.openptyrF(jjX3http://docs.python.org/3/library/os.html#os.openptyX-trFXshutil.copytreerF(jjX<http://docs.python.org/3/library/shutil.html#shutil.copytreeX-trFXcodecs.xmlcharrefreplace_errorsrF(jjXLhttp://docs.python.org/3/library/codecs.html#codecs.xmlcharrefreplace_errorsX-trFXfaulthandler.is_enabledrF(jjXJhttp://docs.python.org/3/library/faulthandler.html#faulthandler.is_enabledX-trFXoperator.countOfrF(jjX?http://docs.python.org/3/library/operator.html#operator.countOfX-trFX os.fchdirrF(jjX2http://docs.python.org/3/library/os.html#os.fchdirX-trFXwinreg.EnumValuerF(jjX=http://docs.python.org/3/library/winreg.html#winreg.EnumValueX-trFXurllib.request.urlcleanuprF(jjXNhttp://docs.python.org/3/library/urllib.request.html#urllib.request.urlcleanupX-trFXemail.utils.formatdaterF(jjXGhttp://docs.python.org/3/library/email.util.html#email.utils.formatdateX-trFXmimetypes.guess_typerF(jjXDhttp://docs.python.org/3/library/mimetypes.html#mimetypes.guess_typeX-trFX curses.norawrF(jjX9http://docs.python.org/3/library/curses.html#curses.norawX-trFX cmath.asinhrF(jjX7http://docs.python.org/3/library/cmath.html#cmath.asinhX-trFX imp.get_tagrF(jjX5http://docs.python.org/3/library/imp.html#imp.get_tagX-trFXturtle.resetscreenrF(jjX?http://docs.python.org/3/library/turtle.html#turtle.resetscreenX-trFXlocale.strcollrF(jjX;http://docs.python.org/3/library/locale.html#locale.strcollX-trFu(Xbinascii.a2b_uurF(jjX>http://docs.python.org/3/library/binascii.html#binascii.a2b_uuX-trFXlzma.decompressrF(jjX:http://docs.python.org/3/library/lzma.html#lzma.decompressX-trFXmsvcrt.ungetwchrF(jjX<http://docs.python.org/3/library/msvcrt.html#msvcrt.ungetwchX-trGXgc.get_objectsrG(jjX7http://docs.python.org/3/library/gc.html#gc.get_objectsX-trGX os.fpathconfrG(jjX5http://docs.python.org/3/library/os.html#os.fpathconfX-trGXturtle.turtlesizerG(jjX>http://docs.python.org/3/library/turtle.html#turtle.turtlesizeX-trGXsys.getswitchintervalrG(jjX?http://docs.python.org/3/library/sys.html#sys.getswitchintervalX-trGX gc.get_debugr G(jjX5http://docs.python.org/3/library/gc.html#gc.get_debugX-tr GXxml.sax.saxutils.unescaper G(jjXMhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.unescapeX-tr GXctypes.alignmentr G(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.alignmentX-trGX venv.createrG(jjX6http://docs.python.org/3/library/venv.html#venv.createX-trGXctypes.FormatErrorrG(jjX?http://docs.python.org/3/library/ctypes.html#ctypes.FormatErrorX-trGXoperator.__index__rG(jjXAhttp://docs.python.org/3/library/operator.html#operator.__index__X-trGX os.putenvrG(jjX2http://docs.python.org/3/library/os.html#os.putenvX-trGX_thread.interrupt_mainrG(jjXDhttp://docs.python.org/3/library/_thread.html#_thread.interrupt_mainX-trGXresource.getrusagerG(jjXAhttp://docs.python.org/3/library/resource.html#resource.getrusageX-trGX os.spawnvrG(jjX2http://docs.python.org/3/library/os.html#os.spawnvX-trGXssl.DER_cert_to_PEM_certrG(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.DER_cert_to_PEM_certX-trGXturtle.hideturtlerG(jjX>http://docs.python.org/3/library/turtle.html#turtle.hideturtleX-tr GXbisect.insort_leftr!G(jjX?http://docs.python.org/3/library/bisect.html#bisect.insort_leftX-tr"GX stat.S_ISPORTr#G(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISPORTX-tr$GX os.renamer%G(jjX2http://docs.python.org/3/library/os.html#os.renameX-tr&GXio.openr'G(jjX0http://docs.python.org/3/library/io.html#io.openX-tr(GXemail.encoders.encode_quoprir)G(jjXQhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_quopriX-tr*GXcurses.mouseintervalr+G(jjXAhttp://docs.python.org/3/library/curses.html#curses.mouseintervalX-tr,GXoperator.__mod__r-G(jjX?http://docs.python.org/3/library/operator.html#operator.__mod__X-tr.GXdistutils.file_util.move_filer/G(jjXLhttp://docs.python.org/3/distutils/apiref.html#distutils.file_util.move_fileX-tr0GX uuid.getnoder1G(jjX7http://docs.python.org/3/library/uuid.html#uuid.getnodeX-tr2GXcurses.ascii.isctrlr3G(jjXFhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isctrlX-tr4GXweakref.getweakrefcountr5G(jjXEhttp://docs.python.org/3/library/weakref.html#weakref.getweakrefcountX-tr6GXos.removexattrr7G(jjX7http://docs.python.org/3/library/os.html#os.removexattrX-tr8GX cmath.acoshr9G(jjX7http://docs.python.org/3/library/cmath.html#cmath.acoshX-tr:GXturtle.get_polyr;G(jjX<http://docs.python.org/3/library/turtle.html#turtle.get_polyX-trGXiterr?G(jjX4http://docs.python.org/3/library/functions.html#iterX-tr@GX os.lchmodrAG(jjX2http://docs.python.org/3/library/os.html#os.lchmodX-trBGXhasattrrCG(jjX7http://docs.python.org/3/library/functions.html#hasattrX-trDGX csv.readerrEG(jjX4http://docs.python.org/3/library/csv.html#csv.readerX-trFGXturtle.setheadingrGG(jjX>http://docs.python.org/3/library/turtle.html#turtle.setheadingX-trHGXtest.support.captured_stdoutrIG(jjXGhttp://docs.python.org/3/library/test.html#test.support.captured_stdoutX-trJGXcalendar.calendarrKG(jjX@http://docs.python.org/3/library/calendar.html#calendar.calendarX-trLGXroundrMG(jjX5http://docs.python.org/3/library/functions.html#roundX-trNGXdirrOG(jjX3http://docs.python.org/3/library/functions.html#dirX-trPGXasyncio.gatherrQG(jjXAhttp://docs.python.org/3/library/asyncio-task.html#asyncio.gatherX-trRGXdistutils.util.change_rootrSG(jjXIhttp://docs.python.org/3/distutils/apiref.html#distutils.util.change_rootX-trTGXmath.powrUG(jjX3http://docs.python.org/3/library/math.html#math.powX-trVGXmultiprocessing.cpu_countrWG(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.cpu_countX-trXGXrandom.paretovariaterYG(jjXAhttp://docs.python.org/3/library/random.html#random.paretovariateX-trZGX#readline.get_current_history_lengthr[G(jjXRhttp://docs.python.org/3/library/readline.html#readline.get_current_history_lengthX-tr\GX math.fsumr]G(jjX4http://docs.python.org/3/library/math.html#math.fsumX-tr^GXplatform.unamer_G(jjX=http://docs.python.org/3/library/platform.html#platform.unameX-tr`GXlocale.localeconvraG(jjX>http://docs.python.org/3/library/locale.html#locale.localeconvX-trbGXcurses.unget_wchrcG(jjX=http://docs.python.org/3/library/curses.html#curses.unget_wchX-trdGXcmath.isfinitereG(jjX:http://docs.python.org/3/library/cmath.html#cmath.isfiniteX-trfGX os.mkfiforgG(jjX2http://docs.python.org/3/library/os.html#os.mkfifoX-trhGXtracemalloc.startriG(jjXChttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.startX-trjGXstruct.calcsizerkG(jjX<http://docs.python.org/3/library/struct.html#struct.calcsizeX-trlGX site.mainrmG(jjX4http://docs.python.org/3/library/site.html#site.mainX-trnGX os.waitpidroG(jjX3http://docs.python.org/3/library/os.html#os.waitpidX-trpGX operator.addrqG(jjX;http://docs.python.org/3/library/operator.html#operator.addX-trrGX!faulthandler.dump_traceback_laterrsG(jjXThttp://docs.python.org/3/library/faulthandler.html#faulthandler.dump_traceback_laterX-trtGX os.getloadavgruG(jjX6http://docs.python.org/3/library/os.html#os.getloadavgX-trvGXfileinput.hook_compressedrwG(jjXIhttp://docs.python.org/3/library/fileinput.html#fileinput.hook_compressedX-trxGX dis.show_coderyG(jjX7http://docs.python.org/3/library/dis.html#dis.show_codeX-trzGXunittest.mock.mock_openr{G(jjXKhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.mock_openX-tr|GX curses.setsyxr}G(jjX:http://docs.python.org/3/library/curses.html#curses.setsyxX-tr~GXrandom.expovariaterG(jjX?http://docs.python.org/3/library/random.html#random.expovariateX-trGXasyncio.open_unix_connectionrG(jjXQhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.open_unix_connectionX-trGX os.WTERMSIGrG(jjX4http://docs.python.org/3/library/os.html#os.WTERMSIGX-trGXdoctest.DocFileSuiterG(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.DocFileSuiteX-trGX gzip.openrG(jjX4http://docs.python.org/3/library/gzip.html#gzip.openX-trGXinspect.ismemberdescriptorrG(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.ismemberdescriptorX-trGX winsound.BeeprG(jjX<http://docs.python.org/3/library/winsound.html#winsound.BeepX-trGX zlib.adler32rG(jjX7http://docs.python.org/3/library/zlib.html#zlib.adler32X-trGX os.getenvbrG(jjX3http://docs.python.org/3/library/os.html#os.getenvbX-trGXbinascii.a2b_hqxrG(jjX?http://docs.python.org/3/library/binascii.html#binascii.a2b_hqxX-trGXcolorsys.rgb_to_hsvrG(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hsvX-trGX quopri.decoderG(jjX:http://docs.python.org/3/library/quopri.html#quopri.decodeX-trGXoperator.ilshiftrG(jjX?http://docs.python.org/3/library/operator.html#operator.ilshiftX-trGXstruct.pack_intorG(jjX=http://docs.python.org/3/library/struct.html#struct.pack_intoX-trGXxml.etree.ElementTree.tostringrG(jjXZhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostringX-trGX json.dumpsrG(jjX5http://docs.python.org/3/library/json.html#json.dumpsX-trGX(faulthandler.cancel_dump_traceback_laterrG(jjX[http://docs.python.org/3/library/faulthandler.html#faulthandler.cancel_dump_traceback_laterX-trGX pwd.getpwuidrG(jjX6http://docs.python.org/3/library/pwd.html#pwd.getpwuidX-trGXmath.factorialrG(jjX9http://docs.python.org/3/library/math.html#math.factorialX-trGXinspect.getsourcelinesrG(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getsourcelinesX-trGXgc.get_referrersrG(jjX9http://docs.python.org/3/library/gc.html#gc.get_referrersX-trGXsysconfig.get_platformrG(jjXFhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_platformX-trGX socket.fromfdrG(jjX:http://docs.python.org/3/library/socket.html#socket.fromfdX-trGX curses.cbreakrG(jjX:http://docs.python.org/3/library/curses.html#curses.cbreakX-trGXparser.tuple2strG(jjX<http://docs.python.org/3/library/parser.html#parser.tuple2stX-trGX os.getgroupsrG(jjX5http://docs.python.org/3/library/os.html#os.getgroupsX-trGXlogging.captureWarningsrG(jjXEhttp://docs.python.org/3/library/logging.html#logging.captureWarningsX-trGX os.setresgidrG(jjX5http://docs.python.org/3/library/os.html#os.setresgidX-trGXurllib.parse.parse_qslrG(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.parse_qslX-trGXbinascii.b2a_hqxrG(jjX?http://docs.python.org/3/library/binascii.html#binascii.b2a_hqxX-trGX staticmethodrG(jjX<http://docs.python.org/3/library/functions.html#staticmethodX-trGX math.acosrG(jjX4http://docs.python.org/3/library/math.html#math.acosX-trGXplatform.processorrG(jjXAhttp://docs.python.org/3/library/platform.html#platform.processorX-trGXfaulthandler.disablerG(jjXGhttp://docs.python.org/3/library/faulthandler.html#faulthandler.disableX-trGXoperator.__itruediv__rG(jjXDhttp://docs.python.org/3/library/operator.html#operator.__itruediv__X-trGX wave.openfprG(jjX6http://docs.python.org/3/library/wave.html#wave.openfpX-trGXoperator.__ior__rG(jjX?http://docs.python.org/3/library/operator.html#operator.__ior__X-trGXplistlib.readPlistrG(jjXAhttp://docs.python.org/3/library/plistlib.html#plistlib.readPlistX-trGXzlib.decompressobjrG(jjX=http://docs.python.org/3/library/zlib.html#zlib.decompressobjX-trGXcurses.resize_termrG(jjX?http://docs.python.org/3/library/curses.html#curses.resize_termX-trGXsocket.gethostbynamerG(jjXAhttp://docs.python.org/3/library/socket.html#socket.gethostbynameX-trGXemail.message_from_binary_filerG(jjXQhttp://docs.python.org/3/library/email.parser.html#email.message_from_binary_fileX-trGX os.accessrG(jjX2http://docs.python.org/3/library/os.html#os.accessX-trGX time.strftimerG(jjX8http://docs.python.org/3/library/time.html#time.strftimeX-trGXcurses.setuptermrG(jjX=http://docs.python.org/3/library/curses.html#curses.setuptermX-trGXwarnings.simplefilterrG(jjXDhttp://docs.python.org/3/library/warnings.html#warnings.simplefilterX-trGXtoken.ISNONTERMINALrG(jjX?http://docs.python.org/3/library/token.html#token.ISNONTERMINALX-trGXdivmodrG(jjX6http://docs.python.org/3/library/functions.html#divmodX-trGX tracemalloc.get_object_tracebackrG(jjXRhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_object_tracebackX-trGXsys.exitrG(jjX2http://docs.python.org/3/library/sys.html#sys.exitX-trGXxml.etree.ElementTree.dumprG(jjXVhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.dumpX-trGX os.tcgetpgrprG(jjX5http://docs.python.org/3/library/os.html#os.tcgetpgrpX-trGXziprG(jjX3http://docs.python.org/3/library/functions.html#zipX-trGX audioop.mulrG(jjX9http://docs.python.org/3/library/audioop.html#audioop.mulX-trGXlocale.normalizerG(jjX=http://docs.python.org/3/library/locale.html#locale.normalizeX-trGXimaplib.Time2InternaldaterG(jjXGhttp://docs.python.org/3/library/imaplib.html#imaplib.Time2InternaldateX-trGXchrrG(jjX3http://docs.python.org/3/library/functions.html#chrX-trGXkeyword.iskeywordrG(jjX?http://docs.python.org/3/library/keyword.html#keyword.iskeywordX-trGXreadline.get_begidxrG(jjXBhttp://docs.python.org/3/library/readline.html#readline.get_begidxX-trGXast.copy_locationrG(jjX;http://docs.python.org/3/library/ast.html#ast.copy_locationX-trGXwsgiref.util.request_urirG(jjXFhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.request_uriX-trGXgettext.bind_textdomain_codesetrG(jjXMhttp://docs.python.org/3/library/gettext.html#gettext.bind_textdomain_codesetX-trGXinspect.unwraprG(jjX<http://docs.python.org/3/library/inspect.html#inspect.unwrapX-trGX grp.getgrgidrG(jjX6http://docs.python.org/3/library/grp.html#grp.getgrgidX-trGXsubprocess.check_outputrG(jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess.check_outputX-trHX turtle.resetrH(jjX9http://docs.python.org/3/library/turtle.html#turtle.resetX-trHXcalendar.prcalrH(jjX=http://docs.python.org/3/library/calendar.html#calendar.prcalX-trHXemail.utils.encode_rfc2231rH(jjXKhttp://docs.python.org/3/library/email.util.html#email.utils.encode_rfc2231X-trHX cgitb.enablerH(jjX8http://docs.python.org/3/library/cgitb.html#cgitb.enableX-trHXxmlrpc.client.dumpsr H(jjXGhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.dumpsX-tr HXcreate_shortcutr H(jjXAhttp://docs.python.org/3/distutils/builtdist.html#create_shortcutX-tr HXurllib.parse.quoter H(jjXEhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.quoteX-trHX stat.S_ISWHTrH(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISWHTX-trHXcurses.is_term_resizedrH(jjXChttp://docs.python.org/3/library/curses.html#curses.is_term_resizedX-trHX select.selectrH(jjX:http://docs.python.org/3/library/select.html#select.selectX-trHXast.dumprH(jjX2http://docs.python.org/3/library/ast.html#ast.dumpX-trHXemail.charset.add_codecrH(jjXKhttp://docs.python.org/3/library/email.charset.html#email.charset.add_codecX-trHXemail.utils.parseaddrrH(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.parseaddrX-trHX time.tzsetrH(jjX5http://docs.python.org/3/library/time.html#time.tzsetX-trHXsocket.getprotobynamerH(jjXBhttp://docs.python.org/3/library/socket.html#socket.getprotobynameX-trHX msvcrt.kbhitrH(jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt.kbhitX-tr HXgettext.lgettextr!H(jjX>http://docs.python.org/3/library/gettext.html#gettext.lgettextX-tr"HX select.keventr#H(jjX:http://docs.python.org/3/library/select.html#select.keventX-tr$HXemail.utils.decode_rfc2231r%H(jjXKhttp://docs.python.org/3/library/email.util.html#email.utils.decode_rfc2231X-tr&HXmsvcrt.setmoder'H(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.setmodeX-tr(HX grp.getgrallr)H(jjX6http://docs.python.org/3/library/grp.html#grp.getgrallX-tr*HX shlex.splitr+H(jjX7http://docs.python.org/3/library/shlex.html#shlex.splitX-tr,HX crypt.cryptr-H(jjX7http://docs.python.org/3/library/crypt.html#crypt.cryptX-tr.HX random.gaussr/H(jjX9http://docs.python.org/3/library/random.html#random.gaussX-tr0HX fcntl.fcntlr1H(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.fcntlX-tr2HXinspect.istracebackr3H(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.istracebackX-tr4HXos.readvr5H(jjX1http://docs.python.org/3/library/os.html#os.readvX-tr6HXturtle.fillcolorr7H(jjX=http://docs.python.org/3/library/turtle.html#turtle.fillcolorX-tr8HX math.coshr9H(jjX4http://docs.python.org/3/library/math.html#math.coshX-tr:HX html.unescaper;H(jjX8http://docs.python.org/3/library/html.html#html.unescapeX-trHXoperator.__ifloordiv__r?H(jjXEhttp://docs.python.org/3/library/operator.html#operator.__ifloordiv__X-tr@HX asyncio.sleeprAH(jjX@http://docs.python.org/3/library/asyncio-task.html#asyncio.sleepX-trBHXnis.catrCH(jjX1http://docs.python.org/3/library/nis.html#nis.catX-trDHX!xml.dom.registerDOMImplementationrEH(jjXOhttp://docs.python.org/3/library/xml.dom.html#xml.dom.registerDOMImplementationX-trFHXreadline.get_completer_delimsrGH(jjXLhttp://docs.python.org/3/library/readline.html#readline.get_completer_delimsX-trHHXxml.parsers.expat.ParserCreaterIH(jjXLhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ParserCreateX-trJHXtest.support.run_doctestrKH(jjXChttp://docs.python.org/3/library/test.html#test.support.run_doctestX-trLHXbinascii.b2a_base64rMH(jjXBhttp://docs.python.org/3/library/binascii.html#binascii.b2a_base64X-trNHXsys._current_framesrOH(jjX=http://docs.python.org/3/library/sys.html#sys._current_framesX-trPHXplistlib.loadsrQH(jjX=http://docs.python.org/3/library/plistlib.html#plistlib.loadsX-trRHXwarnings.formatwarningrSH(jjXEhttp://docs.python.org/3/library/warnings.html#warnings.formatwarningX-trTHXturtle.shearfactorrUH(jjX?http://docs.python.org/3/library/turtle.html#turtle.shearfactorX-trVHXmimetypes.read_mime_typesrWH(jjXIhttp://docs.python.org/3/library/mimetypes.html#mimetypes.read_mime_typesX-trXHXos.posix_fadviserYH(jjX9http://docs.python.org/3/library/os.html#os.posix_fadviseX-trZHXemail.utils.unquoter[H(jjXDhttp://docs.python.org/3/library/email.util.html#email.utils.unquoteX-tr\HXtest.support.run_with_localer]H(jjXGhttp://docs.python.org/3/library/test.html#test.support.run_with_localeX-tr^HXos.plockr_H(jjX1http://docs.python.org/3/library/os.html#os.plockX-tr`HXsys.call_tracingraH(jjX:http://docs.python.org/3/library/sys.html#sys.call_tracingX-trbHXfunctools.wrapsrcH(jjX?http://docs.python.org/3/library/functools.html#functools.wrapsX-trdHXitertools.countreH(jjX?http://docs.python.org/3/library/itertools.html#itertools.countX-trfHXipaddress.ip_interfacergH(jjXFhttp://docs.python.org/3/library/ipaddress.html#ipaddress.ip_interfaceX-trhHX os.setgidriH(jjX2http://docs.python.org/3/library/os.html#os.setgidX-trjHX turtle.rtrkH(jjX6http://docs.python.org/3/library/turtle.html#turtle.rtX-trlHX turtle.bgpicrmH(jjX9http://docs.python.org/3/library/turtle.html#turtle.bgpicX-trnHX wave.openroH(jjX4http://docs.python.org/3/library/wave.html#wave.openX-trpHX fcntl.flockrqH(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.flockX-trrHXmsvcrt.open_osfhandlersH(jjXBhttp://docs.python.org/3/library/msvcrt.html#msvcrt.open_osfhandleX-trtHXcodeop.compile_commandruH(jjXChttp://docs.python.org/3/library/codeop.html#codeop.compile_commandX-trvHXplatform.linux_distributionrwH(jjXJhttp://docs.python.org/3/library/platform.html#platform.linux_distributionX-trxHXmapryH(jjX3http://docs.python.org/3/library/functions.html#mapX-trzHXstatistics.variancer{H(jjXDhttp://docs.python.org/3/library/statistics.html#statistics.varianceX-tr|HXcolorsys.yiq_to_rgbr}H(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.yiq_to_rgbX-tr~HXdistutils.util.convert_pathrH(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.convert_pathX-trHXos.path.samestatrH(jjX>http://docs.python.org/3/library/os.path.html#os.path.samestatX-trHXmaxrH(jjX3http://docs.python.org/3/library/functions.html#maxX-trHXaudioop.byteswaprH(jjX>http://docs.python.org/3/library/audioop.html#audioop.byteswapX-trHXgetpass.getuserrH(jjX=http://docs.python.org/3/library/getpass.html#getpass.getuserX-trHXturtle.end_polyrH(jjX<http://docs.python.org/3/library/turtle.html#turtle.end_polyX-trHXheapq.nsmallestrH(jjX;http://docs.python.org/3/library/heapq.html#heapq.nsmallestX-trHX csv.writerrH(jjX4http://docs.python.org/3/library/csv.html#csv.writerX-trHXoperator.getitemrH(jjX?http://docs.python.org/3/library/operator.html#operator.getitemX-trHX'itertools.combinations_with_replacementrH(jjXWhttp://docs.python.org/3/library/itertools.html#itertools.combinations_with_replacementX-trHXtraceback.format_stackrH(jjXFhttp://docs.python.org/3/library/traceback.html#traceback.format_stackX-trHX math.isinfrH(jjX5http://docs.python.org/3/library/math.html#math.isinfX-trHXos.forkrH(jjX0http://docs.python.org/3/library/os.html#os.forkX-trHXturtle.headingrH(jjX;http://docs.python.org/3/library/turtle.html#turtle.headingX-trHXgettext.ldgettextrH(jjX?http://docs.python.org/3/library/gettext.html#gettext.ldgettextX-trHXbinascii.crc32rH(jjX=http://docs.python.org/3/library/binascii.html#binascii.crc32X-trHXcopyreg.constructorrH(jjXAhttp://docs.python.org/3/library/copyreg.html#copyreg.constructorX-trHXinspect.iscoderH(jjX<http://docs.python.org/3/library/inspect.html#inspect.iscodeX-trHX cmath.atanrH(jjX6http://docs.python.org/3/library/cmath.html#cmath.atanX-trHX turtle.stamprH(jjX9http://docs.python.org/3/library/turtle.html#turtle.stampX-trHXgc.get_referentsrH(jjX9http://docs.python.org/3/library/gc.html#gc.get_referentsX-trHX aifc.openrH(jjX4http://docs.python.org/3/library/aifc.html#aifc.openX-trHXlogging.exceptionrH(jjX?http://docs.python.org/3/library/logging.html#logging.exceptionX-trHX os.lchflagsrH(jjX4http://docs.python.org/3/library/os.html#os.lchflagsX-trHXfnmatch.fnmatchcaserH(jjXAhttp://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatchcaseX-trHXunicodedata.combiningrH(jjXGhttp://docs.python.org/3/library/unicodedata.html#unicodedata.combiningX-trHX turtle.homerH(jjX8http://docs.python.org/3/library/turtle.html#turtle.homeX-trHX math.fmodrH(jjX4http://docs.python.org/3/library/math.html#math.fmodX-trHXlogging.addLevelNamerH(jjXBhttp://docs.python.org/3/library/logging.html#logging.addLevelNameX-trHXimp.acquire_lockrH(jjX:http://docs.python.org/3/library/imp.html#imp.acquire_lockX-trHXos.path.normcaserH(jjX>http://docs.python.org/3/library/os.path.html#os.path.normcaseX-trHXsysconfig.get_makefile_filenamerH(jjXOhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_makefile_filenameX-trHXbinascii.b2a_qprH(jjX>http://docs.python.org/3/library/binascii.html#binascii.b2a_qpX-trHXoperator.__eq__rH(jjX>http://docs.python.org/3/library/operator.html#operator.__eq__X-trHXurllib.parse.urlunsplitrH(jjXJhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlunsplitX-trHX os.makedirsrH(jjX4http://docs.python.org/3/library/os.html#os.makedirsX-trHXctypes.DllCanUnloadNowrH(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes.DllCanUnloadNowX-trHXdifflib.IS_LINE_JUNKrH(jjXBhttp://docs.python.org/3/library/difflib.html#difflib.IS_LINE_JUNKX-trHXsocket.getservbyportrH(jjXAhttp://docs.python.org/3/library/socket.html#socket.getservbyportX-trHXimp.source_from_cacherH(jjX?http://docs.python.org/3/library/imp.html#imp.source_from_cacheX-trHXreadline.read_init_filerH(jjXFhttp://docs.python.org/3/library/readline.html#readline.read_init_fileX-trHXmimetypes.initrH(jjX>http://docs.python.org/3/library/mimetypes.html#mimetypes.initX-trHXos.WEXITSTATUSrH(jjX7http://docs.python.org/3/library/os.html#os.WEXITSTATUSX-trHXoperator.__delitem__rH(jjXChttp://docs.python.org/3/library/operator.html#operator.__delitem__X-trHXcurses.delay_outputrH(jjX@http://docs.python.org/3/library/curses.html#curses.delay_outputX-trHXurllib.request.build_openerrH(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.build_openerX-trHXitertools.repeatrH(jjX@http://docs.python.org/3/library/itertools.html#itertools.repeatX-trHX os.getgidrH(jjX2http://docs.python.org/3/library/os.html#os.getgidX-trHXurllib.request.urlopenrH(jjXKhttp://docs.python.org/3/library/urllib.request.html#urllib.request.urlopenX-trHXaudioop.tomonorH(jjX<http://docs.python.org/3/library/audioop.html#audioop.tomonoX-trHXtest.support.change_cwdrH(jjXBhttp://docs.python.org/3/library/test.html#test.support.change_cwdX-trHX audioop.biasrH(jjX:http://docs.python.org/3/library/audioop.html#audioop.biasX-trHXtermios.tcflowrH(jjX<http://docs.python.org/3/library/termios.html#termios.tcflowX-trHX socket.socketrH(jjX:http://docs.python.org/3/library/socket.html#socket.socketX-trHXlocale.setlocalerH(jjX=http://docs.python.org/3/library/locale.html#locale.setlocaleX-trHXimp.get_suffixesrH(jjX:http://docs.python.org/3/library/imp.html#imp.get_suffixesX-trHXreadline.set_completer_delimsrH(jjXLhttp://docs.python.org/3/library/readline.html#readline.set_completer_delimsX-trHXcode.compile_commandrH(jjX?http://docs.python.org/3/library/code.html#code.compile_commandX-trHX+xml.etree.ElementTree.ProcessingInstructionrH(jjXghttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ProcessingInstructionX-trHX cmath.cosrH(jjX5http://docs.python.org/3/library/cmath.html#cmath.cosX-trHXcompileall.compile_filerH(jjXHhttp://docs.python.org/3/library/compileall.html#compileall.compile_fileX-trHX os.path.isdirrH(jjX;http://docs.python.org/3/library/os.path.html#os.path.isdirX-trHXgettext.lngettextrH(jjX?http://docs.python.org/3/library/gettext.html#gettext.lngettextX-trHXemail.message_from_stringrH(jjXLhttp://docs.python.org/3/library/email.parser.html#email.message_from_stringX-trHXinspect.cleandocrH(jjX>http://docs.python.org/3/library/inspect.html#inspect.cleandocX-trIXmultiprocessing.current_processrI(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.current_processX-trIX turtle.posrI(jjX7http://docs.python.org/3/library/turtle.html#turtle.posX-trIXsortedrI(jjX6http://docs.python.org/3/library/functions.html#sortedX-trIXos.pipe2rI(jjX1http://docs.python.org/3/library/os.html#os.pipe2X-trIX re.fullmatchr I(jjX5http://docs.python.org/3/library/re.html#re.fullmatchX-tr IXwinsound.PlaySoundr I(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.PlaySoundX-tr IX os.spawnlpr I(jjX3http://docs.python.org/3/library/os.html#os.spawnlpX-trIX operator.nerI(jjX:http://docs.python.org/3/library/operator.html#operator.neX-trIXos.path.getctimerI(jjX>http://docs.python.org/3/library/os.path.html#os.path.getctimeX-trIXinspect.formatargvaluesrI(jjXEhttp://docs.python.org/3/library/inspect.html#inspect.formatargvaluesX-trIXpkgutil.iter_modulesrI(jjXBhttp://docs.python.org/3/library/pkgutil.html#pkgutil.iter_modulesX-trIXxml.etree.ElementTree.XMLrI(jjXUhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLX-trIXos.sched_get_priority_minrI(jjXBhttp://docs.python.org/3/library/os.html#os.sched_get_priority_minX-trIX math.isfiniterI(jjX8http://docs.python.org/3/library/math.html#math.isfiniteX-trIX random.seedrI(jjX8http://docs.python.org/3/library/random.html#random.seedX-trIXunicodedata.normalizerI(jjXGhttp://docs.python.org/3/library/unicodedata.html#unicodedata.normalizeX-tr IX os.getxattrr!I(jjX4http://docs.python.org/3/library/os.html#os.getxattrX-tr"IXinspect.ismethoddescriptorr#I(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.ismethoddescriptorX-tr$IX time.gmtimer%I(jjX6http://docs.python.org/3/library/time.html#time.gmtimeX-tr&IXturtle.get_shapepolyr'I(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.get_shapepolyX-tr(IXlzma.is_check_supportedr)I(jjXBhttp://docs.python.org/3/library/lzma.html#lzma.is_check_supportedX-tr*IX#wsgiref.util.setup_testing_defaultsr+I(jjXQhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.setup_testing_defaultsX-tr,IXcurses.use_default_colorsr-I(jjXFhttp://docs.python.org/3/library/curses.html#curses.use_default_colorsX-tr.IXtime.clock_getresr/I(jjX<http://docs.python.org/3/library/time.html#time.clock_getresX-tr0IX math.radiansr1I(jjX7http://docs.python.org/3/library/math.html#math.radiansX-tr2IXthreading.enumerater3I(jjXChttp://docs.python.org/3/library/threading.html#threading.enumerateX-tr4IX gc.isenabledr5I(jjX5http://docs.python.org/3/library/gc.html#gc.isenabledX-tr6IXrandom.vonmisesvariater7I(jjXChttp://docs.python.org/3/library/random.html#random.vonmisesvariateX-tr8IXsocket.getnameinfor9I(jjX?http://docs.python.org/3/library/socket.html#socket.getnameinfoX-tr:IX os.writevr;I(jjX2http://docs.python.org/3/library/os.html#os.writevX-trhttp://docs.python.org/3/library/csv.html#csv.field_size_limitX-tr>IX os.seteuidr?I(jjX3http://docs.python.org/3/library/os.html#os.seteuidX-tr@IXmsvcrt.lockingrAI(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.lockingX-trBIXcurses.savettyrCI(jjX;http://docs.python.org/3/library/curses.html#curses.savettyX-trDIXmultiprocessing.get_contextrEI(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_contextX-trFIXturtle.begin_fillrGI(jjX>http://docs.python.org/3/library/turtle.html#turtle.begin_fillX-trHIXinspect.getattr_staticrII(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getattr_staticX-trJIXcurses.flushinprKI(jjX<http://docs.python.org/3/library/curses.html#curses.flushinpX-trLIXdis.disrMI(jjX1http://docs.python.org/3/library/dis.html#dis.disX-trNIXsocket.if_nameindexrOI(jjX@http://docs.python.org/3/library/socket.html#socket.if_nameindexX-trPIXbase64.b64decoderQI(jjX=http://docs.python.org/3/library/base64.html#base64.b64decodeX-trRIXmsilib.gen_uuidrSI(jjX<http://docs.python.org/3/library/msilib.html#msilib.gen_uuidX-trTIXsys.setrecursionlimitrUI(jjX?http://docs.python.org/3/library/sys.html#sys.setrecursionlimitX-trVIX bisect.bisectrWI(jjX:http://docs.python.org/3/library/bisect.html#bisect.bisectX-trXIXdis.findlinestartsrYI(jjX<http://docs.python.org/3/library/dis.html#dis.findlinestartsX-trZIX shelve.openr[I(jjX8http://docs.python.org/3/library/shelve.html#shelve.openX-tr\IX os.setuidr]I(jjX2http://docs.python.org/3/library/os.html#os.setuidX-tr^IX random.choicer_I(jjX:http://docs.python.org/3/library/random.html#random.choiceX-tr`IXos.stat_float_timesraI(jjX<http://docs.python.org/3/library/os.html#os.stat_float_timesX-trbIXoperator.attrgetterrcI(jjXBhttp://docs.python.org/3/library/operator.html#operator.attrgetterX-trdIXturtle.settiltanglereI(jjX@http://docs.python.org/3/library/turtle.html#turtle.settiltangleX-trfIXreadline.redisplayrgI(jjXAhttp://docs.python.org/3/library/readline.html#readline.redisplayX-trhIX(xml.etree.ElementTree.register_namespaceriI(jjXdhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.register_namespaceX-trjIX os.ttynamerkI(jjX3http://docs.python.org/3/library/os.html#os.ttynameX-trlIXthreading.settracermI(jjXBhttp://docs.python.org/3/library/threading.html#threading.settraceX-trnIXordroI(jjX3http://docs.python.org/3/library/functions.html#ordX-trpIX time.ctimerqI(jjX5http://docs.python.org/3/library/time.html#time.ctimeX-trrIXcodecs.iterdecodersI(jjX>http://docs.python.org/3/library/codecs.html#codecs.iterdecodeX-trtIXtest.support.import_moduleruI(jjXEhttp://docs.python.org/3/library/test.html#test.support.import_moduleX-trvIXwsgiref.util.is_hop_by_hoprwI(jjXHhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.is_hop_by_hopX-trxIXos.timesryI(jjX1http://docs.python.org/3/library/os.html#os.timesX-trzIX os.pwriter{I(jjX2http://docs.python.org/3/library/os.html#os.pwriteX-tr|IX!ipaddress.summarize_address_ranger}I(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.summarize_address_rangeX-tr~IX doctest.set_unittest_reportflagsrI(jjXNhttp://docs.python.org/3/library/doctest.html#doctest.set_unittest_reportflagsX-trIX math.expm1rI(jjX5http://docs.python.org/3/library/math.html#math.expm1X-trIX os.systemrI(jjX2http://docs.python.org/3/library/os.html#os.systemX-trIXtempfile.TemporaryDirectoryrI(jjXJhttp://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectoryX-trIXos.sched_setaffinityrI(jjX=http://docs.python.org/3/library/os.html#os.sched_setaffinityX-trIXstatistics.median_lowrI(jjXFhttp://docs.python.org/3/library/statistics.html#statistics.median_lowX-trIXintrI(jjX3http://docs.python.org/3/library/functions.html#intX-trIXdistutils.util.check_environrI(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.util.check_environX-trIXlogging.config.fileConfigrI(jjXNhttp://docs.python.org/3/library/logging.config.html#logging.config.fileConfigX-trIXcurses.ascii.isblankrI(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isblankX-trIXcurses.typeaheadrI(jjX=http://docs.python.org/3/library/curses.html#curses.typeaheadX-trIX"sqlite3.enable_callback_tracebacksrI(jjXPhttp://docs.python.org/3/library/sqlite3.html#sqlite3.enable_callback_tracebacksX-trIXtermios.tcgetattrrI(jjX?http://docs.python.org/3/library/termios.html#termios.tcgetattrX-trIX&importlib.util.spec_from_file_locationrI(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.util.spec_from_file_locationX-trIX"xml.etree.ElementTree.tostringlistrI(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostringlistX-trIX os.isattyrI(jjX2http://docs.python.org/3/library/os.html#os.isattyX-trIXplatform.python_revisionrI(jjXGhttp://docs.python.org/3/library/platform.html#platform.python_revisionX-trIX dbm.gnu.openrI(jjX6http://docs.python.org/3/library/dbm.html#dbm.gnu.openX-trIX audioop.avgrI(jjX9http://docs.python.org/3/library/audioop.html#audioop.avgX-trIXmsilib.UuidCreaterI(jjX>http://docs.python.org/3/library/msilib.html#msilib.UuidCreateX-trIX random.randomrI(jjX:http://docs.python.org/3/library/random.html#random.randomX-trIX stat.filemoderI(jjX8http://docs.python.org/3/library/stat.html#stat.filemodeX-trIXsubprocess.getoutputrI(jjXEhttp://docs.python.org/3/library/subprocess.html#subprocess.getoutputX-trIX os.spawnvperI(jjX4http://docs.python.org/3/library/os.html#os.spawnvpeX-trIX cmath.logrI(jjX5http://docs.python.org/3/library/cmath.html#cmath.logX-trIXsite.getuserbaserI(jjX;http://docs.python.org/3/library/site.html#site.getuserbaseX-trIXbase64.b32decoderI(jjX=http://docs.python.org/3/library/base64.html#base64.b32decodeX-trIXre.matchrI(jjX1http://docs.python.org/3/library/re.html#re.matchX-trIXssl.enum_certificatesrI(jjX?http://docs.python.org/3/library/ssl.html#ssl.enum_certificatesX-trIXopenrI(jjX4http://docs.python.org/3/library/functions.html#openX-trIXplatform.win32_verrI(jjXAhttp://docs.python.org/3/library/platform.html#platform.win32_verX-trIXturtle.onkeyreleaserI(jjX@http://docs.python.org/3/library/turtle.html#turtle.onkeyreleaseX-trIXgettext.gettextrI(jjX=http://docs.python.org/3/library/gettext.html#gettext.gettextX-trIX turtle.downrI(jjX8http://docs.python.org/3/library/turtle.html#turtle.downX-trIXasyncio.set_event_loop_policyrI(jjXUhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.set_event_loop_policyX-trIX ctypes.memsetrI(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.memsetX-trIXcompileall.compile_dirrI(jjXGhttp://docs.python.org/3/library/compileall.html#compileall.compile_dirX-trIXos.sched_getaffinityrI(jjX=http://docs.python.org/3/library/os.html#os.sched_getaffinityX-trIXos.utimerI(jjX1http://docs.python.org/3/library/os.html#os.utimeX-trIXcalendar.timegmrI(jjX>http://docs.python.org/3/library/calendar.html#calendar.timegmX-trIXreadline.remove_history_itemrI(jjXKhttp://docs.python.org/3/library/readline.html#readline.remove_history_itemX-trIXcgi.print_formrI(jjX8http://docs.python.org/3/library/cgi.html#cgi.print_formX-trIX turtle.ondragrI(jjX:http://docs.python.org/3/library/turtle.html#turtle.ondragX-trIX bdb.set_tracerI(jjX7http://docs.python.org/3/library/bdb.html#bdb.set_traceX-trIXturtle.onkeypressrI(jjX>http://docs.python.org/3/library/turtle.html#turtle.onkeypressX-trIXinspect.getclosurevarsrI(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getclosurevarsX-trIXcurses.ascii.isupperrI(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isupperX-trIXos.sched_setschedulerrI(jjX>http://docs.python.org/3/library/os.html#os.sched_setschedulerX-trIXturtle.register_shaperI(jjXBhttp://docs.python.org/3/library/turtle.html#turtle.register_shapeX-trIXplatform.popenrI(jjX=http://docs.python.org/3/library/platform.html#platform.popenX-trIX gc.collectrI(jjX3http://docs.python.org/3/library/gc.html#gc.collectX-trIX os.setsidrI(jjX2http://docs.python.org/3/library/os.html#os.setsidX-trIXreversedrI(jjX8http://docs.python.org/3/library/functions.html#reversedX-trIXturtle.write_docstringdictrI(jjXGhttp://docs.python.org/3/library/turtle.html#turtle.write_docstringdictX-trIXos.statrI(jjX0http://docs.python.org/3/library/os.html#os.statX-trIXsocket.create_connectionrI(jjXEhttp://docs.python.org/3/library/socket.html#socket.create_connectionX-trIXsys.setdlopenflagsrI(jjX<http://docs.python.org/3/library/sys.html#sys.setdlopenflagsX-trIXoperator.__abs__rI(jjX?http://docs.python.org/3/library/operator.html#operator.__abs__X-trIXos.chownrI(jjX1http://docs.python.org/3/library/os.html#os.chownX-trIXplatform.machinerI(jjX?http://docs.python.org/3/library/platform.html#platform.machineX-trIXquopri.decodestringrI(jjX@http://docs.python.org/3/library/quopri.html#quopri.decodestringX-trIX hashlib.newrI(jjX9http://docs.python.org/3/library/hashlib.html#hashlib.newX-trIX textwrap.wraprI(jjX<http://docs.python.org/3/library/textwrap.html#textwrap.wrapX-trIXcurses.ascii.isasciirI(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isasciiX-trIXsignal.setitimerrI(jjX=http://docs.python.org/3/library/signal.html#signal.setitimerX-trJXrandom.setstaterJ(jjX<http://docs.python.org/3/library/random.html#random.setstateX-trJXturtle.window_heightrJ(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.window_heightX-trJX sunau.openrJ(jjX6http://docs.python.org/3/library/sunau.html#sunau.openX-trJX codecs.decoderJ(jjX:http://docs.python.org/3/library/codecs.html#codecs.decodeX-trJXresource.setrlimitr J(jjXAhttp://docs.python.org/3/library/resource.html#resource.setrlimitX-tr JXemail.utils.format_datetimer J(jjXLhttp://docs.python.org/3/library/email.util.html#email.utils.format_datetimeX-tr JX curses.getwinr J(jjX:http://docs.python.org/3/library/curses.html#curses.getwinX-trJXunittest.mock.patch.objectrJ(jjXNhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.objectX-trJXos.get_handle_inheritablerJ(jjXBhttp://docs.python.org/3/library/os.html#os.get_handle_inheritableX-trJXos.WIFCONTINUEDrJ(jjX8http://docs.python.org/3/library/os.html#os.WIFCONTINUEDX-trJXreadline.write_history_filerJ(jjXJhttp://docs.python.org/3/library/readline.html#readline.write_history_fileX-trJXxml.dom.minidom.parserJ(jjXKhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.parseX-trJXcalendar.prmonthrJ(jjX?http://docs.python.org/3/library/calendar.html#calendar.prmonthX-trJX audioop.addrJ(jjX9http://docs.python.org/3/library/audioop.html#audioop.addX-trJXos.device_encodingrJ(jjX;http://docs.python.org/3/library/os.html#os.device_encodingX-trJX os.closerangerJ(jjX6http://docs.python.org/3/library/os.html#os.closerangeX-tr JX os.initgroupsr!J(jjX6http://docs.python.org/3/library/os.html#os.initgroupsX-tr"JXreadline.get_endidxr#J(jjXBhttp://docs.python.org/3/library/readline.html#readline.get_endidxX-tr$JX turtle.tiltr%J(jjX8http://docs.python.org/3/library/turtle.html#turtle.tiltX-tr&JXcontextlib.redirect_stdoutr'J(jjXKhttp://docs.python.org/3/library/contextlib.html#contextlib.redirect_stdoutX-tr(JXtempfile.gettempprefixr)J(jjXEhttp://docs.python.org/3/library/tempfile.html#tempfile.gettempprefixX-tr*JXinspect.getcallargsr+J(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.getcallargsX-tr,JXget_special_folder_pathr-J(jjXIhttp://docs.python.org/3/distutils/builtdist.html#get_special_folder_pathX-tr.JXbisect.bisect_leftr/J(jjX?http://docs.python.org/3/library/bisect.html#bisect.bisect_leftX-tr0JXplatform.systemr1J(jjX>http://docs.python.org/3/library/platform.html#platform.systemX-tr2JXbase64.decodebytesr3J(jjX?http://docs.python.org/3/library/base64.html#base64.decodebytesX-tr4JXencodings.idna.ToUnicoder5J(jjXEhttp://docs.python.org/3/library/codecs.html#encodings.idna.ToUnicodeX-tr6JX copy.deepcopyr7J(jjX8http://docs.python.org/3/library/copy.html#copy.deepcopyX-tr8JXoperator.__imod__r9J(jjX@http://docs.python.org/3/library/operator.html#operator.__imod__X-tr:JXanyr;J(jjX3http://docs.python.org/3/library/functions.html#anyX-trJX os.tcsetpgrpr?J(jjX5http://docs.python.org/3/library/os.html#os.tcsetpgrpX-tr@JX os.fdatasyncrAJ(jjX5http://docs.python.org/3/library/os.html#os.fdatasyncX-trBJXtracemalloc.is_tracingrCJ(jjXHhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.is_tracingX-trDJXpkgutil.find_loaderrEJ(jjXAhttp://docs.python.org/3/library/pkgutil.html#pkgutil.find_loaderX-trFJX os.forkptyrGJ(jjX3http://docs.python.org/3/library/os.html#os.forkptyX-trHJXcolorsys.rgb_to_hlsrIJ(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hlsX-trJJXpprint.safereprrKJ(jjX<http://docs.python.org/3/library/pprint.html#pprint.safereprX-trLJXoperator.__invert__rMJ(jjXBhttp://docs.python.org/3/library/operator.html#operator.__invert__X-trNJXaudioop.ratecvrOJ(jjX<http://docs.python.org/3/library/audioop.html#audioop.ratecvX-trPJX math.log2rQJ(jjX4http://docs.python.org/3/library/math.html#math.log2X-trRJXdistutils.file_util.write_filerSJ(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.file_util.write_fileX-trTJX re.escaperUJ(jjX2http://docs.python.org/3/library/re.html#re.escapeX-trVJX turtle.shaperWJ(jjX9http://docs.python.org/3/library/turtle.html#turtle.shapeX-trXJXbase64.urlsafe_b64encoderYJ(jjXEhttp://docs.python.org/3/library/base64.html#base64.urlsafe_b64encodeX-trZJXwinreg.QueryValuer[J(jjX>http://docs.python.org/3/library/winreg.html#winreg.QueryValueX-tr\JXcurses.reset_prog_moder]J(jjXChttp://docs.python.org/3/library/curses.html#curses.reset_prog_modeX-tr^JXtime.monotonicr_J(jjX9http://docs.python.org/3/library/time.html#time.monotonicX-tr`JXcsv.register_dialectraJ(jjX>http://docs.python.org/3/library/csv.html#csv.register_dialectX-trbJX codecs.lookuprcJ(jjX:http://docs.python.org/3/library/codecs.html#codecs.lookupX-trdJXcurses.nocbreakreJ(jjX<http://docs.python.org/3/library/curses.html#curses.nocbreakX-trfJX _thread.exitrgJ(jjX:http://docs.python.org/3/library/_thread.html#_thread.exitX-trhJXos.sched_getschedulerriJ(jjX>http://docs.python.org/3/library/os.html#os.sched_getschedulerX-trjJXcallablerkJ(jjX8http://docs.python.org/3/library/functions.html#callableX-trlJXos.wait4rmJ(jjX1http://docs.python.org/3/library/os.html#os.wait4X-trnJXfunctools.lru_cacheroJ(jjXChttp://docs.python.org/3/library/functools.html#functools.lru_cacheX-trpJXemail.encoders.encode_base64rqJ(jjXQhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_base64X-trrJXinspect.isgeneratorfunctionrsJ(jjXIhttp://docs.python.org/3/library/inspect.html#inspect.isgeneratorfunctionX-trtJXsocket.getfqdnruJ(jjX;http://docs.python.org/3/library/socket.html#socket.getfqdnX-trvJXimportlib.util.resolve_namerwJ(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.util.resolve_nameX-trxJXsysconfig.get_scheme_namesryJ(jjXJhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_scheme_namesX-trzJX turtle.penr{J(jjX7http://docs.python.org/3/library/turtle.html#turtle.penX-tr|JX os.waitidr}J(jjX2http://docs.python.org/3/library/os.html#os.waitidX-tr~JXimp.find_modulerJ(jjX9http://docs.python.org/3/library/imp.html#imp.find_moduleX-trJXgc.set_thresholdrJ(jjX9http://docs.python.org/3/library/gc.html#gc.set_thresholdX-trJXinspect.getmembersrJ(jjX@http://docs.python.org/3/library/inspect.html#inspect.getmembersX-trJX turtle.htrJ(jjX6http://docs.python.org/3/library/turtle.html#turtle.htX-trJX shutil.rmtreerJ(jjX:http://docs.python.org/3/library/shutil.html#shutil.rmtreeX-trJXtracemalloc.get_traceback_limitrJ(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_traceback_limitX-trJX%multiprocessing.sharedctypes.RawValuerJ(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.RawValueX-trJXpyclbr.readmodulerJ(jjX>http://docs.python.org/3/library/pyclbr.html#pyclbr.readmoduleX-trJX difflib.ndiffrJ(jjX;http://docs.python.org/3/library/difflib.html#difflib.ndiffX-trJX os.getresuidrJ(jjX5http://docs.python.org/3/library/os.html#os.getresuidX-trJXipaddress.get_mixed_type_keyrJ(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.get_mixed_type_keyX-trJX os.fsdecoderJ(jjX4http://docs.python.org/3/library/os.html#os.fsdecodeX-trJXsys.getrefcountrJ(jjX9http://docs.python.org/3/library/sys.html#sys.getrefcountX-trJXimp.new_modulerJ(jjX8http://docs.python.org/3/library/imp.html#imp.new_moduleX-trJXos.fstatrJ(jjX1http://docs.python.org/3/library/os.html#os.fstatX-trJXdistutils.util.get_platformrJ(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.get_platformX-trJX operator.powrJ(jjX;http://docs.python.org/3/library/operator.html#operator.powX-trJXctypes.set_errnorJ(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.set_errnoX-trJXunicodedata.mirroredrJ(jjXFhttp://docs.python.org/3/library/unicodedata.html#unicodedata.mirroredX-trJX operator.posrJ(jjX;http://docs.python.org/3/library/operator.html#operator.posX-trJXwinreg.DeleteValuerJ(jjX?http://docs.python.org/3/library/winreg.html#winreg.DeleteValueX-trJXinspect.getdocrJ(jjX<http://docs.python.org/3/library/inspect.html#inspect.getdocX-trJXtraceback.format_tbrJ(jjXChttp://docs.python.org/3/library/traceback.html#traceback.format_tbX-trJXfnmatch.fnmatchrJ(jjX=http://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatchX-trJXtraceback.clear_framesrJ(jjXFhttp://docs.python.org/3/library/traceback.html#traceback.clear_framesX-trJX$xml.etree.ElementTree.fromstringlistrJ(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.fromstringlistX-trJX!email.utils.parsedate_to_datetimerJ(jjXRhttp://docs.python.org/3/library/email.util.html#email.utils.parsedate_to_datetimeX-trJXsqlite3.connectrJ(jjX=http://docs.python.org/3/library/sqlite3.html#sqlite3.connectX-trJXcolorsys.hsv_to_rgbrJ(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.hsv_to_rgbX-trJXdistutils.core.run_setuprJ(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.core.run_setupX-trJXinspect.getgeneratorstaterJ(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.getgeneratorstateX-trJXsocket.fromsharerJ(jjX=http://docs.python.org/3/library/socket.html#socket.fromshareX-trJXasyncio.set_event_looprJ(jjXNhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.set_event_loopX-trJXprintrJ(jjX5http://docs.python.org/3/library/functions.html#printX-trJXlogging.shutdownrJ(jjX>http://docs.python.org/3/library/logging.html#logging.shutdownX-trJXsyslog.setlogmaskrJ(jjX>http://docs.python.org/3/library/syslog.html#syslog.setlogmaskX-trJXunicodedata.lookuprJ(jjXDhttp://docs.python.org/3/library/unicodedata.html#unicodedata.lookupX-trJXconcurrent.futures.as_completedrJ(jjXXhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.as_completedX-trJX"tracemalloc.get_tracemalloc_memoryrJ(jjXThttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_tracemalloc_memoryX-trJX pickle.dumpsrJ(jjX9http://docs.python.org/3/library/pickle.html#pickle.dumpsX-trJX os.getcwdrJ(jjX2http://docs.python.org/3/library/os.html#os.getcwdX-trJXoperator.truedivrJ(jjX?http://docs.python.org/3/library/operator.html#operator.truedivX-trJXctypes.DllGetClassObjectrJ(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes.DllGetClassObjectX-trJXssl.match_hostnamerJ(jjX<http://docs.python.org/3/library/ssl.html#ssl.match_hostnameX-trJXbisect.bisect_rightrJ(jjX@http://docs.python.org/3/library/bisect.html#bisect.bisect_rightX-trJXimportlib.reloadrJ(jjX@http://docs.python.org/3/library/importlib.html#importlib.reloadX-trJXssl.PEM_cert_to_DER_certrJ(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.PEM_cert_to_DER_certX-trJXcurses.pair_contentrJ(jjX@http://docs.python.org/3/library/curses.html#curses.pair_contentX-trJXreprrJ(jjX4http://docs.python.org/3/library/functions.html#reprX-trJX timeit.repeatrJ(jjX:http://docs.python.org/3/library/timeit.html#timeit.repeatX-trJXunicodedata.bidirectionalrJ(jjXKhttp://docs.python.org/3/library/unicodedata.html#unicodedata.bidirectionalX-trJXinspect.isfunctionrJ(jjX@http://docs.python.org/3/library/inspect.html#inspect.isfunctionX-trJXdistutils.util.split_quotedrJ(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.split_quotedX-trJX ssl.enum_crlsrJ(jjX7http://docs.python.org/3/library/ssl.html#ssl.enum_crlsX-trJXcurses.noqiflushrJ(jjX=http://docs.python.org/3/library/curses.html#curses.noqiflushX-trJXcodecs.strict_errorsrJ(jjXAhttp://docs.python.org/3/library/codecs.html#codecs.strict_errorsX-trJXcurses.ascii.isdigitrJ(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isdigitX-trJX stat.S_ISDOORrJ(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISDOORX-trJX turtle.strJ(jjX6http://docs.python.org/3/library/turtle.html#turtle.stX-trJX sys.exc_inforJ(jjX6http://docs.python.org/3/library/sys.html#sys.exc_infoX-trJX socket.htonsrJ(jjX9http://docs.python.org/3/library/socket.html#socket.htonsX-trJXthreading.setprofilerJ(jjXDhttp://docs.python.org/3/library/threading.html#threading.setprofileX-trJXtraceback.print_exceptionrJ(jjXIhttp://docs.python.org/3/library/traceback.html#traceback.print_exceptionX-trJXshutil.ignore_patternsrJ(jjXChttp://docs.python.org/3/library/shutil.html#shutil.ignore_patternsX-trJXprofile.runctxrJ(jjX<http://docs.python.org/3/library/profile.html#profile.runctxX-trKXpickletools.genopsrK(jjXDhttp://docs.python.org/3/library/pickletools.html#pickletools.genopsX-trKX socket.htonlrK(jjX9http://docs.python.org/3/library/socket.html#socket.htonlX-trKXre.splitrK(jjX1http://docs.python.org/3/library/re.html#re.splitX-trKXos.sched_get_priority_maxrK(jjXBhttp://docs.python.org/3/library/os.html#os.sched_get_priority_maxX-trKXinspect.getfiler K(jjX=http://docs.python.org/3/library/inspect.html#inspect.getfileX-tr KXoperator.delitemr K(jjX?http://docs.python.org/3/library/operator.html#operator.delitemX-tr KX time.strptimer K(jjX8http://docs.python.org/3/library/time.html#time.strptimeX-trKXwinreg.QueryReflectionKeyrK(jjXFhttp://docs.python.org/3/library/winreg.html#winreg.QueryReflectionKeyX-trKX operator.negrK(jjX;http://docs.python.org/3/library/operator.html#operator.negX-trKXsubprocess.getstatusoutputrK(jjXKhttp://docs.python.org/3/library/subprocess.html#subprocess.getstatusoutputX-trKXoperator.__ipow__rK(jjX@http://docs.python.org/3/library/operator.html#operator.__ipow__X-trKX dbm.whichdbrK(jjX5http://docs.python.org/3/library/dbm.html#dbm.whichdbX-trKX#distutils.sysconfig.get_config_varsrK(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_varsX-trKXctypes.get_errnorK(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.get_errnoX-trKXtraceback.print_stackrK(jjXEhttp://docs.python.org/3/library/traceback.html#traceback.print_stackX-trKXurllib.parse.quote_from_bytesrK(jjXPhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote_from_bytesX-tr KX$distutils.sysconfig.set_python_buildr!K(jjXShttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.set_python_buildX-tr"KXencodings.idna.nameprepr#K(jjXDhttp://docs.python.org/3/library/codecs.html#encodings.idna.nameprepX-tr$KXhashlib.pbkdf2_hmacr%K(jjXAhttp://docs.python.org/3/library/hashlib.html#hashlib.pbkdf2_hmacX-tr&KX grp.getgrnamr'K(jjX6http://docs.python.org/3/library/grp.html#grp.getgrnamX-tr(KXrandom.shuffler)K(jjX;http://docs.python.org/3/library/random.html#random.shuffleX-tr*KXurllib.parse.urlencoder+K(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencodeX-tr,KXtracemalloc.clear_tracesr-K(jjXJhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.clear_tracesX-tr.KX math.hypotr/K(jjX5http://docs.python.org/3/library/math.html#math.hypotX-tr0KXurllib.parse.unquoter1K(jjXGhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquoteX-tr2KXhmac.newr3K(jjX3http://docs.python.org/3/library/hmac.html#hmac.newX-tr4KX glob.escaper5K(jjX6http://docs.python.org/3/library/glob.html#glob.escapeX-tr6KXos.path.dirnamer7K(jjX=http://docs.python.org/3/library/os.path.html#os.path.dirnameX-tr8KXgetattrr9K(jjX7http://docs.python.org/3/library/functions.html#getattrX-tr:KX math.log10r;K(jjX5http://docs.python.org/3/library/math.html#math.log10X-trhttp://docs.python.org/3/library/operator.html#operator.__le__X-tr>KX time.clockr?K(jjX5http://docs.python.org/3/library/time.html#time.clockX-tr@KX os.getresgidrAK(jjX5http://docs.python.org/3/library/os.html#os.getresgidX-trBKX os.symlinkrCK(jjX3http://docs.python.org/3/library/os.html#os.symlinkX-trDKXtextwrap.dedentrEK(jjX>http://docs.python.org/3/library/textwrap.html#textwrap.dedentX-trFKX turtle.delayrGK(jjX9http://docs.python.org/3/library/turtle.html#turtle.delayX-trHKXtime.perf_counterrIK(jjX<http://docs.python.org/3/library/time.html#time.perf_counterX-trJKXsocket.socketpairrKK(jjX>http://docs.python.org/3/library/socket.html#socket.socketpairX-trLKXcurses.tigetflagrMK(jjX=http://docs.python.org/3/library/curses.html#curses.tigetflagX-trNKXemail.utils.parsedaterOK(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.parsedateX-trPKX lzma.compressrQK(jjX8http://docs.python.org/3/library/lzma.html#lzma.compressX-trRKXfileinput.filenamerSK(jjXBhttp://docs.python.org/3/library/fileinput.html#fileinput.filenameX-trTKXurllib.parse.parse_qsrUK(jjXHhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.parse_qsX-trVKXtabnanny.tokeneaterrWK(jjXBhttp://docs.python.org/3/library/tabnanny.html#tabnanny.tokeneaterX-trXKXturtle.turtlesrYK(jjX;http://docs.python.org/3/library/turtle.html#turtle.turtlesX-trZKX random.sampler[K(jjX:http://docs.python.org/3/library/random.html#random.sampleX-tr\KXsys.settscdumpr]K(jjX8http://docs.python.org/3/library/sys.html#sys.settscdumpX-tr^KX gc.get_countr_K(jjX5http://docs.python.org/3/library/gc.html#gc.get_countX-tr`KXast.iter_fieldsraK(jjX9http://docs.python.org/3/library/ast.html#ast.iter_fieldsX-trbKXaudioop.lin2adpcmrcK(jjX?http://docs.python.org/3/library/audioop.html#audioop.lin2adpcmX-trdKXfileinput.closereK(jjX?http://docs.python.org/3/library/fileinput.html#fileinput.closeX-trfKXwinreg.QueryInfoKeyrgK(jjX@http://docs.python.org/3/library/winreg.html#winreg.QueryInfoKeyX-trhKX test.support.skip_unless_symlinkriK(jjXKhttp://docs.python.org/3/library/test.html#test.support.skip_unless_symlinkX-trjKXurllib.request.url2pathnamerkK(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.url2pathnameX-trlKXast.fix_missing_locationsrmK(jjXChttp://docs.python.org/3/library/ast.html#ast.fix_missing_locationsX-trnKXtest.support.temp_dirroK(jjX@http://docs.python.org/3/library/test.html#test.support.temp_dirX-trpKXcodecs.getwriterrqK(jjX=http://docs.python.org/3/library/codecs.html#codecs.getwriterX-trrKXshutil.register_archive_formatrsK(jjXKhttp://docs.python.org/3/library/shutil.html#shutil.register_archive_formatX-trtKXoperator.__lt__ruK(jjX>http://docs.python.org/3/library/operator.html#operator.__lt__X-trvKXwsgiref.handlers.read_environrwK(jjXKhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.read_environX-trxKXoperator.__floordiv__ryK(jjXDhttp://docs.python.org/3/library/operator.html#operator.__floordiv__X-trzKX math.log1pr{K(jjX5http://docs.python.org/3/library/math.html#math.log1pX-tr|KXdoctest.run_docstring_examplesr}K(jjXLhttp://docs.python.org/3/library/doctest.html#doctest.run_docstring_examplesX-tr~KX_thread.stack_sizerK(jjX@http://docs.python.org/3/library/_thread.html#_thread.stack_sizeX-trKXos.path.samefilerK(jjX>http://docs.python.org/3/library/os.path.html#os.path.samefileX-trKXfileinput.isstdinrK(jjXAhttp://docs.python.org/3/library/fileinput.html#fileinput.isstdinX-trKXdistutils.dep_util.newer_grouprK(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newer_groupX-trKXos.duprK(jjX/http://docs.python.org/3/library/os.html#os.dupX-trKXxml.etree.ElementTree.CommentrK(jjXYhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.CommentX-trKX xml.etree.ElementTree.fromstringrK(jjX\http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.fromstringX-trKXinspect.isbuiltinrK(jjX?http://docs.python.org/3/library/inspect.html#inspect.isbuiltinX-trKXabc.abstractstaticmethodrK(jjXBhttp://docs.python.org/3/library/abc.html#abc.abstractstaticmethodX-trKX operator.gtrK(jjX:http://docs.python.org/3/library/operator.html#operator.gtX-trKXpowrK(jjX3http://docs.python.org/3/library/functions.html#powX-trKXcodecs.replace_errorsrK(jjXBhttp://docs.python.org/3/library/codecs.html#codecs.replace_errorsX-trKXunittest.skipIfrK(jjX>http://docs.python.org/3/library/unittest.html#unittest.skipIfX-trKX os.path.splitrK(jjX;http://docs.python.org/3/library/os.path.html#os.path.splitX-trKXast.walkrK(jjX2http://docs.python.org/3/library/ast.html#ast.walkX-trKXtest.support.captured_stdinrK(jjXFhttp://docs.python.org/3/library/test.html#test.support.captured_stdinX-trKXturtle.setundobufferrK(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.setundobufferX-trKXshutil.register_unpack_formatrK(jjXJhttp://docs.python.org/3/library/shutil.html#shutil.register_unpack_formatX-trKXcontextlib.closingrK(jjXChttp://docs.python.org/3/library/contextlib.html#contextlib.closingX-trKX tarfile.openrK(jjX:http://docs.python.org/3/library/tarfile.html#tarfile.openX-trKX operator.gerK(jjX:http://docs.python.org/3/library/operator.html#operator.geX-trKXitertools.takewhilerK(jjXChttp://docs.python.org/3/library/itertools.html#itertools.takewhileX-trKXcurses.ascii.islowerrK(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.islowerX-trKX turtle.circlerK(jjX:http://docs.python.org/3/library/turtle.html#turtle.circleX-trKXemail.charset.add_aliasrK(jjXKhttp://docs.python.org/3/library/email.charset.html#email.charset.add_aliasX-trKXcodecs.getincrementaldecoderrK(jjXIhttp://docs.python.org/3/library/codecs.html#codecs.getincrementaldecoderX-trKXstatistics.stdevrK(jjXAhttp://docs.python.org/3/library/statistics.html#statistics.stdevX-trKXstatistics.medianrK(jjXBhttp://docs.python.org/3/library/statistics.html#statistics.medianX-trKXoperator.concatrK(jjX>http://docs.python.org/3/library/operator.html#operator.concatX-trKXbase64.decodestringrK(jjX@http://docs.python.org/3/library/base64.html#base64.decodestringX-trKXctypes.GetLastErrorrK(jjX@http://docs.python.org/3/library/ctypes.html#ctypes.GetLastErrorX-trKXcalendar.monthcalendarrK(jjXEhttp://docs.python.org/3/library/calendar.html#calendar.monthcalendarX-trKXasyncio.as_completedrK(jjXGhttp://docs.python.org/3/library/asyncio-task.html#asyncio.as_completedX-trKXturtle.radiansrK(jjX;http://docs.python.org/3/library/turtle.html#turtle.radiansX-trKXrunpy.run_modulerK(jjX<http://docs.python.org/3/library/runpy.html#runpy.run_moduleX-trKX os.geteuidrK(jjX3http://docs.python.org/3/library/os.html#os.geteuidX-trKX cmath.log10rK(jjX7http://docs.python.org/3/library/cmath.html#cmath.log10X-trKXemail.utils.parsedate_tzrK(jjXIhttp://docs.python.org/3/library/email.util.html#email.utils.parsedate_tzX-trKX turtle.widthrK(jjX9http://docs.python.org/3/library/turtle.html#turtle.widthX-trKX os.urandomrK(jjX3http://docs.python.org/3/library/os.html#os.urandomX-trKXlocale.nl_langinforK(jjX?http://docs.python.org/3/library/locale.html#locale.nl_langinfoX-trKXmsvcrt.ungetchrK(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.ungetchX-trKXmsilib.FCICreaterK(jjX=http://docs.python.org/3/library/msilib.html#msilib.FCICreateX-trKX tty.setrawrK(jjX4http://docs.python.org/3/library/tty.html#tty.setrawX-trKXcurses.panel.bottom_panelrK(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.bottom_panelX-trKXbase64.a85encoderK(jjX=http://docs.python.org/3/library/base64.html#base64.a85encodeX-trKX"multiprocessing.sharedctypes.ArrayrK(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.ArrayX-trKXunicodedata.numericrK(jjXEhttp://docs.python.org/3/library/unicodedata.html#unicodedata.numericX-trKX os.execvprK(jjX2http://docs.python.org/3/library/os.html#os.execvpX-trKXlocale.getpreferredencodingrK(jjXHhttp://docs.python.org/3/library/locale.html#locale.getpreferredencodingX-trKXturtle.window_widthrK(jjX@http://docs.python.org/3/library/turtle.html#turtle.window_widthX-trKXfnmatch.filterrK(jjX<http://docs.python.org/3/library/fnmatch.html#fnmatch.filterX-trKXinspect.formatargspecrK(jjXChttp://docs.python.org/3/library/inspect.html#inspect.formatargspecX-trKXcompilerK(jjX7http://docs.python.org/3/library/functions.html#compileX-trKX os.WSTOPSIGrK(jjX4http://docs.python.org/3/library/os.html#os.WSTOPSIGX-trKX os.execverK(jjX2http://docs.python.org/3/library/os.html#os.execveX-trKXstatistics.meanrK(jjX@http://docs.python.org/3/library/statistics.html#statistics.meanX-trKXshutil.unpack_archiverK(jjXBhttp://docs.python.org/3/library/shutil.html#shutil.unpack_archiveX-trKXos.path.commonprefixrK(jjXBhttp://docs.python.org/3/library/os.path.html#os.path.commonprefixX-trKXos.path.ismountrK(jjX=http://docs.python.org/3/library/os.path.html#os.path.ismountX-trKXturtle.ontimerrK(jjX;http://docs.python.org/3/library/turtle.html#turtle.ontimerX-trKXcurses.ascii.altrK(jjXChttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.altX-trKXre.purgerK(jjX1http://docs.python.org/3/library/re.html#re.purgeX-trKXcurses.termnamerK(jjX<http://docs.python.org/3/library/curses.html#curses.termnameX-trKXbase64.b16encoderK(jjX=http://docs.python.org/3/library/base64.html#base64.b16encodeX-trLXsysconfig.get_config_varsrL(jjXIhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_config_varsX-trLX __import__rL(jjX:http://docs.python.org/3/library/functions.html#__import__X-trLXxml.etree.ElementTree.iselementrL(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.iselementX-trLXos.umaskrL(jjX1http://docs.python.org/3/library/os.html#os.umaskX-trLXwinreg.CreateKeyExr L(jjX?http://docs.python.org/3/library/winreg.html#winreg.CreateKeyExX-tr LXstruct.iter_unpackr L(jjX?http://docs.python.org/3/library/struct.html#struct.iter_unpackX-tr LX audioop.rmsr L(jjX9http://docs.python.org/3/library/audioop.html#audioop.rmsX-trLXcurses.ascii.asciirL(jjXEhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.asciiX-trLXbase64.a85decoderL(jjX=http://docs.python.org/3/library/base64.html#base64.a85decodeX-trLXgettext.dngettextrL(jjX?http://docs.python.org/3/library/gettext.html#gettext.dngettextX-trLXasciirL(jjX5http://docs.python.org/3/library/functions.html#asciiX-trLX asyncio.asyncrL(jjX@http://docs.python.org/3/library/asyncio-task.html#asyncio.asyncX-trLX cgi.parse_qslrL(jjX7http://docs.python.org/3/library/cgi.html#cgi.parse_qslX-trLXcalendar.monthrL(jjX=http://docs.python.org/3/library/calendar.html#calendar.monthX-trLX distutils.ccompiler.new_compilerrL(jjXOhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.new_compilerX-trLXtypes.DynamicClassAttributerL(jjXGhttp://docs.python.org/3/library/types.html#types.DynamicClassAttributeX-tr LX test.support.import_fresh_moduler!L(jjXKhttp://docs.python.org/3/library/test.html#test.support.import_fresh_moduleX-tr"LXpkgutil.get_importerr#L(jjXBhttp://docs.python.org/3/library/pkgutil.html#pkgutil.get_importerX-tr$LXsocket.if_indextonamer%L(jjXBhttp://docs.python.org/3/library/socket.html#socket.if_indextonameX-tr&LX curses.nlr'L(jjX6http://docs.python.org/3/library/curses.html#curses.nlX-tr(LX#distutils.archive_util.make_archiver)L(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_archiveX-tr*LXcurses.color_pairr+L(jjX>http://docs.python.org/3/library/curses.html#curses.color_pairX-tr,LX&distutils.sysconfig.customize_compilerr-L(jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.customize_compilerX-tr.LXturtle.getscreenr/L(jjX=http://docs.python.org/3/library/turtle.html#turtle.getscreenX-tr0LXctypes.WINFUNCTYPEr1L(jjX?http://docs.python.org/3/library/ctypes.html#ctypes.WINFUNCTYPEX-tr2LXoperator.__getitem__r3L(jjXChttp://docs.python.org/3/library/operator.html#operator.__getitem__X-tr4LX turtle.onkeyr5L(jjX9http://docs.python.org/3/library/turtle.html#turtle.onkeyX-tr6LXselect.devpollr7L(jjX;http://docs.python.org/3/library/select.html#select.devpollX-tr8LXturtle.getturtler9L(jjX=http://docs.python.org/3/library/turtle.html#turtle.getturtleX-tr:LXplatform.libc_verr;L(jjX@http://docs.python.org/3/library/platform.html#platform.libc_verX-trLXssl.create_default_contextr?L(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.create_default_contextX-tr@LXparser.sequence2strAL(jjX?http://docs.python.org/3/library/parser.html#parser.sequence2stX-trBLX operator.lerCL(jjX:http://docs.python.org/3/library/operator.html#operator.leX-trDLXsignal.pthread_killrEL(jjX@http://docs.python.org/3/library/signal.html#signal.pthread_killX-trFLX marshal.dumprGL(jjX:http://docs.python.org/3/library/marshal.html#marshal.dumpX-trHLXpdb.pmrIL(jjX0http://docs.python.org/3/library/pdb.html#pdb.pmX-trJLX os.listxattrrKL(jjX5http://docs.python.org/3/library/os.html#os.listxattrX-trLLXcolorsys.rgb_to_yiqrML(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_yiqX-trNLX os.sysconfrOL(jjX3http://docs.python.org/3/library/os.html#os.sysconfX-trPLX operator.iorrQL(jjX;http://docs.python.org/3/library/operator.html#operator.iorX-trRLXcurses.qiflushrSL(jjX;http://docs.python.org/3/library/curses.html#curses.qiflushX-trTLX json.loadrUL(jjX4http://docs.python.org/3/library/json.html#json.loadX-trVLX operator.ltrWL(jjX:http://docs.python.org/3/library/operator.html#operator.ltX-trXLXcurses.ascii.isspacerYL(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isspaceX-trZLXnis.mapsr[L(jjX2http://docs.python.org/3/library/nis.html#nis.mapsX-tr\LXctypes.create_unicode_bufferr]L(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes.create_unicode_bufferX-tr^LXsocket.CMSG_SPACEr_L(jjX>http://docs.python.org/3/library/socket.html#socket.CMSG_SPACEX-tr`LXoperator.floordivraL(jjX@http://docs.python.org/3/library/operator.html#operator.floordivX-trbLXcodecs.getencoderrcL(jjX>http://docs.python.org/3/library/codecs.html#codecs.getencoderX-trdLXgettext.translationreL(jjXAhttp://docs.python.org/3/library/gettext.html#gettext.translationX-trfLX xml.sax.parsergL(jjX;http://docs.python.org/3/library/xml.sax.html#xml.sax.parseX-trhLXcurses.def_shell_moderiL(jjXBhttp://docs.python.org/3/library/curses.html#curses.def_shell_modeX-trjLXurllib.parse.urljoinrkL(jjXGhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urljoinX-trlLX turtle.modermL(jjX8http://docs.python.org/3/library/turtle.html#turtle.modeX-trnLXoperator.irshiftroL(jjX?http://docs.python.org/3/library/operator.html#operator.irshiftX-trpLX textwrap.fillrqL(jjX<http://docs.python.org/3/library/textwrap.html#textwrap.fillX-trrLXpkgutil.walk_packagesrsL(jjXChttp://docs.python.org/3/library/pkgutil.html#pkgutil.walk_packagesX-trtLXitertools.accumulateruL(jjXDhttp://docs.python.org/3/library/itertools.html#itertools.accumulateX-trvLXtraceback.format_excrwL(jjXDhttp://docs.python.org/3/library/traceback.html#traceback.format_excX-trxLXdoctest.testmodryL(jjX=http://docs.python.org/3/library/doctest.html#doctest.testmodX-trzLXreadline.insert_textr{L(jjXChttp://docs.python.org/3/library/readline.html#readline.insert_textX-tr|LXos.waitr}L(jjX0http://docs.python.org/3/library/os.html#os.waitX-tr~LXmsilib.OpenDatabaserL(jjX@http://docs.python.org/3/library/msilib.html#msilib.OpenDatabaseX-trLXtest.support.find_unused_portrL(jjXHhttp://docs.python.org/3/library/test.html#test.support.find_unused_portX-trLXurllib.parse.urlsplitrL(jjXHhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlsplitX-trLXssl.wrap_socketrL(jjX9http://docs.python.org/3/library/ssl.html#ssl.wrap_socketX-trLX!wsgiref.simple_server.make_serverrL(jjXOhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.make_serverX-trLX isinstancerL(jjX:http://docs.python.org/3/library/functions.html#isinstanceX-trLXrunpy.run_pathrL(jjX:http://docs.python.org/3/library/runpy.html#runpy.run_pathX-trLX dbm.dumb.openrL(jjX7http://docs.python.org/3/library/dbm.html#dbm.dumb.openX-trLX math.floorrL(jjX5http://docs.python.org/3/library/math.html#math.floorX-trLX lzma.openrL(jjX4http://docs.python.org/3/library/lzma.html#lzma.openX-trLXcurses.use_envrL(jjX;http://docs.python.org/3/library/curses.html#curses.use_envX-trLXitertools.productrL(jjXAhttp://docs.python.org/3/library/itertools.html#itertools.productX-trLX sys.getsizeofrL(jjX7http://docs.python.org/3/library/sys.html#sys.getsizeofX-trLXaudioop.adpcm2linrL(jjX?http://docs.python.org/3/library/audioop.html#audioop.adpcm2linX-trLXtoken.ISTERMINALrL(jjX<http://docs.python.org/3/library/token.html#token.ISTERMINALX-trLXstringprep.in_table_a1rL(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_a1X-trLXoperator.iconcatrL(jjX?http://docs.python.org/3/library/operator.html#operator.iconcatX-trLXitertools.permutationsrL(jjXFhttp://docs.python.org/3/library/itertools.html#itertools.permutationsX-trLXencodings.idna.ToASCIIrL(jjXChttp://docs.python.org/3/library/codecs.html#encodings.idna.ToASCIIX-trLXsysconfig.get_pathrL(jjXBhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_pathX-trLXurllib.parse.unquote_to_bytesrL(jjXPhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquote_to_bytesX-trLX re.compilerL(jjX3http://docs.python.org/3/library/re.html#re.compileX-trLXwinreg.EnumKeyrL(jjX;http://docs.python.org/3/library/winreg.html#winreg.EnumKeyX-trLXreadline.get_history_lengthrL(jjXJhttp://docs.python.org/3/library/readline.html#readline.get_history_lengthX-trLX audioop.maxrL(jjX9http://docs.python.org/3/library/audioop.html#audioop.maxX-trLXitertools.compressrL(jjXBhttp://docs.python.org/3/library/itertools.html#itertools.compressX-trLXcurses.ascii.isalpharL(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalphaX-trLXreadline.get_line_bufferrL(jjXGhttp://docs.python.org/3/library/readline.html#readline.get_line_bufferX-trLXast.increment_linenorL(jjX>http://docs.python.org/3/library/ast.html#ast.increment_linenoX-trLX turtle.bkrL(jjX6http://docs.python.org/3/library/turtle.html#turtle.bkX-trLXstringprep.in_table_c21_c22rL(jjXLhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21_c22X-trLXpty.forkrL(jjX2http://docs.python.org/3/library/pty.html#pty.forkX-trLXwebbrowser.open_new_tabrL(jjXHhttp://docs.python.org/3/library/webbrowser.html#webbrowser.open_new_tabX-trLX gc.disablerL(jjX3http://docs.python.org/3/library/gc.html#gc.disableX-trLXsocket.setdefaulttimeoutrL(jjXEhttp://docs.python.org/3/library/socket.html#socket.setdefaulttimeoutX-trLXast.literal_evalrL(jjX:http://docs.python.org/3/library/ast.html#ast.literal_evalX-trLX glob.globrL(jjX4http://docs.python.org/3/library/glob.html#glob.globX-trLXtraceback.format_exceptionrL(jjXJhttp://docs.python.org/3/library/traceback.html#traceback.format_exceptionX-trLXaudioop.findmaxrL(jjX=http://docs.python.org/3/library/audioop.html#audioop.findmaxX-trLXcgi.parse_headerrL(jjX:http://docs.python.org/3/library/cgi.html#cgi.parse_headerX-trLXbase64.urlsafe_b64decoderL(jjXEhttp://docs.python.org/3/library/base64.html#base64.urlsafe_b64decodeX-trLXctypes.get_last_errorrL(jjXBhttp://docs.python.org/3/library/ctypes.html#ctypes.get_last_errorX-trLXos.set_inheritablerL(jjX;http://docs.python.org/3/library/os.html#os.set_inheritableX-trLXturtle.clearstamprL(jjX>http://docs.python.org/3/library/turtle.html#turtle.clearstampX-trLX base64.decoderL(jjX:http://docs.python.org/3/library/base64.html#base64.decodeX-trLXlinecache.checkcacherL(jjXDhttp://docs.python.org/3/library/linecache.html#linecache.checkcacheX-trLX cmath.atanhrL(jjX7http://docs.python.org/3/library/cmath.html#cmath.atanhX-trLXstatistics.pvariancerL(jjXEhttp://docs.python.org/3/library/statistics.html#statistics.pvarianceX-trLXtermios.tcflushrL(jjX=http://docs.python.org/3/library/termios.html#termios.tcflushX-trLXdistutils.util.executerL(jjXEhttp://docs.python.org/3/distutils/apiref.html#distutils.util.executeX-trLXsocket.gethostbyname_exrL(jjXDhttp://docs.python.org/3/library/socket.html#socket.gethostbyname_exX-trLX operator.isubrL(jjX<http://docs.python.org/3/library/operator.html#operator.isubX-trLX re.finditerrL(jjX4http://docs.python.org/3/library/re.html#re.finditerX-trLXos.killrL(jjX0http://docs.python.org/3/library/os.html#os.killX-trLXtraceback.print_lastrL(jjXDhttp://docs.python.org/3/library/traceback.html#traceback.print_lastX-trLX dis.code_inforL(jjX7http://docs.python.org/3/library/dis.html#dis.code_infoX-trLXtokenize.tokenizerL(jjX@http://docs.python.org/3/library/tokenize.html#tokenize.tokenizeX-trLXthreading.get_identrL(jjXChttp://docs.python.org/3/library/threading.html#threading.get_identX-trLXtime.process_timerL(jjX<http://docs.python.org/3/library/time.html#time.process_timeX-trLXemail.iterators._structurerL(jjXPhttp://docs.python.org/3/library/email.iterators.html#email.iterators._structureX-trLXcurses.panel.new_panelrL(jjXIhttp://docs.python.org/3/library/curses.panel.html#curses.panel.new_panelX-trLX turtle.penuprL(jjX9http://docs.python.org/3/library/turtle.html#turtle.penupX-trLXslicerL(jjX5http://docs.python.org/3/library/functions.html#sliceX-trLXturtle.mainlooprL(jjX<http://docs.python.org/3/library/turtle.html#turtle.mainloopX-trLX logging.errorrL(jjX;http://docs.python.org/3/library/logging.html#logging.errorX-trMXmultiprocessing.freeze_supportrM(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.freeze_supportX-trMX doctest.debugrM(jjX;http://docs.python.org/3/library/doctest.html#doctest.debugX-trMX inspect.tracerM(jjX;http://docs.python.org/3/library/inspect.html#inspect.traceX-trMX os.spawnlerM(jjX3http://docs.python.org/3/library/os.html#os.spawnleX-trMX stat.S_ISBLKr M(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISBLKX-tr MXoperator.__inv__r M(jjX?http://docs.python.org/3/library/operator.html#operator.__inv__X-tr MXtest.support.can_symlinkr M(jjXChttp://docs.python.org/3/library/test.html#test.support.can_symlinkX-trMXtracemalloc.stoprM(jjXBhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.stopX-trMXossaudiodev.openrM(jjXBhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.openX-trMX cmath.phaserM(jjX7http://docs.python.org/3/library/cmath.html#cmath.phaseX-trMXoperator.__xor__rM(jjX?http://docs.python.org/3/library/operator.html#operator.__xor__X-trMX curses.endwinrM(jjX:http://docs.python.org/3/library/curses.html#curses.endwinX-trMXast.iter_child_nodesrM(jjX>http://docs.python.org/3/library/ast.html#ast.iter_child_nodesX-trMXgettext.ldngettextrM(jjX@http://docs.python.org/3/library/gettext.html#gettext.ldngettextX-trMX test.support.is_resource_enabledrM(jjXKhttp://docs.python.org/3/library/test.html#test.support.is_resource_enabledX-trMXimportlib.find_loaderrM(jjXEhttp://docs.python.org/3/library/importlib.html#importlib.find_loaderX-tr MXbinascii.hexlifyr!M(jjX?http://docs.python.org/3/library/binascii.html#binascii.hexlifyX-tr"MXgettext.ngettextr#M(jjX>http://docs.python.org/3/library/gettext.html#gettext.ngettextX-tr$MXasyncio.get_event_loopr%M(jjXNhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.get_event_loopX-tr&MX signal.signalr'M(jjX:http://docs.python.org/3/library/signal.html#signal.signalX-tr(MX4multiprocessing.sharedctypes.multiprocessing.Managerr)M(jjXjhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.multiprocessing.ManagerX-tr*MXcurses.ascii.isprintr+M(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isprintX-tr,MX unittest.skipr-M(jjX<http://docs.python.org/3/library/unittest.html#unittest.skipX-tr.MXtest.support.temp_umaskr/M(jjXBhttp://docs.python.org/3/library/test.html#test.support.temp_umaskX-tr0MX os.getppidr1M(jjX3http://docs.python.org/3/library/os.html#os.getppidX-tr2MXsys.getfilesystemencodingr3M(jjXChttp://docs.python.org/3/library/sys.html#sys.getfilesystemencodingX-tr4MXrandom.normalvariater5M(jjXAhttp://docs.python.org/3/library/random.html#random.normalvariateX-tr6MXfaulthandler.unregisterr7M(jjXJhttp://docs.python.org/3/library/faulthandler.html#faulthandler.unregisterX-tr8MX timeit.timeitr9M(jjX:http://docs.python.org/3/library/timeit.html#timeit.timeitX-tr:MXpickletools.optimizer;M(jjXFhttp://docs.python.org/3/library/pickletools.html#pickletools.optimizeX-trMX os.setgroupsr?M(jjX5http://docs.python.org/3/library/os.html#os.setgroupsX-tr@MXwinreg.CreateKeyrAM(jjX=http://docs.python.org/3/library/winreg.html#winreg.CreateKeyX-trBMX os.setreuidrCM(jjX4http://docs.python.org/3/library/os.html#os.setreuidX-trDMXinspect.isdatadescriptorrEM(jjXFhttp://docs.python.org/3/library/inspect.html#inspect.isdatadescriptorX-trFMX turtle.uprGM(jjX6http://docs.python.org/3/library/turtle.html#turtle.upX-trHMXimp.cache_from_sourcerIM(jjX?http://docs.python.org/3/library/imp.html#imp.cache_from_sourceX-trJMXcodecs.getdecoderrKM(jjX>http://docs.python.org/3/library/codecs.html#codecs.getdecoderX-trLMXevalrMM(jjX4http://docs.python.org/3/library/functions.html#evalX-trNMX msvcrt.getchrOM(jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt.getchX-trPMXwinreg.FlushKeyrQM(jjX<http://docs.python.org/3/library/winreg.html#winreg.FlushKeyX-trRMXmath.tanrSM(jjX3http://docs.python.org/3/library/math.html#math.tanX-trTMXreadline.parse_and_bindrUM(jjXFhttp://docs.python.org/3/library/readline.html#readline.parse_and_bindX-trVMXcsv.unregister_dialectrWM(jjX@http://docs.python.org/3/library/csv.html#csv.unregister_dialectX-trXMX cmath.acosrYM(jjX6http://docs.python.org/3/library/cmath.html#cmath.acosX-trZMXtermios.tcsetattrr[M(jjX?http://docs.python.org/3/library/termios.html#termios.tcsetattrX-tr\MX os.spawnver]M(jjX3http://docs.python.org/3/library/os.html#os.spawnveX-tr^MXcurses.keynamer_M(jjX;http://docs.python.org/3/library/curses.html#curses.keynameX-tr`MX platform.noderaM(jjX<http://docs.python.org/3/library/platform.html#platform.nodeX-trbMXctypes.PYFUNCTYPErcM(jjX>http://docs.python.org/3/library/ctypes.html#ctypes.PYFUNCTYPEX-trdMXoperator.rshiftreM(jjX>http://docs.python.org/3/library/operator.html#operator.rshiftX-trfMXhexrgM(jjX3http://docs.python.org/3/library/functions.html#hexX-trhMXmsilib.CreateRecordriM(jjX@http://docs.python.org/3/library/msilib.html#msilib.CreateRecordX-trjMXoperator.itemgetterrkM(jjXBhttp://docs.python.org/3/library/operator.html#operator.itemgetterX-trlMXimportlib.util.set_loaderrmM(jjXIhttp://docs.python.org/3/library/importlib.html#importlib.util.set_loaderX-trnMXcurses.baudrateroM(jjX<http://docs.python.org/3/library/curses.html#curses.baudrateX-trpMX os.spawnvprqM(jjX3http://docs.python.org/3/library/os.html#os.spawnvpX-trrMXrandom.weibullvariatersM(jjXBhttp://docs.python.org/3/library/random.html#random.weibullvariateX-trtMXdistutils.util.strtoboolruM(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.util.strtoboolX-trvMX&email.iterators.typed_subpart_iteratorrwM(jjX\http://docs.python.org/3/library/email.iterators.html#email.iterators.typed_subpart_iteratorX-trxMXdistutils.util.subst_varsryM(jjXHhttp://docs.python.org/3/distutils/apiref.html#distutils.util.subst_varsX-trzMX struct.packr{M(jjX8http://docs.python.org/3/library/struct.html#struct.packX-tr|MXturtle.isvisibler}M(jjX=http://docs.python.org/3/library/turtle.html#turtle.isvisibleX-tr~MXasyncio.create_subprocess_execrM(jjXWhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_execX-trMX os.setegidrM(jjX3http://docs.python.org/3/library/os.html#os.setegidX-trMX stat.S_ISSOCKrM(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISSOCKX-trMXos.path.splitextrM(jjX>http://docs.python.org/3/library/os.path.html#os.path.splitextX-trMXturtle.getshapesrM(jjX=http://docs.python.org/3/library/turtle.html#turtle.getshapesX-trMXturtle.pendownrM(jjX;http://docs.python.org/3/library/turtle.html#turtle.pendownX-trMXabc.abstractmethodrM(jjX<http://docs.python.org/3/library/abc.html#abc.abstractmethodX-trMXtempfile.gettempdirrM(jjXBhttp://docs.python.org/3/library/tempfile.html#tempfile.gettempdirX-trMXsite.getsitepackagesrM(jjX?http://docs.python.org/3/library/site.html#site.getsitepackagesX-trMX zlib.compressrM(jjX8http://docs.python.org/3/library/zlib.html#zlib.compressX-trMXssl.RAND_pseudo_bytesrM(jjX?http://docs.python.org/3/library/ssl.html#ssl.RAND_pseudo_bytesX-trMXemail.message_from_bytesrM(jjXKhttp://docs.python.org/3/library/email.parser.html#email.message_from_bytesX-trMXtempfile.NamedTemporaryFilerM(jjXJhttp://docs.python.org/3/library/tempfile.html#tempfile.NamedTemporaryFileX-trMX os.execlperM(jjX3http://docs.python.org/3/library/os.html#os.execlpeX-trMXunittest.registerResultrM(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.registerResultX-trMXstringprep.in_table_c22rM(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c22X-trMXstringprep.in_table_c21rM(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21X-trMXthreading.current_threadrM(jjXHhttp://docs.python.org/3/library/threading.html#threading.current_threadX-trMXos.lockfrM(jjX1http://docs.python.org/3/library/os.html#os.lockfX-trMXreadline.set_history_lengthrM(jjXJhttp://docs.python.org/3/library/readline.html#readline.set_history_lengthX-trMXdistutils.dir_util.remove_treerM(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.remove_treeX-trMXsocket.gethostbyaddrrM(jjXAhttp://docs.python.org/3/library/socket.html#socket.gethostbyaddrX-trMX dis.distbrM(jjX3http://docs.python.org/3/library/dis.html#dis.distbX-trMX turtle.titlerM(jjX9http://docs.python.org/3/library/turtle.html#turtle.titleX-trMXwinreg.DeleteKeyExrM(jjX?http://docs.python.org/3/library/winreg.html#winreg.DeleteKeyExX-trMXdistutils.dir_util.mkpathrM(jjXHhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.mkpathX-trMX operator.imodrM(jjX<http://docs.python.org/3/library/operator.html#operator.imodX-trMX os.setpgrprM(jjX3http://docs.python.org/3/library/os.html#os.setpgrpX-trMX curses.has_ilrM(jjX:http://docs.python.org/3/library/curses.html#curses.has_ilX-trMXctypes.util.find_msvcrtrM(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes.util.find_msvcrtX-trMXmath.cosrM(jjX3http://docs.python.org/3/library/math.html#math.cosX-trMXdistutils.util.byte_compilerM(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.byte_compileX-trMXxmlrpc.client.loadsrM(jjXGhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.loadsX-trMX os.strerrorrM(jjX4http://docs.python.org/3/library/os.html#os.strerrorX-trMX curses.has_icrM(jjX:http://docs.python.org/3/library/curses.html#curses.has_icX-trMXxml.etree.ElementTree.iterparserM(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.iterparseX-trMXcurses.ascii.isxdigitrM(jjXHhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isxdigitX-trMXos.lstatrM(jjX1http://docs.python.org/3/library/os.html#os.lstatX-trMXinspect.ismethodrM(jjX>http://docs.python.org/3/library/inspect.html#inspect.ismethodX-trMX sndhdr.whatrM(jjX8http://docs.python.org/3/library/sndhdr.html#sndhdr.whatX-trMXos.sched_setparamrM(jjX:http://docs.python.org/3/library/os.html#os.sched_setparamX-trMX filecmp.cmprM(jjX9http://docs.python.org/3/library/filecmp.html#filecmp.cmpX-trMXos.WIFSIGNALEDrM(jjX7http://docs.python.org/3/library/os.html#os.WIFSIGNALEDX-trMXlogging.config.stopListeningrM(jjXQhttp://docs.python.org/3/library/logging.config.html#logging.config.stopListeningX-trMXoperator.__irshift__rM(jjXChttp://docs.python.org/3/library/operator.html#operator.__irshift__X-trMX cgi.parse_qsrM(jjX6http://docs.python.org/3/library/cgi.html#cgi.parse_qsX-trMX math.ceilrM(jjX4http://docs.python.org/3/library/math.html#math.ceilX-trMXshutil.copystatrM(jjX<http://docs.python.org/3/library/shutil.html#shutil.copystatX-trMXtraceback.format_listrM(jjXEhttp://docs.python.org/3/library/traceback.html#traceback.format_listX-trMX os.setresuidrM(jjX5http://docs.python.org/3/library/os.html#os.setresuidX-trMXcurses.ascii.isalnumrM(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalnumX-trMX curses.putprM(jjX8http://docs.python.org/3/library/curses.html#curses.putpX-trMX operator.invrM(jjX;http://docs.python.org/3/library/operator.html#operator.invX-trMX logging.logrM(jjX9http://docs.python.org/3/library/logging.html#logging.logX-trMXcurses.start_colorrM(jjX?http://docs.python.org/3/library/curses.html#curses.start_colorX-trMX select.pollrM(jjX8http://docs.python.org/3/library/select.html#select.pollX-trMXfilecmp.clear_cacherM(jjXAhttp://docs.python.org/3/library/filecmp.html#filecmp.clear_cacheX-trMXreadline.set_pre_input_hookrM(jjXJhttp://docs.python.org/3/library/readline.html#readline.set_pre_input_hookX-trMXmultiprocessing.ValuerM(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ValueX-trMX os.ctermidrM(jjX3http://docs.python.org/3/library/os.html#os.ctermidX-trMX stat.S_IFMTrM(jjX6http://docs.python.org/3/library/stat.html#stat.S_IFMTX-trMXboolrM(jjX4http://docs.python.org/3/library/functions.html#boolX-trMXemail.header.make_headerrM(jjXKhttp://docs.python.org/3/library/email.header.html#email.header.make_headerX-trMX pickle.dumprM(jjX8http://docs.python.org/3/library/pickle.html#pickle.dumpX-trMXwsgiref.util.application_urirM(jjXJhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.application_uriX-trNX math.degreesrN(jjX7http://docs.python.org/3/library/math.html#math.degreesX-trNX curses.newpadrN(jjX:http://docs.python.org/3/library/curses.html#curses.newpadX-trNX signal.pauserN(jjX9http://docs.python.org/3/library/signal.html#signal.pauseX-trNX"multiprocessing.sharedctypes.ValuerN(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.ValueX-trNXwsgiref.util.shift_path_infor N(jjXJhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.shift_path_infoX-tr NX turtle.updater N(jjX:http://docs.python.org/3/library/turtle.html#turtle.updateX-tr NXlogging.getLoggerr N(jjX?http://docs.python.org/3/library/logging.html#logging.getLoggerX-trNXoperator.__isub__rN(jjX@http://docs.python.org/3/library/operator.html#operator.__isub__X-trNXturtle.clearstampsrN(jjX?http://docs.python.org/3/library/turtle.html#turtle.clearstampsX-trNXunittest.removeHandlerrN(jjXEhttp://docs.python.org/3/library/unittest.html#unittest.removeHandlerX-trNXasyncio.iscoroutinefunctionrN(jjXNhttp://docs.python.org/3/library/asyncio-task.html#asyncio.iscoroutinefunctionX-trNXwinreg.CloseKeyrN(jjX<http://docs.python.org/3/library/winreg.html#winreg.CloseKeyX-trNXtempfile.mkstemprN(jjX?http://docs.python.org/3/library/tempfile.html#tempfile.mkstempX-trNX os.fdopenrN(jjX2http://docs.python.org/3/library/os.html#os.fdopenX-trNXitertools.chainrN(jjX?http://docs.python.org/3/library/itertools.html#itertools.chainX-trNXxml.dom.pulldom.parserN(jjXKhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.parseX-tr NXimportlib.util.find_specr!N(jjXHhttp://docs.python.org/3/library/importlib.html#importlib.util.find_specX-tr"NXcalendar.isleapr#N(jjX>http://docs.python.org/3/library/calendar.html#calendar.isleapX-tr$NX os.getcwdbr%N(jjX3http://docs.python.org/3/library/os.html#os.getcwdbX-tr&NX shutil.copy2r'N(jjX9http://docs.python.org/3/library/shutil.html#shutil.copy2X-tr(NX os.statvfsr)N(jjX3http://docs.python.org/3/library/os.html#os.statvfsX-tr*NXparser.st2tupler+N(jjX<http://docs.python.org/3/library/parser.html#parser.st2tupleX-tr,NXsocket.getaddrinfor-N(jjX?http://docs.python.org/3/library/socket.html#socket.getaddrinfoX-tr.NXssl.cert_time_to_secondsr/N(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.cert_time_to_secondsX-tr0NXre.subnr1N(jjX0http://docs.python.org/3/library/re.html#re.subnX-tr2NXcurses.init_colorr3N(jjX>http://docs.python.org/3/library/curses.html#curses.init_colorX-tr4NuXpy:classmethodr5N}r6N(Xint.from_bytesr7N(jjX=http://docs.python.org/3/library/stdtypes.html#int.from_bytesX-tr8NXbytearray.fromhexr9N(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.fromhexX-tr:NXdatetime.datetime.fromtimestampr;N(jjXNhttp://docs.python.org/3/library/datetime.html#datetime.datetime.fromtimestampX-trNXdis.Bytecode.from_tracebackr?N(jjXEhttp://docs.python.org/3/library/dis.html#dis.Bytecode.from_tracebackX-tr@NXdatetime.datetime.todayrAN(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.datetime.todayX-trBNXdatetime.date.fromordinalrCN(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.date.fromordinalX-trDNXasyncio.Task.current_taskrEN(jjXLhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.current_taskX-trFNXitertools.chain.from_iterablerGN(jjXMhttp://docs.python.org/3/library/itertools.html#itertools.chain.from_iterableX-trHNX*importlib.machinery.PathFinder.find_modulerIN(jjXZhttp://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.find_moduleX-trJNX bytes.fromhexrKN(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.fromhexX-trLNXdatetime.datetime.strptimerMN(jjXIhttp://docs.python.org/3/library/datetime.html#datetime.datetime.strptimeX-trNNX(importlib.machinery.FileFinder.path_hookrON(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.path_hookX-trPNXasyncio.Task.all_tasksrQN(jjXIhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.all_tasksX-trRNX(importlib.machinery.PathFinder.find_specrSN(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.find_specX-trTNX0importlib.machinery.PathFinder.invalidate_cachesrUN(jjX`http://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.invalidate_cachesX-trVNXdatetime.date.todayrWN(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.date.todayX-trXNXtracemalloc.Snapshot.loadrYN(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.loadX-trZNXdatetime.datetime.nowr[N(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.nowX-tr\NXpathlib.Path.cwdr]N(jjX>http://docs.python.org/3/library/pathlib.html#pathlib.Path.cwdX-tr^NX dict.fromkeysr_N(jjX<http://docs.python.org/3/library/stdtypes.html#dict.fromkeysX-tr`NX"datetime.datetime.utcfromtimestampraN(jjXQhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utcfromtimestampX-trbNX float.fromhexrcN(jjX<http://docs.python.org/3/library/stdtypes.html#float.fromhexX-trdNX collections.somenamedtuple._makereN(jjXRhttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._makeX-trfNXdatetime.datetime.fromordinalrgN(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.datetime.fromordinalX-trhNXdatetime.datetime.utcnowriN(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utcnowX-trjNXdatetime.date.fromtimestamprkN(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.date.fromtimestampX-trlNuX py:attributermN}rnN(Xio.TextIOBase.bufferroN(jjX=http://docs.python.org/3/library/io.html#io.TextIOBase.bufferX-trpNXunittest.TestResult.bufferrqN(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.bufferX-trrNXdoctest.Example.linenorsN(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.Example.linenoX-trtNX3http.server.SimpleHTTPRequestHandler.extensions_mapruN(jjXehttp://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.extensions_mapX-trvNX'xml.parsers.expat.xmlparser.buffer_usedrwN(jjXUhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_usedX-trxNXhttp.cookies.Morsel.coded_valueryN(jjXRhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.coded_valueX-trzNX8http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomainr{N(jjXmhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomainX-tr|NX$http.cookiejar.CookiePolicy.netscaper}N(jjXYhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.netscapeX-tr~NXselectors.SelectorKey.eventsrN(jjXLhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.eventsX-trNX&importlib.machinery.EXTENSION_SUFFIXESrN(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.machinery.EXTENSION_SUFFIXESX-trNXcmd.Cmd.misc_headerrN(jjX=http://docs.python.org/3/library/cmd.html#cmd.Cmd.misc_headerX-trNXsqlite3.Connection.iterdumprN(jjXIhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.iterdumpX-trNXpyclbr.Class.methodsrN(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.Class.methodsX-trNXxml.dom.NamedNodeMap.lengthrN(jjXIhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NamedNodeMap.lengthX-trNX"sqlite3.Connection.isolation_levelrN(jjXPhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.isolation_levelX-trNX ipaddress.IPv6Network.compressedrN(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.compressedX-trNXselectors.SelectorKey.fileobjrN(jjXMhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.fileobjX-trNXfilecmp.DEFAULT_IGNORESrN(jjXEhttp://docs.python.org/3/library/filecmp.html#filecmp.DEFAULT_IGNORESX-trNX+importlib.machinery.ModuleSpec.loader_staterN(jjX[http://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loader_stateX-trNXoptparse.Option.ACTIONSrN(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.ACTIONSX-trNXctypes.Structure._fields_rN(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes.Structure._fields_X-trNXasyncio.StreamWriter.transportrN(jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.transportX-trNXipaddress.IPv6Interface.iprN(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.ipX-trNXdoctest.Example.optionsrN(jjXEhttp://docs.python.org/3/library/doctest.html#doctest.Example.optionsX-trNX'tkinter.scrolledtext.ScrolledText.framerN(jjXbhttp://docs.python.org/3/library/tkinter.scrolledtext.html#tkinter.scrolledtext.ScrolledText.frameX-trNXxml.dom.DocumentType.notationsrN(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.notationsX-trNXreprlib.Repr.maxdequerN(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxdequeX-trNXnntplib.NNTP.nntp_versionrN(jjXGhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nntp_versionX-trNXcollections.ChainMap.parentsrN(jjXNhttp://docs.python.org/3/library/collections.html#collections.ChainMap.parentsX-trNXsmtpd.SMTPServer.channel_classrN(jjXJhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPServer.channel_classX-trNXsocketserver.BaseServer.timeoutrN(jjXRhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.timeoutX-trNXdoctest.DocTest.globsrN(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTest.globsX-trNXipaddress.IPv6Network.hostmaskrN(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.hostmaskX-trNX#ipaddress.IPv6Address.is_site_localrN(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_site_localX-trNXctypes._CData._b_base_rN(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes._CData._b_base_X-trNXdoctest.DocTestFailure.testrN(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.testX-trNXlogging.lastResortrN(jjX@http://docs.python.org/3/library/logging.html#logging.lastResortX-trNX(subprocess.CalledProcessError.returncoderN(jjXYhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.returncodeX-trNX$ipaddress.IPv6Network.with_prefixlenrN(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_prefixlenX-trNXdoctest.DocTest.examplesrN(jjXFhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.examplesX-trNXurllib.request.Request.full_urlrN(jjXThttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.full_urlX-trNX,wsgiref.handlers.BaseHandler.server_softwarerN(jjXZhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.server_softwareX-trNXurllib.request.Request.methodrN(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.methodX-trNXdoctest.DocTestFailure.gotrN(jjXHhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.gotX-trNXcsv.csvreader.fieldnamesrN(jjXBhttp://docs.python.org/3/library/csv.html#csv.csvreader.fieldnamesX-trNXdatetime.time.tzinforN(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.tzinfoX-trNXmemoryview.c_contiguousrN(jjXFhttp://docs.python.org/3/library/stdtypes.html#memoryview.c_contiguousX-trNXstruct.Struct.formatrN(jjXAhttp://docs.python.org/3/library/struct.html#struct.Struct.formatX-trNX$unittest.TestResult.expectedFailuresrN(jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestResult.expectedFailuresX-trNXctypes.Structure._pack_rN(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes.Structure._pack_X-trNXio.TextIOBase.errorsrN(jjX=http://docs.python.org/3/library/io.html#io.TextIOBase.errorsX-trNX smtpd.SMTPChannel.received_linesrN(jjXLhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.received_linesX-trNXreprlib.Repr.maxlongrN(jjXBhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxlongX-trNXdatetime.datetime.secondrN(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.secondX-trNXnetrc.netrc.macrosrN(jjX>http://docs.python.org/3/library/netrc.html#netrc.netrc.macrosX-trNX"curses.textpad.Textbox.stripspacesrN(jjXOhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.stripspacesX-trNXcsv.Dialect.lineterminatorrN(jjXDhttp://docs.python.org/3/library/csv.html#csv.Dialect.lineterminatorX-trNXarray.array.itemsizerN(jjX@http://docs.python.org/3/library/array.html#array.array.itemsizeX-trNXxml.dom.Attr.valuerN(jjX@http://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.valueX-trNXhashlib.hash.namerN(jjX?http://docs.python.org/3/library/hashlib.html#hashlib.hash.nameX-trNXoptparse.Option.callback_argsrN(jjXLhttp://docs.python.org/3/library/optparse.html#optparse.Option.callback_argsX-trNXtracemalloc.StatisticDiff.sizerN(jjXPhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.sizeX-trNXtarfile.TarFile.pax_headersrN(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.pax_headersX-trNXhttp.cookiejar.Cookie.expiresrN(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.expiresX-trNX%http.cookiejar.FileCookieJar.filenamerN(jjXZhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.filenameX-trNX&asyncio.asyncio.subprocess.Process.pidrN(jjX_http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.pidX-trNXUnicodeError.reasonrN(jjXDhttp://docs.python.org/3/library/exceptions.html#UnicodeError.reasonX-trNX%ipaddress.IPv4Interface.with_hostmaskrN(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_hostmaskX-trNXcollections.UserList.datarN(jjXKhttp://docs.python.org/3/library/collections.html#collections.UserList.dataX-trNX0xml.parsers.expat.xmlparser.specified_attributesrN(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.specified_attributesX-trNX#ipaddress.IPv6Address.max_prefixlenrN(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.max_prefixlenX-trNXemail.message.Message.preamblerN(jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.preambleX-trNXtracemalloc.Snapshot.tracesrN(jjXMhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.tracesX-trOXxml.dom.DocumentType.entitiesrO(jjXKhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.entitiesX-trOXstring.Template.templaterO(jjXEhttp://docs.python.org/3/library/string.html#string.Template.templateX-trOX-xml.parsers.expat.xmlparser.ErrorColumnNumberrO(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorColumnNumberX-trOX subprocess.TimeoutExpired.outputrO(jjXQhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.outputX-trOXtracemalloc.Filter.all_framesr O(jjXOhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.all_framesX-tr OX.http.server.BaseHTTPRequestHandler.sys_versionr O(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.sys_versionX-tr OXunittest.mock.Mock.__class__r O(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.__class__X-trOXre.regex.flagsrO(jjX7http://docs.python.org/3/library/re.html#re.regex.flagsX-trOX#ipaddress.IPv6Network.with_hostmaskrO(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_hostmaskX-trOXUnicodeError.objectrO(jjXDhttp://docs.python.org/3/library/exceptions.html#UnicodeError.objectX-trOXctypes.PyDLL._namerO(jjX?http://docs.python.org/3/library/ctypes.html#ctypes.PyDLL._nameX-trOXftplib.FTP_TLS.ssl_versionrO(jjXGhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.ssl_versionX-trOXdatetime.time.microsecondrO(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.time.microsecondX-trOX ipaddress.IPv4Address.compressedrO(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.compressedX-trOX urllib.request.URLopener.versionrO(jjXUhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.versionX-trOXthreading.Barrier.brokenrO(jjXHhttp://docs.python.org/3/library/threading.html#threading.Barrier.brokenX-tr OX&http.cookiejar.FileCookieJar.delayloadr!O(jjX[http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.delayloadX-tr"OXinspect.Parameter.emptyr#O(jjXEhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.emptyX-tr$OX1multiprocessing.connection.Listener.last_acceptedr%O(jjXghttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.last_acceptedX-tr&OX#email.charset.Charset.input_charsetr'O(jjXWhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.input_charsetX-tr(OXshlex.shlex.linenor)O(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.linenoX-tr*OXurllib.error.HTTPError.reasonr+O(jjXPhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError.reasonX-tr,OX$doctest.UnexpectedException.exc_infor-O(jjXRhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.exc_infoX-tr.OXUnicodeError.startr/O(jjXChttp://docs.python.org/3/library/exceptions.html#UnicodeError.startX-tr0OX)wsgiref.handlers.BaseHandler.error_statusr1O(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_statusX-tr2OXsocketserver.BaseServer.socketr3O(jjXQhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.socketX-tr4OXtarfile.TarInfo.namer5O(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.nameX-tr6OXhttp.cookies.Morsel.keyr7O(jjXJhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.keyX-tr8OXsocket.socket.typer9O(jjX?http://docs.python.org/3/library/socket.html#socket.socket.typeX-tr:OXimportlib.util.MAGIC_NUMBERr;O(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.util.MAGIC_NUMBERX-trOXhmac.HMAC.block_sizer?O(jjX?http://docs.python.org/3/library/hmac.html#hmac.HMAC.block_sizeX-tr@OX"collections.somenamedtuple._fieldsrAO(jjXThttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._fieldsX-trBOXos.terminal_size.columnsrCO(jjXAhttp://docs.python.org/3/library/os.html#os.terminal_size.columnsX-trDOXuuid.UUID.variantrEO(jjX<http://docs.python.org/3/library/uuid.html#uuid.UUID.variantX-trFOXipaddress.IPv6Address.explodedrGO(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.explodedX-trHOXtypes.ModuleType.__doc__rIO(jjXDhttp://docs.python.org/3/library/types.html#types.ModuleType.__doc__X-trJOXimaplib.IMAP4.PROTOCOL_VERSIONrKO(jjXLhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.PROTOCOL_VERSIONX-trLOXurllib.request.Request.typerMO(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.typeX-trNOX,wsgiref.handlers.BaseHandler.traceback_limitrOO(jjXZhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.traceback_limitX-trPOXsqlite3.Connection.text_factoryrQO(jjXMhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.text_factoryX-trROXdoctest.DocTestFailure.examplerSO(jjXLhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.exampleX-trTOXtypes.ModuleType.__name__rUO(jjXEhttp://docs.python.org/3/library/types.html#types.ModuleType.__name__X-trVOXipaddress.IPv6Address.teredorWO(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.teredoX-trXOXunittest.mock.Mock.calledrYO(jjXMhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.calledX-trZOX!subprocess.TimeoutExpired.timeoutr[O(jjXRhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.timeoutX-tr\OXpyclbr.Class.filer]O(jjX>http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.fileX-tr^OX#ipaddress.IPv6Address.is_link_localr_O(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_link_localX-tr`OX$ipaddress.IPv6Network.is_unspecifiedraO(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_unspecifiedX-trbOX!xml.parsers.expat.ExpatError.codercO(jjXOhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.codeX-trdOXcsv.Dialect.doublequotereO(jjXAhttp://docs.python.org/3/library/csv.html#csv.Dialect.doublequoteX-trfOX#ipaddress.IPv4Network.is_link_localrgO(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_link_localX-trhOXhmac.HMAC.nameriO(jjX9http://docs.python.org/3/library/hmac.html#hmac.HMAC.nameX-trjOX'xml.parsers.expat.xmlparser.buffer_textrkO(jjXUhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_textX-trlOXdoctest.DocTest.linenormO(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.linenoX-trnOXmmap.mmap.closedroO(jjX;http://docs.python.org/3/library/mmap.html#mmap.mmap.closedX-trpOXshlex.shlex.wordcharsrqO(jjXAhttp://docs.python.org/3/library/shlex.html#shlex.shlex.wordcharsX-trrOXhttp.cookiejar.Cookie.valuersO(jjXPhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.valueX-trtOXselect.kqueue.closedruO(jjXAhttp://docs.python.org/3/library/select.html#select.kqueue.closedX-trvOX,importlib.machinery.ExtensionFileLoader.namerwO(jjX\http://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.nameX-trxOXdoctest.DocTest.nameryO(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.nameX-trzOXxml.dom.Text.datar{O(jjX?http://docs.python.org/3/library/xml.dom.html#xml.dom.Text.dataX-tr|OXcsv.Dialect.quotingr}O(jjX=http://docs.python.org/3/library/csv.html#csv.Dialect.quotingX-tr~OX,email.headerregistry.MIMEVersionHeader.minorrO(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.minorX-trOXhttp.cookiejar.Cookie.versionrO(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.versionX-trOX$optparse.Option.ALWAYS_TYPED_ACTIONSrO(jjXShttp://docs.python.org/3/library/optparse.html#optparse.Option.ALWAYS_TYPED_ACTIONSX-trOX(asyncio.asyncio.subprocess.Process.stdinrO(jjXahttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.stdinX-trOXnntplib.NNTPError.responserO(jjXHhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPError.responseX-trOXzipimport.zipimporter.archiverO(jjXMhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.archiveX-trOXdatetime.date.maxrO(jjX@http://docs.python.org/3/library/datetime.html#datetime.date.maxX-trOX>http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiablerO(jjXshttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiableX-trOXtarfile.TarInfo.sizerO(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.sizeX-trOX/http.cookiejar.DefaultCookiePolicy.DomainStrictrO(jjXdhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictX-trOXsqlite3.Cursor.descriptionrO(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.descriptionX-trOXurllib.request.Request.selectorrO(jjXThttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.selectorX-trOXoptparse.Option.defaultrO(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.defaultX-trOXctypes.Structure._anonymous_rO(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes.Structure._anonymous_X-trOXfilecmp.dircmp.right_onlyrO(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.right_onlyX-trOXcsv.Dialect.quotecharrO(jjX?http://docs.python.org/3/library/csv.html#csv.Dialect.quotecharX-trOX(http.server.BaseHTTPRequestHandler.wfilerO(jjXZhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.wfileX-trOXsubprocess.Popen.stderrrO(jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.stderrX-trOXxml.dom.Node.attributesrO(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.attributesX-trOXxml.dom.Node.nextSiblingrO(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nextSiblingX-trOXinspect.BoundArguments.kwargsrO(jjXKhttp://docs.python.org/3/library/inspect.html#inspect.BoundArguments.kwargsX-trOX(email.policy.EmailPolicy.content_managerrO(jjX[http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.content_managerX-trOX$tracemalloc.Snapshot.traceback_limitrO(jjXVhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.traceback_limitX-trOXthreading.Barrier.partiesrO(jjXIhttp://docs.python.org/3/library/threading.html#threading.Barrier.partiesX-trOX&email.headerregistry.Address.addr_specrO(jjXahttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.addr_specX-trOXzipfile.ZipInfo.volumerO(jjXDhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.volumeX-trOXcsv.csvwriter.dialectrO(jjX?http://docs.python.org/3/library/csv.html#csv.csvwriter.dialectX-trOX3email.headerregistry.ParameterizedMIMEHeader.paramsrO(jjXnhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ParameterizedMIMEHeader.paramsX-trOXxml.dom.Comment.datarO(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Comment.dataX-trOXfilecmp.dircmp.common_filesrO(jjXIhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_filesX-trOX$ipaddress.IPv4Address.is_unspecifiedrO(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_unspecifiedX-trOXssl.SSLSocket.contextrO(jjX?http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.contextX-trOXurllib.error.URLError.reasonrO(jjXOhttp://docs.python.org/3/library/urllib.error.html#urllib.error.URLError.reasonX-trOXssl.SSLError.libraryrO(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLError.libraryX-trOXipaddress.IPv6Address.packedrO(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.packedX-trOXzipfile.ZipInfo.filenamerO(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.filenameX-trOXunittest.mock.Mock.call_countrO(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_countX-trOXpyclbr.Function.namerO(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.nameX-trOXtracemalloc.Filter.inclusiverO(jjXNhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.inclusiveX-trOXBaseException.argsrO(jjXChttp://docs.python.org/3/library/exceptions.html#BaseException.argsX-trOXpyclbr.Class.modulerO(jjX@http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.moduleX-trOXfunctools.partial.funcrO(jjXFhttp://docs.python.org/3/library/functools.html#functools.partial.funcX-trOXshlex.shlex.escapedquotesrO(jjXEhttp://docs.python.org/3/library/shlex.html#shlex.shlex.escapedquotesX-trOXdatetime.date.dayrO(jjX@http://docs.python.org/3/library/datetime.html#datetime.date.dayX-trOX(http.server.BaseHTTPRequestHandler.rfilerO(jjXZhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.rfileX-trOXweakref.ref.__callback__rO(jjXFhttp://docs.python.org/3/library/weakref.html#weakref.ref.__callback__X-trOXxmlrpc.client.Fault.faultCoderO(jjXQhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Fault.faultCodeX-trOXcmd.Cmd.use_rawinputrO(jjX>http://docs.python.org/3/library/cmd.html#cmd.Cmd.use_rawinputX-trOX.wsgiref.handlers.BaseHandler.wsgi_file_wrapperrO(jjX\http://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_file_wrapperX-trOX'xml.parsers.expat.xmlparser.buffer_sizerO(jjXUhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_sizeX-trOXunittest.TestResult.failfastrO(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.failfastX-trOXos.sched_param.sched_priorityrO(jjXFhttp://docs.python.org/3/library/os.html#os.sched_param.sched_priorityX-trOX!ipaddress.IPv6Address.is_loopbackrO(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_loopbackX-trOXtracemalloc.Filter.linenorO(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.linenoX-trOX%textwrap.TextWrapper.break_long_wordsrO(jjXThttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_long_wordsX-trOXtarfile.TarInfo.pax_headersrO(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.pax_headersX-trOX$shutil.rmtree.avoids_symlink_attacksrO(jjXQhttp://docs.python.org/3/library/shutil.html#shutil.rmtree.avoids_symlink_attacksX-trOXfilecmp.dircmp.rightrO(jjXBhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.rightX-trOX!xml.etree.ElementTree.Element.tagrO(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.tagX-trOX!mimetypes.MimeTypes.encodings_maprO(jjXQhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.encodings_mapX-trOX)xml.etree.ElementTree.ParseError.positionrO(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseError.positionX-trOXunittest.TestResult.skippedrO(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.skippedX-trOXxml.dom.Node.nodeValuerO(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeValueX-trOX#ipaddress.IPv6Network.is_site_localrO(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_site_localX-trOX!ipaddress.IPv4Address.is_loopbackrO(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_loopbackX-trPX#xml.dom.DocumentType.internalSubsetrP(jjXQhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.internalSubsetX-trPXfilecmp.dircmp.diff_filesrP(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.diff_filesX-trPXunittest.TestLoader.suiteClassrP(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.suiteClassX-trPXsqlite3.Connection.row_factoryrP(jjXLhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.row_factoryX-trPXsubprocess.Popen.pidr P(jjXEhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.pidX-tr PX subprocess.STARTUPINFO.hStdInputr P(jjXQhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdInputX-tr PX/email.headerregistry.ContentTypeHeader.maintyper P(jjXjhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.maintypeX-trPX$xml.etree.ElementTree.Element.attribrP(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.attribX-trPXselect.devpoll.closedrP(jjXBhttp://docs.python.org/3/library/select.html#select.devpoll.closedX-trPXipaddress.IPv6Interface.networkrP(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.networkX-trPXxml.dom.Attr.localNamerP(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.localNameX-trPXtracemalloc.Trace.tracebackrP(jjXMhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Trace.tracebackX-trPXtracemalloc.Statistic.countrP(jjXMhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Statistic.countX-trPXcmd.Cmd.undoc_headerrP(jjX>http://docs.python.org/3/library/cmd.html#cmd.Cmd.undoc_headerX-trPXsmtpd.SMTPChannel.seen_greetingrP(jjXKhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.seen_greetingX-trPXhttp.cookiejar.Cookie.rfc2109rP(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.rfc2109X-tr PXunittest.TestResult.shouldStopr!P(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.shouldStopX-tr"PXdatetime.date.resolutionr#P(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.date.resolutionX-tr$PX ipaddress.IPv4Address.is_privater%P(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_privateX-tr&PXdatetime.timedelta.maxr'P(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.maxX-tr(PXreprlib.Repr.maxlistr)P(jjXBhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxlistX-tr*PX2xmlrpc.server.SimpleXMLRPCRequestHandler.rpc_pathsr+P(jjXfhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCRequestHandler.rpc_pathsX-tr,PX"ipaddress.IPv6Address.is_multicastr-P(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_multicastX-tr.PXxmlrpc.client.Binary.datar/P(jjXMhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.dataX-tr0PX%textwrap.TextWrapper.break_on_hyphensr1P(jjXThttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_on_hyphensX-tr2PXipaddress.IPv4Interface.ipr3P(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.ipX-tr4PX#ipaddress.IPv4Address.is_link_localr5P(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_link_localX-tr6PX#ipaddress.IPv6Network.num_addressesr7P(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.num_addressesX-tr8PXipaddress.IPv6Address.versionr9P(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.versionX-tr:PX*socketserver.BaseServer.request_queue_sizer;P(jjX]http://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.request_queue_sizeX-trPXsubprocess.Popen.returncoder?P(jjXLhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.returncodeX-tr@PX,xml.parsers.expat.xmlparser.CurrentByteIndexrAP(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentByteIndexX-trBPX)email.headerregistry.Address.display_namerCP(jjXdhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.display_nameX-trDPXzipfile.ZipInfo.internal_attrrEP(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.internal_attrX-trFPXmimetypes.MimeTypes.types_maprGP(jjXMhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_mapX-trHPXemail.message.Message.epiloguerIP(jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.epilogueX-trJPX ipaddress.IPv4Network.is_privaterKP(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_privateX-trLPX%email.headerregistry.Address.usernamerMP(jjX`http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.usernameX-trNPXxml.dom.Node.parentNoderOP(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.parentNodeX-trPPX5http.server.BaseHTTPRequestHandler.error_content_typerQP(jjXghttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_content_typeX-trRPXxml.dom.Node.previousSiblingrSP(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.previousSiblingX-trTPX inspect.BoundArguments.argumentsrUP(jjXNhttp://docs.python.org/3/library/inspect.html#inspect.BoundArguments.argumentsX-trVPXpyclbr.Function.modulerWP(jjXChttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.moduleX-trXPXio.TextIOBase.newlinesrYP(jjX?http://docs.python.org/3/library/io.html#io.TextIOBase.newlinesX-trZPXxml.dom.DocumentType.publicIdr[P(jjXKhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.publicIdX-tr\PXurllib.error.HTTPError.coder]P(jjXNhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError.codeX-tr^PX!ossaudiodev.oss_audio_device.moder_P(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.modeX-tr`PXUnicodeError.encodingraP(jjXFhttp://docs.python.org/3/library/exceptions.html#UnicodeError.encodingX-trbPX re.match.rercP(jjX4http://docs.python.org/3/library/re.html#re.match.reX-trdPXreprlib.Repr.maxlevelreP(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxlevelX-trfPXdatetime.time.minutergP(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.minuteX-trhPXuuid.UUID.bytesriP(jjX:http://docs.python.org/3/library/uuid.html#uuid.UUID.bytesX-trjPX(email.message.EmailMessage.is_attachmentrkP(jjXchttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.is_attachmentX-trlPX%importlib.machinery.ModuleSpec.parentrmP(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.parentX-trnPXmimetypes.MimeTypes.suffix_maproP(jjXNhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.suffix_mapX-trpPX!subprocess.STARTUPINFO.hStdOutputrqP(jjXRhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdOutputX-trrPXfilecmp.dircmp.left_onlyrsP(jjXFhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.left_onlyX-trtPX#email.charset.Charset.body_encodingruP(jjXWhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.body_encodingX-trvPXdatetime.timezone.utcrwP(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.timezone.utcX-trxPXdoctest.Example.sourceryP(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.Example.sourceX-trzPX re.match.posr{P(jjX5http://docs.python.org/3/library/re.html#re.match.posX-tr|PX-importlib.machinery.SourcelessFileLoader.namer}P(jjX]http://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.nameX-tr~PXctypes._FuncPtr.restyperP(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.restypeX-trPXsmtpd.SMTPChannel.rcpttosrP(jjXEhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.rcpttosX-trPX$ipaddress.IPv6Address.is_unspecifiedrP(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_unspecifiedX-trPXnumbers.Rational.numeratorrP(jjXHhttp://docs.python.org/3/library/numbers.html#numbers.Rational.numeratorX-trPX xml.dom.Document.documentElementrP(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.documentElementX-trPXsmtpd.SMTPChannel.mailfromrP(jjXFhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.mailfromX-trPX9http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiablerP(jjXnhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiableX-trPXsmtpd.SMTPChannel.smtp_serverrP(jjXIhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.smtp_serverX-trPXunittest.TestCase.outputrP(jjXGhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.outputX-trPX uuid.UUID.urnrP(jjX8http://docs.python.org/3/library/uuid.html#uuid.UUID.urnX-trPXreprlib.Repr.maxarrayrP(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxarrayX-trPX!ipaddress.IPv6Network.is_reservedrP(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_reservedX-trPX'wsgiref.handlers.BaseHandler.os_environrP(jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.os_environX-trPX!modulefinder.ModuleFinder.modulesrP(jjXThttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.modulesX-trPX multiprocessing.Process.exitcoderP(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.exitcodeX-trPXhttp.client.HTTPResponse.msgrP(jjXNhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.msgX-trPX!urllib.request.BaseHandler.parentrP(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.parentX-trPX*wsgiref.handlers.BaseHandler.error_headersrP(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_headersX-trPX.email.headerregistry.MIMEVersionHeader.versionrP(jjXihttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.versionX-trPXshlex.shlex.debugrP(jjX=http://docs.python.org/3/library/shlex.html#shlex.shlex.debugX-trPXmemoryview.readonlyrP(jjXBhttp://docs.python.org/3/library/stdtypes.html#memoryview.readonlyX-trPXtarfile.TarInfo.linknamerP(jjXFhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.linknameX-trPX __loader__rP(jjX9http://docs.python.org/3/reference/import.html#__loader__X-trPXssl.SSLContext.optionsrP(jjX@http://docs.python.org/3/library/ssl.html#ssl.SSLContext.optionsX-trPX*logging.handlers.BaseRotatingHandler.namerrP(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.namerX-trPXthreading.Thread.identrP(jjXFhttp://docs.python.org/3/library/threading.html#threading.Thread.identX-trPXoptparse.Option.typerP(jjXChttp://docs.python.org/3/library/optparse.html#optparse.Option.typeX-trPXhttp.client.HTTPResponse.closedrP(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.closedX-trPX!lzma.LZMADecompressor.unused_datarP(jjXLhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.unused_dataX-trPXzipfile.ZipInfo.create_systemrP(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.create_systemX-trPXtypes.ModuleType.__package__rP(jjXHhttp://docs.python.org/3/library/types.html#types.ModuleType.__package__X-trPXuuid.UUID.bytes_lerP(jjX=http://docs.python.org/3/library/uuid.html#uuid.UUID.bytes_leX-trPXshlex.shlex.eofrP(jjX;http://docs.python.org/3/library/shlex.html#shlex.shlex.eofX-trPXzipfile.ZipInfo.compress_typerP(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.compress_typeX-trPX$ipaddress.IPv6Interface.with_netmaskrP(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_netmaskX-trPXselect.kevent.identrP(jjX@http://docs.python.org/3/library/select.html#select.kevent.identX-trPXipaddress.IPv4Address.explodedrP(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.explodedX-trPXmemoryview.nbytesrP(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.nbytesX-trPXcmd.Cmd.identcharsrP(jjX<http://docs.python.org/3/library/cmd.html#cmd.Cmd.identcharsX-trPXxml.dom.Node.nodeNamerP(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeNameX-trPXbz2.BZ2Decompressor.eofrP(jjXAhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.eofX-trPXcmd.Cmd.promptrP(jjX8http://docs.python.org/3/library/cmd.html#cmd.Cmd.promptX-trPXreprlib.Repr.maxstringrP(jjXDhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxstringX-trPXoptparse.Option.STORE_ACTIONSrP(jjXLhttp://docs.python.org/3/library/optparse.html#optparse.Option.STORE_ACTIONSX-trPX%importlib.machinery.BYTECODE_SUFFIXESrP(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.BYTECODE_SUFFIXESX-trPXshlex.shlex.whitespacerP(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.whitespaceX-trPXio.TextIOWrapper.line_bufferingrP(jjXHhttp://docs.python.org/3/library/io.html#io.TextIOWrapper.line_bufferingX-trPXre.match.stringrP(jjX8http://docs.python.org/3/library/re.html#re.match.stringX-trPXfunctools.partial.keywordsrP(jjXJhttp://docs.python.org/3/library/functools.html#functools.partial.keywordsX-trPXssl.SSLContext.verify_moderP(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.verify_modeX-trPX#xml.parsers.expat.ExpatError.linenorP(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.linenoX-trPXunittest.TestCase.recordsrP(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.recordsX-trPXdatetime.datetime.resolutionrP(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.resolutionX-trPXre.match.endposrP(jjX8http://docs.python.org/3/library/re.html#re.match.endposX-trPXzlib.Decompress.eofrP(jjX>http://docs.python.org/3/library/zlib.html#zlib.Decompress.eofX-trPX)importlib.machinery.SourceFileLoader.namerP(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.nameX-trPX#urllib.request.Request.unverifiablerP(jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.unverifiableX-trPXreprlib.Repr.maxfrozensetrP(jjXGhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxfrozensetX-trPXast.AST.col_offsetrP(jjX<http://docs.python.org/3/library/ast.html#ast.AST.col_offsetX-trPX'wsgiref.handlers.BaseHandler.error_bodyrP(jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_bodyX-trPX"xmlrpc.client.ProtocolError.errmsgrP(jjXVhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.errmsgX-trPX#ipaddress.IPv6Network.is_link_localrP(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_link_localX-trPXfractions.Fraction.numeratorrP(jjXLhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.numeratorX-trPX$ipaddress.IPv4Interface.with_netmaskrP(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_netmaskX-trPXoptparse.Option.choicesrP(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.choicesX-trQXtextwrap.TextWrapper.tabsizerQ(jjXKhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.tabsizeX-trQXunittest.mock.Mock.return_valuerQ(jjXShttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.return_valueX-trQXzipfile.ZipInfo.reservedrQ(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.reservedX-trQXtracemalloc.StatisticDiff.countrQ(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.countX-trQXmemoryview.ndimr Q(jjX>http://docs.python.org/3/library/stdtypes.html#memoryview.ndimX-tr QX-asyncio.asyncio.subprocess.Process.returncoder Q(jjXfhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.returncodeX-tr QXnumbers.Rational.denominatorr Q(jjXJhttp://docs.python.org/3/library/numbers.html#numbers.Rational.denominatorX-trQX"distutils.cmd.Command.sub_commandsrQ(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.sub_commandsX-trQXipaddress.IPv4Network.versionrQ(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.versionX-trQX,email.headerregistry.AddressHeader.addressesrQ(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeader.addressesX-trQX*wsgiref.handlers.BaseHandler.wsgi_run_oncerQ(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_run_onceX-trQX,multiprocessing.managers.BaseManager.addressrQ(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.addressX-trQX'ipaddress.IPv4Network.broadcast_addressrQ(jjXWhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.broadcast_addressX-trQXsched.scheduler.queuerQ(jjXAhttp://docs.python.org/3/library/sched.html#sched.scheduler.queueX-trQXunittest.TestCase.maxDiffrQ(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.maxDiffX-trQXshlex.shlex.whitespace_splitrQ(jjXHhttp://docs.python.org/3/library/shlex.html#shlex.shlex.whitespace_splitX-tr QX!email.charset.Charset.input_codecr!Q(jjXUhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.input_codecX-tr"QXio.BufferedIOBase.rawr#Q(jjX>http://docs.python.org/3/library/io.html#io.BufferedIOBase.rawX-tr$QXselect.kevent.filterr%Q(jjXAhttp://docs.python.org/3/library/select.html#select.kevent.filterX-tr&QX class.__mro__r'Q(jjX<http://docs.python.org/3/library/stdtypes.html#class.__mro__X-tr(QXsmtpd.SMTPChannel.smtp_stater)Q(jjXHhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.smtp_stateX-tr*QXdatetime.datetime.minuter+Q(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.minuteX-tr,QXdatetime.datetime.maxr-Q(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.maxX-tr.QX?http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollarr/Q(jjXthttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollarX-tr0QX http.client.HTTPResponse.versionr1Q(jjXRhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.versionX-tr2QX#importlib.machinery.ModuleSpec.namer3Q(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.nameX-tr4QX%importlib.machinery.ModuleSpec.originr5Q(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.originX-tr6QX textwrap.TextWrapper.expand_tabsr7Q(jjXOhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.expand_tabsX-tr8QXxml.dom.Attr.namer9Q(jjX?http://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.nameX-tr:QX!http.cookiejar.Cookie.comment_urlr;Q(jjXVhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.comment_urlX-trQXipaddress.IPv4Network.prefixlenr?Q(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.prefixlenX-tr@QX%xml.parsers.expat.xmlparser.ErrorCoderAQ(jjXShttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorCodeX-trBQXtextwrap.TextWrapper.widthrCQ(jjXIhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.widthX-trDQXpyclbr.Function.linenorEQ(jjXChttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.linenoX-trFQX(email.headerregistry.DateHeader.datetimerGQ(jjXchttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.DateHeader.datetimeX-trHQXdatetime.time.maxrIQ(jjX@http://docs.python.org/3/library/datetime.html#datetime.time.maxX-trJQX#xmlrpc.client.ProtocolError.headersrKQ(jjXWhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.headersX-trLQX multiprocessing.Process.sentinelrMQ(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.sentinelX-trNQXdatetime.datetime.microsecondrOQ(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.datetime.microsecondX-trPQX#ossaudiodev.oss_audio_device.closedrQQ(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.closedX-trRQXhttp.cookiejar.Cookie.portrSQ(jjXOhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.portX-trTQXthreading.Thread.daemonrUQ(jjXGhttp://docs.python.org/3/library/threading.html#threading.Thread.daemonX-trVQX&urllib.request.Request.origin_req_hostrWQ(jjX[http://docs.python.org/3/library/urllib.request.html#urllib.request.Request.origin_req_hostX-trXQXcsv.Dialect.escapecharrYQ(jjX@http://docs.python.org/3/library/csv.html#csv.Dialect.escapecharX-trZQX'collections.defaultdict.default_factoryr[Q(jjXYhttp://docs.python.org/3/library/collections.html#collections.defaultdict.default_factoryX-tr\QXio.FileIO.moder]Q(jjX7http://docs.python.org/3/library/io.html#io.FileIO.modeX-tr^QX,urllib.request.HTTPCookieProcessor.cookiejarr_Q(jjXahttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPCookieProcessor.cookiejarX-tr`QX"BlockingIOError.characters_writtenraQ(jjXShttp://docs.python.org/3/library/exceptions.html#BlockingIOError.characters_writtenX-trbQXssl.SSLError.reasonrcQ(jjX=http://docs.python.org/3/library/ssl.html#ssl.SSLError.reasonX-trdQXzipfile.ZipInfo.commentreQ(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.commentX-trfQXdoctest.DocTest.filenamergQ(jjXFhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.filenameX-trhQXdatetime.date.minriQ(jjX@http://docs.python.org/3/library/datetime.html#datetime.date.minX-trjQXipaddress.IPv6Address.is_globalrkQ(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_globalX-trlQX"xml.etree.ElementTree.Element.tailrmQ(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.tailX-trnQXformatter.formatter.writerroQ(jjXJhttp://docs.python.org/3/library/formatter.html#formatter.formatter.writerX-trpQX-xml.parsers.expat.xmlparser.CurrentLineNumberrqQ(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentLineNumberX-trrQXfilecmp.dircmp.leftrsQ(jjXAhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.leftX-trtQX,logging.handlers.BaseRotatingHandler.rotatorruQ(jjXchttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotatorX-trvQX*http.server.BaseHTTPRequestHandler.headersrwQ(jjX\http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.headersX-trxQXinspect.Signature.emptyryQ(jjXEhttp://docs.python.org/3/library/inspect.html#inspect.Signature.emptyX-trzQXhttp.client.HTTPResponse.statusr{Q(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.statusX-tr|QXselect.kevent.udatar}Q(jjX@http://docs.python.org/3/library/select.html#select.kevent.udataX-tr~QX#http.client.HTTPResponse.debuglevelrQ(jjXUhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.debuglevelX-trQXmemoryview.formatrQ(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.formatX-trQXhttp.cookiejar.Cookie.discardrQ(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.discardX-trQXsqlite3.Cursor.lastrowidrQ(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.lastrowidX-trQX/xml.parsers.expat.xmlparser.CurrentColumnNumberrQ(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentColumnNumberX-trQXzlib.Decompress.unconsumed_tailrQ(jjXJhttp://docs.python.org/3/library/zlib.html#zlib.Decompress.unconsumed_tailX-trQXinstance.__class__rQ(jjXAhttp://docs.python.org/3/library/stdtypes.html#instance.__class__X-trQXtracemalloc.Trace.sizerQ(jjXHhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Trace.sizeX-trQXinspect.Parameter.annotationrQ(jjXJhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.annotationX-trQXcollections.UserDict.datarQ(jjXKhttp://docs.python.org/3/library/collections.html#collections.UserDict.dataX-trQX cmd.Cmd.introrQ(jjX7http://docs.python.org/3/library/cmd.html#cmd.Cmd.introX-trQXunittest.TestResult.errorsrQ(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.errorsX-trQX$asyncio.IncompleteReadError.expectedrQ(jjXYhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.IncompleteReadError.expectedX-trQXclass.__qualname__rQ(jjXAhttp://docs.python.org/3/library/stdtypes.html#class.__qualname__X-trQXdoctest.Example.exc_msgrQ(jjXEhttp://docs.python.org/3/library/doctest.html#doctest.Example.exc_msgX-trQX0email.headerregistry.SingleAddressHeader.addressrQ(jjXkhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.SingleAddressHeader.addressX-trQXemail.message.Message.defectsrQ(jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.defectsX-trQX uuid.UUID.hexrQ(jjX8http://docs.python.org/3/library/uuid.html#uuid.UUID.hexX-trQXshlex.shlex.sourcerQ(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.sourceX-trQXzipfile.ZipInfo.extrarQ(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.extraX-trQXpyclbr.Function.filerQ(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.fileX-trQXdatetime.timedelta.minrQ(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.minX-trQXcollections.deque.maxlenrQ(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.maxlenX-trQXipaddress.IPv4Address.is_globalrQ(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_globalX-trQX#ipaddress.IPv6Network.max_prefixlenrQ(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.max_prefixlenX-trQXcsv.Dialect.strictrQ(jjX<http://docs.python.org/3/library/csv.html#csv.Dialect.strictX-trQX%importlib.machinery.ModuleSpec.loaderrQ(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loaderX-trQXcurses.window.encodingrQ(jjXChttp://docs.python.org/3/library/curses.html#curses.window.encodingX-trQXipaddress.IPv6Network.explodedrQ(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.explodedX-trQX__spec__rQ(jjX7http://docs.python.org/3/reference/import.html#__spec__X-trQXoptparse.Option.helprQ(jjXChttp://docs.python.org/3/library/optparse.html#optparse.Option.helpX-trQXsubprocess.Popen.stdoutrQ(jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdoutX-trQXxmlrpc.client.ProtocolError.urlrQ(jjXShttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.urlX-trQX cmd.Cmd.rulerrQ(jjX7http://docs.python.org/3/library/cmd.html#cmd.Cmd.rulerX-trQXtextwrap.TextWrapper.max_linesrQ(jjXMhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.max_linesX-trQXselect.kevent.datarQ(jjX?http://docs.python.org/3/library/select.html#select.kevent.dataX-trQX.email.headerregistry.ContentTypeHeader.subtyperQ(jjXihttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.subtypeX-trQXre.regex.patternrQ(jjX9http://docs.python.org/3/library/re.html#re.regex.patternX-trQXcsv.csvreader.line_numrQ(jjX@http://docs.python.org/3/library/csv.html#csv.csvreader.line_numX-trQX6http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscaperQ(jjXkhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscapeX-trQX*http.server.BaseHTTPRequestHandler.commandrQ(jjX\http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.commandX-trQX ipaddress.IPv6Address.compressedrQ(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.compressedX-trQXweakref.finalize.atexitrQ(jjXEhttp://docs.python.org/3/library/weakref.html#weakref.finalize.atexitX-trQX+multiprocessing.connection.Listener.addressrQ(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.addressX-trQXinspect.Parameter.namerQ(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.nameX-trQX.wsgiref.handlers.BaseHandler.wsgi_multiprocessrQ(jjX\http://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_multiprocessX-trQXast.AST.linenorQ(jjX8http://docs.python.org/3/library/ast.html#ast.AST.linenoX-trQXsmtpd.SMTPChannel.fqdnrQ(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.fqdnX-trQX&socketserver.BaseServer.address_familyrQ(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.address_familyX-trQXtarfile.TarInfo.unamerQ(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.unameX-trQX)importlib.machinery.SourceFileLoader.pathrQ(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.pathX-trQXhmac.HMAC.digest_sizerQ(jjX@http://docs.python.org/3/library/hmac.html#hmac.HMAC.digest_sizeX-trQXzipfile.ZipInfo.file_sizerQ(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.file_sizeX-trQXunittest.mock.Mock.mock_callsrQ(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.mock_callsX-trQXhttp.cookiejar.Cookie.securerQ(jjXQhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.secureX-trQXinspect.Parameter.kindrQ(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.kindX-trQX+socketserver.BaseServer.RequestHandlerClassrQ(jjX^http://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.RequestHandlerClassX-trQXhttp.client.HTTPResponse.reasonrQ(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.reasonX-trQXinspect.BoundArguments.argsrQ(jjXIhttp://docs.python.org/3/library/inspect.html#inspect.BoundArguments.argsX-trQXshlex.shlex.tokenrQ(jjX=http://docs.python.org/3/library/shlex.html#shlex.shlex.tokenX-trQX'http.server.BaseHTTPRequestHandler.pathrQ(jjXYhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.pathX-trQX+importlib.machinery.ModuleSpec.has_locationrQ(jjX[http://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.has_locationX-trQXoptparse.Option.TYPE_CHECKERrQ(jjXKhttp://docs.python.org/3/library/optparse.html#optparse.Option.TYPE_CHECKERX-trQX)wsgiref.handlers.BaseHandler.http_versionrQ(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.http_versionX-trQXre.regex.groupsrQ(jjX8http://docs.python.org/3/library/re.html#re.regex.groupsX-trRXunittest.TestResult.failuresrR(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.failuresX-trRXcmd.Cmd.lastcmdrR(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.lastcmdX-trRX!ipaddress.IPv4Network.is_loopbackrR(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_loopbackX-trRXnumbers.Complex.realrR(jjXBhttp://docs.python.org/3/library/numbers.html#numbers.Complex.realX-trRXimportlib.abc.FileLoader.namer R(jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.nameX-tr RXxml.dom.DocumentType.namer R(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.nameX-tr RX&ipaddress.IPv4Interface.with_prefixlenr R(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_prefixlenX-trRXdatetime.date.monthrR(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.date.monthX-trRX+socketserver.BaseServer.allow_reuse_addressrR(jjX^http://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.allow_reuse_addressX-trRX,importlib.machinery.ExtensionFileLoader.pathrR(jjX\http://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.pathX-trRX$tracemalloc.StatisticDiff.count_diffrR(jjXVhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.count_diffX-trRX"xml.etree.ElementTree.Element.textrR(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.textX-trRXtracemalloc.Frame.linenorR(jjXJhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Frame.linenoX-trRX crypt.methodsrR(jjX9http://docs.python.org/3/library/crypt.html#crypt.methodsX-trRX!sqlite3.Connection.in_transactionrR(jjXOhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.in_transactionX-trRX1http.server.BaseHTTPRequestHandler.server_versionrR(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.server_versionX-tr RX"ipaddress.IPv4Address.is_multicastr!R(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_multicastX-tr"RXtracemalloc.Frame.filenamer#R(jjXLhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Frame.filenameX-tr$RXasyncio.Queue.maxsizer%R(jjXHhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.maxsizeX-tr&RXstruct.Struct.sizer'R(jjX?http://docs.python.org/3/library/struct.html#struct.Struct.sizeX-tr(RXxml.dom.NodeList.lengthr)R(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NodeList.lengthX-tr*RX'email.headerregistry.Group.display_namer+R(jjXbhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.display_nameX-tr,RX"ipaddress.IPv6Network.is_multicastr-R(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_multicastX-tr.RXfilecmp.dircmp.right_listr/R(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.right_listX-tr0RX&tkinter.scrolledtext.ScrolledText.vbarr1R(jjXahttp://docs.python.org/3/library/tkinter.scrolledtext.html#tkinter.scrolledtext.ScrolledText.vbarX-tr2RXsmtpd.SMTPChannel.connr3R(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.connX-tr4RXio.IOBase.closedr5R(jjX9http://docs.python.org/3/library/io.html#io.IOBase.closedX-tr6RXctypes.PyDLL._handler7R(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes.PyDLL._handleX-tr8RX"ipaddress.IPv4Network.with_netmaskr9R(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_netmaskX-tr:RXfractions.Fraction.denominatorr;R(jjXNhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.denominatorX-trRXuuid.UUID.fieldsr?R(jjX;http://docs.python.org/3/library/uuid.html#uuid.UUID.fieldsX-tr@RXarray.array.typecoderAR(jjX@http://docs.python.org/3/library/array.html#array.array.typecodeX-trBRX!ipaddress.IPv6Address.is_reservedrCR(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_reservedX-trDRXzipfile.ZipInfo.compress_sizerER(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.compress_sizeX-trFRX!ipaddress.IPv6Address.ipv4_mappedrGR(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.ipv4_mappedX-trHRXipaddress.IPv6Network.prefixlenrIR(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.prefixlenX-trJRXctypes._CData._b_needsfree_rKR(jjXHhttp://docs.python.org/3/library/ctypes.html#ctypes._CData._b_needsfree_X-trLRX$subprocess.CalledProcessError.outputrMR(jjXUhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.outputX-trNRX$email.charset.Charset.output_charsetrOR(jjXXhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.output_charsetX-trPRXtarfile.TarInfo.gnamerQR(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gnameX-trRRXdatetime.time.hourrSR(jjXAhttp://docs.python.org/3/library/datetime.html#datetime.time.hourX-trTRX+xml.parsers.expat.xmlparser.ErrorLineNumberrUR(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorLineNumberX-trVRXfilecmp.dircmp.commonrWR(jjXChttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.commonX-trXRX2http.server.BaseHTTPRequestHandler.request_versionrYR(jjXdhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.request_versionX-trZRXnumbers.Complex.imagr[R(jjXBhttp://docs.python.org/3/library/numbers.html#numbers.Complex.imagX-tr\RXoptparse.Option.destr]R(jjXChttp://docs.python.org/3/library/optparse.html#optparse.Option.destX-tr^RX sqlite3.Connection.total_changesr_R(jjXNhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.total_changesX-tr`RX ipaddress.IPv6Address.is_privateraR(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_privateX-trbRXxml.dom.Node.prefixrcR(jjXAhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.prefixX-trdRX!ipaddress.IPv4Network.is_reservedreR(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_reservedX-trfRXdoctest.Example.indentrgR(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.Example.indentX-trhRX#ipaddress.IPv4Address.max_prefixlenriR(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.max_prefixlenX-trjRXoptparse.Option.TYPED_ACTIONSrkR(jjXLhttp://docs.python.org/3/library/optparse.html#optparse.Option.TYPED_ACTIONSX-trlRX!unittest.mock.Mock.call_args_listrmR(jjXUhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_args_listX-trnRXsmtpd.SMTPChannel.peerroR(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.peerX-trpRX#xml.parsers.expat.ExpatError.offsetrqR(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.offsetX-trrRXcsv.csvreader.dialectrsR(jjX?http://docs.python.org/3/library/csv.html#csv.csvreader.dialectX-trtRXselect.PIPE_BUFruR(jjX<http://docs.python.org/3/library/select.html#select.PIPE_BUFX-trvRX#importlib.machinery.FileFinder.pathrwR(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.pathX-trxRX$http.cookiejar.Cookie.port_specifiedryR(jjXYhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.port_specifiedX-trzRXdatetime.datetime.dayr{R(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.dayX-tr|RX doctest.UnexpectedException.testr}R(jjXNhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.testX-tr~RXre.match.lastgrouprR(jjX;http://docs.python.org/3/library/re.html#re.match.lastgroupX-trRXfilecmp.dircmp.subdirsrR(jjXDhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.subdirsX-trRX&email.policy.EmailPolicy.refold_sourcerR(jjXYhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.refold_sourceX-trRXos.terminal_size.linesrR(jjX?http://docs.python.org/3/library/os.html#os.terminal_size.linesX-trRX3email.headerregistry.ContentTypeHeader.content_typerR(jjXnhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.content_typeX-trRXbz2.BZ2Decompressor.unused_datarR(jjXIhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.unused_dataX-trRXtarfile.TarInfo.moderR(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.modeX-trRXthreading.Barrier.n_waitingrR(jjXKhttp://docs.python.org/3/library/threading.html#threading.Barrier.n_waitingX-trRX%ipaddress.IPv4Network.network_addressrR(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.network_addressX-trRXfilecmp.dircmp.same_filesrR(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.same_filesX-trRXcollections.ChainMap.mapsrR(jjXKhttp://docs.python.org/3/library/collections.html#collections.ChainMap.mapsX-trRXctypes._SimpleCData.valuerR(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes._SimpleCData.valueX-trRXlzma.LZMADecompressor.eofrR(jjXDhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.eofX-trRXctypes._CData._objectsrR(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes._CData._objectsX-trRXhttp.cookies.Morsel.valuerR(jjXLhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.valueX-trRXselectors.SelectorKey.fdrR(jjXHhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.fdX-trRXconfigparser.SECTCRErR(jjXGhttp://docs.python.org/3/library/configparser.html#configparser.SECTCREX-trRX)email.headerregistry.BaseHeader.max_countrR(jjXdhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.max_countX-trRXio.TextIOBase.encodingrR(jjX?http://docs.python.org/3/library/io.html#io.TextIOBase.encodingX-trRX/importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXESrR(jjX_http://docs.python.org/3/library/importlib.html#importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXESX-trRX __package__rR(jjX:http://docs.python.org/3/reference/import.html#__package__X-trRXshlex.shlex.quotesrR(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.quotesX-trRX&socketserver.BaseServer.server_addressrR(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_addressX-trRXobject.__dict__rR(jjX>http://docs.python.org/3/library/stdtypes.html#object.__dict__X-trRXio.FileIO.namerR(jjX7http://docs.python.org/3/library/io.html#io.FileIO.nameX-trRXmemoryview.shaperR(jjX?http://docs.python.org/3/library/stdtypes.html#memoryview.shapeX-trRX#tracemalloc.Filter.filename_patternrR(jjXUhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.filename_patternX-trRXclass.__bases__rR(jjX>http://docs.python.org/3/library/stdtypes.html#class.__bases__X-trRXreprlib.Repr.maxsetrR(jjXAhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxsetX-trRXhttp.cookiejar.Cookie.namerR(jjXOhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.nameX-trRXunittest.TestResult.testsRunrR(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.testsRunX-trRX"subprocess.STARTUPINFO.wShowWindowrR(jjXShttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.wShowWindowX-trRXipaddress.IPv4Address.packedrR(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.packedX-trRXmemoryview.suboffsetsrR(jjXDhttp://docs.python.org/3/library/stdtypes.html#memoryview.suboffsetsX-trRXzipfile.ZipFile.debugrR(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.debugX-trRX#ipaddress.IPv4Network.with_hostmaskrR(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_hostmaskX-trRXurllib.error.HTTPError.headersrR(jjXQhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError.headersX-trRX5http.cookiejar.DefaultCookiePolicy.DomainStrictNoDotsrR(jjXjhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNoDotsX-trRX1http.server.BaseHTTPRequestHandler.client_addressrR(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.client_addressX-trRXsocket.socket.familyrR(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.familyX-trRX'unittest.TestResult.unexpectedSuccessesrR(jjXVhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.unexpectedSuccessesX-trRXssl.SSLContext.check_hostnamerR(jjXGhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.check_hostnameX-trRXxml.dom.Element.tagNamerR(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.tagNameX-trRXzipfile.ZipInfo.header_offsetrR(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.header_offsetX-trRXre.regex.groupindexrR(jjX<http://docs.python.org/3/library/re.html#re.regex.groupindexX-trRX#email.policy.Policy.max_line_lengthrR(jjXVhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.max_line_lengthX-trRXzipimport.zipimporter.prefixrR(jjXLhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.prefixX-trRXunittest.mock.Mock.side_effectrR(jjXRhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.side_effectX-trRXmemoryview.itemsizerR(jjXBhttp://docs.python.org/3/library/stdtypes.html#memoryview.itemsizeX-trRXxmlrpc.client.Fault.faultStringrR(jjXShttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Fault.faultStringX-trRX'textwrap.TextWrapper.replace_whitespacerR(jjXVhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.replace_whitespaceX-trRX"unittest.TestCase.failureExceptionrR(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.failureExceptionX-trRX!ossaudiodev.oss_audio_device.namerR(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.nameX-trRX#inspect.Signature.return_annotationrR(jjXQhttp://docs.python.org/3/library/inspect.html#inspect.Signature.return_annotationX-trRX$email.headerregistry.Group.addressesrR(jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.addressesX-trRX#ipaddress.IPv4Network.max_prefixlenrR(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.max_prefixlenX-trRXdatetime.timedelta.resolutionrR(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.resolutionX-trRXdatetime.time.resolutionrR(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.time.resolutionX-trRXcsv.Dialect.skipinitialspacerR(jjXFhttp://docs.python.org/3/library/csv.html#csv.Dialect.skipinitialspaceX-trRXtarfile.TarInfo.typerR(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.typeX-trRX"ipaddress.IPv4Network.is_multicastrR(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_multicastX-trRX%ipaddress.IPv6Network.network_addressrR(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.network_addressX-trRX$unittest.TestLoader.testMethodPrefixrR(jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.testMethodPrefixX-trRXoptparse.Option.metavarrR(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.metavarX-trRXreprlib.Repr.maxotherrR(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxotherX-trSX__path__rS(jjX7http://docs.python.org/3/reference/import.html#__path__X-trSXsocket.socket.protorS(jjX@http://docs.python.org/3/library/socket.html#socket.socket.protoX-trSXxml.dom.DocumentType.systemIdrS(jjXKhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.systemIdX-trSXpickle.Pickler.dispatch_tablerS(jjXJhttp://docs.python.org/3/library/pickle.html#pickle.Pickler.dispatch_tableX-trSXmemoryview.objr S(jjX=http://docs.python.org/3/library/stdtypes.html#memoryview.objX-tr SXimaplib.IMAP4.debugr S(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.debugX-tr SXshlex.shlex.instreamr S(jjX@http://docs.python.org/3/library/shlex.html#shlex.shlex.instreamX-trSX1http.server.CGIHTTPRequestHandler.cgi_directoriesrS(jjXchttp://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler.cgi_directoriesX-trSXdoctest.DocTest.docstringrS(jjXGhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.docstringX-trSXfunctools.partial.argsrS(jjXFhttp://docs.python.org/3/library/functools.html#functools.partial.argsX-trSX!ipaddress.IPv6Network.is_loopbackrS(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_loopbackX-trSX uuid.UUID.intrS(jjX8http://docs.python.org/3/library/uuid.html#uuid.UUID.intX-trSXsubprocess.Popen.stdinrS(jjXGhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdinX-trSXmemoryview.stridesrS(jjXAhttp://docs.python.org/3/library/stdtypes.html#memoryview.stridesX-trSXzipfile.ZipInfo.external_attrrS(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.external_attrX-trSXipaddress.IPv4Address.versionrS(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.versionX-tr SX,email.headerregistry.MIMEVersionHeader.majorr!S(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.majorX-tr"SXtarfile.TarInfo.mtimer#S(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.mtimeX-tr$SXinspect.Signature.parametersr%S(jjXJhttp://docs.python.org/3/library/inspect.html#inspect.Signature.parametersX-tr&SXzipfile.ZipInfo.date_timer'S(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.date_timeX-tr(SXhttp.cookiejar.Cookie.pathr)S(jjXOhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.pathX-tr*SX0http.cookiejar.DefaultCookiePolicy.DomainLiberalr+S(jjXehttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainLiberalX-tr,SX&ipaddress.IPv6Interface.with_prefixlenr-S(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_prefixlenX-tr.SXmemoryview.contiguousr/S(jjXDhttp://docs.python.org/3/library/stdtypes.html#memoryview.contiguousX-tr0SXunittest.mock.Mock.call_argsr1S(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_argsX-tr2SX#ipaddress.IPv4Network.num_addressesr3S(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.num_addressesX-tr4SX__file__r5S(jjX7http://docs.python.org/3/reference/import.html#__file__X-tr6SXdoctest.Example.wantr7S(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.Example.wantX-tr8SX __cached__r9S(jjX9http://docs.python.org/3/reference/import.html#__cached__X-tr:SXurllib.request.Request.datar;S(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.dataX-trSXfilecmp.dircmp.common_dirsr?S(jjXHhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_dirsX-tr@SX'ipaddress.IPv6Network.broadcast_addressrAS(jjXWhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.broadcast_addressX-trBSXunittest.mock.Mock.method_callsrCS(jjXShttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.method_callsX-trDSX-importlib.machinery.SourcelessFileLoader.pathrES(jjX]http://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.pathX-trFSX%importlib.machinery.ModuleSpec.cachedrGS(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.cachedX-trHSX ipaddress.IPv4Network.compressedrIS(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.compressedX-trJSXselect.kevent.fflagsrKS(jjXAhttp://docs.python.org/3/library/select.html#select.kevent.fflagsX-trLSXxml.dom.Node.firstChildrMS(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.firstChildX-trNSXemail.policy.Policy.cte_typerOS(jjXOhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.cte_typeX-trPSXoptparse.Option.TYPESrQS(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.Option.TYPESX-trRSXctypes._FuncPtr.argtypesrSS(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.argtypesX-trTSXinspect.Parameter.defaultrUS(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.defaultX-trVSX#email.policy.Policy.raise_on_defectrWS(jjXVhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.raise_on_defectX-trXSXxml.dom.Node.namespaceURIrYS(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.namespaceURIX-trZSX&http.cookiejar.Cookie.domain_specifiedr[S(jjX[http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_specifiedX-tr\SXhttp.cookiejar.Cookie.commentr]S(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.commentX-tr^SX!ipaddress.IPv4Address.is_reservedr_S(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_reservedX-tr`SXipaddress.IPv4Network.hostmaskraS(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.hostmaskX-trbSXctypes._FuncPtr.errcheckrcS(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.errcheckX-trdSXpyclbr.Class.linenoreS(jjX@http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.linenoX-trfSXoptparse.Option.callbackrgS(jjXGhttp://docs.python.org/3/library/optparse.html#optparse.Option.callbackX-trhSX subprocess.STARTUPINFO.hStdErrorriS(jjXQhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdErrorX-trjSX)textwrap.TextWrapper.fix_sentence_endingsrkS(jjXXhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.fix_sentence_endingsX-trlSXcsv.Dialect.delimiterrmS(jjX?http://docs.python.org/3/library/csv.html#csv.Dialect.delimiterX-trnSXnetrc.netrc.hostsroS(jjX=http://docs.python.org/3/library/netrc.html#netrc.netrc.hostsX-trpSX#email.headerregistry.Address.domainrqS(jjX^http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.domainX-trrSXdatetime.datetime.yearrsS(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.yearX-trtSXxml.dom.Attr.prefixruS(jjXAhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.prefixX-trvSX-wsgiref.handlers.BaseHandler.wsgi_multithreadrwS(jjX[http://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_multithreadX-trxSX#textwrap.TextWrapper.initial_indentryS(jjXRhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.initial_indentX-trzSXssl.SSLContext.protocolr{S(jjXAhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.protocolX-tr|SX"xml.dom.ProcessingInstruction.datar}S(jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.ProcessingInstruction.dataX-tr~SXipaddress.IPv6Network.versionrS(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.versionX-trSX#asyncio.IncompleteReadError.partialrS(jjXXhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.IncompleteReadError.partialX-trSXast.AST._fieldsrS(jjX9http://docs.python.org/3/library/ast.html#ast.AST._fieldsX-trSX textwrap.TextWrapper.placeholderrS(jjXOhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.placeholderX-trSX__name__rS(jjX7http://docs.python.org/3/reference/import.html#__name__X-trSXuuid.UUID.versionrS(jjX<http://docs.python.org/3/library/uuid.html#uuid.UUID.versionX-trSX*wsgiref.handlers.BaseHandler.origin_serverrS(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.origin_serverX-trSXtracemalloc.Statistic.tracebackrS(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Statistic.tracebackX-trSX)asyncio.asyncio.subprocess.Process.stdoutrS(jjXbhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.stdoutX-trSXdatetime.datetime.hourrS(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.hourX-trSXemail.policy.Policy.lineseprS(jjXNhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.linesepX-trSXxml.dom.Node.nodeTyperS(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeTypeX-trSXsubprocess.TimeoutExpired.cmdrS(jjXNhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.cmdX-trSX#socketserver.BaseServer.socket_typerS(jjXVhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.socket_typeX-trSXipaddress.IPv4Interface.networkrS(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.networkX-trSXunittest.TestCase.longMessagerS(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.longMessageX-trSXdatetime.time.minrS(jjX@http://docs.python.org/3/library/datetime.html#datetime.time.minX-trSX3http.server.SimpleHTTPRequestHandler.server_versionrS(jjXehttp://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.server_versionX-trSXsmtpd.SMTPChannel.received_datarS(jjXKhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.received_dataX-trSXmultiprocessing.Process.authkeyrS(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.authkeyX-trSXselectors.SelectorKey.datarS(jjXJhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.dataX-trSXUnicodeError.endrS(jjXAhttp://docs.python.org/3/library/exceptions.html#UnicodeError.endX-trSXtracemalloc.Statistic.sizerS(jjXLhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Statistic.sizeX-trSX(unittest.TestLoader.sortTestMethodsUsingrS(jjXWhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.sortTestMethodsUsingX-trSXzipfile.ZipInfo.create_versionrS(jjXLhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.create_versionX-trSX&textwrap.TextWrapper.subsequent_indentrS(jjXUhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.subsequent_indentX-trSXreprlib.Repr.maxtuplerS(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxtupleX-trSX#xmlrpc.client.ProtocolError.errcoderS(jjXWhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.errcodeX-trSX%email.charset.Charset.header_encodingrS(jjXYhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.header_encodingX-trSXtypes.ModuleType.__loader__rS(jjXGhttp://docs.python.org/3/library/types.html#types.ModuleType.__loader__X-trSX#importlib.machinery.SOURCE_SUFFIXESrS(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.SOURCE_SUFFIXESX-trSX3http.cookiejar.DefaultCookiePolicy.strict_ns_domainrS(jjXhhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_domainX-trSXoptparse.Option.nargsrS(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.Option.nargsX-trSXshlex.shlex.infilerS(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.infileX-trSX ipaddress.IPv6Network.is_privaterS(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_privateX-trSX#http.cookiejar.CookiePolicy.rfc2965rS(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.rfc2965X-trSX#doctest.UnexpectedException.examplerS(jjXQhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.exampleX-trSXsubprocess.STARTUPINFO.dwFlagsrS(jjXOhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.dwFlagsX-trSXoptparse.Option.callback_kwargsrS(jjXNhttp://docs.python.org/3/library/optparse.html#optparse.Option.callback_kwargsX-trSXdatetime.time.secondrS(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.secondX-trSXxml.dom.Node.lastChildrS(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.lastChildX-trSX*xml.parsers.expat.xmlparser.ErrorByteIndexrS(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorByteIndexX-trSXlogging.Logger.propagaterS(jjXFhttp://docs.python.org/3/library/logging.html#logging.Logger.propagateX-trSX#tracemalloc.StatisticDiff.tracebackrS(jjXUhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.tracebackX-trSXmultiprocessing.Process.namerS(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.nameX-trSXweakref.finalize.aliverS(jjXDhttp://docs.python.org/3/library/weakref.html#weakref.finalize.aliveX-trSXpickle.Pickler.fastrS(jjX@http://docs.python.org/3/library/pickle.html#pickle.Pickler.fastX-trSXzipfile.ZipInfo.extract_versionrS(jjXMhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.extract_versionX-trSX"ipaddress.IPv6Network.with_netmaskrS(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_netmaskX-trSXshlex.shlex.commentersrS(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.commentersX-trSXdatetime.datetime.tzinforS(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.tzinfoX-trSXmultiprocessing.Process.pidrS(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.pidX-trSX!subprocess.CalledProcessError.cmdrS(jjXRhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.cmdX-trSXtarfile.TarInfo.uidrS(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.uidX-trSX0email.headerregistry.ContentTransferEncoding.cterS(jjXkhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTransferEncoding.cteX-trSXfilecmp.dircmp.common_funnyrS(jjXIhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_funnyX-trSXssl.SSLContext.verify_flagsrS(jjXEhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.verify_flagsX-trSX9importlib.machinery.ModuleSpec.submodule_search_locationsrS(jjXihttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.submodule_search_locationsX-trSXcmd.Cmd.doc_headerrS(jjX<http://docs.python.org/3/library/cmd.html#cmd.Cmd.doc_headerX-trSXsmtpd.SMTPChannel.addrrS(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.addrX-trSX%ipaddress.IPv6Interface.with_hostmaskrS(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_hostmaskX-trSXxml.dom.Node.localNamerS(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.localNameX-trSXfilecmp.dircmp.left_listrS(jjXFhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.left_listX-trSXmultiprocessing.Process.daemonrS(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.daemonX-trSXclass.__name__rS(jjX=http://docs.python.org/3/library/stdtypes.html#class.__name__X-trTX(http.cookiejar.Cookie.domain_initial_dotrT(jjX]http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_initial_dotX-trTX'email.policy.EmailPolicy.header_factoryrT(jjXZhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_factoryX-trTXdatetime.datetime.minrT(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.minX-trTXreprlib.Repr.maxdictrT(jjXBhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxdictX-trTXfilecmp.dircmp.funny_filesr T(jjXHhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.funny_filesX-tr TX!mimetypes.MimeTypes.types_map_invr T(jjXQhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_map_invX-tr TXshlex.shlex.escaper T(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.escapeX-trTX'email.headerregistry.BaseHeader.defectsrT(jjXbhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.defectsX-trTXmemoryview.f_contiguousrT(jjXFhttp://docs.python.org/3/library/stdtypes.html#memoryview.f_contiguousX-trTX+importlib.machinery.DEBUG_BYTECODE_SUFFIXESrT(jjX[http://docs.python.org/3/library/importlib.html#importlib.machinery.DEBUG_BYTECODE_SUFFIXESX-trTX$ipaddress.IPv4Network.with_prefixlenrT(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_prefixlenX-trTX(http.cookiejar.CookiePolicy.hide_cookie2rT(jjX]http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.hide_cookie2X-trTX0http.cookiejar.DefaultCookiePolicy.strict_domainrT(jjXehttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_domainX-trTXthreading.Thread.namerT(jjXEhttp://docs.python.org/3/library/threading.html#threading.Thread.nameX-trTX nntplib.NNTP.nntp_implementationrT(jjXNhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nntp_implementationX-trTX$xml.dom.ProcessingInstruction.targetrT(jjXRhttp://docs.python.org/3/library/xml.dom.html#xml.dom.ProcessingInstruction.targetX-tr TX,http.server.BaseHTTPRequestHandler.responsesr!T(jjX^http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.responsesX-tr"TXzipfile.ZipInfo.flag_bitsr#T(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.flag_bitsX-tr$TXdatetime.datetime.monthr%T(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.datetime.monthX-tr&TX$ipaddress.IPv4Network.is_unspecifiedr'T(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_unspecifiedX-tr(TXurllib.request.Request.hostr)T(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.hostX-tr*TX#tracemalloc.StatisticDiff.size_diffr+T(jjXUhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.size_diffX-tr,TXre.match.lastindexr-T(jjX;http://docs.python.org/3/library/re.html#re.match.lastindexX-tr.TX)email.headerregistry.AddressHeader.groupsr/T(jjXdhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeader.groupsX-tr0TX7http.server.BaseHTTPRequestHandler.error_message_formatr1T(jjXihttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_message_formatX-tr2TX)asyncio.asyncio.subprocess.Process.stderrr3T(jjXbhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.stderrX-tr4TX)http.server.BaseHTTPRequestHandler.serverr5T(jjX[http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.serverX-tr6TX.xml.parsers.expat.xmlparser.ordered_attributesr7T(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ordered_attributesX-tr8TX5http.cookiejar.DefaultCookiePolicy.DomainRFC2965Matchr9T(jjXjhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainRFC2965MatchX-tr:TX3http.server.BaseHTTPRequestHandler.protocol_versionr;T(jjXehttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.protocol_versionX-trhttp://docs.python.org/3/library/pyclbr.html#pyclbr.Class.nameX-tr>TXtarfile.TarInfo.gidr?T(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gidX-tr@TXipaddress.IPv4Network.explodedrAT(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.explodedX-trBTX5http.cookiejar.DefaultCookiePolicy.strict_ns_set_pathrCT(jjXjhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_pathX-trDTXsqlite3.Cursor.rowcountrET(jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.rowcountX-trFTXipaddress.IPv6Address.sixtofourrGT(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.sixtofourX-trHTXconfigparser.BOOLEAN_STATESrIT(jjXNhttp://docs.python.org/3/library/configparser.html#configparser.BOOLEAN_STATESX-trJTXzlib.Decompress.unused_datarKT(jjXFhttp://docs.python.org/3/library/zlib.html#zlib.Decompress.unused_dataX-trLTX%xml.etree.ElementTree.ParseError.coderMT(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseError.codeX-trNTX/http.server.BaseHTTPRequestHandler.MessageClassrOT(jjXahttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.MessageClassX-trPTXselect.epoll.closedrQT(jjX@http://docs.python.org/3/library/select.html#select.epoll.closedX-trRTXoptparse.Option.actionrST(jjXEhttp://docs.python.org/3/library/optparse.html#optparse.Option.actionX-trTTXoptparse.Option.constrUT(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.Option.constX-trVTXimportlib.abc.FileLoader.pathrWT(jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.pathX-trXTX"collections.somenamedtuple._sourcerYT(jjXThttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._sourceX-trZTXselect.kevent.flagsr[T(jjX@http://docs.python.org/3/library/select.html#select.kevent.flagsX-tr\TX$email.headerregistry.BaseHeader.namer]T(jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.nameX-tr^TXdatetime.date.yearr_T(jjXAhttp://docs.python.org/3/library/datetime.html#datetime.date.yearX-tr`TXzipfile.ZipInfo.CRCraT(jjXAhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.CRCX-trbTXlzma.LZMADecompressor.checkrcT(jjXFhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.checkX-trdTuuUsrcdirreTX1/var/build/user_builds/simpy/checkouts/3.0.4/docsrfTUconfigrgTcsphinx.config Config rhT)riT}rjT(U html_contextrkT}rlT(Ubitbucket_versionU3.0.4rmTU using_themeU html_themernTUsphinx_rtd_themeroTUcurrent_versionrpTjmTU canonical_urlUUPRODUCTION_DOMAINUreadthedocs.orgU github_userUNonerqTU new_themeUanalytics_codeUUsingle_versionUdisplay_githubU downloads]U READTHEDOCSU conf_py_pathU/docs/U github_repojqTU rtd_languageXenUbitbucket_repoUsimpyrrTUslugrsTjrTUapi_hostUhttps://readthedocs.orgUbitbucket_userjrTUnamertTXSimPyruTUversions]rvT(UlatestU /en/latest/rwTjmTU /en/3.0.4/rxTU3.0.3U /en/3.0.3/ryTU3.0.2U /en/3.0.2/rzTU3.0.1U /en/3.0.1/r{TU3.0U/en/3.0/r|TU2.3.1U /en/2.3.1/r}TeUgithub_versionjmTUdisplay_bitbucketUTruer~TU MEDIA_URLrTUhttps://media.readthedocs.org/uUpygments_stylerTUfriendlyrTUhtmlhelp_basenamerTUSimPydocjnTjoTUautodoc_member_orderrTUbysourcerTU master_docrTUcontentsrTU source_suffixrTU.rstU copyrightrTU2002-2014, Team SimPyUexclude_patternsrT]rTU_buildrTajU3.0U man_pagesrT]rT(UindexrTjrTXSimPy DocumentationrT]rTU Team SimPyrTaKtrTaU html_stylerTNUhtml_theme_optionsrT}Utemplates_pathrT]rT(UA/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinxrTU _templatesrTeUlatex_documentsrT]rT(jTU SimPy.texjTjTUmanualrTtrTaU html_faviconrTU_static/favicon.icoUhtml_static_pathrT]rT(U_staticrTUI/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinx/_staticrTeUhtml_theme_pathrT]rT(U_themesrTjTeUintersphinx_mappingrT}rTUhttp://docs.python.org/3/rTNsUlanguagerTXenrTUhtml_additional_pagesrT}rTjTU index.htmlsU overridesrT}rTjTjTsUprojectrTjuTU html_logorTU_static/simpy-logo-small.pngU extensionsrT]rT(Usphinx.ext.autodocrTUsphinx.ext.doctestrTUsphinx.ext.intersphinxrTUreadthedocs_ext.readthedocsrTeUreleaserTU3.0.4rTUsetuprTNubUintersphinx_cacherT}rTjTNJWCS}rT(j}rT(jjjjjjjjjjjjj j j jjjjjjjjY jZ jjjjjjjjjjjjjjjjjjjjjjjjjj jjj#j$j%j&j'j(jjjjjjjjjjjjjjj j jjjjj+j,j-j.j j j jj/j0j1j2j3j4jjjjj5j6j7j8j9j:jojpj;j<j=j>jjjj j% j& j!j"jAjBjIjJjCjDjEjFjjj'j(jG jH jGjHj)j*jIjJj#j$j+j,jOjPj/j0jQjRj1j2jSjTjjj j jUjVjWjXjjj7j8jYjZj9j:j j j=j>j_j`jajbj?j@jcjdjCjDjejfjjjEjFjGjHjIjJjKjLj j jMjNjjjijjjOjPjQjRj=j>jSjTj-j.jmjnjWjXjYjZj[j\jojpj]j^jqjrj_j`jajbjsjtjujvjcjdj j jwjxjejfjjjgjhjyjzjijjjjjkjlj}j~jjjmjnjjjojpjqjrjjj' j( jjjsjtjjj j jujvjjjwjxjjjjjs jt jjjjjjj{j|j}j~jjj7j8jjjajbjjjjjjjjj3j4jjjjjjjjjjjjjjjjjjj9 j: jjjjjjjjjjjjjjjjjc jd jjjjjjjjjjjjjjjjj)j*jjjjjjjjjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjjjjjjjj j jjjjj j jjjjj j j j jjjjj)j*jjjjjjjjjjjjjjjjjjjjjjjEjFjjjjjjjjjjjjjjjjjjjjjjjjjjjjjMjNjj j j jjjjjjjjjjj j j j j j j j j j jjjjj j j j j j j j jjjjjA jB jK jL jsjtjjjjjjjjjwjxj j j j j j jjjjjjj j j! j" j# j$ j% j& j j j jjjjjj) j* jjj j jjjjj- j. jjjjj/ j0 j1 j2 jjjjjj j5 j6 jjj#j$j7 j8 j%j&j; j< j'j(j= j> j)j*j? j@ jjj+j,j-j.jK jL jC jD jG jH j/j0jjjI jJ j3j4j5j6j7j8jK jL j;j<jM jN jO jP j?j@j#j$jCjDjQ jR jjjGjHjIjJjS jT jU jV js jt j7 j8 jjjW jX jY jZ j j j j j[ j\ jOjPjQjRj] j^ jSjTjjjWjXjjjY jZ jYjZj[j\je jf jg jh j_j`jajbjcjdji jj jejfjjjk jl jm jn jkjljmjnjojpj j jq jr jqjrjsjtj]j^js jt j j jwjxjw jx j{j|j}j~jy jz jjj{ j| jjj} j~ j j j j jjj-j.jgjhj j j j jjj j jjjjj j j j j j j j jjjjj j jjjjj j jjj j jjj j j- j. jijjjjjjjjjjj j j j jjj j j j jjj j j j jjjjjjj;j<jjjjjjj j j j jjj j jjjjjUjVjjjjjjj j jjj j j j j j j j jjjjj j j j j j j j jyjzjjjjj j jjj j j j j j j[j\jjjjj j jy jz j j j1j2jjj]j^jjj j jUjVjjj] j^ j j j j j j j j je jf jjjgjhjjjjj j jjjjjjj j jujvjjj j j j j j j j j j j j j j jjjjjjj j jjjjj j jjj?j@jjjjj j jjjjjjj j jjj j j j jjjjjyjzj j j j j j j j j j j j j j ju jv j j j j j# j$ jw jx j% j& j jjjjjj+ j, j{ j| j j jjj=j>j{ j| jjjjjjjg jh j/ j0 jjj1 j2 j3 j4 j j j j j7 j8 jjjw jx jjj!j"jjjjj j j#j$j%j&j? j@ j'j(jA jB j)j*j j jC jD jE jF jG jH jI jJ jK jL jM jN j!j"j/j0jO jP jQ jR jS jT jU jV jW jX j3j4j%j&j5j6j] j^ jjj_ j` jjj j ja jb j j j9j:j;j<je jf j?j@jAjBjCjDj9 j: jEjFjk jl jkjljGjHjjjo jp jq jr jIjJjKjLjMjNjjjOjPjQjRjjjSjTjy jz jUjVj j jWjXj j j[j\j]j^j_j`j j j j jjjajbjcjdj j jejfjgjhjijjjkjljmjnjjj= j> jojpjqjrj j j j jsjtj j j j jjjwjxj j jyjzj j j j jjjjj j jjjjj j jjjjj j jjj j jjj j j j j j jjjjjjjjjjjjj j j j j j j j j j j j j j jjj j j%j&jjjjj j jjj j j j jjj j j j jjjjjjjjj j j j jjjjjjjjjjj j j j jjj j j j j j j5 j6 jjj j j j j j jjjjjjj j j j jjjjj! j" jjj j j j j{j|j j jjjjj j jjj j jjj j jjjj j1j2jM jN j j j j jjj j j j jU jV j j jjjjj j jjj j jjjjj{j|jjjjjjjjjjjjj j j j jjjjjjjjjjj j jjj j jjj j jjjjj5j6jUjVj j j jjjj j j j j j jjj j jjjjjjj j j j ja jb jjjjjjj# j$ jmjnjjjj j j j% j& j' j( j#j$jjj) j* j%j&j'j(j)j*j+j,j- j. j/ j0 j1 j2 j j jjj/j0j9j:j1j2jjj9 j: j5j6j; j< j7j8j= j> j9j:j;j<jjj=j>jjjA jB j j jAjBjCjDjEjFjGjHjE jF jKjLja jb jI jJ jjjQjRjAjBjSjTjO jP jQ jR jWjXjYjZj j j[j\jujvj j j_j`jW jX jcjdjY jZ jejfjjjgjhjijjj j jkjlj!j"j[ j\ j j jjj!j"j j jjjojpj9 j: j] j^ j_ j` jqjrja jb jc jd je jf jjjujvji jj jyjzjk jl jm jn jo jp j{j|jjjq jr jc jd j_ j` jKjLju jv jw jx jy jz jjjjjjjjjjjjjjj j j j j j jjj j j j j j jjjjj j jjjjjjj j jjj j j j j j j j jjjjj j jjjjjjj j jjj j j j j j jEjFji jj j j j j jjjjj j j j j j jjj j j j j j jjj j jYjZj j jjjjjjj}j~jjj j jjj j j j j j jjj j j j jjjjj j jjj j jjjjjjj j j j j j j j jAjBj j jMjNj j j?j@j j jOjPj j j]j^j j jjjjjS jT jjjq jr jjj}j~j j j j jjjjjgjhjjj j j j jjj j j j jjjjjo jp jjj j jjj j j j jMjNj j jjj j u(j{ j| j+j,j j j j j j j{j|j-j.jg jh j j j j jKjLjjjjjjjjj j jjjjj j jjj j jjj j jjj j jjj j jjjjjjj j jjj+ j, jjj j j j j j jjjjj j j j jjj j j! j" jjj j jE jF jjj j j j jjjjj j j! j" j# j$ j!j"jj j) j* j' j( j) j* j'j(jjj+ j, j[ j\ j+j,j/ j0 j1 j2 j j j/j0j3 j4 j1j2j3j4j5j6jjj7 j8 j9j:j;j<jjj; j< j=j>j= j> j?j@jAjBj? j@ jA jB jC jD jGjHjIjJjKjLjMjNjG jH jI jJ jjjOjPjQjRjM jN jO jP jSjTjUjVjS jT jU jV jWjXjW jX jYjZj[j\jjjjjjj]j^j7j8jajbj[ j\ jcjdjc jd jjjejfjjj j j j j j j j jkjljmjnj j j j j j j j jqjrjsjtjg jh ji jj jwjxjyjzjjjk jl jm jn jo jp j j jjj}j~jQ jR j+ j, j- j. j j j j jjj j j-j.j; j< jjj j jjj j j j j j jjju jv j} j~ jjjjj j jjj j j3 j4 j j jjjjjjj j jjjjjjjjjjj j j j jjjjjjjjj j j3 j4 j j jjj j j5 j6 jjjjj j jm jn j j jjjjj j j j j j jjj j j j j j j j jjjjjjjjjjj_j`j3j4jjj j jjjC jD jjjjj j j j j j jjjjj j j j jjjjj jjjj} j~ jjj j jjj' j( js jt jCjDj j jjj j jjju jv jjjjjjj5 j6 jjj j jujvjjj j jijjjjj_ j` j j jE jF j j j} j~ j? j@ j j jjj j jjjjjjjjj j jjjjjjjjj j jjjjjjj j jjj j uj }rT(j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j' j( j j j! j" j j j) j* j+ j, j1 j2 j3 j4 j5 j6 j7 j8 j9 j: j? j@ jA jB jC jD jI jJ jK jL jO jP jQ jR jS jT j] j^ ja jb je jf jg jh ji jj jm jn jq jr js jt j{ j| j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jy jz j j j# j$ j% j& j- j. j/ j0 j; j< jE jF jG jH jM jN j} j~ j j jU jV jY jZ j[ j\ j_ j` j= j> jc jd jk jl j j ju jv jw jx jo jp jW jX uj }rT(j j j j j{j|j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jEjFj j jjj j j j j j j j j j jjj j j j j j j j j j j j j j j j j j j j j'j(j j jjj j j j j j j j j j j j j j j j j j jjj j j j j j j j j j j j j j j jjjjjjjjjj j j j j jjjjjjjjjjjjjjjjj jYjZj#j$j'j(jjj+j,j-j.j/j0j1j2j3j4jjjajbj7j8j9j:j;j<j=j>j?j@jAjBjCjDj j jGjHjIjJjKjLjMjNjOjPjQjRj7j8jSjTjUjVjWjXj!j"j[j\j]j^j_j`j5j6jcjdj[j\jgjhjijjjkjljmjnjojpjqjrjsjtjjjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjjjj j%j&j#j$j%j&jUjVj)j*j+j,j-j.j/j0j1j2j]j^j5j6j7j8j9j:j;j<j?j@jAjBjjjjj-j.jGjHjjjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjjjYjZj/j0j3j4j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjjj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjj=j>jjjjjjjjjjjjjjjjjjj j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjjjjjjjjjj/j0jjjjjjjjjjjjj j jjjjj1j2jjjjjjjjjjjjjjjjj j jjjjjjjSjTjjjUjVjjjWjXjjjjjj j!j"j#j$j!j"j'j(j)j*j+j,jjj[j\j1j2j3j4j5j6j7j8j9j:j;j<jjj?j@jAjBjCjDjEjFjGjHjIjJjKjLjOjPjAjBjjjjjjjYjZj[j\j]j^j_j`jajbjcjdj j jejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYjZj j jjjjjjjjjjjjjjjjjjjjj)j*jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj)j*jjjjjjjjjCjDjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,jojpjjjjjjj3j4j5j6j j j9j:j;j<j=j>j?j@jujvjQjRjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjWjXjjjjj_j`jajbjejfjgjhjijjjkjljmjnj-j.jqjrjsjtjujvjwjxjyjzj{j|j}j~jjj j jjjjjAjBjjjjjjj9j:jjjjjjjjjgjhjjjjjcjdjjjjjjjEjFj j jjjjjjjjjjj j jjjjjejfjjjjjjjjj=j>jjjjjjjjjjj jjjjjjjjjjjjjjjjjjjjjj%j&jjjjjWjXjjjjjYjZjjjjjjjjjjjjjjjjj[j\j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j_j`j'j(jjj+j,jajbj/j0j1j2j3j4j5j6j7j8j]j^j;j<j=j>j?j@jjjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjjjjjMjNj]j^j%j&j-j.jcjdjejfjijjjkjlujm}rT(jojpjqjrjsjtjujvjjjwjxjjjjj}j~jjjjjjjjjjjjj{j|jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjyjzjjjjjjuj}rT(jjjjjjjjj j j jjjjjjjjjjjjjjjjjjjjMjNjjjjjjjjjjjj j!j"j#j$jjj'j(jjj+j,j-j.jjjjjjjjjjjjj3j4j5j6j7j8jjjjjjj j jjjjj;j<jjjjj?j@jjjAjBjjjjjCjDjjjjjjjjjEjFjjjjj j jjjIjJjjj9j:jyjzjGjHj1j2jjjKjLjjjjjMjNjjjOjPjjjQjRjSjTjjjj j!j"jUjVjQjRjjjYjZjjj[j\j]j^j'j(j_j`jjjjj+j,j-j.jWjXj/j0jajbjjjjjgjhj1j2j3j4jjj5j6jkjljjj9j:j;j<j=j>j?j@jjjAjBjCjDjEjFjGjHjIjJjKjLjsjtjujvjwjxjjj jj{j|jSjTjjjUjVjjjjjjj[j\jYjZj]j^jjjyjzj)j*j_j`jajbjjjcjdjjjjjjjijjjjjjjjj;j<jjjjjkjlj#j$jmjnj/j0jojpjqjrjjjsjtjujvjjjjjqjrjjjwjxjjjjjjjjj)j*j{j|j}j~jjjjjjjjjjjjjjjjjjjjj'j(jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjcjdjjjjjjj%j&jjjjjjjjjWjXjgjhjjjjjjjjjjjjjjjjjjjijjjjj)j*jjjjjjjjjOjPjjjjjjjjjjjjjjjjjjjjjjjjjjj=j>jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjj jjjjjj j jjjjj7j8jejfjjjjjjjjjjjjj}j~jjjjjejfjjj!j"jjjojpjjj#j$j%j&jjjjjjjjjjj3j4jjjjjjjjjjjjj+j,jjj%j&j-j.jjjjjjj1j2jjjjjjj5j6j7j8jmjnj9j:j/j0j=j>uj?}rT(jAjBjCjDjEjFjKjLj_j`jSjTj[j\jajbjcjdjgjhjkjljmjnjGjHjIjJjOjPjUjVjWjXjYjZj]j^jMjNjQjRjejfjijjujo}rT(jqjrjwjxjyjzjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj%j&jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjjjj jjj'j(j+j,j/j0j3j4j9j:jsjtjujvj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj#j$jjjjjjjjjjjjjjjjjjjjjjjjjjj!j"jjj)j*j-j.j5j6j7j8j1j2j;j<uj=}rT(j?j@jojpjQjRjCjDjEjFjGjHjIjJjKjLjejfjOjPjAjBjSjTjsjtjWjXjYjZj[j\j]j^j_j`jUjVjajbjcjdjMjNjgjhjkjljmjnjjjqjrjjjujvjwjxjyjzj{j|jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjijjj}j~jjuj}rT(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}rT(jjj j jjjjjjj j X!jjjjjj1j2jjj7j8jjj jjj jjjjjjjjjjjjjjjjj!j"j#j$j%j&j'j(j)j*j+j,j/j0Xpjj3j4j5j6j-j.uj9}rT(j;j<j=j>jgjhjAjBjCjDjEjFjjjIjJjKjLjMjNjOjPjQjRjejfjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjUjVjejfj?j@jijjjsjtjmjnjojpjqjrjkjljujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjGjHjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j7j8j1j2j3j4j5j6j_j`j9j:j;j<j=j>j?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjcjdjWjXjYjZj[j\j]j^jajbjcjdjjjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjuj}rT(jjjjj!j"jjjjjjjjjjjjjjjjjjj j j%j&jjjjjjjjjjjjjsjtjjjjjjjjjjjjjjjjjjjjjjjjj{j|jjjjjjjjjjjjjjjjj=j>jjjjjjjjjjj7j8jjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,j-j.jjj1j2j3j4j5j6jjj9j:j;j<j'j(jAjBjCjDjEjFjGjHjIjJjKjLjjjMjNjQjRjSjTjUjVjWjXj/j0j[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjjjujvj5j6jjjjjjj}j~jjjjjjjjjjjjjjj]j^jjjjjjjjjjjyjzjjjjjjjjjjjjjjjjjjjjjjjCjDjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjwjxjOjPjjjjjjjjjjjjjjjjjjj=j>jjjjjjjjjjjjj7j8jjjjjjjjj j j jjjjjjjjjjjjjjjjjjj jjj#j$jjj?j@j)j*j+j,j-j.jYjZj1j2j3j4jjjOjPj9j:j;j<j/j0j?j@jAjBjjjEjFjGjHjIjJjKjLjMjNjjjQjRjSjTjUjVjWjXjYjZj[j\jjj_j`jajbjcjdjejfujg}rT(jijjjkjljmjnujo}rT(jqjrjsjtjjjwjxjyjzj{j|jjj}j~jujvjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}rT(jY%jZ%jjjjjjjjjjj(j(jjjjj!j!jjjjjjj#j #jjjjjjjjjjjMjNj_%j`%jjjjjjj{)j|)jjjjj j j j j jj(j(jjjjj-j-jjjjjjjjjjjj j!j"j#j$j%j&j'j(j+j,j-j.j/j0j1j2jg%jh%j5j6j7j8j9j:j!j!j=j>jAjBjm%jn%jEjFjQ$jR$jGjHjIjJjKjLjMjNjOjPjQjRjUjVjo%jp%jYjZj[j\j]j^jq%jr%jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjj,j,jjjejfjjjjjjjjjjjjj,j,jjjjj "j "jjjjjjjjjjjjjjjjjjjjjjj,j,jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj/j/jjjjjjjjjjj)(j*(j{j|jjjjjjjjjjjjj"j"jjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j%j%j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j"j "jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjcjdjgjhjijjjkjljmjnjojpj/j/jqjrjujvjwjxjyjzj{j|j}j~jjjjjjj'"j("jjjjjjjjjjjjjjjjj)"j*"jjjjj%j%jjjjjjjjjjjjjjjjj-"j."jjjjj,j,jjjjjjjjjjjjjjjjjjjjjjjjjjjM)jN)jjjjjjjjjjjjjO)jP)jjjjjjjjjjjjj.j.jjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjjjj%j%jjjj j!j"j#j$j-j-j%j&j'j(j)j*j+j,j!j!j-j-j1j2j_)j`)j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjDj-j-jGjHjIjJjKjLj%j%jOjPjQjRjSjTjUjVjjjYjZj[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj'0j(0jjjjjjjjjjjjjjjjjjjjj/j/jjjjj-j-j-j-jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj]"j^"jjjjjjjjjjj j j jjjjjjjjjjjjjjjj%j%jj jjj#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jjje"jf"jEjFjGjHjIjJjKjLjjjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^jjjajbjcjdjjj!j!j)j)jijjjkjlj1-j2-jqjrjq"jr"jujvjwjxjyjzjjj}j~jjjjjjjjjjjjj%j%jjjjjjj{"j|"jjjjjjjjjjjjjjjjjjjjjjjjjjj jjjjjj)j)jjjjjjjWjXjjjjjjjjjjjjjjj%j%jjjE-jF-jjjjjjjjj j jjjjjjjjjjj!j"jjjjjAjBjjj_j`j'j'jjj)j)jjj"j"jjjjj%j%jjj!j!jjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j)j)j5j6j7j8j9j:j;j<j=j>j?j@j"j"jAjBjCjDjEjFjGjHj"j"jKjLji%jj%jMjNjOjPjQjRj"j"jUjVjWjXjYjZj[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjj/*j0*jjjjjjjjjjjjjjjjjjj#j#jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"j"jjjjjjjjjjjjjjjjj"j"jjjjjjjjjjj)j)j%j%jjjj j j j j j j j j j"j"j}-j~-j)j)j j j j j j j j j j j j j j j j j j j! j" j# j$ j% j& j' j( j) j* j+ j, j- j. j/ j0 j1 j2 j3 j4 j5 j6 j9 j: j)j)j= j> j? j@ jC jD jE jF jG jH jI jJ j*j*jK jL jM jN jO jP jQ jR jS jT jU jV jW jX jY jZ j[ j\ j[&j\&j] j^ j_ j` ja jb jc jd je jf jg jh jk jl j,j,jm jn jo jp js jt ju jv jw jx jy jz j{ j| j} j~ j j j j j j j j j'j'j j j j j j j j jI"jJ"j j j j j j j j j j j j j j j j j j j j j j j j j)j)j j j j j j j j j!j!j j j j jw)jx)j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j!j!j!j!j!j!j!jE&jF&j !j !j !j!j!j!j+j+j!j!j!j!j!j!j!j!j!j!j!j!j!j !j!!j"!j#!j$!j%!j&!j'!j(!j+!j,!j/!j0!j1!j2!j3!j4!j5!j6!j7!j8!j9!j:!j;!j!j?!j@!jA!jB!jC!jD!jE!jF!jG!jH!jI!jJ!jK!jL!jM!jN!jO!jP!jQ!jR!jS!jT!jU!jV!jW!jX!jY!jZ!j[!j\!j]!j^!j_!j`!j"j"jc!jd!je!jf!jg!jh!j-j-jk!jl!jm!jn!jo!jp!jq!jr!js!jt!ju!jv!jy!jz!j{!j|!j}!j~!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j.j.j!j!j!j!j.j.j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j/$j0$j!j!j!j!j!j!j-j-j!j!j!j!j!j!j"j"j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j"j"j!j!j!j!jjj!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j;j<j!j!j?j@j!j!j!j!j!j"j"j"j"j"j"j"j"j"j)j)j "j "jjj "j"j"j"j"j"j"j"j"j"j"j"jjj&j&j%*j&*j?j@j!"j""j#"j$"j%"j&"jjjjj+"j,"jjj/"j0"j1"j2"j3"j4"j5"j6"j7"j8"j9"j:"j;"j<"j(j(j="j>"j?"j@"jA"jB"jC"jD"jk&jl&jG"jH"j$j$j#j#jM"jN"jO"jP"jQ"jR"jS"jT"jU"jV"jW"jX"jY"jZ"j#j#jjjw&jx&ja"jb"jc"jd"j #j #jCjDjg"jh"ji"jj"jk"jl"jm"jn"j#j#jsjtjs"jt"ju"jv"j#j#jy"jz"jjj}"j~"j"j"j"j"jjj"j"j"j"jo)jp)j"j"j"j"jIjJj%j%jSjTj"j"j"j"j j j.j.jju(j"j"j-j-j"j"j"j"j"j"j"j"j"j"j"j"j#j#j"j"jjj"j"j"j"j j j#j#jI*jJ*j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j&j&j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"jsjtj"j"ja!jb!j"j"j-j-j"j"j"j"j"j"j!j!j!j!j"j"j"j"j"j"j"j"j"j"j9.j:.j#j#j#j#j["j\"j #j #j-j-j #j#jo"jp"jw"jx"j#j#j#j#j"j"j-j-j#j#j#j#ju)jv)j!#j"#j##j$#j%#j&#j'#j(#j)#j*#j+#j,#j-#j.#j/#j0#j1#j2#j3#j4#j5#j6#j-j.j7#j8#j9#j:#j;#j<#j=#j>#j?#j@#jA#jB#jC#jD#jE#jF#jG#jH#jI#jJ#jK#jL#jM#jN#j&j&jQ#jR#jS#jT#jU#jV#jY#jZ#j[#j\#j_#j`#ja#jb#jc#jd#je#jf#jg#jh#ji#jj#jk#jl#jm#jn#jo#jp#j&j&js#jt#ju#jv#jy#jz#j{#j|#j}#j~#j#j#j#j#j#j#jk*jl*j'j'j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j.j.j#j#j#j#j#j#j#j#j#j#j#j#jo*jp*j#j#j#j#j#j#j#j#j#j#j#j#j#j#j&j&j#j#j#j#j&j&j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#jW(jX(j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j*j*j#j$j$j$j$j$j&j&j$j$j$j$j/+j0+j $j $j $j $j*j*j$j$j$j$j$j$j$j$j$j$j$j$jc(jd(j$j$jW'jX'j$j$j!$j"$j#$j$$j%$j&$j)$j*$j+$j,$j-$j.$j+j+j1$j2$j3$j4$j7$j8$j)j)j9$j:$j;$j<$j=$j>$j?$j@$jA$jB$jC$jD$jE$jF$jG$jH$jI$jJ$jK$jL$jM$jN$jO$jP$j)j)jS$jT$jU$jV$jW$jX$jY$jZ$j&j&j]$j^$j['j\'j_$j`$ja$jb$j+.j,.jg$jh$ji$jj$jk$jl$jm$jn$jo$jp$jq$jr$js$jt$ju$jv$jw$jx$j&j&j(j(jy$jz$j{$j|$j}$j~$j$j$j$j$j$j$j+j+j;+j<+j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j&j&j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j=.j>.j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j%j .j.j%j%j%j%j%j%j %j %j %j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j#(j$(j%j %j!%j"%j#%j$%j%%j&%j'%j(%j)%j*%j+%j,%j-%j.%j/%j0%j1%j2%j3%j4%j5%j6%j7%j8%j9%j:%j;%j<%j=%j>%j?%j@%jA%jB%jC%jD%jE%jF%j*j*jI%jJ%jK%jL%jM%jN%jG)jH)jQ%jR%jS%jT%jU%jV%jW%jX%j-j-jjj'j'ja.jb.j]%j^%jjja%jb%jc%jd%je%jf%j*j*j3j4j/j0jk%jl%jCjDjWjXj_j`js%jt%ju%jv%jw%jx%jy%jz%j{%j|%j}%j~%j%j%j&j&j%j%j%j%j%j%j!j"j%j%j%j%j*j*j%j%j%j%j%j%j%j%jjj%j%j%j%j*j*j*j*j%j%j%j%j%j%jjj%j%j%j%j%j%j%j%jMjNj%j%j%j%j%j%j%j%jc$jd$j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%jjj%j%j%j%j%j%j%j%j%j%jjj%j%j%j%j%j%j5$j6$j%j%j%j%jjj%j%j;*j<*j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j&j&j&j&j&j&j&j &j &j &j &j &j&j&j&j&j&j&j&j*j*j&j&j&j&j&j&j&j&j&j &j!&j"&j.j.j#'j$'j'&j(&j)&j*&j+&j,&j-&j.&j/&j0&j1&j2&j*j*j5&j6&j7&j8&j9&j:&j)j)j;&j<&j=&j>&j.j.jA&jB&jC&jD&j !j !jG&jH&jI&jJ&jK&jL&jM&jN&jO&jP&jQ&jR&jS&jT&jU&jV&jW&jX&jY&jZ&j'j'j]&j^&j_&j`&ja&jb&jc&jd&je&jf&jg&jh&j,j,ji&jj&jE"jF"jm&jn&jo&jp&jq&jr&js&jt&ju&jv&j_"j`"jy&jz&j{&j|&j}&j~&j&j&j&j&j&j&j&j&j&j&j&j&j"j"j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&jw!jx!jO#jP#j&j&j&j&j&j&j&j&jq#jr#j&j&j&j&j#j#j#j#j&j&j&j&j&j&j&j&j&j&jjj&j&j$j $j&j&j.j.j&j&j&j&j&j&j[$j\$j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j$j$j&j&j&j&j&j&j&j&j&j&j&j&jjj&j&j&j&j&j&j&j&j&j&j&j&j&j'j'j'j.j.j'j'j'j'j 'j 'j 'j 'j 'j'j'j'j'j'j'j'j'j'j%(j&(j'j'j'j'j'j'j'j 'j!'j"'j%&j&&j%'j&'j''j('j)'j*'j+'j,'j-'j.'j/'j0'j1'j2'j3'j4'j5'j6'j7'j8'j9'j:'j;'j<'j='j>'j?'j@'jA'jB'jC'jD'jG'jH'jI'jJ'jK'jL'j_'j`'jO'jP'jQ'jR'jS'jT'jU'jV'j+*j,*jY'jZ'j %j %j]'j^'jM'jN'ja'jb'jc'jd'je'jf'jg'jh'ji'jj'jk'jl'jm'jn'jo'jp'jq'jr'js'jt'ju'jv'jw'jx'jy'jz'j{'j|'j}'j~'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j(j(j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j)j)j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j*j*j'j'j!+j"+j'j'j'j'jjj'j'j'j'j'j'jW#jX#j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j(j(j(j(j(j(j(j(j(j (j (j (j (j (j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j (j!(j"(j+j+j+j+j'(j((j+j+j+(j,(j-(j.(j/(j0(j1(j2(j3(j4(j-j-j5(j6(j7(j8(j9(j:(j;(j<(j=(j>(j?(j@(jA(jB(jC(jD(jE(jF(jG(jH(jI(jJ(jK(jL(jM(jN(jO(jP(jQ(jR(jS(jT(jU(jV(j,j,jY(jZ(j[(j\(j](j^(j_(j`(ja(jb(jK-jL-je(jf(jg(jh(ji(jj(jk(jl(jm(jn(jo(jp(jq(jr(js(jt(ju(jv(jw(jx(jy(jz(j{(j|(j9+j:+j(j(j(j(j(j(j(j(j7 j8 j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j1/j2/j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(jM.jN.j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(jG+jH+j(j(j(j(j(j(j(j(j(j(jjj,j,j(j(j(j(j(j(j(j(jjj(j(j(j)jO-jP-j)j)j)j)j)j)j )j )j )j )j )j)jc.jd.j)j)j)j)j)j)j)j)j)j)j)j)j)j)j',j(,j)j )j!)j")j#)j$)j $j$j%)j&)j')j()j))j*)j+)j,)j-)j.)j/)j0)j1)j2)j3)j4)j5)j6)j7)j8)j9)j:)j;)j<)j=)j>)j?)j@)jA)jB)jC)jD)jE)jF)j*j*jI)jJ)jK)jL)jjjjjQ)jR)jS)jT)jU)jV)jW)jX)jY)jZ)jy.jz.j[)j\)j])j^)j3j4ja)jb)jc)jd)je)jf)jg)jh)ji)jj)jk)jl)jm)jn)jejfjq)jr)js)jt)j j j/j/jjj})j~)j)j)j)j)j)j)j)j)jgjhj)j)j)j)j)j)j)j)j)j)j)j)jjj)j)j)j)j)j)jjj)j)j)j)j)j)j)j)j3j4jc+jd+j"j"j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)ji jj j)j)j)j)j)j)jjj)j)j j j)j)j)j)j; j< j)j)j)j)j)j)j)j)j)j)j)j)j)j)j j j)j)j)j)j)j)j)j)j j je-jf-j)j)j)j)j)j)j)j)j)j)j)j)j)j*j)!j*!j*j*j*j*j*j*ju+jv+j *j *j *j*j*j*j*j*j*j*j*j*j*j*jy+jz+j -j-j*j *j!*j"*j#*j$*j"j"j'*j(*j)*j**jjj-*j.*j],j^,j!j!j1*j2*j3*j4*j7*j8*j9*j:*j,j,j=*j>*j?*j@*jA*jB*jC*jD*jE*jF*jG*jH*j#j#jK*jL*jM*jN*jO*jP*jQ*jR*jS*jT*jU*jV*jW*jX*jY*jZ*j[*j\*j]*j^*j_*j`*u(ja*jb*jc*jd*je*jf*jg*jh*ji*jj*j#j#jm*jn*j#j#jq*jr*js*jt*ju*jv*jw*jx*jy*jz*j{*j|*j}*j~*j*j*j#j#j$j$j*j*j*j*j*j*j*j*je$jf$j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*jG%jH%j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j%j%j%j%j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*jC/jD/j*j*j*j*j*j*j&j&j*j*j*j*j*j*j3&j4&j*j*j*j*j*j*j*j*j*j*j*j*j*j*j+j+j*j*j*j*j*j*j*j*j*j+j+j+j+j+j+j+j+j+j +j +j +j +j +j+j+j+j+j+j+j+j+j+jQ/jR/j+j+jS/jT/j+j+j+j +j'j'j#+j$+j%+j&+j'+j(+j)+j*+j++j,+j-+j.+j&j&j1+j2+j3+j4+j5+j6+j,j,j7+j8+j}(j~(j=+j>+j?+j@+jA+jB+jC+jD+jE+jF+j(j(jI+jJ+jK+jL+jM+jN+j[/j\/jQ+jR+jS+jT+jU+jV+j+j+jY+jZ+j]+j^+j_+j`+ja+jb+j)j)je+jf+jg+jh+ji+jj+jk+jl+jm+jn+jo+jp+jq+jr+js+jt+j *j *jw+jx+j*j*j+j+j}+j~+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j!j!j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+jW+jX+j+j+j{+j|+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j .j .j+j+j5,j6,j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j,j,j+j+j+j+j+j+j j j+j+j7/j8/j+j+j+j+j+j+j+j+j+j+j+j,j,j,j,j,j,j,j,j,j ,j ,j ,j ,j ,j,j,j,j,j,j]-j^-j,j,j,j,j,j,j,j ,j!,j",j#,j$,j%,j&,jq jr j),j*,j+,j,,j-,j.,j/,j0,j1,j2,j3,j4,j7,j8,j9,j:,j;,j<,j=,j>,j?,j@,jA,jB,jC,jD,jE,jF,jG,jH,jI,jJ,jK,jL,jM,jN,jO,jP,jQ,jR,jS,jT,jU,jV,jW,jX,jY,jZ,j[,j\,j/j/j_,j`,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,j}/j~/jq,jr,js,jt,ju,jv,jw,jx,jy,jz,j{,j|,j},j~,j,j,j/j/j,j,j/j/j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j/j/j,j,j,j,j"j"j,j,j,j,j,j,jjj -j -jjjSjTj,j,j,j,j,j,j,j,j,j,jjj,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j-!j.!jjj/j/j,j,j,j,j/j/j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j-j-j.j-j-jEjFj-j-j -j -j-j-j-j-j-j-j-j-j'j'j-j-jjj-j-j-j -j!-j"-j#-j$-j%-j&-j'-j(-j)-j*-j+-j,-j--j.-j/-j0-jmjnj3-j4-j5-j6-j7-j8-j9-j:-j;-j<-j=-j>-j?-j@-jA-jB-jC-jD-jjj.j.jG-jH-jI-jJ-jjjM-jN-j!j!jQ-jR-jS-jT-jU-jV-jW-jX-jY-jZ-j[-j\-j&j&j_-j`-ja-jb-jc-jd-jg-jh-ji-jj-jk-jl-jm-jn-jo-jp-jq-jr-js-jt-ju-jv-jw-jx-jy-jz-j{-j|-j j j-j-j-j-j-j-j-j-j-j-jjj-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j"j"j-j-j-j-j-j-ji!jj!j-j-j/j/j,j,j-j-j!j!j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-jK"jL"j-j-j-j-j-j-j-j-j-j-j-j-j"j"j-j-j-j-j-j-j-j-j-j-j-j-j-j-j"j"j-j-j-j-j-j-j%j%j-j-j-j-j-j-j.j.j.j.j.j.j.j.j]#j^#j .j .jw#jx#j.j.j0j0j#j#j.j.j.j.j.j.j.j.j.j.j.j .j!.j".j#.j$.j%.j&.j'.j(.j).j*.jK/jL/j-.j..j/.j0.j1.j2.j3.j4.j5.j6.j7.j8.j%j%j;.j<.j$j$j?.j@.jA.jB.jC.jD.jE.jF.jG.jH.jI.jJ.jK.jL.jE'jF'jO.jP.jQ.jR.jS.jT.jU.jV.jW.jX.jY.jZ.j[.j\.j].j^.j_.j`.j[%j\%je.jf.jg.jh.ji.jj.jk.jl.jm.jn.jo.jp.jq.jr.js.jt.ju.jv.jw.jx.j*j*j{.j|.j}.j~.j.j.j.j.j.j.j/j/j.j.j.j.j#&j$&j.j.j.j.j?&j@&j.j.j.j.j.j.j.j.j.j.j.j.j.j.j%j%j.j.j/j/j.j.j&j&j.j.j.j.j.j.j'j'j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j/j/j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.jjj.j.j*j*j/j/j/j/j.j.j.j.j.j.j.j.j.j.j.j.j.j.j/j0j.j.j.j.j.j/j/j/j/j/j/j/j/j/j /j /j /j /j /j/j/j/jy)jz)j/j/j&j&j/j/j/j/j/j/j/j/j/j /j!/j"/j#/j$/j%/j&/j'/j(/j)/j*/j+/j,/j-/j./j//j0/j(j(j3/j4/j5/j6/j5*j6*j9/j:/j;/j/j?/j@/jA/jB/j*j*jE/jF/jG/jH/j 0j 0j'$j($jM/jN/jO/jP/j+j+j+j+jU/jV/jW/jX/jY/jZ/jO+jP+j]/j^/j_/j`/ja/jb/jc/jd/je/jf/jg/jh/ji/jj/jk/jl/jm/jn/jo/jp/jq/jr/js/jt/ju/jv/jw/jx/j{/j|/jo,jp,j0j0j,j,jojpjA jB j/j/j/j/j/j/j/j/j/j/j/j/j,j,j,j,j0j0j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/jO%jP%j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j%0j&0j/j/j/j/j/j/j/j/j/j/j/j/j/j/j*j*j/j/j/j/j/j/j/j/j/j/jy/jz/j.j.j"j#j/j/j/j/j.j.j/j/j/j/j/j/j[+j\+j/j/j.j.j0j0j0j0j0j0j0j0j 0j 0jI/jJ/j 0j0j0j0j0j0j0j0j/j/j0j0j"j"j#j#j0j0j0j 0j!0j"0j#0j$0j/j/j)j*uj)0}rT(j+0j,0j-0j.0j/0j00j10j20j30j40j50j60j70j80j90j:0j;0j<0j=0j>0j?0j@0jA0jB0jC0jD0jE0jF0jG0jH0jI0jJ0jK0jL0jM0jN0jO0jP0jQ0jR0jS0jT0jU0jV0jW0jX0jY0jZ0j[0j\0j]0j^0j_0j`0ja0jb0jc0jd0je0jf0jg0jh0ji0jj0jk0jl0jm0jn0jo0jp0jq0jr0js0jt0ju0jv0jw0jx0jy0jz0j{0j|0j}0j~0j0j0j0j0j0j0uj0}rT(j0j0j0j0j0j0j0j0j0j0j0j0j3j3j0j0j0j0j0j0j4j4j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j1j1j0j0j4j4j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j)6j*6j0j0j0j0j6j6j0j0j0j0j0j0j0j0j1j1j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j1j1j1j1j1j5j5j1j1j 1j 1j 1j 1j 1j1j2j2j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j 1j!1j"1j#1j$1j%1j&1j'1j(1j)1j*1j+1j,1j-1j.1j/1j01j11j21j31j41j51j61j71j81j 5j 5j;1j<1j=1j>1j?1j@1jA1jB1j2j2jE1jF1jG1jH1j2j2jK1jL1jM1jN1j1j1jQ1jR1jS1jT1jU1jV1jW1jX1jY1jZ1j[1j\1j]1j^1j_1j`1ja1jb1jc1jd1je1jf1jg1jh1j1j1jk1jl1jm1jn1jo1jp1jq1jr1js1jt1ju1jv1j5j5j1j1jy1jz1j{1j|1j}1j~1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j2j2j1j1j1j1j1j1j0j0j1j1j1j1j1j1j1j1j1j1j0j0j1j1j1j1j1j1j1j1j1j1j]5j^5jO1jP1j1j1ji1jj1j2j2jw1jx1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j6j6j1j1j2j2j-5j.5j1j1j1j1j1j1j1j2j2j2j2j2j2j2j 2j 2j 2j 2j 2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j!2j"2j#2j$2j%2j&2j'2j(2j)2j*2j-2j.2j/2j02j12j22j75j85j52j62j72j82j92j:2j;2j<2j=2j>2j 4j4j4j4jA2jB2jC2jD2jE2jF2j]6j^6j?5j@5jI2jJ2j 3j3jM2jN2jA5jB5jO2jP2jQ2jR2jS2jT2jU2jV2j4j4jY2jZ2jI5jJ5j]2j^2j_2j`2ja2jb2jc2jd2je2jf2jg2jh2ji2jj2jk2jl2jm2jn2jo2jp2jq2jr2js2jt2ju2jv2jw2jx2jy2jz2j{2j|2j2j2j2j2j2j2j2j2j2j2jO5jP5j2j2j2j2j2j2j2j2j2j2jQ5jR5j2j2j2j2j2j2j4j 4j2j2j2j2j2j2j5j5j2j2j3j3j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j6j6j2j2jq6jr6j2j2j2j2j2j2j1j1j2j2j2j2j2j2j2j2j2j2j2j2jC1jD1jI1jJ1j2j2j2j2j2j2j2j2j2j2j3j 3j2j2j2j2j1j1j2j2j2j2j2j2j1j1j2j2j2j2j1j1j2j2j3j3j3j3j3j3j3j3j 3j 3j 3j 3jK2jL2j3j3j3j3jg5jh5j;4j<4j3j3j76j86j2j2j3j3j3j3j3j3jk5jl5j2j2j!3j"3j#3j$3j%3j&3j'3j(3j)3j*3jw6jx6j+3j,3j-3j.3j/3j03j13j23j33j43j53j63j73j83j93j:3j;3j<3j=3j>3jA3jB3jC3jD3js5jt5j3j3jE3jF3jG3jH3jI3jJ3jK3jL3jM3jN3jO3jP3jQ3jR3jS3jT3jU3jV3jW3jX3jY3jZ3j]3j^3j_3j`3ja3jb3jc3jd3je3jf3jg3jh3ji3jj3jk3jl3jm3jn3jo3jp3jq3jr3js3jt3jC5jD5ju3jv3jw3jx3jy3jz3j{3j|3j}3j~3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j0j0j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j4j4j3j3j5j5j3j3j3j3j6j6j[4j\4j3j3j3j3j3j3jQ4jR4j3j3j3j3j3j3jc5jd5j6j6j3j3j3j3j3j3j0j0j3j3j3j3jE5jF5j5j5j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j6j6j3j3j3j3j3j3j5j5jk4jl4j3j3j3j3j3j4j4j4j4j4j4j4j4j4j 4j 4j 4j 4j?2j@2j4j4j4j4jW2jX2j4j4j4j4j3j3j4j4j2j2j!4j"4j#4j$4j%4j&4j'4j(4j)4j*4j+4j,4j/6j06j/4j04j14j24j34j44j5j5j74j84j94j:4j3j3j=4j>4j?4j@4jA4jB4jC4jD4jE4jF4j4j4j}4j~4j%6j&6jI4jJ4jK4jL4jM4jN4jO4jP4j2j2jS4jT4jW4jX4jY4jZ4j3j3j]4j^4j_4j`4ja4jb4je4jf4jg4jh4j5j5j%5j&5j3j3jm4jn4jo4jp4jq4jr4js4jt4ju4jv4jw4jx4jy4jz4j{4j|4jG4jH4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j6j6j4j4j4j4j6j6j4j4j4j4j4j4j4j4j6j6j4j4j4j4j4j4j5j5j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j5j5j4j4j4j4j6j6j4j4j4j4j6j6j5j5j4j4j4j4j4j4j4j4j4j4j4j4j6j6j4j4j4j4j4j4j4j4j0j0j4j4j0j0j16j26j4j4j4j4j4j4j4j4j4j5j1j1j5j5j5j5j 5j 5j91j:1j 5j5j5j5j5j5j5j5j5j5j5j5j5j 5j!5j"5j#5j$5j1j1j'5j(5j)5j*5j+5j,5j1j1j/5j05j15j25j35j45j32j42j95j:5j;5j<5j=5j>5jG2jH2j4j4j3j3j2j2j[2j\2jK5jL5jM5jN5j5j5j2j2jS5jT5jU5jV5jW5jX5jY5jZ5j2j 2j_5j`5ja5jb5jG5jH5j+2j,2ji5jj5j3j3j5j5jo5jp5j4j4ju5jv5jw5jx5jy5jz5j{5j|5j}5j~5j6j6j5j5j5j5j3j3j5j5j6j6j5j5j3j3j5j5j}2j~2j5j5j5j5j0j0j5j5j5j5j5j5j5j5j5j5j5j5ji4jj4j3j3j5j5j5j5j5j5j5j5j5j5j5j5j5j5j4j4j5j5j5j5j4j4j54j64j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j1j1j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j 6j6j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j6j6j6j6j6j6j6j6j6j 6j 6j 6j 6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j 6j!6j"6j#6j$6jq5jr5j'6j(6j0j0j+6j,6j-6j.6j[3j\3j2j3j36j46j56j66j2j2j96j:6j;6j<6j=6j>6j?6j@6jA6jB6jC6jD6jE6jF6jG6jH6j6j6jI6jJ6jK6jL6jM6jN6jO6jP6jQ6jR6jS6jT6jU6jV6jW6jX6j[6j\6jU4jV4j_6j`6ja6jb6j)7j*7jc6jd6je6jf6jg6jh6ji6jj6jk6jl6jm6jn6jo6jp6j4j4js6jt6ju6jv6j5j5jy6jz6j{6j|6j}6j~6j6j6j6j6j[5j\5j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j7j7jY6jZ6j6j6j6j6j6j6j6j6j6j6j3j3j6j6j6j6j6j6j6j6j5j5j6j6j6j6j5j5j6j6j3j3j6j6j?3j@3j4j4j4j4j6j6j6j6j4j4j6j6j6j6j6j6j6j6jc4jd4jm5jn5j6j6j6j6j6j6j6j6j5j5j6j6j-4j.4je5jf5j6j6j6j6j5j5j6j6j6j6j55j65j6j6j0j0j6j6j1j1j6j6j6j6j6j6j5j5j6j6j6j7j7j7j7j7j7j7j7j7j 7j 7j 7j 7j 7j7j7j7j7j7j7j7j7j7j6j6j7j7j7j7j7j7j!7j"7j+7j,7j%7j&7j'7j(7j7j 7j#7j$7j-7j.7j/7j07uj17}rT(j:j:j57j67j77j87j;7j<7j=7j>7j?7j@7j9j9jC7jD7jE7jF7jG7jH7jI7jJ7jS8jT8jO7jP7jQ7jR7jS7jT7jU7jV7jW7jX7jY7jZ7j[7j\7j]7j^7j_7j`7ja7jb7jc7jd7je7jf7jg7jh7ji7jj7jk7jl7j:j:jq7jr7j<j=js7jt7ju7jv7jw7jx7jy7jz7j:j:j{7j|7j}7j~7j:j:j7j7jY8jZ8j7j7j7j7j7j7j7j7j7j7j7j7jO;jP;j7j7j7j7j9j9j7j7j7j7j7j7j7j7j7j7j:j:j7j7j7j7j7j7j7j7j7j7j7j7j7j7j;j;ja8jb8j7j7j7j7j7j7j9j9j7j7j7j7j=<j><j)8j*8j<j<j7j7j;j;j7j7j7j7j7j7j7j7j7j7j7j7j7j7j8j8j7j7j;j;j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j9j9j7j7j7j7j7j7j7j7j7j7j7j7j;j;j7j7j7j7j7j7j?=j@=j7j7j<j<j:j:jW>jX>j8j8j 8j 8jm8jn8j 8j8j8j8jE=jF=j8j8j8j8j8j8jG=jH=j8j8j<j<j!8j"8j#8j$8j%8j&8j!=j"=j+8j,8j-8j.8j/8j08jK=jL=j38j48j58j68j78j88j98j:8j;8j<8j=8j>8jA8jB8jC8jD8jE8jF8jK9jL9jg8jh8jG8jH8jI8jJ8jK8jL8jS=jT=j{8j|8jQ8jR8jK7jL7jU8jV8jW8jX8jY>jZ>j7j7j[8j\8j]8j^8j_8j`8j7j7jc8jd8je8jf8j7j7ji8jj8jk8jl8j 8j 8j<j<jq8jr8ju8jv8jw8jx8jy8jz8jO8jP8j}8j~8j8j8j8j8j=j=j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8je=jf=j8j8j8j8j8j8j?;j@;j8j8j<j<j8j8j=j=j8j8j8j8j8j8j8j8j8j8j';j(;j8j8j8j8j8j8j):j*:j:j;j8j8j8j8j;j;j8j8j8j8j8j8j8j8j=j=j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j ;j ;j8j8j8j8j8j8j8j8j8j9j9j9j9j9j9j9j9j9j 9j 9j 9j 9j 9j9j9j9j9j9jm7jn7j9j9j9j9j9j9j9j9j9j9j9j9j!9j"9j#9j$9j%9j&9j'9j(9j)9j*9j+9j,9j-9j.9j/9j09j19j29j39j49j59j69j79j89j99j:9j9j9j;9j<9j=9j>9j?9j@9jE>jF>jA<jB<jC9jD9jG9jH9jI9jJ9j<j<jM9jN9j%:j&:jQ9jR9j;j;jS9jT9jU9jV9jW9jX9jY9jZ9j[9j\9j]9j^9j_9j`9ja9jb9jc9jd9je9jf9jg9jh9ji9jj9jk9jl9j:j:jm9jn9j;j;jq9jr9js9jt9jC<jD<jy9jz9j{9j|9j}9j~9j9j9j9j9j8j8j9j9j9j9j=j=j9j9jA7jB7j9j9j9j9j9j9j9j9j9j9j9j9j7j7j9j9j7j7j9j9j9j9j8j8j :j :j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j=j=j:j:j9j9j9j9j9j9j=j=j9j9j9j9j9j9j:j:j9j9j9j9j9j9j9j9j9j9j]:j^:j9j9ju9jv9j9j9j =j =j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j:j8j8j:j:j:j:j:j:j':j(:j :j :j :j:j:j:j:j:j:j:j:j:j=j=j=j=j:j:j:j:j:j:j:j :j!:j":j#:j$:j:j:j:j:j:j:j+:j,:j-:j.:j/:j0:j1:j2:j3:j4:j5:j6:j7:j8:j9:j::j;:j<:j=:j>:j?:j@:jA:jB:jC:jD:jE:jF:jG:jH:j=j=jK:jL:jM:jN:jO:jP:jQ:jR:jS:jT:jU:jV:jW:jX:jY:jZ:j[:j\:j?8j@8j_:j`:ja:jb:jc:jd:je:jf:jg:jh:ji:jj:jk:jl:jm:jn:ji<jj<jq:jr:js:jt:ju:jv:jk<jl<jy:jz:j{:j|:j}:j~:j:j:j:j:j<j<j:j:jQ<jR<j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j=j=j:j:j:j:j:j:j:j:j:j:j:j:j:j:j37j47j:j:j:j:j:j:jM7jN7j:j:j:j:j7>j8>j:j:j7j7j:j:j:j:j9j9j8j8j:j:j8j8j:j:j:j:j:j:j'8j(8j:j:j:j:j:j:j =j =j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j8j8j8j8j;j;j=j=j:j:j8j8j=j=j ;j;j;j;j;j;j;j;j;j;j;j;jo;jp;j;j;j;j;je<jf<j=j=j;j;j;j ;j!;j";j#;j$;j%;j&;j];j^;j);j*;j+;j,;j-;j.;j/;j0;j1;j2;j3;j4;j5;j6;j7;j8;j9;j:;j;;j<;j=;j>;jo7jp7jA;jB;jC;jD;jE;jF;jG;jH;jI;jJ;jK;jL;jM;jN;j+=j,=jQ;jR;jS;jT;jW;jX;jY;jZ;j[;j\;j;j;j_;j`;ja;jb;jc;jd;je;jf;jg;jh;ji;jj;jk;jl;jm;jn;jq;jr;j<j<js;jt;ju;jv;jw;jx;jy;jz;j{;j|;j};j~;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j=j=j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j=j=j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j >j >ji=jj=j;j;j;j;j<j<j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j<j<j;j;j<j<j;j;j>j>j<j<j;j;j7j7j;j<j<j<j7j8j<j<j<j<j <j <j <j <j <j<j<j<j<j<jo8jp8j<j<j<j<j<j<j<j <j!<j"<j#<j$<j%<j&<j'<j(<j/=j0=j)<j*<j-<j.<j1<j2<j3<j4<j5<j6<j7<j8<j9<j:<j;<j<<j9j9j?<j@<j<j<jo:jp:j=j=jG<jH<jI<jJ<jK<jL<jM<jN<jO<jP<j:j:j<j<jS<jT<jU<jV<jW<jX<jY<jZ<j[<j\<j]<j^<j_<j`<ja<jb<jc<jd<j;j;jg<jh<j8j 8jw:jx:jm<jn<jo<jp<j>j>js<jt<j<j<jw<jx<jy<jz<j{<j|<j}<j~<j<j<j<j<j7j7j<j<j<j<jE9jF9j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<jM8jN8j<j<j<j<j<j<j:j:j:j:j;j;j>j>j<j<js8jt8j<j<j<j<j<j<j<j<j<j<ju<jv<j<j<j<j<j:j:j<j<j3>j4>j<j<j<j<j:j:j<j<j<j<j<j<j<j<j<j<jO9jP9j<j<j<j<j<j<j<j<jA9jB9j<j<j<j<j<j<j<j<j<j<j=j=j9j 9j=j=j=j=j=j=j=j=j=j=j =j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j97j:7j#=j$=j%=j&=j'=j(=j)=j*=jE<jF<j-=j.=j8j8j1=j2=j3=j4=j5=j6=j7=j8=j9=j:=jQ>jR>j;=j<=j==j>=j7j7jA=jB=j->j.>j8j8j=j=jI=jJ=j/>j0>j18j28jM=jN=jQ=jR=j9>j:>jU=jV=jW=jX=jY=jZ=j[=j\=j1>j2>j_=j`=ja=jb=jc=jd=j7j7jg=jh=j9j9jk=jl=jm=jn=jo=jp=jq=jr=js=jt=ju=jv=jy=jz=j{=j|=j}=j~=j=j=j#>j$>j=j=j=j=j9j9j=j=j=j=jo9jp9j=j=j=j=j=j=j+<j,<j8j8j=j=j=j=jU;jV;j=j =j=j=j=j=j=j=jI:jJ:j=j=j=j=j;j;jC>jD>j=j=j=j=j<j<j=j=j=j=j=j=j=j=j=j=j=j=j ;j ;j=j=j;j;j=j=j=j=j8j8j=j=j=j=j=j=j=j=j=j=j;j;j=j=j=j=j=j=jO=jP=j=j=j=j=jw9jx9j=j=j9j9j=j=j=j=j9j9j=j=j=j=j=j=j=j=j/<j0<j?>j@>j=j=j=j>jq<jr<j>j>j>j>j<j<j >j >j >j>j;j;j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j >j!>j">j8j8j%>j&>j'>j(>j+>j,>jC=jD=j:j:j]=j^=j5>j6>jw=jx=j;>j<>j=>j>>jA>jB>j=j=j:j:jG>jH>jI>jJ>jK>jL>jM>jN>jO>jP>j<j<jS>jT>jU>jV>j;j;j)>j*>j[>j\>j]>j^>j_>j`>ja>jb>jc>jd>uje>}rT(jg>jh>jm>jn>j>j>jq>jr>js>jt>ju>jv>j}>j~>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j{>j|>j>j>j>j>j>j>j>j>j>j>j?j?j ?j ?j ?j?j?j?j?j?j?j?j?j ?j#?j$?j%?j&?j'?j(?ji>jj>jo>jp>j>j>j>j>jy>jz>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>jw>jx>j?j?j>j>j>j>j>j>j>j>j>j>j>j>j?j?j>j>j>j>j?j?j>j>j>j?j?j?j?j?jk>jl>j ?j ?j?j?j?j?j>j>j?j?j!?j"?uj)?}rT(j;?j?jA?jB?jC?jD?jK?jL?jO?jP?jY?jZ?j[?j\?j]?j^?j_?j`?jOIjPIj9?j:?ji?jj?jk?jl?jJjJjq?jr?ju?jv?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j@j@j@jaDjbDj @j @j @j @j @j@j@j@j@j@j@j@j@j @j!@j"@j'@j(@j)@j*@j-@j.@j3@j4@j9@j:@j;@j<@j=@j>@jA@jB@jE@jF@jM@jN@jO@jP@jW@jX@j[@j\@j_@j`@jc@jd@jIBjJBji@jj@jk@jl@jo@jp@jq@jr@jqDjrDjU?jV?j{@j|@j}@j~@jsDjtDj@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@jDjDjKjLj@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@jAjAjAjAjAj Aj Aj AjAjAjAjAjAjAjAjAjAjAj Aj!Aj"Aj#Aj$Aj'Aj(Aj)Aj*Aj+Aj,Aj1Aj2Aj7Aj8AjGAjHAjIAjJAjKAjLAjQAjRAjYAjZAj[Aj\Aj]Aj^Aj_Aj`AjcAjdAjeAjfAjgAjhAjiAjjAjkAjlAjmAjnAjsAjtAjwAjxAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAj!Cj"CjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBj#Bj$Bj%Bj&Bj'Bj(Bj)Bj*Bj/Bj0Bj1Bj2Bj3Bj4BjIjIj?Bj@BjEBjFBjGBjHBj?Cj@CjKBjLBjOBjPBjUBjVBjWBjXBjYBjZBj_Bj`BjaBjbBjcBjdBjeBjfBjiBjjBjmBjnBjoBjpBjwBjxBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjDjDjBjBjBjBjDjDjCjCjIjIjCjCjCjCj Cj Cj CjCjCjCjCjCjCj CjQGjRGj#Cj$Cj%Cj&Cj+Cj,Cj-Cj.Cj/Cj0Cj1Cj2Cj3Cj4Cj7Cj8Cj9Cj:Cj;CjEjCEjDEjMEjNEjQEjREj_Ej`EjaEjbEjcEjdEj_Jj`JjkEjlEjIjIjoEjpEjqEjrEjsEjtEjyEjzEjEjEjgJjhJjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjuJjvJjEjEjEjEjY@jZ@jEjEjEjEjEjEjEjEjEjEjEjEjEjEj?Gj@GjEjEjFjFj Fj Fj FjFjFjFj}Jj~JjFjFjFjFjFjFj!Fj"Fj#Fj$Fj%Fj&Fj)Fj*Fj+Fj,Fj-Fj.Fj5Fj6Fj9Fj:Fj=Fj>Fj?Fj@FjAFjBFjCFjDFjEFjFFjGFjHFjiEjjEjWFjXFj[Fj\Fj]Fj^FjcFjdFjgFjhFjoFjpFjqFjrFjuFjvFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjJjJjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjGjGjGjGjGjGjGjGj Gj Gj GjGjGjGjGjGjGjGjGjGjGjGjGj Gj#Gj$Gj%Gj&Gj'Gj(Gj+Gj,Gj/Gj0Gj1Gj2Gj3Gj4Gj;GjGj EjEjAGjBGjGGjHGjIGjJGjMGjNGjOGjPGjEjEjWGjXGj[Gj\GjeGjfGjgGjhGjkGjlGjoGjpGjqGjrGjwGjxGjJjJjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGj@j@jGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjHjHjHjHjHj Hj HjHjHjHjHjHjHjHjHjHjHjHjHjHj Hj#Hj$Hj%Hj&Hj'Hj(Hj+Hj,HjIjIj-Hj.Hj/Hj0Hj5Hj6Hj7Hj8Hj=Hj>HjCHjDHjGHjHHjKHjLHjSHjTHjUHjVHjYHjZHj]Hj^HjaHjbHjcHjdHjkHjlHjoHjpHjuHjvHjwHjxHjyHjzHj{Hj|Hj}Hj~HjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjJjJjHjHjEjEjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjHjJjJjMjMjHjIjIjIjIjIj Ij Ij Ij IjIjIjIjIjIj Ij#Ij$Ij%Ij&Ij'Ij(Ij+Ij,Ij-Ij.Ij7Ij8Ij=Ij>IjJjKjAIjBIjEIjFIjIIjJIjKIjLIjMIjNIjc?jd?jQIjRIjUIjVIjWIjXIjYIjZIj]Ij^Ij_Ij`IjaIjbIjgIjhIjJjJjkIjlIjmIjnIjoIjpIjsIjtIjuIjvIjwIjxIjyIjzIjIjIjIjIjIjIjIjIjIjIjIjIjKjKjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjAjAjIjIjIjIjIjIjIjIj5Bj6BjIjIjIjIjIjIjEjFjIjIjDjDjIjIjIjIjIjIjIjIjIjIjCjCjIjIjIjIjIjJjJjJjcCjdCjiCjjCj Jj JjJjJjJjJjJjJjJjJj'Jj(Jj)Jj*Jj+Jj,Jj3Jj4Jj7Jj8Jj9Jj:Jj;JjJjAJjBJjGJjHJj'Kj(KjKJjLJjQJjRJjSJjTJjUJjVJjYJjZJjgEjhEjcJjdJjEjEjmJjnJjoJjpJjEjEjwJjxJjyJjzJj{Jj|JjFjFjJjJjJjJjAjAjFjFjHjHjJjJjJjJjIFjJFjJjJjJjJjJjJjJjJjJjJjJjJjJjJj?Kj@KjAKjBKjJjJjJjJjJjJjHjHjJjJjJjJj1Fj2FjJjJjHjHjJjJjJjJjJjJj-Aj.Aj?Ij@IjKjKjKjKjKjKj Kj Kj KjKjKjKjKjKj#Kj$Kj%Kj&KjIJjJJj5Aj6Aj-Kj.Kj1Kj2Kj9Kj:Kj;KjLj?Lj@Lj{Fj|FjFjFjULjVLj_Lj`LjaLjbLjeLjfLjiLjjLjqLjrLjsLjtLjuLjvLjwLjxLjyLjzLj}Lj~LjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjAjAjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjMjMjMjMjAjAj MjMj7Gj8GjMjMjMjMjMjMj+Mj,Mj-Mj.Mj5Mj6Mj7Mj8Mj;MjAj?Aj@AjCAjDAjEAjFAjKjKjMAjNAjOAjPAjSAjTAjUAjVAjWAjXAjYCjZCj5@j6@j1Lj2LjOLjPLjoAjpAjqAjrAjuAjvAjyAjzAj?Mj@MjLjLjLjLjAjAjAjAjAjAjAjAj Mj MjMjMjAjAjAjAjAjAjQMjRMjAjAj}Mj~MjAjAjAjAjAjAjMjMjAjAjAjAjAjAjAjAjAjAjAjAjAjAjJjJj{?j|?jAjAjAjAjMjMj?j?jAjAjAjAjAjAj?@j@@js@jt@j1Ij2Ij Bj Bj BjBjBjBjBjBjBjBjuBjvBj Nj NjBj Bj!Bj"Bj}Aj~AjYGjZGj;BjBjABjBBjCBjDBjSBjTBj[Bj\Bj]Bj^BjgBjhBjkBjlBjqBjrBjCjCj{Bj|Bj}Bj~BjCjCjBjBjCjCjBjBjBjBjBjBjBjBjBjBjBjBjBjBjDjDjDjDjBjBjBjBjBjBjgLjhLjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjEjEjBjBjBjBjBjBjBjCjFjFj Cj Cj=Kj>KjFjFjCjCjCjCjCjCjCjCjCjCj'Cj(Cj)Cj*CjGjGjIMjJMjMCjNCjOCjPCjQCjRCjUCjVCjHjHjJjJjgCjhCjGEjHEjkCjlCjHjHjqCjrCjsCjtCj{Aj|AjyCjzCj{Cj|Cj}Cj~CjEjEjCjCjCjCjCjCjCjCjLjLj JjJjCjCjHjHjCjCjCjCjCjCjCjCjJjJjCjCjFjGjJjJjJjJjCjCjCjCjCjCjCjCjCjCjCjCjCjCjKjKjCjCjCjCjBjBj9Lj:LjCjCjCjCjCjDjLjLjDjDj?j?jLjLj Ej EjEjEj!Dj"Dj%Dj&DjJjJj3Dj4DjMjMj7Dj8Dj=Dj>DjCDjDDjEDjFDjGDjHDjMDjNDjODjPDjQDjRDj_Gj`GjYDjZDj[Dj\Dj]Dj^Dj_Dj`Dj Dj DjGjGjeDjfDjiDjjDjkDjlDjmDjnDjAjAj@j@j@j@j}Dj~Dj@j@jDjDjDjDjAjAjDjDjDjDj@j@jDjDjDjDjDjDjOMjPMjDjDjDjDjDjDjDjDjDjDjDjDjDjDj?j?jIHjJHjDjDjJjJjDjDj9Aj:AjDjDjDjDjDjDjDjDjDjDjDjDjCjCj Ej EjCjCjmHjnHjEjEj%Jj&JjEjEjEjEj#Ej$EjDjDj'Ej(Ej/Ej0Ej3Ej4Ej5Ej6EjEEjFEj?Ej@Ej?j?jIEjJEjKEjLEjEjEjOEjPEjSEjTEjWEjXEjYEjZEj[Ej\Ej]Ej^EjeEjfEjDjDjCjCjmEjnEjwEjxEj{Ej|Ej}Ej~EjEjEjEjEjEjEjEjEjGjGjSGjTGjmGjnGjEjEjEjEjEjEjEjEjEjEjEjEjEjEj-Bj.BjEjEjLjLjEjEjqHjrHjEjEjEjEjEjEjHjHjEjEjEjEjcGjdGjFjFjEjEjEjEjEjEjEjEjIjIjEjEjIjIjFjFjFjFjFjFjFjFjFjFjFjFjFj Fj'Fj(FjJjJj/Fj0FjJjJj;FjMjMHjNHjOHjPHjAjAjIjIjWHjXHj)Nj*NjeHjfHjgHjhHjiHjjHjHjHjsHjtHj3Ij4IjHjHjHjHjIjIjIjIjHjHjUEjVEjHjHjJj JjHjHjHjHjJjJjHjHjHjHjHjHjJjJjHjHjHjHjHjHjHjHjWMjXMjHjHj/Kj0KjHjHjLjLjHjHjKjKjEjEjDjDjHjHj Mj Mj]Lj^LjIjIj IjIjIjIjIjIjIjIjIjIjEj Ej)Ij*IjMjMjEjEj=Cj>CjHjHjHjHjsBjtBjNjNjGIjHIj7Fj8FjSIjTIj[Ij\IjcIjdIjeIjfIjiIjjIj/@j0@jqIjrIj]@j^@j{Ij|Ij}Ij~IjIjIjDjDjIjIjIjIj@j@jIjIj;AjNjGNjHNjINjJNjMNjNNjQNjRNj[Nj\NjcNjdNj;NjOj?Oj@OjAOjBOjCOjDOjEOjFOjGOjHOjIOjJOjKOjLOjMOjNOjOOjPOjQOjROj?Sj@SjRjRjUOjVOjWOjXOjYOjZOj[Oj\OjaOjbOjNjNjeOjfOjwPjxPjPjPjkOjlOjmOjnOjoOjpOjqOjrOjOjOjuOjvOjPjPjyOjzOj5Oj6OjSjSjOjOjOjOjOjOjOjOjSjSjSjSjOjOjOjOjqRjrRjPjPjOjOjOjOjOjOjOjOjOjOjOjOjOjOjQjQjRjRjOjOjOjOjOjOjQjQjTj TjRjRjOjOjPjPjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjRjRjOjOjOjOjOjOjOjOjOjOjOjOjOjOj5Qj6QjOjOjQPjRPjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjPjPjRjRjOjOjOjOjOjOjOjOjOjOjOjOjOjPjPjPjPjPjPjPjPjPjQjQj Pj Pj PjPjMSjNSjPjPjPjPjPjPjPjPjPjPjPjPjPjPjQjQj Sj SjQjQjPj Pj!Pj"PjPjPjPjPj%Pj&Pj'Pj(Pj)Pj*PjOjOj+Pj,Pj-Pj.Pj/Pj0PjPjPj3Pj4Pj5Pj6Pj7Pj8PjNjNj9Pj:Pj;PjPj?Pj@PjAPjBPjCPjDPjEPjFPjGPjHPjIPjJPjKPjLPjMPjNPjOPjPPjCQjDQjSPjTPjUPjVPjWPjXPjYPjZPjNjNj]Pj^Pj_Pj`PjaPjbPjcPjdPjOjOjePjfPjgPjhPjiPjjPjQjQjPjPjmPjnPjoPjpPjqPjrPjsPjtPjuPjvPjOjOjPjPjyPjzPj{Pj|Pj}Pj~PjRjRjQjQjOjOjPjPjPjPjPjPjgOjhOjPjPjPjPjPjPjPjPjOjOjQjQjPjPjPjPjPjPjSjSj#Pj$PjNjNj1Pj2PjPjPjPjPjRjRjQjQjQjQjPjPjPjPjPjPjPjPjPjPjSjSjPjPjPjPjPjPjPjPj-Qj.QjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjTjTjPjPjPjPjPjPjPjPjPjPjSjSjPjPjPjPjQjQjPjPjPjPjPjPjPjPjPjPjPjPjPjPjURjVRjPjPjPjPjPjPjPjPjPjQjQjQjRjRjQjQjRjRj Qj Qj Qj Qj QjQjkQjlQjQjQjQjQjRjRjQjQjQjQjQjQjQjQjQj Qj!Qj"QjQjQj%Qj&Qj'Qj(Qj)Qj*Qj+Qj,QjSjSj/Qj0QjQjQj3Qj4QjSjSj7Qj8Qj9Qj:Qj;QjQj?Qj@QjAQjBQjEQjFQjGQjHQjIQjJQjQjQjMQjNQjOQjPQjQQjRQjSQjTQjUQjVQjWQjXQjYQjZQj[Qj\Qj]Qj^Qj_Qj`QjRjRjNjNjgQjhQjiQjjQjNjNjmQjnQjNjNjqQjrQjQjQjuQjvQjNjNjyQjzQjOjOj{Qj|Qj}Qj~QjQjQjRjRjQjQjQjQjQjQjQjQjiOjjOjQjQjQjQjQjQjQjQj5Sj6SjRjRjQjQjQjQjOjOjQjQjQjQjQjQj Pj PjQjQjQjQjQjQjQjQjQjQjQjQjkPjlPjQjQjPjPjQjQjQjQjQjQjQjQjQjQjPjPjQjQjQjQjQjQjQjQjQjQj#Qj$QjQjQj1Qj2QjQjQjKQjLQjQjQjaQjbQjQjQjsQjtQjQjQjQjQjSSjTSjQjQjQjQjQjQjQjQjQjQjQjQjQjQjQjQjQjQjSjSjQjRjRjRjRjRjRjRjRjRj Rj Rj RjRjRjRjRjRjRjRjRjRjRjRjSjSjSjSjRjRjRj Rj!Rj"Rj#Rj$Rj%Rj&Rj'Rj(Rj)Rj*Rj+Rj,Rj/Rj0Rj1Rj2Rj3Rj4Rj5Rj6Rj7Rj8Rj9Rj:RjSjSj=Rj>Rj?Rj@RjSjSjCRjDRjERjFRjGRjHRjIRjJRjKRjLRjMRjNRjORjPRjQRjRRjSRjTRjTjTjRjRjWRjXRjYRjZRj[Rj\Rj]Rj^RjSjSjaRjbRjcRjdRjeRjfRjNjNjiRjjRjNjNjmRjnRjoRjpRj]Oj^OjsRjtRjOSjPSjwRjxRjyRjzRj{Rj|RjNjOjRjRjRjRjRjRjRjRjRjRjRjRjRjRjNjNj;OjSjNjNjASjBSjCSjDSjESjFSjGSjHSjISjJSjKSjLSjOjOjQSjRSjUSjVSjWSjXSjYSjZSj[Sj\Sj]Sj^Sj_Sj`SjaSjbSjcSjdSjeSjfSjgSjhSjiSjjSjkSjlSjmSjnSjSjSjoSjpSjqSjrSjsSjtSjuSjvSjwSjxSjySjzSj{Sj|Sj}Sj~SjSjSjSjSjQjQjSjSjSjSj7Oj8OjSjSjSjSjSjSjwOjxOj}Oj~OjOjOjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjTjTjSjSjITjJTj1Tj2TjSjSjSjSjSjSjSjSjSjSjSjSjSjSjPjPjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjQjQjSjSjSjSjSjSjSjSjSjSjSjSjOjOjSjSjSjSjSjSjSjSjPjPjSjSjARjBRj_Rj`RjSTjTTjTjTjTjTjNjNjTjTj Tj Tj Tj TjRjRjRjRjRjRjTjTjRjRjTjTjTjTjTjTjOjOj!Tj"Tj#Tj$Tj%Tj&Tj'Tj(Tj)Tj*Tj+Tj,Tj-Tj.Tj/Tj0TjPjPj3Tj4Tj5Tj6Tj7Tj8Tj[Tj\Tj;TjTj?Tj@TjATjBTjCTjDTjETjFTjGTjHTj_Tj`TjKTjLTjMTjNTjOTjPTjQTjRTjSjTjUTjVTjWTjXTjYTjZTj9Tj:Tj]Tj^TjOjOjaTjbTjcTjdTuusUmetadatarT}rT(h}h$}h-}h6}h?}hH}hQ}hZ}hc}hl}hu}h}h}h}h}h}h}h}h}h}h}h}j}j}j}j&}j7}j@}jI}jR}j[}jl}ju}j~}j}j}j}j}j}uUversionchangesrT}Utoc_num_entriesrT}rT(hKh$Kh-Kh6Kh?KhHKhQK)hZKhcKhlKhuKhKhKhKhKhKhKhKhKhKhKhKjKjKjK j&Kj7Kj@KjIKjRKj[KjlKjuKj~KjKjKjKjKjKuUimagesrTh)rTh]RrTbUnumbered_toctreesrTh]RrTU found_docsrTh]rT(hh$h-h6h?hHhQhZhchlhuhhhhhhhhhhhjjjj&j7j@jIjRj[jljuj~jjjjjeRrTU longtitlesrT}rT(hhh$h%h-h.h6h7h?h@hHhIhQhRhZh[hchdhlhmhuhvhhhhhhhhhhhhhhhhhhhhhhjjjjjjj&j'j7j8j@jAjIjJjRjSj[j\jljmjujvj~jjjjjjjjjjjuU dependenciesrT}rT(hh]rT(X#examples/code/gas_station_refuel.pyrTX$examples/code/gas_station_refuel.outrTeRrTj@h]rT(Xexamples/code/machine_shop.outrTXexamples/code/machine_shop.pyrTeRrThuh]rTU../simpy/util.pyrTaRrThh]rT(X&examples/code/process_communication.pyrTX'examples/code/process_communication.outrTeRrTj[h]rTU../simpy/resources/resource.pyrTaRrThh]rTU../simpy/resources/container.pyrTaRrTjlh]rT(Xexamples/code/carwash.pyrTXexamples/code/carwash.outrTeRrTjh]rTU../simpy/core.pyrTaRrTj~h]rTU../simpy/resources/store.pyrUaRrUjh]rU(Xexamples/code/latency.pyrUXexamples/code/latency.outrUeRrUjh]rUU../simpy/resources/base.pyrUaRrUjh]r UU../simpy/resources/__init__.pyr UaRr Uhh]r U(Xexamples/code/bank_renege.outr UXexamples/code/bank_renege.pyrUeRrUj&h]rUU../simpy/__init__.pyrUaRrUh6h]rU(Xexamples/code/movie_renege.pyrUXexamples/code/movie_renege.outrUeRrUhh]rUU../simpy/monitoring.pyrUaRrUhh]rUU../simpy/events.pyrUaRrUjh]rUU../simpy/rt.pyrUaRrUuUtoctree_includesr U}r!U(j]r"U(Xtopical_guides/simpy_basicsr#UXtopical_guides/environmentsr$UXtopical_guides/eventsr%UX"topical_guides/porting_from_simpy2r&Ueh-]r'U(Xsimpy_intro/installationr(UXsimpy_intro/basic_conceptsr)UXsimpy_intro/process_interactionr*UXsimpy_intro/shared_resourcesr+UXsimpy_intro/how_to_proceedr,Uej]r-U(Xexamples/bank_reneger.UXexamples/carwashr/UXexamples/machine_shopr0UXexamples/movie_reneger1UXexamples/gas_station_refuelr2UXexamples/process_communicationr3UXexamples/latencyr4UejI]r5U(Xapi_reference/simpyr6UXapi_reference/simpy.corer7UXapi_reference/simpy.eventsr8UXapi_reference/simpy.monitoringr9UXapi_reference/simpy.resourcesr:UX"api_reference/simpy.resources.baser;UX'api_reference/simpy.resources.containerrUXapi_reference/simpy.rtr?UXapi_reference/simpy.utilr@Ueh?]rAU(X about/historyrBUXabout/acknowledgementsrCUXabout/defense_of_designrDUXabout/release_processrEUX about/licenserFUehH]rGU(XindexrHUXsimpy_intro/indexrIUXtopical_guides/indexrJUXexamples/indexrKUXapi_reference/indexrLUX about/indexrMUeuU temp_datarNU}UtocsrOU}rPU(hcdocutils.nodes bullet_list rQU)rRU}rSU(hUh}rTU(h]h]h]h]h]uh]rUUcdocutils.nodes list_item rVU)rWU}rXU(hUh}rYU(h]h]h]h]h]uh!jRUh]rZU(csphinx.addnodes compact_paragraph r[U)r\U}r]U(hUh}r^U(h]h]h]h]h]uh!jWUh]r_Ucdocutils.nodes reference r`U)raU}rbU(hUh}rcU(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j\Uh]rdUhXEventsreUrfU}rgU(hh h!jaUubah"U referencerhUubah"Ucompact_paragraphriUubjQU)rjU}rkU(hUh}rlU(h]h]h]h]h]uh!jWUh]rmU(jVU)rnU}roU(hUh}rpU(h]h]h]h]h]uh!jjUh]rqU(j[U)rrU}rsU(hUh}rtU(h]h]h]h]h]uh!jnUh]ruUj`U)rvU}rwU(hUh}rxU(U anchornameU #event-basicsUrefurihh]h]h]h]h]Uinternaluh!jrUh]ryUhX Event basicsrzUr{U}r|U(hX Event basicsr}Uh!jvUubah"jhUubah"jiUubjQU)r~U}rU(hUh}rU(h]h]h]h]h]uh!jnUh]rU(jVU)rU}rU(hUh}rU(h]h]h]h]h]uh!j~Uh]rUj[U)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj`U)rU}rU(hUh}rU(U anchornameU#adding-callbacks-to-an-eventUrefurihh]h]h]h]h]Uinternaluh!jUh]rUhXAdding callbacks to an eventrUrU}rU(hXAdding callbacks to an eventrUh!jUubah"jhUubah"jiUubah"U list_itemrUubjVU)rU}rU(hUh}rU(h]h]h]h]h]uh!j~Uh]rUj[U)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj`U)rU}rU(hUh}rU(U anchornameU#triggering-eventsUrefurihh]h]h]h]h]Uinternaluh!jUh]rUhXTriggering eventsrUrU}rU(hXTriggering eventsrUh!jUubah"jhUubah"jiUubah"jUubeh"U bullet_listrUubeh"jUubjVU)rU}rU(hUh}rU(h]h]h]h]h]uh!jjUh]rUj[U)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj`U)rU}rU(hUh}rU(U anchornameU#example-usages-for-eventUrefurihh]h]h]h]h]Uinternaluh!jUh]rU(hXExample usages for rUrU}rU(hXExample usages for rUh!jUubhz)rU}rU(hX ``Event``rUh}rU(h]h]h]h]h]uh!jUh]rUhXEventrUrU}rU(hUh!jUubah"hubeh"jhUubah"jiUubah"jUubjVU)rU}rU(hUh}rU(h]h]h]h]h]uh!jjUh]rUj[U)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj`U)rU}rU(hUh}rU(U anchornameU#let-time-pass-by-the-timeoutUrefurihh]h]h]h]h]Uinternaluh!jUh]rU(hXLet time pass by: the rUrU}rU(hXLet time pass by: the rUh!jUubhz)rU}rU(hX ``Timeout``rUh}rU(h]h]h]h]h]uh!jUh]rUhXTimeoutrUrU}rU(hUh!jUubah"hubeh"jhUubah"jiUubah"jUubjVU)rU}rU(hUh}rU(h]h]h]h]h]uh!jjUh]rUj[U)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj`U)rU}rU(hUh}rU(U anchornameU#processes-are-events-tooUrefurihh]h]h]h]h]Uinternaluh!jUh]rUhXProcesses are events, toorUrU}rU(hXProcesses are events, toorUh!jUubah"jhUubah"jiUubah"jUubjVU)rU}rU(hUh}rU(h]h]h]h]h]uh!jjUh]rUj[U)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj`U)rU}rU(hUh}rU(U anchornameU$#waiting-for-multiple-events-at-onceUrefurihh]h]h]h]h]Uinternaluh!jUh]rUhX#Waiting for multiple events at oncerUrU}rU(hX#Waiting for multiple events at oncerUh!jUubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubh$jQU)rU}rU(hUh}rU(h]h]h]h]h]uh]rUjVU)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj[U)rU}rU(hUh}rU(h]h]h]h]h]uh!jUh]rUj`U)rV}rV(hUh}rV(U anchornameUUrefurih$h]h]h]h]h]Uinternaluh!jUh]rVhXHow to ProceedrVrV}rV(hh,h!jVubah"jhUubah"jiUubah"jUubah"jUubh-jQU)rV}rV(hUh}r V(h]h]h]h]h]uh]r VjVU)r V}r V(hUh}r V(h]h]h]h]h]uh!jVh]rV(j[U)rV}rV(hUh}rV(h]h]h]h]h]uh!j Vh]rVj`U)rV}rV(hUh}rV(U anchornameUUrefurih-h]h]h]h]h]Uinternaluh!jVh]rVhXSimPy in 10 MinutesrVrV}rV(hh5h!jVubah"jhUubah"jiUubjQU)rV}rV(hUh}rV(h]h]h]h]h]uh!j Vh]rVcsphinx.addnodes toctree rV)rV}r V(hUh}r!V(UnumberedKUparenth-U titlesonlyUglobh]h]h]h]h]Uentries]r"V(Nj(Ur#VNj)Ur$VNj*Ur%VNj+Ur&VNj,Ur'VeUhiddenUmaxdepthKU includefiles]r(V(j(Uj)Uj*Uj+Uj,UeU includehiddenuh!jVh]h"Utoctreer)Vubah"jUubeh"jUubah"jUubh6jQU)r*V}r+V(hUh}r,V(h]h]h]h]h]uh]r-VjVU)r.V}r/V(hUh}r0V(h]h]h]h]h]uh!j*Vh]r1Vj[U)r2V}r3V(hUh}r4V(h]h]h]h]h]uh!j.Vh]r5Vj`U)r6V}r7V(hUh}r8V(U anchornameUUrefurih6h]h]h]h]h]Uinternaluh!j2Vh]r9VhX Movie Reneger:Vr;V}rh!j6Vubah"jhUubah"jiUubah"jUubah"jUubh?jQU)r=V}r>V(hUh}r?V(h]h]h]h]h]uh]r@VjVU)rAV}rBV(hUh}rCV(h]h]h]h]h]uh!j=Vh]rDV(j[U)rEV}rFV(hUh}rGV(h]h]h]h]h]uh!jAVh]rHVj`U)rIV}rJV(hUh}rKV(U anchornameUUrefurih?h]h]h]h]h]Uinternaluh!jEVh]rLVhX About SimPyrMVrNV}rOV(hhGh!jIVubah"jhUubah"jiUubjQU)rPV}rQV(hUh}rRV(h]h]h]h]h]uh!jAVh]rSVjV)rTV}rUV(hUh}rVV(UnumberedKUparenth?U titlesonlyUglobh]h]h]h]h]Uentries]rWV(NjBUrXVNjCUrYVNjDUrZVNjEUr[VNjFUr\VeUhiddenUmaxdepthKU includefiles]r]V(jBUjCUjDUjEUjFUeU includehiddenuh!jPVh]h"j)Vubah"jUubeh"jUubah"jUubhHjQU)r^V}r_V(hUh}r`V(h]h]h]h]h]uh]raVjVU)rbV}rcV(hUh}rdV(h]h]h]h]h]uh!j^Vh]reV(j[U)rfV}rgV(hUh}rhV(h]h]h]h]h]uh!jbVh]riVj`U)rjV}rkV(hUh}rlV(U anchornameUUrefurihHh]h]h]h]h]Uinternaluh!jfVh]rmVhXDocumentation for SimPyrnVroV}rpV(hhPh!jjVubah"jhUubah"jiUubjQU)rqV}rrV(hUh}rsV(h]h]h]h]h]uh!jbVh]rtV(jV)ruV}rvV(hUh}rwV(UnumberedKUparenthHU titlesonlyUglobh]h]h]h]h]Uentries]rxV(X SimPy homejHUryVNjIUrzVNjJUr{VNjKUr|VNjLUr}VNjMUr~VeUhiddenUmaxdepthKU includefiles]rV(jHUjIUjJUjKUjLUjMUeU includehiddenuh!jqVh]h"j)VubjVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jqVh]rVj[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameU#indices-and-tablesUrefurihHh]h]h]h]h]Uinternaluh!jVh]rVhXIndices and tablesrVrV}rV(hXIndices and tablesh!jVubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubhQjQU)rV}rV(hUh}rV(h]h]h]h]h]uh]rVjVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rV(j[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameUUrefurihQh]h]h]h]h]Uinternaluh!jVh]rVhXSimPy History & Change LogrVrV}rV(hhYh!jVubah"jhUubah"jiUubjQU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rV(jVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameU#id1UrefurihQh]h]h]h]h]Uinternaluh!jVh]rVhX3.0.4 – 2014-04-07rVrV}rV(hX3.0.4 – 2014-04-07h!jVubah"jhUubah"jiUubah"jUubjVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameU#id2UrefurihQh]h]h]h]h]Uinternaluh!jVh]rVhX3.0.3 – 2014-03-06rVrV}rV(hX3.0.3 – 2014-03-06h!jVubah"jhUubah"jiUubah"jUubjVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameU#id3UrefurihQh]h]h]h]h]Uinternaluh!jVh]rVhX3.0.2 – 2013-10-24rVrV}rV(hX3.0.2 – 2013-10-24h!jVubah"jhUubah"jiUubah"jUubjVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameU#id4UrefurihQh]h]h]h]h]Uinternaluh!jVh]rVhX3.0.1 – 2013-10-24rVrV}rV(hX3.0.1 – 2013-10-24h!jVubah"jhUubah"jiUubah"jUubjVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameU#id5UrefurihQh]h]h]h]h]Uinternaluh!jVh]rVhX3.0 – 2013-10-11rVrV}rV(hX3.0 – 2013-10-11h!jVubah"jhUubah"jiUubah"jUubjVU)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj[U)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVj`U)rV}rV(hUh}rV(U anchornameU#id10UrefurihQh]h]h]h]h]Uinternaluh!jVh]rVhX2.3.1 – 2012-01-28rVrV}rV(hX2.3.1 – 2012-01-28h!jVubah"jhUubah"jiUubah"jUubjVU)rW}rW(hUh}rW(h]h]h]h]h]uh!jVh]rWj[U)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWj`U)rW}r W(hUh}r W(U anchornameU#id11UrefurihQh]h]h]h]h]Uinternaluh!jWh]r WhX2.3 – 2011-12-24r Wr W}rW(hX2.3 – 2011-12-24h!jWubah"jhUubah"jiUubah"jUubjVU)rW}rW(hUh}rW(h]h]h]h]h]uh!jVh]rWj[U)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWj`U)rW}rW(hUh}rW(U anchornameU#id12UrefurihQh]h]h]h]h]Uinternaluh!jWh]rWhX2.2 – 2011-09-27rWrW}rW(hX2.2 – 2011-09-27h!jWubah"jhUubah"jiUubah"jUubjVU)rW}rW(hUh}r W(h]h]h]h]h]uh!jVh]r!Wj[U)r"W}r#W(hUh}r$W(h]h]h]h]h]uh!jWh]r%Wj`U)r&W}r'W(hUh}r(W(U anchornameU#id13UrefurihQh]h]h]h]h]Uinternaluh!j"Wh]r)WhX2.1 – 2010-06-03r*Wr+W}r,W(hX2.1 – 2010-06-03h!j&Wubah"jhUubah"jiUubah"jUubjVU)r-W}r.W(hUh}r/W(h]h]h]h]h]uh!jVh]r0Wj[U)r1W}r2W(hUh}r3W(h]h]h]h]h]uh!j-Wh]r4Wj`U)r5W}r6W(hUh}r7W(U anchornameU#id14UrefurihQh]h]h]h]h]Uinternaluh!j1Wh]r8WhX2.0.1 – 2009-04-06r9Wr:W}r;W(hX2.0.1 – 2009-04-06h!j5Wubah"jhUubah"jiUubah"jUubjVU)rW(h]h]h]h]h]uh!jVh]r?W(j[U)r@W}rAW(hUh}rBW(h]h]h]h]h]uh!jX(h]h]h]h]h]uh!j8Xh]r?Xj`U)r@X}rAX(hUh}rBX(U anchornameU#february-2005-version-1-5-1UrefurihQh]h]h]h]h]Uinternaluh!jY(hXChanges in SimPy 2h!j8Yubah"jhUubah"jiUubah"jUubjVU)r?Y}r@Y(hUh}rAY(h]h]h]h]h]uh!jYh]rBY(j[U)rCY}rDY(hUh}rEY(h]h]h]h]h]uh!j?Yh]rFYj`U)rGY}rHY(hUh}rIY(U anchornameU!#changes-and-decisions-in-simpy-3UrefurihZh]h]h]h]h]Uinternaluh!jCYh]rJYhX Changes and Decisions in SimPy 3rKYrLY}rMY(hX Changes and Decisions in SimPy 3h!jGYubah"jhUubah"jiUubjQU)rNY}rOY(hUh}rPY(h]h]h]h]h]uh!j?Yh]rQY(jVU)rRY}rSY(hUh}rTY(h]h]h]h]h]uh!jNYh]rUYj[U)rVY}rWY(hUh}rXY(h]h]h]h]h]uh!jRYh]rYYj`U)rZY}r[Y(hUh}r\Y(U anchornameU #no-more-sub-classing-of-processUrefurihZh]h]h]h]h]Uinternaluh!jVYh]r]Y(hXNo More Sub-classing of r^Yr_Y}r`Y(hXNo More Sub-classing of h!jZYubhz)raY}rbY(hX ``Process``h}rcY(h]h]h]h]h]uh!jZYh]rdYhXProcessreYrfY}rgY(hUh!jaYubah"hubeh"jhUubah"jiUubah"jUubjVU)rhY}riY(hUh}rjY(h]h]h]h]h]uh!jNYh]rkYj[U)rlY}rmY(hUh}rnY(h]h]h]h]h]uh!jhYh]roYj`U)rpY}rqY(hUh}rrY(U anchornameU!#processes-live-in-an-environmentUrefurihZh]h]h]h]h]Uinternaluh!jlYh]rsYhX Processes Live in an EnvironmentrtYruY}rvY(hX Processes Live in an Environmenth!jpYubah"jhUubah"jiUubah"jUubjVU)rwY}rxY(hUh}ryY(h]h]h]h]h]uh!jNYh]rzYj[U)r{Y}r|Y(hUh}r}Y(h]h]h]h]h]uh!jwYh]r~Yj`U)rY}rY(hUh}rY(U anchornameU#stronger-focus-on-eventsUrefurihZh]h]h]h]h]Uinternaluh!j{Yh]rYhXStronger Focus on EventsrYrY}rY(hXStronger Focus on Eventsh!jYubah"jhUubah"jiUubah"jUubjVU)rY}rY(hUh}rY(h]h]h]h]h]uh!jNYh]rYj[U)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj`U)rY}rY(hUh}rY(U anchornameU1#creating-events-via-the-environment-or-resourcesUrefurihZh]h]h]h]h]Uinternaluh!jYh]rYhX0Creating Events via the Environment or ResourcesrYrY}rY(hX0Creating Events via the Environment or Resourcesh!jYubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubeh"jUubeh"jUubah"jUubhcjQU)rY}rY(hUh}rY(h]h]h]h]h]uh]rYjVU)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj[U)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj`U)rY}rY(hUh}rY(U anchornameUUrefurihch]h]h]h]h]Uinternaluh!jYh]rYhX SimPy homerYrY}rY(hhkh!jYubah"jhUubah"jiUubah"jUubah"jUubhljQU)rY}rY(hUh}rY(h]h]h]h]h]uh]rYjVU)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rY(j[U)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj`U)rY}rY(hUh}rY(U anchornameUUrefurihlh]h]h]h]h]Uinternaluh!jYh]rYhXPorting from SimPy 2 to 3rYrY}rY(hhth!jYubah"jhUubah"jiUubjQU)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rY(jVU)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj[U)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj`U)rY}rY(hUh}rY(U anchornameU#importsUrefurihlh]h]h]h]h]Uinternaluh!jYh]rYhXImportsrYrY}rY(hXImportsrYh!jYubah"jhUubah"jiUubah"jUubjVU)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj[U)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj`U)rY}rY(hUh}rY(U anchornameU#the-simulation-classesUrefurihlh]h]h]h]h]Uinternaluh!jYh]rY(hXThe rYrY}rY(hXThe rYh!jYubhz)rY}rY(hX``Simulation*``rYh}rY(h]h]h]h]h]uh!jYh]rYhX Simulation*rYrY}rY(hUh!jYubah"hubhX classesrYrY}rY(hX classesrYh!jYubeh"jhUubah"jiUubah"jUubjVU)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj[U)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj`U)rY}rY(hUh}rY(U anchornameU#defining-a-processUrefurihlh]h]h]h]h]Uinternaluh!jYh]rYhXDefining a ProcessrYrY}rY(hXDefining a ProcessrYh!jYubah"jhUubah"jiUubah"jUubjVU)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYj[U)rY}rZ(hUh}rZ(h]h]h]h]h]uh!jYh]rZj`U)rZ}rZ(hUh}rZ(U anchornameU#simpy-keywords-hold-etcUrefurihlh]h]h]h]h]Uinternaluh!jYh]rZ(hXSimPy Keywords (rZrZ}r Z(hXSimPy Keywords (r Zh!jZubhz)r Z}r Z(hX``hold``r Zh}rZ(h]h]h]h]h]uh!jZh]rZhXholdrZrZ}rZ(hUh!j Zubah"hubhX etc.)rZrZ}rZ(hX etc.)rZh!jZubeh"jhUubah"jiUubah"jUubjVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jYh]rZj[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj`U)rZ}r Z(hUh}r!Z(U anchornameU #interruptsUrefurihlh]h]h]h]h]Uinternaluh!jZh]r"ZhX Interruptsr#Zr$Z}r%Z(hX Interruptsr&Zh!jZubah"jhUubah"jiUubah"jUubjVU)r'Z}r(Z(hUh}r)Z(h]h]h]h]h]uh!jYh]r*Zj[U)r+Z}r,Z(hUh}r-Z(h]h]h]h]h]uh!j'Zh]r.Zj`U)r/Z}r0Z(hUh}r1Z(U anchornameU #conclusionUrefurihlh]h]h]h]h]Uinternaluh!j+Zh]r2ZhX Conclusionr3Zr4Z}r5Z(hX Conclusionr6Zh!j/Zubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubhujQU)r7Z}r8Z(hUh}r9Z(h]h]h]h]h]uh]r:ZjVU)r;Z}rZj[U)r?Z}r@Z(hUh}rAZ(h]h]h]h]h]uh!j;Zh]rBZj`U)rCZ}rDZ(hUh}rEZ(U anchornameUUrefurihuh]h]h]h]h]Uinternaluh!j?Zh]rFZ(hz)rGZ}rHZ(hh}h}rIZ(h]h]h]h]h]uh!jCZh]rJZhX simpy.utilrKZrLZ}rMZ(hUh!jGZubah"hubhX --- Utility functions for SimPyrNZrOZ}rPZ(hhh!jCZubeh"jhUubah"jiUubah"jUubah"jUubhjQU)rQZ}rRZ(hUh}rSZ(h]h]h]h]h]uh]rTZjVU)rUZ}rVZ(hUh}rWZ(h]h]h]h]h]uh!jQZh]rXZj[U)rYZ}rZZ(hUh}r[Z(h]h]h]h]h]uh!jUZh]r\Zj`U)r]Z}r^Z(hUh}r_Z(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jYZh]r`ZhXProcess CommunicationraZrbZ}rcZ(hhh!j]Zubah"jhUubah"jiUubah"jUubah"jUubhjQU)rdZ}reZ(hUh}rfZ(h]h]h]h]h]uh]rgZjVU)rhZ}riZ(hUh}rjZ(h]h]h]h]h]uh!jdZh]rkZj[U)rlZ}rmZ(hUh}rnZ(h]h]h]h]h]uh!jhZh]roZj`U)rpZ}rqZ(hUh}rrZ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jlZh]rsZhXLicensertZruZ}rvZ(hhh!jpZubah"jhUubah"jiUubah"jUubah"jUubhjQU)rwZ}rxZ(hUh}ryZ(h]h]h]h]h]uh]rzZjVU)r{Z}r|Z(hUh}r}Z(h]h]h]h]h]uh!jwZh]r~Z(j[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!j{Zh]rZj`U)rZ}rZ(hUh}rZ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhX SimPy basicsrZrZ}rZ(hhh!jZubah"jhUubah"jiUubjQU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!j{Zh]rZ(jVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj`U)rZ}rZ(hUh}rZ(U anchornameU#how-simpy-worksUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhXHow SimPy worksrZrZ}rZ(hXHow SimPy worksrZh!jZubah"jhUubah"jiUubah"jUubjVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj`U)rZ}rZ(hUh}rZ(U anchornameU+#best-practice-version-of-the-example-aboveUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhX,"Best practice" version of the example aboverZrZ}rZ(hX,"Best practice" version of the example aboverZh!jZubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubhjQU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj`U)rZ}rZ(hUh}rZ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhXAcknowledgmentsrZrZ}rZ(hhh!jZubah"jhUubah"jiUubah"jUubah"jUubhjQU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj`U)rZ}rZ(hUh}rZ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhX Bank RenegerZrZ}rZ(hhh!jZubah"jhUubah"jiUubah"jUubah"jUubhjQU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZ(j[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj`U)rZ}rZ(hUh}rZ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhXBasic ConceptsrZrZ}rZ(hhh!jZubah"jhUubah"jiUubjQU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZ(jVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj[U)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj`U)rZ}rZ(hUh}rZ(U anchornameU#our-first-processUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhXOur First ProcessrZrZ}rZ(hXOur First ProcessrZh!jZubah"jhUubah"jiUubah"jUubjVU)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZj[U)rZ}r[(hUh}r[(h]h]h]h]h]uh!jZh]r[j`U)r[}r[(hUh}r[(U anchornameU #what-s-nextUrefurihh]h]h]h]h]Uinternaluh!jZh]r[hX What's Next?r[r[}r [(hX What's Next?r [h!j[ubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubhjQU)r [}r [(hUh}r [(h]h]h]h]h]uh]r[jVU)r[}r[(hUh}r[(h]h]h]h]h]uh!j [h]r[j[U)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j`U)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]r[(hz)r[}r[(hhh}r[(h]h]h]h]h]uh!j[h]r[hXsimpy.monitoringr[r [}r![(hUh!jbah"hubhX --- Monitor SimPy simulationsr"[r#[}r$[(hhh!j[ubeh"jhUubah"jiUubah"jUubah"jUubhjQU)r%[}r&[(hUh}r'[(h]h]h]h]h]uh]r([jVU)r)[}r*[(hUh}r+[(h]h]h]h]h]uh!j%[h]r,[j[U)r-[}r.[(hUh}r/[(h]h]h]h]h]uh!j)[h]r0[j`U)r1[}r2[(hUh}r3[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j-[h]r4[(hz)r5[}r6[(hhh}r7[(h]h]h]h]h]uh!j1[h]r8[hX simpy.eventsr9[r:[}r;[(hUh!j5[ubah"hubhX --- Core event typesr<[r=[}r>[(hhh!j1[ubeh"jhUubah"jiUubah"jUubah"jUubhjQU)r?[}r@[(hUh}rA[(h]h]h]h]h]uh]rB[jVU)rC[}rD[(hUh}rE[(h]h]h]h]h]uh!j?[h]rF[(j[U)rG[}rH[(hUh}rI[(h]h]h]h]h]uh!jC[h]rJ[j`U)rK[}rL[(hUh}rM[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jG[h]rN[hXShared ResourcesrO[rP[}rQ[(hhh!jK[ubah"jhUubah"jiUubjQU)rR[}rS[(hUh}rT[(h]h]h]h]h]uh!jC[h]rU[(jVU)rV[}rW[(hUh}rX[(h]h]h]h]h]uh!jR[h]rY[j[U)rZ[}r[[(hUh}r\[(h]h]h]h]h]uh!jV[h]r][j`U)r^[}r_[(hUh}r`[(U anchornameU#basic-resource-usageUrefurihh]h]h]h]h]Uinternaluh!jZ[h]ra[hXBasic Resource Usagerb[rc[}rd[(hXBasic Resource Usageh!j^[ubah"jhUubah"jiUubah"jUubjVU)re[}rf[(hUh}rg[(h]h]h]h]h]uh!jR[h]rh[j[U)ri[}rj[(hUh}rk[(h]h]h]h]h]uh!je[h]rl[j`U)rm[}rn[(hUh}ro[(U anchornameU #what-s-nextUrefurihh]h]h]h]h]Uinternaluh!ji[h]rp[hX What's Nextrq[rr[}rs[(hX What's Nexth!jm[ubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubhjQU)rt[}ru[(hUh}rv[(h]h]h]h]h]uh]rw[jVU)rx[}ry[(hUh}rz[(h]h]h]h]h]uh!jt[h]r{[j[U)r|[}r}[(hUh}r~[(h]h]h]h]h]uh!jx[h]r[j`U)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j|[h]r[hXGas Station Refuelingr[r[}r[(hhh!j[ubah"jhUubah"jiUubah"jUubah"jUubhjQU)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jVU)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j[U)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j`U)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]r[(hz)r[}r[(hhh}r[(h]h]h]h]h]uh!j[h]r[hXsimpy.resources.containerr[r[}r[(hUh!j[ubah"hubhX --- Container type resourcesr[r[}r[(hjh!j[ubeh"jhUubah"jiUubah"jUubah"jUubjjQU)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jVU)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j[U)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j`U)r[}r[(hUh}r[(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j[h]r[(hz)r[}r[(hj h}r[(h]h]h]h]h]uh!j[h]r[hX simpy.corer[r[}r[(hUh!j[ubah"hubhX --- SimPy's core componentsr[r[}r[(hjh!j[ubeh"jhUubah"jiUubah"jUubah"jUubjjQU)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jVU)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[(j[U)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j`U)r[}r[(hUh}r[(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j[h]r[hXTopical Guidesr[r[}r[(hjh!j[ubah"jhUubah"jiUubjQU)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(UnumberedKUparentjU titlesonlyUglobh]h]h]h]h]Uentries]r[(Nj#Ur[Nj$Ur[Nj%Ur[Nj&Ur[eUhiddenUmaxdepthJU includefiles]r[(j#Uj$Uj%Uj&UeU includehiddenuh!j[h]h"j)Vubah"jUubeh"jUubah"jUubjjQU)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jVU)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[(j[U)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j`U)r[}r[(hUh}r[(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j[h]r[hXExamplesr[r[}r[(hj%h!j[ubah"jhUubah"jiUubjQU)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[(jVU)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j[U)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[j`U)r[}r[(hUh}r[(U anchornameU#condition-eventsUrefurijh]h]h]h]h]Uinternaluh!j[h]r[hXCondition eventsr[r[}r\(hXCondition eventsr\h!j[ubah"jhUubah"jiUubah"jUubjVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j[h]r\j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r \j`U)r \}r \(hUh}r \(U anchornameU #interruptsUrefurijh]h]h]h]h]Uinternaluh!j\h]r \hX Interruptsr\r\}r\(hX Interruptsr\h!j \ubah"jhUubah"jiUubah"jUubjVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j[h]r\j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j`U)r\}r\(hUh}r\(U anchornameU #monitoringUrefurijh]h]h]h]h]Uinternaluh!j\h]r\hX Monitoringr\r\}r \(hX Monitoringr!\h!j\ubah"jhUubah"jiUubah"jUubjVU)r"\}r#\(hUh}r$\(h]h]h]h]h]uh!j[h]r%\j[U)r&\}r'\(hUh}r(\(h]h]h]h]h]uh!j"\h]r)\j`U)r*\}r+\(hUh}r,\(U anchornameU#resources-containerUrefurijh]h]h]h]h]Uinternaluh!j&\h]r-\hXResources: Containerr.\r/\}r0\(hXResources: Containerr1\h!j*\ubah"jhUubah"jiUubah"jUubjVU)r2\}r3\(hUh}r4\(h]h]h]h]h]uh!j[h]r5\j[U)r6\}r7\(hUh}r8\(h]h]h]h]h]uh!j2\h]r9\j`U)r:\}r;\(hUh}r<\(U anchornameU#resources-preemptive-resourceUrefurijh]h]h]h]h]Uinternaluh!j6\h]r=\hXResources: Preemptive Resourcer>\r?\}r@\(hXResources: Preemptive ResourcerA\h!j:\ubah"jhUubah"jiUubah"jUubjVU)rB\}rC\(hUh}rD\(h]h]h]h]h]uh!j[h]rE\j[U)rF\}rG\(hUh}rH\(h]h]h]h]h]uh!jB\h]rI\j`U)rJ\}rK\(hUh}rL\(U anchornameU#resources-resourceUrefurijh]h]h]h]h]Uinternaluh!jF\h]rM\hXResources: ResourcerN\rO\}rP\(hXResources: ResourcerQ\h!jJ\ubah"jhUubah"jiUubah"jUubjVU)rR\}rS\(hUh}rT\(h]h]h]h]h]uh!j[h]rU\j[U)rV\}rW\(hUh}rX\(h]h]h]h]h]uh!jR\h]rY\j`U)rZ\}r[\(hUh}r\\(U anchornameU#resources-storeUrefurijh]h]h]h]h]Uinternaluh!jV\h]r]\hXResources: Storer^\r_\}r`\(hXResources: Storera\h!jZ\ubah"jhUubah"jiUubah"jUubjVU)rb\}rc\(hUh}rd\(h]h]h]h]h]uh!j[h]re\j[U)rf\}rg\(hUh}rh\(h]h]h]h]h]uh!jb\h]ri\j`U)rj\}rk\(hUh}rl\(U anchornameU#shared-eventsUrefurijh]h]h]h]h]Uinternaluh!jf\h]rm\hX Shared eventsrn\ro\}rp\(hX Shared eventsrq\h!jj\ubah"jhUubah"jiUubah"jUubjVU)rr\}rs\(hUh}rt\(h]h]h]h]h]uh!j[h]ru\j[U)rv\}rw\(hUh}rx\(h]h]h]h]h]uh!jr\h]ry\j`U)rz\}r{\(hUh}r|\(U anchornameU#waiting-for-other-processesUrefurijh]h]h]h]h]Uinternaluh!jv\h]r}\hXWaiting for other processesr~\r\}r\(hXWaiting for other processesr\h!jz\ubah"jhUubah"jiUubah"jUubjVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j[h]r\(j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j`U)r\}r\(hUh}r\(U anchornameU #all-examplesUrefurijh]h]h]h]h]Uinternaluh!j\h]r\hX All examplesr\r\}r\(hX All examplesr\h!j\ubah"jhUubah"jiUubjQU)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(UnumberedKUparentjU titlesonlyUglobh]h]h]h]h]Uentries]r\(Nj.Ur\Nj/Ur\Nj0Ur\Nj1Ur\Nj2Ur\Nj3Ur\Nj4Ur\eUhiddenUmaxdepthJU includefiles]r\(j.Uj/Uj0Uj1Uj2Uj3Uj4UeU includehiddenuh!j\h]h"j)Vubah"jUubeh"jUubeh"jUubeh"jUubah"jUubj&jQU)r\}r\(hUh}r\(h]h]h]h]h]uh]r\jVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\(j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j`U)r\}r\(hUh}r\(U anchornameUUrefurij&h]h]h]h]h]Uinternaluh!j\h]r\(hz)r\}r\(hj-h}r\(h]h]h]h]h]uh!j\h]r\hXsimpyr\r\}r\(hUh!j\ubah"hubhX --- The end user APIr\r\}r\(hj6h!j\ubeh"jhUubah"jiUubjQU)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\(jVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j`U)r\}r\(hUh}r\(U anchornameU#core-classes-and-functionsUrefurij&h]h]h]h]h]Uinternaluh!j\h]r\hXCore classes and functionsr\r\}r\(hXCore classes and functionsh!j\ubah"jhUubah"jiUubah"jUubjVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j`U)r\}r\(hUh}r\(U anchornameU #resourcesUrefurij&h]h]h]h]h]Uinternaluh!j\h]r\hX Resourcesr\r\}r\(hX Resourcesh!j\ubah"jhUubah"jiUubah"jUubjVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j`U)r\}r\(hUh}r\(U anchornameU #monitoringUrefurij&h]h]h]h]h]Uinternaluh!j\h]r\hX Monitoringr\r\}r\(hX Monitoringh!j\ubah"jhUubah"jiUubah"jUubjVU)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j[U)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\j`U)r\}r\(hUh}r\(U anchornameU#otherUrefurij&h]h]h]h]h]Uinternaluh!j\h]r\hXOtherr\r\}r\(hXOtherh!j\ubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubj7jQU)r\}r\(hUh}r\(h]h]h]h]h]uh]r\jVU)r]}r](hUh}r](h]h]h]h]h]uh!j\h]r](j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r ](hUh}r ](U anchornameUUrefurij7h]h]h]h]h]Uinternaluh!j]h]r ]hX Installationr ]r ]}r](hj?h!j]ubah"jhUubah"jiUubjQU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r](jVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameU#upgrading-from-simpy-2Urefurij7h]h]h]h]h]Uinternaluh!j]h]r]hXUpgrading from SimPy 2r]r ]}r!](hXUpgrading from SimPy 2r"]h!j]ubah"jhUubah"jiUubah"jUubjVU)r#]}r$](hUh}r%](h]h]h]h]h]uh!j]h]r&]j[U)r']}r(](hUh}r)](h]h]h]h]h]uh!j#]h]r*]j`U)r+]}r,](hUh}r-](U anchornameU #what-s-nextUrefurij7h]h]h]h]h]Uinternaluh!j']h]r.]hX What's Nextr/]r0]}r1](hX What's Nextr2]h!j+]ubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubj@jQU)r3]}r4](hUh}r5](h]h]h]h]h]uh]r6]jVU)r7]}r8](hUh}r9](h]h]h]h]h]uh!j3]h]r:]j[U)r;]}r<](hUh}r=](h]h]h]h]h]uh!j7]h]r>]j`U)r?]}r@](hUh}rA](U anchornameUUrefurij@h]h]h]h]h]Uinternaluh!j;]h]rB]hX Machine ShoprC]rD]}rE](hjHh!j?]ubah"jhUubah"jiUubah"jUubah"jUubjIjQU)rF]}rG](hUh}rH](h]h]h]h]h]uh]rI]jVU)rJ]}rK](hUh}rL](h]h]h]h]h]uh!jF]h]rM](j[U)rN]}rO](hUh}rP](h]h]h]h]h]uh!jJ]h]rQ]j`U)rR]}rS](hUh}rT](U anchornameUUrefurijIh]h]h]h]h]Uinternaluh!jN]h]rU]hX API ReferencerV]rW]}rX](hjQh!jR]ubah"jhUubah"jiUubjQU)rY]}rZ](hUh}r[](h]h]h]h]h]uh!jJ]h]r\]jV)r]]}r^](hUh}r_](UnumberedKUparentjIU titlesonlyUglobh]h]h]h]h]Uentries]r`](Nj6Ura]Nj7Urb]Nj8Urc]Nj9Urd]Nj:Ure]Nj;Urf]NjUri]Nj?Urj]Nj@Urk]eUhiddenUmaxdepthJU includefiles]rl](j6Uj7Uj8Uj9Uj:Uj;UjUj?Uj@UeU includehiddenuh!jY]h]h"j)Vubah"jUubeh"jUubah"jUubjRjQU)rm]}rn](hUh}ro](h]h]h]h]h]uh]rp]jVU)rq]}rr](hUh}rs](h]h]h]h]h]uh!jm]h]rt](j[U)ru]}rv](hUh}rw](h]h]h]h]h]uh!jq]h]rx]j`U)ry]}rz](hUh}r{](U anchornameUUrefurijRh]h]h]h]h]Uinternaluh!ju]h]r|]hXRelease Processr}]r~]}r](hjZh!jy]ubah"jhUubah"jiUubjQU)r]}r](hUh}r](h]h]h]h]h]uh!jq]h]r](jVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameU #preparationsUrefurijRh]h]h]h]h]Uinternaluh!j]h]r]hX Preparationsr]r]}r](hX Preparationsh!j]ubah"jhUubah"jiUubah"jUubjVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameU#build-and-releaseUrefurijRh]h]h]h]h]Uinternaluh!j]h]r]hXBuild and releaser]r]}r](hXBuild and releaseh!j]ubah"jhUubah"jiUubah"jUubjVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameU #post-releaseUrefurijRh]h]h]h]h]Uinternaluh!j]h]r]hX Post releaser]r]}r](hX Post releaseh!j]ubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubj[jQU)r]}r](hUh}r](h]h]h]h]h]uh]r]jVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameUUrefurij[h]h]h]h]h]Uinternaluh!j]h]r](hz)r]}r](hjbh}r](h]h]h]h]h]uh!j]h]r]hXsimpy.resources.resourcer]r]}r](hUh!j]ubah"hubhX -- Resource type resourcesr]r]}r](hjkh!j]ubeh"jhUubah"jiUubah"jUubah"jUubjljQU)r]}r](hUh}r](h]h]h]h]h]uh]r]jVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameUUrefurijlh]h]h]h]h]Uinternaluh!j]h]r]hXCarwashr]r]}r](hjth!j]ubah"jhUubah"jiUubah"jUubah"jUubjujQU)r]}r](hUh}r](h]h]h]h]h]uh]r]jVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r](j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameUUrefurijuh]h]h]h]h]Uinternaluh!j]h]r]hX Environmentsr]r]}r](hj}h!j]ubah"jhUubah"jiUubjQU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r](jVU)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j[U)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]j`U)r]}r](hUh}r](U anchornameU#simulation-controlUrefurijuh]h]h]h]h]Uinternaluh!j]h]r^hXSimulation controlr^r^}r^(hXSimulation controlr^h!j]ubah"jhUubah"jiUubah"jUubjVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j]h]r^j[U)r ^}r ^(hUh}r ^(h]h]h]h]h]uh!j^h]r ^j`U)r ^}r^(hUh}r^(U anchornameU #state-accessUrefurijuh]h]h]h]h]Uinternaluh!j ^h]r^hX State accessr^r^}r^(hX State accessr^h!j ^ubah"jhUubah"jiUubah"jUubjVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j]h]r^j[U)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j`U)r^}r^(hUh}r^(U anchornameU#event-creationUrefurijuh]h]h]h]h]Uinternaluh!j^h]r ^hXEvent creationr!^r"^}r#^(hXEvent creationr$^h!j^ubah"jhUubah"jiUubah"jUubjVU)r%^}r&^(hUh}r'^(h]h]h]h]h]uh!j]h]r(^j[U)r)^}r*^(hUh}r+^(h]h]h]h]h]uh!j%^h]r,^j`U)r-^}r.^(hUh}r/^(U anchornameU#miscellaneousUrefurijuh]h]h]h]h]Uinternaluh!j)^h]r0^hX Miscellaneousr1^r2^}r3^(hX Miscellaneousr4^h!j-^ubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubj~jQU)r5^}r6^(hUh}r7^(h]h]h]h]h]uh]r8^jVU)r9^}r:^(hUh}r;^(h]h]h]h]h]uh!j5^h]r<^j[U)r=^}r>^(hUh}r?^(h]h]h]h]h]uh!j9^h]r@^j`U)rA^}rB^(hUh}rC^(U anchornameUUrefurij~h]h]h]h]h]Uinternaluh!j=^h]rD^(hz)rE^}rF^(hjh}rG^(h]h]h]h]h]uh!jA^h]rH^hXsimpy.resources.storerI^rJ^}rK^(hUh!jE^ubah"hubhX --- Store type resourcesrL^rM^}rN^(hjh!jA^ubeh"jhUubah"jiUubah"jUubah"jUubjjQU)rO^}rP^(hUh}rQ^(h]h]h]h]h]uh]rR^jVU)rS^}rT^(hUh}rU^(h]h]h]h]h]uh!jO^h]rV^j[U)rW^}rX^(hUh}rY^(h]h]h]h]h]uh!jS^h]rZ^j`U)r[^}r\^(hUh}r]^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!jW^h]r^^hX Event Latencyr_^r`^}ra^(hjh!j[^ubah"jhUubah"jiUubah"jUubah"jUubjjQU)rb^}rc^(hUh}rd^(h]h]h]h]h]uh]re^jVU)rf^}rg^(hUh}rh^(h]h]h]h]h]uh!jb^h]ri^j[U)rj^}rk^(hUh}rl^(h]h]h]h]h]uh!jf^h]rm^j`U)rn^}ro^(hUh}rp^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!jj^h]rq^(hz)rr^}rs^(hjh}rt^(h]h]h]h]h]uh!jn^h]ru^hXsimpy.resources.baserv^rw^}rx^(hUh!jr^ubah"hubhX# --- Base classes for all resourcesry^rz^}r{^(hjh!jn^ubeh"jhUubah"jiUubah"jUubah"jUubjjQU)r|^}r}^(hUh}r~^(h]h]h]h]h]uh]r^jVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j|^h]r^j[U)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j`U)r^}r^(hUh}r^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j^h]r^(hz)r^}r^(hjh}r^(h]h]h]h]h]uh!j^h]r^hXsimpy.resourcesr^r^}r^(hUh!j^ubah"hubhX$ --- SimPy's built-in resource typesr^r^}r^(hjh!j^ubeh"jhUubah"jiUubah"jUubah"jUubjjQU)r^}r^(hUh}r^(h]h]h]h]h]uh]r^jVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^(j[U)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j`U)r^}r^(hUh}r^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hXProcess Interactionr^r^}r^(hjh!j^ubah"jhUubah"jiUubjQU)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^(jVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j[U)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j`U)r^}r^(hUh}r^(U anchornameU#waiting-for-a-processUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hXWaiting for a Processr^r^}r^(hXWaiting for a Processh!j^ubah"jhUubah"jiUubah"jUubjVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j[U)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j`U)r^}r^(hUh}r^(U anchornameU#interrupting-another-processUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hXInterrupting Another Processr^r^}r^(hXInterrupting Another Processh!j^ubah"jhUubah"jiUubah"jUubjVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j[U)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j`U)r^}r^(hUh}r^(U anchornameU #what-s-nextUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hX What's Nextr^r^}r^(hX What's Nexth!j^ubah"jhUubah"jiUubah"jUubeh"jUubeh"jUubah"jUubjjQU)r^}r^(hUh}r^(h]h]h]h]h]uh]r^jVU)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j[U)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^j`U)r^}r^(hUh}r^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j^h]r^(hz)r^}r^(hjh}r^(h]h]h]h]h]uh!j^h]r^hXsimpy.rtr^r^}r^(hUh!j^ubah"hubhX --- Real-time simulationsr^r^}r^(hjh!j^ubeh"jhUubah"jiUubah"jUubah"jUubuU indexentriesr^}r^(h]h$]h-]h6]h?]hH]hQ]hZ]hc]hl]hu]r^((Usingler^Xsimpy.util (module)Xmodule-simpy.utilUtr^(j^X&start_delayed() (in module simpy.util)jUtr^(j^X%subscribe_at() (in module simpy.util)j]Utr^eh]h]h]h]h]h]h]r^(j^Xsimpy.monitoring (module)Xmodule-simpy.monitoringUtr^ah]r^((j^Xsimpy.events (module)Xmodule-simpy.eventsUtr^(j^X PENDING (in module simpy.events)jUtr^(j^XURGENT (in module simpy.events)jRUtr_(j^XNORMAL (in module simpy.events)jCUtr_(j^XEvent (class in simpy.events)jFUtr_(j^X"env (simpy.events.Event attribute)j:Utr_(j^X(callbacks (simpy.events.Event attribute)j>Utr_(j^X(triggered (simpy.events.Event attribute)jUtr_(j^X(processed (simpy.events.Event attribute)jUtr_(j^X$value (simpy.events.Event attribute)jUtr_(j^X%trigger() (simpy.events.Event method)j-Utr_(j^X%succeed() (simpy.events.Event method)j3Utr _(j^X"fail() (simpy.events.Event method)jUtr _(j^XTimeout (class in simpy.events)jmUtr _(j^X"Initialize (class in simpy.events)jyUtr _(j^XProcess (class in simpy.events)jUtr _(j^X'target (simpy.events.Process attribute)jUtr_(j^X)is_alive (simpy.events.Process attribute)jYUtr_(j^X)interrupt() (simpy.events.Process method)jUUtr_(j^X!Condition (class in simpy.events)jUtr_(j^X3all_events() (simpy.events.Condition static method)jUtr_(j^X3any_events() (simpy.events.Condition static method)j\Utr_(j^XAllOf (class in simpy.events)jUtr_(j^XAnyOf (class in simpy.events)j.Utr_(j^X Interruptj6Utr_(j^X(cause (simpy.events.Interrupt attribute)j7Utr_eh]h]h]r_((j^X"simpy.resources.container (module)X module-simpy.resources.containerUtr_(j^X.Container (class in simpy.resources.container)jUtr_(j^X8capacity (simpy.resources.container.Container attribute)j)Utr_(j^X5level (simpy.resources.container.Container attribute)jUtr_(j^X3put (simpy.resources.container.Container attribute)jUtr_(j^X3get (simpy.resources.container.Container attribute)jbUtr_(j^X1ContainerPut (class in simpy.resources.container)jUtr_(j^X9amount (simpy.resources.container.ContainerPut attribute)jLUtr _(j^X1ContainerGet (class in simpy.resources.container)jUtr!_(j^X9amount (simpy.resources.container.ContainerGet attribute)jOUtr"_ej]r#_((j^Xsimpy.core (module)Xmodule-simpy.coreUtr$_(j^X%BaseEnvironment (class in simpy.core)jeUtr%_(j^X*now (simpy.core.BaseEnvironment attribute)jUtr&_(j^X5active_process (simpy.core.BaseEnvironment attribute)jUtr'_(j^X.schedule() (simpy.core.BaseEnvironment method)j`Utr(_(j^X*step() (simpy.core.BaseEnvironment method)jUtr)_(j^X)run() (simpy.core.BaseEnvironment method)j|Utr*_(j^X!Environment (class in simpy.core)jUtr+_(j^X&now (simpy.core.Environment attribute)jUtr,_(j^X1active_process (simpy.core.Environment attribute)j'Utr-_(j^X)process() (simpy.core.Environment method)j+Utr._(j^X)timeout() (simpy.core.Environment method)jUtr/_(j^X'event() (simpy.core.Environment method)jUtr0_(j^X(all_of() (simpy.core.Environment method)jUtr1_(j^X(any_of() (simpy.core.Environment method)jGUtr2_(j^X&exit() (simpy.core.Environment method)jsUtr3_(j^X*schedule() (simpy.core.Environment method)j Utr4_(j^X&peek() (simpy.core.Environment method)jUtr5_(j^X&step() (simpy.core.Environment method)jiUtr6_(j^X%run() (simpy.core.Environment method)jkUtr7_(j^X BoundClass (class in simpy.core)jWUtr8_(j^X2bind_early() (simpy.core.BoundClass static method)jAUtr9_(j^X#EmptySchedule (class in simpy.core)jUtr:_(j^XInfinity (in module simpy.core)juUtr;_ej]j]j&]r<_((j^Xsimpy (module)X module-simpyUtr=_(j^Xtest() (in module simpy)jrUtr>_ej7]j@]jI]jR]j[]r?_((j^X!simpy.resources.resource (module)Xmodule-simpy.resources.resourceUtr@_(j^X,Resource (class in simpy.resources.resource)jUtrA_(j^X3users (simpy.resources.resource.Resource attribute)jMUtrB_(j^X3queue (simpy.resources.resource.Resource attribute)jPUtrC_(j^X6capacity (simpy.resources.resource.Resource attribute)jpUtrD_(j^X3count (simpy.resources.resource.Resource attribute)jZUtrE_(j^X5request (simpy.resources.resource.Resource attribute)jUtrF_(j^X5release (simpy.resources.resource.Resource attribute)jUtrG_(j^X4PriorityResource (class in simpy.resources.resource)jnUtrH_(j^X>PutQueue (simpy.resources.resource.PriorityResource attribute)jUtrI_(j^X>GetQueue (simpy.resources.resource.PriorityResource attribute)jUtrJ_(j^X=request (simpy.resources.resource.PriorityResource attribute)jUtrK_(j^X6PreemptiveResource (class in simpy.resources.resource)jwUtrL_(j^X-Preempted (class in simpy.resources.resource)jDUtrM_(j^X1by (simpy.resources.resource.Preempted attribute)j1UtrN_(j^X:usage_since (simpy.resources.resource.Preempted attribute)jUtrO_(j^X+Request (class in simpy.resources.resource)j<UtrP_(j^X+Release (class in simpy.resources.resource)j4UtrQ_(j^X4request (simpy.resources.resource.Release attribute)jUtrR_(j^X3PriorityRequest (class in simpy.resources.resource)jUtrS_(j^X=priority (simpy.resources.resource.PriorityRequest attribute)jUtrT_(j^X<preempt (simpy.resources.resource.PriorityRequest attribute)j UtrU_(j^X9time (simpy.resources.resource.PriorityRequest attribute)jUtrV_(j^X8key (simpy.resources.resource.PriorityRequest attribute)j~UtrW_(j^X/SortedQueue (class in simpy.resources.resource)jUtrX_(j^X7maxlen (simpy.resources.resource.SortedQueue attribute)jcUtrY_(j^X6append() (simpy.resources.resource.SortedQueue method)jUtrZ_ejl]ju]j~]r[_((j^Xsimpy.resources.store (module)Xmodule-simpy.resources.storeUtr\_(j^X&Store (class in simpy.resources.store)jUtr]_(j^X-items (simpy.resources.store.Store attribute)jUtr^_(j^X0capacity (simpy.resources.store.Store attribute)jUtr__(j^X+put (simpy.resources.store.Store attribute)jgUtr`_(j^X+get (simpy.resources.store.Store attribute)jUtra_(j^X,FilterStore (class in simpy.resources.store)jJUtrb_(j^X6GetQueue (simpy.resources.store.FilterStore attribute)jUtrc_(j^X1get (simpy.resources.store.FilterStore attribute)jUtrd_(j^X)StorePut (class in simpy.resources.store)jSUtre_(j^X/item (simpy.resources.store.StorePut attribute)j?Utrf_(j^X)StoreGet (class in simpy.resources.store)jUtrg_(j^X/FilterStoreGet (class in simpy.resources.store)j/Utrh_(j^X7filter (simpy.resources.store.FilterStoreGet attribute)jUtri_(j^X,FilterQueue (class in simpy.resources.store)jUtrj_(j^X8__getitem__() (simpy.resources.store.FilterQueue method)jUtrk_(j^X5__bool__() (simpy.resources.store.FilterQueue method)jUtrl_(j^X8__nonzero__() (simpy.resources.store.FilterQueue method)j#Utrm_ej]j]rn_((j^Xsimpy.resources.base (module)Xmodule-simpy.resources.baseUtro_(j^X,BaseResource (class in simpy.resources.base)j{Utrp_(j^X6PutQueue (simpy.resources.base.BaseResource attribute)j!Utrq_(j^X6GetQueue (simpy.resources.base.BaseResource attribute)jUtrr_(j^X7put_queue (simpy.resources.base.BaseResource attribute)jVUtrs_(j^X7get_queue (simpy.resources.base.BaseResource attribute)jUtrt_(j^X1put (simpy.resources.base.BaseResource attribute)jUtru_(j^X1get (simpy.resources.base.BaseResource attribute)j&Utrv_(j^X4_do_put() (simpy.resources.base.BaseResource method)j;Utrw_(j^X9_trigger_put() (simpy.resources.base.BaseResource method)jUtrx_(j^X4_do_get() (simpy.resources.base.BaseResource method)jUtry_(j^X9_trigger_get() (simpy.resources.base.BaseResource method)jUtrz_(j^X#Put (class in simpy.resources.base)jUtr{_(j^X*cancel() (simpy.resources.base.Put method)jUtr|_(j^X#Get (class in simpy.resources.base)j*Utr}_(j^X*cancel() (simpy.resources.base.Get method)jUtr~_ej]r_(j^Xsimpy.resources (module)Xmodule-simpy.resourcesUtr_aj]j]r_((j^Xsimpy.rt (module)Xmodule-simpy.rtUtr_(j^X'RealtimeEnvironment (class in simpy.rt)jUtr_(j^X/factor (simpy.rt.RealtimeEnvironment attribute)jUtr_(j^X/strict (simpy.rt.RealtimeEnvironment attribute)jUtr_(j^X,step() (simpy.rt.RealtimeEnvironment method)jUtr_euUall_docsr_}r_(hGAVOUh$GAVBh-GAVCOh6GAV>wh?GAUgjhHGAV6ahQGAUhZGAUhcGAV@;ihlGAVShuGAV5PhGAV?hGAUhGAVVhGAU֞hGAV7<>hGAVAhGAV hGAV thGAVG{NhGAV9-ohGAVyjGAUJjGAVPC1jGAV;9j&GAUݭj7GAVDsj@GAV=xWjIGAUwpjRGAUmj[GAV'*jlGAV8,0juGAVKhj~GAV0)jGAVUh]r_jIaRr_j4Uh]r_jaRr_j;Uh]r_jIaRr_j:Uh]r_jIaRr_j*Uh]r_h-aRr_j?Uh]r_jIaRr_uUtoc_secnumbersr_}U_nitpick_ignorer_h]Rr_ub.PK@D . #simpy-3.0.4/.doctrees/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX simpy homeqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU simpy-homeqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qX;/var/build/user_builds/simpy/checkouts/3.0.4/docs/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX SimPy homeq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X SimPy homeq3q4}q5(hh.hh,ubaubcdocutils.nodes comment q6)q7}q8(hX9_templates/index.html contains the content for this page.hhhhhUcommentq9h}q:(U xml:spaceq;Upreserveqq?}q@(hUhh7ubaubeubahUU transformerqANU footnote_refsqB}qCUrefnamesqD}qEUsymbol_footnotesqF]qGUautofootnote_refsqH]qIUsymbol_footnote_refsqJ]qKU citationsqL]qMh)hU current_lineqNNUtransform_messagesqO]qPUreporterqQNUid_startqRKU autofootnotesqS]qTU citation_refsqU}qVUindirect_targetsqW]qXUsettingsqY(cdocutils.frontend Values qZoq[}q\(Ufootnote_backlinksq]KUrecord_dependenciesq^NU rfc_base_urlq_Uhttp://tools.ietf.org/html/q`U tracebackqaUpep_referencesqbNUstrip_commentsqcNU toc_backlinksqdUentryqeU language_codeqfUenqgU datestampqhNU report_levelqiKU _destinationqjNU halt_levelqkKU strip_classesqlNh/NUerror_encoding_error_handlerqmUbackslashreplaceqnUdebugqoNUembed_stylesheetqpUoutput_encoding_error_handlerqqUstrictqrU sectnum_xformqsKUdump_transformsqtNU docinfo_xformquKUwarning_streamqvNUpep_file_url_templateqwUpep-%04dqxUexit_status_levelqyKUconfigqzNUstrict_visitorq{NUcloak_email_addressesq|Utrim_footnote_reference_spaceq}Uenvq~NUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqU;/var/build/user_builds/simpy/checkouts/3.0.4/docs/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhrUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK@D z&simpy-3.0.4/.doctrees/contents.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xdocumentation for simpyqNXindices and tablesqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hUdocumentation-for-simpyqhUindices-and-tablesquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qX>/var/build/user_builds/simpy/checkouts/3.0.4/docs/contents.rstqq}qbUtagnameqUsectionq U attributesq!}q"(Udupnamesq#]Uclassesq$]Ubackrefsq%]Uidsq&]q'haUnamesq(]q)hauUlineq*KUdocumentq+hh]q,(cdocutils.nodes title q-)q.}q/(hXDocumentation for SimPyq0hhhhhUtitleq1h!}q2(h#]h$]h%]h&]h(]uh*Kh+hh]q3cdocutils.nodes Text q4XDocumentation for SimPyq5q6}q7(hh0hh.ubaubcdocutils.nodes paragraph q8)q9}q:(hX Contents:q;hhhhhU paragraphqh4X Contents:q?q@}qA(hh;hh9ubaubcdocutils.nodes compound qB)qC}qD(hUhhhhhUcompoundqEh!}qF(h#]h$]qGUtoctree-wrapperqHah%]h&]h(]uh*Nh+hh]qIcsphinx.addnodes toctree qJ)qK}qL(hUhhChhhUtoctreeqMh!}qN(UnumberedqOKU includehiddenqPhXcontentsqQU titlesonlyqRUglobqSh&]h%]h#]h$]h(]UentriesqT]qU(X SimPy homeXindexqVqWNXsimpy_intro/indexqXqYNXtopical_guides/indexqZq[NXexamples/indexq\q]NXapi_reference/indexq^q_NX about/indexq`qaeUhiddenqbU includefilesqc]qd(hVhXhZh\h^h`eUmaxdepthqeKuh*Kh]ubaubh)qf}qg(hUhhhhhh h!}qh(h#]h$]h%]h&]qihah(]qjhauh*Kh+hh]qk(h-)ql}qm(hXIndices and tablesqnhhfhhhh1h!}qo(h#]h$]h%]h&]h(]uh*Kh+hh]qph4XIndices and tablesqqqr}qs(hhnhhlubaubcdocutils.nodes bullet_list qt)qu}qv(hUhhfhhhU bullet_listqwh!}qx(UbulletqyX*h&]h%]h#]h$]h(]uh*Kh+hh]qz(cdocutils.nodes list_item q{)q|}q}(hX:ref:`genindex`q~hhuhhhU list_itemqh!}q(h#]h$]h%]h&]h(]uh*Nh+hh]qh8)q}q(hh~hh|hhhh/var/build/user_builds/simpy/checkouts/3.0.4/docs/contents.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongr Uinput_encoding_error_handlerr hUauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhfhhuUsubstitution_namesr}rhh+h!}r(h#]h&]h%]Usourcehh$]h(]uU footnotesr]rUrefidsr}rub.PK@D8{]K%K%8simpy-3.0.4/.doctrees/api_reference/simpy.events.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy.events.ProcessqXsimpy.events.AnyOfqX!simpy.events.Condition.any_eventsqXsimpy.events.Event.succeedq Xsimpy.events.Interruptq Xsimpy.events.Interrupt.causeq Xsimpy.events.Event.valueq Xsimpy.events.AllOfq Xsimpy.events.Event.envqXsimpy.events.TimeoutqXsimpy.events.Event.callbacksqXsimpy.events.Process.targetqXsimpy.events.NORMALqXsimpy.events.ConditionqXsimpy.events.Event.failqXsimpy.events.EventqXsimpy.events.InitializeqXsimpy.events.Event.processedqXsimpy.events.PENDINGqXsimpy.events.Event.triggeredqX!simpy.events --- core event typesqNXsimpy.events.URGENTqX!simpy.events.Condition.all_eventsqXsimpy.events.Process.interruptqXsimpy.events.Process.is_aliveqXsimpy.events.Event.triggerquUsubstitution_defsq }q!Uparse_messagesq"]q#Ucurrent_sourceq$NU decorationq%NUautofootnote_startq&KUnameidsq'}q((hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhhhUsimpy-events-core-event-typesq)hhhhhhhhhhuUchildrenq*]q+cdocutils.nodes section q,)q-}q.(U rawsourceq/UUparentq0hUsourceq1cdocutils.nodes reprunicode q2XP/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.events.rstq3q4}q5bUtagnameq6Usectionq7U attributesq8}q9(Udupnamesq:]Uclassesq;]Ubackrefsq<]Uidsq=]q>(Xmodule-simpy.eventsq?h)eUnamesq@]qAhauUlineqBKUdocumentqChh*]qD(cdocutils.nodes title qE)qF}qG(h/X%``simpy.events`` --- Core event typesqHh0h-h1h4h6UtitleqIh8}qJ(h:]h;]h<]h=]h@]uhBKhChh*]qK(cdocutils.nodes literal qL)qM}qN(h/X``simpy.events``qOh8}qP(h:]h;]h<]h=]h@]uh0hFh*]qQcdocutils.nodes Text qRX simpy.eventsqSqT}qU(h/Uh0hMubah6UliteralqVubhRX --- Core event typesqWqX}qY(h/X --- Core event typesqZh0hFubeubcsphinx.addnodes index q[)q\}q](h/Uh0h-h1U q^h6Uindexq_h8}q`(h=]h<]h:]h;]h@]Uentries]qa(UsingleqbXsimpy.events (module)Xmodule-simpy.eventsUtqcauhBKhChh*]ubcdocutils.nodes paragraph qd)qe}qf(h/XLThis *events* module contains the various event type used by the SimPy core.qgh0h-h1XV/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.eventsqhh6U paragraphqih8}qj(h:]h;]h<]h=]h@]uhBKhChh*]qk(hRXThis qlqm}qn(h/XThis h0heubcdocutils.nodes emphasis qo)qp}qq(h/X*events*h8}qr(h:]h;]h<]h=]h@]uh0heh*]qshRXeventsqtqu}qv(h/Uh0hpubah6UemphasisqwubhRX? module contains the various event type used by the SimPy core.qxqy}qz(h/X? module contains the various event type used by the SimPy core.h0heubeubhd)q{}q|(h/XThe base class for all events is :class:`Event`. Though it can be directly used, there are several specialized subclasses of it:h0h-h1hhh6hih8}q}(h:]h;]h<]h=]h@]uhBKhChh*]q~(hRX!The base class for all events is qq}q(h/X!The base class for all events is h0h{ubcsphinx.addnodes pending_xref q)q}q(h/X:class:`Event`qh0h{h1h4h6U pending_xrefqh8}q(UreftypeXclassUrefwarnqU reftargetqXEventU refdomainXpyqh=]h<]U refexplicith:]h;]h@]UrefdocqXapi_reference/simpy.eventsqUpy:classqNU py:moduleqX simpy.eventsquhBKh*]qhL)q}q(h/hh8}q(h:]h;]q(UxrefqhXpy-classqeh<]h=]h@]uh0hh*]qhRXEventqq}q(h/Uh0hubah6hVubaubhRXQ. Though it can be directly used, there are several specialized subclasses of it:qq}q(h/XQ. Though it can be directly used, there are several specialized subclasses of it:h0h{ubeubcdocutils.nodes bullet_list q)q}q(h/Uh0h-h1hhh6U bullet_listqh8}q(UbulletqX-h=]h<]h:]h;]h@]uhBKhChh*]q(cdocutils.nodes list_item q)q}q(h/Xv:class:`Timeout`: is scheduled with a certain delay and lets processes hold their state for a certain amount of time. h0hh1hhh6U list_itemqh8}q(h:]h;]h<]h=]h@]uhBNhChh*]qhd)q}q(h/Xu:class:`Timeout`: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.h0hh1hhh6hih8}q(h:]h;]h<]h=]h@]uhBKh*]q(h)q}q(h/X:class:`Timeout`qh0hh1h4h6hh8}q(UreftypeXclasshhXTimeoutU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBK h*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRXTimeoutqq}q(h/Uh0hubah6hVubaubhRXe: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.qq}q(h/Xe: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.h0hubeubaubh)q}q(h/X9:class:`Initialize`: Initializes a new :class:`Process`. h0hh1hhh6hh8}q(h:]h;]h<]h=]h@]uhBNhChh*]qhd)q}q(h/X8:class:`Initialize`: Initializes a new :class:`Process`.h0hh1hhh6hih8}q(h:]h;]h<]h=]h@]uhBK h*]q(h)q}q(h/X:class:`Initialize`qh0hh1Nh6hh8}q(UreftypeXclasshhX InitializeU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRX InitializeqՅq}q(h/Uh0hubah6hVubaubhRX: Initializes a new q؅q}q(h/X: Initializes a new h0hubh)q}q(h/X:class:`Process`qh0hh1Nh6hh8}q(UreftypeXclasshhXProcessU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRXProcessq煁q}q(h/Uh0hubah6hVubaubhRX.q}q(h/X.h0hubeubaubh)q}q(h/Xq:class:`Process`: Processes are also modeled as an event so other processes can wait until another one finishes. h0hh1hhh6hh8}q(h:]h;]h<]h=]h@]uhBNhChh*]qhd)q}q(h/Xp:class:`Process`: Processes are also modeled as an event so other processes can wait until another one finishes.h0hh1hhh6hih8}q(h:]h;]h<]h=]h@]uhBK h*]q(h)q}q(h/X:class:`Process`qh0hh1Nh6hh8}q(UreftypeXclasshhXProcessU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRXProcessrr}r(h/Uh0hubah6hVubaubhRX`: Processes are also modeled as an event so other processes can wait until another one finishes.rr}r(h/X`: Processes are also modeled as an event so other processes can wait until another one finishes.h0hubeubaubh)r}r(h/X:class:`Condition`: Events can be concatenated with ``|`` an ``&`` to either wait until one or both of the events are triggered. h0hh1hhh6hh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/X:class:`Condition`: Events can be concatenated with ``|`` an ``&`` to either wait until one or both of the events are triggered.h0jh1hhh6hih8}r (h:]h;]h<]h=]h@]uhBKh*]r (h)r}r(h/X:class:`Condition`rh0j h1Nh6hh8}r(UreftypeXclasshhX ConditionU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRX Conditionrr}r(h/Uh0jubah6hVubaubhRX": Events can be concatenated with rr}r(h/X": Events can be concatenated with h0j ubhL)r }r!(h/X``|``h8}r"(h:]h;]h<]h=]h@]uh0j h*]r#hRX|r$}r%(h/Uh0j ubah6hVubhRX an r&r'}r((h/X an h0j ubhL)r)}r*(h/X``&``h8}r+(h:]h;]h<]h=]h@]uh0j h*]r,hRX&r-}r.(h/Uh0j)ubah6hVubhRX> to either wait until one or both of the events are triggered.r/r0}r1(h/X> to either wait until one or both of the events are triggered.h0j ubeubaubh)r2}r3(h/Xd:class:`AllOf`: Special case of :class:`Condition`; wait until a list of events has been triggered. h0hh1hhh6hh8}r4(h:]h;]h<]h=]h@]uhBNhChh*]r5hd)r6}r7(h/Xc:class:`AllOf`: Special case of :class:`Condition`; wait until a list of events has been triggered.h0j2h1hhh6hih8}r8(h:]h;]h<]h=]h@]uhBKh*]r9(h)r:}r;(h/X:class:`AllOf`r<h0j6h1Nh6hh8}r=(UreftypeXclasshhXAllOfU refdomainXpyr>h=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]r?hL)r@}rA(h/j<h8}rB(h:]h;]rC(hj>Xpy-classrDeh<]h=]h@]uh0j:h*]rEhRXAllOfrFrG}rH(h/Uh0j@ubah6hVubaubhRX: Special case of rIrJ}rK(h/X: Special case of h0j6ubh)rL}rM(h/X:class:`Condition`rNh0j6h1Nh6hh8}rO(UreftypeXclasshhX ConditionU refdomainXpyrPh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rQhL)rR}rS(h/jNh8}rT(h:]h;]rU(hjPXpy-classrVeh<]h=]h@]uh0jLh*]rWhRX ConditionrXrY}rZ(h/Uh0jRubah6hVubaubhRX1; wait until a list of events has been triggered.r[r\}r](h/X1; wait until a list of events has been triggered.h0j6ubeubaubh)r^}r_(h/Xk:class:`AnyOf`: Special case of :class:`Condition`; wait until one of a list of events has been triggered. h0hh1hhh6hh8}r`(h:]h;]h<]h=]h@]uhBNhChh*]rahd)rb}rc(h/Xj:class:`AnyOf`: Special case of :class:`Condition`; wait until one of a list of events has been triggered.h0j^h1hhh6hih8}rd(h:]h;]h<]h=]h@]uhBKh*]re(h)rf}rg(h/X:class:`AnyOf`rhh0jbh1Nh6hh8}ri(UreftypeXclasshhXAnyOfU refdomainXpyrjh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rkhL)rl}rm(h/jhh8}rn(h:]h;]ro(hjjXpy-classrpeh<]h=]h@]uh0jfh*]rqhRXAnyOfrrrs}rt(h/Uh0jlubah6hVubaubhRX: Special case of rurv}rw(h/X: Special case of h0jbubh)rx}ry(h/X:class:`Condition`rzh0jbh1Nh6hh8}r{(UreftypeXclasshhX ConditionU refdomainXpyr|h=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]r}hL)r~}r(h/jzh8}r(h:]h;]r(hj|Xpy-classreh<]h=]h@]uh0jxh*]rhRX Conditionrr}r(h/Uh0j~ubah6hVubaubhRX8; wait until one of a list of events has been triggered.rr}r(h/X8; wait until one of a list of events has been triggered.h0jbubeubaubeubhd)r}r(h/X8This module also defines the :exc:`Interrupt` exception.rh0h-h1hhh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXThis module also defines the rr}r(h/XThis module also defines the h0jubh)r}r(h/X:exc:`Interrupt`rh0jh1Nh6hh8}r(UreftypeXexchhX InterruptU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-excreh<]h=]h@]uh0jh*]rhRX Interruptrr}r(h/Uh0jubah6hVubaubhRX exception.rr}r(h/X exception.h0jubeubh[)r}r(h/Uh0h-h1X^/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.PENDINGrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX PENDING (in module simpy.events)hUtrauhBNhChh*]ubcsphinx.addnodes desc r)r}r(h/Uh0h-h1jh6Udescrh8}r(UnoindexrUdomainrXpyh=]h<]h:]h;]h@]UobjtyperXdatarUdesctyperjuhBNhChh*]r(csphinx.addnodes desc_signature r)r}r(h/XPENDINGrh0jh1U rh6Udesc_signaturerh8}r(h=]rhaUmodulerh2X simpy.eventsrr}rbh<]h:]h;]h@]rhaUfullnamerjUclassrUUfirstruhBNhChh*]r(csphinx.addnodes desc_addname r)r}r(h/X simpy.events.h0jh1jh6U desc_addnamerh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubcsphinx.addnodes desc_name r)r}r(h/jh0jh1jh6U desc_namerh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXPENDINGrr}r(h/Uh0jubaubcsphinx.addnodes desc_annotation r)r}r(h/X = object()h0jh1jh6Udesc_annotationrh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX = object()rr}r(h/Uh0jubaubeubcsphinx.addnodes desc_content r)r}r(h/Uh0jh1jh6U desc_contentrh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X3Unique object to identify pending values of events.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX3Unique object to identify pending values of events.rr}r(h/jh0jubaubaubeubh[)r}r(h/Uh0h-h1X]/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.URGENTrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbXURGENT (in module simpy.events)hUtrauhBNhChh*]ubj)r}r(h/Uh0h-h1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXdatarjjuhBNhChh*]r(j)r}r(h/XURGENTrh0jh1jh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajjjUjuhBNhChh*]r(j)r}r(h/X simpy.events.h0jh1jh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr }r (h/Uh0jubaubj)r }r (h/jh0jh1jh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]rhRXURGENTrr}r(h/Uh0j ubaubj)r}r(h/X = 0h0jh1jh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX = 0rr}r(h/Uh0jubaubeubj)r}r(h/Uh0jh1jh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X9Priority of interrupts and process initialization events.rh0jh1jh6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r!hRX9Priority of interrupts and process initialization events.r"r#}r$(h/jh0jubaubaubeubh[)r%}r&(h/Uh0h-h1X]/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.NORMALr'h6h_h8}r((h=]h<]h:]h;]h@]Uentries]r)(hbXNORMAL (in module simpy.events)hUtr*auhBNhChh*]ubj)r+}r,(h/Uh0h-h1j'h6jh8}r-(jjXpyh=]h<]h:]h;]h@]jXdatar.jj.uhBNhChh*]r/(j)r0}r1(h/XNORMALr2h0j+h1jh6jh8}r3(h=]r4hajh2X simpy.eventsr5r6}r7bh<]h:]h;]h@]r8hajj2jUjuhBNhChh*]r9(j)r:}r;(h/X simpy.events.h0j0h1jh6jh8}r<(h:]h;]h<]h=]h@]uhBNhChh*]r=hRX simpy.events.r>r?}r@(h/Uh0j:ubaubj)rA}rB(h/j2h0j0h1jh6jh8}rC(h:]h;]h<]h=]h@]uhBNhChh*]rDhRXNORMALrErF}rG(h/Uh0jAubaubj)rH}rI(h/X = 1h0j0h1jh6jh8}rJ(h:]h;]h<]h=]h@]uhBNhChh*]rKhRX = 1rLrM}rN(h/Uh0jHubaubeubj)rO}rP(h/Uh0j+h1jh6jh8}rQ(h:]h;]h<]h=]h@]uhBNhChh*]rRhd)rS}rT(h/X Default priority used by events.rUh0jOh1j'h6hih8}rV(h:]h;]h<]h=]h@]uhBKhChh*]rWhRX Default priority used by events.rXrY}rZ(h/jUh0jSubaubaubeubh[)r[}r\(h/Uh0h-h1Nh6h_h8}r](h=]h<]h:]h;]h@]Uentries]r^(hbXEvent (class in simpy.events)hUtr_auhBNhChh*]ubj)r`}ra(h/Uh0h-h1Nh6jh8}rb(jjXpyh=]h<]h:]h;]h@]jXclassrcjjcuhBNhChh*]rd(j)re}rf(h/X Event(env)h0j`h1U rgh6jh8}rh(h=]rihajh2X simpy.eventsrjrk}rlbh<]h:]h;]h@]rmhajXEventrnjUjuhBNhChh*]ro(j)rp}rq(h/Xclass h0jeh1jgh6jh8}rr(h:]h;]h<]h=]h@]uhBNhChh*]rshRXclass rtru}rv(h/Uh0jpubaubj)rw}rx(h/X simpy.events.h0jeh1jgh6jh8}ry(h:]h;]h<]h=]h@]uhBNhChh*]rzhRX simpy.events.r{r|}r}(h/Uh0jwubaubj)r~}r(h/jnh0jeh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXEventrr}r(h/Uh0j~ubaubcsphinx.addnodes desc_parameterlist r)r}r(h/Uh0jeh1jgh6Udesc_parameterlistrh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rcsphinx.addnodes desc_parameter r)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6Udesc_parameterrubaubeubj)r}r(h/Uh0j`h1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XBase class for all events.rh0jh1X\/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Eventrh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXBase class for all events.rr}r(h/jh0jubaubhd)r}r(h/XtEvery event is bound to an environment *env* (see :class:`~simpy.core.BaseEnvironment`) and has an optional *value*.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX'Every event is bound to an environment rr}r(h/X'Every event is bound to an environment h0jubho)r}r(h/X*env*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6hwubhRX (see rr}r(h/X (see h0jubh)r}r(h/X$:class:`~simpy.core.BaseEnvironment`rh0jh1Nh6hh8}r(UreftypeXclasshhXsimpy.core.BaseEnvironmentU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXBaseEnvironmentrr}r(h/Uh0jubah6hVubaubhRX) and has an optional rr}r(h/X) and has an optional h0jubho)r}r(h/X*value*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXvaluerr}r(h/Uh0jubah6hwubhRX.r}r(h/X.h0jubeubhd)r}r(h/XPAn event has a list of :attr:`callbacks`. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals---you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXAn event has a list of rr}r(h/XAn event has a list of h0jubh)r}r(h/X:attr:`callbacks`rh0jh1Nh6hh8}r(UreftypeXattrhhX callbacksU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-attrreh<]h=]h@]uh0jh*]rhRX callbacksrr}r(h/Uh0jubah6hVubaubhRX(. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals---you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.rr}r(h/X(. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals---you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.h0jubeubhd)r}r(h/XThis class also implements ``__and__()`` (``&``) and ``__or__()`` (``|``). If you concatenate two events using one of these operators, a :class:`Condition` event is generated that lets you wait for both or one of them.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBK hChh*]r(hRXThis class also implements rr}r(h/XThis class also implements h0jubhL)r}r(h/X ``__and__()``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX __and__()rr}r(h/Uh0jubah6hVubhRX (rr}r(h/X (h0jubhL)r}r(h/X``&``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX&r}r(h/Uh0jubah6hVubhRX) and rr}r(h/X) and h0jubhL)r}r(h/X ``__or__()``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX__or__()rr}r(h/Uh0jubah6hVubhRX (rr}r (h/X (h0jubhL)r }r (h/X``|``h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRX|r}r(h/Uh0j ubah6hVubhRXA). If you concatenate two events using one of these operators, a rr}r(h/XA). If you concatenate two events using one of these operators, a h0jubh)r}r(h/X:class:`Condition`rh0jh1Nh6hh8}r(UreftypeXclasshhX ConditionU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRX Conditionrr }r!(h/Uh0jubah6hVubaubhRX? event is generated that lets you wait for both or one of them.r"r#}r$(h/X? event is generated that lets you wait for both or one of them.h0jubeubh[)r%}r&(h/Uh0jh1X`/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.envr'h6h_h8}r((h=]h<]h:]h;]h@]Uentries]r)(hbX"env (simpy.events.Event attribute)hUtr*auhBNhChh*]ubj)r+}r,(h/Uh0jh1j'h6jh8}r-(jjXpyh=]h<]h:]h;]h@]jX attributer.jj.uhBNhChh*]r/(j)r0}r1(h/X Event.envh0j+h1U r2h6jh8}r3(h=]r4hajh2X simpy.eventsr5r6}r7bh<]h:]h;]h@]r8hajX Event.envjjnjuhBNhChh*]r9(j)r:}r;(h/Xenvh0j0h1j2h6jh8}r<(h:]h;]h<]h=]h@]uhBNhChh*]r=hRXenvr>r?}r@(h/Uh0j:ubaubj)rA}rB(h/X = Noneh0j0h1j2h6jh8}rC(h:]h;]h<]h=]h@]uhBNhChh*]rDhRX = NonerErF}rG(h/Uh0jAubaubeubj)rH}rI(h/Uh0j+h1j2h6jh8}rJ(h:]h;]h<]h=]h@]uhBNhChh*]rKhd)rL}rM(h/X8The :class:`~simpy.core.Environment` the event lives in.h0jHh1j'h6hih8}rN(h:]h;]h<]h=]h@]uhBKhChh*]rO(hRXThe rPrQ}rR(h/XThe h0jLubh)rS}rT(h/X :class:`~simpy.core.Environment`rUh0jLh1Nh6hh8}rV(UreftypeXclasshhXsimpy.core.EnvironmentU refdomainXpyrWh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rXhL)rY}rZ(h/jUh8}r[(h:]h;]r\(hjWXpy-classr]eh<]h=]h@]uh0jSh*]r^hRX Environmentr_r`}ra(h/Uh0jYubah6hVubaubhRX the event lives in.rbrc}rd(h/X the event lives in.h0jLubeubaubeubh[)re}rf(h/Uh0jh1Xf/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.callbacksrgh6h_h8}rh(h=]h<]h:]h;]h@]Uentries]ri(hbX(callbacks (simpy.events.Event attribute)hUtrjauhBNhChh*]ubj)rk}rl(h/Uh0jh1jgh6jh8}rm(jjXpyh=]h<]h:]h;]h@]jX attributernjjnuhBNhChh*]ro(j)rp}rq(h/XEvent.callbacksh0jkh1j2h6jh8}rr(h=]rshajh2X simpy.eventsrtru}rvbh<]h:]h;]h@]rwhajXEvent.callbacksjjnjuhBNhChh*]rx(j)ry}rz(h/X callbacksh0jph1j2h6jh8}r{(h:]h;]h<]h=]h@]uhBNhChh*]r|hRX callbacksr}r~}r(h/Uh0jyubaubj)r}r(h/X = Noneh0jph1j2h6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX = Nonerr}r(h/Uh0jubaubeubj)r}r(h/Uh0jkh1j2h6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X>List of functions that are called when the event is processed.rh0jh1jgh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX>List of functions that are called when the event is processed.rr}r(h/jh0jubaubaubeubh[)r}r(h/Uh0jh1Xf/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.triggeredrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX(triggered (simpy.events.Event attribute)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/XEvent.triggeredh0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXEvent.triggeredjjnjuhBNhChh*]rj)r}r(h/X triggeredh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX triggeredrr}r(h/Uh0jubaubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X[Becomes ``True`` if the event has been triggered and its callbacks are about to be invoked.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXBecomes rr}r(h/XBecomes h0jubhL)r}r(h/X``True``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXTruerr}r(h/Uh0jubah6hVubhRXK if the event has been triggered and its callbacks are about to be invoked.rr}r(h/XK if the event has been triggered and its callbacks are about to be invoked.h0jubeubaubeubh[)r}r(h/Uh0jh1Xf/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.processedrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX(processed (simpy.events.Event attribute)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/XEvent.processedh0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXEvent.processedjjnjuhBNhChh*]rj)r}r(h/X processedh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX processedrr}r(h/Uh0jubaubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/XYBecomes ``True`` if the event has been processed (e.g., its callbacks have been invoked).h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXBecomes rr}r(h/XBecomes h0jubhL)r}r(h/X``True``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXTruerr}r(h/Uh0jubah6hVubhRXI if the event has been processed (e.g., its callbacks have been invoked).rr}r(h/XI if the event has been processed (e.g., its callbacks have been invoked).h0jubeubaubeubh[)r}r(h/Uh0jh1Xb/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.valuerh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX$value (simpy.events.Event attribute)h UtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/X Event.valueh0jh1jgh6jh8}r(h=]rh ajh2X simpy.eventsrr}rbh<]h:]h;]h@]rh ajX Event.valuejjnjuhBNhChh*]rj)r}r(h/Xvalueh0jh1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXvaluer r }r (h/Uh0jubaubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/X*The value of the event if it is available.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX*The value of the event if it is available.rr}r(h/jh0jubaubhd)r}r(h/X9The value is available when the event has been triggered.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX9The value is available when the event has been triggered.rr }r!(h/jh0jubaubhd)r"}r#(h/X@Raise a :exc:`AttributeError` if the value is not yet available.h0jh1jh6hih8}r$(h:]h;]h<]h=]h@]uhBKhChh*]r%(hRXRaise a r&r'}r((h/XRaise a h0j"ubh)r)}r*(h/X:exc:`AttributeError`r+h0j"h1Nh6hh8}r,(UreftypeXexchhXAttributeErrorU refdomainXpyr-h=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]r.hL)r/}r0(h/j+h8}r1(h:]h;]r2(hj-Xpy-excr3eh<]h=]h@]uh0j)h*]r4hRXAttributeErrorr5r6}r7(h/Uh0j/ubah6hVubaubhRX# if the value is not yet available.r8r9}r:(h/X# if the value is not yet available.h0j"ubeubeubeubh[)r;}r<(h/Uh0jh1Xd/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.triggerr=h6h_h8}r>(h=]h<]h:]h;]h@]Uentries]r?(hbX%trigger() (simpy.events.Event method)hUtr@auhBNhChh*]ubj)rA}rB(h/Uh0jh1j=h6jh8}rC(jjXpyh=]h<]h:]h;]h@]jXmethodrDjjDuhBNhChh*]rE(j)rF}rG(h/XEvent.trigger(event)h0jAh1jgh6jh8}rH(h=]rIhajh2X simpy.eventsrJrK}rLbh<]h:]h;]h@]rMhajX Event.triggerjjnjuhBNhChh*]rN(j)rO}rP(h/Xtriggerh0jFh1jgh6jh8}rQ(h:]h;]h<]h=]h@]uhBNhChh*]rRhRXtriggerrSrT}rU(h/Uh0jOubaubj)rV}rW(h/Uh0jFh1jgh6jh8}rX(h:]h;]h<]h=]h@]uhBNhChh*]rYj)rZ}r[(h/Xeventh8}r\(h:]h;]h<]h=]h@]uh0jVh*]r]hRXeventr^r_}r`(h/Uh0jZubah6jubaubeubj)ra}rb(h/Uh0jAh1jgh6jh8}rc(h:]h;]h<]h=]h@]uhBNhChh*]rd(hd)re}rf(h/XDTriggers the event with the state and value of the provided *event*.h0jah1j=h6hih8}rg(h:]h;]h<]h=]h@]uhBKhChh*]rh(hRX<Triggers the event with the state and value of the provided rirj}rk(h/X<Triggers the event with the state and value of the provided h0jeubho)rl}rm(h/X*event*h8}rn(h:]h;]h<]h=]h@]uh0jeh*]rohRXeventrprq}rr(h/Uh0jlubah6hwubhRX.rs}rt(h/X.h0jeubeubhd)ru}rv(h/X8This method can be used directly as a callback function.rwh0jah1j=h6hih8}rx(h:]h;]h<]h=]h@]uhBKhChh*]ryhRX8This method can be used directly as a callback function.rzr{}r|(h/jwh0juubaubeubeubh[)r}}r~(h/Uh0jh1Xd/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.succeedrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX%succeed() (simpy.events.Event method)h UtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXmethodrjjuhBNhChh*]r(j)r}r(h/XEvent.succeed(value=None)h0jh1jgh6jh8}r(h=]rh ajh2X simpy.eventsrr}rbh<]h:]h;]h@]rh ajX Event.succeedjjnjuhBNhChh*]r(j)r}r(h/Xsucceedh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXsucceedrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rj)r}r(h/X value=Noneh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX value=Nonerr}r(h/Uh0jubah6jubaubeubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XHSchedule the event and mark it as successful. Return the event instance.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXHSchedule the event and mark it as successful. Return the event instance.rr}r(h/jh0jubaubhd)r}r(h/XgYou can optionally pass an arbitrary ``value`` that will be sent into processes waiting for that event.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX%You can optionally pass an arbitrary rr}r(h/X%You can optionally pass an arbitrary h0jubhL)r}r(h/X ``value``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXvaluerr}r(h/Uh0jubah6hVubhRX9 that will be sent into processes waiting for that event.rr}r(h/X9 that will be sent into processes waiting for that event.h0jubeubhd)r}r(h/XERaise a :exc:`RuntimeError` if this event has already been scheduled.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXRaise a rr}r(h/XRaise a h0jubh)r}r(h/X:exc:`RuntimeError`rh0jh1Nh6hh8}r(UreftypeXexchhX RuntimeErrorU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-excreh<]h=]h@]uh0jh*]rhRX RuntimeErrorrr}r(h/Uh0jubah6hVubaubhRX* if this event has already been scheduled.rr}r(h/X* if this event has already been scheduled.h0jubeubeubeubh[)r}r(h/Uh0jh1Xa/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Event.failrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX"fail() (simpy.events.Event method)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXmethodrjjuhBNhChh*]r(j)r}r(h/XEvent.fail(exception)h0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajX Event.failjjnjuhBNhChh*]r(j)r}r(h/Xfailh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXfailrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rj)r}r(h/X exceptionh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX exceptionrr}r(h/Uh0jubah6jubaubeubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XDSchedule the event and mark it as failed. Return the event instance.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXDSchedule the event and mark it as failed. Return the event instance.rr }r (h/jh0jubaubhd)r }r (h/XGThe ``exception`` will be thrown into processes waiting for that event.h0jh1jh6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r(hRXThe rr}r(h/XThe h0j ubhL)r}r(h/X ``exception``h8}r(h:]h;]h<]h=]h@]uh0j h*]rhRX exceptionrr}r(h/Uh0jubah6hVubhRX6 will be thrown into processes waiting for that event.rr}r(h/X6 will be thrown into processes waiting for that event.h0j ubeubhd)r}r(h/XFRaise a :exc:`ValueError` if ``exception`` is not an :exc:`Exception`.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXRaise a r r!}r"(h/XRaise a h0jubh)r#}r$(h/X:exc:`ValueError`r%h0jh1Nh6hh8}r&(UreftypeXexchhX ValueErrorU refdomainXpyr'h=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]r(hL)r)}r*(h/j%h8}r+(h:]h;]r,(hj'Xpy-excr-eh<]h=]h@]uh0j#h*]r.hRX ValueErrorr/r0}r1(h/Uh0j)ubah6hVubaubhRX if r2r3}r4(h/X if h0jubhL)r5}r6(h/X ``exception``h8}r7(h:]h;]h<]h=]h@]uh0jh*]r8hRX exceptionr9r:}r;(h/Uh0j5ubah6hVubhRX is not an r<r=}r>(h/X is not an h0jubh)r?}r@(h/X:exc:`Exception`rAh0jh1Nh6hh8}rB(UreftypeXexchhX ExceptionU refdomainXpyrCh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rDhL)rE}rF(h/jAh8}rG(h:]h;]rH(hjCXpy-excrIeh<]h=]h@]uh0j?h*]rJhRX ExceptionrKrL}rM(h/Uh0jEubah6hVubaubhRX.rN}rO(h/X.h0jubeubhd)rP}rQ(h/XERaise a :exc:`RuntimeError` if this event has already been scheduled.h0jh1jh6hih8}rR(h:]h;]h<]h=]h@]uhBKhChh*]rS(hRXRaise a rTrU}rV(h/XRaise a h0jPubh)rW}rX(h/X:exc:`RuntimeError`rYh0jPh1Nh6hh8}rZ(UreftypeXexchhX RuntimeErrorU refdomainXpyr[h=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]r\hL)r]}r^(h/jYh8}r_(h:]h;]r`(hj[Xpy-excraeh<]h=]h@]uh0jWh*]rbhRX RuntimeErrorrcrd}re(h/Uh0j]ubah6hVubaubhRX* if this event has already been scheduled.rfrg}rh(h/X* if this event has already been scheduled.h0jPubeubeubeubeubeubh[)ri}rj(h/Uh0h-h1X^/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Timeoutrkh6h_h8}rl(h=]h<]h:]h;]h@]Uentries]rm(hbXTimeout (class in simpy.events)hUtrnauhBNhChh*]ubj)ro}rp(h/Uh0h-h1jkh6jh8}rq(jjXpyh=]h<]h:]h;]h@]jXclassrrjjruhBNhChh*]rs(j)rt}ru(h/XTimeout(env, delay, value=None)h0joh1jgh6jh8}rv(h=]rwhajh2X simpy.eventsrxry}rzbh<]h:]h;]h@]r{hajXTimeoutr|jUjuhBNhChh*]r}(j)r~}r(h/Xclass h0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXclass rr}r(h/Uh0j~ubaubj)r}r(h/X simpy.events.h0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubj)r}r(h/j|h0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXTimeoutrr}r(h/Uh0jubaubj)r}r(h/Uh0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6jubj)r}r(h/Xdelayh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXdelayrr}r(h/Uh0jubah6jubj)r}r(h/X value=Noneh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX value=Nonerr}r(h/Uh0jubah6jubeubeubj)r}r(h/Uh0joh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XNAn :class:`Event` that is scheduled with a certain *delay* after its creation.h0jh1jkh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXAn rr}r(h/XAn h0jubh)r}r(h/X:class:`Event`rh0jh1Nh6hh8}r(UreftypeXclasshhXEventU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj|hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXEventrr}r(h/Uh0jubah6hVubaubhRX" that is scheduled with a certain rr}r(h/X" that is scheduled with a certain h0jubho)r}r(h/X*delay*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXdelayrr}r(h/Uh0jubah6hwubhRX after its creation.rr}r(h/X after its creation.h0jubeubhd)r}r(h/XThis event can be used by processes to wait (or hold their state) for *delay* time steps. It is immediately scheduled at ``env.now + delay`` and has thus (in contrast to :class:`Event`) no *success()* or *fail()* method.h0jh1jkh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXFThis event can be used by processes to wait (or hold their state) for rr}r(h/XFThis event can be used by processes to wait (or hold their state) for h0jubho)r}r(h/X*delay*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXdelayrr}r(h/Uh0jubah6hwubhRX, time steps. It is immediately scheduled at rr}r(h/X, time steps. It is immediately scheduled at h0jubhL)r}r(h/X``env.now + delay``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenv.now + delayrr}r(h/Uh0jubah6hVubhRX and has thus (in contrast to rr}r(h/X and has thus (in contrast to h0jubh)r}r(h/X:class:`Event`rh0jh1Nh6hh8}r(UreftypeXclasshhXEventU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj|hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXEventrr}r(h/Uh0jubah6hVubaubhRX) no rr}r(h/X) no h0jubho)r}r(h/X *success()*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX success()rr}r(h/Uh0jubah6hwubhRX or rr}r (h/X or h0jubho)r }r (h/X*fail()*h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRXfail()rr}r(h/Uh0j ubah6hwubhRX method.rr}r(h/X method.h0jubeubeubeubh[)r}r(h/Uh0h-h1Xa/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Initializerh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX"Initialize (class in simpy.events)hUtrauhBNhChh*]ubj)r}r(h/Uh0h-h1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXclassrjjuhBNhChh*]r(j)r}r (h/XInitialize(env, process)h0jh1jgh6jh8}r!(h=]r"hajh2X simpy.eventsr#r$}r%bh<]h:]h;]h@]r&hajX Initializer'jUjuhBNhChh*]r((j)r)}r*(h/Xclass h0jh1jgh6jh8}r+(h:]h;]h<]h=]h@]uhBNhChh*]r,hRXclass r-r.}r/(h/Uh0j)ubaubj)r0}r1(h/X simpy.events.h0jh1jgh6jh8}r2(h:]h;]h<]h=]h@]uhBNhChh*]r3hRX simpy.events.r4r5}r6(h/Uh0j0ubaubj)r7}r8(h/j'h0jh1jgh6jh8}r9(h:]h;]h<]h=]h@]uhBNhChh*]r:hRX Initializer;r<}r=(h/Uh0j7ubaubj)r>}r?(h/Uh0jh1jgh6jh8}r@(h:]h;]h<]h=]h@]uhBNhChh*]rA(j)rB}rC(h/Xenvh8}rD(h:]h;]h<]h=]h@]uh0j>h*]rEhRXenvrFrG}rH(h/Uh0jBubah6jubj)rI}rJ(h/Xprocessh8}rK(h:]h;]h<]h=]h@]uh0j>h*]rLhRXprocessrMrN}rO(h/Uh0jIubah6jubeubeubj)rP}rQ(h/Uh0jh1jgh6jh8}rR(h:]h;]h<]h=]h@]uhBNhChh*]rShd)rT}rU(h/X@Initializes a process. Only used internally by :class:`Process`.h0jPh1jh6hih8}rV(h:]h;]h<]h=]h@]uhBKhChh*]rW(hRX/Initializes a process. Only used internally by rXrY}rZ(h/X/Initializes a process. Only used internally by h0jTubh)r[}r\(h/X:class:`Process`r]h0jTh1Nh6hh8}r^(UreftypeXclasshhXProcessU refdomainXpyr_h=]h<]U refexplicith:]h;]h@]hhhj'hhuhBNh*]r`hL)ra}rb(h/j]h8}rc(h:]h;]rd(hj_Xpy-classreeh<]h=]h@]uh0j[h*]rfhRXProcessrgrh}ri(h/Uh0jaubah6hVubaubhRX.rj}rk(h/X.h0jTubeubaubeubh[)rl}rm(h/Uh0h-h1Nh6h_h8}rn(h=]h<]h:]h;]h@]Uentries]ro(hbXProcess (class in simpy.events)hUtrpauhBNhChh*]ubj)rq}rr(h/Uh0h-h1Nh6jh8}rs(jjXpyh=]h<]h:]h;]h@]jXclassrtjjtuhBNhChh*]ru(j)rv}rw(h/XProcess(env, generator)h0jqh1jgh6jh8}rx(h=]ryhajh2X simpy.eventsrzr{}r|bh<]h:]h;]h@]r}hajXProcessr~jUjuhBNhChh*]r(j)r}r(h/Xclass h0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXclass rr}r(h/Uh0jubaubj)r}r(h/X simpy.events.h0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubj)r}r(h/j~h0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXProcessrr}r(h/Uh0jubaubj)r}r(h/Uh0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6jubj)r}r(h/X generatorh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX generatorrr}r(h/Uh0jubah6jubeubeubj)r}r(h/Uh0jqh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XuA *Process* is a wrapper for the process *generator* (that is returned by a *process function*) during its execution.h0jh1X^/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Processrh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXA rr}r(h/XA h0jubho)r}r(h/X *Process*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXProcessrr}r(h/Uh0jubah6hwubhRX is a wrapper for the process rr}r(h/X is a wrapper for the process h0jubho)r}r(h/X *generator*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX generatorrr}r(h/Uh0jubah6hwubhRX (that is returned by a rr}r(h/X (that is returned by a h0jubho)r}r(h/X*process function*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXprocess functionrr}r(h/Uh0jubah6hwubhRX) during its execution.rr}r(h/X) during its execution.h0jubeubhd)r}r(h/XtIt also contains internal and external status information and is used for process interaction, e.g., for interrupts.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXtIt also contains internal and external status information and is used for process interaction, e.g., for interrupts.rr}r(h/jh0jubaubhd)r}r(h/X``Process`` inherits :class:`Event`. You can thus wait for the termination of a process by simply yielding it from your process function.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hL)r}r(h/X ``Process``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXProcessrr}r(h/Uh0jubah6hVubhRX inherits rr}r(h/X inherits h0jubh)r}r(h/X:class:`Event`rh0jh1Nh6hh8}r(UreftypeXclasshhXEventU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj~hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXEventrr}r(h/Uh0jubah6hVubaubhRXf. You can thus wait for the termination of a process by simply yielding it from your process function.rr}r(h/Xf. You can thus wait for the termination of a process by simply yielding it from your process function.h0jubeubhd)r}r(h/XRAn instance of this class is returned by :meth:`simpy.core.Environment.process()`.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBK hChh*]r(hRX)An instance of this class is returned by rr}r(h/X)An instance of this class is returned by h0jubh)r}r(h/X(:meth:`simpy.core.Environment.process()`rh0jh1Nh6hh8}r(UreftypeXmethhhXsimpy.core.Environment.processU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj~hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r (hjXpy-methr eh<]h=]h@]uh0jh*]r hRX simpy.core.Environment.process()r r }r(h/Uh0jubah6hVubaubhRX.r}r(h/X.h0jubeubh[)r}r(h/Uh0jh1Xe/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Process.targetrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX'target (simpy.events.Process attribute)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/XProcess.targeth0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsr r!}r"bh<]h:]h;]h@]r#hajXProcess.targetjj~juhBNhChh*]r$j)r%}r&(h/Xtargeth0jh1jgh6jh8}r'(h:]h;]h<]h=]h@]uhBNhChh*]r(hRXtargetr)r*}r+(h/Uh0j%ubaubaubj)r,}r-(h/Uh0jh1jgh6jh8}r.(h:]h;]h<]h=]h@]uhBNhChh*]r/(hd)r0}r1(h/X4The event that the process is currently waiting for.r2h0j,h1jh6hih8}r3(h:]h;]h<]h=]h@]uhBKhChh*]r4hRX4The event that the process is currently waiting for.r5r6}r7(h/j2h0j0ubaubhd)r8}r9(h/XaMay be ``None`` if the process was just started or interrupted and did not yet yield a new event.h0j,h1jh6hih8}r:(h:]h;]h<]h=]h@]uhBKhChh*]r;(hRXMay be r<r=}r>(h/XMay be h0j8ubhL)r?}r@(h/X``None``h8}rA(h:]h;]h<]h=]h@]uh0j8h*]rBhRXNonerCrD}rE(h/Uh0j?ubah6hVubhRXR if the process was just started or interrupted and did not yet yield a new event.rFrG}rH(h/XR if the process was just started or interrupted and did not yet yield a new event.h0j8ubeubeubeubh[)rI}rJ(h/Uh0jh1Xg/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Process.is_aliverKh6h_h8}rL(h=]h<]h:]h;]h@]Uentries]rM(hbX)is_alive (simpy.events.Process attribute)hUtrNauhBNhChh*]ubj)rO}rP(h/Uh0jh1jKh6jh8}rQ(jjXpyh=]h<]h:]h;]h@]jX attributerRjjRuhBNhChh*]rS(j)rT}rU(h/XProcess.is_aliveh0jOh1jgh6jh8}rV(h=]rWhajh2X simpy.eventsrXrY}rZbh<]h:]h;]h@]r[hajXProcess.is_alivejj~juhBNhChh*]r\j)r]}r^(h/Xis_aliveh0jTh1jgh6jh8}r_(h:]h;]h<]h=]h@]uhBNhChh*]r`hRXis_aliverarb}rc(h/Uh0j]ubaubaubj)rd}re(h/Uh0jOh1jgh6jh8}rf(h:]h;]h<]h=]h@]uhBNhChh*]rghd)rh}ri(h/X+``True`` until the process generator exits.h0jdh1jKh6hih8}rj(h:]h;]h<]h=]h@]uhBKhChh*]rk(hL)rl}rm(h/X``True``h8}rn(h:]h;]h<]h=]h@]uh0jhh*]rohRXTruerprq}rr(h/Uh0jlubah6hVubhRX# until the process generator exits.rsrt}ru(h/X# until the process generator exits.h0jhubeubaubeubh[)rv}rw(h/Uh0jh1Xh/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Process.interruptrxh6h_h8}ry(h=]h<]h:]h;]h@]Uentries]rz(hbX)interrupt() (simpy.events.Process method)hUtr{auhBNhChh*]ubj)r|}r}(h/Uh0jh1jxh6jh8}r~(jjXpyh=]h<]h:]h;]h@]jXmethodrjjuhBNhChh*]r(j)r}r(h/XProcess.interrupt(cause=None)h0j|h1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXProcess.interruptjj~juhBNhChh*]r(j)r}r(h/X interrupth0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX interruptrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rj)r}r(h/X cause=Noneh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX cause=Nonerr}r(h/Uh0jubah6jubaubeubj)r}r(h/Uh0j|h1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/X5Interupt this process optionally providing a *cause*.h0jh1jxh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX-Interupt this process optionally providing a rr}r(h/X-Interupt this process optionally providing a h0jubho)r}r(h/X*cause*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXcauserr}r(h/Uh0jubah6hwubhRX.r}r(h/X.h0jubeubhd)r}r(h/XA process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a :exc:`RuntimeError` in these cases.h0jh1jxh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXkA process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a rr}r(h/XkA process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a h0jubh)r}r(h/X:exc:`RuntimeError`rh0jh1Nh6hh8}r(UreftypeXexchhX RuntimeErrorU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj~hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-excreh<]h=]h@]uh0jh*]rhRX RuntimeErrorrr}r(h/Uh0jubah6hVubaubhRX in these cases.rr}r(h/X in these cases.h0jubeubeubeubeubeubh[)r}r(h/Uh0h-h1Nh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX!Condition (class in simpy.events)hUtrauhBNhChh*]ubj)r}r(h/Uh0h-h1Nh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXclassrjjuhBNhChh*]r(j)r}r(h/X Condition(env, evaluate, events)h0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajX ConditionrjUjuhBNhChh*]r(j)r}r(h/Xclass h0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXclass rr}r(h/Uh0jubaubj)r}r(h/X simpy.events.h0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubj)r}r(h/jh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX Conditionrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6jubj)r}r(h/Xevaluateh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXevaluaterr}r(h/Uh0jubah6jubj)r}r(h/Xeventsh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXeventsrr }r (h/Uh0jubah6jubeubeubj)r }r (h/Uh0jh1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XA *Condition* :class:`Event` groups several *events* and is triggered if a given condition (implemented by the *evaluate* function) becomes true.h0j h1X`/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Conditionrh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXA rr}r(h/XA h0jubho)r}r(h/X *Condition*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX Conditionrr}r(h/Uh0jubah6hwubhRX r}r(h/X h0jubh)r }r!(h/X:class:`Event`r"h0jh1Nh6hh8}r#(UreftypeXclasshhXEventU refdomainXpyr$h=]h<]U refexplicith:]h;]h@]hhhjhhuhBNh*]r%hL)r&}r'(h/j"h8}r((h:]h;]r)(hj$Xpy-classr*eh<]h=]h@]uh0j h*]r+hRXEventr,r-}r.(h/Uh0j&ubah6hVubaubhRX groups several r/r0}r1(h/X groups several h0jubho)r2}r3(h/X*events*h8}r4(h:]h;]h<]h=]h@]uh0jh*]r5hRXeventsr6r7}r8(h/Uh0j2ubah6hwubhRX; and is triggered if a given condition (implemented by the r9r:}r;(h/X; and is triggered if a given condition (implemented by the h0jubho)r<}r=(h/X *evaluate*h8}r>(h:]h;]h<]h=]h@]uh0jh*]r?hRXevaluater@rA}rB(h/Uh0j<ubah6hwubhRX function) becomes true.rCrD}rE(h/X function) becomes true.h0jubeubhd)rF}rG(h/XThe value of the condition is a dictionary that maps the input events to their respective values. It only contains entries for those events that occurred until the condition was met.rHh0j h1jh6hih8}rI(h:]h;]h<]h=]h@]uhBKhChh*]rJhRXThe value of the condition is a dictionary that maps the input events to their respective values. It only contains entries for those events that occurred until the condition was met.rKrL}rM(h/jHh0jFubaubhd)rN}rO(h/XeIf one of the events fails, the condition also fails and forwards the exception of the failing event.rPh0j h1jh6hih8}rQ(h:]h;]h<]h=]h@]uhBKhChh*]rRhRXeIf one of the events fails, the condition also fails and forwards the exception of the failing event.rSrT}rU(h/jPh0jNubaubhd)rV}rW(h/X2The ``evaluate`` function receives the list of target events and the number of processed events in this list. If it returns ``True``, the condition is scheduled. The :func:`Condition.all_events()` and :func:`Condition.any_events()` functions are used to implement *and* (``&``) and *or* (``|``) for events.h0j h1jh6hih8}rX(h:]h;]h<]h=]h@]uhBK hChh*]rY(hRXThe rZr[}r\(h/XThe h0jVubhL)r]}r^(h/X ``evaluate``h8}r_(h:]h;]h<]h=]h@]uh0jVh*]r`hRXevaluaterarb}rc(h/Uh0j]ubah6hVubhRXl function receives the list of target events and the number of processed events in this list. If it returns rdre}rf(h/Xl function receives the list of target events and the number of processed events in this list. If it returns h0jVubhL)rg}rh(h/X``True``h8}ri(h:]h;]h<]h=]h@]uh0jVh*]rjhRXTruerkrl}rm(h/Uh0jgubah6hVubhRX", the condition is scheduled. The rnro}rp(h/X", the condition is scheduled. The h0jVubh)rq}rr(h/X:func:`Condition.all_events()`rsh0jVh1Nh6hh8}rt(UreftypeXfunchhXCondition.all_eventsU refdomainXpyruh=]h<]U refexplicith:]h;]h@]hhhjhhuhBNh*]rvhL)rw}rx(h/jsh8}ry(h:]h;]rz(hjuXpy-funcr{eh<]h=]h@]uh0jqh*]r|hRXCondition.all_events()r}r~}r(h/Uh0jwubah6hVubaubhRX and rr}r(h/X and h0jVubh)r}r(h/X:func:`Condition.any_events()`rh0jVh1Nh6hh8}r(UreftypeXfunchhXCondition.any_eventsU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-funcreh<]h=]h@]uh0jh*]rhRXCondition.any_events()rr}r(h/Uh0jubah6hVubaubhRX! functions are used to implement rr}r(h/X! functions are used to implement h0jVubho)r}r(h/X*and*h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRXandrr}r(h/Uh0jubah6hwubhRX (rr}r(h/X (h0jVubhL)r}r(h/X``&``h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRX&r}r(h/Uh0jubah6hVubhRX) and rr}r(h/X) and h0jVubho)r}r(h/X*or*h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRXorrr}r(h/Uh0jubah6hwubhRX (rr}r(h/X (h0jVubhL)r}r(h/X``|``h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRX|r}r(h/Uh0jubah6hVubhRX ) for events.rr}r(h/X ) for events.h0jVubeubhd)r}r(h/X Conditions events can be nested.rh0j h1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX Conditions events can be nested.rr}r(h/jh0jubaubh[)r}r(h/Uh0j h1Xk/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Condition.all_eventsrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX3all_events() (simpy.events.Condition static method)hUtrauhBNhChh*]ubj)r}r(h/Uh0j h1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX staticmethodrjjuhBNhChh*]r(j)r}r(h/X#Condition.all_events(events, count)h0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXCondition.all_eventsjjjuhBNhChh*]r(j)r}r(h/Ustatic rh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXstatic rr}r(h/Uh0jubaubj)r}r(h/X all_eventsh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX all_eventsrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xeventsh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXeventsrr}r(h/Uh0jubah6jubj)r}r(h/Xcounth8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXcountrr}r(h/Uh0jubah6jubeubeubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/XOA condition function that returns ``True`` if all *events* have been triggered.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX"A condition function that returns r r }r (h/X"A condition function that returns h0jubhL)r }r (h/X``True``h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRXTruer r }r (h/Uh0j ubah6hVubhRX if all r r }r (h/X if all h0jubho)r }r (h/X*events*h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRXeventsr r }r (h/Uh0j ubah6hwubhRX have been triggered.r r }r (h/X have been triggered.h0jubeubaubeubh[)r }r (h/Uh0j h1Xk/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Condition.any_eventsr h6h_h8}r (h=]h<]h:]h;]h@]Uentries]r (hbX3any_events() (simpy.events.Condition static method)hUtr auhBNhChh*]ubj)r }r (h/Uh0j h1j h6jh8}r (jjXpyh=]h<]h:]h;]h@]jX staticmethodr jj uhBNhChh*]r! (j)r" }r# (h/X#Condition.any_events(events, count)h0j h1jgh6jh8}r$ (h=]r% hajh2X simpy.eventsr& r' }r( bh<]h:]h;]h@]r) hajXCondition.any_eventsjjjuhBNhChh*]r* (j)r+ }r, (h/jh0j" h1jgh6jh8}r- (h:]h;]h<]h=]h@]uhBNhChh*]r. hRXstatic r/ r0 }r1 (h/Uh0j+ ubaubj)r2 }r3 (h/X any_eventsh0j" h1jgh6jh8}r4 (h:]h;]h<]h=]h@]uhBNhChh*]r5 hRX any_eventsr6 r7 }r8 (h/Uh0j2 ubaubj)r9 }r: (h/Uh0j" h1jgh6jh8}r; (h:]h;]h<]h=]h@]uhBNhChh*]r< (j)r= }r> (h/Xeventsh8}r? (h:]h;]h<]h=]h@]uh0j9 h*]r@ hRXeventsrA rB }rC (h/Uh0j= ubah6jubj)rD }rE (h/Xcounth8}rF (h:]h;]h<]h=]h@]uh0j9 h*]rG hRXcountrH rI }rJ (h/Uh0jD ubah6jubeubeubj)rK }rL (h/Uh0j h1jgh6jh8}rM (h:]h;]h<]h=]h@]uhBNhChh*]rN hd)rO }rP (h/XZA condition function that returns ``True`` if at least one of *events* has been triggered.h0jK h1j h6hih8}rQ (h:]h;]h<]h=]h@]uhBKhChh*]rR (hRX"A condition function that returns rS rT }rU (h/X"A condition function that returns h0jO ubhL)rV }rW (h/X``True``h8}rX (h:]h;]h<]h=]h@]uh0jO h*]rY hRXTruerZ r[ }r\ (h/Uh0jV ubah6hVubhRX if at least one of r] r^ }r_ (h/X if at least one of h0jO ubho)r` }ra (h/X*events*h8}rb (h:]h;]h<]h=]h@]uh0jO h*]rc hRXeventsrd re }rf (h/Uh0j` ubah6hwubhRX has been triggered.rg rh }ri (h/X has been triggered.h0jO ubeubaubeubeubeubh[)rj }rk (h/Uh0h-h1X\/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.AllOfrl h6h_h8}rm (h=]h<]h:]h;]h@]Uentries]rn (hbXAllOf (class in simpy.events)h Utro auhBNhChh*]ubj)rp }rq (h/Uh0h-h1jl h6jh8}rr (jjXpyh=]h<]h:]h;]h@]jXclassrs jjs uhBNhChh*]rt (j)ru }rv (h/XAllOf(env, events)h0jp h1jgh6jh8}rw (h=]rx h ajh2X simpy.eventsry rz }r{ bh<]h:]h;]h@]r| h ajXAllOfr} jUjuhBNhChh*]r~ (j)r }r (h/Xclass h0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXclass r r }r (h/Uh0j ubaubj)r }r (h/X simpy.events.h0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRX simpy.events.r r }r (h/Uh0j ubaubj)r }r (h/j} h0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXAllOfr r }r (h/Uh0j ubaubj)r }r (h/Uh0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r (j)r }r (h/Xenvh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXenvr r }r (h/Uh0j ubah6jubj)r }r (h/Xeventsh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXeventsr r }r (h/Uh0j ubah6jubeubeubj)r }r (h/Uh0jp h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/X7A :class:`Condition` event that waits for all *events*.h0j h1jl h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (hRXA r r }r (h/XA h0j ubh)r }r (h/X:class:`Condition`r h0j h1Nh6hh8}r (UreftypeXclasshhX ConditionU refdomainXpyr h=]h<]U refexplicith:]h;]h@]hhhj} hhuhBNh*]r hL)r }r (h/j h8}r (h:]h;]r (hj Xpy-classr eh<]h=]h@]uh0j h*]r hRX Conditionr r }r (h/Uh0j ubah6hVubaubhRX event that waits for all r r }r (h/X event that waits for all h0j ubho)r }r (h/X*events*h8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXeventsr r }r (h/Uh0j ubah6hwubhRX.r }r (h/X.h0j ubeubaubeubh[)r }r (h/Uh0h-h1X\/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.AnyOfr h6h_h8}r (h=]h<]h:]h;]h@]Uentries]r (hbXAnyOf (class in simpy.events)hUtr auhBNhChh*]ubj)r }r (h/Uh0h-h1j h6jh8}r (jjXpyh=]h<]h:]h;]h@]jXclassr jj uhBNhChh*]r (j)r }r (h/XAnyOf(env, events)h0j h1jgh6jh8}r (h=]r hajh2X simpy.eventsr r }r bh<]h:]h;]h@]r hajXAnyOfr jUjuhBNhChh*]r (j)r }r (h/Xclass h0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXclass r r }r (h/Uh0j ubaubj)r }r (h/X simpy.events.h0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRX simpy.events.r r }r (h/Uh0j ubaubj)r }r (h/j h0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXAnyOfr r }r (h/Uh0j ubaubj)r }r (h/Uh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r (j)r }r (h/Xenvh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXenvr r }r (h/Uh0j ubah6jubj)r }r (h/Xeventsh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXeventsr r }r (h/Uh0j ubah6jubeubeubj)r }r (h/Uh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/XOA :class:`Condition` event that waits until the first of *events* is triggered.h0j h1j h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (hRXA r r }r (h/XA h0j ubh)r }r (h/X:class:`Condition`r h0j h1Nh6hh8}r (UreftypeXclasshhX ConditionU refdomainXpyr h=]h<]U refexplicith:]h;]h@]hhhj hhuhBNh*]r hL)r }r (h/j h8}r (h:]h;]r (hj Xpy-classr eh<]h=]h@]uh0j h*]r hRX Conditionr r }r! (h/Uh0j ubah6hVubaubhRX% event that waits until the first of r" r# }r$ (h/X% event that waits until the first of h0j ubho)r% }r& (h/X*events*h8}r' (h:]h;]h<]h=]h@]uh0j h*]r( hRXeventsr) r* }r+ (h/Uh0j% ubah6hwubhRX is triggered.r, r- }r. (h/X is triggered.h0j ubeubaubeubh[)r/ }r0 (h/Uh0h-h1Nh6h_h8}r1 (h=]h<]h:]h;]h@]Uentries]r2 (hbX Interruptr3 h Utr4 auhBNhChh*]ubj)r5 }r6 (h/Uh0h-h1Nh6jh8}r7 (jjXpyh=]h<]h:]h;]h@]jX exceptionr8 jj8 uhBNhChh*]r9 (j)r: }r; (h/XInterrupt(cause)r< h0j5 h1jgh6jh8}r= (h=]r> h ajh2X simpy.eventsr? r@ }rA bh<]h:]h;]h@]rB h ajj3 jUjuhBNhChh*]rC (j)rD }rE (h/X exception h0j: h1jgh6jh8}rF (h:]h;]h<]h=]h@]uhBNhChh*]rG hRX exception rH rI }rJ (h/Uh0jD ubaubj)rK }rL (h/X simpy.events.h0j: h1jgh6jh8}rM (h:]h;]h<]h=]h@]uhBNhChh*]rN hRX simpy.events.rO rP }rQ (h/Uh0jK ubaubj)rR }rS (h/j3 h0j: h1jgh6jh8}rT (h:]h;]h<]h=]h@]uhBNhChh*]rU hRX InterruptrV rW }rX (h/Uh0jR ubaubj)rY }rZ (h/Uh0j: h1jgh6jh8}r[ (h:]h;]h<]h=]h@]uhBNhChh*]r\ j)r] }r^ (h/Xcauseh8}r_ (h:]h;]h<]h=]h@]uh0jY h*]r` hRXcausera rb }rc (h/Uh0j] ubah6jubaubeubj)rd }re (h/Uh0j5 h1jgh6jh8}rf (h:]h;]h<]h=]h@]uhBNhChh*]rg (hd)rh }ri (h/XrThis exceptions is sent into a process if it was interrupted by another process (see :func:`Process.interrupt()`).h0jd h1X`/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Interruptrj h6hih8}rk (h:]h;]h<]h=]h@]uhBKhChh*]rl (hRXUThis exceptions is sent into a process if it was interrupted by another process (see rm rn }ro (h/XUThis exceptions is sent into a process if it was interrupted by another process (see h0jh ubh)rp }rq (h/X:func:`Process.interrupt()`rr h0jh h1Nh6hh8}rs (UreftypeXfunchhXProcess.interruptU refdomainXpyrt h=]h<]U refexplicith:]h;]h@]hhhj3 hhuhBNh*]ru hL)rv }rw (h/jr h8}rx (h:]h;]ry (hjt Xpy-funcrz eh<]h=]h@]uh0jp h*]r{ hRXProcess.interrupt()r| r} }r~ (h/Uh0jv ubah6hVubaubhRX).r r }r (h/X).h0jh ubeubhd)r }r (h/XU*cause* may be none if no cause was explicitly passed to :func:`Process.interrupt()`.h0jd h1jj h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (ho)r }r (h/X*cause*h8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXcauser r }r (h/Uh0j ubah6hwubhRX2 may be none if no cause was explicitly passed to r r }r (h/X2 may be none if no cause was explicitly passed to h0j ubh)r }r (h/X:func:`Process.interrupt()`r h0j h1Nh6hh8}r (UreftypeXfunchhXProcess.interruptU refdomainXpyr h=]h<]U refexplicith:]h;]h@]hhhj3 hhuhBNh*]r hL)r }r (h/j h8}r (h:]h;]r (hj Xpy-funcr eh<]h=]h@]uh0j h*]r hRXProcess.interrupt()r r }r (h/Uh0j ubah6hVubaubhRX.r }r (h/X.h0j ubeubhd)r }r (h/XAn interrupt has a higher priority as a normal event. Thus, if a process has a normal event and an interrupt scheduled at the same time, the interrupt will always be thrown into the process first.r h0jd h1jj h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r hRXAn interrupt has a higher priority as a normal event. Thus, if a process has a normal event and an interrupt scheduled at the same time, the interrupt will always be thrown into the process first.r r }r (h/j h0j ubaubhd)r }r (h/XIf a process is interrupted multiple times at the same time, all interrupts will be thrown into the process in the same order as they occurred.r h0jd h1jj h6hih8}r (h:]h;]h<]h=]h@]uhBK hChh*]r hRXIf a process is interrupted multiple times at the same time, all interrupts will be thrown into the process in the same order as they occurred.r r }r (h/j h0j ubaubh[)r }r (h/Uh0jd h1Xf/var/build/user_builds/simpy/checkouts/3.0.4/simpy/events.py:docstring of simpy.events.Interrupt.causer h6h_h8}r (h=]h<]h:]h;]h@]Uentries]r (hbX(cause (simpy.events.Interrupt attribute)h Utr auhBNhChh*]ubj)r }r (h/Uh0jd h1j h6jh8}r (jjXpyh=]h<]h:]h;]h@]jX attributer jj uhBNhChh*]r (j)r }r (h/XInterrupt.causer h0j h1jgh6jh8}r (h=]r h ajh2X simpy.eventsr r }r bh<]h:]h;]h@]r h ajXInterrupt.causejj3 juhBNhChh*]r j)r }r (h/Xcauseh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXcauser r }r (h/Uh0j ubaubaubj)r }r (h/Uh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/X@The cause of the interrupt or ``None`` if no cause was provided.r h0j h1j h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (hRXThe cause of the interrupt or r r }r (h/XThe cause of the interrupt or h0j ubhL)r }r (h/X``None``h8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXNoner r }r (h/Uh0j ubah6hVubhRX if no cause was provided.r r }r (h/X if no cause was provided.h0j ubeubaubeubeubeubeubah/UU transformerr NU footnote_refsr }r Urefnamesr }r Usymbol_footnotesr ]r Uautofootnote_refsr ]r Usymbol_footnote_refsr ]r U citationsr ]r hChU current_liner NUtransform_messagesr ]r Ureporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhINUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr! NUexpose_internalsr" NUsectsubtitle_xformr# U source_linkr$ NUrfc_referencesr% NUoutput_encodingr& Uutf-8r' U source_urlr( NUinput_encodingr) U utf-8-sigr* U_disable_configr+ NU id_prefixr, UU tab_widthr- KUerror_encodingr. UUTF-8r/ U_sourcer0 UP/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.events.rstr1 Ugettext_compactr2 U generatorr3 NUdump_internalsr4 NU smart_quotesr5 U pep_base_urlr6 Uhttp://www.python.org/dev/peps/r7 Usyntax_highlightr8 Ulongr9 Uinput_encoding_error_handlerr: j Uauto_id_prefixr; Uidr< Udoctitle_xformr= Ustrip_elements_with_classesr> NU _config_filesr? ]Ufile_insertion_enabledr@ U raw_enabledrA KU dump_settingsrB NubUsymbol_footnote_startrC KUidsrD }rE (hjvhj hj" h jh j: h j h jh)h-h ju hj0hjthjphjhj0hjhjhjeh?cdocutils.nodes target rF )rG }rH (h/Uh0h-h1h^h6UtargetrI h8}rJ (h:]h=]rK h?ah<]Uismodh;]h@]uhBKhChh*]ubhjhjhjhjhjhjhjhjThjFuUsubstitution_namesrL }rM h6hCh8}rN (h:]h=]h<]Usourceh4h;]h@]uU footnotesrO ]rP UrefidsrQ }rR ub.PK@D\ YfYfEsimpy-3.0.4/.doctrees/api_reference/simpy.resources.container.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X)simpy.resources.container.Container.levelqX-simpy.resources.container.ContainerPut.amountqX-simpy.resources.container.ContainerGet.amountqX&simpy.resources.container.ContainerGetq X'simpy.resources.container.Container.getq X&simpy.resources.container.ContainerPutq X,simpy.resources.container.Container.capacityq X6simpy.resources.container --- container type resourcesq NX#simpy.resources.container.ContainerqX'simpy.resources.container.Container.putquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h U2simpy-resources-container-container-type-resourcesqhhhhuUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentq hUsourceq!cdocutils.nodes reprunicode q"X]/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.container.rstq#q$}q%bUtagnameq&Usectionq'U attributesq(}q)(Udupnamesq*]Uclassesq+]Ubackrefsq,]Uidsq-]q.(X module-simpy.resources.containerq/heUnamesq0]q1h auUlineq2KUdocumentq3hh]q4(cdocutils.nodes title q5)q6}q7(hX:``simpy.resources.container`` --- Container type resourcesq8h hh!h$h&Utitleq9h(}q:(h*]h+]h,]h-]h0]uh2Kh3hh]q;(cdocutils.nodes literal q<)q=}q>(hX``simpy.resources.container``q?h(}q@(h*]h+]h,]h-]h0]uh h6h]qAcdocutils.nodes Text qBXsimpy.resources.containerqCqD}qE(hUh h=ubah&UliteralqFubhBX --- Container type resourcesqGqH}qI(hX --- Container type resourcesqJh h6ubeubcsphinx.addnodes index qK)qL}qM(hUh hh!U qNh&UindexqOh(}qP(h-]h,]h*]h+]h0]Uentries]qQ(UsingleqRX"simpy.resources.container (module)X module-simpy.resources.containerUtqSauh2Kh3hh]ubcdocutils.nodes paragraph qT)qU}qV(hX;This module contains all :class:`Container` like resources.qWh hh!Xp/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.containerqXh&U paragraphqYh(}qZ(h*]h+]h,]h-]h0]uh2Kh3hh]q[(hBXThis module contains all q\q]}q^(hXThis module contains all h hUubcsphinx.addnodes pending_xref q_)q`}qa(hX:class:`Container`qbh hUh!h$h&U pending_xrefqch(}qd(UreftypeXclassUrefwarnqeU reftargetqfX ContainerU refdomainXpyqgh-]h,]U refexplicith*]h+]h0]UrefdocqhX'api_reference/simpy.resources.containerqiUpy:classqjNU py:moduleqkXsimpy.resources.containerqluh2Kh]qmh<)qn}qo(hhbh(}qp(h*]h+]qq(UxrefqrhgXpy-classqseh,]h-]h0]uh h`h]qthBX Containerquqv}qw(hUh hnubah&hFubaubhBX like resources.qxqy}qz(hX like resources.h hUubeubhT)q{}q|(hXContainers model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).q}h hh!hXh&hYh(}q~(h*]h+]h,]h-]h0]uh2Kh3hh]qhBXContainers model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qq}q(hh}h h{ubaubhT)q}q(hXFor example, a gasoline station stores gas (petrol) in large tanks. Tankers increase, and refuelled cars decrease, the amount of gas in the station's storage tanks.qh hh!hXh&hYh(}q(h*]h+]h,]h-]h0]uh2Kh3hh]qhBXFor example, a gasoline station stores gas (petrol) in large tanks. Tankers increase, and refuelled cars decrease, the amount of gas in the station's storage tanks.qq}q(hhh hubaubhK)q}q(hUh hh!Nh&hOh(}q(h-]h,]h*]h+]h0]Uentries]q(hRX.Container (class in simpy.resources.container)hUtqauh2Nh3hh]ubcsphinx.addnodes desc q)q}q(hUh hh!Nh&Udescqh(}q(UnoindexqUdomainqXpyh-]h,]h*]h+]h0]UobjtypeqXclassqUdesctypeqhuh2Nh3hh]q(csphinx.addnodes desc_signature q)q}q(hX$Container(env, capacity=inf, init=0)h hh!U qh&Udesc_signatureqh(}q(h-]qhaUmoduleqh"Xsimpy.resources.containerqq}qbh,]h*]h+]h0]qhaUfullnameqX ContainerqUclassqUUfirstquh2Nh3hh]q(csphinx.addnodes desc_annotation q)q}q(hXclass h hh!hh&Udesc_annotationqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]qhBXclass qq}q(hUh hubaubcsphinx.addnodes desc_addname q)q}q(hXsimpy.resources.container.h hh!hh&U desc_addnameqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]qhBXsimpy.resources.container.qq}q(hUh hubaubcsphinx.addnodes desc_name q)q}q(hhh hh!hh&U desc_nameqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]qhBX Containerqąq}q(hUh hubaubcsphinx.addnodes desc_parameterlist q)q}q(hUh hh!hh&Udesc_parameterlistqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]q(csphinx.addnodes desc_parameter q)q}q(hXenvh(}q(h*]h+]h,]h-]h0]uh hh]qhBXenvq҅q}q(hUh hubah&Udesc_parameterqubh)q}q(hX capacity=infh(}q(h*]h+]h,]h-]h0]uh hh]qhBX capacity=infqڅq}q(hUh hubah&hubh)q}q(hXinit=0h(}q(h*]h+]h,]h-]h0]uh hh]qhBXinit=0qᅁq}q(hUh hubah&hubeubeubcsphinx.addnodes desc_content q)q}q(hUh hh!hh&U desc_contentqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]q(hT)q}q(hXModels the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qh hh!Xz/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.Containerqh&hYh(}q(h*]h+]h,]h-]h0]uh2Kh3hh]qhBXModels the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qq}q(hhh hubaubhT)q}q(hX_The *env* parameter is the :class:`~simpy.core.Environment` instance the container is bound to.h hh!hh&hYh(}q(h*]h+]h,]h-]h0]uh2Kh3hh]q(hBXThe qq}q(hXThe h hubcdocutils.nodes emphasis q)q}q(hX*env*h(}q(h*]h+]h,]h-]h0]uh hh]qhBXenvqr}r(hUh hubah&UemphasisrubhBX parameter is the rr}r(hX parameter is the h hubh_)r}r(hX :class:`~simpy.core.Environment`rh hh!h$h&hch(}r (UreftypeXclasshehfXsimpy.core.EnvironmentU refdomainXpyr h-]h,]U refexplicith*]h+]h0]hhhihjhhkhluh2Kh]r h<)r }r (hjh(}r(h*]h+]r(hrj Xpy-classreh,]h-]h0]uh jh]rhBX Environmentrr}r(hUh j ubah&hFubaubhBX$ instance the container is bound to.rr}r(hX$ instance the container is bound to.h hubeubhT)r}r(hXThe *capacity* defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via *init*. It must be >= 0 and is 0 by default.h hh!hh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXThe rr}r(hXThe h jubh)r}r (hX *capacity*h(}r!(h*]h+]h,]h-]h0]uh jh]r"hBXcapacityr#r$}r%(hUh jubah&jubhBX defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via r&r'}r((hX defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via h jubh)r)}r*(hX*init*h(}r+(h*]h+]h,]h-]h0]uh jh]r,hBXinitr-r.}r/(hUh j)ubah&jubhBX&. It must be >= 0 and is 0 by default.r0r1}r2(hX&. It must be >= 0 and is 0 by default.h jubeubhT)r3}r4(hXTRaise a :exc:`ValueError` if ``capacity <= 0``, ``init < 0`` or ``init > capacity``.h hh!hh&hYh(}r5(h*]h+]h,]h-]h0]uh2K h3hh]r6(hBXRaise a r7r8}r9(hXRaise a h j3ubh_)r:}r;(hX:exc:`ValueError`r<h j3h!Nh&hch(}r=(UreftypeXexchehfX ValueErrorU refdomainXpyr>h-]h,]U refexplicith*]h+]h0]hhhihjhhkhluh2Nh]r?h<)r@}rA(hj<h(}rB(h*]h+]rC(hrj>Xpy-excrDeh,]h-]h0]uh j:h]rEhBX ValueErrorrFrG}rH(hUh j@ubah&hFubaubhBX if rIrJ}rK(hX if h j3ubh<)rL}rM(hX``capacity <= 0``h(}rN(h*]h+]h,]h-]h0]uh j3h]rOhBX capacity <= 0rPrQ}rR(hUh jLubah&hFubhBX, rSrT}rU(hX, h j3ubh<)rV}rW(hX ``init < 0``h(}rX(h*]h+]h,]h-]h0]uh j3h]rYhBXinit < 0rZr[}r\(hUh jVubah&hFubhBX or r]r^}r_(hX or h j3ubh<)r`}ra(hX``init > capacity``h(}rb(h*]h+]h,]h-]h0]uh j3h]rchBXinit > capacityrdre}rf(hUh j`ubah&hFubhBX.rg}rh(hX.h j3ubeubhK)ri}rj(hUh hh!X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.Container.capacityrkh&hOh(}rl(h-]h,]h*]h+]h0]Uentries]rm(hRX8capacity (simpy.resources.container.Container attribute)h Utrnauh2Nh3hh]ubh)ro}rp(hUh hh!jkh&hh(}rq(hhXpyh-]h,]h*]h+]h0]hX attributerrhjruh2Nh3hh]rs(h)rt}ru(hXContainer.capacityh joh!hh&hh(}rv(h-]rwh ahh"Xsimpy.resources.containerrxry}rzbh,]h*]h+]h0]r{h ahXContainer.capacityhhhuh2Nh3hh]r|h)r}}r~(hXcapacityh jth!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXcapacityrr}r(hUh j}ubaubaubh)r}r(hUh joh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hX&The maximum capacity of the container.rh jh!jkh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]rhBX&The maximum capacity of the container.rr}r(hjh jubaubaubeubhK)r}r(hUh hh!X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.Container.levelrh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX5level (simpy.resources.container.Container attribute)hUtrauh2Nh3hh]ubh)r}r(hUh hh!jh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hXContainer.levelh jh!hh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahXContainer.levelhhhuh2Nh3hh]rh)r}r(hXlevelh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXlevelrr}r(hUh jubaubaubh)r}r(hUh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hXMThe current level of the container (a number between ``0`` and ``capacity``).h jh!jh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBX5The current level of the container (a number between rr}r(hX5The current level of the container (a number between h jubh<)r}r(hX``0``h(}r(h*]h+]h,]h-]h0]uh jh]rhBX0r}r(hUh jubah&hFubhBX and rr}r(hX and h jubh<)r}r(hX ``capacity``h(}r(h*]h+]h,]h-]h0]uh jh]rhBXcapacityrr}r(hUh jubah&hFubhBX).rr}r(hX).h jubeubaubeubhK)r}r(hUh hh!Uh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX3put (simpy.resources.container.Container attribute)hUtrauh2Nh3hh]ubh)r}r(hUh hh!Uh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hX Container.puth jh!hh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahX Container.puthhhuh2Nh3hh]rh)r}r(hXputh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXputrr}r(hUh jubaubaubh)r}r(hUh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]r(hT)r}r(hX*Creates a new :class:`ContainerPut` event.h jh!X~/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.Container.putrh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXCreates a new rr}r(hXCreates a new h jubh_)r}r(hX:class:`ContainerPut`rh jh!Nh&hch(}r(UreftypeXclasshehfX ContainerPutU refdomainXpyrh-]h,]U refexplicith*]h+]h0]hhhihjhhkhluh2Nh]rh<)r}r(hjh(}r(h*]h+]r(hrjXpy-classreh,]h-]h0]uh jh]rhBX ContainerPutrr}r(hUh jubah&hFubaubhBX event.rr}r(hX event.h jubeubhT)r}r(hXalias of :class:`ContainerPut`h jh!Uh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBX alias of rr}r(hX alias of h jubh_)r}r (hX:class:`ContainerPut`r h jh!Nh&hch(}r (UreftypeXclasshehfX ContainerPutU refdomainXpyr h-]h,]U refexplicith*]h+]h0]hhhihjhhkhluh2Nh]r h<)r}r(hj h(}r(h*]h+]r(hrj Xpy-classreh,]h-]h0]uh jh]rhBX ContainerPutrr}r(hUh jubah&hFubaubeubeubeubhK)r}r(hUh hh!Uh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX3get (simpy.resources.container.Container attribute)h Utrauh2Nh3hh]ubh)r}r(hUh hh!Uh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r (h)r!}r"(hX Container.geth jh!hh&hh(}r#(h-]r$h ahh"Xsimpy.resources.containerr%r&}r'bh,]h*]h+]h0]r(h ahX Container.gethhhuh2Nh3hh]r)h)r*}r+(hXgeth j!h!hh&hh(}r,(h*]h+]h,]h-]h0]uh2Nh3hh]r-hBXgetr.r/}r0(hUh j*ubaubaubh)r1}r2(hUh jh!hh&hh(}r3(h*]h+]h,]h-]h0]uh2Nh3hh]r4(hT)r5}r6(hX*Creates a new :class:`ContainerGet` event.h j1h!X~/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.Container.getr7h&hYh(}r8(h*]h+]h,]h-]h0]uh2Kh3hh]r9(hBXCreates a new r:r;}r<(hXCreates a new h j5ubh_)r=}r>(hX:class:`ContainerGet`r?h j5h!Nh&hch(}r@(UreftypeXclasshehfX ContainerGetU refdomainXpyrAh-]h,]U refexplicith*]h+]h0]hhhihjhhkhluh2Nh]rBh<)rC}rD(hj?h(}rE(h*]h+]rF(hrjAXpy-classrGeh,]h-]h0]uh j=h]rHhBX ContainerGetrIrJ}rK(hUh jCubah&hFubaubhBX event.rLrM}rN(hX event.h j5ubeubhT)rO}rP(hXalias of :class:`ContainerGet`h j1h!Uh&hYh(}rQ(h*]h+]h,]h-]h0]uh2Kh3hh]rR(hBX alias of rSrT}rU(hX alias of h jOubh_)rV}rW(hX:class:`ContainerGet`rXh jOh!Nh&hch(}rY(UreftypeXclasshehfX ContainerGetU refdomainXpyrZh-]h,]U refexplicith*]h+]h0]hhhihjhhkhluh2Nh]r[h<)r\}r](hjXh(}r^(h*]h+]r_(hrjZXpy-classr`eh,]h-]h0]uh jVh]rahBX ContainerGetrbrc}rd(hUh j\ubah&hFubaubeubeubeubeubeubhK)re}rf(hUh hh!Nh&hOh(}rg(h-]h,]h*]h+]h0]Uentries]rh(hRX1ContainerPut (class in simpy.resources.container)h Utriauh2Nh3hh]ubh)rj}rk(hUh hh!Nh&hh(}rl(hhXpyh-]h,]h*]h+]h0]hXclassrmhjmuh2Nh3hh]rn(h)ro}rp(hXContainerPut(container, amount)h jjh!hh&hh(}rq(h-]rrh ahh"Xsimpy.resources.containerrsrt}rubh,]h*]h+]h0]rvh ahX ContainerPutrwhUhuh2Nh3hh]rx(h)ry}rz(hXclass h joh!hh&hh(}r{(h*]h+]h,]h-]h0]uh2Nh3hh]r|hBXclass r}r~}r(hUh jyubaubh)r}r(hXsimpy.resources.container.h joh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXsimpy.resources.container.rr}r(hUh jubaubh)r}r(hjwh joh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBX ContainerPutrr}r(hUh jubaubh)r}r(hUh joh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]r(h)r}r(hX containerh(}r(h*]h+]h,]h-]h0]uh jh]rhBX containerrr}r(hUh jubah&hubh)r}r(hXamounth(}r(h*]h+]h,]h-]h0]uh jh]rhBXamountrr}r(hUh jubah&hubeubeubh)r}r(hUh jjh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]r(hT)r}r(hX|An event that puts *amount* into the *container*. The event is triggered as soon as there's enough space in the *container*.h jh!X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.ContainerPutrh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXAn event that puts rr}r(hXAn event that puts h jubh)r}r(hX*amount*h(}r(h*]h+]h,]h-]h0]uh jh]rhBXamountrr}r(hUh jubah&jubhBX into the rr}r(hX into the h jubh)r}r(hX *container*h(}r(h*]h+]h,]h-]h0]uh jh]rhBX containerrr}r(hUh jubah&jubhBX@. The event is triggered as soon as there's enough space in the rr}r(hX@. The event is triggered as soon as there's enough space in the h jubh)r}r(hX *container*h(}r(h*]h+]h,]h-]h0]uh jh]rhBX containerrr}r(hUh jubah&jubhBX.r}r(hX.h jubeubhT)r}r(hX-Raise a :exc:`ValueError` if ``amount <= 0``.h jh!jh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXRaise a rr}r(hXRaise a h jubh_)r}r(hX:exc:`ValueError`rh jh!h$h&hch(}r(UreftypeXexchehfX ValueErrorU refdomainXpyrh-]h,]U refexplicith*]h+]h0]hhhihjjwhkhluh2Kh]rh<)r}r(hjh(}r(h*]h+]r(hrjXpy-excreh,]h-]h0]uh jh]rhBX ValueErrorrr}r(hUh jubah&hFubaubhBX if rr}r(hX if h jubh<)r}r(hX``amount <= 0``h(}r(h*]h+]h,]h-]h0]uh jh]rhBX amount <= 0rr}r(hUh jubah&hFubhBX.r}r(hX.h jubeubhK)r}r(hUh jh!X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.ContainerPut.amountrh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX9amount (simpy.resources.container.ContainerPut attribute)hUtrauh2Nh3hh]ubh)r}r(hUh jh!jh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hXContainerPut.amounth jh!U rh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahXContainerPut.amounthjwhuh2Nh3hh]r(h)r}r(hXamounth jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXamountrr}r(hUh jubaubh)r}r(hX = Noneh jh!jh&hh(}r (h*]h+]h,]h-]h0]uh2Nh3hh]r hBX = Noner r }r (hUh jubaubeubh)r}r(hUh jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hX(The amount to be put into the container.rh jh!jh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]rhBX(The amount to be put into the container.rr}r(hjh jubaubaubeubeubeubhK)r}r(hUh hh!Nh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX1ContainerGet (class in simpy.resources.container)h Utrauh2Nh3hh]ubh)r}r (hUh hh!Nh&hh(}r!(hhXpyh-]h,]h*]h+]h0]hXclassr"hj"uh2Nh3hh]r#(h)r$}r%(hXContainerGet(resource, amount)h jh!hh&hh(}r&(h-]r'h ahh"Xsimpy.resources.containerr(r)}r*bh,]h*]h+]h0]r+h ahX ContainerGetr,hUhuh2Nh3hh]r-(h)r.}r/(hXclass h j$h!hh&hh(}r0(h*]h+]h,]h-]h0]uh2Nh3hh]r1hBXclass r2r3}r4(hUh j.ubaubh)r5}r6(hXsimpy.resources.container.h j$h!hh&hh(}r7(h*]h+]h,]h-]h0]uh2Nh3hh]r8hBXsimpy.resources.container.r9r:}r;(hUh j5ubaubh)r<}r=(hj,h j$h!hh&hh(}r>(h*]h+]h,]h-]h0]uh2Nh3hh]r?hBX ContainerGetr@rA}rB(hUh j<ubaubh)rC}rD(hUh j$h!hh&hh(}rE(h*]h+]h,]h-]h0]uh2Nh3hh]rF(h)rG}rH(hXresourceh(}rI(h*]h+]h,]h-]h0]uh jCh]rJhBXresourcerKrL}rM(hUh jGubah&hubh)rN}rO(hXamounth(}rP(h*]h+]h,]h-]h0]uh jCh]rQhBXamountrRrS}rT(hUh jNubah&hubeubeubh)rU}rV(hUh jh!hh&hh(}rW(h*]h+]h,]h-]h0]uh2Nh3hh]rX(hT)rY}rZ(hXAn event that gets *amount* from the *container*. The event is triggered as soon as there's enough content available in the *container*.h jUh!X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.ContainerGetr[h&hYh(}r\(h*]h+]h,]h-]h0]uh2Kh3hh]r](hBXAn event that gets r^r_}r`(hXAn event that gets h jYubh)ra}rb(hX*amount*h(}rc(h*]h+]h,]h-]h0]uh jYh]rdhBXamountrerf}rg(hUh jaubah&jubhBX from the rhri}rj(hX from the h jYubh)rk}rl(hX *container*h(}rm(h*]h+]h,]h-]h0]uh jYh]rnhBX containerrorp}rq(hUh jkubah&jubhBXL. The event is triggered as soon as there's enough content available in the rrrs}rt(hXL. The event is triggered as soon as there's enough content available in the h jYubh)ru}rv(hX *container*h(}rw(h*]h+]h,]h-]h0]uh jYh]rxhBX containerryrz}r{(hUh juubah&jubhBX.r|}r}(hX.h jYubeubhT)r~}r(hX-Raise a :exc:`ValueError` if ``amount <= 0``.rh jUh!j[h&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXRaise a rr}r(hXRaise a h j~ubh_)r}r(hX:exc:`ValueError`rh j~h!h$h&hch(}r(UreftypeXexchehfX ValueErrorU refdomainXpyrh-]h,]U refexplicith*]h+]h0]hhhihjj,hkhluh2Kh]rh<)r}r(hjh(}r(h*]h+]r(hrjXpy-excreh,]h-]h0]uh jh]rhBX ValueErrorrr}r(hUh jubah&hFubaubhBX if rr}r(hX if h j~ubh<)r}r(hX``amount <= 0``h(}r(h*]h+]h,]h-]h0]uh j~h]rhBX amount <= 0rr}r(hUh jubah&hFubhBX.r}r(hX.h j~ubeubhK)r}r(hUh jUh!X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/container.py:docstring of simpy.resources.container.ContainerGet.amountrh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX9amount (simpy.resources.container.ContainerGet attribute)hUtrauh2Nh3hh]ubh)r}r(hUh jUh!jh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hXContainerGet.amountrh jh!jh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahXContainerGet.amounthj,huh2Nh3hh]r(h)r}r(hXamounth jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXamountrr}r(hUh jubaubh)r}r(hX = Noneh jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBX = Nonerr}r(hUh jubaubeubh)r}r(hUh jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hX,The amount to be taken out of the container.rh jh!jh&hYh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]rhBX,The amount to be taken out of the container.rr}r(hjh jubaubaubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh3hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh9NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerU]/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.container.rstrUgettext_compactrU generatorr NUdump_internalsr!NU smart_quotesr"U pep_base_urlr#Uhttp://www.python.org/dev/peps/r$Usyntax_highlightr%Ulongr&Uinput_encoding_error_handlerr'jUauto_id_prefixr(Uidr)Udoctitle_xformr*Ustrip_elements_with_classesr+NU _config_filesr,]Ufile_insertion_enabledr-U raw_enabledr.KU dump_settingsr/NubUsymbol_footnote_startr0KUidsr1}r2(hjhjhjh j$h j!h joh jth/cdocutils.nodes target r3)r4}r5(hUh hh!hNh&Utargetr6h(}r7(h*]h-]r8h/ah,]Uismodh+]h0]uh2Kh3hh]ubhhhhhjuUsubstitution_namesr9}r:h&h3h(}r;(h*]h-]h,]Usourceh$h+]h0]uU footnotesr<]r=Urefidsr>}r?ub.PK@DJUAUA4simpy-3.0.4/.doctrees/api_reference/simpy.rt.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy.rt.RealtimeEnvironmentqX#simpy.rt.RealtimeEnvironment.factorqX!simpy.rt.RealtimeEnvironment.stepqX#simpy.rt.RealtimeEnvironment.strictq X"simpy.rt --- real-time simulationsq NuUsubstitution_defsq }q Uparse_messagesq ]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h Usimpy-rt-real-time-simulationsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXL/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.rt.rstqq}q bUtagnameq!Usectionq"U attributesq#}q$(Udupnamesq%]Uclassesq&]Ubackrefsq']Uidsq(]q)(Xmodule-simpy.rtq*heUnamesq+]q,h auUlineq-KUdocumentq.hh]q/(cdocutils.nodes title q0)q1}q2(hX&``simpy.rt`` --- Real-time simulationsq3hhhhh!Utitleq4h#}q5(h%]h&]h']h(]h+]uh-Kh.hh]q6(cdocutils.nodes literal q7)q8}q9(hX ``simpy.rt``q:h#}q;(h%]h&]h']h(]h+]uhh1h]qq?}q@(hUhh8ubah!UliteralqAubh=X --- Real-time simulationsqBqC}qD(hX --- Real-time simulationsqEhh1ubeubcsphinx.addnodes index qF)qG}qH(hUhhhU qIh!UindexqJh#}qK(h(]h']h%]h&]h+]Uentries]qL(UsingleqMXsimpy.rt (module)Xmodule-simpy.rtUtqNauh-Kh.hh]ubcdocutils.nodes paragraph qO)qP}qQ(hXeProvides an environment whose time passes according to the (scaled) real-time (aka *wallclock time*).hhhXN/var/build/user_builds/simpy/checkouts/3.0.4/simpy/rt.py:docstring of simpy.rth!U paragraphqRh#}qS(h%]h&]h']h(]h+]uh-Kh.hh]qT(h=XSProvides an environment whose time passes according to the (scaled) real-time (aka qUqV}qW(hXSProvides an environment whose time passes according to the (scaled) real-time (aka hhPubcdocutils.nodes emphasis qX)qY}qZ(hX*wallclock time*h#}q[(h%]h&]h']h(]h+]uhhPh]q\h=Xwallclock timeq]q^}q_(hUhhYubah!Uemphasisq`ubh=X).qaqb}qc(hX).hhPubeubhF)qd}qe(hUhhhNh!hJh#}qf(h(]h']h%]h&]h+]Uentries]qg(hMX'RealtimeEnvironment (class in simpy.rt)hUtqhauh-Nh.hh]ubcsphinx.addnodes desc qi)qj}qk(hUhhhNh!Udescqlh#}qm(UnoindexqnUdomainqoXpyh(]h']h%]h&]h+]UobjtypeqpXclassqqUdesctypeqrhquh-Nh.hh]qs(csphinx.addnodes desc_signature qt)qu}qv(hX<RealtimeEnvironment(initial_time=0, factor=1.0, strict=True)hhjhU qwh!Udesc_signatureqxh#}qy(h(]qzhaUmoduleq{hXsimpy.rtq|q}}q~bh']h%]h&]h+]qhaUfullnameqXRealtimeEnvironmentqUclassqUUfirstquh-Nh.hh]q(csphinx.addnodes desc_annotation q)q}q(hXclass hhuhhwh!Udesc_annotationqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]qh=Xclass qq}q(hUhhubaubcsphinx.addnodes desc_addname q)q}q(hX simpy.rt.hhuhhwh!U desc_addnameqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]qh=X simpy.rt.qq}q(hUhhubaubcsphinx.addnodes desc_name q)q}q(hhhhuhhwh!U desc_nameqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]qh=XRealtimeEnvironmentqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhuhhwh!Udesc_parameterlistqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]q(csphinx.addnodes desc_parameter q)q}q(hXinitial_time=0h#}q(h%]h&]h']h(]h+]uhhh]qh=Xinitial_time=0qq}q(hUhhubah!Udesc_parameterqubh)q}q(hX factor=1.0h#}q(h%]h&]h']h(]h+]uhhh]qh=X factor=1.0qq}q(hUhhubah!hubh)q}q(hX strict=Trueh#}q(h%]h&]h']h(]h+]uhhh]qh=X strict=Trueqq}q(hUhhubah!hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhjhhwh!U desc_contentqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]q(hO)q}q(hXNAn :class:`~simpy.core.Environment` which uses the real (e.g. wallclock) time.hhhXb/var/build/user_builds/simpy/checkouts/3.0.4/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironmentqh!hRh#}q(h%]h&]h']h(]h+]uh-Kh.hh]q(h=XAn qȅq}q(hXAn hhubcsphinx.addnodes pending_xref q)q}q(hX :class:`~simpy.core.Environment`qhhhhh!U pending_xrefqh#}q(UreftypeXclassUrefwarnqщU reftargetqXsimpy.core.EnvironmentU refdomainXpyqh(]h']U refexplicith%]h&]h+]UrefdocqXapi_reference/simpy.rtqUpy:classqhU py:moduleqXsimpy.rtquh-Kh]qh7)q}q(hhh#}q(h%]h&]q(UxrefqhXpy-classqeh']h(]h+]uhhh]qh=X Environmentqᅁq}q(hUhhubah!hAubaubh=X+ which uses the real (e.g. wallclock) time.q䅁q}q(hX+ which uses the real (e.g. wallclock) time.hhubeubhO)q}q(hXA time step will take *factor* seconds of real time (one second by default); e.g., if you step from ``0`` until ``3`` with ``factor=0.5``, the :meth:`simpy.core.BaseEnvironment.run()` call will take at least 1.5 seconds.hhhhh!hRh#}q(h%]h&]h']h(]h+]uh-Kh.hh]q(h=XA time step will take q녁q}q(hXA time step will take hhubhX)q}q(hX*factor*h#}q(h%]h&]h']h(]h+]uhhh]qh=Xfactorqq}q(hUhhubah!h`ubh=XF seconds of real time (one second by default); e.g., if you step from qq}q(hXF seconds of real time (one second by default); e.g., if you step from hhubh7)q}q(hX``0``h#}q(h%]h&]h']h(]h+]uhhh]qh=X0q}q(hUhhubah!hAubh=X until qq}r(hX until hhubh7)r}r(hX``3``h#}r(h%]h&]h']h(]h+]uhhh]rh=X3r}r(hUhjubah!hAubh=X with rr}r (hX with hhubh7)r }r (hX``factor=0.5``h#}r (h%]h&]h']h(]h+]uhhh]r h=X factor=0.5rr}r(hUhj ubah!hAubh=X, the rr}r(hX, the hhubh)r}r(hX(:meth:`simpy.core.BaseEnvironment.run()`rhhhhh!hh#}r(UreftypeXmethhщhXsimpy.core.BaseEnvironment.runU refdomainXpyrh(]h']U refexplicith%]h&]h+]hhhhhhuh-Kh]rh7)r}r(hjh#}r(h%]h&]r(hjXpy-methreh']h(]h+]uhjh]rh=X simpy.core.BaseEnvironment.run()r r!}r"(hUhjubah!hAubaubh=X% call will take at least 1.5 seconds.r#r$}r%(hX% call will take at least 1.5 seconds.hhubeubhO)r&}r'(hXIf the processing of the events for a time step takes too long, a :exc:`RuntimeError` is raised in :meth:`step()`. You can disable this behavior by setting *strict* to ``False``.hhhhh!hRh#}r((h%]h&]h']h(]h+]uh-K h.hh]r)(h=XBIf the processing of the events for a time step takes too long, a r*r+}r,(hXBIf the processing of the events for a time step takes too long, a hj&ubh)r-}r.(hX:exc:`RuntimeError`r/hj&hNh!hh#}r0(UreftypeXexchщhX RuntimeErrorU refdomainXpyr1h(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r2h7)r3}r4(hj/h#}r5(h%]h&]r6(hj1Xpy-excr7eh']h(]h+]uhj-h]r8h=X RuntimeErrorr9r:}r;(hUhj3ubah!hAubaubh=X is raised in r<r=}r>(hX is raised in hj&ubh)r?}r@(hX:meth:`step()`rAhj&hNh!hh#}rB(UreftypeXmethhщhXstepU refdomainXpyrCh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rDh7)rE}rF(hjAh#}rG(h%]h&]rH(hjCXpy-methrIeh']h(]h+]uhj?h]rJh=Xstep()rKrL}rM(hUhjEubah!hAubaubh=X+. You can disable this behavior by setting rNrO}rP(hX+. You can disable this behavior by setting hj&ubhX)rQ}rR(hX*strict*h#}rS(h%]h&]h']h(]h+]uhj&h]rTh=XstrictrUrV}rW(hUhjQubah!h`ubh=X to rXrY}rZ(hX to hj&ubh7)r[}r\(hX ``False``h#}r](h%]h&]h']h(]h+]uhj&h]r^h=XFalser_r`}ra(hUhj[ubah!hAubh=X.rb}rc(hX.hj&ubeubhF)rd}re(hUhhhXi/var/build/user_builds/simpy/checkouts/3.0.4/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironment.factorrfh!hJh#}rg(h(]h']h%]h&]h+]Uentries]rh(hMX/factor (simpy.rt.RealtimeEnvironment attribute)hUtriauh-Nh.hh]ubhi)rj}rk(hUhhhjfh!hlh#}rl(hnhoXpyh(]h']h%]h&]h+]hpX attributermhrjmuh-Nh.hh]rn(ht)ro}rp(hXRealtimeEnvironment.factorhjjhU rqh!hxh#}rr(h(]rshah{hXsimpy.rtrtru}rvbh']h%]h&]h+]rwhahXRealtimeEnvironment.factorhhhuh-Nh.hh]rx(h)ry}rz(hXfactorhjohjqh!hh#}r{(h%]h&]h']h(]h+]uh-Nh.hh]r|h=Xfactorr}r~}r(hUhjyubaubh)r}r(hX = Nonehjohjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=X = Nonerr}r(hUhjubaubeubh)r}r(hUhjjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rhO)r}r(hX Scaling factor of the real-time.rhjhjfh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]rh=X Scaling factor of the real-time.rr}r(hjhjubaubaubeubhF)r}r(hUhhhXi/var/build/user_builds/simpy/checkouts/3.0.4/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironment.strictrh!hJh#}r(h(]h']h%]h&]h+]Uentries]r(hMX/strict (simpy.rt.RealtimeEnvironment attribute)h Utrauh-Nh.hh]ubhi)r}r(hUhhhjh!hlh#}r(hnhoXpyh(]h']h%]h&]h+]hpX attributerhrjuh-Nh.hh]r(ht)r}r(hXRealtimeEnvironment.stricthjhjqh!hxh#}r(h(]rh ah{hXsimpy.rtrr}rbh']h%]h&]h+]rh ahXRealtimeEnvironment.stricthhhuh-Nh.hh]r(h)r}r(hXstricthjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=Xstrictrr}r(hUhjubaubh)r}r(hX = Nonehjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=X = Nonerr}r(hUhjubaubeubh)r}r(hUhjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rhO)r}r(hXRunning mode of the environment. :meth:`step()` will raise a :exc:`RuntimeError` if this is set to ``True`` and the processing of events takes too long.hjhjh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]r(h=X!Running mode of the environment. rr}r(hX!Running mode of the environment. hjubh)r}r(hX:meth:`step()`rhjhNh!hh#}r(UreftypeXmethhщhXstepU refdomainXpyrh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rh7)r}r(hjh#}r(h%]h&]r(hjXpy-methreh']h(]h+]uhjh]rh=Xstep()rr}r(hUhjubah!hAubaubh=X will raise a rr}r(hX will raise a hjubh)r}r(hX:exc:`RuntimeError`rhjhNh!hh#}r(UreftypeXexchщhX RuntimeErrorU refdomainXpyrh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rh7)r}r(hjh#}r(h%]h&]r(hjXpy-excreh']h(]h+]uhjh]rh=X RuntimeErrorrr}r(hUhjubah!hAubaubh=X if this is set to rr}r(hX if this is set to hjubh7)r}r(hX``True``h#}r(h%]h&]h']h(]h+]uhjh]rh=XTruerr}r(hUhjubah!hAubh=X- and the processing of events takes too long.rr}r(hX- and the processing of events takes too long.hjubeubaubeubhF)r}r(hUhhhXg/var/build/user_builds/simpy/checkouts/3.0.4/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironment.steprh!hJh#}r(h(]h']h%]h&]h+]Uentries]r(hMX,step() (simpy.rt.RealtimeEnvironment method)hUtrauh-Nh.hh]ubhi)r}r(hUhhhjh!hlh#}r(hnhoXpyh(]h']h%]h&]h+]hpXmethodrhrjuh-Nh.hh]r(ht)r}r(hXRealtimeEnvironment.step()rhjhhwh!hxh#}r(h(]rhah{hXsimpy.rtrr}rbh']h%]h&]h+]rhahXRealtimeEnvironment.stephhhuh-Nh.hh]r(h)r}r(hXstephjhhwh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=Xsteprr}r (hUhjubaubh)r }r (hUhjhhwh!hh#}r (h%]h&]h']h(]h+]uh-Nh.hh]ubeubh)r }r(hUhjhhwh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]r(hO)r}r(hXEWaits until enough real-time has passed for the next event to happen.rhj hjh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]rh=XEWaits until enough real-time has passed for the next event to happen.rr}r(hjhjubaubhO)r}r(hXThe delay is scaled according to the real-time :attr:`factor`. If the events of a time step are processed too slowly for the given :attr:`factor` and if :attr:`strict` is enabled, a :exc:`RuntimeError` is raised.hj hjh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]r(h=X/The delay is scaled according to the real-time rr}r(hX/The delay is scaled according to the real-time hjubh)r }r!(hX:attr:`factor`r"hjhNh!hh#}r#(UreftypeXattrhщhXfactorU refdomainXpyr$h(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r%h7)r&}r'(hj"h#}r((h%]h&]r)(hj$Xpy-attrr*eh']h(]h+]uhj h]r+h=Xfactorr,r-}r.(hUhj&ubah!hAubaubh=XF. If the events of a time step are processed too slowly for the given r/r0}r1(hXF. If the events of a time step are processed too slowly for the given hjubh)r2}r3(hX:attr:`factor`r4hjhNh!hh#}r5(UreftypeXattrhщhXfactorU refdomainXpyr6h(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r7h7)r8}r9(hj4h#}r:(h%]h&]r;(hj6Xpy-attrr<eh']h(]h+]uhj2h]r=h=Xfactorr>r?}r@(hUhj8ubah!hAubaubh=X and if rArB}rC(hX and if hjubh)rD}rE(hX:attr:`strict`rFhjhNh!hh#}rG(UreftypeXattrhщhXstrictU refdomainXpyrHh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rIh7)rJ}rK(hjFh#}rL(h%]h&]rM(hjHXpy-attrrNeh']h(]h+]uhjDh]rOh=XstrictrPrQ}rR(hUhjJubah!hAubaubh=X is enabled, a rSrT}rU(hX is enabled, a hjubh)rV}rW(hX:exc:`RuntimeError`rXhjhNh!hh#}rY(UreftypeXexchщhX RuntimeErrorU refdomainXpyrZh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r[h7)r\}r](hjXh#}r^(h%]h&]r_(hjZXpy-excr`eh']h(]h+]uhjVh]rah=X RuntimeErrorrbrc}rd(hUhj\ubah!hAubaubh=X is raised.rerf}rg(hX is raised.hjubeubeubeubeubeubeubahUU transformerrhNU footnote_refsri}rjUrefnamesrk}rlUsymbol_footnotesrm]rnUautofootnote_refsro]rpUsymbol_footnote_refsrq]rrU citationsrs]rth.hU current_lineruNUtransform_messagesrv]rwUreporterrxNUid_startryKU autofootnotesrz]r{U citation_refsr|}r}Uindirect_targetsr~]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh4NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUL/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.rt.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjohjh jhhuhhh*cdocutils.nodes target r)r}r(hUhhhhIh!Utargetrh#}r(h%]h(]rh*ah']Uismodh&]h+]uh-Kh.hh]ubuUsubstitution_namesr}rh!h.h#}r(h%]h(]h']Usourcehh&]h+]uU footnotesr]rUrefidsr}rub.PK@D]>Jk;simpy-3.0.4/.doctrees/api_reference/simpy.resources.doctreecdocutils.nodes document q)q}q(U nametypesq}qX3simpy.resources --- simpy's built-in resource typesqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU/simpy-resources-simpy-s-built-in-resource-typesqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXS/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%(Xmodule-simpy.resourcesq&heUnamesq']q(hauUlineq)KUdocumentq*hh]q+(cdocutils.nodes title q,)q-}q.(hX7``simpy.resources`` --- SimPy's built-in resource typesq/hhhhhUtitleq0h}q1(h!]h"]h#]h$]h']uh)Kh*hh]q2(cdocutils.nodes literal q3)q4}q5(hX``simpy.resources``q6h}q7(h!]h"]h#]h$]h']uhh-h]q8cdocutils.nodes Text q9Xsimpy.resourcesq:q;}q<(hUhh4ubahUliteralq=ubh9X$ --- SimPy's built-in resource typesq>q?}q@(hX$ --- SimPy's built-in resource typesqAhh-ubeubcsphinx.addnodes index qB)qC}qD(hUhhhU qEhUindexqFh}qG(h$]h#]h!]h"]h']Uentries]qH(UsingleqIXsimpy.resources (module)Xmodule-simpy.resourcesUtqJauh)Kh*hh]ubcdocutils.nodes paragraph qK)qL}qM(hXUSimPy defines three kinds of resources with one or more concrete resource types each:qNhhhXe/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/__init__.py:docstring of simpy.resourcesqOhU paragraphqPh}qQ(h!]h"]h#]h$]h']uh)Kh*hh]qRh9XUSimPy defines three kinds of resources with one or more concrete resource types each:qSqT}qU(hhNhhLubaubcdocutils.nodes bullet_list qV)qW}qX(hUhhhhOhU bullet_listqYh}qZ(Ubulletq[X-h$]h#]h!]h"]h']uh)Kh*hh]q\(cdocutils.nodes list_item q])q^}q_(hX:mod:`~simpy.resources.resource`: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). hhWhhOhU list_itemq`h}qa(h!]h"]h#]h$]h']uh)Nh*hh]qbhK)qc}qd(hX:mod:`~simpy.resources.resource`: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).hh^hhOhhPh}qe(h!]h"]h#]h$]h']uh)Kh]qf(csphinx.addnodes pending_xref qg)qh}qi(hX :mod:`~simpy.resources.resource`qjhhchNhU pending_xrefqkh}ql(UreftypeXmodUrefwarnqmU reftargetqnXsimpy.resources.resourceU refdomainXpyqoh$]h#]U refexplicith!]h"]h']UrefdocqpXapi_reference/simpy.resourcesqqUpy:classqrNU py:moduleqsXsimpy.resourcesqtuh)Nh]quh3)qv}qw(hhjh}qx(h!]h"]qy(UxrefqzhoXpy-modq{eh#]h$]h']uhhhh]q|h9Xresourceq}q~}q(hUhhvubahh=ubaubh9X: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).qq}q(hX: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).hhcubeubaubh])q}q(hX:mod:`~simpy.resources.container`: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples). hhWhhOhh`h}q(h!]h"]h#]h$]h']uh)Nh*hh]qhK)q}q(hX:mod:`~simpy.resources.container`: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).hhhhOhhPh}q(h!]h"]h#]h$]h']uh)Kh]q(hg)q}q(hX!:mod:`~simpy.resources.container`qhhhNhhkh}q(UreftypeXmodhmhnXsimpy.resources.containerU refdomainXpyqh$]h#]U refexplicith!]h"]h']hphqhrNhshtuh)Nh]qh3)q}q(hhh}q(h!]h"]q(hzhXpy-modqeh#]h$]h']uhhh]qh9X containerqq}q(hUhhubahh=ubaubh9X: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qq}q(hX: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).hhubeubaubh])q}q(hXo:mod:`~simpy.resources.store`: Resources that allow the production and consumption of discrete Python objects. hhWhhOhh`h}q(h!]h"]h#]h$]h']uh)Nh*hh]qhK)q}q(hXn:mod:`~simpy.resources.store`: Resources that allow the production and consumption of discrete Python objects.hhhhOhhPh}q(h!]h"]h#]h$]h']uh)K h]q(hg)q}q(hX:mod:`~simpy.resources.store`qhhhNhhkh}q(UreftypeXmodhmhnXsimpy.resources.storeU refdomainXpyqh$]h#]U refexplicith!]h"]h']hphqhrNhshtuh)Nh]qh3)q}q(hhh}q(h!]h"]q(hzhXpy-modqeh#]h$]h']uhhh]qh9Xstoreqq}q(hUhhubahh=ubaubh9XQ: Resources that allow the production and consumption of discrete Python objects.qq}q(hXQ: Resources that allow the production and consumption of discrete Python objects.hhubeubaubeubhK)q}q(hXeThe :mod:`~simpy.resources.base` module defines the base classes that are used by all resource types.hhhhOhhPh}q(h!]h"]h#]h$]h']uh)Kh*hh]q(h9XThe qq}q(hXThe hhubhg)q}q(hX:mod:`~simpy.resources.base`qhhhNhhkh}q(UreftypeXmodhmhnXsimpy.resources.baseU refdomainXpyqh$]h#]U refexplicith!]h"]h']hphqhrNhshtuh)Nh]qh3)q}q(hhh}q(h!]h"]q(hzhXpy-modqeh#]h$]h']uhhh]qh9Xbaseqʅq}q(hUhhubahh=ubaubh9XE module defines the base classes that are used by all resource types.qͅq}q(hXE module defines the base classes that are used by all resource types.hhubeubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh*hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh0NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUS/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.rstrUgettext_compactrU generatorr NUdump_internalsr!NU smart_quotesr"U pep_base_urlr#Uhttp://www.python.org/dev/peps/r$Usyntax_highlightr%Ulongr&Uinput_encoding_error_handlerr'jUauto_id_prefixr(Uidr)Udoctitle_xformr*Ustrip_elements_with_classesr+NU _config_filesr,]Ufile_insertion_enabledr-U raw_enabledr.KU dump_settingsr/NubUsymbol_footnote_startr0KUidsr1}r2(h&cdocutils.nodes target r3)r4}r5(hUhhhhEhUtargetr6h}r7(h!]h$]r8h&ah#]Uismodh"]h']uh)Kh*hh]ubhhuUsubstitution_namesr9}r:hh*h}r;(h!]h$]h#]Usourcehh"]h']uU footnotesr<]r=Urefidsr>}r?ub.PK@D#="D  Dsimpy-3.0.4/.doctrees/api_reference/simpy.resources.resource.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X'simpy.resources.resource.Resource.countqX3simpy.resources.resource -- resource type resourcesqNX%simpy.resources.resource.Preempted.byqX+simpy.resources.resource.SortedQueue.maxlenq X simpy.resources.resource.Releaseq X1simpy.resources.resource.PriorityRequest.priorityq X+simpy.resources.resource.SortedQueue.appendq X$simpy.resources.resource.SortedQueueq X)simpy.resources.resource.Resource.requestqX simpy.resources.resource.RequestqX*simpy.resources.resource.Resource.capacityqX)simpy.resources.resource.PriorityResourceqX"simpy.resources.resource.PreemptedqX(simpy.resources.resource.PriorityRequestqX+simpy.resources.resource.PreemptiveResourceqX2simpy.resources.resource.PriorityResource.PutQueueqX-simpy.resources.resource.PriorityRequest.timeqX'simpy.resources.resource.Resource.queueqX.simpy.resources.resource.Preempted.usage_sinceqX(simpy.resources.resource.Release.requestqX0simpy.resources.resource.PriorityRequest.preemptqX,simpy.resources.resource.PriorityRequest.keyqX1simpy.resources.resource.PriorityResource.requestqX'simpy.resources.resource.Resource.usersqX)simpy.resources.resource.Resource.releaseqX!simpy.resources.resource.ResourceqX2simpy.resources.resource.PriorityResource.GetQueueq uUsubstitution_defsq!}q"Uparse_messagesq#]q$Ucurrent_sourceq%NU decorationq&NUautofootnote_startq'KUnameidsq(}q)(hhhU0simpy-resources-resource-resource-type-resourcesq*hhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h uUchildrenq+]q,cdocutils.nodes section q-)q.}q/(U rawsourceq0UUparentq1hUsourceq2cdocutils.nodes reprunicode q3X\/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.resource.rstq4q5}q6bUtagnameq7Usectionq8U attributesq9}q:(Udupnamesq;]Uclassesq<]Ubackrefsq=]Uidsq>]q?(Xmodule-simpy.resources.resourceq@h*eUnamesqA]qBhauUlineqCKUdocumentqDhh+]qE(cdocutils.nodes title qF)qG}qH(h0X7``simpy.resources.resource`` -- Resource type resourcesqIh1h.h2h5h7UtitleqJh9}qK(h;]h<]h=]h>]hA]uhCKhDhh+]qL(cdocutils.nodes literal qM)qN}qO(h0X``simpy.resources.resource``qPh9}qQ(h;]h<]h=]h>]hA]uh1hGh+]qRcdocutils.nodes Text qSXsimpy.resources.resourceqTqU}qV(h0Uh1hNubah7UliteralqWubhSX -- Resource type resourcesqXqY}qZ(h0X -- Resource type resourcesq[h1hGubeubcsphinx.addnodes index q\)q]}q^(h0Uh1h.h2U q_h7Uindexq`h9}qa(h>]h=]h;]h<]hA]Uentries]qb(UsingleqcX!simpy.resources.resource (module)Xmodule-simpy.resources.resourceUtqdauhCKhDhh+]ubcdocutils.nodes paragraph qe)qf}qg(h0X:This module contains all :class:`Resource` like resources.h1h.h2Xn/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resourceqhh7U paragraphqih9}qj(h;]h<]h=]h>]hA]uhCKhDhh+]qk(hSXThis module contains all qlqm}qn(h0XThis module contains all h1hfubcsphinx.addnodes pending_xref qo)qp}qq(h0X:class:`Resource`qrh1hfh2h5h7U pending_xrefqsh9}qt(UreftypeXclassUrefwarnquU reftargetqvXResourceU refdomainXpyqwh>]h=]U refexplicith;]h<]hA]UrefdocqxX&api_reference/simpy.resources.resourceqyUpy:classqzNU py:moduleq{Xsimpy.resources.resourceq|uhCKh+]q}hM)q~}q(h0hrh9}q(h;]h<]q(UxrefqhwXpy-classqeh=]h>]hA]uh1hph+]qhSXResourceqq}q(h0Uh1h~ubah7hWubaubhSX like resources.qq}q(h0X like resources.h1hfubeubhe)q}q(h0XeThese resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes *request* these resources to become a user (or to own them) and have to *release* them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).h1h.h2hhh7hih9}q(h;]h<]h=]h>]hA]uhCKhDhh+]q(hSXThese resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes qq}q(h0XThese resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes h1hubcdocutils.nodes emphasis q)q}q(h0X *request*h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXrequestqq}q(h0Uh1hubah7UemphasisqubhSX? these resources to become a user (or to own them) and have to qq}q(h0X? these resources to become a user (or to own them) and have to h1hubh)q}q(h0X *release*h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXreleaseqq}q(h0Uh1hubah7hubhSX them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).qq}q(h0X them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).h1hubeubhe)q}q(h0XRequesting a resources is modeled as "putting a process' token into the resources" and releasing a resources correspondingly as "getting a process' token out of the resource". Thus, calling ``request()``/``release()`` is equivalent to calling ``put()``/``get()``. Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.h1h.h2hhh7hih9}q(h;]h<]h=]h>]hA]uhCK hDhh+]q(hSXRequesting a resources is modeled as "putting a process' token into the resources" and releasing a resources correspondingly as "getting a process' token out of the resource". Thus, calling qq}q(h0XRequesting a resources is modeled as "putting a process' token into the resources" and releasing a resources correspondingly as "getting a process' token out of the resource". Thus, calling h1hubhM)q}q(h0X ``request()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSX request()qq}q(h0Uh1hubah7hWubhSX/q}q(h0X/h1hubhM)q}q(h0X ``release()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSX release()qq}q(h0Uh1hubah7hWubhSX is equivalent to calling qq}q(h0X is equivalent to calling h1hubhM)q}q(h0X ``put()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXput()qƅq}q(h0Uh1hubah7hWubhSX/q}q(h0X/h1hubhM)q}q(h0X ``get()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXget()qυq}q(h0Uh1hubah7hWubhSX~. Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.q҅q}q(h0X~. Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.h1hubeubhe)q}q(h0XBeside :class:`Resource`, there are a :class:`PriorityResource`, were processes can define a request priority, and a :class:`PreemptiveResource` whose resource users can be preempted by other processes with a higher priority.h1h.h2hhh7hih9}q(h;]h<]h=]h>]hA]uhCKhDhh+]q(hSXBeside qمq}q(h0XBeside h1hubho)q}q(h0X:class:`Resource`qh1hh2h5h7hsh9}q(UreftypeXclasshuhvXResourceU refdomainXpyqh>]h=]U refexplicith;]h<]hA]hxhyhzNh{h|uhCKh+]qhM)q}q(h0hh9}q(h;]h<]q(hhXpy-classqeh=]h>]hA]uh1hh+]qhSXResourceq腁q}q(h0Uh1hubah7hWubaubhSX, there are a q녁q}q(h0X, there are a h1hubho)q}q(h0X:class:`PriorityResource`qh1hh2h5h7hsh9}q(UreftypeXclasshuhvXPriorityResourceU refdomainXpyqh>]h=]U refexplicith;]h<]hA]hxhyhzNh{h|uhCKh+]qhM)q}q(h0hh9}q(h;]h<]q(hhXpy-classqeh=]h>]hA]uh1hh+]qhSXPriorityResourceqq}q(h0Uh1hubah7hWubaubhSX6, were processes can define a request priority, and a qq}q(h0X6, were processes can define a request priority, and a h1hubho)r}r(h0X:class:`PreemptiveResource`rh1hh2h5h7hsh9}r(UreftypeXclasshuhvXPreemptiveResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzNh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r (hjXpy-classr eh=]h>]hA]uh1jh+]r hSXPreemptiveResourcer r }r(h0Uh1jubah7hWubaubhSXQ whose resource users can be preempted by other processes with a higher priority.rr}r(h0XQ whose resource users can be preempted by other processes with a higher priority.h1hubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX,Resource (class in simpy.resources.resource)hUtrauhCNhDhh+]ubcsphinx.addnodes desc r)r}r(h0Uh1h.h2Nh7Udescrh9}r(UnoindexrUdomainrXpyh>]h=]h;]h<]hA]UobjtyperXclassrUdesctyper juhCNhDhh+]r!(csphinx.addnodes desc_signature r")r#}r$(h0XResource(env, capacity=1)h1jh2U r%h7Udesc_signaturer&h9}r'(h>]r(haUmoduler)h3Xsimpy.resources.resourcer*r+}r,bh=]h;]h<]hA]r-haUfullnamer.XResourcer/Uclassr0UUfirstr1uhCNhDhh+]r2(csphinx.addnodes desc_annotation r3)r4}r5(h0Xclass h1j#h2j%h7Udesc_annotationr6h9}r7(h;]h<]h=]h>]hA]uhCNhDhh+]r8hSXclass r9r:}r;(h0Uh1j4ubaubcsphinx.addnodes desc_addname r<)r=}r>(h0Xsimpy.resources.resource.h1j#h2j%h7U desc_addnamer?h9}r@(h;]h<]h=]h>]hA]uhCNhDhh+]rAhSXsimpy.resources.resource.rBrC}rD(h0Uh1j=ubaubcsphinx.addnodes desc_name rE)rF}rG(h0j/h1j#h2j%h7U desc_namerHh9}rI(h;]h<]h=]h>]hA]uhCNhDhh+]rJhSXResourcerKrL}rM(h0Uh1jFubaubcsphinx.addnodes desc_parameterlist rN)rO}rP(h0Uh1j#h2j%h7Udesc_parameterlistrQh9}rR(h;]h<]h=]h>]hA]uhCNhDhh+]rS(csphinx.addnodes desc_parameter rT)rU}rV(h0Xenvh9}rW(h;]h<]h=]h>]hA]uh1jOh+]rXhSXenvrYrZ}r[(h0Uh1jUubah7Udesc_parameterr\ubjT)r]}r^(h0X capacity=1h9}r_(h;]h<]h=]h>]hA]uh1jOh+]r`hSX capacity=1rarb}rc(h0Uh1j]ubah7j\ubeubeubcsphinx.addnodes desc_content rd)re}rf(h0Uh1jh2j%h7U desc_contentrgh9}rh(h;]h<]h=]h>]hA]uhCNhDhh+]ri(he)rj}rk(h0XLA resource has a limited number of slots that can be requested by a process.rlh1jeh2Xw/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Resourcermh7hih9}rn(h;]h<]h=]h>]hA]uhCKhDhh+]rohSXLA resource has a limited number of slots that can be requested by a process.rprq}rr(h0jlh1jjubaubhe)rs}rt(h0XIf all slots are taken, requesters are put into a queue. If a process releases a slot, the next process is popped from the queue and gets one slot.ruh1jeh2jmh7hih9}rv(h;]h<]h=]h>]hA]uhCKhDhh+]rwhSXIf all slots are taken, requesters are put into a queue. If a process releases a slot, the next process is popped from the queue and gets one slot.rxry}rz(h0juh1jsubaubhe)r{}r|(h0X^The *env* parameter is the :class:`~simpy.core.Environment` instance the resource is bound to.h1jeh2jmh7hih9}r}(h;]h<]h=]h>]hA]uhCKhDhh+]r~(hSXThe rr}r(h0XThe h1j{ubh)r}r(h0X*env*h9}r(h;]h<]h=]h>]hA]uh1j{h+]rhSXenvrr}r(h0Uh1jubah7hubhSX parameter is the rr}r(h0X parameter is the h1j{ubho)r}r(h0X :class:`~simpy.core.Environment`rh1j{h2h5h7hsh9}r(UreftypeXclasshuhvXsimpy.core.EnvironmentU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSX Environmentrr}r(h0Uh1jubah7hWubaubhSX# instance the resource is bound to.rr}r(h0X# instance the resource is bound to.h1j{ubeubhe)r}r(h0XJThe *capacity* defines the number of slots and must be a positive integer.h1jeh2jmh7hih9}r(h;]h<]h=]h>]hA]uhCK hDhh+]r(hSXThe rr}r(h0XThe h1jubh)r}r(h0X *capacity*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXcapacityrr}r(h0Uh1jubah7hubhSX< defines the number of slots and must be a positive integer.rr}r(h0X< defines the number of slots and must be a positive integer.h1jubeubh\)r}r(h0Uh1jeh2X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.usersrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX3users (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.usersh1jh2U rh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.usersj0j/j1uhCNhDhh+]r(jE)r}r(h0Xusersh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXusersrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XXList of :class:`Request` events for the processes that are currently using the resource.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXList of rr}r(h0XList of h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX@ events for the processes that are currently using the resource.rr}r(h0X@ events for the processes that are currently using the resource.h1jubeubaubeubh\)r}r(h0Uh1jeh2X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.queuerh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX3queue (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.queueh1jh2jh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.queuej0j/j1uhCNhDhh+]r(jE)r}r(h0Xqueueh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXqueuerr}r (h0Uh1jubaubj3)r }r (h0X = Noneh1jh2jh7j6h9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r hSX = Nonerr}r(h0Uh1j ubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XcQueue/list of pending :class:`Request` events that represent processes waiting to use the resource.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXQueue/list of pending rr}r(h0XQueue/list of pending h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyr h>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCKh+]r!hM)r"}r#(h0jh9}r$(h;]h<]r%(hj Xpy-classr&eh=]h>]hA]uh1jh+]r'hSXRequestr(r)}r*(h0Uh1j"ubah7hWubaubhSX= events that represent processes waiting to use the resource.r+r,}r-(h0X= events that represent processes waiting to use the resource.h1jubeubaubeubh\)r.}r/(h0Uh1jeh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.capacityr0h7h`h9}r1(h>]h=]h;]h<]hA]Uentries]r2(hcX6capacity (simpy.resources.resource.Resource attribute)hUtr3auhCNhDhh+]ubj)r4}r5(h0Uh1jeh2j0h7jh9}r6(jjXpyh>]h=]h;]h<]hA]jX attributer7j j7uhCNhDhh+]r8(j")r9}r:(h0XResource.capacityh1j4h2j%h7j&h9}r;(h>]r<haj)h3Xsimpy.resources.resourcer=r>}r?bh=]h;]h<]hA]r@haj.XResource.capacityj0j/j1uhCNhDhh+]rAjE)rB}rC(h0Xcapacityh1j9h2j%h7jHh9}rD(h;]h<]h=]h>]hA]uhCNhDhh+]rEhSXcapacityrFrG}rH(h0Uh1jBubaubaubjd)rI}rJ(h0Uh1j4h2j%h7jgh9}rK(h;]h<]h=]h>]hA]uhCNhDhh+]rLhe)rM}rN(h0X!Maximum capacity of the resource.rOh1jIh2j0h7hih9}rP(h;]h<]h=]h>]hA]uhCKhDhh+]rQhSX!Maximum capacity of the resource.rRrS}rT(h0jOh1jMubaubaubeubh\)rU}rV(h0Uh1jeh2X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.countrWh7h`h9}rX(h>]h=]h;]h<]hA]Uentries]rY(hcX3count (simpy.resources.resource.Resource attribute)hUtrZauhCNhDhh+]ubj)r[}r\(h0Uh1jeh2jWh7jh9}r](jjXpyh>]h=]h;]h<]hA]jX attributer^j j^uhCNhDhh+]r_(j")r`}ra(h0XResource.counth1j[h2j%h7j&h9}rb(h>]rchaj)h3Xsimpy.resources.resourcerdre}rfbh=]h;]h<]hA]rghaj.XResource.countj0j/j1uhCNhDhh+]rhjE)ri}rj(h0Xcounth1j`h2j%h7jHh9}rk(h;]h<]h=]h>]hA]uhCNhDhh+]rlhSXcountrmrn}ro(h0Uh1jiubaubaubjd)rp}rq(h0Uh1j[h2j%h7jgh9}rr(h;]h<]h=]h>]hA]uhCNhDhh+]rshe)rt}ru(h0X-Number of users currently using the resource.rvh1jph2jWh7hih9}rw(h;]h<]h=]h>]hA]uhCKhDhh+]rxhSX-Number of users currently using the resource.ryrz}r{(h0jvh1jtubaubaubeubh\)r|}r}(h0Uh1jeh2Uh7h`h9}r~(h>]h=]h;]h<]hA]Uentries]r(hcX5request (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.requesth1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.requestj0j/j1uhCNhDhh+]rjE)r}r(h0Xrequesth1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXrequestrr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0X$Create a new :class:`Request` event.h1jh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.requesth7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX Create a new rr}r(h0X Create a new h1jubho)r}r(h0X:class:`Request`rh1jh2Nh7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX event.rr}r(h0X event.h1jubeubhe)r}r(h0Xalias of :class:`Request`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X:class:`Request`rh1jh2Nh7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubeubeubeubh\)r}r(h0Uh1jeh2Uh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX5release (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.releaseh1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.releasej0j/j1uhCNhDhh+]rjE)r}r(h0Xreleaseh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXreleaserr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0X$Create a new :class:`Release` event.h1jh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.releaseh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX Create a new rr}r(h0X Create a new h1jubho)r}r(h0X:class:`Release`rh1jh2Nh7hsh9}r(UreftypeXclasshuhvXReleaseU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXReleaserr}r(h0Uh1jubah7hWubaubhSX event.rr}r(h0X event.h1jubeubhe)r}r(h0Xalias of :class:`Release`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X:class:`Release`r h1jh2Nh7hsh9}r (UreftypeXclasshuhvXReleaseU refdomainXpyr h>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]r hM)r }r(h0j h9}r(h;]h<]r(hj Xpy-classreh=]h>]hA]uh1jh+]rhSXReleaserr}r(h0Uh1j ubah7hWubaubeubeubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX4PriorityResource (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2Nh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r }r!(h0X!PriorityResource(env, capacity=1)h1jh2j%h7j&h9}r"(h>]r#haj)h3Xsimpy.resources.resourcer$r%}r&bh=]h;]h<]hA]r'haj.XPriorityResourcer(j0Uj1uhCNhDhh+]r)(j3)r*}r+(h0Xclass h1j h2j%h7j6h9}r,(h;]h<]h=]h>]hA]uhCNhDhh+]r-hSXclass r.r/}r0(h0Uh1j*ubaubj<)r1}r2(h0Xsimpy.resources.resource.h1j h2j%h7j?h9}r3(h;]h<]h=]h>]hA]uhCNhDhh+]r4hSXsimpy.resources.resource.r5r6}r7(h0Uh1j1ubaubjE)r8}r9(h0j(h1j h2j%h7jHh9}r:(h;]h<]h=]h>]hA]uhCNhDhh+]r;hSXPriorityResourcer<r=}r>(h0Uh1j8ubaubjN)r?}r@(h0Uh1j h2j%h7jQh9}rA(h;]h<]h=]h>]hA]uhCNhDhh+]rB(jT)rC}rD(h0Xenvh9}rE(h;]h<]h=]h>]hA]uh1j?h+]rFhSXenvrGrH}rI(h0Uh1jCubah7j\ubjT)rJ}rK(h0X capacity=1h9}rL(h;]h<]h=]h>]hA]uh1j?h+]rMhSX capacity=1rNrO}rP(h0Uh1jJubah7j\ubeubeubjd)rQ}rR(h0Uh1jh2j%h7jgh9}rS(h;]h<]h=]h>]hA]uhCNhDhh+]rT(he)rU}rV(h0XMThis class works like :class:`Resource`, but requests are sorted by priority.h1jQh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResourcerWh7hih9}rX(h;]h<]h=]h>]hA]uhCKhDhh+]rY(hSXThis class works like rZr[}r\(h0XThis class works like h1jUubho)r]}r^(h0X:class:`Resource`r_h1jUh2h5h7hsh9}r`(UreftypeXclasshuhvXResourceU refdomainXpyrah>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rbhM)rc}rd(h0j_h9}re(h;]h<]rf(hjaXpy-classrgeh=]h>]hA]uh1j]h+]rhhSXResourcerirj}rk(h0Uh1jcubah7hWubaubhSX&, but requests are sorted by priority.rlrm}rn(h0X&, but requests are sorted by priority.h1jUubeubhe)ro}rp(h0XThe :attr:`~Resource.queue` is kept sorted by priority in ascending order (a lower value for *priority* results in a higher priority), so more important request will get the resource earlier.h1jQh2jWh7hih9}rq(h;]h<]h=]h>]hA]uhCKhDhh+]rr(hSXThe rsrt}ru(h0XThe h1joubho)rv}rw(h0X:attr:`~Resource.queue`rxh1joh2h5h7hsh9}ry(UreftypeXattrhuhvXResource.queueU refdomainXpyrzh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]r{hM)r|}r}(h0jxh9}r~(h;]h<]r(hjzXpy-attrreh=]h>]hA]uh1jvh+]rhSXqueuerr}r(h0Uh1j|ubah7hWubaubhSXB is kept sorted by priority in ascending order (a lower value for rr}r(h0XB is kept sorted by priority in ascending order (a lower value for h1joubh)r}r(h0X *priority*h9}r(h;]h<]h=]h>]hA]uh1joh+]rhSXpriorityrr}r(h0Uh1jubah7hubhSXX results in a higher priority), so more important request will get the resource earlier.rr}r(h0XX results in a higher priority), so more important request will get the resource earlier.h1joubeubh\)r}r(h0Uh1jQh2Uh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX>PutQueue (simpy.resources.resource.PriorityResource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jQh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPriorityResource.PutQueueh1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPriorityResource.PutQueuej0j(j1uhCNhDhh+]rjE)r}r(h0XPutQueueh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXPutQueuerr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XQThe type to be used for the :attr:`~simpy.resources.base.BaseResource.put_queue`.h1jh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResource.PutQueueh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXThe type to be used for the rr}r(h0XThe type to be used for the h1jubho)r}r(h0X4:attr:`~simpy.resources.base.BaseResource.put_queue`rh1jh2h5h7hsh9}r(UreftypeXattrhuhvX+simpy.resources.base.BaseResource.put_queueU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-attrreh=]h>]hA]uh1jh+]rhSX put_queuerr}r(h0Uh1jubah7hWubaubhSX.r}r(h0X.h1jubeubhe)r}r(h0Xalias of :class:`SortedQueue`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X:class:`SortedQueue`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvX SortedQueueU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSX SortedQueuerr}r(h0Uh1jubah7hWubaubeubeubeubh\)r}r(h0Uh1jQh2Uh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX>GetQueue (simpy.resources.resource.PriorityResource attribute)h UtrauhCNhDhh+]ubj)r}r(h0Uh1jQh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPriorityResource.GetQueueh1jh2j%h7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.XPriorityResource.GetQueuej0j(j1uhCNhDhh+]rjE)r}r(h0XGetQueueh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXGetQueuerr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XQThe type to be used for the :attr:`~simpy.resources.base.BaseResource.get_queue`.h1jh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResource.GetQueueh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXThe type to be used for the rr}r(h0XThe type to be used for the h1jubho)r}r(h0X4:attr:`~simpy.resources.base.BaseResource.get_queue`rh1jh2h5h7hsh9}r(UreftypeXattrhuhvX+simpy.resources.base.BaseResource.get_queueU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rhM)r }r (h0jh9}r (h;]h<]r (hjXpy-attrr eh=]h>]hA]uh1jh+]rhSX get_queuerr}r(h0Uh1j ubah7hWubaubhSX.r}r(h0X.h1jubeubhe)r}r(h0Xalias of :class:`list`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X :class:`list`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXlistU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]r hM)r!}r"(h0jh9}r#(h;]h<]r$(hjXpy-classr%eh=]h>]hA]uh1jh+]r&hSXlistr'r(}r)(h0Uh1j!ubah7hWubaubeubeubeubh\)r*}r+(h0Uh1jQh2Uh7h`h9}r,(h>]h=]h;]h<]hA]Uentries]r-(hcX=request (simpy.resources.resource.PriorityResource attribute)hUtr.auhCNhDhh+]ubj)r/}r0(h0Uh1jQh2Uh7jh9}r1(jjXpyh>]h=]h;]h<]hA]jX attributer2j j2uhCNhDhh+]r3(j")r4}r5(h0XPriorityResource.requesth1j/h2j%h7j&h9}r6(h>]r7haj)h3Xsimpy.resources.resourcer8r9}r:bh=]h;]h<]hA]r;haj.XPriorityResource.requestj0j(j1uhCNhDhh+]r<jE)r=}r>(h0Xrequesth1j4h2j%h7jHh9}r?(h;]h<]h=]h>]hA]uhCNhDhh+]r@hSXrequestrArB}rC(h0Uh1j=ubaubaubjd)rD}rE(h0Uh1j/h2j%h7jgh9}rF(h;]h<]h=]h>]hA]uhCNhDhh+]rG(he)rH}rI(h0X,Create a new :class:`PriorityRequest` event.h1jDh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResource.requesth7hih9}rJ(h;]h<]h=]h>]hA]uhCKhDhh+]rK(hSX Create a new rLrM}rN(h0X Create a new h1jHubho)rO}rP(h0X:class:`PriorityRequest`rQh1jHh2Nh7hsh9}rR(UreftypeXclasshuhvXPriorityRequestU refdomainXpyrSh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCNh+]rThM)rU}rV(h0jQh9}rW(h;]h<]rX(hjSXpy-classrYeh=]h>]hA]uh1jOh+]rZhSXPriorityRequestr[r\}r](h0Uh1jUubah7hWubaubhSX event.r^r_}r`(h0X event.h1jHubeubhe)ra}rb(h0X!alias of :class:`PriorityRequest`h1jDh2Uh7hih9}rc(h;]h<]h=]h>]hA]uhCKhDhh+]rd(hSX alias of rerf}rg(h0X alias of h1jaubho)rh}ri(h0X:class:`PriorityRequest`rjh1jah2Nh7hsh9}rk(UreftypeXclasshuhvXPriorityRequestU refdomainXpyrlh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCNh+]rmhM)rn}ro(h0jjh9}rp(h;]h<]rq(hjlXpy-classrreh=]h>]hA]uh1jhh+]rshSXPriorityRequestrtru}rv(h0Uh1jnubah7hWubaubeubeubeubeubeubh\)rw}rx(h0Uh1h.h2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PreemptiveResourceryh7h`h9}rz(h>]h=]h;]h<]hA]Uentries]r{(hcX6PreemptiveResource (class in simpy.resources.resource)hUtr|auhCNhDhh+]ubj)r}}r~(h0Uh1h.h2jyh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r(h0X#PreemptiveResource(env, capacity=1)h1j}h2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPreemptiveResourcerj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1jh2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXsimpy.resources.resource.rr}r(h0Uh1jubaubjE)r}r(h0jh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXPreemptiveResourcerr}r(h0Uh1jubaubjN)r}r(h0Uh1jh2j%h7jQh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(jT)r}r(h0Xenvh9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXenvrr}r(h0Uh1jubah7j\ubjT)r}r(h0X capacity=1h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSX capacity=1rr}r(h0Uh1jubah7j\ubeubeubjd)r}r(h0Uh1j}h2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XThis resource mostly works like :class:`Resource`, but users of the resource can be *preempted* by higher prioritized requests.h1jh2jyh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX This resource mostly works like rr}r(h0X This resource mostly works like h1jubho)r}r(h0X:class:`Resource`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXResourcerr}r(h0Uh1jubah7hWubaubhSX#, but users of the resource can be rr}r(h0X#, but users of the resource can be h1jubh)r}r(h0X *preempted*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSX preemptedrr}r(h0Uh1jubah7hubhSX by higher prioritized requests.rr}r(h0X by higher prioritized requests.h1jubeubhe)r}r(h0X@Furthermore, the queue of requests is also sorted by *priority*.h1jh2jyh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX5Furthermore, the queue of requests is also sorted by rr}r(h0X5Furthermore, the queue of requests is also sorted by h1jubh)r}r(h0X *priority*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXpriorityrr}r(h0Uh1jubah7hubhSX.r}r(h0X.h1jubeubhe)r}r(h0XIf a less important request is preempted, the process of that request will receive an :class:`~simpy.events.Interrupt` with a :class:`Preempted` instance as cause.h1jh2jyh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXVIf a less important request is preempted, the process of that request will receive an rr}r(h0XVIf a less important request is preempted, the process of that request will receive an h1jubho)r}r(h0X :class:`~simpy.events.Interrupt`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXsimpy.events.InterruptU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSX Interruptrr}r(h0Uh1jubah7hWubaubhSX with a rr}r(h0X with a h1jubho)r}r(h0X:class:`Preempted`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvX PreemptedU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r }r (h0jh9}r (h;]h<]r (hjXpy-classr eh=]h>]hA]uh1jh+]rhSX Preemptedrr}r(h0Uh1j ubah7hWubaubhSX instance as cause.rr}r(h0X instance as cause.h1jubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX-Preempted (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2Nh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r (h0XPreempted(by, usage_since)h1jh2j%h7j&h9}r!(h>]r"haj)h3Xsimpy.resources.resourcer#r$}r%bh=]h;]h<]hA]r&haj.X Preemptedr'j0Uj1uhCNhDhh+]r((j3)r)}r*(h0Xclass h1jh2j%h7j6h9}r+(h;]h<]h=]h>]hA]uhCNhDhh+]r,hSXclass r-r.}r/(h0Uh1j)ubaubj<)r0}r1(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r2(h;]h<]h=]h>]hA]uhCNhDhh+]r3hSXsimpy.resources.resource.r4r5}r6(h0Uh1j0ubaubjE)r7}r8(h0j'h1jh2j%h7jHh9}r9(h;]h<]h=]h>]hA]uhCNhDhh+]r:hSX Preemptedr;r<}r=(h0Uh1j7ubaubjN)r>}r?(h0Uh1jh2j%h7jQh9}r@(h;]h<]h=]h>]hA]uhCNhDhh+]rA(jT)rB}rC(h0Xbyh9}rD(h;]h<]h=]h>]hA]uh1j>h+]rEhSXbyrFrG}rH(h0Uh1jBubah7j\ubjT)rI}rJ(h0X usage_sinceh9}rK(h;]h<]h=]h>]hA]uh1j>h+]rLhSX usage_sincerMrN}rO(h0Uh1jIubah7j\ubeubeubjd)rP}rQ(h0Uh1jh2j%h7jgh9}rR(h;]h<]h=]h>]hA]uhCNhDhh+]rS(h\)rT}rU(h0Uh1jPh2X{/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Preempted.byrVh7h`h9}rW(h>]h=]h;]h<]hA]Uentries]rX(hcX1by (simpy.resources.resource.Preempted attribute)hUtrYauhCNhDhh+]ubj)rZ}r[(h0Uh1jPh2jVh7jh9}r\(jjXpyh>]h=]h;]h<]hA]jX attributer]j j]uhCNhDhh+]r^(j")r_}r`(h0X Preempted.byh1jZh2jh7j&h9}ra(h>]rbhaj)h3Xsimpy.resources.resourcercrd}rebh=]h;]h<]hA]rfhaj.X Preempted.byj0j'j1uhCNhDhh+]rg(jE)rh}ri(h0Xbyh1j_h2jh7jHh9}rj(h;]h<]h=]h>]hA]uhCNhDhh+]rkhSXbyrlrm}rn(h0Uh1jhubaubj3)ro}rp(h0X = Noneh1j_h2jh7j6h9}rq(h;]h<]h=]h>]hA]uhCNhDhh+]rrhSX = Nonersrt}ru(h0Uh1joubaubeubjd)rv}rw(h0Uh1jZh2jh7jgh9}rx(h;]h<]h=]h>]hA]uhCNhDhh+]ryhe)rz}r{(h0X-The preempting :class:`simpy.events.Process`.h1jvh2jVh7hih9}r|(h;]h<]h=]h>]hA]uhCKhDhh+]r}(hSXThe preempting r~r}r(h0XThe preempting h1jzubho)r}r(h0X:class:`simpy.events.Process`rh1jzh2h5h7hsh9}r(UreftypeXclasshuhvXsimpy.events.ProcessU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj'h{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXsimpy.events.Processrr}r(h0Uh1jubah7hWubaubhSX.r}r(h0X.h1jzubeubaubeubh\)r}r(h0Uh1jPh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Preempted.usage_sincerh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX:usage_since (simpy.resources.resource.Preempted attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jPh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPreempted.usage_sinceh1jh2jh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPreempted.usage_sincej0j'j1uhCNhDhh+]r(jE)r}r(h0X usage_sinceh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX usage_sincerr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XOThe simulation time at which the preempted process started to use the resource.rh1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]rhSXOThe simulation time at which the preempted process started to use the resource.rr}r(h0jh1jubaubaubeubeubeubh\)r}r(h0Uh1h.h2Xv/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Requestrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX+Request (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r(h0XRequest(resource)h1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XRequestrj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1jh2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXsimpy.resources.resource.rr}r(h0Uh1jubaubjE)r}r(h0jh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXRequestrr}r(h0Uh1jubaubjN)r}r(h0Uh1jh2j%h7jQh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rjT)r}r(h0Xresourceh9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXresourcerr}r(h0Uh1jubah7j\ubaubeubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XPRequest access on the *resource*. The event is triggered once access is granted.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXRequest access on the rr}r(h0XRequest access on the h1jubh)r}r(h0X *resource*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXresourcerr}r(h0Uh1jubah7hubhSX0. The event is triggered once access is granted.rr}r (h0X0. The event is triggered once access is granted.h1jubeubhe)r }r (h0XIf the maximum capacity of users is not reached, the requesting process obtains the resource immediately. If the maximum capacity is reached, the requesting process waits until another process releases the resource.r h1jh2jh7hih9}r (h;]h<]h=]h>]hA]uhCKhDhh+]rhSXIf the maximum capacity of users is not reached, the requesting process obtains the resource immediately. If the maximum capacity is reached, the requesting process waits until another process releases the resource.rr}r(h0j h1j ubaubhe)r}r(h0XfThe request is automatically released when the request was created within a :keyword:`with` statement.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXLThe request is automatically released when the request was created within a rr}r(h0XLThe request is automatically released when the request was created within a h1jubho)r}r(h0X:keyword:`with`rh1jh2h5h7hsh9}r(UreftypeXkeywordhuhvXwithU refdomainXstdrh>]h=]U refexplicith;]h<]hA]hxhyuhCK h+]rhM)r}r (h0jh9}r!(h;]h<]r"(hjX std-keywordr#eh=]h>]hA]uh1jh+]r$hSXwithr%r&}r'(h0Uh1jubah7hWubaubhSX statement.r(r)}r*(h0X statement.h1jubeubeubeubh\)r+}r,(h0Uh1h.h2Nh7h`h9}r-(h>]h=]h;]h<]hA]Uentries]r.(hcX+Release (class in simpy.resources.resource)h Utr/auhCNhDhh+]ubj)r0}r1(h0Uh1h.h2Nh7jh9}r2(jjXpyh>]h=]h;]h<]hA]jXclassr3j j3uhCNhDhh+]r4(j")r5}r6(h0XRelease(resource, request)h1j0h2j%h7j&h9}r7(h>]r8h aj)h3Xsimpy.resources.resourcer9r:}r;bh=]h;]h<]hA]r<h aj.XReleaser=j0Uj1uhCNhDhh+]r>(j3)r?}r@(h0Xclass h1j5h2j%h7j6h9}rA(h;]h<]h=]h>]hA]uhCNhDhh+]rBhSXclass rCrD}rE(h0Uh1j?ubaubj<)rF}rG(h0Xsimpy.resources.resource.h1j5h2j%h7j?h9}rH(h;]h<]h=]h>]hA]uhCNhDhh+]rIhSXsimpy.resources.resource.rJrK}rL(h0Uh1jFubaubjE)rM}rN(h0j=h1j5h2j%h7jHh9}rO(h;]h<]h=]h>]hA]uhCNhDhh+]rPhSXReleaserQrR}rS(h0Uh1jMubaubjN)rT}rU(h0Uh1j5h2j%h7jQh9}rV(h;]h<]h=]h>]hA]uhCNhDhh+]rW(jT)rX}rY(h0Xresourceh9}rZ(h;]h<]h=]h>]hA]uh1jTh+]r[hSXresourcer\r]}r^(h0Uh1jXubah7j\ubjT)r_}r`(h0Xrequesth9}ra(h;]h<]h=]h>]hA]uh1jTh+]rbhSXrequestrcrd}re(h0Uh1j_ubah7j\ubeubeubjd)rf}rg(h0Uh1j0h2j%h7jgh9}rh(h;]h<]h=]h>]hA]uhCNhDhh+]ri(he)rj}rk(h0XfReleases the access privilege to *resource* granted by *request*. This event is triggered immediately.h1jfh2Xv/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Releaserlh7hih9}rm(h;]h<]h=]h>]hA]uhCKhDhh+]rn(hSX!Releases the access privilege to rorp}rq(h0X!Releases the access privilege to h1jjubh)rr}rs(h0X *resource*h9}rt(h;]h<]h=]h>]hA]uh1jjh+]ruhSXresourcervrw}rx(h0Uh1jrubah7hubhSX granted by ryrz}r{(h0X granted by h1jjubh)r|}r}(h0X *request*h9}r~(h;]h<]h=]h>]hA]uh1jjh+]rhSXrequestrr}r(h0Uh1j|ubah7hubhSX&. This event is triggered immediately.rr}r(h0X&. This event is triggered immediately.h1jjubeubhe)r}r(h0XAIf there's another process waiting for the *resource*, resume it.h1jfh2jlh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX+If there's another process waiting for the rr}r(h0X+If there's another process waiting for the h1jubh)r}r(h0X *resource*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXresourcerr}r(h0Uh1jubah7hubhSX , resume it.rr}r(h0X , resume it.h1jubeubhe)r}r(h0XIf the request was made in a :keyword:`with` statement (e.g., ``with res.request() as req:``), this method is automatically called when the ``with`` block is left.h1jfh2jlh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXIf the request was made in a rr}r(h0XIf the request was made in a h1jubho)r}r(h0X:keyword:`with`rh1jh2h5h7hsh9}r(UreftypeXkeywordhuhvXwithU refdomainXstdrh>]h=]U refexplicith;]h<]hA]hxhyuhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjX std-keywordreh=]h>]hA]uh1jh+]rhSXwithrr}r(h0Uh1jubah7hWubaubhSX statement (e.g., rr}r(h0X statement (e.g., h1jubhM)r}r(h0X``with res.request() as req:``h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXwith res.request() as req:rr}r(h0Uh1jubah7hWubhSX0), this method is automatically called when the rr}r(h0X0), this method is automatically called when the h1jubhM)r}r(h0X``with``h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXwithrr}r(h0Uh1jubah7hWubhSX block is left.rr}r(h0X block is left.h1jubeubh\)r}r(h0Uh1jfh2X~/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.Release.requestrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX4request (simpy.resources.resource.Release attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jfh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XRelease.requesth1jh2jh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XRelease.requestj0j=j1uhCNhDhh+]r(jE)r}r(h0Xrequesth1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXrequestrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0X6The request (:class:`Request`) that is to be released.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX The request (rr}r(h0X The request (h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj=h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX) that is to be released.rr}r(h0X) that is to be released.h1jubeubaubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX3PriorityRequest (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r (h0Uh1h.h2Nh7jh9}r (jjXpyh>]h=]h;]h<]hA]jXclassr j j uhCNhDhh+]r (j")r }r(h0X3PriorityRequest(resource, priority=0, preempt=True)h1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPriorityRequestrj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1j h2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1j h2j%h7j?h9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r!hSXsimpy.resources.resource.r"r#}r$(h0Uh1jubaubjE)r%}r&(h0jh1j h2j%h7jHh9}r'(h;]h<]h=]h>]hA]uhCNhDhh+]r(hSXPriorityRequestr)r*}r+(h0Uh1j%ubaubjN)r,}r-(h0Uh1j h2j%h7jQh9}r.(h;]h<]h=]h>]hA]uhCNhDhh+]r/(jT)r0}r1(h0Xresourceh9}r2(h;]h<]h=]h>]hA]uh1j,h+]r3hSXresourcer4r5}r6(h0Uh1j0ubah7j\ubjT)r7}r8(h0X priority=0h9}r9(h;]h<]h=]h>]hA]uh1j,h+]r:hSX priority=0r;r<}r=(h0Uh1j7ubah7j\ubjT)r>}r?(h0X preempt=Trueh9}r@(h;]h<]h=]h>]hA]uh1j,h+]rAhSX preempt=TruerBrC}rD(h0Uh1j>ubah7j\ubeubeubjd)rE}rF(h0Uh1jh2j%h7jgh9}rG(h;]h<]h=]h>]hA]uhCNhDhh+]rH(he)rI}rJ(h0XRequest the *resource* with a given *priority*. If the *resource* supports preemption and *preempted* is true other processes with access to the *resource* may be preempted (see :class:`PreemptiveResource` for details).h1jEh2X~/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequestrKh7hih9}rL(h;]h<]h=]h>]hA]uhCKhDhh+]rM(hSX Request the rNrO}rP(h0X Request the h1jIubh)rQ}rR(h0X *resource*h9}rS(h;]h<]h=]h>]hA]uh1jIh+]rThSXresourcerUrV}rW(h0Uh1jQubah7hubhSX with a given rXrY}rZ(h0X with a given h1jIubh)r[}r\(h0X *priority*h9}r](h;]h<]h=]h>]hA]uh1jIh+]r^hSXpriorityr_r`}ra(h0Uh1j[ubah7hubhSX . If the rbrc}rd(h0X . If the h1jIubh)re}rf(h0X *resource*h9}rg(h;]h<]h=]h>]hA]uh1jIh+]rhhSXresourcerirj}rk(h0Uh1jeubah7hubhSX supports preemption and rlrm}rn(h0X supports preemption and h1jIubh)ro}rp(h0X *preempted*h9}rq(h;]h<]h=]h>]hA]uh1jIh+]rrhSX preemptedrsrt}ru(h0Uh1joubah7hubhSX, is true other processes with access to the rvrw}rx(h0X, is true other processes with access to the h1jIubh)ry}rz(h0X *resource*h9}r{(h;]h<]h=]h>]hA]uh1jIh+]r|hSXresourcer}r~}r(h0Uh1jyubah7hubhSX may be preempted (see rr}r(h0X may be preempted (see h1jIubho)r}r(h0X:class:`PreemptiveResource`rh1jIh2h5h7hsh9}r(UreftypeXclasshuhvXPreemptiveResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXPreemptiveResourcerr}r(h0Uh1jubah7hWubaubhSX for details).rr}r(h0X for details).h1jIubeubhe)r}r(h0XThis event type inherits :class:`Request` and adds some additional attributes needed by :class:`PriorityResource` and :class:`PreemptiveResource`h1jEh2jKh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXThis event type inherits rr}r(h0XThis event type inherits h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX/ and adds some additional attributes needed by rr}r(h0X/ and adds some additional attributes needed by h1jubho)r}r(h0X:class:`PriorityResource`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXPriorityResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXPriorityResourcerr}r(h0Uh1jubah7hWubaubhSX and rr}r(h0X and h1jubho)r}r(h0X:class:`PreemptiveResource`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXPreemptiveResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXPreemptiveResourcerr}r(h0Uh1jubah7hWubaubeubh\)r}r(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.priorityrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX=priority (simpy.resources.resource.PriorityRequest attribute)h UtrauhCNhDhh+]ubj)r}r(h0Uh1jEh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPriorityRequest.priorityh1jh2jh7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.XPriorityRequest.priorityj0jj1uhCNhDhh+]r(jE)r}r(h0Xpriorityh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXpriorityrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XEThe priority of this request. A smaller number means higher priority.rh1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]rhSXEThe priority of this request. A smaller number means higher priority.rr}r(h0jh1jubaubaubeubh\)r}r(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.preemptrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX<preempt (simpy.resources.resource.PriorityRequest attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jEh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r (h0XPriorityRequest.preempth1jh2jh7j&h9}r (h>]r haj)h3Xsimpy.resources.resourcer r }rbh=]h;]h<]hA]rhaj.XPriorityRequest.preemptj0jj1uhCNhDhh+]r(jE)r}r(h0Xpreempth1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXpreemptrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r (h0Uh1jh2jh7jgh9}r!(h;]h<]h=]h>]hA]uhCNhDhh+]r"he)r#}r$(h0XIndicates whether the request should preempt a resource user or not (this flag is not taken into account by :class:`PriorityResource`).h1jh2jh7hih9}r%(h;]h<]h=]h>]hA]uhCKhDhh+]r&(hSXlIndicates whether the request should preempt a resource user or not (this flag is not taken into account by r'r(}r)(h0XlIndicates whether the request should preempt a resource user or not (this flag is not taken into account by h1j#ubho)r*}r+(h0X:class:`PriorityResource`r,h1j#h2h5h7hsh9}r-(UreftypeXclasshuhvXPriorityResourceU refdomainXpyr.h>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]r/hM)r0}r1(h0j,h9}r2(h;]h<]r3(hj.Xpy-classr4eh=]h>]hA]uh1j*h+]r5hSXPriorityResourcer6r7}r8(h0Uh1j0ubah7hWubaubhSX).r9r:}r;(h0X).h1j#ubeubaubeubh\)r<}r=(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.timer>h7h`h9}r?(h>]h=]h;]h<]hA]Uentries]r@(hcX9time (simpy.resources.resource.PriorityRequest attribute)hUtrAauhCNhDhh+]ubj)rB}rC(h0Uh1jEh2j>h7jh9}rD(jjXpyh>]h=]h;]h<]hA]jX attributerEj jEuhCNhDhh+]rF(j")rG}rH(h0XPriorityRequest.timeh1jBh2jh7j&h9}rI(h>]rJhaj)h3Xsimpy.resources.resourcerKrL}rMbh=]h;]h<]hA]rNhaj.XPriorityRequest.timej0jj1uhCNhDhh+]rO(jE)rP}rQ(h0Xtimeh1jGh2jh7jHh9}rR(h;]h<]h=]h>]hA]uhCNhDhh+]rShSXtimerTrU}rV(h0Uh1jPubaubj3)rW}rX(h0X = Noneh1jGh2jh7j6h9}rY(h;]h<]h=]h>]hA]uhCNhDhh+]rZhSX = Noner[r\}r](h0Uh1jWubaubeubjd)r^}r_(h0Uh1jBh2jh7jgh9}r`(h;]h<]h=]h>]hA]uhCNhDhh+]rahe)rb}rc(h0X'The time at which the request was made.rdh1j^h2j>h7hih9}re(h;]h<]h=]h>]hA]uhCKhDhh+]rfhSX'The time at which the request was made.rgrh}ri(h0jdh1jbubaubaubeubh\)rj}rk(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.keyrlh7h`h9}rm(h>]h=]h;]h<]hA]Uentries]rn(hcX8key (simpy.resources.resource.PriorityRequest attribute)hUtroauhCNhDhh+]ubj)rp}rq(h0Uh1jEh2jlh7jh9}rr(jjXpyh>]h=]h;]h<]hA]jX attributersj jsuhCNhDhh+]rt(j")ru}rv(h0XPriorityRequest.keyh1jph2jh7j&h9}rw(h>]rxhaj)h3Xsimpy.resources.resourceryrz}r{bh=]h;]h<]hA]r|haj.XPriorityRequest.keyj0jj1uhCNhDhh+]r}(jE)r~}r(h0Xkeyh1juh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXkeyrr}r(h0Uh1j~ubaubj3)r}r(h0X = Noneh1juh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jph2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XKey for sorting events. Consists of the priority (lower value is more important), the time at witch the request was made (earlier requests are more important) and finally the preemption flag (preempt requests are more important).rh1jh2jlh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]rhSXKey for sorting events. Consists of the priority (lower value is more important), the time at witch the request was made (earlier requests are more important) and finally the preemption flag (preempt requests are more important).rr}r(h0jh1jubaubaubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX/SortedQueue (class in simpy.resources.resource)h UtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2Nh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r(h0XSortedQueue(maxlen=None)rh1jh2j%h7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.X SortedQueuerj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1jh2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXsimpy.resources.resource.rr}r(h0Uh1jubaubjE)r}r(h0jh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX SortedQueuerr}r(h0Uh1jubaubjN)r}r(h0Uh1jh2j%h7jQh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rjT)r}r(h0X maxlen=Noneh9}r(h;]h<]h=]h>]hA]uh1jh+]rhSX maxlen=Nonerr}r(h0Uh1jubah7j\ubaubeubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XHQueue that sorts events by their :attr:`~PriorityRequest.key` attribute.h1jh2Xz/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.SortedQueuerh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX!Queue that sorts events by their rr}r(h0X!Queue that sorts events by their h1jubho)r}r(h0X:attr:`~PriorityRequest.key`rh1jh2h5h7hsh9}r(UreftypeXattrhuhvXPriorityRequest.keyU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-attrreh=]h>]hA]uh1jh+]rhSXkeyrr}r(h0Uh1jubah7hWubaubhSX attribute.rr}r(h0X attribute.h1jubeubh\)r}r(h0Uh1jh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.SortedQueue.maxlenrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX7maxlen (simpy.resources.resource.SortedQueue attribute)h UtrauhCNhDhh+]ubj)r}r(h0Uh1jh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XSortedQueue.maxlenh1jh2jh7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.XSortedQueue.maxlenj0jj1uhCNhDhh+]r(jE)r}r (h0Xmaxlenh1jh2jh7jHh9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r hSXmaxlenr r }r (h0Uh1jubaubj3)r }r (h0X = Noneh1jh2jh7j6h9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r hSX = Noner r }r (h0Uh1j ubaubeubjd)r }r (h0Uh1jh2jh7jgh9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r he)r }r (h0XMaximum length of the queue.r h1j h2jh7hih9}r (h;]h<]h=]h>]hA]uhCKhDhh+]r hSXMaximum length of the queue.r r }r (h0j h1j ubaubaubeubh\)r }r (h0Uh1jh2X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/resource.py:docstring of simpy.resources.resource.SortedQueue.appendr h7h`h9}r (h>]h=]h;]h<]hA]Uentries]r (hcX6append() (simpy.resources.resource.SortedQueue method)h Utr auhCNhDhh+]ubj)r }r (h0Uh1jh2j h7jh9}r! (jjXpyh>]h=]h;]h<]hA]jXmethodr" j j" uhCNhDhh+]r# (j")r$ }r% (h0XSortedQueue.append(item)r& h1j h2j%h7j&h9}r' (h>]r( h aj)h3Xsimpy.resources.resourcer) r* }r+ bh=]h;]h<]hA]r, h aj.XSortedQueue.appendj0jj1uhCNhDhh+]r- (jE)r. }r/ (h0Xappendh1j$ h2j%h7jHh9}r0 (h;]h<]h=]h>]hA]uhCNhDhh+]r1 hSXappendr2 r3 }r4 (h0Uh1j. ubaubjN)r5 }r6 (h0Uh1j$ h2j%h7jQh9}r7 (h;]h<]h=]h>]hA]uhCNhDhh+]r8 jT)r9 }r: (h0Xitemh9}r; (h;]h<]h=]h>]hA]uh1j5 h+]r< hSXitemr= r> }r? (h0Uh1j9 ubah7j\ubaubeubjd)r@ }rA (h0Uh1j h2j%h7jgh9}rB (h;]h<]h=]h>]hA]uhCNhDhh+]rC (he)rD }rE (h0X5Append *item* to the queue and keep the queue sorted.rF h1j@ h2j h7hih9}rG (h;]h<]h=]h>]hA]uhCKhDhh+]rH (hSXAppend rI rJ }rK (h0XAppend h1jD ubh)rL }rM (h0X*item*h9}rN (h;]h<]h=]h>]hA]uh1jD h+]rO hSXitemrP rQ }rR (h0Uh1jL ubah7hubhSX( to the queue and keep the queue sorted.rS rT }rU (h0X( to the queue and keep the queue sorted.h1jD ubeubhe)rV }rW (h0X1Raise a :exc:`RuntimeError` if the queue is full.rX h1j@ h2j h7hih9}rY (h;]h<]h=]h>]hA]uhCKhDhh+]rZ (hSXRaise a r[ r\ }r] (h0XRaise a h1jV ubho)r^ }r_ (h0X:exc:`RuntimeError`r` h1jV h2h5h7hsh9}ra (UreftypeXexchuhvX RuntimeErrorU refdomainXpyrb h>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rc hM)rd }re (h0j` h9}rf (h;]h<]rg (hjb Xpy-excrh eh=]h>]hA]uh1j^ h+]ri hSX RuntimeErrorrj rk }rl (h0Uh1jd ubah7hWubaubhSX if the queue is full.rm rn }ro (h0X if the queue is full.h1jV ubeubeubeubeubeubeubah0UU transformerrp NU footnote_refsrq }rr Urefnamesrs }rt Usymbol_footnotesru ]rv Uautofootnote_refsrw ]rx Usymbol_footnote_refsry ]rz U citationsr{ ]r| hDhU current_liner} NUtransform_messagesr~ ]r Ureporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhJNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer U\/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.resource.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hj`hj_hjh jh j5h jh j$ h jh@cdocutils.nodes target r )r }r (h0Uh1h.h2h_h7Utargetr h9}r (h;]h>]r h@ah=]Uismodh<]hA]uhCKhDhh+]ubhjhjhj9hj hjhj hjhjhjGhjhjhjhj#hjuhj4hjhjh*h.h juUsubstitution_namesr }r h7hDh9}r (h;]h>]h=]Usourceh5h<]hA]uU footnotesr ]r Urefidsr }r ub.PK=Dҡ5s1simpy-3.0.4/.doctrees/api_reference/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX api referenceqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU api-referenceqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXI/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX API Referenceq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X API Referenceq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXThe API reference provides detailed descriptions of SimPy's classes and functions. It should be helpful if you plan to extend Simpy with custom components.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(Kh)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhXapi_reference/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qS(NXapi_reference/simpyqTqUNXapi_reference/simpy.coreqVqWNXapi_reference/simpy.eventsqXqYNXapi_reference/simpy.monitoringqZq[NXapi_reference/simpy.resourcesq\q]NX"api_reference/simpy.resources.baseq^q_NX'api_reference/simpy.resources.containerq`qaNX&api_reference/simpy.resources.resourceqbqcNX#api_reference/simpy.resources.storeqdqeNXapi_reference/simpy.rtqfqgNXapi_reference/simpy.utilqhqieUhiddenqjU includefilesqk]ql(hThVhXhZh\h^h`hbhdhfhheUmaxdepthqmJuh(K h]ubaubeubahUU transformerqnNU footnote_refsqo}qpUrefnamesqq}qrUsymbol_footnotesqs]qtUautofootnote_refsqu]qvUsymbol_footnote_refsqw]qxU citationsqy]qzh)hU current_lineq{NUtransform_messagesq|]q}Ureporterq~NUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUI/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqȉUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqˈU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK@D(hUhh6ubahUliteralq?ubh;X --- Utility functions for SimPyq@qA}qB(hX --- Utility functions for SimPyqChh/ubeubcsphinx.addnodes index qD)qE}qF(hUhhhU qGhUindexqHh!}qI(h&]h%]h#]h$]h)]Uentries]qJ(UsingleqKXsimpy.util (module)Xmodule-simpy.utilUtqLauh+Kh,hh]ubcdocutils.nodes paragraph qM)qN}qO(hX0This modules contains various utility functions:qPhhhXR/var/build/user_builds/simpy/checkouts/3.0.4/simpy/util.py:docstring of simpy.utilqQhU paragraphqRh!}qS(h#]h$]h%]h&]h)]uh+Kh,hh]qTh;X0This modules contains various utility functions:qUqV}qW(hhPhhNubaubcdocutils.nodes bullet_list qX)qY}qZ(hUhhhhQhU bullet_listq[h!}q\(Ubulletq]X-h&]h%]h#]h$]h)]uh+Kh,hh]q^(cdocutils.nodes list_item q_)q`}qa(hX<:func:`start_delayed()`: Start a process with a given delay.qbhhYhhQhU list_itemqch!}qd(h#]h$]h%]h&]h)]uh+Nh,hh]qehM)qf}qg(hhbhh`hhQhhRh!}qh(h#]h$]h%]h&]h)]uh+Kh]qi(csphinx.addnodes pending_xref qj)qk}ql(hX:func:`start_delayed()`qmhhfhhhU pending_xrefqnh!}qo(UreftypeXfuncUrefwarnqpU reftargetqqX start_delayedU refdomainXpyqrh&]h%]U refexplicith#]h$]h)]UrefdocqsXapi_reference/simpy.utilqtUpy:classquNU py:moduleqvX simpy.utilqwuh+Kh]qxh5)qy}qz(hhmh!}q{(h#]h$]q|(Uxrefq}hrXpy-funcq~eh%]h&]h)]uhhkh]qh;Xstart_delayed()qq}q(hUhhyubahh?ubaubh;X%: Start a process with a given delay.qq}q(hX%: Start a process with a given delay.hhfubeubaubh_)q}q(hXB:func:`subscribe_at()`: Receive an interrupt if an event occurs. hhYhhGhhch!}q(h#]h$]h%]h&]h)]uh+Nh,hh]qhM)q}q(hX@:func:`subscribe_at()`: Receive an interrupt if an event occurs.hhhhQhhRh!}q(h#]h$]h%]h&]h)]uh+Kh]q(hj)q}q(hX:func:`subscribe_at()`qhhhhhhnh!}q(UreftypeXfunchphqX subscribe_atU refdomainXpyqh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Kh]qh5)q}q(hhh!}q(h#]h$]q(h}hXpy-funcqeh%]h&]h)]uhhh]qh;Xsubscribe_at()qq}q(hUhhubahh?ubaubh;X*: Receive an interrupt if an event occurs.qq}q(hX*: Receive an interrupt if an event occurs.hhubeubaubeubhD)q}q(hUhhhX`/var/build/user_builds/simpy/checkouts/3.0.4/simpy/util.py:docstring of simpy.util.start_delayedqhhHh!}q(h&]h%]h#]h$]h)]Uentries]q(hKX&start_delayed() (in module simpy.util)hUtqauh+Nh,hh]ubcsphinx.addnodes desc q)q}q(hUhhhhhUdescqh!}q(UnoindexqUdomainqXpyh&]h%]h#]h$]h)]UobjtypeqXfunctionqUdesctypeqhuh+Nh,hh]q(csphinx.addnodes desc_signature q)q}q(hX$start_delayed(env, generator, delay)hhhU qhUdesc_signatureqh!}q(h&]qhaUmoduleqhX simpy.utilqq}qbh%]h#]h$]h)]qhaUfullnameqX start_delayedqUclassqUUfirstquh+Nh,hh]q(csphinx.addnodes desc_addname q)q}q(hX simpy.util.hhhhhU desc_addnameqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]qh;X simpy.util.qȅq}q(hUhhubaubcsphinx.addnodes desc_name q)q}q(hhhhhhhU desc_nameqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]qh;X start_delayedqхq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhhhhUdesc_parameterlistqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]q(csphinx.addnodes desc_parameter q)q}q(hXenvh!}q(h#]h$]h%]h&]h)]uhhh]qh;Xenvq߅q}q(hUhhubahUdesc_parameterqubh)q}q(hX generatorh!}q(h#]h$]h%]h&]h)]uhhh]qh;X generatorq煁q}q(hUhhubahhubh)q}q(hXdelayh!}q(h#]h$]h%]h&]h)]uhhh]qh;Xdelayqq}q(hUhhubahhubeubeubcsphinx.addnodes desc_content q)q}q(hUhhhhhU desc_contentqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]q(hM)q}q(hX\Return a helper process that starts another process for *generator* after a certain *delay*.hhhhhhRh!}q(h#]h$]h%]h&]h)]uh+Kh,hh]q(h;X8Return a helper process that starts another process for qq}q(hX8Return a helper process that starts another process for hhubcdocutils.nodes emphasis q)q}r(hX *generator*h!}r(h#]h$]h%]h&]h)]uhhh]rh;X generatorrr}r(hUhhubahUemphasisrubh;X after a certain rr}r (hX after a certain hhubh)r }r (hX*delay*h!}r (h#]h$]h%]h&]h)]uhhh]r h;Xdelayrr}r(hUhj ubahjubh;X.r}r(hX.hhubeubhM)r}r(hX:meth:`~simpy.core.Environment.process()` starts a process at the current simulation time. This helper allows you to start a process after a delay of *delay* simulation time units::hhhhhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(hj)r}r(hX):meth:`~simpy.core.Environment.process()`rhjhNhhnh!}r(UreftypeXmethhphqXsimpy.core.Environment.processU refdomainXpyrh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rh5)r}r(hjh!}r(h#]h$]r (h}jXpy-methr!eh%]h&]h)]uhjh]r"h;X process()r#r$}r%(hUhjubahh?ubaubh;Xm starts a process at the current simulation time. This helper allows you to start a process after a delay of r&r'}r((hXm starts a process at the current simulation time. This helper allows you to start a process after a delay of hjubh)r)}r*(hX*delay*h!}r+(h#]h$]h%]h&]h)]uhjh]r,h;Xdelayr-r.}r/(hUhj)ubahjubh;X simulation time units:r0r1}r2(hX simulation time units:hjubeubcdocutils.nodes literal_block r3)r4}r5(hX>>> from simpy import Environment >>> from simpy.util import start_delayed >>> def my_process(env, x): ... print('%s, %s' % (env.now, x)) ... yield env.timeout(1) ... >>> env = Environment() >>> proc = start_delayed(env, my_process(env, 3), 5) >>> env.run() 5, 3hhhhhU literal_blockr6h!}r7(U xml:spacer8Upreserver9h&]h%]h#]h$]h)]uh+Kh,hh]r:h;X>>> from simpy import Environment >>> from simpy.util import start_delayed >>> def my_process(env, x): ... print('%s, %s' % (env.now, x)) ... yield env.timeout(1) ... >>> env = Environment() >>> proc = start_delayed(env, my_process(env, 3), 5) >>> env.run() 5, 3r;r<}r=(hUhj4ubaubhM)r>}r?(hX,Raise a :exc:`ValueError` if ``delay <= 0``.hhhhhhRh!}r@(h#]h$]h%]h&]h)]uh+Kh,hh]rA(h;XRaise a rBrC}rD(hXRaise a hj>ubhj)rE}rF(hX:exc:`ValueError`rGhj>hNhhnh!}rH(UreftypeXexchphqX ValueErrorU refdomainXpyrIh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rJh5)rK}rL(hjGh!}rM(h#]h$]rN(h}jIXpy-excrOeh%]h&]h)]uhjEh]rPh;X ValueErrorrQrR}rS(hUhjKubahh?ubaubh;X if rTrU}rV(hX if hj>ubh5)rW}rX(hX``delay <= 0``h!}rY(h#]h$]h%]h&]h)]uhj>h]rZh;X delay <= 0r[r\}r](hUhjWubahh?ubh;X.r^}r_(hX.hj>ubeubeubeubhD)r`}ra(hUhhhX_/var/build/user_builds/simpy/checkouts/3.0.4/simpy/util.py:docstring of simpy.util.subscribe_atrbhhHh!}rc(h&]h%]h#]h$]h)]Uentries]rd(hKX%subscribe_at() (in module simpy.util)hUtreauh+Nh,hh]ubh)rf}rg(hUhhhjbhhh!}rh(hhXpyh&]h%]h#]h$]h)]hXfunctionrihjiuh+Nh,hh]rj(h)rk}rl(hXsubscribe_at(event)rmhjfhhhhh!}rn(h&]rohahhX simpy.utilrprq}rrbh%]h#]h$]h)]rshahX subscribe_atrthUhuh+Nh,hh]ru(h)rv}rw(hX simpy.util.hjkhhhhh!}rx(h#]h$]h%]h&]h)]uh+Nh,hh]ryh;X simpy.util.rzr{}r|(hUhjvubaubh)r}}r~(hjthjkhhhhh!}r(h#]h$]h%]h&]h)]uh+Nh,hh]rh;X subscribe_atrr}r(hUhj}ubaubh)r}r(hUhjkhhhhh!}r(h#]h$]h%]h&]h)]uh+Nh,hh]rh)r}r(hXeventh!}r(h#]h$]h%]h&]h)]uhjh]rh;Xeventrr}r(hUhjubahhubaubeubh)r}r(hUhjfhhhhh!}r(h#]h$]h%]h&]h)]uh+Nh,hh]r(hM)r}r(hX?Register at the *event* to receive an interrupt when it occurs.rhjhjbhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(h;XRegister at the rr}r(hXRegister at the hjubh)r}r(hX*event*h!}r(h#]h$]h%]h&]h)]uhjh]rh;Xeventrr}r(hUhjubahjubh;X( to receive an interrupt when it occurs.rr}r(hX( to receive an interrupt when it occurs.hjubeubhM)r}r(hXqThe most common use case for this is to pass a :class:`~simpy.events.Process` to get notified when it terminates.hjhjbhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(h;X/The most common use case for this is to pass a rr}r(hX/The most common use case for this is to pass a hjubhj)r}r(hX:class:`~simpy.events.Process`rhjhNhhnh!}r(UreftypeXclasshphqXsimpy.events.ProcessU refdomainXpyrh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rh5)r}r(hjh!}r(h#]h$]r(h}jXpy-classreh%]h&]h)]uhjh]rh;XProcessrr}r(hUhjubahh?ubaubh;X$ to get notified when it terminates.rr}r(hX$ to get notified when it terminates.hjubeubhM)r}r(hX>Raise a :exc:`RuntimeError` if ``event`` has already occurred.rhjhjbhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(h;XRaise a rr}r(hXRaise a hjubhj)r}r(hX:exc:`RuntimeError`rhjhNhhnh!}r(UreftypeXexchphqX RuntimeErrorU refdomainXpyrh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rh5)r}r(hjh!}r(h#]h$]r(h}jXpy-excreh%]h&]h)]uhjh]rh;X RuntimeErrorrr}r(hUhjubahh?ubaubh;X if rr}r(hX if hjubh5)r}r(hX ``event``h!}r(h#]h$]h%]h&]h)]uhjh]rh;Xeventrr}r(hUhjubahh?ubh;X has already occurred.rr}r(hX has already occurred.hjubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh,hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr Nh2NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlr NUexpose_internalsr!NUsectsubtitle_xformr"U source_linkr#NUrfc_referencesr$NUoutput_encodingr%Uutf-8r&U source_urlr'NUinput_encodingr(U utf-8-sigr)U_disable_configr*NU id_prefixr+UU tab_widthr,KUerror_encodingr-UUTF-8r.U_sourcer/UN/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.util.rstr0Ugettext_compactr1U generatorr2NUdump_internalsr3NU smart_quotesr4U pep_base_urlr5Uhttp://www.python.org/dev/peps/r6Usyntax_highlightr7Ulongr8Uinput_encoding_error_handlerr9jUauto_id_prefixr:Uidr;Udoctitle_xformr<Ustrip_elements_with_classesr=NU _config_filesr>]Ufile_insertion_enabledr?U raw_enabledr@KU dump_settingsrANubUsymbol_footnote_startrBKUidsrC}rD(hjkhhh(cdocutils.nodes target rE)rF}rG(hUhhhhGhUtargetrHh!}rI(h#]h&]rJh(ah%]Uismodh$]h)]uh+Kh,hh]ubhhuUsubstitution_namesrK}rLhh,h!}rM(h#]h&]h%]Usourcehh$]h)]uU footnotesrN]rOUrefidsrP}rQub.PK@D*<Asimpy-3.0.4/.doctrees/api_reference/simpy.resources.store.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X.simpy.resources.store --- store type resourcesqNX+simpy.resources.store.FilterStoreGet.filterqX$simpy.resources.store.FilterStoreGetqXsimpy.resources.store.Storeq Xsimpy.resources.store.Store.putq Xsimpy.resources.store.Store.getq Xsimpy.resources.store.StorePutq X-simpy.resources.store.FilterQueue.__nonzero__q X!simpy.resources.store.Store.itemsqX*simpy.resources.store.FilterQueue.__bool__qX%simpy.resources.store.FilterStore.getqX$simpy.resources.store.Store.capacityqX-simpy.resources.store.FilterQueue.__getitem__qX#simpy.resources.store.StorePut.itemqXsimpy.resources.store.StoreGetqX*simpy.resources.store.FilterStore.GetQueueqX!simpy.resources.store.FilterQueueqX!simpy.resources.store.FilterStorequUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q (hU*simpy-resources-store-store-type-resourcesq!hhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhuUchildrenq"]q#cdocutils.nodes section q$)q%}q&(U rawsourceq'UUparentq(hUsourceq)cdocutils.nodes reprunicode q*XY/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.store.rstq+q,}q-bUtagnameq.Usectionq/U attributesq0}q1(Udupnamesq2]Uclassesq3]Ubackrefsq4]Uidsq5]q6(Xmodule-simpy.resources.storeq7h!eUnamesq8]q9hauUlineq:KUdocumentq;hh"]q<(cdocutils.nodes title q=)q>}q?(h'X2``simpy.resources.store`` --- Store type resourcesq@h(h%h)h,h.UtitleqAh0}qB(h2]h3]h4]h5]h8]uh:Kh;hh"]qC(cdocutils.nodes literal qD)qE}qF(h'X``simpy.resources.store``qGh0}qH(h2]h3]h4]h5]h8]uh(h>h"]qIcdocutils.nodes Text qJXsimpy.resources.storeqKqL}qM(h'Uh(hEubah.UliteralqNubhJX --- Store type resourcesqOqP}qQ(h'X --- Store type resourcesqRh(h>ubeubcsphinx.addnodes index qS)qT}qU(h'Uh(h%h)U qVh.UindexqWh0}qX(h5]h4]h2]h3]h8]Uentries]qY(UsingleqZXsimpy.resources.store (module)Xmodule-simpy.resources.storeUtq[auh:Kh;hh"]ubcdocutils.nodes paragraph q\)q]}q^(h'X7This module contains all :class:`Store` like resources.h(h%h)Xh/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.storeq_h.U paragraphq`h0}qa(h2]h3]h4]h5]h8]uh:Kh;hh"]qb(hJXThis module contains all qcqd}qe(h'XThis module contains all h(h]ubcsphinx.addnodes pending_xref qf)qg}qh(h'X:class:`Store`qih(h]h)h,h.U pending_xrefqjh0}qk(UreftypeXclassUrefwarnqlU reftargetqmXStoreU refdomainXpyqnh5]h4]U refexplicith2]h3]h8]UrefdocqoX#api_reference/simpy.resources.storeqpUpy:classqqNU py:moduleqrXsimpy.resources.storeqsuh:Kh"]qthD)qu}qv(h'hih0}qw(h2]h3]qx(UxrefqyhnXpy-classqzeh4]h5]h8]uh(hgh"]q{hJXStoreq|q}}q~(h'Uh(huubah.hNubaubhJX like resources.qq}q(h'X like resources.h(h]ubeubh\)q}q(h'XStores model the production and consumption of concrete objects. The object type is, by default, not restricted. A single Store can even contain multiple types of objects.qh(h%h)h_h.h`h0}q(h2]h3]h4]h5]h8]uh:Kh;hh"]qhJXStores model the production and consumption of concrete objects. The object type is, by default, not restricted. A single Store can even contain multiple types of objects.qq}q(h'hh(hubaubh\)q}q(h'XBeside :class:`Store`, there is a :class:`FilterStore` that lets you use a custom function to filter the objects you get out of the store.h(h%h)h_h.h`h0}q(h2]h3]h4]h5]h8]uh:Kh;hh"]q(hJXBeside qq}q(h'XBeside h(hubhf)q}q(h'X:class:`Store`qh(hh)h,h.hjh0}q(UreftypeXclasshlhmXStoreU refdomainXpyqh5]h4]U refexplicith2]h3]h8]hohphqNhrhsuh:K h"]qhD)q}q(h'hh0}q(h2]h3]q(hyhXpy-classqeh4]h5]h8]uh(hh"]qhJXStoreqq}q(h'Uh(hubah.hNubaubhJX , there is a qq}q(h'X , there is a h(hubhf)q}q(h'X:class:`FilterStore`qh(hh)h,h.hjh0}q(UreftypeXclasshlhmX FilterStoreU refdomainXpyqh5]h4]U refexplicith2]h3]h8]hohphqNhrhsuh:K h"]qhD)q}q(h'hh0}q(h2]h3]q(hyhXpy-classqeh4]h5]h8]uh(hh"]qhJX FilterStoreqq}q(h'Uh(hubah.hNubaubhJXT that lets you use a custom function to filter the objects you get out of the store.qq}q(h'XT that lets you use a custom function to filter the objects you get out of the store.h(hubeubhS)q}q(h'Uh(h%h)Nh.hWh0}q(h5]h4]h2]h3]h8]Uentries]q(hZX&Store (class in simpy.resources.store)h Utqauh:Nh;hh"]ubcsphinx.addnodes desc q)q}q(h'Uh(h%h)Nh.Udescqh0}q(UnoindexqUdomainqXpyh5]h4]h2]h3]h8]UobjtypeqXclassqUdesctypeqhuh:Nh;hh"]q(csphinx.addnodes desc_signature q)q}q(h'XStore(env, capacity=inf)h(hh)U qh.Udesc_signatureqh0}q(h5]qh aUmoduleqh*Xsimpy.resources.storeqͅq}qbh4]h2]h3]h8]qh aUfullnameqXStoreqUclassqUUfirstqԉuh:Nh;hh"]q(csphinx.addnodes desc_annotation q)q}q(h'Xclass h(hh)hh.Udesc_annotationqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]qhJXclass q܅q}q(h'Uh(hubaubcsphinx.addnodes desc_addname q)q}q(h'Xsimpy.resources.store.h(hh)hh.U desc_addnameqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]qhJXsimpy.resources.store.q允q}q(h'Uh(hubaubcsphinx.addnodes desc_name q)q}q(h'hh(hh)hh.U desc_nameqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]qhJXStoreqq}q(h'Uh(hubaubcsphinx.addnodes desc_parameterlist q)q}q(h'Uh(hh)hh.Udesc_parameterlistqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]q(csphinx.addnodes desc_parameter q)q}q(h'Xenvh0}q(h2]h3]h4]h5]h8]uh(hh"]qhJXenvqq}q(h'Uh(hubah.Udesc_parameterqubh)r}r(h'X capacity=infh0}r(h2]h3]h4]h5]h8]uh(hh"]rhJX capacity=infrr}r(h'Uh(jubah.hubeubeubcsphinx.addnodes desc_content r)r}r (h'Uh(hh)hh.U desc_contentr h0}r (h2]h3]h4]h5]h8]uh:Nh;hh"]r (h\)r }r(h'XAModels the production and consumption of concrete Python objects.rh(jh)Xn/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.Storerh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXAModels the production and consumption of concrete Python objects.rr}r(h'jh(j ubaubh\)r}r(h'XItems put into the store can be of any type. By default, they are put and retrieved from the store in a first-in first-out order.rh(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXItems put into the store can be of any type. By default, they are put and retrieved from the store in a first-in first-out order.rr}r(h'jh(jubaubh\)r}r(h'X_The *env* parameter is the :class:`~simpy.core.Environment` instance the container is bound to.h(jh)jh.h`h0}r (h2]h3]h4]h5]h8]uh:Kh;hh"]r!(hJXThe r"r#}r$(h'XThe h(jubcdocutils.nodes emphasis r%)r&}r'(h'X*env*h0}r((h2]h3]h4]h5]h8]uh(jh"]r)hJXenvr*r+}r,(h'Uh(j&ubah.Uemphasisr-ubhJX parameter is the r.r/}r0(h'X parameter is the h(jubhf)r1}r2(h'X :class:`~simpy.core.Environment`r3h(jh)h,h.hjh0}r4(UreftypeXclasshlhmXsimpy.core.EnvironmentU refdomainXpyr5h5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:K h"]r6hD)r7}r8(h'j3h0}r9(h2]h3]r:(hyj5Xpy-classr;eh4]h5]h8]uh(j1h"]r<hJX Environmentr=r>}r?(h'Uh(j7ubah.hNubaubhJX$ instance the container is bound to.r@rA}rB(h'X$ instance the container is bound to.h(jubeubh\)rC}rD(h'XThe *capacity* defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A :exc:`ValueError` is raised if the value is negative.h(jh)jh.h`h0}rE(h2]h3]h4]h5]h8]uh:K h;hh"]rF(hJXThe rGrH}rI(h'XThe h(jCubj%)rJ}rK(h'X *capacity*h0}rL(h2]h3]h4]h5]h8]uh(jCh"]rMhJXcapacityrNrO}rP(h'Uh(jJubah.j-ubhJXp defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A rQrR}rS(h'Xp defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A h(jCubhf)rT}rU(h'X:exc:`ValueError`rVh(jCh)h,h.hjh0}rW(UreftypeXexchlhmX ValueErrorU refdomainXpyrXh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:K h"]rYhD)rZ}r[(h'jVh0}r\(h2]h3]r](hyjXXpy-excr^eh4]h5]h8]uh(jTh"]r_hJX ValueErrorr`ra}rb(h'Uh(jZubah.hNubaubhJX$ is raised if the value is negative.rcrd}re(h'X$ is raised if the value is negative.h(jCubeubhS)rf}rg(h'Uh(jh)Xt/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.Store.itemsrhh.hWh0}ri(h5]h4]h2]h3]h8]Uentries]rj(hZX-items (simpy.resources.store.Store attribute)hUtrkauh:Nh;hh"]ubh)rl}rm(h'Uh(jh)jhh.hh0}rn(hhXpyh5]h4]h2]h3]h8]hX attributerohjouh:Nh;hh"]rp(h)rq}rr(h'X Store.itemsh(jlh)U rsh.hh0}rt(h5]ruhahh*Xsimpy.resources.storervrw}rxbh4]h2]h3]h8]ryhahX Store.itemshhhԉuh:Nh;hh"]rz(h)r{}r|(h'Xitemsh(jqh)jsh.hh0}r}(h2]h3]h4]h5]h8]uh:Nh;hh"]r~hJXitemsrr}r(h'Uh(j{ubaubh)r}r(h'X = Noneh(jqh)jsh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX = Nonerr}r(h'Uh(jubaubeubj)r}r(h'Uh(jlh)jsh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X#List of the items within the store.rh(jh)jhh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJX#List of the items within the store.rr}r(h'jh(jubaubaubeubhS)r}r(h'Uh(jh)Xw/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.Store.capacityrh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX0capacity (simpy.resources.store.Store attribute)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(jh)jh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'XStore.capacityh(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXStore.capacityhhhԉuh:Nh;hh"]rh)r}r(h'Xcapacityh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXcapacityrr}r(h'Uh(jubaubaubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X"The maximum capacity of the store.rh(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJX"The maximum capacity of the store.rr}r(h'jh(jubaubaubeubhS)r}r(h'Uh(jh)Uh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX+put (simpy.resources.store.Store attribute)h Utrauh:Nh;hh"]ubh)r}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'X Store.puth(jh)hh.hh0}r(h5]rh ahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rh ahX Store.puthhhԉuh:Nh;hh"]rh)r}r(h'Xputh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXputrr}r(h'Uh(jubaubaubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'X%Create a new :class:`StorePut` event.h(jh)Xr/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.Store.puth.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX Create a new rr}r(h'X Create a new h(jubhf)r}r(h'X:class:`StorePut`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXStorePutU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorePutrr}r(h'Uh(jubah.hNubaubhJX event.rr}r(h'X event.h(jubeubh\)r}r(h'Xalias of :class:`StorePut`h(jh)Uh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX alias of rr}r(h'X alias of h(jubhf)r}r(h'X:class:`StorePut`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXStorePutU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorePutrr}r(h'Uh(jubah.hNubaubeubeubeubhS)r }r (h'Uh(jh)Uh.hWh0}r (h5]h4]h2]h3]h8]Uentries]r (hZX+get (simpy.resources.store.Store attribute)h Utr auh:Nh;hh"]ubh)r}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'X Store.geth(jh)hh.hh0}r(h5]rh ahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rh ahX Store.gethhhԉuh:Nh;hh"]rh)r}r(h'Xgeth(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXgetr r!}r"(h'Uh(jubaubaubj)r#}r$(h'Uh(jh)hh.j h0}r%(h2]h3]h4]h5]h8]uh:Nh;hh"]r&(h\)r'}r((h'X%Create a new :class:`StoreGet` event.h(j#h)Xr/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.Store.geth.h`h0}r)(h2]h3]h4]h5]h8]uh:Kh;hh"]r*(hJX Create a new r+r,}r-(h'X Create a new h(j'ubhf)r.}r/(h'X:class:`StoreGet`r0h(j'h)Nh.hjh0}r1(UreftypeXclasshlhmXStoreGetU refdomainXpyr2h5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]r3hD)r4}r5(h'j0h0}r6(h2]h3]r7(hyj2Xpy-classr8eh4]h5]h8]uh(j.h"]r9hJXStoreGetr:r;}r<(h'Uh(j4ubah.hNubaubhJX event.r=r>}r?(h'X event.h(j'ubeubh\)r@}rA(h'Xalias of :class:`StoreGet`h(j#h)Uh.h`h0}rB(h2]h3]h4]h5]h8]uh:Kh;hh"]rC(hJX alias of rDrE}rF(h'X alias of h(j@ubhf)rG}rH(h'X:class:`StoreGet`rIh(j@h)Nh.hjh0}rJ(UreftypeXclasshlhmXStoreGetU refdomainXpyrKh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]rLhD)rM}rN(h'jIh0}rO(h2]h3]rP(hyjKXpy-classrQeh4]h5]h8]uh(jGh"]rRhJXStoreGetrSrT}rU(h'Uh(jMubah.hNubaubeubeubeubeubeubhS)rV}rW(h'Uh(h%h)Nh.hWh0}rX(h5]h4]h2]h3]h8]Uentries]rY(hZX,FilterStore (class in simpy.resources.store)hUtrZauh:Nh;hh"]ubh)r[}r\(h'Uh(h%h)Nh.hh0}r](hhXpyh5]h4]h2]h3]h8]hXclassr^hj^uh:Nh;hh"]r_(h)r`}ra(h'XFilterStore(env, capacity=inf)h(j[h)hh.hh0}rb(h5]rchahh*Xsimpy.resources.storerdre}rfbh4]h2]h3]h8]rghahX FilterStorerhhUhԉuh:Nh;hh"]ri(h)rj}rk(h'Xclass h(j`h)hh.hh0}rl(h2]h3]h4]h5]h8]uh:Nh;hh"]rmhJXclass rnro}rp(h'Uh(jjubaubh)rq}rr(h'Xsimpy.resources.store.h(j`h)hh.hh0}rs(h2]h3]h4]h5]h8]uh:Nh;hh"]rthJXsimpy.resources.store.rurv}rw(h'Uh(jqubaubh)rx}ry(h'jhh(j`h)hh.hh0}rz(h2]h3]h4]h5]h8]uh:Nh;hh"]r{hJX FilterStorer|r}}r~(h'Uh(jxubaubh)r}r(h'Uh(j`h)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h)r}r(h'Xenvh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXenvrr}r(h'Uh(jubah.hubh)r}r(h'X capacity=infh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJX capacity=infrr}r(h'Uh(jubah.hubeubeubj)r}r(h'Uh(j[h)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XpThe *FilterStore* subclasses :class:`Store` and allows you to only get items that match a user-defined criteria.h(jh)Xt/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterStorerh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXThe rr}r(h'XThe h(jubj%)r}r(h'X *FilterStore*h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJX FilterStorerr}r(h'Uh(jubah.j-ubhJX subclasses rr}r(h'X subclasses h(jubhf)r}r(h'X:class:`Store`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmXStoreU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorerr}r(h'Uh(jubah.hNubaubhJXE and allows you to only get items that match a user-defined criteria.rr}r(h'XE and allows you to only get items that match a user-defined criteria.h(jubeubh\)r}r(h'XThis criteria is defined via a filter function that is passed to :meth:`get()`. :meth:`get()` only considers items for which this function returns ``True``.h(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXAThis criteria is defined via a filter function that is passed to rr}r(h'XAThis criteria is defined via a filter function that is passed to h(jubhf)r}r(h'X :meth:`get()`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmXgetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJXget()rr}r(h'Uh(jubah.hNubaubhJX. rr}r(h'X. h(jubhf)r}r(h'X :meth:`get()`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmXgetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJXget()rr}r(h'Uh(jubah.hNubaubhJX6 only considers items for which this function returns rr}r(h'X6 only considers items for which this function returns h(jubhD)r}r(h'X``True``h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXTruerr}r(h'Uh(jubah.hNubhJX.r}r(h'X.h(jubeubcdocutils.nodes note r)r}r(h'XIn contrast to :class:`Store`, processes trying to get an item from :class:`FilterStore` won't necessarily be processed in the same order that they made the request. *Example:* The store is empty. *Process 1* tries to get an item of type *a*, *Process 2* an item of type *b*. Another process puts one item of type *b* into the store. Though *Process 2* made his request after *Process 1*, it will receive that new item because *Process 1* doesn't want it.h(jh)jh.Unoterh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XIn contrast to :class:`Store`, processes trying to get an item from :class:`FilterStore` won't necessarily be processed in the same order that they made the request.h(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:K h"]r(hJXIn contrast to rr}r(h'XIn contrast to h(jubhf)r}r(h'X:class:`Store`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmXStoreU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorerr}r(h'Uh(jubah.hNubaubhJX', processes trying to get an item from r r }r (h'X', processes trying to get an item from h(jubhf)r }r (h'X:class:`FilterStore`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmX FilterStoreU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(j h"]rhJX FilterStorerr}r(h'Uh(jubah.hNubaubhJXM won't necessarily be processed in the same order that they made the request.rr}r(h'XM won't necessarily be processed in the same order that they made the request.h(jubeubh\)r}r(h'X!*Example:* The store is empty. *Process 1* tries to get an item of type *a*, *Process 2* an item of type *b*. Another process puts one item of type *b* into the store. Though *Process 2* made his request after *Process 1*, it will receive that new item because *Process 1* doesn't want it.h(jh)jh.h`h0}r (h2]h3]h4]h5]h8]uh:Kh"]r!(j%)r"}r#(h'X *Example:*h0}r$(h2]h3]h4]h5]h8]uh(jh"]r%hJXExample:r&r'}r((h'Uh(j"ubah.j-ubhJX The store is empty. r)r*}r+(h'X The store is empty. h(jubj%)r,}r-(h'X *Process 1*h0}r.(h2]h3]h4]h5]h8]uh(jh"]r/hJX Process 1r0r1}r2(h'Uh(j,ubah.j-ubhJX tries to get an item of type r3r4}r5(h'X tries to get an item of type h(jubj%)r6}r7(h'X*a*h0}r8(h2]h3]h4]h5]h8]uh(jh"]r9hJXar:}r;(h'Uh(j6ubah.j-ubhJX, r<r=}r>(h'X, h(jubj%)r?}r@(h'X *Process 2*h0}rA(h2]h3]h4]h5]h8]uh(jh"]rBhJX Process 2rCrD}rE(h'Uh(j?ubah.j-ubhJX an item of type rFrG}rH(h'X an item of type h(jubj%)rI}rJ(h'X*b*h0}rK(h2]h3]h4]h5]h8]uh(jh"]rLhJXbrM}rN(h'Uh(jIubah.j-ubhJX(. Another process puts one item of type rOrP}rQ(h'X(. Another process puts one item of type h(jubj%)rR}rS(h'X*b*h0}rT(h2]h3]h4]h5]h8]uh(jh"]rUhJXbrV}rW(h'Uh(jRubah.j-ubhJX into the store. Though rXrY}rZ(h'X into the store. Though h(jubj%)r[}r\(h'X *Process 2*h0}r](h2]h3]h4]h5]h8]uh(jh"]r^hJX Process 2r_r`}ra(h'Uh(j[ubah.j-ubhJX made his request after rbrc}rd(h'X made his request after h(jubj%)re}rf(h'X *Process 1*h0}rg(h2]h3]h4]h5]h8]uh(jh"]rhhJX Process 1rirj}rk(h'Uh(jeubah.j-ubhJX(, it will receive that new item because rlrm}rn(h'X(, it will receive that new item because h(jubj%)ro}rp(h'X *Process 1*h0}rq(h2]h3]h4]h5]h8]uh(jh"]rrhJX Process 1rsrt}ru(h'Uh(joubah.j-ubhJX doesn't want it.rvrw}rx(h'X doesn't want it.h(jubeubeubhS)ry}rz(h'Uh(jh)Uh.hWh0}r{(h5]h4]h2]h3]h8]Uentries]r|(hZX6GetQueue (simpy.resources.store.FilterStore attribute)hUtr}auh:Nh;hh"]ubh)r~}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'XFilterStore.GetQueueh(j~h)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXFilterStore.GetQueuehjhhԉuh:Nh;hh"]rh)r}r(h'XGetQueueh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXGetQueuerr}r(h'Uh(jubaubaubj)r}r(h'Uh(j~h)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XQThe type to be used for the :attr:`~simpy.resources.base.BaseResource.get_queue`.h(jh)X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterStore.GetQueueh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXThe type to be used for the rr}r(h'XThe type to be used for the h(jubhf)r}r(h'X4:attr:`~simpy.resources.base.BaseResource.get_queue`rh(jh)Nh.hjh0}r(UreftypeXattrhlhmX+simpy.resources.base.BaseResource.get_queueU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-attrreh4]h5]h8]uh(jh"]rhJX get_queuerr}r(h'Uh(jubah.hNubaubhJX.r}r(h'X.h(jubeubh\)r}r(h'Xalias of :class:`FilterQueue`h(jh)Uh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX alias of rr}r(h'X alias of h(jubhf)r}r(h'X:class:`FilterQueue`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmX FilterQueueU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJX FilterQueuerr}r(h'Uh(jubah.hNubaubeubeubeubhS)r}r(h'Uh(jh)Uh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX1get (simpy.resources.store.FilterStore attribute)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'XFilterStore.geth(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXFilterStore.gethjhhԉuh:Nh;hh"]rh)r}r(h'Xgeth(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXgetrr}r(h'Uh(jubaubaubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'X+Create a new :class:`FilterStoreGet` event.h(jh)Xx/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterStore.geth.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX Create a new rr}r(h'X Create a new h(jubhf)r}r(h'X:class:`FilterStoreGet`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXFilterStoreGetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXFilterStoreGetrr}r(h'Uh(jubah.hNubaubhJX event.rr}r(h'X event.h(jubeubh\)r}r(h'X alias of :class:`FilterStoreGet`h(jh)Uh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX alias of rr}r(h'X alias of h(jubhf)r}r(h'X:class:`FilterStoreGet`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXFilterStoreGetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r }r (h'jh0}r (h2]h3]r (hyjXpy-classr eh4]h5]h8]uh(jh"]rhJXFilterStoreGetrr}r(h'Uh(j ubah.hNubaubeubeubeubeubeubhS)r}r(h'Uh(h%h)Nh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX)StorePut (class in simpy.resources.store)h Utrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)Nh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'XStorePut(resource, item)h(jh)hh.hh0}r(h5]rh ahh*Xsimpy.resources.storer r!}r"bh4]h2]h3]h8]r#h ahXStorePutr$hUhԉuh:Nh;hh"]r%(h)r&}r'(h'Xclass h(jh)hh.hh0}r((h2]h3]h4]h5]h8]uh:Nh;hh"]r)hJXclass r*r+}r,(h'Uh(j&ubaubh)r-}r.(h'Xsimpy.resources.store.h(jh)hh.hh0}r/(h2]h3]h4]h5]h8]uh:Nh;hh"]r0hJXsimpy.resources.store.r1r2}r3(h'Uh(j-ubaubh)r4}r5(h'j$h(jh)hh.hh0}r6(h2]h3]h4]h5]h8]uh:Nh;hh"]r7hJXStorePutr8r9}r:(h'Uh(j4ubaubh)r;}r<(h'Uh(jh)hh.hh0}r=(h2]h3]h4]h5]h8]uh:Nh;hh"]r>(h)r?}r@(h'Xresourceh0}rA(h2]h3]h4]h5]h8]uh(j;h"]rBhJXresourcerCrD}rE(h'Uh(j?ubah.hubh)rF}rG(h'Xitemh0}rH(h2]h3]h4]h5]h8]uh(j;h"]rIhJXitemrJrK}rL(h'Uh(jFubah.hubeubeubj)rM}rN(h'Uh(jh)hh.j h0}rO(h2]h3]h4]h5]h8]uh:Nh;hh"]rP(h\)rQ}rR(h'X:Put *item* into the store if possible or wait until it is.h(jMh)Xq/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.StorePuth.h`h0}rS(h2]h3]h4]h5]h8]uh:Kh;hh"]rT(hJXPut rUrV}rW(h'XPut h(jQubj%)rX}rY(h'X*item*h0}rZ(h2]h3]h4]h5]h8]uh(jQh"]r[hJXitemr\r]}r^(h'Uh(jXubah.j-ubhJX0 into the store if possible or wait until it is.r_r`}ra(h'X0 into the store if possible or wait until it is.h(jQubeubhS)rb}rc(h'Uh(jMh)Xv/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.StorePut.itemrdh.hWh0}re(h5]h4]h2]h3]h8]Uentries]rf(hZX/item (simpy.resources.store.StorePut attribute)hUtrgauh:Nh;hh"]ubh)rh}ri(h'Uh(jMh)jdh.hh0}rj(hhXpyh5]h4]h2]h3]h8]hX attributerkhjkuh:Nh;hh"]rl(h)rm}rn(h'X StorePut.itemh(jhh)jsh.hh0}ro(h5]rphahh*Xsimpy.resources.storerqrr}rsbh4]h2]h3]h8]rthahX StorePut.itemhj$hԉuh:Nh;hh"]ru(h)rv}rw(h'Xitemh(jmh)jsh.hh0}rx(h2]h3]h4]h5]h8]uh:Nh;hh"]ryhJXitemrzr{}r|(h'Uh(jvubaubh)r}}r~(h'X = Noneh(jmh)jsh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX = Nonerr}r(h'Uh(j}ubaubeubj)r}r(h'Uh(jhh)jsh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'XThe item to put into the store.rh(jh)jdh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXThe item to put into the store.rr}r(h'jh(jubaubaubeubeubeubhS)r}r(h'Uh(h%h)Xq/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.StoreGetrh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX)StoreGet (class in simpy.resources.store)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)jh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'XStoreGet(resource)h(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXStoreGetrhUhԉuh:Nh;hh"]r(h)r}r(h'Xclass h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXclass rr}r(h'Uh(jubaubh)r}r(h'Xsimpy.resources.store.h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXsimpy.resources.store.rr}r(h'Uh(jubaubh)r}r(h'jh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXStoreGetrr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh)r}r(h'Xresourceh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXresourcerr}r(h'Uh(jubah.hubaubeubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X:Get an item from the store or wait until one is available.rh(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJX:Get an item from the store or wait until one is available.rr}r(h'jh(jubaubaubeubhS)r}r(h'Uh(h%h)Nh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX/FilterStoreGet (class in simpy.resources.store)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)Nh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'X2FilterStoreGet(resource, filter=lambda item: True)h(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXFilterStoreGetrhUhԉuh:Nh;hh"]r(h)r}r(h'Xclass h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXclass rr}r(h'Uh(jubaubh)r}r(h'Xsimpy.resources.store.h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXsimpy.resources.store.rr}r(h'Uh(jubaubh)r}r(h'jh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXFilterStoreGetrr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h)r}r(h'Xresourceh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXresourcerr}r(h'Uh(jubah.hubh)r}r(h'Xfilter=lambda item: Trueh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXfilter=lambda item: Truer r }r (h'Uh(jubah.hubeubeubj)r }r (h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XyGet an item from the store for which *filter* returns ``True``. This event is triggered once such an event is available.h(j h)Xw/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterStoreGetrh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX%Get an item from the store for which rr}r(h'X%Get an item from the store for which h(jubj%)r}r(h'X*filter*h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXfilterrr}r(h'Uh(jubah.j-ubhJX returns rr }r!(h'X returns h(jubhD)r"}r#(h'X``True``h0}r$(h2]h3]h4]h5]h8]uh(jh"]r%hJXTruer&r'}r((h'Uh(j"ubah.hNubhJX;. This event is triggered once such an event is available.r)r*}r+(h'X;. This event is triggered once such an event is available.h(jubeubh\)r,}r-(h'XyThe default *filter* function returns ``True`` for all items, and thus this event exactly behaves like :class:`StoreGet`.h(j h)jh.h`h0}r.(h2]h3]h4]h5]h8]uh:Kh;hh"]r/(hJX The default r0r1}r2(h'X The default h(j,ubj%)r3}r4(h'X*filter*h0}r5(h2]h3]h4]h5]h8]uh(j,h"]r6hJXfilterr7r8}r9(h'Uh(j3ubah.j-ubhJX function returns r:r;}r<(h'X function returns h(j,ubhD)r=}r>(h'X``True``h0}r?(h2]h3]h4]h5]h8]uh(j,h"]r@hJXTruerArB}rC(h'Uh(j=ubah.hNubhJX9 for all items, and thus this event exactly behaves like rDrE}rF(h'X9 for all items, and thus this event exactly behaves like h(j,ubhf)rG}rH(h'X:class:`StoreGet`rIh(j,h)h,h.hjh0}rJ(UreftypeXclasshlhmXStoreGetU refdomainXpyrKh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rLhD)rM}rN(h'jIh0}rO(h2]h3]rP(hyjKXpy-classrQeh4]h5]h8]uh(jGh"]rRhJXStoreGetrSrT}rU(h'Uh(jMubah.hNubaubhJX.rV}rW(h'X.h(j,ubeubhS)rX}rY(h'Uh(j h)X~/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterStoreGet.filterrZh.hWh0}r[(h5]h4]h2]h3]h8]Uentries]r\(hZX7filter (simpy.resources.store.FilterStoreGet attribute)hUtr]auh:Nh;hh"]ubh)r^}r_(h'Uh(j h)jZh.hh0}r`(hhXpyh5]h4]h2]h3]h8]hX attributerahjauh:Nh;hh"]rb(h)rc}rd(h'XFilterStoreGet.filterh(j^h)jsh.hh0}re(h5]rfhahh*Xsimpy.resources.storergrh}ribh4]h2]h3]h8]rjhahXFilterStoreGet.filterhjhԉuh:Nh;hh"]rk(h)rl}rm(h'Xfilterh(jch)jsh.hh0}rn(h2]h3]h4]h5]h8]uh:Nh;hh"]rohJXfilterrprq}rr(h'Uh(jlubaubh)rs}rt(h'X = Noneh(jch)jsh.hh0}ru(h2]h3]h4]h5]h8]uh:Nh;hh"]rvhJX = Nonerwrx}ry(h'Uh(jsubaubeubj)rz}r{(h'Uh(j^h)jsh.j h0}r|(h2]h3]h4]h5]h8]uh:Nh;hh"]r}h\)r~}r(h'XThe filter function to use.rh(jzh)jZh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXThe filter function to use.rr}r(h'jh(j~ubaubaubeubeubeubhS)r}r(h'Uh(h%h)Nh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX,FilterQueue (class in simpy.resources.store)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)Nh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'X FilterQueue()rh(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahX FilterQueuerhUhԉuh:Nh;hh"]r(h)r}r(h'Xclass h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXclass rr}r(h'Uh(jubaubh)r}r(h'Xsimpy.resources.store.h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXsimpy.resources.store.rr}r(h'Uh(jubaubh)r}r(h'jh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX FilterQueuerr}r(h'Uh(jubaubeubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XThe queue inherits :class:`list` and modifies :meth:`__getitem__()` and :meth:`__bool__` to appears to only contain events for which the *store*\ 's item queue contains proper item.h(jh)Xt/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueuerh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXThe queue inherits rr}r(h'XThe queue inherits h(jubhf)r}r(h'X :class:`list`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmXlistU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXlistrr}r(h'Uh(jubah.hNubaubhJX and modifies rr}r(h'X and modifies h(jubhf)r}r(h'X:meth:`__getitem__()`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmX __getitem__U refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJX __getitem__()rr}r(h'Uh(jubah.hNubaubhJX and rr}r(h'X and h(jubhf)r}r(h'X:meth:`__bool__`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmX__bool__U refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJX __bool__()rr}r(h'Uh(jubah.hNubaubhJX1 to appears to only contain events for which the rr}r(h'X1 to appears to only contain events for which the h(jubj%)r}r(h'X*store*h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXstorerr}r(h'Uh(jubah.j-ubhJX#'s item queue contains proper item.rr}r(h'X%\ 's item queue contains proper item.h(jubeubhS)r}r(h'Uh(jh)X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueue.__getitem__rh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX8__getitem__() (simpy.resources.store.FilterQueue method)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(jh)jh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXmethodrhjuh:Nh;hh"]r(h)r}r(h'XFilterQueue.__getitem__(key)h(jh)hh.hh0}r (h5]r hahh*Xsimpy.resources.storer r }r bh4]h2]h3]h8]rhahXFilterQueue.__getitem__hjhԉuh:Nh;hh"]r(h)r}r(h'X __getitem__h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX __getitem__rr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh)r}r(h'Xkeyh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXkeyrr }r!(h'Uh(jubah.hubaubeubj)r"}r#(h'Uh(jh)hh.j h0}r$(h2]h3]h4]h5]h8]uh:Nh;hh"]r%h\)r&}r'(h'XlGet the *key*\ th event from all events that have an item available in the corresponding store's item queue.h(j"h)jh.h`h0}r((h2]h3]h4]h5]h8]uh:Kh;hh"]r)(hJXGet the r*r+}r,(h'XGet the h(j&ubj%)r-}r.(h'X*key*h0}r/(h2]h3]h4]h5]h8]uh(j&h"]r0hJXkeyr1r2}r3(h'Uh(j-ubah.j-ubhJX]th event from all events that have an item available in the corresponding store's item queue.r4r5}r6(h'X_\ th event from all events that have an item available in the corresponding store's item queue.h(j&ubeubaubeubhS)r7}r8(h'Uh(jh)X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueue.__bool__r9h.hWh0}r:(h5]h4]h2]h3]h8]Uentries]r;(hZX5__bool__() (simpy.resources.store.FilterQueue method)hUtr<auh:Nh;hh"]ubh)r=}r>(h'Uh(jh)j9h.hh0}r?(hhXpyh5]h4]h2]h3]h8]hXmethodr@hj@uh:Nh;hh"]rA(h)rB}rC(h'XFilterQueue.__bool__()h(j=h)hh.hh0}rD(h5]rEhahh*Xsimpy.resources.storerFrG}rHbh4]h2]h3]h8]rIhahXFilterQueue.__bool__hjhԉuh:Nh;hh"]rJ(h)rK}rL(h'X__bool__h(jBh)hh.hh0}rM(h2]h3]h4]h5]h8]uh:Nh;hh"]rNhJX__bool__rOrP}rQ(h'Uh(jKubaubh)rR}rS(h'Uh(jBh)hh.hh0}rT(h2]h3]h4]h5]h8]uh:Nh;hh"]ubeubj)rU}rV(h'Uh(j=h)hh.j h0}rW(h2]h3]h4]h5]h8]uh:Nh;hh"]rXh\)rY}rZ(h'XvReturn ``True`` if the queue contains an event for which an item is available in the corresponding store's item queue.h(jUh)j9h.h`h0}r[(h2]h3]h4]h5]h8]uh:Kh;hh"]r\(hJXReturn r]r^}r_(h'XReturn h(jYubhD)r`}ra(h'X``True``h0}rb(h2]h3]h4]h5]h8]uh(jYh"]rchJXTruerdre}rf(h'Uh(j`ubah.hNubhJXg if the queue contains an event for which an item is available in the corresponding store's item queue.rgrh}ri(h'Xg if the queue contains an event for which an item is available in the corresponding store's item queue.h(jYubeubaubeubhS)rj}rk(h'Uh(jh)X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueue.__nonzero__rlh.hWh0}rm(h5]h4]h2]h3]h8]Uentries]rn(hZX8__nonzero__() (simpy.resources.store.FilterQueue method)h Utroauh:Nh;hh"]ubh)rp}rq(h'Uh(jh)jlh.hh0}rr(hhXpyh5]h4]h2]h3]h8]hXmethodrshjsuh:Nh;hh"]rt(h)ru}rv(h'XFilterQueue.__nonzero__()rwh(jph)hh.hh0}rx(h5]ryh ahh*Xsimpy.resources.storerzr{}r|bh4]h2]h3]h8]r}h ahXFilterQueue.__nonzero__hjhԉuh:Nh;hh"]r~(h)r}r(h'X __nonzero__h(juh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX __nonzero__rr}r(h'Uh(jubaubh)r}r(h'Uh(juh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]ubeubj)r}r(h'Uh(jph)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X\Provided for backwards compatability: :meth:`__bool__()` is only used from Python 3 onwards.h(jh)jlh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX&Provided for backwards compatability: rr}r(h'X&Provided for backwards compatability: h(jubhf)r}r(h'X:meth:`__bool__()`rh(jh)Nh.hjh0}r(UreftypeXmethhlhmX__bool__U refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJX __bool__()rr}r(h'Uh(jubah.hNubaubhJX$ is only used from Python 3 onwards.rr}r(h'X$ is only used from Python 3 onwards.h(jubeubaubeubeubeubeubah'UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh;hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhANUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUY/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.store.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjchjh hh jh jh jh7cdocutils.nodes target r )r }r (h'Uh(h%h)hVh.Utargetr h0}r (h2]h5]rh7ah4]Uismodh3]h8]uh:Kh;hh"]ubhjh juhjqhjBhjhjh!h%hjmhjhjhjhj`uUsubstitution_namesr}rh.h;h0}r(h2]h5]h4]Usourceh,h3]h8]uU footnotesr]rUrefidsr}rub.PK=D:{BB1simpy-3.0.4/.doctrees/api_reference/simpy.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy --- the end user apiqNX monitoringqNXpy.testqXotherq NXcore classes and functionsq NX simpy.testq X resourcesq NuUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUsimpy-the-end-user-apiqhU monitoringqhUpy-testqh Uotherqh Ucore-classes-and-functionsqh h h U resourcesquUchildrenq]qcdocutils.nodes section q)q}q (U rawsourceq!UUparentq"hUsourceq#cdocutils.nodes reprunicode q$XI/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.rstq%q&}q'bUtagnameq(Usectionq)U attributesq*}q+(Udupnamesq,]Uclassesq-]Ubackrefsq.]Uidsq/]q0(X module-simpyq1heUnamesq2]q3hauUlineq4KUdocumentq5hh]q6(cdocutils.nodes title q7)q8}q9(h!X``simpy`` --- The end user APIq:h"hh#h&h(Utitleq;h*}q<(h,]h-]h.]h/]h2]uh4Kh5hh]q=(cdocutils.nodes literal q>)q?}q@(h!X ``simpy``qAh*}qB(h,]h-]h.]h/]h2]uh"h8h]qCcdocutils.nodes Text qDXsimpyqEqF}qG(h!Uh"h?ubah(UliteralqHubhDX --- The end user APIqIqJ}qK(h!X --- The end user APIqLh"h8ubeubcsphinx.addnodes index qM)qN}qO(h!Uh"hh#U qPh(UindexqQh*}qR(h/]h.]h,]h-]h2]Uentries]qS(UsingleqTXsimpy (module)X module-simpyUtqUauh4Kh5hh]ubcdocutils.nodes paragraph qV)qW}qX(h!XThe ``simpy`` module provides SimPy's end-user API. It aggregates Simpy's most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.h"hh#XQ/var/build/user_builds/simpy/checkouts/3.0.4/simpy/__init__.py:docstring of simpyqYh(U paragraphqZh*}q[(h,]h-]h.]h/]h2]uh4Kh5hh]q\(hDXThe q]q^}q_(h!XThe h"hWubh>)q`}qa(h!X ``simpy``h*}qb(h,]h-]h.]h/]h2]uh"hWh]qchDXsimpyqdqe}qf(h!Uh"h`ubah(hHubhDX module provides SimPy's end-user API. It aggregates Simpy's most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.qgqh}qi(h!X module provides SimPy's end-user API. It aggregates Simpy's most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.h"hWubeubh)qj}qk(h!Uh"hh#hYh(h)h*}ql(h,]h-]h.]h/]qmhah2]qnh auh4Kh5hh]qo(h7)qp}qq(h!XCore classes and functionsqrh"hjh#hYh(h;h*}qs(h,]h-]h.]h/]h2]uh4Kh5hh]qthDXCore classes and functionsquqv}qw(h!hrh"hpubaubcdocutils.nodes bullet_list qx)qy}qz(h!Uh"hjh#hYh(U bullet_listq{h*}q|(Ubulletq}X-h/]h.]h,]h-]h2]uh4K h5hh]q~cdocutils.nodes list_item q)q}q(h!X:class:`Environment`: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events). h"hyh#hYh(U list_itemqh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!X:class:`Environment`: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events).h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4K h]q(csphinx.addnodes pending_xref q)q}q(h!X:class:`Environment`qh"hh#Nh(U pending_xrefqh*}q(UreftypeXclassUrefwarnqU reftargetqX EnvironmentU refdomainXpyqh/]h.]U refexplicith,]h-]h2]UrefdocqXapi_reference/simpyqUpy:classqNU py:moduleqX simpy.coreuh4Nh]qh>)q}q(h!hh*}q(h,]h-]q(UxrefqhXpy-classqeh.]h/]h2]uh"hh]qhDX Environmentqq}q(h!Uh"hubah(hHubaubhDXw: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events).qq}q(h!Xw: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events).h"hubeubaubaubhx)q}q(h!Uh"hjh#hYh(h{h*}q(h}X-h/]h.]h,]h-]h2]uh4Kh5hh]qh)q}q(h!Xd:class:`Interrupt`: This exception is thrown into a process if it gets interrupted by another one. h"hh#hYh(hh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!Xb:class:`Interrupt`: This exception is thrown into a process if it gets interrupted by another one.h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4Kh]q(h)q}q(h!X:class:`Interrupt`qh"hh#Nh(hh*}q(UreftypeXclasshhX InterruptU refdomainXpyqh/]h.]U refexplicith,]h-]h2]hhhNhX simpy.eventsuh4Nh]qh>)q}q(h!hh*}q(h,]h-]q(hhXpy-classqeh.]h/]h2]uh"hh]qhDX Interruptqq}q(h!Uh"hubah(hHubaubhDXP: This exception is thrown into a process if it gets interrupted by another one.qq}q(h!XP: This exception is thrown into a process if it gets interrupted by another one.h"hubeubaubaubeubh)q}q(h!Uh"hh#hYh(h)h*}q(h,]h-]h.]h/]qhah2]qh auh4Kh5hh]q(h7)q}q(h!X Resourcesqh"hh#hYh(h;h*}q(h,]h-]h.]h/]h2]uh4Kh5hh]qhDX Resourcesqͅq}q(h!hh"hubaubhx)q}q(h!Uh"hh#hYh(h{h*}q(h}X-h/]h.]h,]h-]h2]uh4Kh5hh]q(h)q}q(h!X:class:`Resource`: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). h"hh#hYh(hh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!X:class:`Resource`: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4Kh]q(h)q}q(h!X:class:`Resource`qh"hh#Nh(hh*}q(UreftypeXclasshhXResourceU refdomainXpyqh/]h.]U refexplicith,]h-]h2]hhhNhXsimpy.resources.resourcequh4Nh]qh>)q}q(h!hh*}q(h,]h-]q(hhXpy-classqeh.]h/]h2]uh"hh]qhDXResourceq酁q}q(h!Uh"hubah(hHubaubhDXs: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).q셁q}q(h!Xs: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).h"hubeubaubh)q}q(h!Xa:class:`PriorityResource`: Like :class:`Resource`, but waiting processes are sorted by priority. h"hh#hYh(hh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!X`:class:`PriorityResource`: Like :class:`Resource`, but waiting processes are sorted by priority.h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4Kh]q(h)q}q(h!X:class:`PriorityResource`qh"hh#Nh(hh*}q(UreftypeXclasshhXPriorityResourceU refdomainXpyqh/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]qh>)q}q(h!hh*}q(h,]h-]r(hhXpy-classreh.]h/]h2]uh"hh]rhDXPriorityResourcerr}r(h!Uh"hubah(hHubaubhDX: Like rr}r(h!X: Like h"hubh)r }r (h!X:class:`Resource`r h"hh#Nh(hh*}r (UreftypeXclasshhXResourceU refdomainXpyr h/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]rh>)r}r(h!j h*}r(h,]h-]r(hj Xpy-classreh.]h/]h2]uh"j h]rhDXResourcerr}r(h!Uh"jubah(hHubaubhDX/, but waiting processes are sorted by priority.rr}r(h!X/, but waiting processes are sorted by priority.h"hubeubaubh)r}r(h!XK:class:`PreemptiveResource`: Version of :class:`Resource` with preemption. h"hh#hYh(hh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhV)r}r (h!XJ:class:`PreemptiveResource`: Version of :class:`Resource` with preemption.h"jh#hYh(hZh*}r!(h,]h-]h.]h/]h2]uh4K h]r"(h)r#}r$(h!X:class:`PreemptiveResource`r%h"jh#Nh(hh*}r&(UreftypeXclasshhXPreemptiveResourceU refdomainXpyr'h/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]r(h>)r)}r*(h!j%h*}r+(h,]h-]r,(hj'Xpy-classr-eh.]h/]h2]uh"j#h]r.hDXPreemptiveResourcer/r0}r1(h!Uh"j)ubah(hHubaubhDX : Version of r2r3}r4(h!X : Version of h"jubh)r5}r6(h!X:class:`Resource`r7h"jh#Nh(hh*}r8(UreftypeXclasshhXResourceU refdomainXpyr9h/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]r:h>)r;}r<(h!j7h*}r=(h,]h-]r>(hj9Xpy-classr?eh.]h/]h2]uh"j5h]r@hDXResourcerArB}rC(h!Uh"j;ubah(hHubaubhDX with preemption.rDrE}rF(h!X with preemption.h"jubeubaubeubhx)rG}rH(h!Uh"hh#hYh(h{h*}rI(h}X-h/]h.]h,]h-]h2]uh4K%h5hh]rJh)rK}rL(h!X:class:`Container`: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples). h"jGh#hYh(hh*}rM(h,]h-]h.]h/]h2]uh4Nh5hh]rNhV)rO}rP(h!X:class:`Container`: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).h"jKh#hYh(hZh*}rQ(h,]h-]h.]h/]h2]uh4K%h]rR(h)rS}rT(h!X:class:`Container`rUh"jOh#Nh(hh*}rV(UreftypeXclasshhX ContainerU refdomainXpyrWh/]h.]U refexplicith,]h-]h2]hhhNhXsimpy.resources.containeruh4Nh]rXh>)rY}rZ(h!jUh*}r[(h,]h-]r\(hjWXpy-classr]eh.]h/]h2]uh"jSh]r^hDX Containerr_r`}ra(h!Uh"jYubah(hHubaubhDX: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).rbrc}rd(h!X: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).h"jOubeubaubaubhx)re}rf(h!Uh"hh#hYh(h{h*}rg(h}X-h/]h.]h,]h-]h2]uh4K+h5hh]rh(h)ri}rj(h!XR:class:`Store`: Allows the production and consumption of discrete Python objects. h"jeh#hYh(hh*}rk(h,]h-]h.]h/]h2]uh4Nh5hh]rlhV)rm}rn(h!XQ:class:`Store`: Allows the production and consumption of discrete Python objects.h"jih#hYh(hZh*}ro(h,]h-]h.]h/]h2]uh4K+h]rp(h)rq}rr(h!X:class:`Store`rsh"jmh#Nh(hh*}rt(UreftypeXclasshhXStoreU refdomainXpyruh/]h.]U refexplicith,]h-]h2]hhhNhXsimpy.resources.storervuh4Nh]rwh>)rx}ry(h!jsh*}rz(h,]h-]r{(hjuXpy-classr|eh.]h/]h2]uh"jqh]r}hDXStorer~r}r(h!Uh"jxubah(hHubaubhDXC: Allows the production and consumption of discrete Python objects.rr}r(h!XC: Allows the production and consumption of discrete Python objects.h"jmubeubaubh)r}r(h!Xt:class:`FilterStore`: Like :class:`Store`, but items taken out of it can be filtered with a user-defined function. h"jeh#hYh(hh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhV)r}r(h!Xr:class:`FilterStore`: Like :class:`Store`, but items taken out of it can be filtered with a user-defined function.h"jh#hYh(hZh*}r(h,]h-]h.]h/]h2]uh4K.h]r(h)r}r(h!X:class:`FilterStore`rh"jh#Nh(hh*}r(UreftypeXclasshhX FilterStoreU refdomainXpyrh/]h.]U refexplicith,]h-]h2]hhhNhjvuh4Nh]rh>)r}r(h!jh*}r(h,]h-]r(hjXpy-classreh.]h/]h2]uh"jh]rhDX FilterStorerr}r(h!Uh"jubah(hHubaubhDX: Like rr}r(h!X: Like h"jubh)r}r(h!X:class:`Store`rh"jh#Nh(hh*}r(UreftypeXclasshhXStoreU refdomainXpyrh/]h.]U refexplicith,]h-]h2]hhhNhjvuh4Nh]rh>)r}r(h!jh*}r(h,]h-]r(hjXpy-classreh.]h/]h2]uh"jh]rhDXStorerr}r(h!Uh"jubah(hHubaubhDXI, but items taken out of it can be filtered with a user-defined function.rr}r(h!XI, but items taken out of it can be filtered with a user-defined function.h"jubeubaubeubeubh)r}r(h!Uh"hh#hYh(h)h*}r(h,]h-]h.]h/]rhah2]rhauh4K3h5hh]r(h7)r}r(h!X Monitoringrh"jh#hYh(h;h*}r(h,]h-]h.]h/]h2]uh4K3h5hh]rhDX Monitoringrr}r(h!jh"jubaubhV)r}r(h!X*[Not yet implemented]*rh"jh#hYh(hZh*}r(h,]h-]h.]h/]h2]uh4K7h5hh]rcdocutils.nodes emphasis r)r}r(h!jh*}r(h,]h-]h.]h/]h2]uh"jh]rhDX[Not yet implemented]rr}r(h!Uh"jubah(Uemphasisrubaubeubh)r}r(h!Uh"hh#hYh(h)h*}r(h,]h-]h.]h/]rhah2]rh auh4K;h5hh]r(h7)r}r(h!XOtherrh"jh#hYh(h;h*}r(h,]h-]h.]h/]h2]uh4K;h5hh]rhDXOtherrr}r(h!jh"jubaubhM)r}r(h!Uh"jh#XV/var/build/user_builds/simpy/checkouts/3.0.4/simpy/__init__.py:docstring of simpy.testrh(hQh*}r(h/]h.]h,]h-]h2]Uentries]r(hTXtest() (in module simpy)h Utrauh4Nh5hh]ubcsphinx.addnodes desc r)r}r(h!Uh"jh#jh(Udescrh*}r(UnoindexrUdomainrXpyh/]h.]h,]h-]h2]UobjtyperXfunctionrUdesctyperjuh4Nh5hh]r(csphinx.addnodes desc_signature r)r}r(h!Xtest()rh"jh#U rh(Udesc_signaturerh*}r(h/]rh aUmodulerh$Xsimpyrr}rbh.]h,]h-]h2]rh aUfullnamerXtestrUclassrUUfirstruh4Nh5hh]r(csphinx.addnodes desc_addname r)r}r(h!Xsimpy.h"jh#jh(U desc_addnamerh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhDXsimpy.rr}r(h!Uh"jubaubcsphinx.addnodes desc_name r)r}r(h!jh"jh#jh(U desc_namer h*}r (h,]h-]h.]h/]h2]uh4Nh5hh]r hDXtestr r }r(h!Uh"jubaubcsphinx.addnodes desc_parameterlist r)r}r(h!Uh"jh#jh(Udesc_parameterlistrh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]ubeubcsphinx.addnodes desc_content r)r}r(h!Uh"jh#jh(U desc_contentrh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhV)r}r(h!XCRuns SimPy's test suite via `py.test `_.rh"jh#jh(hZh*}r(h,]h-]h.]h/]h2]uh4Kh5hh]r(hDXRuns SimPy's test suite via rr }r!(h!XRuns SimPy's test suite via h"jubcdocutils.nodes reference r")r#}r$(h!X&`py.test `_h*}r%(UnamehUrefurir&Xhttp://pytest.org/latest/r'h/]h.]h,]h-]h2]uh"jh]r(hDXpy.testr)r*}r+(h!Uh"j#ubah(U referencer,ubcdocutils.nodes target r-)r.}r/(h!X U referencedr0Kh"jh(Utargetr1h*}r2(Urefurij'h/]r3hah.]h,]h-]h2]r4hauh]ubhDX.r5}r6(h!X.h"jubeubaubeubcdocutils.nodes comment r7)r8}r9(h!XB- :func:`test`: Run the test suite on the installed copy of Simpy.h"jh#hYh(Ucommentr:h*}r;(U xml:spacer<Upreserver=h/]h.]h,]h-]h2]uh4KBh5hh]r>hDXB- :func:`test`: Run the test suite on the installed copy of Simpy.r?r@}rA(h!Uh"j8ubaubeubeubah!UU transformerrBNU footnote_refsrC}rDUrefnamesrE}rFUsymbol_footnotesrG]rHUautofootnote_refsrI]rJUsymbol_footnote_refsrK]rLU citationsrM]rNh5hU current_linerONUtransform_messagesrP]rQUreporterrRNUid_startrSKU autofootnotesrT]rUU citation_refsrV}rWUindirect_targetsrX]rYUsettingsrZ(cdocutils.frontend Values r[or\}r](Ufootnote_backlinksr^KUrecord_dependenciesr_NU rfc_base_urlr`Uhttp://tools.ietf.org/html/raU tracebackrbUpep_referencesrcNUstrip_commentsrdNU toc_backlinksreUentryrfU language_codergUenrhU datestampriNU report_levelrjKU _destinationrkNU halt_levelrlKU strip_classesrmNh;NUerror_encoding_error_handlerrnUbackslashreplaceroUdebugrpNUembed_stylesheetrqUoutput_encoding_error_handlerrrUstrictrsU sectnum_xformrtKUdump_transformsruNU docinfo_xformrvKUwarning_streamrwNUpep_file_url_templaterxUpep-%04dryUexit_status_levelrzKUconfigr{NUstrict_visitorr|NUcloak_email_addressesr}Utrim_footnote_reference_spacer~UenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUI/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjsUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hj.hjhhjhjh jhhhhh1j-)r}r(h!Uh"hh#hPh(j1h*}r(h,]h/]rh1ah.]Uismodh-]h2]uh4Kh5hh]ubuUsubstitution_namesr}rh(h5h*}r(h,]h/]h.]Usourceh&h-]h2]uU footnotesr]rUrefidsr}rub.PK=D$a6simpy-3.0.4/.doctrees/api_reference/simpy.core.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy.core.EnvironmentqX#simpy.core.BaseEnvironment.scheduleqXsimpy.core.Environment.peekqXsimpy.core.Environment.nowq Xsimpy.core.BaseEnvironmentq Xsimpy.core.Environment.stepq Xsimpy.core.BaseEnvironment.stepq Xsimpy.core.Infinityq Xsimpy.core.Environment.runqX simpy.core.BoundClass.bind_earlyqXsimpy.core.Environment.scheduleqXsimpy.core.Environment.all_ofqXsimpy.core.Environment.exitqXsimpy.core.Environment.eventqXsimpy.core.BaseEnvironment.nowqX)simpy.core.BaseEnvironment.active_processqXsimpy.core.Environment.any_ofqXsimpy.core.BaseEnvironment.runqXsimpy.core.Environment.timeoutqX&simpy.core --- simpy's core componentsqNXsimpy.core.BoundClassqX%simpy.core.Environment.active_processqXsimpy.core.EmptyScheduleqXsimpy.core.Environment.processquUsubstitution_defsq}qUparse_messagesq ]q!Ucurrent_sourceq"NU decorationq#NUautofootnote_startq$KUnameidsq%}q&(hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhU"simpy-core-simpy-s-core-componentsq'hhhhhhhhuUchildrenq(]q)cdocutils.nodes section q*)q+}q,(U rawsourceq-UUparentq.hUsourceq/cdocutils.nodes reprunicode q0XN/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.core.rstq1q2}q3bUtagnameq4Usectionq5U attributesq6}q7(Udupnamesq8]Uclassesq9]Ubackrefsq:]Uidsq;]q<(Xmodule-simpy.coreq=h'eUnamesq>]q?hauUlineq@KUdocumentqAhh(]qB(cdocutils.nodes title qC)qD}qE(h-X*``simpy.core`` --- SimPy's core componentsqFh.h+h/h2h4UtitleqGh6}qH(h8]h9]h:]h;]h>]uh@KhAhh(]qI(cdocutils.nodes literal qJ)qK}qL(h-X``simpy.core``qMh6}qN(h8]h9]h:]h;]h>]uh.hDh(]qOcdocutils.nodes Text qPX simpy.coreqQqR}qS(h-Uh.hKubah4UliteralqTubhPX --- SimPy's core componentsqUqV}qW(h-X --- SimPy's core componentsqXh.hDubeubcsphinx.addnodes index qY)qZ}q[(h-Uh.h+h/U q\h4Uindexq]h6}q^(h;]h:]h8]h9]h>]Uentries]q_(Usingleq`Xsimpy.core (module)Xmodule-simpy.coreUtqaauh@KhAhh(]ubcdocutils.nodes paragraph qb)qc}qd(h-XThis module contains the implementation of SimPy's core classes. The most important ones are directly importable via :mod:`simpy`.h.h+h/XR/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.coreh4U paragraphqeh6}qf(h8]h9]h:]h;]h>]uh@KhAhh(]qg(hPXuThis module contains the implementation of SimPy's core classes. The most important ones are directly importable via qhqi}qj(h-XuThis module contains the implementation of SimPy's core classes. The most important ones are directly importable via h.hcubcsphinx.addnodes pending_xref qk)ql}qm(h-X :mod:`simpy`qnh.hch/h2h4U pending_xrefqoh6}qp(UreftypeXmodUrefwarnqqU reftargetqrXsimpyU refdomainXpyqsh;]h:]U refexplicith8]h9]h>]UrefdocqtXapi_reference/simpy.corequUpy:classqvNU py:moduleqwX simpy.coreqxuh@Kh(]qyhJ)qz}q{(h-hnh6}q|(h8]h9]q}(Uxrefq~hsXpy-modqeh:]h;]h>]uh.hlh(]qhPXsimpyqq}q(h-Uh.hzubah4hTubaubhPX.q}q(h-X.h.hcubeubhY)q}q(h-Uh.h+h/Nh4h]h6}q(h;]h:]h8]h9]h>]Uentries]q(h`X%BaseEnvironment (class in simpy.core)h Utqauh@NhAhh(]ubcsphinx.addnodes desc q)q}q(h-Uh.h+h/Nh4Udescqh6}q(UnoindexqUdomainqXpyh;]h:]h8]h9]h>]UobjtypeqXclassqUdesctypeqhuh@NhAhh(]q(csphinx.addnodes desc_signature q)q}q(h-XBaseEnvironmentqh.hh/U qh4Udesc_signatureqh6}q(h;]qh aUmoduleqh0X simpy.coreqq}qbh:]h8]h9]h>]qh aUfullnameqhUclassqUUfirstquh@NhAhh(]q(csphinx.addnodes desc_annotation q)q}q(h-Xclass h.hh/hh4Udesc_annotationqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]qhPXclass qq}q(h-Uh.hubaubcsphinx.addnodes desc_addname q)q}q(h-X simpy.core.h.hh/hh4U desc_addnameqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]qhPX simpy.core.qq}q(h-Uh.hubaubcsphinx.addnodes desc_name q)q}q(h-hh.hh/hh4U desc_nameqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]qhPXBaseEnvironmentqq}q(h-Uh.hubaubeubcsphinx.addnodes desc_content q)q}q(h-Uh.hh/hh4U desc_contentqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]q(hb)q}q(h-X*The abstract definition of an environment.qh.hh/Xb/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BaseEnvironmentqh4heh6}q(h8]h9]h:]h;]h>]uh@KhAhh(]qhPX*The abstract definition of an environment.q΅q}q(h-hh.hubaubhb)q}q(h-XAn implementation must at least provide the means to access the current time of the environment (see :attr:`now`) and to schedule (see :meth:`schedule()`) as well as execute (see :meth:`step()` and :meth:`run()`) events.h.hh/hh4heh6}q(h8]h9]h:]h;]h>]uh@KhAhh(]q(hPXeAn implementation must at least provide the means to access the current time of the environment (see qՅq}q(h-XeAn implementation must at least provide the means to access the current time of the environment (see h.hubhk)q}q(h-X :attr:`now`qh.hh/h2h4hoh6}q(UreftypeXattrhqhrXnowU refdomainXpyqh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]qhJ)q}q(h-hh6}q(h8]h9]q(h~hXpy-attrqeh:]h;]h>]uh.hh(]qhPXnowq䅁q}q(h-Uh.hubah4hTubaubhPX) and to schedule (see q煁q}q(h-X) and to schedule (see h.hubhk)q}q(h-X:meth:`schedule()`qh.hh/h2h4hoh6}q(UreftypeXmethhqhrXscheduleU refdomainXpyqh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]qhJ)q}q(h-hh6}q(h8]h9]q(h~hXpy-methqeh:]h;]h>]uh.hh(]qhPX schedule()qq}q(h-Uh.hubah4hTubaubhPX) as well as execute (see qq}q(h-X) as well as execute (see h.hubhk)q}q(h-X:meth:`step()`qh.hh/h2h4hoh6}q(UreftypeXmethhqhrXstepU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]rhJ)r}r(h-hh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.hh(]rhPXstep()rr }r (h-Uh.jubah4hTubaubhPX and r r }r (h-X and h.hubhk)r}r(h-X :meth:`run()`rh.hh/h2h4hoh6}r(UreftypeXmethhqhrXrunU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.jh(]rhPXrun()rr}r(h-Uh.jubah4hTubaubhPX ) events.rr}r(h-X ) events.h.hubeubhb)r }r!(h-XThe class is meant to be subclassed for different execution environments. For example, SimPy defines a :class:`Environment` for simulations with a virtual time and and a :class:`~simpy.rt.RealtimeEnvironment` that schedules and executes events in real (e.g., wallclock) time.h.hh/hh4heh6}r"(h8]h9]h:]h;]h>]uh@KhAhh(]r#(hPXgThe class is meant to be subclassed for different execution environments. For example, SimPy defines a r$r%}r&(h-XgThe class is meant to be subclassed for different execution environments. For example, SimPy defines a h.j ubhk)r'}r((h-X:class:`Environment`r)h.j h/h2h4hoh6}r*(UreftypeXclasshqhrX EnvironmentU refdomainXpyr+h;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K h(]r,hJ)r-}r.(h-j)h6}r/(h8]h9]r0(h~j+Xpy-classr1eh:]h;]h>]uh.j'h(]r2hPX Environmentr3r4}r5(h-Uh.j-ubah4hTubaubhPX/ for simulations with a virtual time and and a r6r7}r8(h-X/ for simulations with a virtual time and and a h.j ubhk)r9}r:(h-X&:class:`~simpy.rt.RealtimeEnvironment`r;h.j h/h2h4hoh6}r<(UreftypeXclasshqhrXsimpy.rt.RealtimeEnvironmentU refdomainXpyr=h;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K h(]r>hJ)r?}r@(h-j;h6}rA(h8]h9]rB(h~j=Xpy-classrCeh:]h;]h>]uh.j9h(]rDhPXRealtimeEnvironmentrErF}rG(h-Uh.j?ubah4hTubaubhPXC that schedules and executes events in real (e.g., wallclock) time.rHrI}rJ(h-XC that schedules and executes events in real (e.g., wallclock) time.h.j ubeubhY)rK}rL(h-Uh.hh/Xf/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BaseEnvironment.nowrMh4h]h6}rN(h;]h:]h8]h9]h>]Uentries]rO(h`X*now (simpy.core.BaseEnvironment attribute)hUtrPauh@NhAhh(]ubh)rQ}rR(h-Uh.hh/jMh4hh6}rS(hhXpyh;]h:]h8]h9]h>]hX attributerThjTuh@NhAhh(]rU(h)rV}rW(h-XBaseEnvironment.nowh.jQh/hh4hh6}rX(h;]rYhahh0X simpy.corerZr[}r\bh:]h8]h9]h>]r]hahXBaseEnvironment.nowhhhuh@NhAhh(]r^h)r_}r`(h-Xnowh.jVh/hh4hh6}ra(h8]h9]h:]h;]h>]uh@NhAhh(]rbhPXnowrcrd}re(h-Uh.j_ubaubaubh)rf}rg(h-Uh.jQh/hh4hh6}rh(h8]h9]h:]h;]h>]uh@NhAhh(]rihb)rj}rk(h-X$The current time of the environment.rlh.jfh/jMh4heh6}rm(h8]h9]h:]h;]h>]uh@KhAhh(]rnhPX$The current time of the environment.rorp}rq(h-jlh.jjubaubaubeubhY)rr}rs(h-Uh.hh/Xq/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BaseEnvironment.active_processrth4h]h6}ru(h;]h:]h8]h9]h>]Uentries]rv(h`X5active_process (simpy.core.BaseEnvironment attribute)hUtrwauh@NhAhh(]ubh)rx}ry(h-Uh.hh/jth4hh6}rz(hhXpyh;]h:]h8]h9]h>]hX attributer{hj{uh@NhAhh(]r|(h)r}}r~(h-XBaseEnvironment.active_processh.jxh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXBaseEnvironment.active_processhhhuh@NhAhh(]rh)r}r(h-Xactive_processh.j}h/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXactive_processrr}r(h-Uh.jubaubaubh)r}r(h-Uh.jxh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X0The currently active process of the environment.rh.jh/jth4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPX0The currently active process of the environment.rr}r(h-jh.jubaubaubeubhY)r}r(h-Uh.hh/Xk/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BaseEnvironment.schedulerh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X.schedule() (simpy.core.BaseEnvironment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.hh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-X4BaseEnvironment.schedule(event, priority=1, delay=0)h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXBaseEnvironment.schedulehhhuh@NhAhh(]r(h)r}r(h-Xscheduleh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXschedulerr}r(h-Uh.jubaubcsphinx.addnodes desc_parameterlist r)r}r(h-Uh.jh/hh4Udesc_parameterlistrh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(csphinx.addnodes desc_parameter r)r}r(h-Xeventh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4Udesc_parameterrubj)r}r(h-X priority=1h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX priority=1rr}r(h-Uh.jubah4jubj)r}r(h-Xdelay=0h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelay=0rr}r(h-Uh.jubah4jubeubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(hb)r}r(h-X:Schedule an *event* with a given *priority* and a *delay*.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Schedule an rr}r(h-X Schedule an h.jubcdocutils.nodes emphasis r)r}r(h-X*event*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4UemphasisrubhPX with a given rr}r(h-X with a given h.jubj)r}r(h-X *priority*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXpriorityrr}r(h-Uh.jubah4jubhPX and a rr}r(h-X and a h.jubj)r}r(h-X*delay*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelayrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubhb)r}r(h-XeThere are two default priority values, :data:`~simpy.events.URGENT` and :data:`~simpy.events.NORMAL`.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX'There are two default priority values, rr}r(h-X'There are two default priority values, h.jubhk)r}r(h-X:data:`~simpy.events.URGENT`rh.jh/h2h4hoh6}r(UreftypeXdatahqhrXsimpy.events.URGENTU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K$h(]rhJ)r}r (h-jh6}r (h8]h9]r (h~jXpy-datar eh:]h;]h>]uh.jh(]r hPXURGENTrr}r(h-Uh.jubah4hTubaubhPX and rr}r(h-X and h.jubhk)r}r(h-X:data:`~simpy.events.NORMAL`rh.jh/h2h4hoh6}r(UreftypeXdatahqhrXsimpy.events.NORMALU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K$h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-datareh:]h;]h>]uh.jh(]rhPXNORMALr r!}r"(h-Uh.jubah4hTubaubhPX.r#}r$(h-X.h.jubeubeubeubhY)r%}r&(h-Uh.hh/Xg/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BaseEnvironment.stepr'h4h]h6}r((h;]h:]h8]h9]h>]Uentries]r)(h`X*step() (simpy.core.BaseEnvironment method)h Utr*auh@NhAhh(]ubh)r+}r,(h-Uh.hh/j'h4hh6}r-(hhXpyh;]h:]h8]h9]h>]hXmethodr.hj.uh@NhAhh(]r/(h)r0}r1(h-XBaseEnvironment.step()h.j+h/hh4hh6}r2(h;]r3h ahh0X simpy.corer4r5}r6bh:]h8]h9]h>]r7h ahXBaseEnvironment.stephhhuh@NhAhh(]r8(h)r9}r:(h-Xsteph.j0h/hh4hh6}r;(h8]h9]h:]h;]h>]uh@NhAhh(]r<hPXstepr=r>}r?(h-Uh.j9ubaubj)r@}rA(h-Uh.j0h/hh4jh6}rB(h8]h9]h:]h;]h>]uh@NhAhh(]ubeubh)rC}rD(h-Uh.j+h/hh4hh6}rE(h8]h9]h:]h;]h>]uh@NhAhh(]rFhb)rG}rH(h-XProcess the next event.rIh.jCh/j'h4heh6}rJ(h8]h9]h:]h;]h>]uh@KhAhh(]rKhPXProcess the next event.rLrM}rN(h-jIh.jGubaubaubeubhY)rO}rP(h-Uh.hh/Nh4h]h6}rQ(h;]h:]h8]h9]h>]Uentries]rR(h`X)run() (simpy.core.BaseEnvironment method)hUtrSauh@NhAhh(]ubh)rT}rU(h-Uh.hh/Nh4hh6}rV(hhXpyh;]h:]h8]h9]h>]hXmethodrWhjWuh@NhAhh(]rX(h)rY}rZ(h-XBaseEnvironment.run(until=None)h.jTh/hh4hh6}r[(h;]r\hahh0X simpy.corer]r^}r_bh:]h8]h9]h>]r`hahXBaseEnvironment.runhhhuh@NhAhh(]ra(h)rb}rc(h-Xrunh.jYh/hh4hh6}rd(h8]h9]h:]h;]h>]uh@NhAhh(]rehPXrunrfrg}rh(h-Uh.jbubaubj)ri}rj(h-Uh.jYh/hh4jh6}rk(h8]h9]h:]h;]h>]uh@NhAhh(]rlj)rm}rn(h-X until=Noneh6}ro(h8]h9]h:]h;]h>]uh.jih(]rphPX until=Nonerqrr}rs(h-Uh.jmubah4jubaubeubh)rt}ru(h-Uh.jTh/hh4hh6}rv(h8]h9]h:]h;]h>]uh@NhAhh(]rw(hb)rx}ry(h-XAExecutes :meth:`step()` until the given criterion *until* is met.h.jth/Xf/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BaseEnvironment.runrzh4heh6}r{(h8]h9]h:]h;]h>]uh@KhAhh(]r|(hPX Executes r}r~}r(h-X Executes h.jxubhk)r}r(h-X:meth:`step()`rh.jxh/h2h4hoh6}r(UreftypeXmethhqhrXstepU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K1h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.jh(]rhPXstep()rr}r(h-Uh.jubah4hTubaubhPX until the given criterion rr}r(h-X until the given criterion h.jxubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jxh(]rhPXuntilrr}r(h-Uh.jubah4jubhPX is met.rr}r(h-X is met.h.jxubeubcdocutils.nodes bullet_list r)r}r(h-Uh.jth/jzh4U bullet_listrh6}r(UbulletrX-h;]h:]h8]h9]h>]uh@KhAhh(]r(cdocutils.nodes list_item r)r}r(h-XqIf it is ``None`` (which is the default) this method will return if there are no further events to be processed. h.jh/jzh4U list_itemrh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XpIf it is ``None`` (which is the default) this method will return if there are no further events to be processed.h.jh/jzh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is rr}r(h-X If it is h.jubhJ)r}r(h-X``None``h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXNonerr}r(h-Uh.jubah4hTubhPX_ (which is the default) this method will return if there are no further events to be processed.rr}r(h-X_ (which is the default) this method will return if there are no further events to be processed.h.jubeubaubj)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value. h.jh/jzh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value.h.jh/jzh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is an rr}r(h-X If it is an h.jubhk)r}r(h-X:class:`~simpy.events.Event`rh.jh/Nh4hoh6}r(UreftypeXclasshqhrXsimpy.events.EventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Nh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXEventrr}r(h-Uh.jubah4hTubaubhPXa the method will continue stepping until this event has been triggered and will return its value.rr}r(h-Xa the method will continue stepping until this event has been triggered and will return its value.h.jubeubaubj)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jzh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jzh4heh6}r(h8]h9]h:]h;]h>]uh@K h(]r(hPXjIf it can be converted to a number the method will continue stepping until the environment's time reaches rr}r(h-XjIf it can be converted to a number the method will continue stepping until the environment's time reaches h.jubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXuntilrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubaubeubeubeubeubeubhY)r}r(h-Uh.h+h/Nh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X!Environment (class in simpy.core)hUtrauh@NhAhh(]ubh)r}r(h-Uh.h+h/Nh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXclassrhjuh@NhAhh(]r(h)r}r(h-XEnvironment(initial_time=0)h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahX EnvironmentrhUhuh@NhAhh(]r(h)r}r(h-Xclass h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXclass rr}r(h-Uh.jubaubh)r}r(h-X simpy.core.h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r hPX simpy.core.r r }r (h-Uh.jubaubh)r }r(h-jh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX Environmentrr}r(h-Uh.j ubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rj)r}r(h-Xinitial_time=0h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXinitial_time=0rr}r(h-Uh.jubah4jubaubeubh)r}r (h-Uh.jh/hh4hh6}r!(h8]h9]h:]h;]h>]uh@NhAhh(]r"(hb)r#}r$(h-XInherits :class:`BaseEnvironment` and implements a simulation environment which simulates the passing of time by stepping from event to event.h.jh/X^/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environmentr%h4heh6}r&(h8]h9]h:]h;]h>]uh@KhAhh(]r'(hPX Inherits r(r)}r*(h-X Inherits h.j#ubhk)r+}r,(h-X:class:`BaseEnvironment`r-h.j#h/h2h4hoh6}r.(UreftypeXclasshqhrXBaseEnvironmentU refdomainXpyr/h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]r0hJ)r1}r2(h-j-h6}r3(h8]h9]r4(h~j/Xpy-classr5eh:]h;]h>]uh.j+h(]r6hPXBaseEnvironmentr7r8}r9(h-Uh.j1ubah4hTubaubhPXm and implements a simulation environment which simulates the passing of time by stepping from event to event.r:r;}r<(h-Xm and implements a simulation environment which simulates the passing of time by stepping from event to event.h.j#ubeubhb)r=}r>(h-XWYou can provide an *initial_time* for the environment. By defaults, it starts at ``0``.h.jh/j%h4heh6}r?(h8]h9]h:]h;]h>]uh@KhAhh(]r@(hPXYou can provide an rArB}rC(h-XYou can provide an h.j=ubj)rD}rE(h-X*initial_time*h6}rF(h8]h9]h:]h;]h>]uh.j=h(]rGhPX initial_timerHrI}rJ(h-Uh.jDubah4jubhPX0 for the environment. By defaults, it starts at rKrL}rM(h-X0 for the environment. By defaults, it starts at h.j=ubhJ)rN}rO(h-X``0``h6}rP(h8]h9]h:]h;]h>]uh.j=h(]rQhPX0rR}rS(h-Uh.jNubah4hTubhPX.rT}rU(h-X.h.j=ubeubhb)rV}rW(h-XxThis class also provides aliases for common event types, for example :attr:`process`, :attr:`timeout` and :attr:`event`.h.jh/j%h4heh6}rX(h8]h9]h:]h;]h>]uh@KhAhh(]rY(hPXEThis class also provides aliases for common event types, for example rZr[}r\(h-XEThis class also provides aliases for common event types, for example h.jVubhk)r]}r^(h-X:attr:`process`r_h.jVh/h2h4hoh6}r`(UreftypeXattrhqhrXprocessU refdomainXpyrah;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rbhJ)rc}rd(h-j_h6}re(h8]h9]rf(h~jaXpy-attrrgeh:]h;]h>]uh.j]h(]rhhPXprocessrirj}rk(h-Uh.jcubah4hTubaubhPX, rlrm}rn(h-X, h.jVubhk)ro}rp(h-X:attr:`timeout`rqh.jVh/h2h4hoh6}rr(UreftypeXattrhqhrXtimeoutU refdomainXpyrsh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rthJ)ru}rv(h-jqh6}rw(h8]h9]rx(h~jsXpy-attrryeh:]h;]h>]uh.joh(]rzhPXtimeoutr{r|}r}(h-Uh.juubah4hTubaubhPX and r~r}r(h-X and h.jVubhk)r}r(h-X :attr:`event`rh.jVh/h2h4hoh6}r(UreftypeXattrhqhrXeventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-attrreh:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4hTubaubhPX.r}r(h-X.h.jVubeubhY)r}r(h-Uh.jh/Xb/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environment.nowrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X&now (simpy.core.Environment attribute)h Utrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hX attributerhjuh@NhAhh(]r(h)r}r(h-XEnvironment.nowh.jh/hh4hh6}r(h;]rh ahh0X simpy.corerr}rbh:]h8]h9]h>]rh ahXEnvironment.nowhjhuh@NhAhh(]rh)r}r(h-Xnowh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXnowrr}r(h-Uh.jubaubaubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XThe current simulation time.rh.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPXThe current simulation time.rr}r(h-jh.jubaubaubeubhY)r}r(h-Uh.jh/Xm/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environment.active_processrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X1active_process (simpy.core.Environment attribute)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hX attributerhjuh@NhAhh(]r(h)r}r(h-XEnvironment.active_processh.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.active_processhjhuh@NhAhh(]rh)r}r(h-Xactive_processh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXactive_processrr}r(h-Uh.jubaubaubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X0The currently active process of the environment.rh.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPX0The currently active process of the environment.rr}r(h-jh.jubaubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X)process() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-Xprocess(generator)h.jh/h2h4hh6}r(h;]rhahhxh:]h8]h9]h>]rhahXEnvironment.processhjhuh@KhAhh(]r(h)r}r(h-Xprocessh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPXprocessrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/h2h4jh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rj)r}r(h-X generatorh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX generatorrr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhb)r}r(h-XECreate a new :class:`~simpy.events.Process` instance for *generator*.h.jh/h2h4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r (hPX Create a new r r }r (h-X Create a new h.jubhk)r }r(h-X:class:`~simpy.events.Process`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.ProcessU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.j h(]rhPXProcessrr}r(h-Uh.jubah4hTubaubhPX instance for rr}r(h-X instance for h.jubj)r}r (h-X *generator*h6}r!(h8]h9]h:]h;]h>]uh.jh(]r"hPX generatorr#r$}r%(h-Uh.jubah4jubhPX.r&}r'(h-X.h.jubeubaubeubhY)r(}r)(h-Uh.jh/h2h4h]h6}r*(h;]h:]h8]h9]h>]Uentries]r+(h`X)timeout() (simpy.core.Environment method)hUtr,auh@NhAhh(]ubh)r-}r.(h-Uh.jh/h2h4hh6}r/(hhXpyh;]h:]h8]h9]h>]hXmethodr0hj0uh@NhAhh(]r1(h)r2}r3(h-Xtimeout(delay, value=None)h.j-h/h2h4hh6}r4(h;]r5hahhxh:]h8]h9]h>]r6hahXEnvironment.timeouthjhuh@KhAhh(]r7(h)r8}r9(h-Xtimeouth.j2h/h2h4hh6}r:(h8]h9]h:]h;]h>]uh@KhAhh(]r;hPXtimeoutr<r=}r>(h-Uh.j8ubaubj)r?}r@(h-Uh.j2h/h2h4jh6}rA(h8]h9]h:]h;]h>]uh@KhAhh(]rB(j)rC}rD(h-Xdelayh6}rE(h8]h9]h:]h;]h>]uh.j?h(]rFhPXdelayrGrH}rI(h-Uh.jCubah4jubj)rJ}rK(h-X value=Noneh6}rL(h8]h9]h:]h;]h>]uh.j?h(]rMhPX value=NonerNrO}rP(h-Uh.jJubah4jubeubeubh)rQ}rR(h-Uh.j-h/h2h4hh6}rS(h8]h9]h:]h;]h>]uh@KhAhh(]rThb)rU}rV(h-X\Return a new :class:`~simpy.events.Timeout` event with a *delay* and, optionally, a *value*.h.jQh/h2h4heh6}rW(h8]h9]h:]h;]h>]uh@KhAhh(]rX(hPX Return a new rYrZ}r[(h-X Return a new h.jUubhk)r\}r](h-X:class:`~simpy.events.Timeout`r^h.jUh/h2h4hoh6}r_(UreftypeXclasshqhrXsimpy.events.TimeoutU refdomainXpyr`h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rahJ)rb}rc(h-j^h6}rd(h8]h9]re(h~j`Xpy-classrfeh:]h;]h>]uh.j\h(]rghPXTimeoutrhri}rj(h-Uh.jbubah4hTubaubhPX event with a rkrl}rm(h-X event with a h.jUubj)rn}ro(h-X*delay*h6}rp(h8]h9]h:]h;]h>]uh.jUh(]rqhPXdelayrrrs}rt(h-Uh.jnubah4jubhPX and, optionally, a rurv}rw(h-X and, optionally, a h.jUubj)rx}ry(h-X*value*h6}rz(h8]h9]h:]h;]h>]uh.jUh(]r{hPXvaluer|r}}r~(h-Uh.jxubah4jubhPX.r}r(h-X.h.jUubeubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X'event() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-Xevent()h.jh/h2h4hh6}r(h;]rhahhxh:]h8]h9]h>]rhahXEnvironment.eventhjhuh@KhAhh(]r(h)r}r(h-Xeventh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPXeventrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/h2h4jh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]ubeubh)r}r(h-Uh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhb)r}r(h-XReturn a new :class:`~simpy.events.Event` instance. Yielding this event suspends a process until another process triggers the event.h.jh/h2h4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Return a new rr}r(h-X Return a new h.jubhk)r}r(h-X:class:`~simpy.events.Event`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.EventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXEventrr}r(h-Uh.jubah4hTubaubhPX[ instance. Yielding this event suspends a process until another process triggers the event.rr}r(h-X[ instance. Yielding this event suspends a process until another process triggers the event.h.jubeubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X(all_of() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-Xall_of(events)h.jh/h2h4hh6}r(h;]rhahhxh:]h8]h9]h>]rhahXEnvironment.all_ofhjhuh@K!hAhh(]r(h)r}r(h-Xall_ofh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@K!hAhh(]rhPXall_ofrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/h2h4jh6}r(h8]h9]h:]h;]h>]uh@K!hAhh(]rj)r}r(h-Xeventsh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventsrr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@K!hAhh(]rhb)r}r(h-XKReturn a new :class:`~simpy.events.AllOf` condition for a list of *events*.h.jh/h2h4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Return a new rr}r(h-X Return a new h.jubhk)r}r(h-X:class:`~simpy.events.AllOf`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.AllOfU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K#h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXAllOfrr}r(h-Uh.jubah4hTubaubhPX condition for a list of rr}r(h-X condition for a list of h.jubj)r}r(h-X*events*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventsrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X(any_of() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r (h)r }r (h-Xany_of(events)h.jh/h2h4hh6}r (h;]r hahhxh:]h8]h9]h>]rhahXEnvironment.any_ofhjhuh@K&hAhh(]r(h)r}r(h-Xany_ofh.j h/h2h4hh6}r(h8]h9]h:]h;]h>]uh@K&hAhh(]rhPXany_ofrr}r(h-Uh.jubaubj)r}r(h-Uh.j h/h2h4jh6}r(h8]h9]h:]h;]h>]uh@K&hAhh(]rj)r}r(h-Xeventsh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventsrr }r!(h-Uh.jubah4jubaubeubh)r"}r#(h-Uh.jh/h2h4hh6}r$(h8]h9]h:]h;]h>]uh@K&hAhh(]r%hb)r&}r'(h-XKReturn a new :class:`~simpy.events.AnyOf` condition for a list of *events*.h.j"h/h2h4heh6}r((h8]h9]h:]h;]h>]uh@K$hAhh(]r)(hPX Return a new r*r+}r,(h-X Return a new h.j&ubhk)r-}r.(h-X:class:`~simpy.events.AnyOf`r/h.j&h/h2h4hoh6}r0(UreftypeXclasshqhrXsimpy.events.AnyOfU refdomainXpyr1h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K(h(]r2hJ)r3}r4(h-j/h6}r5(h8]h9]r6(h~j1Xpy-classr7eh:]h;]h>]uh.j-h(]r8hPXAnyOfr9r:}r;(h-Uh.j3ubah4hTubaubhPX condition for a list of r<r=}r>(h-X condition for a list of h.j&ubj)r?}r@(h-X*events*h6}rA(h8]h9]h:]h;]h>]uh.j&h(]rBhPXeventsrCrD}rE(h-Uh.j?ubah4jubhPX.rF}rG(h-X.h.j&ubeubaubeubhY)rH}rI(h-Uh.jh/Nh4h]h6}rJ(h;]h:]h8]h9]h>]Uentries]rK(h`X&exit() (simpy.core.Environment method)hUtrLauh@NhAhh(]ubh)rM}rN(h-Uh.jh/Nh4hh6}rO(hhXpyh;]h:]h8]h9]h>]hXmethodrPhjPuh@NhAhh(]rQ(h)rR}rS(h-XEnvironment.exit(value=None)h.jMh/hh4hh6}rT(h;]rUhahh0X simpy.corerVrW}rXbh:]h8]h9]h>]rYhahXEnvironment.exithjhuh@NhAhh(]rZ(h)r[}r\(h-Xexith.jRh/hh4hh6}r](h8]h9]h:]h;]h>]uh@NhAhh(]r^hPXexitr_r`}ra(h-Uh.j[ubaubj)rb}rc(h-Uh.jRh/hh4jh6}rd(h8]h9]h:]h;]h>]uh@NhAhh(]rej)rf}rg(h-X value=Noneh6}rh(h8]h9]h:]h;]h>]uh.jbh(]rihPX value=Nonerjrk}rl(h-Uh.jfubah4jubaubeubh)rm}rn(h-Uh.jMh/hh4hh6}ro(h8]h9]h:]h;]h>]uh@NhAhh(]rp(hb)rq}rr(h-X{Convenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a ``value``.h.jmh/Xc/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environment.exitrsh4heh6}rt(h8]h9]h:]h;]h>]uh@KhAhh(]ru(hPXqConvenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a rvrw}rx(h-XqConvenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a h.jqubhJ)ry}rz(h-X ``value``h6}r{(h8]h9]h:]h;]h>]uh.jqh(]r|hPXvaluer}r~}r(h-Uh.jyubah4hTubhPX.r}r(h-X.h.jqubeubcdocutils.nodes note r)r}r(h-X6From Python 3.3, you can use ``return value`` instead.rh.jmh/jsh4Unoterh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-jh.jh/jsh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPXFrom Python 3.3, you can use rr}r(h-XFrom Python 3.3, you can use h.jubhJ)r}r(h-X``return value``h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX return valuerr}r(h-Uh.jubah4hTubhPX instead.rr}r(h-X instead.h.jubeubaubeubeubhY)r}r(h-Uh.jh/Xg/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environment.schedulerh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X*schedule() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-X0Environment.schedule(event, priority=1, delay=0)h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.schedulehjhuh@NhAhh(]r(h)r}r(h-Xscheduleh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXschedulerr}r(h-Uh.jubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(j)r}r(h-Xeventh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4jubj)r}r(h-X priority=1h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX priority=1rr}r(h-Uh.jubah4jubj)r}r(h-Xdelay=0h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelay=0rr}r(h-Uh.jubah4jubeubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X:Schedule an *event* with a given *priority* and a *delay*.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Schedule an rr}r(h-X Schedule an h.jubj)r}r(h-X*event*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4jubhPX with a given rr}r(h-X with a given h.jubj)r}r(h-X *priority*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXpriorityrr}r(h-Uh.jubah4jubhPX and a rr}r(h-X and a h.jubj)r}r(h-X*delay*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelayrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubaubeubhY)r}r(h-Uh.jh/Xc/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environment.peekrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X&peek() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-XEnvironment.peek()h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.peekhjhuh@NhAhh(]r (h)r }r (h-Xpeekh.jh/hh4hh6}r (h8]h9]h:]h;]h>]uh@NhAhh(]r hPXpeekrr}r(h-Uh.j ubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]ubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X_Get the time of the next scheduled event. Return :data:`Infinity` if there is no further event.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX1Get the time of the next scheduled event. Return rr}r(h-X1Get the time of the next scheduled event. Return h.jubhk)r}r (h-X:data:`Infinity`r!h.jh/h2h4hoh6}r"(UreftypeXdatahqhrXInfinityU refdomainXpyr#h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]r$hJ)r%}r&(h-j!h6}r'(h8]h9]r((h~j#Xpy-datar)eh:]h;]h>]uh.jh(]r*hPXInfinityr+r,}r-(h-Uh.j%ubah4hTubaubhPX if there is no further event.r.r/}r0(h-X if there is no further event.h.jubeubaubeubhY)r1}r2(h-Uh.jh/Xc/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environment.stepr3h4h]h6}r4(h;]h:]h8]h9]h>]Uentries]r5(h`X&step() (simpy.core.Environment method)h Utr6auh@NhAhh(]ubh)r7}r8(h-Uh.jh/j3h4hh6}r9(hhXpyh;]h:]h8]h9]h>]hXmethodr:hj:uh@NhAhh(]r;(h)r<}r=(h-XEnvironment.step()h.j7h/hh4hh6}r>(h;]r?h ahh0X simpy.corer@rA}rBbh:]h8]h9]h>]rCh ahXEnvironment.stephjhuh@NhAhh(]rD(h)rE}rF(h-Xsteph.j<h/hh4hh6}rG(h8]h9]h:]h;]h>]uh@NhAhh(]rHhPXsteprIrJ}rK(h-Uh.jEubaubj)rL}rM(h-Uh.j<h/hh4jh6}rN(h8]h9]h:]h;]h>]uh@NhAhh(]ubeubh)rO}rP(h-Uh.j7h/hh4hh6}rQ(h8]h9]h:]h;]h>]uh@NhAhh(]rR(hb)rS}rT(h-XProcess the next event.rUh.jOh/j3h4heh6}rV(h8]h9]h:]h;]h>]uh@KhAhh(]rWhPXProcess the next event.rXrY}rZ(h-jUh.jSubaubhb)r[}r\(h-XARaise an :exc:`EmptySchedule` if no further events are available.h.jOh/j3h4heh6}r](h8]h9]h:]h;]h>]uh@KhAhh(]r^(hPX Raise an r_r`}ra(h-X Raise an h.j[ubhk)rb}rc(h-X:exc:`EmptySchedule`rdh.j[h/h2h4hoh6}re(UreftypeXexchqhrX EmptyScheduleU refdomainXpyrfh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rghJ)rh}ri(h-jdh6}rj(h8]h9]rk(h~jfXpy-excrleh:]h;]h>]uh.jbh(]rmhPX EmptySchedulernro}rp(h-Uh.jhubah4hTubaubhPX$ if no further events are available.rqrr}rs(h-X$ if no further events are available.h.j[ubeubeubeubhY)rt}ru(h-Uh.jh/Nh4h]h6}rv(h;]h:]h8]h9]h>]Uentries]rw(h`X%run() (simpy.core.Environment method)hUtrxauh@NhAhh(]ubh)ry}rz(h-Uh.jh/Nh4hh6}r{(hhXpyh;]h:]h8]h9]h>]hXmethodr|hj|uh@NhAhh(]r}(h)r~}r(h-XEnvironment.run(until=None)rh.jyh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.runhjhuh@NhAhh(]r(h)r}r(h-Xrunh.j~h/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXrunrr}r(h-Uh.jubaubj)r}r(h-Uh.j~h/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rj)r}r(h-X until=Noneh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX until=Nonerr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jyh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(hb)r}r(h-XAExecutes :meth:`step()` until the given criterion *until* is met.rh.jh/Xb/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Environment.runrh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Executes rr}r(h-X Executes h.jubhk)r}r(h-X:meth:`step()`rh.jh/h2h4hoh6}r(UreftypeXmethhqhrXstepU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.jh(]rhPXstep()rr}r(h-Uh.jubah4hTubaubhPX until the given criterion rr}r(h-X until the given criterion h.jubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXuntilrr}r(h-Uh.jubah4jubhPX is met.rr}r(h-X is met.h.jubeubj)r}r(h-Uh.jh/jh4jh6}r(jX-h;]h:]h8]h9]h>]uh@KhAhh(]r(j)r}r(h-XqIf it is ``None`` (which is the default) this method will return if there are no further events to be processed. h.jh/jh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XpIf it is ``None`` (which is the default) this method will return if there are no further events to be processed.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is rr}r(h-X If it is h.jubhJ)r}r(h-X``None``h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXNonerr}r(h-Uh.jubah4hTubhPX_ (which is the default) this method will return if there are no further events to be processed.rr}r(h-X_ (which is the default) this method will return if there are no further events to be processed.h.jubeubaubj)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value. h.jh/jh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is an rr}r(h-X If it is an h.jubhk)r}r(h-X:class:`~simpy.events.Event`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.EventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXEventrr}r(h-Uh.jubah4hTubaubhPXa the method will continue stepping until this event has been triggered and will return its value.rr}r(h-Xa the method will continue stepping until this event has been triggered and will return its value.h.jubeubaubj)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@K h(]r(hPXjIf it can be converted to a number the method will continue stepping until the environment's time reaches rr}r(h-XjIf it can be converted to a number the method will continue stepping until the environment's time reaches h.jubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXuntilrr }r (h-Uh.jubah4jubhPX.r }r (h-X.h.jubeubaubeubeubeubeubeubhY)r }r(h-Uh.h+h/Nh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X BoundClass (class in simpy.core)hUtrauh@NhAhh(]ubh)r}r(h-Uh.h+h/Nh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXclassrhjuh@NhAhh(]r(h)r}r(h-XBoundClass(cls)rh.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahX BoundClassr hUhuh@NhAhh(]r!(h)r"}r#(h-Xclass h.jh/hh4hh6}r$(h8]h9]h:]h;]h>]uh@NhAhh(]r%hPXclass r&r'}r((h-Uh.j"ubaubh)r)}r*(h-X simpy.core.h.jh/hh4hh6}r+(h8]h9]h:]h;]h>]uh@NhAhh(]r,hPX simpy.core.r-r.}r/(h-Uh.j)ubaubh)r0}r1(h-j h.jh/hh4hh6}r2(h8]h9]h:]h;]h>]uh@NhAhh(]r3hPX BoundClassr4r5}r6(h-Uh.j0ubaubj)r7}r8(h-Uh.jh/hh4jh6}r9(h8]h9]h:]h;]h>]uh@NhAhh(]r:j)r;}r<(h-Xclsh6}r=(h8]h9]h:]h;]h>]uh.j7h(]r>hPXclsr?r@}rA(h-Uh.j;ubah4jubaubeubh)rB}rC(h-Uh.jh/hh4hh6}rD(h8]h9]h:]h;]h>]uh@NhAhh(]rE(hb)rF}rG(h-X&Allows classes to behave like methods.rHh.jBh/X]/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BoundClassrIh4heh6}rJ(h8]h9]h:]h;]h>]uh@KhAhh(]rKhPX&Allows classes to behave like methods.rLrM}rN(h-jHh.jFubaubhb)rO}rP(h-XThe ``__get__()`` descriptor is basically identical to ``function.__get__()`` and binds the first argument of the ``cls`` to the descriptor instance.h.jBh/jIh4heh6}rQ(h8]h9]h:]h;]h>]uh@KhAhh(]rR(hPXThe rSrT}rU(h-XThe h.jOubhJ)rV}rW(h-X ``__get__()``h6}rX(h8]h9]h:]h;]h>]uh.jOh(]rYhPX __get__()rZr[}r\(h-Uh.jVubah4hTubhPX& descriptor is basically identical to r]r^}r_(h-X& descriptor is basically identical to h.jOubhJ)r`}ra(h-X``function.__get__()``h6}rb(h8]h9]h:]h;]h>]uh.jOh(]rchPXfunction.__get__()rdre}rf(h-Uh.j`ubah4hTubhPX% and binds the first argument of the rgrh}ri(h-X% and binds the first argument of the h.jOubhJ)rj}rk(h-X``cls``h6}rl(h8]h9]h:]h;]h>]uh.jOh(]rmhPXclsrnro}rp(h-Uh.jjubah4hTubhPX to the descriptor instance.rqrr}rs(h-X to the descriptor instance.h.jOubeubhY)rt}ru(h-Uh.jBh/Xh/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.BoundClass.bind_earlyrvh4h]h6}rw(h;]h:]h8]h9]h>]Uentries]rx(h`X2bind_early() (simpy.core.BoundClass static method)hUtryauh@NhAhh(]ubh)rz}r{(h-Uh.jBh/jvh4hh6}r|(hhXpyh;]h:]h8]h9]h>]hX staticmethodr}hj}uh@NhAhh(]r~(h)r}r(h-XBoundClass.bind_early(instance)rh.jzh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXBoundClass.bind_earlyhj huh@NhAhh(]r(h)r}r(h-Ustatic rh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXstatic rr}r(h-Uh.jubaubh)r}r(h-X bind_earlyh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX bind_earlyrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rj)r}r(h-Xinstanceh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXinstancerr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jzh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XqBind all :class:`BoundClass` attributes of the *instance's* class to the instance itself to increase performance.h.jh/jvh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Bind all rr}r(h-X Bind all h.jubhk)r}r(h-X:class:`BoundClass`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrX BoundClassU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvj hwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPX BoundClassrr}r(h-Uh.jubah4hTubaubhPX attributes of the rr}r(h-X attributes of the h.jubj)r}r(h-X *instance's*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX instance'srr}r(h-Uh.jubah4jubhPX6 class to the instance itself to increase performance.rr}r(h-X6 class to the instance itself to increase performance.h.jubeubaubeubeubeubhY)r}r(h-Uh.h+h/X`/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.EmptySchedulerh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X#EmptySchedule (class in simpy.core)hUtrauh@NhAhh(]ubh)r}r(h-Uh.h+h/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXclassrhjuh@NhAhh(]r(h)r}r(h-X EmptySchedulerh.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahjhUhuh@NhAhh(]r(h)r}r(h-Xclass h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXclass rr}r(h-Uh.jubaubh)r}r(h-X simpy.core.h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX simpy.core.rr}r(h-Uh.jubaubh)r}r(h-jh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX EmptySchedulerr}r(h-Uh.jubaubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XRThrown by the :class:`Environment` if there are no further events to be processed.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPXThrown by the rr}r(h-XThrown by the h.jubhk)r}r(h-X:class:`Environment`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrX EnvironmentU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classr eh:]h;]h>]uh.jh(]r hPX Environmentr r }r (h-Uh.jubah4hTubaubhPX0 if there are no further events to be processed.rr}r(h-X0 if there are no further events to be processed.h.jubeubaubeubhY)r}r(h-Uh.h+h/X[/var/build/user_builds/simpy/checkouts/3.0.4/simpy/core.py:docstring of simpy.core.Infinityrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`XInfinity (in module simpy.core)h Utrauh@NhAhh(]ubh)r}r(h-Uh.h+h/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXdatarhjuh@NhAhh(]r(h)r}r(h-XInfinityrh.jh/U rh4hh6}r (h;]r!h ahh0X simpy.corer"r#}r$bh:]h8]h9]h>]r%h ahjhUhuh@NhAhh(]r&(h)r'}r((h-X simpy.core.h.jh/jh4hh6}r)(h8]h9]h:]h;]h>]uh@NhAhh(]r*hPX simpy.core.r+r,}r-(h-Uh.j'ubaubh)r.}r/(h-jh.jh/jh4hh6}r0(h8]h9]h:]h;]h>]uh@NhAhh(]r1hPXInfinityr2r3}r4(h-Uh.j.ubaubh)r5}r6(h-X = infh.jh/jh4hh6}r7(h8]h9]h:]h;]h>]uh@NhAhh(]r8hPX = infr9r:}r;(h-Uh.j5ubaubeubh)r<}r=(h-Uh.jh/jh4hh6}r>(h8]h9]h:]h;]h>]uh@NhAhh(]r?hb)r@}rA(h-XConvenience alias for infinityrBh.j<h/jh4heh6}rC(h8]h9]h:]h;]h>]uh@KhAhh(]rDhPXConvenience alias for infinityrErF}rG(h-jBh.j@ubaubaubeubeubah-UU transformerrHNU footnote_refsrI}rJUrefnamesrK}rLUsymbol_footnotesrM]rNUautofootnote_refsrO]rPUsymbol_footnote_refsrQ]rRU citationsrS]rThAhU current_linerUNUtransform_messagesrV]rWUreporterrXNUid_startrYKU autofootnotesrZ]r[U citation_refsr\}r]Uindirect_targetsr^]r_Usettingsr`(cdocutils.frontend Values raorb}rc(Ufootnote_backlinksrdKUrecord_dependenciesreNU rfc_base_urlrfUhttp://tools.ietf.org/html/rgU tracebackrhUpep_referencesriNUstrip_commentsrjNU toc_backlinksrkUentryrlU language_codermUenrnU datestamproNU report_levelrpKU _destinationrqNU halt_levelrrKU strip_classesrsNhGNUerror_encoding_error_handlerrtUbackslashreplaceruUdebugrvNUembed_stylesheetrwUoutput_encoding_error_handlerrxUstrictryU sectnum_xformrzKUdump_transformsr{NU docinfo_xformr|KUwarning_streamr}NUpep_file_url_templater~Upep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUN/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.core.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjyUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjhjh=cdocutils.nodes target r)r}r(h-Uh.h+h/h\h4Utargetrh6}r(h8]h;]rh=ah:]Uismodh9]h>]uh@KhAhh(]ubh jh hh j<h j0h jhj~hjhjhjhjRhjhjVhj}hj hjYhj2hjhjhjh'h+hjuUsubstitution_namesr}rh4hAh6}r(h8]h;]h:]Usourceh2h9]h>]uU footnotesr]rUrefidsr}rub.PK@D^^^@simpy-3.0.4/.doctrees/api_reference/simpy.resources.base.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X+simpy.resources.base.BaseResource.get_queueqX%simpy.resources.base.BaseResource.putqX.simpy.resources.base.BaseResource._trigger_getqXsimpy.resources.base.Get.cancelq X*simpy.resources.base.BaseResource.GetQueueq X.simpy.resources.base.BaseResource._trigger_putq Xsimpy.resources.base.Put.cancelq X)simpy.resources.base.BaseResource._do_getq X+simpy.resources.base.BaseResource.put_queueqX)simpy.resources.base.BaseResource._do_putqXsimpy.resources.base.PutqX%simpy.resources.base.BaseResource.getqX!simpy.resources.base.BaseResourceqX7simpy.resources.base --- base classes for all resourcesqNXsimpy.resources.base.GetqX*simpy.resources.base.BaseResource.PutQueuequUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h h hhhhhhhhhhhU3simpy-resources-base-base-classes-for-all-resourcesqhhhhuUchildrenq ]q!cdocutils.nodes section q")q#}q$(U rawsourceq%UUparentq&hUsourceq'cdocutils.nodes reprunicode q(XX/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.base.rstq)q*}q+bUtagnameq,Usectionq-U attributesq.}q/(Udupnamesq0]Uclassesq1]Ubackrefsq2]Uidsq3]q4(Xmodule-simpy.resources.baseq5heUnamesq6]q7hauUlineq8KUdocumentq9hh ]q:(cdocutils.nodes title q;)q<}q=(h%X;``simpy.resources.base`` --- Base classes for all resourcesq>h&h#h'h*h,Utitleq?h.}q@(h0]h1]h2]h3]h6]uh8Kh9hh ]qA(cdocutils.nodes literal qB)qC}qD(h%X``simpy.resources.base``qEh.}qF(h0]h1]h2]h3]h6]uh&hqTh,UindexqUh.}qV(h3]h2]h0]h1]h6]Uentries]qW(UsingleqXXsimpy.resources.base (module)Xmodule-simpy.resources.baseUtqYauh8Kh9hh ]ubcdocutils.nodes paragraph qZ)q[}q\(h%XBThis module contains the base classes for Simpy's resource system.q]h&h#h'Xf/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.baseq^h,U paragraphq_h.}q`(h0]h1]h2]h3]h6]uh8Kh9hh ]qahHXBThis module contains the base classes for Simpy's resource system.qbqc}qd(h%h]h&h[ubaubhZ)qe}qf(h%X:class:`BaseResource` defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. :class:`Put` and :class:`Get` are the base event types for this.h&h#h'h^h,h_h.}qg(h0]h1]h2]h3]h6]uh8Kh9hh ]qh(csphinx.addnodes pending_xref qi)qj}qk(h%X:class:`BaseResource`qlh&heh'h*h,U pending_xrefqmh.}qn(UreftypeXclassUrefwarnqoU reftargetqpX BaseResourceU refdomainXpyqqh3]h2]U refexplicith0]h1]h6]UrefdocqrX"api_reference/simpy.resources.baseqsUpy:classqtNU py:modulequXsimpy.resources.baseqvuh8Kh ]qwhB)qx}qy(h%hlh.}qz(h0]h1]q{(Uxrefq|hqXpy-classq}eh2]h3]h6]uh&hjh ]q~hHX BaseResourceqq}q(h%Uh&hxubah,hLubaubhHX defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. qq}q(h%X defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. h&heubhi)q}q(h%X :class:`Put`qh&heh'h*h,hmh.}q(UreftypeXclasshohpXPutU refdomainXpyqh3]h2]U refexplicith0]h1]h6]hrhshtNhuhvuh8Kh ]qhB)q}q(h%hh.}q(h0]h1]q(h|hXpy-classqeh2]h3]h6]uh&hh ]qhHXPutqq}q(h%Uh&hubah,hLubaubhHX and qq}q(h%X and h&heubhi)q}q(h%X :class:`Get`qh&heh'h*h,hmh.}q(UreftypeXclasshohpXGetU refdomainXpyqh3]h2]U refexplicith0]h1]h6]hrhshtNhuhvuh8Kh ]qhB)q}q(h%hh.}q(h0]h1]q(h|hXpy-classqeh2]h3]h6]uh&hh ]qhHXGetqq}q(h%Uh&hubah,hLubaubhHX# are the base event types for this.qq}q(h%X# are the base event types for this.h&heubeubhQ)q}q(h%Uh&h#h'Nh,hUh.}q(h3]h2]h0]h1]h6]Uentries]q(hXX,BaseResource (class in simpy.resources.base)hUtqauh8Nh9hh ]ubcsphinx.addnodes desc q)q}q(h%Uh&h#h'Nh,Udescqh.}q(UnoindexqUdomainqXpyh3]h2]h0]h1]h6]UobjtypeqXclassqUdesctypeqhuh8Nh9hh ]q(csphinx.addnodes desc_signature q)q}q(h%XBaseResource(env)h&hh'U qh,Udesc_signatureqh.}q(h3]qhaUmoduleqh(Xsimpy.resources.baseqq}qbh2]h0]h1]h6]qhaUfullnameqX BaseResourceqUclassqUUfirstqȉuh8Nh9hh ]q(csphinx.addnodes desc_annotation q)q}q(h%Xclass h&hh'hh,Udesc_annotationqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qhHXclass qЅq}q(h%Uh&hubaubcsphinx.addnodes desc_addname q)q}q(h%Xsimpy.resources.base.h&hh'hh,U desc_addnameqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qhHXsimpy.resources.base.qمq}q(h%Uh&hubaubcsphinx.addnodes desc_name q)q}q(h%hh&hh'hh,U desc_nameqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qhHX BaseResourceq⅁q}q(h%Uh&hubaubcsphinx.addnodes desc_parameterlist q)q}q(h%Uh&hh'hh,Udesc_parameterlistqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qcsphinx.addnodes desc_parameter q)q}q(h%Xenvh.}q(h0]h1]h2]h3]h6]uh&hh ]qhHXenvqq}q(h%Uh&hubah,Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(h%Uh&hh'hh,U desc_contentqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]q(hZ)q}q(h%X8This is the abstract base class for all SimPy resources.qh&hh'Xs/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResourceqh,h_h.}q(h0]h1]h2]h3]h6]uh8Kh9hh ]qhHX8This is the abstract base class for all SimPy resources.rr}r(h%hh&hubaubhZ)r}r(h%XMAll resources are bound to a specific :class:`~simpy.core.Environment` *env*.h&hh'hh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX&All resources are bound to a specific rr}r (h%X&All resources are bound to a specific h&jubhi)r }r (h%X :class:`~simpy.core.Environment`r h&jh'h*h,hmh.}r (UreftypeXclasshohpXsimpy.core.EnvironmentU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Kh ]rhB)r}r(h%j h.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&j h ]rhHX Environmentrr}r(h%Uh&jubah,hLubaubhHX r}r(h%X h&jubcdocutils.nodes emphasis r)r}r(h%X*env*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXenvr r!}r"(h%Uh&jubah,Uemphasisr#ubhHX.r$}r%(h%X.h&jubeubhZ)r&}r'(h%XYou can :meth:`put()` something into the resources or :meth:`get()` something out of it. Both methods return an event that the requesting process has to ``yield``.h&hh'hh,h_h.}r((h0]h1]h2]h3]h6]uh8Kh9hh ]r)(hHXYou can r*r+}r,(h%XYou can h&j&ubhi)r-}r.(h%X :meth:`put()`r/h&j&h'h*h,hmh.}r0(UreftypeXmethhohpXputU refdomainXpyr1h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8K h ]r2hB)r3}r4(h%j/h.}r5(h0]h1]r6(h|j1Xpy-methr7eh2]h3]h6]uh&j-h ]r8hHXput()r9r:}r;(h%Uh&j3ubah,hLubaubhHX! something into the resources or r<r=}r>(h%X! something into the resources or h&j&ubhi)r?}r@(h%X :meth:`get()`rAh&j&h'h*h,hmh.}rB(UreftypeXmethhohpXgetU refdomainXpyrCh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8K h ]rDhB)rE}rF(h%jAh.}rG(h0]h1]rH(h|jCXpy-methrIeh2]h3]h6]uh&j?h ]rJhHXget()rKrL}rM(h%Uh&jEubah,hLubaubhHXV something out of it. Both methods return an event that the requesting process has to rNrO}rP(h%XV something out of it. Both methods return an event that the requesting process has to h&j&ubhB)rQ}rR(h%X ``yield``h.}rS(h0]h1]h2]h3]h6]uh&j&h ]rThHXyieldrUrV}rW(h%Uh&jQubah,hLubhHX.rX}rY(h%X.h&j&ubeubhZ)rZ}r[(h%XIf a put or get operation can be performed immediately (because the resource is not full (put) or not empty (get)), that event is triggered immediately.r\h&hh'hh,h_h.}r](h0]h1]h2]h3]h6]uh8K h9hh ]r^hHXIf a put or get operation can be performed immediately (because the resource is not full (put) or not empty (get)), that event is triggered immediately.r_r`}ra(h%j\h&jZubaubhZ)rb}rc(h%XIf a resources is too full or too empty to perform a put or get request, the event is pushed to the *put_queue* or *get_queue*. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.h&hh'hh,h_h.}rd(h0]h1]h2]h3]h6]uh8Kh9hh ]re(hHXdIf a resources is too full or too empty to perform a put or get request, the event is pushed to the rfrg}rh(h%XdIf a resources is too full or too empty to perform a put or get request, the event is pushed to the h&jbubj)ri}rj(h%X *put_queue*h.}rk(h0]h1]h2]h3]h6]uh&jbh ]rlhHX put_queuermrn}ro(h%Uh&jiubah,j#ubhHX or rprq}rr(h%X or h&jbubj)rs}rt(h%X *get_queue*h.}ru(h0]h1]h2]h3]h6]uh&jbh ]rvhHX get_queuerwrx}ry(h%Uh&jsubah,j#ubhHXo. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.rzr{}r|(h%Xo. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.h&jbubeubhZ)r}}r~(h%X:meth:`put()` and :meth:`get()` only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in :meth:`_do_put()` and :meth:`_do_get()`.h&hh'hh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hi)r}r(h%X :meth:`put()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpXputU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHXput()rr}r(h%Uh&jubah,hLubaubhHX and rr}r(h%X and h&j}ubhi)r}r(h%X :meth:`get()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpXgetU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHXget()rr}r(h%Uh&jubah,hLubaubhHX only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in rr}r(h%X only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in h&j}ubhi)r}r(h%X:meth:`_do_put()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpX_do_putU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHX _do_put()rr}r(h%Uh&jubah,hLubaubhHX and rr}r(h%X and h&j}ubhi)r}r(h%X:meth:`_do_get()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpX_do_getU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHX _do_get()rr}r(h%Uh&jubah,hLubaubhHX.r}r(h%X.h&j}ubeubhQ)r}r(h%Uh&hh'Uh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX6PutQueue (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'Uh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.PutQueueh&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.PutQueuehhhȉuh8Nh9hh ]rh)r}r(h%XPutQueueh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXPutQueuerr}r(h%Uh&jubaubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%XvThe type to be used for the :attr:`put_queue`. This can either be a plain :class:`list` (default) or a subclass of it.h&jh'X|/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.PutQueuerh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXThe type to be used for the rr}r(h%XThe type to be used for the h&jubhi)r}r(h%X:attr:`put_queue`rh&jh'Nh,hmh.}r(UreftypeXattrhohpX put_queueU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-attrreh2]h3]h6]uh&jh ]rhHX put_queuerr}r(h%Uh&jubah,hLubaubhHX. This can either be a plain rr}r(h%X. This can either be a plain h&jubhi)r}r(h%X :class:`list`rh&jh'Nh,hmh.}r(UreftypeXclasshohpXlistU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r (h|jXpy-classr eh2]h3]h6]uh&jh ]r hHXlistr r }r(h%Uh&jubah,hLubaubhHX (default) or a subclass of it.rr}r(h%X (default) or a subclass of it.h&jubeubhZ)r}r(h%Xalias of :class:`list`h&jh'Uh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX alias of rr}r(h%X alias of h&jubhi)r}r(h%X :class:`list`rh&jh'Nh,hmh.}r(UreftypeXclasshohpXlistU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r (h%jh.}r!(h0]h1]r"(h|jXpy-classr#eh2]h3]h6]uh&jh ]r$hHXlistr%r&}r'(h%Uh&jubah,hLubaubeubeubeubhQ)r(}r)(h%Uh&hh'Uh,hUh.}r*(h3]h2]h0]h1]h6]Uentries]r+(hXX6GetQueue (simpy.resources.base.BaseResource attribute)h Utr,auh8Nh9hh ]ubh)r-}r.(h%Uh&hh'Uh,hh.}r/(hhXpyh3]h2]h0]h1]h6]hX attributer0hj0uh8Nh9hh ]r1(h)r2}r3(h%XBaseResource.GetQueueh&j-h'hh,hh.}r4(h3]r5h ahh(Xsimpy.resources.baser6r7}r8bh2]h0]h1]h6]r9h ahXBaseResource.GetQueuehhhȉuh8Nh9hh ]r:h)r;}r<(h%XGetQueueh&j2h'hh,hh.}r=(h0]h1]h2]h3]h6]uh8Nh9hh ]r>hHXGetQueuer?r@}rA(h%Uh&j;ubaubaubh)rB}rC(h%Uh&j-h'hh,hh.}rD(h0]h1]h2]h3]h6]uh8Nh9hh ]rE(hZ)rF}rG(h%XvThe type to be used for the :attr:`get_queue`. This can either be a plain :class:`list` (default) or a subclass of it.h&jBh'X|/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.GetQueuerHh,h_h.}rI(h0]h1]h2]h3]h6]uh8Kh9hh ]rJ(hHXThe type to be used for the rKrL}rM(h%XThe type to be used for the h&jFubhi)rN}rO(h%X:attr:`get_queue`rPh&jFh'Nh,hmh.}rQ(UreftypeXattrhohpX get_queueU refdomainXpyrRh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rShB)rT}rU(h%jPh.}rV(h0]h1]rW(h|jRXpy-attrrXeh2]h3]h6]uh&jNh ]rYhHX get_queuerZr[}r\(h%Uh&jTubah,hLubaubhHX. This can either be a plain r]r^}r_(h%X. This can either be a plain h&jFubhi)r`}ra(h%X :class:`list`rbh&jFh'Nh,hmh.}rc(UreftypeXclasshohpXlistU refdomainXpyrdh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rehB)rf}rg(h%jbh.}rh(h0]h1]ri(h|jdXpy-classrjeh2]h3]h6]uh&j`h ]rkhHXlistrlrm}rn(h%Uh&jfubah,hLubaubhHX (default) or a subclass of it.rorp}rq(h%X (default) or a subclass of it.h&jFubeubhZ)rr}rs(h%Xalias of :class:`list`h&jBh'Uh,h_h.}rt(h0]h1]h2]h3]h6]uh8Kh9hh ]ru(hHX alias of rvrw}rx(h%X alias of h&jrubhi)ry}rz(h%X :class:`list`r{h&jrh'Nh,hmh.}r|(UreftypeXclasshohpXlistU refdomainXpyr}h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]r~hB)r}r(h%j{h.}r(h0]h1]r(h|j}Xpy-classreh2]h3]h6]uh&jyh ]rhHXlistrr}r(h%Uh&jubah,hLubaubeubeubeubhQ)r}r(h%Uh&hh'X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.put_queuerh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX7put_queue (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.put_queueh&jh'U rh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.put_queuehhhȉuh8Nh9hh ]r(h)r}r(h%X put_queueh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX put_queuerr}r(h%Uh&jubaubh)r}r(h%X = Noneh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX = Nonerr}r(h%Uh&jubaubeubh)r}r(h%Uh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhZ)r}r(h%XBQueue/list of events waiting to get something out of the resource.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHXBQueue/list of events waiting to get something out of the resource.rr}r(h%jh&jubaubaubeubhQ)r}r(h%Uh&hh'X}/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.get_queuerh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX7get_queue (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.get_queueh&jh'jh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.get_queuehhhȉuh8Nh9hh ]r(h)r}r(h%X get_queueh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX get_queuerr}r(h%Uh&jubaubh)r}r(h%X = Noneh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX = Nonerr}r(h%Uh&jubaubeubh)r}r(h%Uh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhZ)r}r(h%X@Queue/list of events waiting to put something into the resource.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX@Queue/list of events waiting to put something into the resource.rr}r(h%jh&jubaubaubeubhQ)r}r(h%Uh&hh'Uh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX1put (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'Uh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.puth&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.puthhhȉuh8Nh9hh ]rh)r}r(h%Xputh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXputrr}r(h%Uh&jubaubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X Create a new :class:`Put` event.h&jh'Xw/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.putrh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX Create a new rr }r (h%X Create a new h&jubhi)r }r (h%X :class:`Put`r h&jh'Nh,hmh.}r(UreftypeXclasshohpXPutU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%j h.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&j h ]rhHXPutrr}r(h%Uh&jubah,hLubaubhHX event.rr}r(h%X event.h&jubeubhZ)r}r(h%Xalias of :class:`Put`h&jh'Uh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r (hHX alias of r!r"}r#(h%X alias of h&jubhi)r$}r%(h%X :class:`Put`r&h&jh'Nh,hmh.}r'(UreftypeXclasshohpXPutU refdomainXpyr(h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]r)hB)r*}r+(h%j&h.}r,(h0]h1]r-(h|j(Xpy-classr.eh2]h3]h6]uh&j$h ]r/hHXPutr0r1}r2(h%Uh&j*ubah,hLubaubeubeubeubhQ)r3}r4(h%Uh&hh'Uh,hUh.}r5(h3]h2]h0]h1]h6]Uentries]r6(hXX1get (simpy.resources.base.BaseResource attribute)hUtr7auh8Nh9hh ]ubh)r8}r9(h%Uh&hh'Uh,hh.}r:(hhXpyh3]h2]h0]h1]h6]hX attributer;hj;uh8Nh9hh ]r<(h)r=}r>(h%XBaseResource.geth&j8h'hh,hh.}r?(h3]r@hahh(Xsimpy.resources.baserArB}rCbh2]h0]h1]h6]rDhahXBaseResource.gethhhȉuh8Nh9hh ]rEh)rF}rG(h%Xgeth&j=h'hh,hh.}rH(h0]h1]h2]h3]h6]uh8Nh9hh ]rIhHXgetrJrK}rL(h%Uh&jFubaubaubh)rM}rN(h%Uh&j8h'hh,hh.}rO(h0]h1]h2]h3]h6]uh8Nh9hh ]rP(hZ)rQ}rR(h%X Create a new :class:`Get` event.h&jMh'Xw/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.getrSh,h_h.}rT(h0]h1]h2]h3]h6]uh8Kh9hh ]rU(hHX Create a new rVrW}rX(h%X Create a new h&jQubhi)rY}rZ(h%X :class:`Get`r[h&jQh'Nh,hmh.}r\(UreftypeXclasshohpXGetU refdomainXpyr]h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]r^hB)r_}r`(h%j[h.}ra(h0]h1]rb(h|j]Xpy-classrceh2]h3]h6]uh&jYh ]rdhHXGetrerf}rg(h%Uh&j_ubah,hLubaubhHX event.rhri}rj(h%X event.h&jQubeubhZ)rk}rl(h%Xalias of :class:`Get`h&jMh'Uh,h_h.}rm(h0]h1]h2]h3]h6]uh8Kh9hh ]rn(hHX alias of rorp}rq(h%X alias of h&jkubhi)rr}rs(h%X :class:`Get`rth&jkh'Nh,hmh.}ru(UreftypeXclasshohpXGetU refdomainXpyrvh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rwhB)rx}ry(h%jth.}rz(h0]h1]r{(h|jvXpy-classr|eh2]h3]h6]uh&jrh ]r}hHXGetr~r}r(h%Uh&jxubah,hLubaubeubeubeubhQ)r}r(h%Uh&hh'X{/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._do_putrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX4_do_put() (simpy.resources.base.BaseResource method)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%XBaseResource._do_put(event)h&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource._do_puthhhȉuh8Nh9hh ]r(h)r}r(h%X_do_puth&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX_do_putrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xeventh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXeventrr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X%Actually perform the *put* operation.h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXActually perform the rr}r(h%XActually perform the h&jubj)r}r(h%X*put*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXputrr}r(h%Uh&jubah,j#ubhHX operation.rr}r(h%X operation.h&jubeubhZ)r}r(h%XThis methods needs to be implemented by subclasses. It receives the *put_event* that is created at each request and doesn't need to return anything.h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXDThis methods needs to be implemented by subclasses. It receives the rr}r(h%XDThis methods needs to be implemented by subclasses. It receives the h&jubj)r}r(h%X *put_event*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHX put_eventrr}r(h%Uh&jubah,j#ubhHXE that is created at each request and doesn't need to return anything.rr}r(h%XE that is created at each request and doesn't need to return anything.h&jubeubeubeubhQ)r}r(h%Uh&hh'X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._trigger_putrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX9_trigger_put() (simpy.resources.base.BaseResource method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%X$BaseResource._trigger_put(get_event)h&jh'hh,hh.}r(h3]rh ahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rh ahXBaseResource._trigger_puthhhȉuh8Nh9hh ]r(h)r}r(h%X _trigger_puth&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX _trigger_putrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%X get_eventh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHX get_eventrr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhZ)r}r(h%X?Trigger pending put events after a get event has been executed.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX?Trigger pending put events after a get event has been executed.rr}r(h%jh&jubaubaubeubhQ)r}r(h%Uh&hh'X{/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._do_getrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX4_do_get() (simpy.resources.base.BaseResource method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r (h)r }r (h%XBaseResource._do_get(event)h&jh'hh,hh.}r (h3]r h ahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rh ahXBaseResource._do_gethhhȉuh8Nh9hh ]r(h)r}r(h%X_do_geth&j h'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX_do_getrr}r(h%Uh&jubaubh)r}r(h%Uh&j h'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xeventh.}r (h0]h1]h2]h3]h6]uh&jh ]r!hHXeventr"r#}r$(h%Uh&jubah,hubaubeubh)r%}r&(h%Uh&jh'hh,hh.}r'(h0]h1]h2]h3]h6]uh8Nh9hh ]r((hZ)r)}r*(h%X%Actually perform the *get* operation.h&j%h'jh,h_h.}r+(h0]h1]h2]h3]h6]uh8Kh9hh ]r,(hHXActually perform the r-r.}r/(h%XActually perform the h&j)ubj)r0}r1(h%X*get*h.}r2(h0]h1]h2]h3]h6]uh&j)h ]r3hHXgetr4r5}r6(h%Uh&j0ubah,j#ubhHX operation.r7r8}r9(h%X operation.h&j)ubeubhZ)r:}r;(h%XThis methods needs to be implemented by subclasses. It receives the *get_event* that is created at each request and doesn't need to return anything.h&j%h'jh,h_h.}r<(h0]h1]h2]h3]h6]uh8Kh9hh ]r=(hHXDThis methods needs to be implemented by subclasses. It receives the r>r?}r@(h%XDThis methods needs to be implemented by subclasses. It receives the h&j:ubj)rA}rB(h%X *get_event*h.}rC(h0]h1]h2]h3]h6]uh&j:h ]rDhHX get_eventrErF}rG(h%Uh&jAubah,j#ubhHXE that is created at each request and doesn't need to return anything.rHrI}rJ(h%XE that is created at each request and doesn't need to return anything.h&j:ubeubeubeubhQ)rK}rL(h%Uh&hh'X/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._trigger_getrMh,hUh.}rN(h3]h2]h0]h1]h6]Uentries]rO(hXX9_trigger_get() (simpy.resources.base.BaseResource method)hUtrPauh8Nh9hh ]ubh)rQ}rR(h%Uh&hh'jMh,hh.}rS(hhXpyh3]h2]h0]h1]h6]hXmethodrThjTuh8Nh9hh ]rU(h)rV}rW(h%X$BaseResource._trigger_get(put_event)h&jQh'hh,hh.}rX(h3]rYhahh(Xsimpy.resources.baserZr[}r\bh2]h0]h1]h6]r]hahXBaseResource._trigger_gethhhȉuh8Nh9hh ]r^(h)r_}r`(h%X _trigger_geth&jVh'hh,hh.}ra(h0]h1]h2]h3]h6]uh8Nh9hh ]rbhHX _trigger_getrcrd}re(h%Uh&j_ubaubh)rf}rg(h%Uh&jVh'hh,hh.}rh(h0]h1]h2]h3]h6]uh8Nh9hh ]rih)rj}rk(h%X put_eventh.}rl(h0]h1]h2]h3]h6]uh&jfh ]rmhHX put_eventrnro}rp(h%Uh&jjubah,hubaubeubh)rq}rr(h%Uh&jQh'hh,hh.}rs(h0]h1]h2]h3]h6]uh8Nh9hh ]rthZ)ru}rv(h%X?Trigger pending get events after a put event has been executed.rwh&jqh'jMh,h_h.}rx(h0]h1]h2]h3]h6]uh8Kh9hh ]ryhHX?Trigger pending get events after a put event has been executed.rzr{}r|(h%jwh&juubaubaubeubeubeubhQ)r}}r~(h%Uh&h#h'Nh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX#Put (class in simpy.resources.base)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&h#h'Nh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXclassrhjuh8Nh9hh ]r(h)r}r(h%X Put(resource)h&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXPutrhUhȉuh8Nh9hh ]r(h)r}r(h%Xclass h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXclass rr}r(h%Uh&jubaubh)r}r(h%Xsimpy.resources.base.h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXsimpy.resources.base.rr}r(h%Uh&jubaubh)r}r(h%jh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXPutrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xresourceh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X"The base class for all put events.rh&jh'Xj/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.Putrh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX"The base class for all put events.rr}r(h%jh&jubaubhZ)r}r(h%X2It receives the *resource* that created the event.h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXIt receives the rr}r(h%XIt receives the h&jubj)r}r(h%X *resource*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,j#ubhHX that created the event.rr}r(h%X that created the event.h&jubeubhZ)r}r(h%XThis event (and all of its subclasses) can act as context manager and can be used with the :keyword:`with` statement to automatically cancel a put request if an exception or an :class:`simpy.events.Interrupt` occurs:h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX[This event (and all of its subclasses) can act as context manager and can be used with the rr}r(h%X[This event (and all of its subclasses) can act as context manager and can be used with the h&jubhi)r}r(h%X:keyword:`with`rh&jh'h*h,hmh.}r(UreftypeXkeywordhohpXwithU refdomainXstdrh3]h2]U refexplicith0]h1]h6]hrhsuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jX std-keywordreh2]h3]h6]uh&jh ]rhHXwithrr}r(h%Uh&jubah,hLubaubhHXG statement to automatically cancel a put request if an exception or an rr}r(h%XG statement to automatically cancel a put request if an exception or an h&jubhi)r}r(h%X:class:`simpy.events.Interrupt`rh&jh'h*h,hmh.}r(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&jh ]rhHXsimpy.events.Interruptrr}r(h%Uh&jubah,hLubaubhHX occurs:rr}r(h%X occurs:h&jubeubcdocutils.nodes literal_block r)r}r(h%X0with res.put(item) as request: yield requesth&jh'jh,U literal_blockrh.}r(UlinenosrUlanguagerXpythonU xml:spacerUpreserverh3]h2]h0]h1]h6]uh8K h9hh ]rhHX0with res.put(item) as request: yield requestrr}r(h%Uh&jubaubhZ)r}r(h%XNIt is not used directly by any resource, but rather sub-classed for each type.r h&jh'jh,h_h.}r (h0]h1]h2]h3]h6]uh8Kh9hh ]r hHXNIt is not used directly by any resource, but rather sub-classed for each type.r r }r(h%j h&jubaubhQ)r}r(h%Uh&jh'Xq/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.Put.cancelrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX*cancel() (simpy.resources.base.Put method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&jh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%X*Put.cancel(exc_type, exc_value, traceback)h&jh'hh,hh.}r(h3]rh ahh(Xsimpy.resources.baserr}r bh2]h0]h1]h6]r!h ahX Put.cancelhjhȉuh8Nh9hh ]r"(h)r#}r$(h%Xcancelh&jh'hh,hh.}r%(h0]h1]h2]h3]h6]uh8Nh9hh ]r&hHXcancelr'r(}r)(h%Uh&j#ubaubh)r*}r+(h%Uh&jh'hh,hh.}r,(h0]h1]h2]h3]h6]uh8Nh9hh ]r-(h)r.}r/(h%Xexc_typeh.}r0(h0]h1]h2]h3]h6]uh&j*h ]r1hHXexc_typer2r3}r4(h%Uh&j.ubah,hubh)r5}r6(h%X exc_valueh.}r7(h0]h1]h2]h3]h6]uh&j*h ]r8hHX exc_valuer9r:}r;(h%Uh&j5ubah,hubh)r<}r=(h%X tracebackh.}r>(h0]h1]h2]h3]h6]uh&j*h ]r?hHX tracebackr@rA}rB(h%Uh&j<ubah,hubeubeubh)rC}rD(h%Uh&jh'hh,hh.}rE(h0]h1]h2]h3]h6]uh8Nh9hh ]rF(hZ)rG}rH(h%XCancel the current put request.rIh&jCh'jh,h_h.}rJ(h0]h1]h2]h3]h6]uh8Kh9hh ]rKhHXCancel the current put request.rLrM}rN(h%jIh&jGubaubhZ)rO}rP(h%XThis method has to be called if a process received an :class:`~simpy.events.Interrupt` or an exception while yielding this event and is not going to yield this event again.h&jCh'jh,h_h.}rQ(h0]h1]h2]h3]h6]uh8Kh9hh ]rR(hHX6This method has to be called if a process received an rSrT}rU(h%X6This method has to be called if a process received an h&jOubhi)rV}rW(h%X :class:`~simpy.events.Interrupt`rXh&jOh'Nh,hmh.}rY(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrZh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8Nh ]r[hB)r\}r](h%jXh.}r^(h0]h1]r_(h|jZXpy-classr`eh2]h3]h6]uh&jVh ]rahHX Interruptrbrc}rd(h%Uh&j\ubah,hLubaubhHXV or an exception while yielding this event and is not going to yield this event again.rerf}rg(h%XV or an exception while yielding this event and is not going to yield this event again.h&jOubeubhZ)rh}ri(h%X]If the event was created in a :keyword:`with` statement, this method is called automatically.h&jCh'jh,h_h.}rj(h0]h1]h2]h3]h6]uh8Kh9hh ]rk(hHXIf the event was created in a rlrm}rn(h%XIf the event was created in a h&jhubhi)ro}rp(h%X:keyword:`with`rqh&jhh'Nh,hmh.}rr(UreftypeXkeywordhohpXwithU refdomainXstdrsh3]h2]U refexplicith0]h1]h6]hrhsuh8Nh ]rthB)ru}rv(h%jqh.}rw(h0]h1]rx(h|jsX std-keywordryeh2]h3]h6]uh&joh ]rzhHXwithr{r|}r}(h%Uh&juubah,hLubaubhHX0 statement, this method is called automatically.r~r}r(h%X0 statement, this method is called automatically.h&jhubeubeubeubeubeubhQ)r}r(h%Uh&h#h'Nh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX#Get (class in simpy.resources.base)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&h#h'Nh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXclassrhjuh8Nh9hh ]r(h)r}r(h%X Get(resource)rh&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXGetrhUhȉuh8Nh9hh ]r(h)r}r(h%Xclass h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXclass rr}r(h%Uh&jubaubh)r}r(h%Xsimpy.resources.base.h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXsimpy.resources.base.rr}r(h%Uh&jubaubh)r}r(h%jh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXGetrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xresourceh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X"The base class for all get events.rh&jh'Xj/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.Getrh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX"The base class for all get events.rr}r(h%jh&jubaubhZ)r}r(h%X2It receives the *resource* that created the event.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXIt receives the rr}r(h%XIt receives the h&jubj)r}r(h%X *resource*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,j#ubhHX that created the event.rr}r(h%X that created the event.h&jubeubhZ)r}r(h%XThis event (and all of its subclasses) can act as context manager and can be used with the :keyword:`with` statement to automatically cancel a get request if an exception or an :class:`simpy.events.Interrupt` occurs:h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX[This event (and all of its subclasses) can act as context manager and can be used with the rr}r(h%X[This event (and all of its subclasses) can act as context manager and can be used with the h&jubhi)r}r(h%X:keyword:`with`rh&jh'h*h,hmh.}r(UreftypeXkeywordhohpXwithU refdomainXstdrh3]h2]U refexplicith0]h1]h6]hrhsuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jX std-keywordreh2]h3]h6]uh&jh ]rhHXwithrr}r(h%Uh&jubah,hLubaubhHXG statement to automatically cancel a get request if an exception or an rr}r(h%XG statement to automatically cancel a get request if an exception or an h&jubhi)r}r(h%X:class:`simpy.events.Interrupt`rh&jh'h*h,hmh.}r(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&jh ]rhHXsimpy.events.Interruptrr}r(h%Uh&jubah,hLubaubhHX occurs:rr}r(h%X occurs:h&jubeubj)r}r(h%X,with res.get() as request: yield requesth&jh'jh,jh.}r(jjXpythonjjh3]h2]h0]h1]h6]uh8K h9hh ]rhHX,with res.get() as request: yield requestrr}r(h%Uh&jubaubhZ)r}r(h%XNIt is not used directly by any resource, but rather sub-classed for each type.r h&jh'jh,h_h.}r (h0]h1]h2]h3]h6]uh8Kh9hh ]r hHXNIt is not used directly by any resource, but rather sub-classed for each type.r r }r(h%j h&jubaubhQ)r}r(h%Uh&jh'Xq/var/build/user_builds/simpy/checkouts/3.0.4/simpy/resources/base.py:docstring of simpy.resources.base.Get.cancelrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX*cancel() (simpy.resources.base.Get method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&jh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%X*Get.cancel(exc_type, exc_value, traceback)h&jh'hh,hh.}r(h3]rh ahh(Xsimpy.resources.baserr}r bh2]h0]h1]h6]r!h ahX Get.cancelhjhȉuh8Nh9hh ]r"(h)r#}r$(h%Xcancelh&jh'hh,hh.}r%(h0]h1]h2]h3]h6]uh8Nh9hh ]r&hHXcancelr'r(}r)(h%Uh&j#ubaubh)r*}r+(h%Uh&jh'hh,hh.}r,(h0]h1]h2]h3]h6]uh8Nh9hh ]r-(h)r.}r/(h%Xexc_typeh.}r0(h0]h1]h2]h3]h6]uh&j*h ]r1hHXexc_typer2r3}r4(h%Uh&j.ubah,hubh)r5}r6(h%X exc_valueh.}r7(h0]h1]h2]h3]h6]uh&j*h ]r8hHX exc_valuer9r:}r;(h%Uh&j5ubah,hubh)r<}r=(h%X tracebackh.}r>(h0]h1]h2]h3]h6]uh&j*h ]r?hHX tracebackr@rA}rB(h%Uh&j<ubah,hubeubeubh)rC}rD(h%Uh&jh'hh,hh.}rE(h0]h1]h2]h3]h6]uh8Nh9hh ]rF(hZ)rG}rH(h%XCancel the current get request.rIh&jCh'jh,h_h.}rJ(h0]h1]h2]h3]h6]uh8Kh9hh ]rKhHXCancel the current get request.rLrM}rN(h%jIh&jGubaubhZ)rO}rP(h%XThis method has to be called if a process received an :class:`~simpy.events.Interrupt` or an exception while yielding this event and is not going to yield this event again.h&jCh'jh,h_h.}rQ(h0]h1]h2]h3]h6]uh8Kh9hh ]rR(hHX6This method has to be called if a process received an rSrT}rU(h%X6This method has to be called if a process received an h&jOubhi)rV}rW(h%X :class:`~simpy.events.Interrupt`rXh&jOh'Nh,hmh.}rY(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrZh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8Nh ]r[hB)r\}r](h%jXh.}r^(h0]h1]r_(h|jZXpy-classr`eh2]h3]h6]uh&jVh ]rahHX Interruptrbrc}rd(h%Uh&j\ubah,hLubaubhHXV or an exception while yielding this event and is not going to yield this event again.rerf}rg(h%XV or an exception while yielding this event and is not going to yield this event again.h&jOubeubhZ)rh}ri(h%X]If the event was created in a :keyword:`with` statement, this method is called automatically.h&jCh'jh,h_h.}rj(h0]h1]h2]h3]h6]uh8Kh9hh ]rk(hHXIf the event was created in a rlrm}rn(h%XIf the event was created in a h&jhubhi)ro}rp(h%X:keyword:`with`rqh&jhh'Nh,hmh.}rr(UreftypeXkeywordhohpXwithU refdomainXstdrsh3]h2]U refexplicith0]h1]h6]hrhsuh8Nh ]rthB)ru}rv(h%jqh.}rw(h0]h1]rx(h|jsX std-keywordryeh2]h3]h6]uh&joh ]rzhHXwithr{r|}r}(h%Uh&juubah,hLubaubhHX0 statement, this method is called automatically.r~r}r(h%X0 statement, this method is called automatically.h&jhubeubeubeubeubeubeubah%UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh9hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh?NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUX/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.resources.base.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hh#h5cdocutils.nodes target r)r}r(h%Uh&h#h'hTh,Utargetrh.}r(h0]h3]rh5ah2]Uismodh1]h6]uh8Kh9hh ]ubhjhjhjVh jh j2h jh jh j hjhjhjhj=hhhjhjuUsubstitution_namesr}rh,h9h.}r(h0]h3]h2]Usourceh*h1]h6]uU footnotesr]rUrefidsr}rub.PK@D7 <simpy-3.0.4/.doctrees/api_reference/simpy.monitoring.doctreecdocutils.nodes document q)q}q(U nametypesq}qX.simpy.monitoring --- monitor simpy simulationsqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU*simpy-monitoring-monitor-simpy-simulationsqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXT/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.monitoring.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%(Xmodule-simpy.monitoringq&heUnamesq']q(hauUlineq)KUdocumentq*hh]q+(cdocutils.nodes title q,)q-}q.(hX2``simpy.monitoring`` --- Monitor SimPy simulationsq/hhhhhUtitleq0h}q1(h!]h"]h#]h$]h']uh)Kh*hh]q2(cdocutils.nodes literal q3)q4}q5(hX``simpy.monitoring``q6h}q7(h!]h"]h#]h$]h']uhh-h]q8cdocutils.nodes Text q9Xsimpy.monitoringq:q;}q<(hUhh4ubahUliteralq=ubh9X --- Monitor SimPy simulationsq>q?}q@(hX --- Monitor SimPy simulationsqAhh-ubeubcsphinx.addnodes index qB)qC}qD(hUhhhU qEhUindexqFh}qG(h$]h#]h!]h"]h']Uentries]qH(UsingleqIXsimpy.monitoring (module)Xmodule-simpy.monitoringUtqJauh)Kh*hh]ubcdocutils.nodes paragraph qK)qL}qM(hX=SimPy's monitoring capabilities will be added in version 3.1.qNhhhX^/var/build/user_builds/simpy/checkouts/3.0.4/simpy/monitoring.py:docstring of simpy.monitoringqOhU paragraphqPh}qQ(h!]h"]h#]h$]h']uh)Kh*hh]qRh9X=SimPy's monitoring capabilities will be added in version 3.1.qSqT}qU(hhNhhLubaubeubahUU transformerqVNU footnote_refsqW}qXUrefnamesqY}qZUsymbol_footnotesq[]q\Uautofootnote_refsq]]q^Usymbol_footnote_refsq_]q`U citationsqa]qbh*hU current_lineqcNUtransform_messagesqd]qeUreporterqfNUid_startqgKU autofootnotesqh]qiU citation_refsqj}qkUindirect_targetsql]qmUsettingsqn(cdocutils.frontend Values qooqp}qq(Ufootnote_backlinksqrKUrecord_dependenciesqsNU rfc_base_urlqtUhttp://tools.ietf.org/html/quU tracebackqvUpep_referencesqwNUstrip_commentsqxNU toc_backlinksqyUentryqzU language_codeq{Uenq|U datestampq}NU report_levelq~KU _destinationqNU halt_levelqKU strip_classesqNh0NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUT/var/build/user_builds/simpy/checkouts/3.0.4/docs/api_reference/simpy.monitoring.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}q(h&cdocutils.nodes target q)q}q(hUhhhhEhUtargetqh}q(h!]h$]qh&ah#]Uismodh"]h']uh)Kh*hh]ubhhuUsubstitution_namesq}qhh*h}q(h!]h$]h#]Usourcehh"]h']uU footnotesq]qUrefidsq}qub.PK@D[kKK@simpy-3.0.4/.doctrees/topical_guides/porting_from_simpy2.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xporting_from_simpy2qX bitbucketqXimportsqNX interruptsq NXsimpy keywords (hold etc.)q NXdefining a processq NXporting from simpy 2 to 3q NXthe simulation* classesq NX conclusionqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUporting-from-simpy2qhU bitbucketqhUimportsqh U interruptsqh Usimpy-keywords-hold-etcqh Udefining-a-processqh Uporting-from-simpy-2-to-3qh Uthe-simulation-classesqhU conclusionq uUchildrenq!]q"(cdocutils.nodes target q#)q$}q%(U rawsourceq&X.. _porting_from_simpy2:Uparentq'hUsourceq(cdocutils.nodes reprunicode q)XX/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/porting_from_simpy2.rstq*q+}q,bUtagnameq-Utargetq.U attributesq/}q0(Uidsq1]Ubackrefsq2]Udupnamesq3]Uclassesq4]Unamesq5]Urefidq6huUlineq7KUdocumentq8hh!]ubcdocutils.nodes section q9)q:}q;(h&Uh'hh(h+Uexpect_referenced_by_nameq<}q=hh$sh-Usectionq>h/}q?(h3]h4]h2]h1]q@(hheh5]qA(h heuh7Kh8hUexpect_referenced_by_idqB}qChh$sh!]qD(cdocutils.nodes title qE)qF}qG(h&XPorting from SimPy 2 to 3qHh'h:h(h+h-UtitleqIh/}qJ(h3]h4]h2]h1]h5]uh7Kh8hh!]qKcdocutils.nodes Text qLXPorting from SimPy 2 to 3qMqN}qO(h&hHh'hFubaubcdocutils.nodes paragraph qP)qQ}qR(h&XgPorting from SimPy 2 to SimPy 3 is not overly complicated. A lot of changes merely comprise copy/paste.qSh'h:h(h+h-U paragraphqTh/}qU(h3]h4]h2]h1]h5]uh7Kh8hh!]qVhLXgPorting from SimPy 2 to SimPy 3 is not overly complicated. A lot of changes merely comprise copy/paste.qWqX}qY(h&hSh'hQubaubhP)qZ}q[(h&XThis guide describes the conceptual and API changes between both SimPy versions and shows you how to change your code for SimPy 3.q\h'h:h(h+h-hTh/}q](h3]h4]h2]h1]h5]uh7K h8hh!]q^hLXThis guide describes the conceptual and API changes between both SimPy versions and shows you how to change your code for SimPy 3.q_q`}qa(h&h\h'hZubaubh9)qb}qc(h&Uh'h:h(h+h-h>h/}qd(h3]h4]h2]h1]qehah5]qfhauh7Kh8hh!]qg(hE)qh}qi(h&XImportsqjh'hbh(h+h-hIh/}qk(h3]h4]h2]h1]h5]uh7Kh8hh!]qlhLXImportsqmqn}qo(h&hjh'hhubaubhP)qp}qq(h&X\In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (``SimPy.Simulation``), a real-time simulation (``SimPy.SimulationRT``) or something else. You usually had to import ``Simulation`` (or ``SimulationRT``), ``Process`` and some of the SimPy keywords (``hold`` or ``passivate``, for example) from that package.h'hbh(h+h-hTh/}qr(h3]h4]h2]h1]h5]uh7Kh8hh!]qs(hLX\In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (qtqu}qv(h&X\In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (h'hpubcdocutils.nodes literal qw)qx}qy(h&X``SimPy.Simulation``h/}qz(h3]h4]h2]h1]h5]uh'hph!]q{hLXSimPy.Simulationq|q}}q~(h&Uh'hxubah-UliteralqubhLX), a real-time simulation (qq}q(h&X), a real-time simulation (h'hpubhw)q}q(h&X``SimPy.SimulationRT``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLXSimPy.SimulationRTqq}q(h&Uh'hubah-hubhLX/) or something else. You usually had to import qq}q(h&X/) or something else. You usually had to import h'hpubhw)q}q(h&X``Simulation``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLX Simulationqq}q(h&Uh'hubah-hubhLX (or qq}q(h&X (or h'hpubhw)q}q(h&X``SimulationRT``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLX SimulationRTqq}q(h&Uh'hubah-hubhLX), qq}q(h&X), h'hpubhw)q}q(h&X ``Process``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLXProcessqq}q(h&Uh'hubah-hubhLX! and some of the SimPy keywords (qq}q(h&X! and some of the SimPy keywords (h'hpubhw)q}q(h&X``hold``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLXholdqq}q(h&Uh'hubah-hubhLX or qq}q(h&X or h'hpubhw)q}q(h&X ``passivate``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLX passivateqq}q(h&Uh'hubah-hubhLX!, for example) from that package.qq}q(h&X!, for example) from that package.h'hpubeubhP)q}q(h&XIn SimPy 3, you usually need to import much less classes and modules (e.g., you don't need direct access to :class:`~simpy.events.Process` and the SimPy keywords anymore). In most use cases you will now only need to import :mod:`simpy`.h'hbh(h+h-hTh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]q(hLXlIn SimPy 3, you usually need to import much less classes and modules (e.g., you don't need direct access to qÅq}q(h&XlIn SimPy 3, you usually need to import much less classes and modules (e.g., you don't need direct access to h'hubcsphinx.addnodes pending_xref q)q}q(h&X:class:`~simpy.events.Process`qh'hh(h+h-U pending_xrefqh/}q(UreftypeXclassUrefwarnq̉U reftargetqXsimpy.events.ProcessU refdomainXpyqh1]h2]U refexplicith3]h4]h5]UrefdocqX"topical_guides/porting_from_simpy2qUpy:classqNU py:moduleqNuh7Kh!]qhw)q}q(h&hh/}q(h3]h4]q(UxrefqhXpy-classqeh2]h1]h5]uh'hh!]qhLXProcessqۅq}q(h&Uh'hubah-hubaubhLXU and the SimPy keywords anymore). In most use cases you will now only need to import qޅq}q(h&XU and the SimPy keywords anymore). In most use cases you will now only need to import h'hubh)q}q(h&X :mod:`simpy`qh'hh(h+h-hh/}q(UreftypeXmodh̉hXsimpyU refdomainXpyqh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]qhw)q}q(h&hh/}q(h3]h4]q(hhXpy-modqeh2]h1]h5]uh'hh!]qhLXsimpyq텁q}q(h&Uh'hubah-hubaubhLX.q}q(h&X.h'hubeubhP)q}q(h&X **SimPy 2**qh'hbh(h+h-hTh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qcdocutils.nodes strong q)q}q(h&hh/}q(h3]h4]h2]h1]h5]uh'hh!]qhLXSimPy 2qq}q(h&Uh'hubah-Ustrongqubaubcdocutils.nodes literal_block r)r}r(h&X6from Simpy.Simulation import Simulation, Process, holdh'hbh(h+h-U literal_blockrh/}r(UlinenosrUlanguagerXpythonU xml:spacerUpreserverh1]h2]h3]h4]h5]uh7K h8hh!]r hLX6from Simpy.Simulation import Simulation, Process, holdr r }r (h&Uh'jubaubhP)r }r(h&X **SimPy 3**rh'hbh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7K%h8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'j h!]rhLXSimPy 3rr}r(h&Uh'jubah-hubaubj)r}r(h&X import simpyh'hbh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7K'h8hh!]rhLX import simpyrr}r(h&Uh'jubaubeubh9)r }r!(h&Uh'h:h(h+h-h>h/}r"(h3]h4]h2]h1]r#hah5]r$h auh7K-h8hh!]r%(hE)r&}r'(h&XThe ``Simulation*`` classesr(h'j h(h+h-hIh/}r)(h3]h4]h2]h1]h5]uh7K-h8hh!]r*(hLXThe r+r,}r-(h&XThe r.h'j&ubhw)r/}r0(h&X``Simulation*``r1h/}r2(h3]h4]h2]h1]h5]uh'j&h!]r3hLX Simulation*r4r5}r6(h&Uh'j/ubah-hubhLX classesr7r8}r9(h&X classesr:h'j&ubeubhP)r;}r<(h&X"SimPy 2 encapsulated the simulation state in a ``Simulation*`` class (e.g., ``Simulation``, ``SimulationRT`` or ``SimulationTrace``). This class also had a ``simulate()`` method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).h'j h(h+h-hTh/}r=(h3]h4]h2]h1]h5]uh7K/h8hh!]r>(hLX/SimPy 2 encapsulated the simulation state in a r?r@}rA(h&X/SimPy 2 encapsulated the simulation state in a h'j;ubhw)rB}rC(h&X``Simulation*``h/}rD(h3]h4]h2]h1]h5]uh'j;h!]rEhLX Simulation*rFrG}rH(h&Uh'jBubah-hubhLX class (e.g., rIrJ}rK(h&X class (e.g., h'j;ubhw)rL}rM(h&X``Simulation``h/}rN(h3]h4]h2]h1]h5]uh'j;h!]rOhLX SimulationrPrQ}rR(h&Uh'jLubah-hubhLX, rSrT}rU(h&X, h'j;ubhw)rV}rW(h&X``SimulationRT``h/}rX(h3]h4]h2]h1]h5]uh'j;h!]rYhLX SimulationRTrZr[}r\(h&Uh'jVubah-hubhLX or r]r^}r_(h&X or h'j;ubhw)r`}ra(h&X``SimulationTrace``h/}rb(h3]h4]h2]h1]h5]uh'j;h!]rchLXSimulationTracerdre}rf(h&Uh'j`ubah-hubhLX). This class also had a rgrh}ri(h&X). This class also had a h'j;ubhw)rj}rk(h&X``simulate()``h/}rl(h3]h4]h2]h1]h5]uh'j;h!]rmhLX simulate()rnro}rp(h&Uh'jjubah-hubhLXx method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).rqrr}rs(h&Xx method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).h'j;ubeubhP)rt}ru(h&X`There was a global ``Simulation`` instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy's object-orient API. This led to some confusion and problems, because you had to pass the ``Simulation`` instance around when you were using the OO API but not if you were using the procedural API.h'j h(h+h-hTh/}rv(h3]h4]h2]h1]h5]uh7K4h8hh!]rw(hLXThere was a global rxry}rz(h&XThere was a global h'jtubhw)r{}r|(h&X``Simulation``h/}r}(h3]h4]h2]h1]h5]uh'jth!]r~hLX Simulationrr}r(h&Uh'j{ubah-hubhLX instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy's object-orient API. This led to some confusion and problems, because you had to pass the rr}r(h&X instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy's object-orient API. This led to some confusion and problems, because you had to pass the h'jtubhw)r}r(h&X``Simulation``h/}r(h3]h4]h2]h1]h5]uh'jth!]rhLX Simulationrr}r(h&Uh'jubah-hubhLX] instance around when you were using the OO API but not if you were using the procedural API.rr}r(h&X] instance around when you were using the OO API but not if you were using the procedural API.h'jtubeubhP)r}r(h&XIn SimPy 3, an :class:`~simpy.core.Environment` replaces ``Simulation`` and :class:`~simpy.rt.RealtimeEnvironment` replaces ``SimulationRT``. You always need to instantiate an environment. There's no more global state.h'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7K:h8hh!]r(hLXIn SimPy 3, an rr}r(h&XIn SimPy 3, an h'jubh)r}r(h&X :class:`~simpy.core.Environment`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.core.EnvironmentU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7K:h!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLX Environmentrr}r(h&Uh'jubah-hubaubhLX replaces rr}r(h&X replaces h'jubhw)r}r(h&X``Simulation``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX Simulationrr}r(h&Uh'jubah-hubhLX and rr}r(h&X and h'jubh)r}r(h&X&:class:`~simpy.rt.RealtimeEnvironment`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.rt.RealtimeEnvironmentU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7K:h!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXRealtimeEnvironmentrr}r(h&Uh'jubah-hubaubhLX replaces rr}r(h&X replaces h'jubhw)r}r(h&X``SimulationRT``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX SimulationRTrr}r(h&Uh'jubah-hubhLXN. You always need to instantiate an environment. There's no more global state.rr}r(h&XN. You always need to instantiate an environment. There's no more global state.h'jubeubhP)r}r(h&XaTo execute a simulation, you call the environment's :meth:`~simpy.core.Environment.run()` method.h'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7K>h8hh!]r(hLX4To execute a simulation, you call the environment's rr}r(h&X4To execute a simulation, you call the environment's h'jubh)r}r(h&X%:meth:`~simpy.core.Environment.run()`rh'jh(h+h-hh/}r(UreftypeXmethh̉hXsimpy.core.Environment.runU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7K>h!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-methreh2]h1]h5]uh'jh!]rhLXrun()rr}r(h&Uh'jubah-hubaubhLX method.rr}r(h&X method.h'jubeubhP)r}r(h&X **SimPy 2**rh'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7KAh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 2rr}r(h&Uh'jubah-hubaubj)r}r(h&Xu# Procedural API from SimPy.Simulation import initialize, simulate initialize() # Start processes simulate(until=10)h'j h(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7KCh8hh!]rhLXu# Procedural API from SimPy.Simulation import initialize, simulate initialize() # Start processes simulate(until=10)rr}r(h&Uh'jubaubj)r}r(h&Xz# Object-oriented API from SimPy.Simulation import Simulation sim = Simulation() # Start processes sim.simulate(until=10)h'j h(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7KLh8hh!]rhLXz# Object-oriented API from SimPy.Simulation import Simulation sim = Simulation() # Start processes sim.simulate(until=10)rr}r(h&Uh'jubaubhP)r}r(h&X **SimPy3**rh'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7KVh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]r hLXSimPy3r r }r (h&Uh'jubah-hubaubj)r }r(h&XKimport simpy env = simpy.Environment() # Start processes env.run(until=10)h'j h(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7KXh8hh!]rhLXKimport simpy env = simpy.Environment() # Start processes env.run(until=10)rr}r(h&Uh'j ubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kbh8hh!]r(hE)r}r(h&XDefining a Processrh'jh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7Kbh8hh!]rhLXDefining a Processrr }r!(h&jh'jubaubhP)r"}r#(h&XProcesses had to inherit the ``Process`` base class in SimPy 2. Subclasses had to implement at least a so called *Process Execution Method (PEM)* and in most cases ``__init__()``. Each process needed to know the ``Simulation`` instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.h'jh(h+h-hTh/}r$(h3]h4]h2]h1]h5]uh7Kdh8hh!]r%(hLXProcesses had to inherit the r&r'}r((h&XProcesses had to inherit the h'j"ubhw)r)}r*(h&X ``Process``h/}r+(h3]h4]h2]h1]h5]uh'j"h!]r,hLXProcessr-r.}r/(h&Uh'j)ubah-hubhLXI base class in SimPy 2. Subclasses had to implement at least a so called r0r1}r2(h&XI base class in SimPy 2. Subclasses had to implement at least a so called h'j"ubcdocutils.nodes emphasis r3)r4}r5(h&X *Process Execution Method (PEM)*h/}r6(h3]h4]h2]h1]h5]uh'j"h!]r7hLXProcess Execution Method (PEM)r8r9}r:(h&Uh'j4ubah-Uemphasisr;ubhLX and in most cases r<r=}r>(h&X and in most cases h'j"ubhw)r?}r@(h&X``__init__()``h/}rA(h3]h4]h2]h1]h5]uh'j"h!]rBhLX __init__()rCrD}rE(h&Uh'j?ubah-hubhLX". Each process needed to know the rFrG}rH(h&X". Each process needed to know the h'j"ubhw)rI}rJ(h&X``Simulation``h/}rK(h3]h4]h2]h1]h5]uh'j"h!]rLhLX SimulationrMrN}rO(h&Uh'jIubah-hubhLX instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.rPrQ}rR(h&X instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.h'j"ubeubhP)rS}rT(h&XProcesses were started by passing the ``Process`` and the generator returned by the PEM to either the global ``activate()`` function or the corresponding ``Simulation`` method.h'jh(h+h-hTh/}rU(h3]h4]h2]h1]h5]uh7Kkh8hh!]rV(hLX&Processes were started by passing the rWrX}rY(h&X&Processes were started by passing the h'jSubhw)rZ}r[(h&X ``Process``h/}r\(h3]h4]h2]h1]h5]uh'jSh!]r]hLXProcessr^r_}r`(h&Uh'jZubah-hubhLX< and the generator returned by the PEM to either the global rarb}rc(h&X< and the generator returned by the PEM to either the global h'jSubhw)rd}re(h&X``activate()``h/}rf(h3]h4]h2]h1]h5]uh'jSh!]rghLX activate()rhri}rj(h&Uh'jdubah-hubhLX function or the corresponding rkrl}rm(h&X function or the corresponding h'jSubhw)rn}ro(h&X``Simulation``h/}rp(h3]h4]h2]h1]h5]uh'jSh!]rqhLX Simulationrrrs}rt(h&Uh'jnubah-hubhLX method.rurv}rw(h&X method.h'jSubeubhP)rx}ry(h&X<A process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the :class:`~simpy.core.Environment` to interact with, but this is completely optional.h'jh(h+h-hTh/}rz(h3]h4]h2]h1]h5]uh7Koh8hh!]r{(hLXA process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the r|r}}r~(h&XA process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the h'jxubh)r}r(h&X :class:`~simpy.core.Environment`rh'jxh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.core.EnvironmentU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Koh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLX Environmentrr}r(h&Uh'jubah-hubaubhLX3 to interact with, but this is completely optional.rr}r(h&X3 to interact with, but this is completely optional.h'jxubeubhP)r}r(h&XProcesses are can be started by creating a :class:`~simpy.events.Process` instance and passing the generator to it. The environment provides a shortcut for this: :meth:`~simpy.core.Environment.process()`.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kuh8hh!]r(hLX+Processes are can be started by creating a rr}r(h&X+Processes are can be started by creating a h'jubh)r}r(h&X:class:`~simpy.events.Process`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.events.ProcessU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kuh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXProcessrr}r(h&Uh'jubah-hubaubhLXY instance and passing the generator to it. The environment provides a shortcut for this: rr}r(h&XY instance and passing the generator to it. The environment provides a shortcut for this: h'jubh)r}r(h&X):meth:`~simpy.core.Environment.process()`rh'jh(h+h-hh/}r(UreftypeXmethh̉hXsimpy.core.Environment.processU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kuh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-methreh2]h1]h5]uh'jh!]rhLX process()rr}r(h&Uh'jubah-hubaubhLX.r}r(h&X.h'jubeubhP)r}r(h&X **SimPy 2**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kyh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 2rr}r(h&Uh'jubah-hubaubj)r}r(h&X@# Procedural API from Simpy.Simulation import Process class MyProcess(Process): def __init__(self, another_param): super().__init__() self.another_param = another_param def run(self): """Implement the process' behavior.""" initialize() proc = Process('Spam') activate(proc, proc.run())h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7K{h8hh!]rhLX@# Procedural API from Simpy.Simulation import Process class MyProcess(Process): def __init__(self, another_param): super().__init__() self.another_param = another_param def run(self): """Implement the process' behavior.""" initialize() proc = Process('Spam') activate(proc, proc.run())rr}r(h&Uh'jubaubj)r}r(h&Xm# Object-oriented API from SimPy.Simulation import Simulation, Process class MyProcess(Process): def __init__(self, sim, another_param): super().__init__(sim=sim) self.another_param = another_param def run(self): """Implement the process' behaviour.""" sim = Simulation() proc = Process(sim, 'Spam') sim.activate(proc, proc.run())h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLXm# Object-oriented API from SimPy.Simulation import Simulation, Process class MyProcess(Process): def __init__(self, sim, another_param): super().__init__(sim=sim) self.another_param = another_param def run(self): """Implement the process' behaviour.""" sim = Simulation() proc = Process(sim, 'Spam') sim.activate(proc, proc.run())rr}r(h&Uh'jubaubhP)r}r(h&X **SimPy 3**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 3rr}r(h&Uh'jubah-hubaubj)r}r(h&Ximport simpy def my_process(env, another_param): """Implement the process' behavior.""" env = simpy.Environment() proc = env.process(my_process(env, 'Spam'))h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLXimport simpy def my_process(env, another_param): """Implement the process' behavior.""" env = simpy.Environment() proc = env.process(my_process(env, 'Spam'))rr}r(h&Uh'jubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kh8hh!]r(hE)r}r(h&XSimPy Keywords (``hold`` etc.)rh'jh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLXSimPy Keywords (rr}r(h&XSimPy Keywords (rh'jubhw)r}r(h&X``hold``rh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXholdrr}r(h&Uh'jubah-hubhLX etc.)rr}r(h&X etc.)rh'jubeubhP)r}r(h&X!In SimPy 2, processes created new events by yielding a *SimPy Keyword* and some additional parameters (at least ``self``). These keywords had to be imported from ``SimPy.Simulation*`` if they were used. Internally, the keywords were mapped to a function that generated the according event.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLX7In SimPy 2, processes created new events by yielding a rr}r (h&X7In SimPy 2, processes created new events by yielding a h'jubj3)r }r (h&X*SimPy Keyword*h/}r (h3]h4]h2]h1]h5]uh'jh!]r hLX SimPy Keywordrr}r(h&Uh'j ubah-j;ubhLX* and some additional parameters (at least rr}r(h&X* and some additional parameters (at least h'jubhw)r}r(h&X``self``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXselfrr}r(h&Uh'jubah-hubhLX*). These keywords had to be imported from rr}r(h&X*). These keywords had to be imported from h'jubhw)r}r(h&X``SimPy.Simulation*``h/}r (h3]h4]h2]h1]h5]uh'jh!]r!hLXSimPy.Simulation*r"r#}r$(h&Uh'jubah-hubhLXj if they were used. Internally, the keywords were mapped to a function that generated the according event.r%r&}r'(h&Xj if they were used. Internally, the keywords were mapped to a function that generated the according event.h'jubeubhP)r(}r)(h&XIn SimPy 3, you directly yield :mod:`~simpy.events`. You can instantiate an event directly or use the shortcuts provided by :class:`~simpy.core.Environment`.h'jh(h+h-hTh/}r*(h3]h4]h2]h1]h5]uh7Kh8hh!]r+(hLXIn SimPy 3, you directly yield r,r-}r.(h&XIn SimPy 3, you directly yield h'j(ubh)r/}r0(h&X:mod:`~simpy.events`r1h'j(h(h+h-hh/}r2(UreftypeXmodh̉hX simpy.eventsU refdomainXpyr3h1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]r4hw)r5}r6(h&j1h/}r7(h3]h4]r8(hj3Xpy-modr9eh2]h1]h5]uh'j/h!]r:hLXeventsr;r<}r=(h&Uh'j5ubah-hubaubhLXI. You can instantiate an event directly or use the shortcuts provided by r>r?}r@(h&XI. You can instantiate an event directly or use the shortcuts provided by h'j(ubh)rA}rB(h&X :class:`~simpy.core.Environment`rCh'j(h(h+h-hh/}rD(UreftypeXclassh̉hXsimpy.core.EnvironmentU refdomainXpyrEh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rFhw)rG}rH(h&jCh/}rI(h3]h4]rJ(hjEXpy-classrKeh2]h1]h5]uh'jAh!]rLhLX EnvironmentrMrN}rO(h&Uh'jGubah-hubaubhLX.rP}rQ(h&X.h'j(ubeubhP)rR}rS(h&XGenerally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the ``hold`` keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore ``hold`` has been replaced by a :class:`~simpy.events.Timeout` event.h'jh(h+h-hTh/}rT(h3]h4]h2]h1]h5]uh7Kh8hh!]rU(hLXGenerally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the rVrW}rX(h&XGenerally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the h'jRubhw)rY}rZ(h&X``hold``h/}r[(h3]h4]h2]h1]h5]uh'jRh!]r\hLXholdr]r^}r_(h&Uh'jYubah-hubhLXx keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore r`ra}rb(h&Xx keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore h'jRubhw)rc}rd(h&X``hold``h/}re(h3]h4]h2]h1]h5]uh'jRh!]rfhLXholdrgrh}ri(h&Uh'jcubah-hubhLX has been replaced by a rjrk}rl(h&X has been replaced by a h'jRubh)rm}rn(h&X:class:`~simpy.events.Timeout`roh'jRh(h+h-hh/}rp(UreftypeXclassh̉hXsimpy.events.TimeoutU refdomainXpyrqh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rrhw)rs}rt(h&joh/}ru(h3]h4]rv(hjqXpy-classrweh2]h1]h5]uh'jmh!]rxhLXTimeoutryrz}r{(h&Uh'jsubah-hubaubhLX event.r|r}}r~(h&X event.h'jRubeubcdocutils.nodes note r)r}r(h&X:class:`~simpy.events.Process` now inherits :class:`~simpy.events.Event`. You can thus yield a process to wait until the process terminates.h'jh(h+h-Unoterh/}r(h3]h4]h2]h1]h5]uh7Nh8hh!]rhP)r}r(h&X:class:`~simpy.events.Process` now inherits :class:`~simpy.events.Event`. You can thus yield a process to wait until the process terminates.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh!]r(h)r}r(h&X:class:`~simpy.events.Process`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.events.ProcessU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXProcessrr}r(h&Uh'jubah-hubaubhLX now inherits rr}r(h&X now inherits h'jubh)r}r(h&X:class:`~simpy.events.Event`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.events.EventU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXEventrr}r(h&Uh'jubah-hubaubhLXD. You can thus yield a process to wait until the process terminates.rr}r(h&XD. You can thus yield a process to wait until the process terminates.h'jubeubaubhP)r}r(h&X **SimPy 2**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 2rr}r(h&Uh'jubah-hubaubj)r}r(h&X>yield hold, self, duration yield passivate, self yield request, self, resource yield release, self, resource yield waitevent, self, event yield waitevent, self, [event_a, event_b, event_c] yield queueevent, self, event_list yield waituntil, self, cond_func yield get, self, level, amount yield put, self, level, amounth'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLX>yield hold, self, duration yield passivate, self yield request, self, resource yield release, self, resource yield waitevent, self, event yield waitevent, self, [event_a, event_b, event_c] yield queueevent, self, event_list yield waituntil, self, cond_func yield get, self, level, amount yield put, self, level, amountrr}r(h&Uh'jubaubhP)r}r(h&X **SimPy 3**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 3rr}r(h&Uh'jubah-hubaubj)r}r(h&Xfrom simpy.util import wait_for_any, wait_for_all yield env.timeout(duration) # hold: renamed yield env.event() # passivate: renamed yield resource.request() # Request is now bound to class Resource resource.release() # Release no longer needs to be yielded yield event # waitevent: just yield the event yield wait_for_any([event_a, event_b, event_c]) # waitevent yield wait_for_all([event_a, event_b, event_c]) # This is new. yield event_a | event_b # Wait for either a or b. This is new. yield event_a & event_b # Wait for a and b. This is new. # There is no direct equivalent for "queueevent" yield env.process(cond_func(env)) # cond_func is now a process that # terminates when the cond. is True # (Yes, you can wait for processes now!) yield container.get(amount) # Level is now called Container yield container.put(amount)h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLXfrom simpy.util import wait_for_any, wait_for_all yield env.timeout(duration) # hold: renamed yield env.event() # passivate: renamed yield resource.request() # Request is now bound to class Resource resource.release() # Release no longer needs to be yielded yield event # waitevent: just yield the event yield wait_for_any([event_a, event_b, event_c]) # waitevent yield wait_for_all([event_a, event_b, event_c]) # This is new. yield event_a | event_b # Wait for either a or b. This is new. yield event_a & event_b # Wait for a and b. This is new. # There is no direct equivalent for "queueevent" yield env.process(cond_func(env)) # cond_func is now a process that # terminates when the cond. is True # (Yes, you can wait for processes now!) yield container.get(amount) # Level is now called Container yield container.put(amount)rr}r(h&Uh'jubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kh8hh!]r(hE)r}r(h&X Interruptsrh'jh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rhLX Interruptsrr}r(h&jh'jubaubhP)r}r(h&XIn SimPy 2, ``interrupt()`` was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLX In SimPy 2, rr}r(h&X In SimPy 2, h'jubhw)r}r(h&X``interrupt()``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX interrupt()rr}r(h&Uh'jubah-hubhLXg was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.rr}r(h&Xg was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.h'jubeubhP)r}r(h&XThe victim was not directly notified of the interrupt but had to check if the ``interrupted`` flag was set. It then had to reset the interrupt via ``interruptReset()``. You could manually set the ``interruptCause`` attribute of the victim.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLXNThe victim was not directly notified of the interrupt but had to check if the rr}r(h&XNThe victim was not directly notified of the interrupt but had to check if the h'jubhw)r}r(h&X``interrupted``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX interruptedrr}r(h&Uh'jubah-hubhLX6 flag was set. It then had to reset the interrupt via rr}r(h&X6 flag was set. It then had to reset the interrupt via h'jubhw)r}r(h&X``interruptReset()``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXinterruptReset()rr}r (h&Uh'jubah-hubhLX. You could manually set the r r }r (h&X. You could manually set the h'jubhw)r }r(h&X``interruptCause``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXinterruptCauserr}r(h&Uh'j ubah-hubhLX attribute of the victim.rr}r(h&X attribute of the victim.h'jubeubhP)r}r(h&X`Explicitly checking for an interrupt is obviously error prone as it is too easy to be forgotten.rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rhLX`Explicitly checking for an interrupt is obviously error prone as it is too easy to be forgotten.rr}r(h&jh'jubaubhP)r}r (h&X In SimPy 3, you call :meth:`~simpy.events.Process.interrupt()` on the victim process. You can optionally pass a cause. An :exc:`~simpy.events.Interrupt` is then thrown into the victim process, which has to handle the interrupt via ``try: ... except Interrupt: ...``.h'jh(h+h-hTh/}r!(h3]h4]h2]h1]h5]uh7Kh8hh!]r"(hLXIn SimPy 3, you call r#r$}r%(h&XIn SimPy 3, you call h'jubh)r&}r'(h&X):meth:`~simpy.events.Process.interrupt()`r(h'jh(h+h-hh/}r)(UreftypeXmethh̉hXsimpy.events.Process.interruptU refdomainXpyr*h1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]r+hw)r,}r-(h&j(h/}r.(h3]h4]r/(hj*Xpy-methr0eh2]h1]h5]uh'j&h!]r1hLX interrupt()r2r3}r4(h&Uh'j,ubah-hubaubhLX< on the victim process. You can optionally pass a cause. An r5r6}r7(h&X< on the victim process. You can optionally pass a cause. An h'jubh)r8}r9(h&X:exc:`~simpy.events.Interrupt`r:h'jh(h+h-hh/}r;(UreftypeXexch̉hXsimpy.events.InterruptU refdomainXpyr<h1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]r=hw)r>}r?(h&j:h/}r@(h3]h4]rA(hj<Xpy-excrBeh2]h1]h5]uh'j8h!]rChLX InterruptrDrE}rF(h&Uh'j>ubah-hubaubhLXO is then thrown into the victim process, which has to handle the interrupt via rGrH}rI(h&XO is then thrown into the victim process, which has to handle the interrupt via h'jubhw)rJ}rK(h&X"``try: ... except Interrupt: ...``h/}rL(h3]h4]h2]h1]h5]uh'jh!]rMhLXtry: ... except Interrupt: ...rNrO}rP(h&Uh'jJubah-hubhLX.rQ}rR(h&X.h'jubeubhP)rS}rT(h&X **SimPy 2**rUh'jh(h+h-hTh/}rV(h3]h4]h2]h1]h5]uh7Mh8hh!]rWh)rX}rY(h&jUh/}rZ(h3]h4]h2]h1]h5]uh'jSh!]r[hLXSimPy 2r\r]}r^(h&Uh'jXubah-hubaubj)r_}r`(h&Xclass Interrupter(Process): def __init__(self, victim): super().__init__() self.victim = victim def run(self): yield hold, self, 1 self.interrupt(self.victim_proc) self.victim_proc.interruptCause = 'Spam' class Victim(Process): def run(self): yield hold, self, 10 if self.interrupted: cause = self.interruptCause self.interruptReset()h'jh(h+h-jh/}ra(jjXpythonjjh1]h2]h3]h4]h5]uh7Mh8hh!]rbhLXclass Interrupter(Process): def __init__(self, victim): super().__init__() self.victim = victim def run(self): yield hold, self, 1 self.interrupt(self.victim_proc) self.victim_proc.interruptCause = 'Spam' class Victim(Process): def run(self): yield hold, self, 10 if self.interrupted: cause = self.interruptCause self.interruptReset()rcrd}re(h&Uh'j_ubaubhP)rf}rg(h&X **SimPy 3**rhh'jh(h+h-hTh/}ri(h3]h4]h2]h1]h5]uh7Mh8hh!]rjh)rk}rl(h&jhh/}rm(h3]h4]h2]h1]h5]uh'jfh!]rnhLXSimPy 3rorp}rq(h&Uh'jkubah-hubaubj)rr}rs(h&Xdef interrupter(env, victim_proc): yield env.timeout(1) victim_proc.interrupt('Spam') def victim(env): try: yield env.timeout(10) except Interrupt as interrupt: cause = interrupt.causeh'jh(h+h-jh/}rt(jjXpythonjjh1]h2]h3]h4]h5]uh7Mh8hh!]ruhLXdef interrupter(env, victim_proc): yield env.timeout(1) victim_proc.interrupt('Spam') def victim(env): try: yield env.timeout(10) except Interrupt as interrupt: cause = interrupt.causervrw}rx(h&Uh'jrubaubeubh9)ry}rz(h&Uh'h:h(h+h-h>h/}r{(h3]h4]h2]h1]r|h ah5]r}hauh7M&h8hh!]r~(hE)r}r(h&X Conclusionrh'jyh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7M&h8hh!]rhLX Conclusionrr}r(h&jh'jubaubhP)r}r(h&XEThis guide is by no means complete. If you run into problems, please have a look at the other :doc:`guides `, the :doc:`examples <../examples/index>` or the :doc:`../api_reference/index`. You are also very welcome to submit improvements. Just create a pull request at `bitbucket `_.h'jyh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7M(h8hh!]r(hLX^This guide is by no means complete. If you run into problems, please have a look at the other rr}r(h&X^This guide is by no means complete. If you run into problems, please have a look at the other h'jubh)r}r(h&X:doc:`guides `rh'jh(h+h-hh/}r(UreftypeXdocrḧhXindexU refdomainUh1]h2]U refexplicith3]h4]h5]hhuh7M(h!]rhw)r}r(h&jh/}r(h3]h4]r(hjeh2]h1]h5]uh'jh!]rhLXguidesrr}r(h&Uh'jubah-hubaubhLX, the rr}r(h&X, the h'jubh)r}r(h&X#:doc:`examples <../examples/index>`rh'jh(h+h-hh/}r(UreftypeXdocrḧhX../examples/indexU refdomainUh1]h2]U refexplicith3]h4]h5]hhuh7M(h!]rhw)r}r(h&jh/}r(h3]h4]r(hjeh2]h1]h5]uh'jh!]rhLXexamplesrr}r(h&Uh'jubah-hubaubhLX or the rr}r(h&X or the h'jubh)r}r(h&X:doc:`../api_reference/index`rh'jh(h+h-hh/}r(UreftypeXdocrḧhX../api_reference/indexU refdomainUh1]h2]U refexplicith3]h4]h5]hhuh7M(h!]rhw)r}r(h&jh/}r(h3]h4]r(hjeh2]h1]h5]uh'jh!]rhLX../api_reference/indexrr}r(h&Uh'jubah-hubaubhLXR. You are also very welcome to submit improvements. Just create a pull request at rr}r(h&XR. You are also very welcome to submit improvements. Just create a pull request at h'jubcdocutils.nodes reference r)r}r(h&X1`bitbucket `_h/}r(UnamehUrefurirX"https://bitbucket.org/simpy/simpy/rh1]h2]h3]h4]h5]uh'jh!]rhLX bitbucketrr}r(h&Uh'jubah-U referencerubh#)r}r(h&X% U referencedrKh'jh-h.h/}r(Urefurijh1]rhah2]h3]h4]h5]rhauh!]ubhLX.r}r(h&X.h'jubeubeubeubeh&UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh8hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h&Uh/}r(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineKUtypeUINFOruh!]rhP)r}r(h&Uh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX9Hyperlink target "porting-from-simpy2" is not referenced.rr}r(h&Uh'jubah-hTubah-Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhINUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlr NUexpose_internalsr!NUsectsubtitle_xformr"U source_linkr#NUrfc_referencesr$NUoutput_encodingr%Uutf-8r&U source_urlr'NUinput_encodingr(U utf-8-sigr)U_disable_configr*NU id_prefixr+UU tab_widthr,KUerror_encodingr-UUTF-8r.U_sourcer/UX/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/porting_from_simpy2.rstr0Ugettext_compactr1U generatorr2NUdump_internalsr3NU smart_quotesr4U pep_base_urlr5Uhttp://www.python.org/dev/peps/r6Usyntax_highlightr7Ulongr8Uinput_encoding_error_handlerr9jUauto_id_prefixr:Uidr;Udoctitle_xformr<Ustrip_elements_with_classesr=NU _config_filesr>]r?Ufile_insertion_enabledr@U raw_enabledrAKU dump_settingsrBNubUsymbol_footnote_startrCKUidsrD}rE(hjhhbhj hh:hjhh:hjhjh jyuUsubstitution_namesrF}rGh-h8h/}rH(h3]h1]h2]Usourceh+h4]h5]uU footnotesrI]rJUrefidsrK}rLh]rMh$asub.PK@Dɾ>]¢¢9simpy-3.0.4/.doctrees/topical_guides/environments.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimulation controlqNX state accessqNX miscellaneousqNX environmentsq NXevent creationq NXsimulation-controlq uUsubstitution_defsq }q Uparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUid1qhU state-accessqhU miscellaneousqh U environmentsqh Uevent-creationqh Usimulation-controlquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceq UUparentq!hUsourceq"cdocutils.nodes reprunicode q#XQ/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/environments.rstq$q%}q&bUtagnameq'Usectionq(U attributesq)}q*(Udupnamesq+]Uclassesq,]Ubackrefsq-]Uidsq.]q/haUnamesq0]q1h auUlineq2KUdocumentq3hh]q4(cdocutils.nodes title q5)q6}q7(h X Environmentsq8h!hh"h%h'Utitleq9h)}q:(h+]h,]h-]h.]h0]uh2Kh3hh]q;cdocutils.nodes Text q}q?(h h8h!h6ubaubcdocutils.nodes paragraph q@)qA}qB(h XA simulation environment manages the simulation time as well as the scheduling and processing of events. It also provides means to step through or execute the simulation.qCh!hh"h%h'U paragraphqDh)}qE(h+]h,]h-]h.]h0]uh2Kh3hh]qFh(h X``env.run(until=10)``h)}r?(h+]h,]h-]h.]h0]uh!j*h]r@h>> import simpy >>> >>> def my_proc(env): ... yield env.timeout(1) ... return 'Monty Python’s Flying Circus' >>> >>> env = simpy.Environment() >>> proc = env.process(my_proc(env)) >>> env.run(until=proc) 'Monty Python’s Flying Circus' h!hh"h%h'hh)}rn(h+]h,]h-]h.]h0]uh2Nh3hh]ro(h@)rp}rq(h XInstead of passing a number to ``run()``, you can also pass any event to it. ``run()`` will then return when the event has been processed.h!jlh"h%h'hDh)}rr(h+]h,]h-]h.]h0]uh2K?h]rs(h>> import simpy >>> >>> def my_proc(env): ... yield env.timeout(1) ... return 'Monty Python’s Flying Circus' >>> >>> env = simpy.Environment() >>> proc = env.process(my_proc(env)) >>> env.run(until=proc) 'Monty Python’s Flying Circus'h!jlh'jbh)}r(jfjgh.]h-]h+]h,]h0]uh2KHh]rh>> import simpy >>> >>> def my_proc(env): ... yield env.timeout(1) ... return 'Monty Python’s Flying Circus' >>> >>> env = simpy.Environment() >>> proc = env.process(my_proc(env)) >>> env.run(until=proc) 'Monty Python’s Flying Circus'rr}r(h Uh!jubaubeubeubh@)r}r(h XTo step through the simulation event by event, the environment offers :meth:`~Environment.peek()` and :meth:`~Environment.step()`.h!hh"h%h'hDh)}r(h+]h,]h-]h.]h0]uh2KTh3hh]r(h}r?(h Uh!j9ubaubeubh)r@}rA(h Uh!hh"h%h'h(h)}rB(h+]h,]h-]h.]rChah0]rDhauh2Kgh3hh]rE(h5)rF}rG(h X State accessrHh!j@h"h%h'h9h)}rI(h+]h,]h-]h.]h0]uh2Kgh3hh]rJh>> def subfunc(env): ... print(env.active_process) # will print "p1" >>> >>> def my_proc(env): ... while True: ... print(env.active_process) # will print "p1" ... subfunc(env) ... yield env.timeout(1) >>> >>> env = simpy.Environment() >>> p1 = env.process(my_proc(env)) >>> env.active_process # None >>> env.step() >>> env.active_process # Noneh!j@h"h%h'jbh)}r)(jfjgh.]h-]h+]h,]h0]uh2Kh3hh]r*h>> def subfunc(env): ... print(env.active_process) # will print "p1" >>> >>> def my_proc(env): ... while True: ... print(env.active_process) # will print "p1" ... subfunc(env) ... yield env.timeout(1) >>> >>> env = simpy.Environment() >>> p1 = env.process(my_proc(env)) >>> env.active_process # None >>> env.step() >>> env.active_process # Noner+r,}r-(h Uh!j'ubaubh@)r.}r/(h X An exemplary use case for this is the resource system: If a process function calls :meth:`~simpy.resources.resource.Resource.request()` to request a resource, the resource determines the requesting process via ``env.active_process``. Take a `look at the code`__ to see how we do this :-).h!j@h"h%h'hDh)}r0(h+]h,]h-]h.]h0]uh2Kh3hh]r1(h(hej9Xpy-methr?eh-]h.]h0]uh!j5h]r@h`.h!jgh"h%h'hDh)}r%(h+]h,]h-]h.]h0]uh2Kh3hh]r&(h`r,h!j#h"h%h'hUh)}r-(UreftypeXdocr.hWhXXeventsU refdomainUh.]h-]U refexplicith+]h,]h0]hZh[uh2Kh]r/h`)r0}r1(h j,h)}r2(h+]h,]r3(hej.eh-]h.]h0]uh!j*h]r4hhauh2Kh3hh]r?(h5)r@}rA(h X MiscellaneousrBh!j:h"h%h'h9h)}rC(h+]h,]h-]h.]h0]uh2Kh3hh]rDh(hXThis guide describes the basic concepts of SimPy: How does it work? What are processes, events and the environment? What can I do with them?q?hhhh!h#U paragraphq@h%}qA(h']h(]h)]h*]h,]uh.Kh/hh]qBh8XThis guide describes the basic concepts of SimPy: How does it work? What are processes, events and the environment? What can I do with them?qCqD}qE(hh?hh=ubaubh)qF}qG(hUhhhh!h#h$h%}qH(h']h(]h)]h*]qIhah,]qJhauh.K h/hh]qK(h1)qL}qM(hXHow SimPy worksqNhhFhh!h#h5h%}qO(h']h(]h)]h*]h,]uh.K h/hh]qPh8XHow SimPy worksqQqR}qS(hhNhhLubaubh<)qT}qU(hXoIf you break SimPy down, it is just an asynchronous event dispatcher. You generate events and schedule them at a given simulation time. Events are sorted by priority, simulation time, and an increasing event id. An event also has a list of callbacks, which are executed when the event is triggered and processed by the event loop. Events may also have a return value.qVhhFhh!h#h@h%}qW(h']h(]h)]h*]h,]uh.K h/hh]qXh8XoIf you break SimPy down, it is just an asynchronous event dispatcher. You generate events and schedule them at a given simulation time. Events are sorted by priority, simulation time, and an increasing event id. An event also has a list of callbacks, which are executed when the event is triggered and processed by the event loop. Events may also have a return value.qYqZ}q[(hhVhhTubaubh<)q\}q](hXThe components involved in this are the :class:`~simpy.core.Environment`, :mod:`~simpy.events` and the process functions that you write.hhFhh!h#h@h%}q^(h']h(]h)]h*]h,]uh.Kh/hh]q_(h8X(The components involved in this are the q`qa}qb(hX(The components involved in this are the hh\ubcsphinx.addnodes pending_xref qc)qd}qe(hX :class:`~simpy.core.Environment`qfhh\hh!h#U pending_xrefqgh%}qh(UreftypeXclassUrefwarnqiU reftargetqjXsimpy.core.EnvironmentU refdomainXpyqkh*]h)]U refexplicith']h(]h,]UrefdocqlXtopical_guides/simpy_basicsqmUpy:classqnNU py:moduleqoNuh.Kh]qpcdocutils.nodes literal qq)qr}qs(hhfh%}qt(h']h(]qu(UxrefqvhkXpy-classqweh)]h*]h,]uhhdh]qxh8X Environmentqyqz}q{(hUhhrubah#Uliteralq|ubaubh8X, q}q~}q(hX, hh\ubhc)q}q(hX:mod:`~simpy.events`qhh\hh!h#hgh%}q(UreftypeXmodhihjX simpy.eventsU refdomainXpyqh*]h)]U refexplicith']h(]h,]hlhmhnNhoNuh.Kh]qhq)q}q(hhh%}q(h']h(]q(hvhXpy-modqeh)]h*]h,]uhhh]qh8Xeventsqq}q(hUhhubah#h|ubaubh8X* and the process functions that you write.qq}q(hX* and the process functions that you write.hh\ubeubh<)q}q(hXProcess functions implement your simulation model, that is, they define the behavior of your simulation. They are plain Python generator functions that yield instances of :class:`~simpy.events.Event`.hhFhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8XProcess functions implement your simulation model, that is, they define the behavior of your simulation. They are plain Python generator functions that yield instances of qq}q(hXProcess functions implement your simulation model, that is, they define the behavior of your simulation. They are plain Python generator functions that yield instances of hhubhc)q}q(hX:class:`~simpy.events.Event`qhhhh!h#hgh%}q(UreftypeXclasshihjXsimpy.events.EventU refdomainXpyqh*]h)]U refexplicith']h(]h,]hlhmhnNhoNuh.Kh]qhq)q}q(hhh%}q(h']h(]q(hvhXpy-classqeh)]h*]h,]uhhh]qh8XEventqq}q(hUhhubah#h|ubaubh8X.q}q(hX.hhubeubh<)q}q(hXeThe environment stores these events in its event list and keeps track of the current simulation time.qhhFhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8XeThe environment stores these events in its event list and keeps track of the current simulation time.qq}q(hhhhubaubh<)q}q(hXIf a process function yields and event, SimPy adds the process to the event's callbacks and suspends the process until the event is triggered and processed. When a process waiting for an event is resumed, it will also receive the event's value.qhhFhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8XIf a process function yields and event, SimPy adds the process to the event's callbacks and suspends the process until the event is triggered and processed. When a process waiting for an event is resumed, it will also receive the event's value.qq}q(hhhhubaubh<)q}q(hXHere is a very simple example that illustrates all this; the code is more verbose than it needs to be to make things extra clear. You find a compact version of it at the end of this section::hhFhh!h#h@h%}q(h']h(]h)]h*]h,]uh.K!h/hh]qh8XHere is a very simple example that illustrates all this; the code is more verbose than it needs to be to make things extra clear. You find a compact version of it at the end of this section:qq}q(hXHere is a very simple example that illustrates all this; the code is more verbose than it needs to be to make things extra clear. You find a compact version of it at the end of this section:hhubaubcdocutils.nodes literal_block q)q}q(hXJ>>> import simpy >>> >>> def example(env): ... event = simpy.events.Timeout(env, delay=1, value=42) ... value = yield event ... print('now=%d, value=%d' % (env.now, value)) >>> >>> env = simpy.Environment() >>> example_gen = example(env) >>> p = simpy.events.Process(env, example_gen) >>> >>> env.run() now=1, value=42hhFhh!h#U literal_blockqh%}q(U xml:spaceqUpreserveqh*]h)]h']h(]h,]uh.K%h/hh]qh8XJ>>> import simpy >>> >>> def example(env): ... event = simpy.events.Timeout(env, delay=1, value=42) ... value = yield event ... print('now=%d, value=%d' % (env.now, value)) >>> >>> env = simpy.Environment() >>> example_gen = example(env) >>> p = simpy.events.Process(env, example_gen) >>> >>> env.run() now=1, value=42qɅq}q(hUhhubaubh<)q}q(hX=The ``example()`` process function above first creates a :class:`~simpy.events.Timeout` event. It passes the environment, a delay, and a value to it. The Timeout schedules itself at ``now + delay`` (that's why the environment is required); other event types usually schedule themselves at the current simulation time.hhFhh!h#h@h%}q(h']h(]h)]h*]h,]uh.K3h/hh]q(h8XThe qЅq}q(hXThe hhubhq)q}q(hX ``example()``h%}q(h']h(]h)]h*]h,]uhhh]qh8X example()qׅq}q(hUhhubah#h|ubh8X( process function above first creates a qڅq}q(hX( process function above first creates a hhubhc)q}q(hX:class:`~simpy.events.Timeout`qhhhh!h#hgh%}q(UreftypeXclasshihjXsimpy.events.TimeoutU refdomainXpyqh*]h)]U refexplicith']h(]h,]hlhmhnNhoNuh.K3h]qhq)q}q(hhh%}q(h']h(]q(hvhXpy-classqeh)]h*]h,]uhhh]qh8XTimeoutq酁q}q(hUhhubah#h|ubaubh8X_ event. It passes the environment, a delay, and a value to it. The Timeout schedules itself at q셁q}q(hX_ event. It passes the environment, a delay, and a value to it. The Timeout schedules itself at hhubhq)q}q(hX``now + delay``h%}q(h']h(]h)]h*]h,]uhhh]qh8X now + delayqq}q(hUhhubah#h|ubh8Xx (that's why the environment is required); other event types usually schedule themselves at the current simulation time.qq}q(hXx (that's why the environment is required); other event types usually schedule themselves at the current simulation time.hhubeubh<)q}q(hXLThe process function then yields the event and thus gets suspended. It is resumed, when SimPy processes the Timeout event. The process function also receives the event's value (42) -- this is, however, optional, so ``yield event`` would have been okay if the you were not interested in the value or if the event had no value at all.hhFhh!h#h@h%}q(h']h(]h)]h*]h,]uh.K9h/hh]q(h8XThe process function then yields the event and thus gets suspended. It is resumed, when SimPy processes the Timeout event. The process function also receives the event's value (42) -- this is, however, optional, so qq}q(hXThe process function then yields the event and thus gets suspended. It is resumed, when SimPy processes the Timeout event. The process function also receives the event's value (42) -- this is, however, optional, so hhubhq)r}r(hX``yield event``h%}r(h']h(]h)]h*]h,]uhhh]rh8X yield eventrr}r(hUhjubah#h|ubh8Xf would have been okay if the you were not interested in the value or if the event had no value at all.rr}r (hXf would have been okay if the you were not interested in the value or if the event had no value at all.hhubeubh<)r }r (hXFinally, the process function prints the current simulation time (that is accessible via the environment's :attr:`~simpy.core.Environment.now` attribute) and the Timeout's value.hhFhh!h#h@h%}r (h']h(]h)]h*]h,]uh.K?h/hh]r (h8XkFinally, the process function prints the current simulation time (that is accessible via the environment's rr}r(hXkFinally, the process function prints the current simulation time (that is accessible via the environment's hj ubhc)r}r(hX#:attr:`~simpy.core.Environment.now`rhj hh!h#hgh%}r(UreftypeXattrhihjXsimpy.core.Environment.nowU refdomainXpyrh*]h)]U refexplicith']h(]h,]hlhmhnNhoNuh.K?h]rhq)r}r(hjh%}r(h']h(]r(hvjXpy-attrreh)]h*]h,]uhjh]rh8Xnowrr}r(hUhjubah#h|ubaubh8X$ attribute) and the Timeout's value.r r!}r"(hX$ attribute) and the Timeout's value.hj ubeubh<)r#}r$(hXIf all required process functions are defined, you can instantiate all objects for your simulation. In most cases, you start by creating an instance of :class:`~simpy.core.Environment`, because you'll need to pass it around a lot when creating everything else.hhFhh!h#h@h%}r%(h']h(]h)]h*]h,]uh.KCh/hh]r&(h8XIf all required process functions are defined, you can instantiate all objects for your simulation. In most cases, you start by creating an instance of r'r(}r)(hXIf all required process functions are defined, you can instantiate all objects for your simulation. In most cases, you start by creating an instance of hj#ubhc)r*}r+(hX :class:`~simpy.core.Environment`r,hj#hh!h#hgh%}r-(UreftypeXclasshihjXsimpy.core.EnvironmentU refdomainXpyr.h*]h)]U refexplicith']h(]h,]hlhmhnNhoNuh.KCh]r/hq)r0}r1(hj,h%}r2(h']h(]r3(hvj.Xpy-classr4eh)]h*]h,]uhj*h]r5h8X Environmentr6r7}r8(hUhj0ubah#h|ubaubh8XL, because you'll need to pass it around a lot when creating everything else.r9r:}r;(hXL, because you'll need to pass it around a lot when creating everything else.hj#ubeubh<)r<}r=(hX0Starting a process function involves two things:r>hhFhh!h#h@h%}r?(h']h(]h)]h*]h,]uh.KHh/hh]r@h8X0Starting a process function involves two things:rArB}rC(hj>hj<ubaubcdocutils.nodes enumerated_list rD)rE}rF(hUhhFhh!h#Uenumerated_listrGh%}rH(UsuffixrIU.h*]h)]h']UprefixrJUh(]h,]UenumtyperKUarabicrLuh.KJh/hh]rM(cdocutils.nodes list_item rN)rO}rP(hX/You have to call the process function to create a generator object. (This will not execute any code of that function yet. Please read `The Python yield keyword explained `_, to understand why this is the case.) hjEhh!h#U list_itemrQh%}rR(h']h(]h)]h*]h,]uh.Nh/hh]rSh<)rT}rU(hX.You have to call the process function to create a generator object. (This will not execute any code of that function yet. Please read `The Python yield keyword explained `_, to understand why this is the case.)hjOhh!h#h@h%}rV(h']h(]h)]h*]h,]uh.KJh]rW(h8XYou have to call the process function to create a generator object. (This will not execute any code of that function yet. Please read rXrY}rZ(hXYou have to call the process function to create a generator object. (This will not execute any code of that function yet. Please read hjTubcdocutils.nodes reference r[)r\}r](hX`The Python yield keyword explained `_h%}r^(UnameX"The Python yield keyword explainedUrefurir_XZhttp://stackoverflow.com/questions/231767/the-python-yield-keyword-explained/231855#231855r`h*]h)]h']h(]h,]uhjTh]rah8X"The Python yield keyword explainedrbrc}rd(hUhj\ubah#U referencereubcdocutils.nodes target rf)rg}rh(hX] U referencedriKhjTh#Utargetrjh%}rk(Urefurij`h*]rlhah)]h']h(]h,]rmh auh]ubh8X&, to understand why this is the case.)rnro}rp(hX&, to understand why this is the case.)hjTubeubaubjN)rq}rr(hXYou then create an instance of :class:`~simpy.events.Process` and pass the environment and the generator object to it. This will schedule an :class:`~simpy.events.Initialize` event at the current simulation time which starts the execution of the process function. The process instance is also an event that is triggered when the process function returns. The :doc:`guide to events ` explains why this is handy. hjEhh!h#jQh%}rs(h']h(]h)]h*]h,]uh.Nh/hh]rth<)ru}rv(hXYou then create an instance of :class:`~simpy.events.Process` and pass the environment and the generator object to it. This will schedule an :class:`~simpy.events.Initialize` event at the current simulation time which starts the execution of the process function. The process instance is also an event that is triggered when the process function returns. The :doc:`guide to events ` explains why this is handy.hjqhh!h#h@h%}rw(h']h(]h)]h*]h,]uh.KPh]rx(h8XYou then create an instance of ryrz}r{(hXYou then create an instance of hjuubhc)r|}r}(hX:class:`~simpy.events.Process`r~hjuhh!h#hgh%}r(UreftypeXclasshihjXsimpy.events.ProcessU refdomainXpyrh*]h)]U refexplicith']h(]h,]hlhmhnNhoNuh.KPh]rhq)r}r(hj~h%}r(h']h(]r(hvjXpy-classreh)]h*]h,]uhj|h]rh8XProcessrr}r(hUhjubah#h|ubaubh8XP and pass the environment and the generator object to it. This will schedule an rr}r(hXP and pass the environment and the generator object to it. This will schedule an hjuubhc)r}r(hX!:class:`~simpy.events.Initialize`rhjuhh!h#hgh%}r(UreftypeXclasshihjXsimpy.events.InitializeU refdomainXpyrh*]h)]U refexplicith']h(]h,]hlhmhnNhoNuh.KPh]rhq)r}r(hjh%}r(h']h(]r(hvjXpy-classreh)]h*]h,]uhjh]rh8X Initializerr}r(hUhjubah#h|ubaubh8X event at the current simulation time which starts the execution of the process function. The process instance is also an event that is triggered when the process function returns. The rr}r(hX event at the current simulation time which starts the execution of the process function. The process instance is also an event that is triggered when the process function returns. The hjuubhc)r}r(hX(:doc:`guide to events `rhjuhh!h#hgh%}r(UreftypeXdocrhihjXguide_to_eventsU refdomainUh*]h)]U refexplicith']h(]h,]hlhmuh.KPh]rhq)r}r(hjh%}r(h']h(]r(hvjeh)]h*]h,]uhjh]rh8Xguide to eventsrr}r(hUhjubah#h|ubaubh8X explains why this is handy.rr}r(hX explains why this is handy.hjuubeubaubeubh<)r}r(hXFinally, you can start SimPy's event loop. By default, it will run as long as there are events in the event list, but you can also let it stop earlier by providing an ``until`` argument (see :ref:`simulation-control`).hhFhh!h#h@h%}r(h']h(]h)]h*]h,]uh.KWh/hh]r(h8XFinally, you can start SimPy's event loop. By default, it will run as long as there are events in the event list, but you can also let it stop earlier by providing an rr}r(hXFinally, you can start SimPy's event loop. By default, it will run as long as there are events in the event list, but you can also let it stop earlier by providing an hjubhq)r}r(hX ``until``h%}r(h']h(]h)]h*]h,]uhjh]rh8Xuntilrr}r(hUhjubah#h|ubh8X argument (see rr}r(hX argument (see hjubhc)r}r(hX:ref:`simulation-control`rhjhh!h#hgh%}r(UreftypeXrefhihjXsimulation-controlU refdomainXstdrh*]h)]U refexplicith']h(]h,]hlhmuh.KWh]rcdocutils.nodes emphasis r)r}r(hjh%}r(h']h(]r(hvjXstd-refreh)]h*]h,]uhjh]rh8Xsimulation-controlrr}r(hUhjubah#Uemphasisrubaubh8X).rr}r(hX).hjubeubh<)r}r(hXtThe following guides describe the environment and its interactions with events and process functions in more detail.rhhFhh!h#h@h%}r(h']h(]h)]h*]h,]uh.K[h/hh]rh8XtThe following guides describe the environment and its interactions with events and process functions in more detail.rr}r(hjhjubaubeubh)r}r(hUhhhh!h#h$h%}r(h']h(]h)]h*]rhah,]rhauh.K`h/hh]r(h1)r}r(hX,"Best practice" version of the example aboverhjhh!h#h5h%}r(h']h(]h)]h*]h,]uh.K`h/hh]rh8X,"Best practice" version of the example aboverr}r(hjhjubaubh)r}r(hX>>> import simpy >>> >>> def example(env): ... value = yield env.timeout(1, value=42) ... print('now=%d, value=%d' % (env.now, value)) >>> >>> env = simpy.Environment() >>> p = env.process(example(env)) >>> env.run() now=1, value=42hjhh!h#hh%}r(hhh*]h)]h']h(]h,]uh.Kdh/hh]rh8X>>> import simpy >>> >>> def example(env): ... value = yield env.timeout(1, value=42) ... print('now=%d, value=%d' % (env.now, value)) >>> >>> env = simpy.Environment() >>> p = env.process(example(env)) >>> env.run() now=1, value=42rr}r(hUhjubaubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh/hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh5NUerror_encoding_error_handlerrUbackslashreplacer Udebugr!NUembed_stylesheetr"Uoutput_encoding_error_handlerr#Ustrictr$U sectnum_xformr%KUdump_transformsr&NU docinfo_xformr'KUwarning_streamr(NUpep_file_url_templater)Upep-%04dr*Uexit_status_levelr+KUconfigr,NUstrict_visitorr-NUcloak_email_addressesr.Utrim_footnote_reference_spacer/Uenvr0NUdump_pseudo_xmlr1NUexpose_internalsr2NUsectsubtitle_xformr3U source_linkr4NUrfc_referencesr5NUoutput_encodingr6Uutf-8r7U source_urlr8NUinput_encodingr9U utf-8-sigr:U_disable_configr;NU id_prefixr<UU tab_widthr=KUerror_encodingr>UUTF-8r?U_sourcer@UQ/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/simpy_basics.rstrAUgettext_compactrBU generatorrCNUdump_internalsrDNU smart_quotesrEU pep_base_urlrFUhttp://www.python.org/dev/peps/rGUsyntax_highlightrHUlongrIUinput_encoding_error_handlerrJj$Uauto_id_prefixrKUidrLUdoctitle_xformrMUstrip_elements_with_classesrNNU _config_filesrO]rPUfile_insertion_enabledrQU raw_enabledrRKU dump_settingsrSNubUsymbol_footnote_startrTKUidsrU}rV(hhFhhhjghjuUsubstitution_namesrW}rXh#h/h%}rY(h']h*]h)]Usourceh!h(]h,]uU footnotesrZ]r[Urefidsr\}r]ub.PK@Dx2simpy-3.0.4/.doctrees/topical_guides/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qXtopical guidesqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUtopical-guidesqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXJ/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXTopical Guidesq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XTopical Guidesq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXThis sections covers various aspects of SimPy more in-depth. It assumes that you have a basic understanding of SimPy's capabilities and that you know what you are looking for.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(Kh)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhXtopical_guides/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qS(NXtopical_guides/simpy_basicsqTqUNXtopical_guides/environmentsqVqWNXtopical_guides/eventsqXqYNX"topical_guides/porting_from_simpy2qZq[eUhiddenq\U includefilesq]]q^(hThVhXhZeUmaxdepthq_Juh(K h]ubaubcdocutils.nodes comment q`)qa}qb(hXT- Process interaction (interrupt, passivate/reactivate, wait for proc, subscribe_at)hhhhhUcommentqch}qd(U xml:spaceqeUpreserveqfh$]h#]h!]h"]h&]uh(Kh)hh]qgh2XT- Process interaction (interrupt, passivate/reactivate, wait for proc, subscribe_at)qhqi}qj(hUhhaubaubh`)qk}ql(hX(- resources (resource, container, store)hhhhhhch}qm(hehfh$]h#]h!]h"]h&]uh(Kh)hh]qnh2X(- resources (resource, container, store)qoqp}qq(hUhhkubaubh`)qr}qs(hX- real-time simulationshhhhhhch}qt(hehfh$]h#]h!]h"]h&]uh(Kh)hh]quh2X- real-time simulationsqvqw}qx(hUhhrubaubh`)qy}qz(hX - monitoringhhhhhhch}q{(hehfh$]h#]h!]h"]h&]uh(Kh)hh]q|h2X - monitoringq}q~}q(hUhhyubaubh`)q}q(hX,- analyzing results (numpy, matploblib, ...)hhhhhhch}q(hehfh$]h#]h!]h"]h&]uh(Kh)hh]qh2X,- analyzing results (numpy, matploblib, ...)qq}q(hUhhubaubh`)q}q(hX- integration with guishhhhhhch}q(hehfh$]h#]h!]h"]h&]uh(Kh)hh]qh2X- integration with guisqq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqɈUtrim_footnote_reference_spaceqʉUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqΉU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUJ/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/index.rstqUgettext_compactq݈U generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK@D9{U3simpy-3.0.4/.doctrees/topical_guides/events.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X#waiting for multiple events at onceqNXprocesses are events, tooqNXadding callbacks to an eventqNXtriggering eventsq NXlet time pass by: the timeoutq NX event basicsq NXexample usages for eventq NXeventsq NX#waiting_for_multiple_events_at_oncequUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUid1qhUprocesses-are-events-tooqhUadding-callbacks-to-an-eventqh Utriggering-eventsqh Ulet-time-pass-by-the-timeoutqh U event-basicsqh Uexample-usages-for-eventqh UeventsqhU#waiting-for-multiple-events-at-onceq uUchildrenq!]q"cdocutils.nodes section q#)q$}q%(U rawsourceq&UUparentq'hUsourceq(cdocutils.nodes reprunicode q)XK/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/events.rstq*q+}q,bUtagnameq-Usectionq.U attributesq/}q0(Udupnamesq1]Uclassesq2]Ubackrefsq3]Uidsq4]q5haUnamesq6]q7h auUlineq8KUdocumentq9hh!]q:(cdocutils.nodes title q;)q<}q=(h&XEventsq>h'h$h(h+h-Utitleq?h/}q@(h1]h2]h3]h4]h6]uh8Kh9hh!]qAcdocutils.nodes Text qBXEventsqCqD}qE(h&h>h'h` describes the various resource events.h'h$h(h+h-hIh/}qz(h1]h2]h3]h4]h6]uh8Kh9hh!]q{(hBXThis is the set of basic events. Events are extensible and resources, for example, define additional events. In this guide, we'll focus on the events in the q|q}}q~(h&XThis is the set of basic events. Events are extensible and resources, for example, define additional events. In this guide, we'll focus on the events in the h'hxubhO)q}q(h&X:mod:`simpy.events`qh'hxh(h+h-hSh/}q(UreftypeXmodhUhVX simpy.eventsU refdomainXpyqh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]qh^)q}q(h&hh/}q(h1]h2]q(hchXpy-modqeh3]h4]h6]uh'hh!]qhBX simpy.eventsqq}q(h&Uh'hubah-hiubaubhBX module. The qq}q(h&X module. The h'hxubhO)q}q(h&X%:ref:`guide to resources `qh'hxh(h+h-hSh/}q(UreftypeXrefhUhVX resourcesU refdomainXstdqh4]h3]U refexplicith1]h2]h6]hXhYuh8Kh!]qcdocutils.nodes emphasis q)q}q(h&hh/}q(h1]h2]q(hchXstd-refqeh3]h4]h6]uh'hh!]qhBXguide to resourcesqq}q(h&Uh'hubah-UemphasisqubaubhBX' describes the various resource events.qq}q(h&X' describes the various resource events.h'hxubeubh#)q}q(h&Uh'h$h(h+h-h.h/}q(h1]h2]h3]h4]qhah6]qh auh8K"h9hh!]q(h;)q}q(h&X Event basicsqh'hh(h+h-h?h/}q(h1]h2]h3]h4]h6]uh8K"h9hh!]qhBX Event basicsqq}q(h&hh'hubaubhF)q}q(h&XSimPy events are very similar – if not identical — to deferreds, futures or promises. Instances of the class :class:`Event` are used to describe any kind of events. Events can be in one of the following states. An eventh'hh(h+h-hIh/}q(h1]h2]h3]h4]h6]uh8K$h9hh!]q(hBXqSimPy events are very similar – if not identical — to deferreds, futures or promises. Instances of the class qq}q(h&XqSimPy events are very similar – if not identical — to deferreds, futures or promises. Instances of the class h'hubhO)q}q(h&X:class:`Event`qh'hh(h+h-hSh/}q(UreftypeXclasshUhVXEventU refdomainXpyqh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8K$h!]qh^)q}q(h&hh/}q(h1]h2]q(hchXpy-classqeh3]h4]h6]uh'hh!]qhBXEventqƅq}q(h&Uh'hubah-hiubaubhBX` are used to describe any kind of events. Events can be in one of the following states. An eventqɅq}q(h&X` are used to describe any kind of events. Events can be in one of the following states. An eventh'hubeubcdocutils.nodes bullet_list q)q}q(h&Uh'hh(h+h-U bullet_listqh/}q(UbulletqX-h4]h3]h1]h2]h6]uh8K(h9hh!]q(cdocutils.nodes list_item q)q}q(h&Xmight happen (not triggered),qh'hh(h+h-U list_itemqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhF)q}q(h&hh'hh(h+h-hIh/}q(h1]h2]h3]h4]h6]uh8K(h!]qhBXmight happen (not triggered),qޅq}q(h&hh'hubaubaubh)q}q(h&X!is going to happen (triggered) orqh'hh(h+h-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhF)q}q(h&hh'hh(h+h-hIh/}q(h1]h2]h3]h4]h6]uh8K)h!]qhBX!is going to happen (triggered) orqꅁq}q(h&hh'hubaubaubh)q}q(h&Xhas happened (processed). h'hh(h+h-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhF)q}q(h&Xhas happened (processed).qh'hh(h+h-hIh/}q(h1]h2]h3]h4]h6]uh8K*h!]qhBXhas happened (processed).qq}q(h&hh'hubaubaubeubhF)q}q(h&XThey traverse these states exactly once in that order. Events are also tightly bound to time and time causes events to advance their state.qh'hh(h+h-hIh/}q(h1]h2]h3]h4]h6]uh8K,h9hh!]qhBXThey traverse these states exactly once in that order. Events are also tightly bound to time and time causes events to advance their state.qq}r(h&hh'hubaubhF)r}r(h&X?Initially, events are not triggered and just objects in memory.rh'hh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8K/h9hh!]rhBX?Initially, events are not triggered and just objects in memory.rr}r(h&jh'jubaubhF)r }r (h&XIf an event gets triggered, it is scheduled at a given time and inserted into SimPy's event queue. The property :attr:`Event.triggered` becomes ``True``.h'hh(h+h-hIh/}r (h1]h2]h3]h4]h6]uh8K1h9hh!]r (hBXpIf an event gets triggered, it is scheduled at a given time and inserted into SimPy's event queue. The property r r}r(h&XpIf an event gets triggered, it is scheduled at a given time and inserted into SimPy's event queue. The property h'j ubhO)r}r(h&X:attr:`Event.triggered`rh'j h(h+h-hSh/}r(UreftypeXattrhUhVXEvent.triggeredU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8K1h!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-attrreh3]h4]h6]uh'jh!]rhBXEvent.triggeredrr}r(h&Uh'jubah-hiubaubhBX becomes rr }r!(h&X becomes h'j ubh^)r"}r#(h&X``True``h/}r$(h1]h2]h3]h4]h6]uh'j h!]r%hBXTruer&r'}r((h&Uh'j"ubah-hiubhBX.r)}r*(h&X.h'j ubeubhF)r+}r,(h&XAs long as the event is not *processed*, you can add *callbacks* to an event. Callbacks are callables that accept an event as parameter and are stored in the :attr:`Event.callbacks` list.h'hh(h+h-hIh/}r-(h1]h2]h3]h4]h6]uh8K4h9hh!]r.(hBXAs long as the event is not r/r0}r1(h&XAs long as the event is not h'j+ubh)r2}r3(h&X *processed*h/}r4(h1]h2]h3]h4]h6]uh'j+h!]r5hBX processedr6r7}r8(h&Uh'j2ubah-hubhBX, you can add r9r:}r;(h&X, you can add h'j+ubh)r<}r=(h&X *callbacks*h/}r>(h1]h2]h3]h4]h6]uh'j+h!]r?hBX callbacksr@rA}rB(h&Uh'j<ubah-hubhBX^ to an event. Callbacks are callables that accept an event as parameter and are stored in the rCrD}rE(h&X^ to an event. Callbacks are callables that accept an event as parameter and are stored in the h'j+ubhO)rF}rG(h&X:attr:`Event.callbacks`rHh'j+h(h+h-hSh/}rI(UreftypeXattrhUhVXEvent.callbacksU refdomainXpyrJh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8K4h!]rKh^)rL}rM(h&jHh/}rN(h1]h2]rO(hcjJXpy-attrrPeh3]h4]h6]uh'jFh!]rQhBXEvent.callbacksrRrS}rT(h&Uh'jLubah-hiubaubhBX list.rUrV}rW(h&X list.h'j+ubeubhF)rX}rY(h&XAn event becomes *processed* when SimPy pops it from the event queue and calls all of its callbacks. It is now no longer possible to add callbacks. The property :attr:`Event.processed` becomes ``True``.h'hh(h+h-hIh/}rZ(h1]h2]h3]h4]h6]uh8K8h9hh!]r[(hBXAn event becomes r\r]}r^(h&XAn event becomes h'jXubh)r_}r`(h&X *processed*h/}ra(h1]h2]h3]h4]h6]uh'jXh!]rbhBX processedrcrd}re(h&Uh'j_ubah-hubhBX when SimPy pops it from the event queue and calls all of its callbacks. It is now no longer possible to add callbacks. The property rfrg}rh(h&X when SimPy pops it from the event queue and calls all of its callbacks. It is now no longer possible to add callbacks. The property h'jXubhO)ri}rj(h&X:attr:`Event.processed`rkh'jXh(h+h-hSh/}rl(UreftypeXattrhUhVXEvent.processedU refdomainXpyrmh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8K8h!]rnh^)ro}rp(h&jkh/}rq(h1]h2]rr(hcjmXpy-attrrseh3]h4]h6]uh'jih!]rthBXEvent.processedrurv}rw(h&Uh'joubah-hiubaubhBX becomes rxry}rz(h&X becomes h'jXubh^)r{}r|(h&X``True``h/}r}(h1]h2]h3]h4]h6]uh'jXh!]r~hBXTruerr}r(h&Uh'j{ubah-hiubhBX.r}r(h&X.h'jXubeubhF)r}r(h&XEvents also have a *value*. The value can be set before or when the event is triggered and can be retrieved via :attr:`Event.value` or, within a process, by yielding the event (``value = yield event``).h'hh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8K`.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8KDh9hh!]r(hBXj"What? Callbacks? I've never seen no callbacks!", you might think if you have worked your way through the rr}r(h&Xj"What? Callbacks? I've never seen no callbacks!", you might think if you have worked your way through the h'jubhO)r}r(h&X&:doc:`tutorial <../simpy_intro/index>`rh'jh(h+h-hSh/}r(UreftypeXdocrhUhVX../simpy_intro/indexU refdomainUh4]h3]U refexplicith1]h2]h6]hXhYuh8KDh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjeh3]h4]h6]uh'jh!]rhBXtutorialrr}r(h&Uh'jubah-hiubaubhBX.r}r(h&X.h'jubeubhF)r}r(h&XThat's on purpose. The most common way to add a callback to an event is yielding it from your process function (``yield event``). This will add the process' *_resume()* method as a callback. That's how your process gets resumed when it yielded an event.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8KGh9hh!]r(hBXpThat's on purpose. The most common way to add a callback to an event is yielding it from your process function (rr}r(h&XpThat's on purpose. The most common way to add a callback to an event is yielding it from your process function (h'jubh^)r}r(h&X``yield event``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX yield eventrr}r(h&Uh'jubah-hiubhBX). This will add the process' rr}r(h&X). This will add the process' h'jubh)r}r(h&X *_resume()*h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX _resume()rr}r(h&Uh'jubah-hubhBXU method as a callback. That's how your process gets resumed when it yielded an event.rr}r(h&XU method as a callback. That's how your process gets resumed when it yielded an event.h'jubeubhF)r}r(h&XHowever, you can add any callable object (function) to the list of callbacks as long as it accepts an event instance as its single parameter:rh'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8KLh9hh!]rhBXHowever, you can add any callable object (function) to the list of callbacks as long as it accepts an event instance as its single parameter:rr}r(h&jh'jubaubhm)r}r(h&X>>> import simpy >>> >>> def my_callback(event): ... print('Called back from', event) ... >>> env = simpy.Environment() >>> event = env.event() >>> event.callbacks.append(my_callback) >>> event.callbacks []h'jh(h+h-hph/}r(UlinenosrUlanguagerXpythonhrhsh4]h3]h1]h2]h6]uh8KOh9hh!]rhBX>>> import simpy >>> >>> def my_callback(event): ... print('Called back from', event) ... >>> env = simpy.Environment() >>> event = env.event() >>> event.callbacks.append(my_callback) >>> event.callbacks []rr}r(h&Uh'jubaubhF)r}r(h&XIf an event has been *processed*, all of its :attr:`Event.callbacks` have been executed and the attribute is set to ``None``. This is to prevent you from adding more callbacks – these would of course never get called because the event has already happened.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8K\h9hh!]r(hBXIf an event has been rr}r(h&XIf an event has been h'jubh)r }r (h&X *processed*h/}r (h1]h2]h3]h4]h6]uh'jh!]r hBX processedr r}r(h&Uh'j ubah-hubhBX , all of its rr}r(h&X , all of its h'jubhO)r}r(h&X:attr:`Event.callbacks`rh'jh(h+h-hSh/}r(UreftypeXattrhUhVXEvent.callbacksU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8K\h!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-attrreh3]h4]h6]uh'jh!]rhBXEvent.callbacksrr }r!(h&Uh'jubah-hiubaubhBX0 have been executed and the attribute is set to r"r#}r$(h&X0 have been executed and the attribute is set to h'jubh^)r%}r&(h&X``None``h/}r'(h1]h2]h3]h4]h6]uh'jh!]r(hBXNoner)r*}r+(h&Uh'j%ubah-hiubhBX. This is to prevent you from adding more callbacks – these would of course never get called because the event has already happened.r,r-}r.(h&X. This is to prevent you from adding more callbacks – these would of course never get called because the event has already happened.h'jubeubhF)r/}r0(h&XProcesses are smart about this, though. If you yield a processed event, *_resume()* will immediately resume your process with the value of the event (because there is nothing to wait for).h'jh(h+h-hIh/}r1(h1]h2]h3]h4]h6]uh8Kah9hh!]r2(hBXHProcesses are smart about this, though. If you yield a processed event, r3r4}r5(h&XHProcesses are smart about this, though. If you yield a processed event, h'j/ubh)r6}r7(h&X *_resume()*h/}r8(h1]h2]h3]h4]h6]uh'j/h!]r9hBX _resume()r:r;}r<(h&Uh'j6ubah-hubhBXi will immediately resume your process with the value of the event (because there is nothing to wait for).r=r>}r?(h&Xi will immediately resume your process with the value of the event (because there is nothing to wait for).h'j/ubeubeubh#)r@}rA(h&Uh'hh(h+h-h.h/}rB(h1]h2]h3]h4]rChah6]rDh auh8Kgh9hh!]rE(h;)rF}rG(h&XTriggering eventsrHh'j@h(h+h-h?h/}rI(h1]h2]h3]h4]h6]uh8Kgh9hh!]rJhBXTriggering eventsrKrL}rM(h&jHh'jFubaubhF)rN}rO(h&XWhen events are triggered, they can either *succeed* or *fail*. For example, if an event is to be triggered at the end of a computation and everything works out fine, the event will *succeed*. If an exceptions occurs during that computation, the event will *fail*.h'j@h(h+h-hIh/}rP(h1]h2]h3]h4]h6]uh8Kih9hh!]rQ(hBX+When events are triggered, they can either rRrS}rT(h&X+When events are triggered, they can either h'jNubh)rU}rV(h&X *succeed*h/}rW(h1]h2]h3]h4]h6]uh'jNh!]rXhBXsucceedrYrZ}r[(h&Uh'jUubah-hubhBX or r\r]}r^(h&X or h'jNubh)r_}r`(h&X*fail*h/}ra(h1]h2]h3]h4]h6]uh'jNh!]rbhBXfailrcrd}re(h&Uh'j_ubah-hubhBXx. For example, if an event is to be triggered at the end of a computation and everything works out fine, the event will rfrg}rh(h&Xx. For example, if an event is to be triggered at the end of a computation and everything works out fine, the event will h'jNubh)ri}rj(h&X *succeed*h/}rk(h1]h2]h3]h4]h6]uh'jNh!]rlhBXsucceedrmrn}ro(h&Uh'jiubah-hubhBXB. If an exceptions occurs during that computation, the event will rprq}rr(h&XB. If an exceptions occurs during that computation, the event will h'jNubh)rs}rt(h&X*fail*h/}ru(h1]h2]h3]h4]h6]uh'jNh!]rvhBXfailrwrx}ry(h&Uh'jsubah-hubhBX.rz}r{(h&X.h'jNubeubhF)r|}r}(h&XTo trigger an event and mark it as successful, you can use ``Event.succeed(value=None)``. You can optionally pass a *value* to it (e.g., the results of a computation).h'j@h(h+h-hIh/}r~(h1]h2]h3]h4]h6]uh8Knh9hh!]r(hBX;To trigger an event and mark it as successful, you can use rr}r(h&X;To trigger an event and mark it as successful, you can use h'j|ubh^)r}r(h&X``Event.succeed(value=None)``h/}r(h1]h2]h3]h4]h6]uh'j|h!]rhBXEvent.succeed(value=None)rr}r(h&Uh'jubah-hiubhBX. You can optionally pass a rr}r(h&X. You can optionally pass a h'j|ubh)r}r(h&X*value*h/}r(h1]h2]h3]h4]h6]uh'j|h!]rhBXvaluerr}r(h&Uh'jubah-hubhBX, to it (e.g., the results of a computation).rr}r(h&X, to it (e.g., the results of a computation).h'j|ubeubhF)r}r(h&XTo trigger an event and mark it as failed, call ``Event.fail(exception)`` and pass an :class:`Exception` instance to it (e.g., the exception you caught during your failed computation).h'j@h(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Krh9hh!]r(hBX0To trigger an event and mark it as failed, call rr}r(h&X0To trigger an event and mark it as failed, call h'jubh^)r}r(h&X``Event.fail(exception)``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXEvent.fail(exception)rr}r(h&Uh'jubah-hiubhBX and pass an rr}r(h&X and pass an h'jubhO)r}r(h&X:class:`Exception`rh'jh(h+h-hSh/}r(UreftypeXclasshUhVX ExceptionU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Krh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-classreh3]h4]h6]uh'jh!]rhBX Exceptionrr}r(h&Uh'jubah-hiubaubhBXP instance to it (e.g., the exception you caught during your failed computation).rr}r(h&XP instance to it (e.g., the exception you caught during your failed computation).h'jubeubhF)r}r(h&XThere is also a generic way to trigger an event: ``Event.trigger(event)``. This will take the value and outcome (success or failure) of the event passed to it.h'j@h(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kvh9hh!]r(hBX1There is also a generic way to trigger an event: rr}r(h&X1There is also a generic way to trigger an event: h'jubh^)r}r(h&X``Event.trigger(event)``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXEvent.trigger(event)rr}r(h&Uh'jubah-hiubhBXV. This will take the value and outcome (success or failure) of the event passed to it.rr}r(h&XV. This will take the value and outcome (success or failure) of the event passed to it.h'jubeubhF)r}r(h&XAll three methods return the event instance they are bound to. This allows you to do things like ``yield Event(env).succeed()``.h'j@h(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kzh9hh!]r(hBXaAll three methods return the event instance they are bound to. This allows you to do things like rr}r(h&XaAll three methods return the event instance they are bound to. This allows you to do things like h'jubh^)r}r(h&X``yield Event(env).succeed()``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXyield Event(env).succeed()rr}r(h&Uh'jubah-hiubhBX.r}r(h&X.h'jubeubeubeubh#)r}r(h&Uh'h$h(h+h-h.h/}r(h1]h2]h3]h4]rhah6]rh auh8Kh9hh!]r(h;)r}r(h&XExample usages for ``Event``rh'jh(h+h-h?h/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBXExample usages for rr}r(h&XExample usages for rh'jubh^)r}r(h&X ``Event``rh/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXEventrr}r(h&Uh'jubah-hiubeubhF)r}r(h&X~The simple mechanics outlined above provide a great flexibility in the way events (even the basic :class:`Event`) can be used.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBXbThe simple mechanics outlined above provide a great flexibility in the way events (even the basic rr}r(h&XbThe simple mechanics outlined above provide a great flexibility in the way events (even the basic h'jubhO)r}r(h&X:class:`Event`rh'jh(h+h-hSh/}r(UreftypeXclasshUhVXEventU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-classreh3]h4]h6]uh'jh!]rhBXEventrr}r(h&Uh'jubah-hiubaubhBX) can be used.rr }r (h&X) can be used.h'jubeubhF)r }r (h&XOne example for this is that events can be shared. They can be created by a process or outside of the context of a process. They can be passed to other processes and chained:r h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXOne example for this is that events can be shared. They can be created by a process or outside of the context of a process. They can be passed to other processes and chained:rr}r(h&j h'j ubaubhm)r}r(h&X>>> class School: ... def __init__(self, env): ... self.env = env ... self.class_ends = env.event() ... self.pupil_procs = [env.process(self.pupil()) for i in range(3)] ... self.bell_proc = env.process(self.bell()) ... ... def bell(self): ... for i in range(2): ... yield self.env.timeout(45) ... self.class_ends.succeed() ... self.class_ends = self.env.event() ... print() ... ... def pupil(self): ... for i in range(2): ... print(' \o/', end='') ... yield self.class_ends ... >>> school = School(env) >>> env.run() \o/ \o/ \o/ \o/ \o/ \o/h'jh(h+h-hph/}r(jjXpythonhrhsh4]h3]h1]h2]h6]uh8Kh9hh!]rhBX>>> class School: ... def __init__(self, env): ... self.env = env ... self.class_ends = env.event() ... self.pupil_procs = [env.process(self.pupil()) for i in range(3)] ... self.bell_proc = env.process(self.bell()) ... ... def bell(self): ... for i in range(2): ... yield self.env.timeout(45) ... self.class_ends.succeed() ... self.class_ends = self.env.event() ... print() ... ... def pupil(self): ... for i in range(2): ... print(' \o/', end='') ... yield self.class_ends ... >>> school = School(env) >>> env.run() \o/ \o/ \o/ \o/ \o/ \o/rr}r(h&Uh'jubaubhF)r}r(h&XThis can also be used like the *passivate / reactivate* known from SimPy 2. The pupils *passivate* when class begins and are *reactivated* when the bell rings.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBXThis can also be used like the rr}r (h&XThis can also be used like the h'jubh)r!}r"(h&X*passivate / reactivate*h/}r#(h1]h2]h3]h4]h6]uh'jh!]r$hBXpassivate / reactivater%r&}r'(h&Uh'j!ubah-hubhBX known from SimPy 2. The pupils r(r)}r*(h&X known from SimPy 2. The pupils h'jubh)r+}r,(h&X *passivate*h/}r-(h1]h2]h3]h4]h6]uh'jh!]r.hBX passivater/r0}r1(h&Uh'j+ubah-hubhBX when class begins and are r2r3}r4(h&X when class begins and are h'jubh)r5}r6(h&X *reactivated*h/}r7(h1]h2]h3]h4]h6]uh'jh!]r8hBX reactivatedr9r:}r;(h&Uh'j5ubah-hubhBX when the bell rings.r<r=}r>(h&X when the bell rings.h'jubeubeubh#)r?}r@(h&Uh'h$h(h+h-h.h/}rA(h1]h2]h3]h4]rBhah6]rCh auh8Kh9hh!]rD(h;)rE}rF(h&X!Let time pass by: the ``Timeout``rGh'j?h(h+h-h?h/}rH(h1]h2]h3]h4]h6]uh8Kh9hh!]rI(hBXLet time pass by: the rJrK}rL(h&XLet time pass by: the rMh'jEubh^)rN}rO(h&X ``Timeout``rPh/}rQ(h1]h2]h3]h4]h6]uh'jEh!]rRhBXTimeoutrSrT}rU(h&Uh'jNubah-hiubeubhF)rV}rW(h&XTo actually let time pass in a simulation, there is the *timeout* event. A timeout has two parameters: a *delay* and an optional *value*: ``Timeout(delay, value=None)``. It triggers itself during its creation and schedules itself at ``now + delay``. Thus, the ``succeed()`` and ``fail()`` methods cannot be called again and you have to pass the event value to it when you create the timeout.h'j?h(h+h-hIh/}rX(h1]h2]h3]h4]h6]uh8Kh9hh!]rY(hBX8To actually let time pass in a simulation, there is the rZr[}r\(h&X8To actually let time pass in a simulation, there is the h'jVubh)r]}r^(h&X *timeout*h/}r_(h1]h2]h3]h4]h6]uh'jVh!]r`hBXtimeoutrarb}rc(h&Uh'j]ubah-hubhBX( event. A timeout has two parameters: a rdre}rf(h&X( event. A timeout has two parameters: a h'jVubh)rg}rh(h&X*delay*h/}ri(h1]h2]h3]h4]h6]uh'jVh!]rjhBXdelayrkrl}rm(h&Uh'jgubah-hubhBX and an optional rnro}rp(h&X and an optional h'jVubh)rq}rr(h&X*value*h/}rs(h1]h2]h3]h4]h6]uh'jVh!]rthBXvaluerurv}rw(h&Uh'jqubah-hubhBX: rxry}rz(h&X: h'jVubh^)r{}r|(h&X``Timeout(delay, value=None)``h/}r}(h1]h2]h3]h4]h6]uh'jVh!]r~hBXTimeout(delay, value=None)rr}r(h&Uh'j{ubah-hiubhBXA. It triggers itself during its creation and schedules itself at rr}r(h&XA. It triggers itself during its creation and schedules itself at h'jVubh^)r}r(h&X``now + delay``h/}r(h1]h2]h3]h4]h6]uh'jVh!]rhBX now + delayrr}r(h&Uh'jubah-hiubhBX . Thus, the rr}r(h&X . Thus, the h'jVubh^)r}r(h&X ``succeed()``h/}r(h1]h2]h3]h4]h6]uh'jVh!]rhBX succeed()rr}r(h&Uh'jubah-hiubhBX and rr}r(h&X and h'jVubh^)r}r(h&X ``fail()``h/}r(h1]h2]h3]h4]h6]uh'jVh!]rhBXfail()rr}r(h&Uh'jubah-hiubhBXg methods cannot be called again and you have to pass the event value to it when you create the timeout.rr}r(h&Xg methods cannot be called again and you have to pass the event value to it when you create the timeout.h'jVubeubhF)r}r(h&XpThe delay can be any kind of number, usually an *int* or *float* as long as it supports comparison and addition.h'j?h(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBX0The delay can be any kind of number, usually an rr}r(h&X0The delay can be any kind of number, usually an h'jubh)r}r(h&X*int*h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXintrr}r(h&Uh'jubah-hubhBX or rr}r(h&X or h'jubh)r}r(h&X*float*h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXfloatrr}r(h&Uh'jubah-hubhBX0 as long as it supports comparison and addition.rr}r(h&X0 as long as it supports comparison and addition.h'jubeubeubh#)r}r(h&Uh'h$h(h+h-h.h/}r(h1]h2]h3]h4]rhah6]rhauh8Kh9hh!]r(h;)r}r(h&XProcesses are events, toorh'jh(h+h-h?h/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXProcesses are events, toorr}r(h&jh'jubaubhF)r}r(h&XrSimPy processes (as created by :class:`Process` or ``env.process()``) have the nice property of being events, too.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBXSimPy processes (as created by rr}r(h&XSimPy processes (as created by h'jubhO)r}r(h&X:class:`Process`rh'jh(h+h-hSh/}r(UreftypeXclasshUhVXProcessU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-classreh3]h4]h6]uh'jh!]rhBXProcessrr}r(h&Uh'jubah-hiubaubhBX or rr}r(h&X or h'jubh^)r}r(h&X``env.process()``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX env.process()rr}r(h&Uh'jubah-hiubhBX.) have the nice property of being events, too.rr}r(h&X.) have the nice property of being events, too.h'jubeubhF)r}r(h&XThat means, that a process can yield another process. It will then be resumed when the other process ends. The event's value will be the return value of that process:rh'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXThat means, that a process can yield another process. It will then be resumed when the other process ends. The event's value will be the return value of that process:rr}r(h&jh'jubaubhm)r}r(h&X>>> def sub(env): ... yield env.timeout(1) ... return 23 ... >>> def parent(env): ... ret = yield env.process(sub(env)) ... return ret ... >>> env.run(env.process(parent(env))) 23h'jh(h+h-hph/}r(jjXpythonhrhsh4]h3]h1]h2]h6]uh8Kh9hh!]rhBX>>> def sub(env): ... yield env.timeout(1) ... return 23 ... >>> def parent(env): ... ret = yield env.process(sub(env)) ... return ret ... >>> env.run(env.process(parent(env))) 23rr}r(h&Uh'jubaubhF)r}r(h&XThe example above will only work in Python >= 3.3. As a workaround for older Python versions, you can use ``env.exit(23)`` with the same effect.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBXjThe example above will only work in Python >= 3.3. As a workaround for older Python versions, you can use rr}r(h&XjThe example above will only work in Python >= 3.3. As a workaround for older Python versions, you can use h'jubh^)r}r(h&X``env.exit(23)``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX env.exit(23)r r }r (h&Uh'jubah-hiubhBX with the same effect.r r }r(h&X with the same effect.h'jubeubhF)r}r(h&XWhen a process is created, it schedules an :class:`Initialize` event which will start the execution of the process when triggered. You usually won't have to deal with this type of event.h'jh(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBX+When a process is created, it schedules an rr}r(h&X+When a process is created, it schedules an h'jubhO)r}r(h&X:class:`Initialize`rh'jh(h+h-hSh/}r(UreftypeXclasshUhVX InitializeU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-classr eh3]h4]h6]uh'jh!]r!hBX Initializer"r#}r$(h&Uh'jubah-hiubaubhBX| event which will start the execution of the process when triggered. You usually won't have to deal with this type of event.r%r&}r'(h&X| event which will start the execution of the process when triggered. You usually won't have to deal with this type of event.h'jubeubhF)r(}r)(h&XIf you don't want a process to start immediately but after a certain delay, you can use :func:`simpy.util.start_delayed()`. This method returns a helper process that uses a *timeout* before actually starting a process.h'jh(h+h-hIh/}r*(h1]h2]h3]h4]h6]uh8Kh9hh!]r+(hBXXIf you don't want a process to start immediately but after a certain delay, you can use r,r-}r.(h&XXIf you don't want a process to start immediately but after a certain delay, you can use h'j(ubhO)r/}r0(h&X":func:`simpy.util.start_delayed()`r1h'j(h(h+h-hSh/}r2(UreftypeXfunchUhVXsimpy.util.start_delayedU refdomainXpyr3h4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]r4h^)r5}r6(h&j1h/}r7(h1]h2]r8(hcj3Xpy-funcr9eh3]h4]h6]uh'j/h!]r:hBXsimpy.util.start_delayed()r;r<}r=(h&Uh'j5ubah-hiubaubhBX3. This method returns a helper process that uses a r>r?}r@(h&X3. This method returns a helper process that uses a h'j(ubh)rA}rB(h&X *timeout*h/}rC(h1]h2]h3]h4]h6]uh'j(h!]rDhBXtimeoutrErF}rG(h&Uh'jAubah-hubhBX$ before actually starting a process.rHrI}rJ(h&X$ before actually starting a process.h'j(ubeubhF)rK}rL(h&X>The example from above, but with a delayed start of ``sub()``:rMh'jh(h+h-hIh/}rN(h1]h2]h3]h4]h6]uh8Kh9hh!]rO(hBX4The example from above, but with a delayed start of rPrQ}rR(h&X4The example from above, but with a delayed start of h'jKubh^)rS}rT(h&X ``sub()``h/}rU(h1]h2]h3]h4]h6]uh'jKh!]rVhBXsub()rWrX}rY(h&Uh'jSubah-hiubhBX:rZ}r[(h&X:h'jKubeubhm)r\}r](h&Xb>>> from simpy.util import start_delayed >>> >>> def sub(env): ... yield env.timeout(1) ... return 23 ... >>> def parent(env): ... start = env.now ... sub_proc = yield start_delayed(env, sub(env), delay=3) ... assert env.now - start == 3 ... ... ret = yield sub_proc ... return ret ... >>> env.run(env.process(parent(env))) 23h'jh(h+h-hph/}r^(jjXpythonhrhsh4]h3]h1]h2]h6]uh8Kh9hh!]r_hBXb>>> from simpy.util import start_delayed >>> >>> def sub(env): ... yield env.timeout(1) ... return 23 ... >>> def parent(env): ... start = env.now ... sub_proc = yield start_delayed(env, sub(env), delay=3) ... assert env.now - start == 3 ... ... ret = yield sub_proc ... return ret ... >>> env.run(env.process(parent(env))) 23r`ra}rb(h&Uh'j\ubaubcdocutils.nodes target rc)rd}re(h&X(.. _waiting_for_multiple_events_at_once:h'jh(h+h-Utargetrfh/}rg(h4]h3]h1]h2]h6]Urefidrhh uh8Kh9hh!]ubeubh#)ri}rj(h&Uh'h$h(h+Uexpect_referenced_by_namerk}rlhjdsh-h.h/}rm(h1]h2]h3]h4]rn(h heh6]ro(hheuh8Kh9hUexpect_referenced_by_idrp}rqh jdsh!]rr(h;)rs}rt(h&X#Waiting for multiple events at onceruh'jih(h+h-h?h/}rv(h1]h2]h3]h4]h6]uh8Kh9hh!]rwhBX#Waiting for multiple events at oncerxry}rz(h&juh'jsubaubhF)r{}r|(h&XSometimes, you want to wait for more than one event at the same time. For example, you may want to wait for a resource, but not for an unlimited amount of time. Or you may want to wait until all a set of events has happened.r}h'jih(h+h-hIh/}r~(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXSometimes, you want to wait for more than one event at the same time. For example, you may want to wait for a resource, but not for an unlimited amount of time. Or you may want to wait until all a set of events has happened.rr}r(h&j}h'j{ubaubhF)r}r(h&XnSimPy therefore offers the :class:`AnyOf` and :class:`AllOf` events which both are a :class:`Condition` event.h'jih(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBXSimPy therefore offers the rr}r(h&XSimPy therefore offers the h'jubhO)r}r(h&X:class:`AnyOf`rh'jh(h+h-hSh/}r(UreftypeXclasshUhVXAnyOfU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-classreh3]h4]h6]uh'jh!]rhBXAnyOfrr}r(h&Uh'jubah-hiubaubhBX and rr}r(h&X and h'jubhO)r}r(h&X:class:`AllOf`rh'jh(h+h-hSh/}r(UreftypeXclasshUhVXAllOfU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-classreh3]h4]h6]uh'jh!]rhBXAllOfrr}r(h&Uh'jubah-hiubaubhBX events which both are a rr}r(h&X events which both are a h'jubhO)r}r(h&X:class:`Condition`rh'jh(h+h-hSh/}r(UreftypeXclasshUhVX ConditionU refdomainXpyrh4]h3]U refexplicith1]h2]h6]hXhYhZNh[h\uh8Kh!]rh^)r}r(h&jh/}r(h1]h2]r(hcjXpy-classreh3]h4]h6]uh'jh!]rhBX Conditionrr}r(h&Uh'jubah-hiubaubhBX event.rr}r(h&X event.h'jubeubhF)r}r(h&XqBoth take a list of events as an argument and are triggered if at least one or all of them of them are triggered.rh'jih(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXqBoth take a list of events as an argument and are triggered if at least one or all of them of them are triggered.rr}r(h&jh'jubaubhm)r}r(h&X>>> from simpy.events import AnyOf, AllOf, Event >>> events = [Event(env) for i in range(3)] >>> a = AnyOf(env, events) # Triggers if at least one of "events" is triggered. >>> b = AllOf(env, events) # Triggers if all each of "events" is triggered.h'jih(h+h-hph/}r(jjXpythonhrhsh4]h3]h1]h2]h6]uh8Kh9hh!]rhBX>>> from simpy.events import AnyOf, AllOf, Event >>> events = [Event(env) for i in range(3)] >>> a = AnyOf(env, events) # Triggers if at least one of "events" is triggered. >>> b = AllOf(env, events) # Triggers if all each of "events" is triggered.rr}r(h&Uh'jubaubhF)r}r(h&XfThe value of a condition event is an ordered dictionary with an entry for every triggered event. In the case of ``AllOf``, the size of that dictionary will always be the same as the length of the event list. The value dict of ``AnyOf`` will have at least one entry. In both cases, the event instances are used as keys and the event values will be the values.h'jih(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8Mh9hh!]r(hBXpThe value of a condition event is an ordered dictionary with an entry for every triggered event. In the case of rr}r(h&XpThe value of a condition event is an ordered dictionary with an entry for every triggered event. In the case of h'jubh^)r}r(h&X ``AllOf``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXAllOfrr}r(h&Uh'jubah-hiubhBXi, the size of that dictionary will always be the same as the length of the event list. The value dict of rr}r(h&Xi, the size of that dictionary will always be the same as the length of the event list. The value dict of h'jubh^)r}r(h&X ``AnyOf``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXAnyOfrr}r(h&Uh'jubah-hiubhBX{ will have at least one entry. In both cases, the event instances are used as keys and the event values will be the values.rr}r(h&X{ will have at least one entry. In both cases, the event instances are used as keys and the event values will be the values.h'jubeubhF)r}r(h&XnAs a shorthand for ``AllOf`` and ``AnyOf``, you can also use the logical operators ``&`` (and) and ``|`` (or):h'jih(h+h-hIh/}r(h1]h2]h3]h4]h6]uh8M h9hh!]r(hBXAs a shorthand for rr}r(h&XAs a shorthand for h'jubh^)r}r(h&X ``AllOf``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXAllOfrr}r(h&Uh'jubah-hiubhBX and rr}r(h&X and h'jubh^)r}r(h&X ``AnyOf``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXAnyOfrr}r(h&Uh'jubah-hiubhBX), you can also use the logical operators rr}r(h&X), you can also use the logical operators h'jubh^)r}r(h&X``&``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX&r }r (h&Uh'jubah-hiubhBX (and) and r r }r (h&X (and) and h'jubh^)r}r(h&X``|``h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX|r}r(h&Uh'jubah-hiubhBX (or):rr}r(h&X (or):h'jubeubhm)r}r(h&X:>>> def test_condition(env): ... t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs') ... ret = yield t1 | t2 ... assert ret == {t1: 'spam'} ... ... t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs') ... ret = yield t1 & t2 ... assert ret == {t1: 'spam', t2: 'eggs'} ... ... # You can also concatenate & and | ... e1, e2, e3 = [env.timeout(i) for i in range(3)] ... yield (e1 | e2) & e3 ... assert all(e.triggered for e in [e1, e2, e3]) ... >>> proc = env.process(test_condition(env)) >>> env.run()h'jih(h+h-hph/}r(jjXpythonhrhsh4]h3]h1]h2]h6]uh8M h9hh!]rhBX:>>> def test_condition(env): ... t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs') ... ret = yield t1 | t2 ... assert ret == {t1: 'spam'} ... ... t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs') ... ret = yield t1 & t2 ... assert ret == {t1: 'spam', t2: 'eggs'} ... ... # You can also concatenate & and | ... e1, e2, e3 = [env.timeout(i) for i in range(3)] ... yield (e1 | e2) & e3 ... assert all(e.triggered for e in [e1, e2, e3]) ... >>> proc = env.process(test_condition(env)) >>> env.run()rr}r(h&Uh'jubaubhF)r}r(h&XThe order of condition results is identical to the order in which the condition events were specified. This allows the following idiom for conveniently fetching the values of multiple events specified in an *and* condition (including ``AllOf``):h'jih(h+h-hIh/}r (h1]h2]h3]h4]h6]uh8Mh9hh!]r!(hBXThe order of condition results is identical to the order in which the condition events were specified. This allows the following idiom for conveniently fetching the values of multiple events specified in an r"r#}r$(h&XThe order of condition results is identical to the order in which the condition events were specified. This allows the following idiom for conveniently fetching the values of multiple events specified in an h'jubh)r%}r&(h&X*and*h/}r'(h1]h2]h3]h4]h6]uh'jh!]r(hBXandr)r*}r+(h&Uh'j%ubah-hubhBX condition (including r,r-}r.(h&X condition (including h'jubh^)r/}r0(h&X ``AllOf``h/}r1(h1]h2]h3]h4]h6]uh'jh!]r2hBXAllOfr3r4}r5(h&Uh'j/ubah-hiubhBX):r6r7}r8(h&X):h'jubeubhm)r9}r:(h&X>>> def fetch_values_of_multiple_events(env): ... t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs') ... r1, r2 = (yield t1 & t2).values() ... assert r1 == 'spam' and r2 == 'eggs' ... >>> proc = env.process(fetch_values_of_multiple_events(env)) >>> env.run()h'jih(h+h-hph/}r;(jjXpythonhrhsh4]h3]h1]h2]h6]uh8M$h9hh!]r<hBX>>> def fetch_values_of_multiple_events(env): ... t1, t2 = env.timeout(1, value='spam'), env.timeout(2, value='eggs') ... r1, r2 = (yield t1 & t2).values() ... assert r1 == 'spam' and r2 == 'eggs' ... >>> proc = env.process(fetch_values_of_multiple_events(env)) >>> env.run()r=r>}r?(h&Uh'j9ubaubeubeubah&UU transformerr@NU footnote_refsrA}rBUrefnamesrC}rDUsymbol_footnotesrE]rFUautofootnote_refsrG]rHUsymbol_footnote_refsrI]rJU citationsrK]rLh9hU current_linerMNUtransform_messagesrN]rOcdocutils.nodes system_message rP)rQ}rR(h&Uh/}rS(h1]UlevelKh4]h3]Usourceh+h2]h6]UlineKUtypeUINFOrTuh!]rUhF)rV}rW(h&Uh/}rX(h1]h2]h3]h4]h6]uh'jQh!]rYhBXIHyperlink target "waiting-for-multiple-events-at-once" is not referenced.rZr[}r\(h&Uh'jVubah-hIubah-Usystem_messager]ubaUreporterr^NUid_startr_KU autofootnotesr`]raU citation_refsrb}rcUindirect_targetsrd]reUsettingsrf(cdocutils.frontend Values rgorh}ri(Ufootnote_backlinksrjKUrecord_dependenciesrkNU rfc_base_urlrlUhttp://tools.ietf.org/html/rmU tracebackrnUpep_referencesroNUstrip_commentsrpNU toc_backlinksrqUentryrrU language_codersUenrtU datestampruNU report_levelrvKU _destinationrwNU halt_levelrxKU strip_classesryNh?NUerror_encoding_error_handlerrzUbackslashreplacer{Udebugr|NUembed_stylesheetr}Uoutput_encoding_error_handlerr~UstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUK/var/build/user_builds/simpy/checkouts/3.0.4/docs/topical_guides/events.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhh jihjhjhj@hj?hh$hjhjiuUsubstitution_namesr}rh-h9h/}r(h1]h4]h3]Usourceh+h2]h6]uU footnotesr]rUrefidsr}rh ]rjdasub.PK@DRt$$8simpy-3.0.4/.doctrees/simpy_intro/how_to_proceed.doctreecdocutils.nodes document q)q}q(U nametypesq}qXhow to proceedqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUhow-to-proceedqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXP/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/how_to_proceed.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXHow to Proceedq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XHow to Proceedq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXIf you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various :doc:`examples <../examples/index>` we provide.hhhhhU paragraphq9h}q:(h!]h"]h#]h$]h&]uh(Kh)hh]q;(h2XIf you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various q(hXIf you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various hh7ubcsphinx.addnodes pending_xref q?)q@}qA(hX#:doc:`examples <../examples/index>`qBhh7hhhU pending_xrefqCh}qD(UreftypeXdocqEUrefwarnqFU reftargetqGX../examples/indexU refdomainUh$]h#]U refexplicith!]h"]h&]UrefdocqHXsimpy_intro/how_to_proceedqIuh(Kh]qJcdocutils.nodes literal qK)qL}qM(hhBh}qN(h!]h"]qO(UxrefqPhEeh#]h$]h&]uhh@h]qQh2XexamplesqRqS}qT(hUhhLubahUliteralqUubaubh2X we provide.qVqW}qX(hX we provide.hh7ubeubh6)qY}qZ(hXIf you are looking for a more detailed description of a certain aspect or feature of SimPy, the :doc:`Topical Guides <../topical_guides/index>` section might help you.hhhhhh9h}q[(h!]h"]h#]h$]h&]uh(K h)hh]q\(h2X`If you are looking for a more detailed description of a certain aspect or feature of SimPy, the q]q^}q_(hX`If you are looking for a more detailed description of a certain aspect or feature of SimPy, the hhYubh?)q`}qa(hX/:doc:`Topical Guides <../topical_guides/index>`qbhhYhhhhCh}qc(UreftypeXdocqdhFhGX../topical_guides/indexU refdomainUh$]h#]U refexplicith!]h"]h&]hHhIuh(K h]qehK)qf}qg(hhbh}qh(h!]h"]qi(hPhdeh#]h$]h&]uhh`h]qjh2XTopical Guidesqkql}qm(hUhhfubahhUubaubh2X section might help you.qnqo}qp(hX section might help you.hhYubeubh6)qq}qr(hX{Finally, there is an :doc:`API Reference <../api_reference/index>` that describes all functions and classes in full detail.hhhhhh9h}qs(h!]h"]h#]h$]h&]uh(K h)hh]qt(h2XFinally, there is an quqv}qw(hXFinally, there is an hhqubh?)qx}qy(hX-:doc:`API Reference <../api_reference/index>`qzhhqhhhhCh}q{(UreftypeXdocq|hFhGX../api_reference/indexU refdomainUh$]h#]U refexplicith!]h"]h&]hHhIuh(K h]q}hK)q~}q(hhzh}q(h!]h"]q(hPh|eh#]h$]h&]uhhxh]qh2X API Referenceqq}q(hUhh~ubahhUubaubh2X9 that describes all functions and classes in full detail.qq}q(hX9 that describes all functions and classes in full detail.hhqubeubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqĈUtrim_footnote_reference_spaceqʼnUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqɉU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUP/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/how_to_proceed.rstqUgettext_compactq؈U generatorqNUdump_internalsqNU smart_quotesqۉU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK@DyhDP##6simpy-3.0.4/.doctrees/simpy_intro/installation.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X installationqNXupgrading from simpy 2qNX what's nextqNXdownload simpyq Xpytestq Xpipq Xmockq uUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU installationqhUupgrading-from-simpy-2qhU what-s-nextqh Udownload-simpyqh Upytestqh Upipqh UmockquUchildrenq]qcdocutils.nodes section q)q }q!(U rawsourceq"UUparentq#hUsourceq$cdocutils.nodes reprunicode q%XN/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/installation.rstq&q'}q(bUtagnameq)Usectionq*U attributesq+}q,(Udupnamesq-]Uclassesq.]Ubackrefsq/]Uidsq0]q1haUnamesq2]q3hauUlineq4KUdocumentq5hh]q6(cdocutils.nodes title q7)q8}q9(h"X Installationq:h#h h$h'h)Utitleq;h+}q<(h-]h.]h/]h0]h2]uh4Kh5hh]q=cdocutils.nodes Text q>X Installationq?q@}qA(h"h:h#h8ubaubcdocutils.nodes paragraph qB)qC}qD(h"XSimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have `pip `_ installed, just typeh#h h$h'h)U paragraphqEh+}qF(h-]h.]h/]h0]h2]uh4Kh5hh]qG(h>XSimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have qHqI}qJ(h"XSimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have h#hCubcdocutils.nodes reference qK)qL}qM(h"X(`pip `_h+}qN(Unameh UrefuriqOXhttp://pypi.python.org/pypi/pipqPh0]h/]h-]h.]h2]uh#hCh]qQh>XpipqRqS}qT(h"Uh#hLubah)U referenceqUubcdocutils.nodes target qV)qW}qX(h"X" U referencedqYKh#hCh)UtargetqZh+}q[(UrefurihPh0]q\hah/]h-]h.]h2]q]h auh]ubh>X installed, just typeq^q_}q`(h"X installed, just typeh#hCubeubcdocutils.nodes literal_block qa)qb}qc(h"X$ pip install simpyh#h h$h'h)U literal_blockqdh+}qe(UlinenosqfUlanguageqgXbashU xml:spaceqhUpreserveqih0]h/]h-]h.]h2]uh4K h5hh]qjh>X$ pip install simpyqkql}qm(h"Uh#hbubaubhB)qn}qo(h"Xand you are done.qph#h h$h'h)hEh+}qq(h-]h.]h/]h0]h2]uh4K h5hh]qrh>Xand you are done.qsqt}qu(h"hph#hnubaubhB)qv}qw(h"XAlternatively, you can `download SimPy `_ and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:h#h h$h'h)hEh+}qx(h-]h.]h/]h0]h2]uh4Kh5hh]qy(h>XAlternatively, you can qzq{}q|(h"XAlternatively, you can h#hvubhK)q}}q~(h"X6`download SimPy `_h+}q(UnameXdownload SimPyhOX"http://pypi.python.org/pypi/SimPy/qh0]h/]h-]h.]h2]uh#hvh]qh>Xdownload SimPyqq}q(h"Uh#h}ubah)hUubhV)q}q(h"X% hYKh#hvh)hZh+}q(Urefurihh0]qhah/]h-]h.]h2]qh auh]ubh>Xi and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:qq}q(h"Xi and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:h#hvubeubha)q}q(h"X$ python setup.py installh#h h$h'h)hdh+}q(hfhgXbashhhhih0]h/]h-]h.]h2]uh4Kh5hh]qh>X$ python setup.py installqq}q(h"Uh#hubaubhB)q}q(h"XYou can now optionally run SimPy's tests to see if everything works fine. You need `pytest `_ and `mock `_ for this:h#h h$h'h)hEh+}q(h-]h.]h/]h0]h2]uh4Kh5hh]q(h>XSYou can now optionally run SimPy's tests to see if everything works fine. You need qq}q(h"XSYou can now optionally run SimPy's tests to see if everything works fine. You need h#hubhK)q}q(h"X`pytest `_h+}q(Unameh hOXhttp://pytest.orgqh0]h/]h-]h.]h2]uh#hh]qh>Xpytestqq}q(h"Uh#hubah)hUubhV)q}q(h"X hYKh#hh)hZh+}q(Urefurihh0]qhah/]h-]h.]h2]qh auh]ubh>X and qq}q(h"X and h#hubhK)q}q(h"X2`mock `_h+}q(Unameh hOX(http://www.voidspace.org.uk/python/mock/qh0]h/]h-]h.]h2]uh#hh]qh>Xmockqq}q(h"Uh#hubah)hUubhV)q}q(h"X+ hYKh#hh)hZh+}q(Urefurihh0]qhah/]h-]h.]h2]qh auh]ubh>X for this:qq}q(h"X for this:h#hubeubha)q}q(h"X($ python -c "import simpy; simpy.test()"h#h h$h'h)hdh+}q(hfhgXbashhhhih0]h/]h-]h.]h2]uh4Kh5hh]qh>X($ python -c "import simpy; simpy.test()"qq}q(h"Uh#hubaubh)q}q(h"Uh#h h$h'h)h*h+}q(h-]h.]h/]h0]qhah2]qhauh4K!h5hh]q(h7)q}q(h"XUpgrading from SimPy 2qh#hh$h'h)h;h+}q(h-]h.]h/]h0]h2]uh4K!h5hh]qh>XUpgrading from SimPy 2qͅq}q(h"hh#hubaubhB)q}q(h"X[If you are already familiar with SimPy 2, please read the Guide :ref:`porting_from_simpy2`.h#hh$h'h)hEh+}q(h-]h.]h/]h0]h2]uh4K#h5hh]q(h>X@If you are already familiar with SimPy 2, please read the Guide qԅq}q(h"X@If you are already familiar with SimPy 2, please read the Guide h#hubcsphinx.addnodes pending_xref q)q}q(h"X:ref:`porting_from_simpy2`qh#hh$h'h)U pending_xrefqh+}q(UreftypeXrefUrefwarnq݈U reftargetqXporting_from_simpy2U refdomainXstdqh0]h/]U refexplicith-]h.]h2]UrefdocqXsimpy_intro/installationquh4K#h]qcdocutils.nodes emphasis q)q}q(h"hh+}q(h-]h.]q(UxrefqhXstd-refqeh/]h0]h2]uh#hh]qh>Xporting_from_simpy2q녁q}q(h"Uh#hubah)Uemphasisqubaubh>X.q}q(h"X.h#hubeubeubh)q}q(h"Uh#h h$h'h)h*h+}q(h-]h.]h/]h0]qhah2]qhauh4K(h5hh]q(h7)q}q(h"X What's Nextqh#hh$h'h)h;h+}q(h-]h.]h/]h0]h2]uh4K(h5hh]qh>X What's Nextqq}q(h"hh#hubaubhB)q}r(h"XNow that you've installed SimPy, you probably want to simulate something. The :ref:`next section ` will introduce you to SimPy's basic concepts.h#hh$h'h)hEh+}r(h-]h.]h/]h0]h2]uh4K*h5hh]r(h>XNNow that you've installed SimPy, you probably want to simulate something. The rr}r(h"XNNow that you've installed SimPy, you probably want to simulate something. The h#hubh)r}r(h"X$:ref:`next section `rh#hh$h'h)hh+}r (UreftypeXrefh݈hXbasic_conceptsU refdomainXstdr h0]h/]U refexplicith-]h.]h2]hhuh4K*h]r h)r }r (h"jh+}r(h-]h.]r(hj Xstd-refreh/]h0]h2]uh#jh]rh>X next sectionrr}r(h"Uh#j ubah)hubaubh>X. will introduce you to SimPy's basic concepts.rr}r(h"X. will introduce you to SimPy's basic concepts.h#hubeubeubeubah"UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]r Usymbol_footnote_refsr!]r"U citationsr#]r$h5hU current_liner%NUtransform_messagesr&]r'Ureporterr(NUid_startr)KU autofootnotesr*]r+U citation_refsr,}r-Uindirect_targetsr.]r/Usettingsr0(cdocutils.frontend Values r1or2}r3(Ufootnote_backlinksr4KUrecord_dependenciesr5NU rfc_base_urlr6Uhttp://tools.ietf.org/html/r7U tracebackr8Upep_referencesr9NUstrip_commentsr:NU toc_backlinksr;Uentryr<U language_coder=Uenr>U datestampr?NU report_levelr@KU _destinationrANU halt_levelrBKU strip_classesrCNh;NUerror_encoding_error_handlerrDUbackslashreplacerEUdebugrFNUembed_stylesheetrGUoutput_encoding_error_handlerrHUstrictrIU sectnum_xformrJKUdump_transformsrKNU docinfo_xformrLKUwarning_streamrMNUpep_file_url_templaterNUpep-%04drOUexit_status_levelrPKUconfigrQNUstrict_visitorrRNUcloak_email_addressesrSUtrim_footnote_reference_spacerTUenvrUNUdump_pseudo_xmlrVNUexpose_internalsrWNUsectsubtitle_xformrXU source_linkrYNUrfc_referencesrZNUoutput_encodingr[Uutf-8r\U source_urlr]NUinput_encodingr^U utf-8-sigr_U_disable_configr`NU id_prefixraUU tab_widthrbKUerror_encodingrcUUTF-8rdU_sourcereUN/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/installation.rstrfUgettext_compactrgU generatorrhNUdump_internalsriNU smart_quotesrjU pep_base_urlrkUhttp://www.python.org/dev/peps/rlUsyntax_highlightrmUlongrnUinput_encoding_error_handlerrojIUauto_id_prefixrpUidrqUdoctitle_xformrrUstrip_elements_with_classesrsNU _config_filesrt]ruUfile_insertion_enabledrvU raw_enabledrwKU dump_settingsrxNubUsymbol_footnote_startryKUidsrz}r{(hh hhhhhhhhWhhhhuUsubstitution_namesr|}r}h)h5h+}r~(h-]h0]h/]Usourceh'h.]h2]uU footnotesr]rUrefidsr}rub.PK@DiN)/simpy-3.0.4/.doctrees/simpy_intro/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qXsimpy in 10 minutesqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUsimpy-in-10-minutesqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXG/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXSimPy in 10 Minutesq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XSimPy in 10 Minutesq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hX5In this section, you'll learn the basics of SimPy in just a few minutes. Afterwards, you will be able to implement a simple simulation using SimPy and you'll be able to make an educated decision if SimPy is what you need. We'll also give you some hints on how to proceed to implement more complex simulations.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(Nh)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhXsimpy_intro/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qS(NXsimpy_intro/installationqTqUNXsimpy_intro/basic_conceptsqVqWNXsimpy_intro/process_interactionqXqYNXsimpy_intro/shared_resourcesqZq[NXsimpy_intro/how_to_proceedq\q]eUhiddenq^U includefilesq_]q`(hThVhXhZh\eUmaxdepthqaKuh(K h]ubaubcdocutils.nodes comment qb)qc}qd(hX monitoringhhhhhUcommentqeh}qf(U xml:spaceqgUpreserveqhh$]h#]h!]h"]h&]uh(Kh)hh]qih2X monitoringqjqk}ql(hUhhcubaubeubahUU transformerqmNU footnote_refsqn}qoUrefnamesqp}qqUsymbol_footnotesqr]qsUautofootnote_refsqt]quUsymbol_footnote_refsqv]qwU citationsqx]qyh)hU current_lineqzNUtransform_messagesq{]q|Ureporterq}NUid_startq~KU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUG/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqljUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqʈU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK@D=Zaa8simpy-3.0.4/.doctrees/simpy_intro/basic_concepts.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xbasic_conceptsqX generatorsqX what's next?qNXour first processq NXbasic conceptsq NuUsubstitution_defsq }q Uparse_messagesq ]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUbasic-conceptsqhU generatorsqhU what-s-nextqh Uour-first-processqh Uid1quUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX.. _basic_concepts:UparentqhUsourceq cdocutils.nodes reprunicode q!XP/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/basic_concepts.rstq"q#}q$bUtagnameq%Utargetq&U attributesq'}q((Uidsq)]Ubackrefsq*]Udupnamesq+]Uclassesq,]Unamesq-]Urefidq.huUlineq/KUdocumentq0hh]ubcdocutils.nodes section q1)q2}q3(hUhhh h#Uexpect_referenced_by_nameq4}q5hhsh%Usectionq6h'}q7(h+]h,]h*]h)]q8(hheh-]q9(h heuh/Kh0hUexpect_referenced_by_idq:}q;hhsh]q<(cdocutils.nodes title q=)q>}q?(hXBasic Conceptsq@hh2h h#h%UtitleqAh'}qB(h+]h,]h*]h)]h-]uh/Kh0hh]qCcdocutils.nodes Text qDXBasic ConceptsqEqF}qG(hh@hh>ubaubcdocutils.nodes paragraph qH)qI}qJ(hXSimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled with *processes*. All processes live in an *environment*. They interact with the environment and with each other via *events*.hh2h h#h%U paragraphqKh'}qL(h+]h,]h*]h)]h-]uh/K h0hh]qM(hDXSimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled with qNqO}qP(hXSimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled with hhIubcdocutils.nodes emphasis qQ)qR}qS(hX *processes*h'}qT(h+]h,]h*]h)]h-]uhhIh]qUhDX processesqVqW}qX(hUhhRubah%UemphasisqYubhDX. All processes live in an qZq[}q\(hX. All processes live in an hhIubhQ)q]}q^(hX *environment*h'}q_(h+]h,]h*]h)]h-]uhhIh]q`hDX environmentqaqb}qc(hUhh]ubah%hYubhDX=. They interact with the environment and with each other via qdqe}qf(hX=. They interact with the environment and with each other via hhIubhQ)qg}qh(hX*events*h'}qi(h+]h,]h*]h)]h-]uhhIh]qjhDXeventsqkql}qm(hUhhgubah%hYubhDX.qn}qo(hX.hhIubeubhH)qp}qq(hX\Processes are described by simple Python `generators `_. You can call them *process function* or *process method*, depending on whether it is a normal function or method of a class. During their lifetime, they create events and ``yield`` them in order to wait for them to be triggered.hh2h h#h%hKh'}qr(h+]h,]h*]h)]h-]uh/Kh0hh]qs(hDX)Processes are described by simple Python qtqu}qv(hX)Processes are described by simple Python hhpubcdocutils.nodes reference qw)qx}qy(hXM`generators `_h'}qz(UnamehUrefuriq{X=http://docs.python.org/3/reference/expressions.html#yieldexprq|h)]h*]h+]h,]h-]uhhph]q}hDX generatorsq~q}q(hUhhxubah%U referencequbh)q}q(hX@ U referencedqKhhph%h&h'}q(Urefurih|h)]qhah*]h+]h,]h-]qhauh]ubhDX. You can call them qq}q(hX. You can call them hhpubhQ)q}q(hX*process function*h'}q(h+]h,]h*]h)]h-]uhhph]qhDXprocess functionqq}q(hUhhubah%hYubhDX or qq}q(hX or hhpubhQ)q}q(hX*process method*h'}q(h+]h,]h*]h)]h-]uhhph]qhDXprocess methodqq}q(hUhhubah%hYubhDXs, depending on whether it is a normal function or method of a class. During their lifetime, they create events and qq}q(hXs, depending on whether it is a normal function or method of a class. During their lifetime, they create events and hhpubcdocutils.nodes literal q)q}q(hX ``yield``h'}q(h+]h,]h*]h)]h-]uhhph]qhDXyieldqq}q(hUhhubah%UliteralqubhDX0 them in order to wait for them to be triggered.qq}q(hX0 them in order to wait for them to be triggered.hhpubeubhH)q}q(hXWhen a process yields an event, the process gets *suspended*. SimPy *resumes* the process, when the event occurs (we say that the event is *triggered*). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.hh2h h#h%hKh'}q(h+]h,]h*]h)]h-]uh/Kh0hh]q(hDX1When a process yields an event, the process gets qq}q(hX1When a process yields an event, the process gets hhubhQ)q}q(hX *suspended*h'}q(h+]h,]h*]h)]h-]uhhh]qhDX suspendedqq}q(hUhhubah%hYubhDX. SimPy qq}q(hX. SimPy hhubhQ)q}q(hX *resumes*h'}q(h+]h,]h*]h)]h-]uhhh]qhDXresumesqq}q(hUhhubah%hYubhDX> the process, when the event occurs (we say that the event is qÅq}q(hX> the process, when the event occurs (we say that the event is hhubhQ)q}q(hX *triggered*h'}q(h+]h,]h*]h)]h-]uhhh]qhDX triggeredqʅq}q(hUhhubah%hYubhDXy). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.qͅq}q(hXy). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.hhubeubhH)q}q(hXAn important event type is the :class:`~simpy.events.Timeout`. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A :class:`~simpy.events.Timeout` and all other events can be created by calling the appropriate method of the :class:`Environment` that the process lives in (:meth:`Environment.timeout()` for example).hh2h h#h%hKh'}q(h+]h,]h*]h)]h-]uh/Kh0hh]q(hDXAn important event type is the qԅq}q(hXAn important event type is the hhubcsphinx.addnodes pending_xref q)q}q(hX:class:`~simpy.events.Timeout`qhhh h#h%U pending_xrefqh'}q(UreftypeXclassUrefwarnq݉U reftargetqXsimpy.events.TimeoutU refdomainXpyqh)]h*]U refexplicith+]h,]h-]UrefdocqXsimpy_intro/basic_conceptsqUpy:classqNU py:moduleqX simpy.corequh/Kh]qh)q}q(hhh'}q(h+]h,]q(UxrefqhXpy-classqeh*]h)]h-]uhhh]qhDXTimeoutq텁q}q(hUhhubah%hubaubhDX. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A qq}q(hX. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A hhubh)q}q(hX:class:`~simpy.events.Timeout`qhhh h#h%hh'}q(UreftypeXclassh݉hXsimpy.events.TimeoutU refdomainXpyqh)]h*]U refexplicith+]h,]h-]hhhNhhuh/Kh]qh)q}q(hhh'}q(h+]h,]q(hhXpy-classqeh*]h)]h-]uhhh]qhDXTimeoutqr}r(hUhhubah%hubaubhDXN and all other events can be created by calling the appropriate method of the rr}r(hXN and all other events can be created by calling the appropriate method of the hhubh)r}r(hX:class:`Environment`rhhh h#h%hh'}r(UreftypeXclassh݉hX EnvironmentU refdomainXpyr h)]h*]U refexplicith+]h,]h-]hhhNhhuh/Kh]r h)r }r (hjh'}r (h+]h,]r(hj Xpy-classreh*]h)]h-]uhjh]rhDX Environmentrr}r(hUhj ubah%hubaubhDX that the process lives in (rr}r(hX that the process lives in (hhubh)r}r(hX:meth:`Environment.timeout()`rhhh h#h%hh'}r(UreftypeXmethh݉hXEnvironment.timeoutU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/Kh]rh)r}r(hjh'}r(h+]h,]r (hjXpy-methr!eh*]h)]h-]uhjh]r"hDXEnvironment.timeout()r#r$}r%(hUhjubah%hubaubhDX for example).r&r'}r((hX for example).hhubeubh1)r)}r*(hUhh2h h#h%h6h'}r+(h+]h,]h*]h)]r,hah-]r-h auh/K"h0hh]r.(h=)r/}r0(hXOur First Processr1hj)h h#h%hAh'}r2(h+]h,]h*]h)]h-]uh/K"h0hh]r3hDXOur First Processr4r5}r6(hj1hj/ubaubhH)r7}r8(hXOur first example will be a *car* process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.hj)h h#h%hKh'}r9(h+]h,]h*]h)]h-]uh/K$h0hh]r:(hDXOur first example will be a r;r<}r=(hXOur first example will be a hj7ubhQ)r>}r?(hX*car*h'}r@(h+]h,]h*]h)]h-]uhj7h]rAhDXcarrBrC}rD(hUhj>ubah%hYubhDX process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.rErF}rG(hX process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.hj7ubeubhH)rH}rI(hXSo let's start::rJhj)h h#h%hKh'}rK(h+]h,]h*]h)]h-]uh/K(h0hh]rLhDXSo let's start:rMrN}rO(hXSo let's start:hjHubaubcdocutils.nodes literal_block rP)rQ}rR(hX+>>> def car(env): ... while True: ... print('Start parking at %d' % env.now) ... parking_duration = 5 ... yield env.timeout(parking_duration) ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration)hj)h h#h%U literal_blockrSh'}rT(U xml:spacerUUpreserverVh)]h*]h+]h,]h-]uh/K*h0hh]rWhDX+>>> def car(env): ... while True: ... print('Start parking at %d' % env.now) ... parking_duration = 5 ... yield env.timeout(parking_duration) ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration)rXrY}rZ(hUhjQubaubhH)r[}r\(hXOur *car* process requires a reference to an :class:`Environment` (``env``) in order to create new events. The *car*'s behavior is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a ``yield`` statement is reached. Once the yielded event is triggered ("it occurs"), the simulation will resume the function at this statement.hj)h h#h%hKh'}r](h+]h,]h*]h)]h-]uh/K4h0hh]r^(hDXOur r_r`}ra(hXOur hj[ubhQ)rb}rc(hX*car*h'}rd(h+]h,]h*]h)]h-]uhj[h]rehDXcarrfrg}rh(hUhjbubah%hYubhDX$ process requires a reference to an rirj}rk(hX$ process requires a reference to an hj[ubh)rl}rm(hX:class:`Environment`rnhj[h h#h%hh'}ro(UreftypeXclassh݉hX EnvironmentU refdomainXpyrph)]h*]U refexplicith+]h,]h-]hhhNhhuh/K4h]rqh)rr}rs(hjnh'}rt(h+]h,]ru(hjpXpy-classrveh*]h)]h-]uhjlh]rwhDX Environmentrxry}rz(hUhjrubah%hubaubhDX (r{r|}r}(hX (hj[ubh)r~}r(hX``env``h'}r(h+]h,]h*]h)]h-]uhj[h]rhDXenvrr}r(hUhj~ubah%hubhDX%) in order to create new events. The rr}r(hX%) in order to create new events. The hj[ubhQ)r}r(hX*car*h'}r(h+]h,]h*]h)]h-]uhj[h]rhDXcarrr}r(hUhjubah%hYubhDX's behavior is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a rr}r(hX's behavior is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a hj[ubh)r}r(hX ``yield``h'}r(h+]h,]h*]h)]h-]uhj[h]rhDXyieldrr}r(hUhjubah%hubhDX statement is reached. Once the yielded event is triggered ("it occurs"), the simulation will resume the function at this statement.rr}r(hX statement is reached. Once the yielded event is triggered ("it occurs"), the simulation will resume the function at this statement.hj[ubeubhH)r}r(hXAs I said before, our car switches between the states *parking* and *driving*. It announces its new state by printing a message and the current simulation time (as returned by the :attr:`Environment.now` property). It then calls the :meth:`Environment.timeout()` factory function to create a :class:`~simpy.events.Timeout` event. This event describes the point in time the car is done *parking* (or *driving*, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/K;h0hh]r(hDX6As I said before, our car switches between the states rr}r(hX6As I said before, our car switches between the states hjubhQ)r}r(hX *parking*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXparkingrr}r(hUhjubah%hYubhDX and rr}r(hX and hjubhQ)r}r(hX *driving*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXdrivingrr}r(hUhjubah%hYubhDXg. It announces its new state by printing a message and the current simulation time (as returned by the rr}r(hXg. It announces its new state by printing a message and the current simulation time (as returned by the hjubh)r}r(hX:attr:`Environment.now`rhjh h#h%hh'}r(UreftypeXattrh݉hXEnvironment.nowU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/K;h]rh)r}r(hjh'}r(h+]h,]r(hjXpy-attrreh*]h)]h-]uhjh]rhDXEnvironment.nowrr}r(hUhjubah%hubaubhDX property). It then calls the rr}r(hX property). It then calls the hjubh)r}r(hX:meth:`Environment.timeout()`rhjh h#h%hh'}r(UreftypeXmethh݉hXEnvironment.timeoutU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/K;h]rh)r}r(hjh'}r(h+]h,]r(hjXpy-methreh*]h)]h-]uhjh]rhDXEnvironment.timeout()rr}r(hUhjubah%hubaubhDX factory function to create a rr}r(hX factory function to create a hjubh)r}r(hX:class:`~simpy.events.Timeout`rhjh h#h%hh'}r(UreftypeXclassh݉hXsimpy.events.TimeoutU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/K;h]rh)r}r(hjh'}r(h+]h,]r(hjXpy-classreh*]h)]h-]uhjh]rhDXTimeoutrr}r(hUhjubah%hubaubhDX? event. This event describes the point in time the car is done rr}r(hX? event. This event describes the point in time the car is done hjubhQ)r}r(hX *parking*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXparkingrr}r(hUhjubah%hYubhDX (or rr}r(hX (or hjubhQ)r}r(hX *driving*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXdrivingrr}r(hUhjubah%hYubhDXo, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.rr}r(hXo, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.hjubeubhH)r}r(hXiNow that the behavior of our car has been modeled, lets create an instance of it and see how it behaves::hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/KCh0hh]rhDXhNow that the behavior of our car has been modeled, lets create an instance of it and see how it behaves:rr}r(hXhNow that the behavior of our car has been modeled, lets create an instance of it and see how it behaves:hjubaubjP)r}r (hX>>> import simpy >>> env = simpy.Environment() >>> env.process(car(env)) >>> env.run(until=15) Start parking at 0 Start driving at 5 Start parking at 7 Start driving at 12 Start parking at 14hj)h h#h%jSh'}r (jUjVh)]h*]h+]h,]h-]uh/KFh0hh]r hDX>>> import simpy >>> env = simpy.Environment() >>> env.process(car(env)) >>> env.run(until=15) Start parking at 0 Start driving at 5 Start parking at 7 Start driving at 12 Start parking at 14r r }r(hUhjubaubhH)r}r(hX The first thing we need to do is to create an instance of :class:`Environment`. This instance is passed into our *car* process function. Calling it creates a *process generator* that needs to be started and added to the environment via :meth:`Environment.process()`.hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/KQh0hh]r(hDX:The first thing we need to do is to create an instance of rr}r(hX:The first thing we need to do is to create an instance of hjubh)r}r(hX:class:`Environment`rhjh h#h%hh'}r(UreftypeXclassh݉hX EnvironmentU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/KQh]rh)r}r(hjh'}r(h+]h,]r(hjXpy-classr eh*]h)]h-]uhjh]r!hDX Environmentr"r#}r$(hUhjubah%hubaubhDX#. This instance is passed into our r%r&}r'(hX#. This instance is passed into our hjubhQ)r(}r)(hX*car*h'}r*(h+]h,]h*]h)]h-]uhjh]r+hDXcarr,r-}r.(hUhj(ubah%hYubhDX( process function. Calling it creates a r/r0}r1(hX( process function. Calling it creates a hjubhQ)r2}r3(hX*process generator*h'}r4(h+]h,]h*]h)]h-]uhjh]r5hDXprocess generatorr6r7}r8(hUhj2ubah%hYubhDX; that needs to be started and added to the environment via r9r:}r;(hX; that needs to be started and added to the environment via hjubh)r<}r=(hX:meth:`Environment.process()`r>hjh h#h%hh'}r?(UreftypeXmethh݉hXEnvironment.processU refdomainXpyr@h)]h*]U refexplicith+]h,]h-]hhhNhhuh/KQh]rAh)rB}rC(hj>h'}rD(h+]h,]rE(hj@Xpy-methrFeh*]h)]h-]uhj<h]rGhDXEnvironment.process()rHrI}rJ(hUhjBubah%hubaubhDX.rK}rL(hX.hjubeubhH)rM}rN(hXNote, that at this time, none of the code of our process function is being executed. It's execution is merely scheduled at the current simulation time.rOhj)h h#h%hKh'}rP(h+]h,]h*]h)]h-]uh/KVh0hh]rQhDXNote, that at this time, none of the code of our process function is being executed. It's execution is merely scheduled at the current simulation time.rRrS}rT(hjOhjMubaubhH)rU}rV(hXThe :class:`~simpy.events.Process` returned by :meth:`~Environment.process()` can be used for process interactions (we will cover that in the next section, so we will ignore it for now).hj)h h#h%hKh'}rW(h+]h,]h*]h)]h-]uh/KYh0hh]rX(hDXThe rYrZ}r[(hXThe hjUubh)r\}r](hX:class:`~simpy.events.Process`r^hjUh h#h%hh'}r_(UreftypeXclassh݉hXsimpy.events.ProcessU refdomainXpyr`h)]h*]U refexplicith+]h,]h-]hhhNhhuh/KYh]rah)rb}rc(hj^h'}rd(h+]h,]re(hj`Xpy-classrfeh*]h)]h-]uhj\h]rghDXProcessrhri}rj(hUhjbubah%hubaubhDX returned by rkrl}rm(hX returned by hjUubh)rn}ro(hX:meth:`~Environment.process()`rphjUh h#h%hh'}rq(UreftypeXmethh݉hXEnvironment.processU refdomainXpyrrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/KYh]rsh)rt}ru(hjph'}rv(h+]h,]rw(hjrXpy-methrxeh*]h)]h-]uhjnh]ryhDX process()rzr{}r|(hUhjtubah%hubaubhDXm can be used for process interactions (we will cover that in the next section, so we will ignore it for now).r}r~}r(hXm can be used for process interactions (we will cover that in the next section, so we will ignore it for now).hjUubeubhH)r}r(hXeFinally, we start the simulation by calling :meth:`~Environment.run()` and passing an end time to it.hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/K]h0hh]r(hDX,Finally, we start the simulation by calling rr}r(hX,Finally, we start the simulation by calling hjubh)r}r(hX:meth:`~Environment.run()`rhjh h#h%hh'}r(UreftypeXmethh݉hXEnvironment.runU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/K]h]rh)r}r(hjh'}r(h+]h,]r(hjXpy-methreh*]h)]h-]uhjh]rhDXrun()rr}r(hUhjubah%hubaubhDX and passing an end time to it.rr}r(hX and passing an end time to it.hjubeubeubh1)r}r(hUhh2h h#h%h6h'}r(h+]h,]h*]h)]rhah-]rhauh/Kbh0hh]r(h=)r}r(hX What's Next?rhjh h#h%hAh'}r(h+]h,]h*]h)]h-]uh/Kbh0hh]rhDX What's Next?rr}r(hjhjubaubhH)r}r(hXYou should now be familiar with Simpy's terminology and basic concepts. In the :doc:`next section `, we will cover process interaction.hjh h#h%hKh'}r(h+]h,]h*]h)]h-]uh/Kdh0hh]r(hDXOYou should now be familiar with Simpy's terminology and basic concepts. In the rr}r(hXOYou should now be familiar with Simpy's terminology and basic concepts. In the hjubh)r}r(hX):doc:`next section `rhjh h#h%hh'}r(UreftypeXdocrh݈hXprocess_interactionU refdomainUh)]h*]U refexplicith+]h,]h-]hhuh/Kdh]rh)r}r(hjh'}r(h+]h,]r(hjeh*]h)]h-]uhjh]rhDX next sectionrr}r(hUhjubah%hubaubhDX$, we will cover process interaction.rr}r(hX$, we will cover process interaction.hjubeubeubeubehUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh'}r(h+]UlevelKh)]h*]Usourceh#h,]h-]UlineKUtypeUINFOruh]rhH)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rhDX4Hyperlink target "basic-concepts" is not referenced.rr}r(hUhjubah%hKubah%Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhANUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUP/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/basic_concepts.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlr Uhttp://www.python.org/dev/peps/r!Usyntax_highlightr"Ulongr#Uinput_encoding_error_handlerr$jUauto_id_prefixr%Uidr&Udoctitle_xformr'Ustrip_elements_with_classesr(NU _config_filesr)]r*Ufile_insertion_enabledr+U raw_enabledr,KU dump_settingsr-NubUsymbol_footnote_startr.KUidsr/}r0(hh2hjhhhj)hh2uUsubstitution_namesr1}r2h%h0h'}r3(h+]h)]h*]Usourceh#h,]h-]uU footnotesr4]r5Urefidsr6}r7h]r8hasub.PK@D3 G G:simpy-3.0.4/.doctrees/simpy_intro/shared_resources.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xshared resourcesqNX what's nextqNXbasic resource usageqNuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUshared-resourcesqhU what-s-nextqhUbasic-resource-usagequUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXR/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/shared_resources.rstqq}q bUtagnameq!Usectionq"U attributesq#}q$(Udupnamesq%]Uclassesq&]Ubackrefsq']Uidsq(]q)haUnamesq*]q+hauUlineq,KUdocumentq-hh]q.(cdocutils.nodes title q/)q0}q1(hXShared Resourcesq2hhhhh!Utitleq3h#}q4(h%]h&]h']h(]h*]uh,Kh-hh]q5cdocutils.nodes Text q6XShared Resourcesq7q8}q9(hh2hh0ubaubcdocutils.nodes paragraph q:)q;}q<(hXSimPy offers three types of :mod:`~simpy.resources` that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.hhhhh!U paragraphq=h#}q>(h%]h&]h']h(]h*]uh,Kh-hh]q?(h6XSimPy offers three types of q@qA}qB(hXSimPy offers three types of hh;ubcsphinx.addnodes pending_xref qC)qD}qE(hX:mod:`~simpy.resources`qFhh;hhh!U pending_xrefqGh#}qH(UreftypeXmodUrefwarnqIU reftargetqJXsimpy.resourcesU refdomainXpyqKh(]h']U refexplicith%]h&]h*]UrefdocqLXsimpy_intro/shared_resourcesqMUpy:classqNNU py:moduleqONuh,Kh]qPcdocutils.nodes literal qQ)qR}qS(hhFh#}qT(h%]h&]qU(UxrefqVhKXpy-modqWeh']h(]h*]uhhDh]qXh6X resourcesqYqZ}q[(hUhhRubah!Uliteralq\ubaubh6X that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.q]q^}q_(hX that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.hh;ubeubh:)q`}qa(hXcIn this section, we'll briefly introduce SimPy's :class:`~simpy.resources.resource.Resource` class.hhhhh!h=h#}qb(h%]h&]h']h(]h*]uh,K h-hh]qc(h6X1In this section, we'll briefly introduce SimPy's qdqe}qf(hX1In this section, we'll briefly introduce SimPy's hh`ubhC)qg}qh(hX+:class:`~simpy.resources.resource.Resource`qihh`hhh!hGh#}qj(UreftypeXclasshIhJX!simpy.resources.resource.ResourceU refdomainXpyqkh(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K h]qlhQ)qm}qn(hhih#}qo(h%]h&]qp(hVhkXpy-classqqeh']h(]h*]uhhgh]qrh6XResourceqsqt}qu(hUhhmubah!h\ubaubh6X class.qvqw}qx(hX class.hh`ubeubh)qy}qz(hUhhhhh!h"h#}q{(h%]h&]h']h(]q|hah*]q}hauh,Kh-hh]q~(h/)q}q(hXBasic Resource Usageqhhyhhh!h3h#}q(h%]h&]h']h(]h*]uh,Kh-hh]qh6XBasic Resource Usageqq}q(hhhhubaubh:)q}q(hXcWe'll slightly modify our electric vehicle process ``car`` that we introduced in the last sections.hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,Kh-hh]q(h6X3We'll slightly modify our electric vehicle process qq}q(hX3We'll slightly modify our electric vehicle process hhubhQ)q}q(hX``car``h#}q(h%]h&]h']h(]h*]uhhh]qh6Xcarqq}q(hUhhubah!h\ubh6X) that we introduced in the last sections.qq}q(hX) that we introduced in the last sections.hhubeubh:)q}q(hXThe car will now drive to a *battery charging station (BCS)* and request one of its two *charging spots*. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards::hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,Kh-hh]q(h6XThe car will now drive to a qq}q(hXThe car will now drive to a hhubcdocutils.nodes emphasis q)q}q(hX *battery charging station (BCS)*h#}q(h%]h&]h']h(]h*]uhhh]qh6Xbattery charging station (BCS)qq}q(hUhhubah!Uemphasisqubh6X and request one of its two qq}q(hX and request one of its two hhubh)q}q(hX*charging spots*h#}q(h%]h&]h']h(]h*]uhhh]qh6Xcharging spotsqq}q(hUhhubah!hubh6X. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards:qq}q(hX. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards:hhubeubcdocutils.nodes literal_block q)q}q(hX>>> def car(env, name, bcs, driving_time, charge_duration): ... # Simulate driving to the BCS ... yield env.timeout(driving_time) ... ... # Request one of its charging spots ... print('%s arriving at %d' % (name, env.now)) ... with bcs.request() as req: ... yield req ... ... # Charge the battery ... print('%s starting to charge at %s' % (name, env.now)) ... yield env.timeout(charge_duration) ... print('%s leaving the bcs at %s' % (name, env.now))hhyhhh!U literal_blockqh#}q(U xml:spaceqUpreserveqh(]h']h%]h&]h*]uh,Kh-hh]qh6X>>> def car(env, name, bcs, driving_time, charge_duration): ... # Simulate driving to the BCS ... yield env.timeout(driving_time) ... ... # Request one of its charging spots ... print('%s arriving at %d' % (name, env.now)) ... with bcs.request() as req: ... yield req ... ... # Charge the battery ... print('%s starting to charge at %s' % (name, env.now)) ... yield env.timeout(charge_duration) ... print('%s leaving the bcs at %s' % (name, env.now))qq}q(hUhhubaubh:)q}q(hXThe resource's :meth:`~simpy.resources.resource.Resource.request()` method generates an event that lets you wait until the resource becomes available again. If you are resumed, you "own" the resource until you *release* it.hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,K'h-hh]q(h6XThe resource's qąq}q(hXThe resource's hhubhC)q}q(hX4:meth:`~simpy.resources.resource.Resource.request()`qhhhhh!hGh#}q(UreftypeXmethhIhJX)simpy.resources.resource.Resource.requestU refdomainXpyqh(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K'h]qhQ)q}q(hhh#}q(h%]h&]q(hVhXpy-methqeh']h(]h*]uhhh]qh6X request()qӅq}q(hUhhubah!h\ubaubh6X method generates an event that lets you wait until the resource becomes available again. If you are resumed, you "own" the resource until you qօq}q(hX method generates an event that lets you wait until the resource becomes available again. If you are resumed, you "own" the resource until you hhubh)q}q(hX *release*h#}q(h%]h&]h']h(]h*]uhhh]qh6Xreleaseq݅q}q(hUhhubah!hubh6X it.qq}q(hX it.hhubeubh:)q}q(hXIf you use the resource with the ``with`` statement as shown above, the resource is automatically being released. If you call ``request()`` without ``with``, you are responsible to call :meth:`~simpy.resources.resource.Resource.release()` once you are done using the resource.hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,K+h-hh]q(h6X!If you use the resource with the q煁q}q(hX!If you use the resource with the hhubhQ)q}q(hX``with``h#}q(h%]h&]h']h(]h*]uhhh]qh6Xwithqq}q(hUhhubah!h\ubh6XU statement as shown above, the resource is automatically being released. If you call qq}q(hXU statement as shown above, the resource is automatically being released. If you call hhubhQ)q}q(hX ``request()``h#}q(h%]h&]h']h(]h*]uhhh]qh6X request()qq}q(hUhhubah!h\ubh6X without qq}q(hX without hhubhQ)q}q(hX``with``h#}r(h%]h&]h']h(]h*]uhhh]rh6Xwithrr}r(hUhhubah!h\ubh6X, you are responsible to call rr}r(hX, you are responsible to call hhubhC)r}r (hX4:meth:`~simpy.resources.resource.Resource.release()`r hhhhh!hGh#}r (UreftypeXmethhIhJX)simpy.resources.resource.Resource.releaseU refdomainXpyr h(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K+h]r hQ)r}r(hj h#}r(h%]h&]r(hVj Xpy-methreh']h(]h*]uhjh]rh6X release()rr}r(hUhjubah!h\ubaubh6X& once you are done using the resource.rr}r(hX& once you are done using the resource.hhubeubh:)r}r(hXWhen you release a resource, the next waiting process is resumed and now "owns" one of the resource's slots. The basic :class:`~simpy.resources.resource.Resource` sorts waiting processes in a *FIFO (first in---first out)* way.hhyhhh!h=h#}r(h%]h&]h']h(]h*]uh,K1h-hh]r(h6XwWhen you release a resource, the next waiting process is resumed and now "owns" one of the resource's slots. The basic rr}r (hXwWhen you release a resource, the next waiting process is resumed and now "owns" one of the resource's slots. The basic hjubhC)r!}r"(hX+:class:`~simpy.resources.resource.Resource`r#hjhhh!hGh#}r$(UreftypeXclasshIhJX!simpy.resources.resource.ResourceU refdomainXpyr%h(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K1h]r&hQ)r'}r((hj#h#}r)(h%]h&]r*(hVj%Xpy-classr+eh']h(]h*]uhj!h]r,h6XResourcer-r.}r/(hUhj'ubah!h\ubaubh6X sorts waiting processes in a r0r1}r2(hX sorts waiting processes in a hjubh)r3}r4(hX*FIFO (first in---first out)*h#}r5(h%]h&]h']h(]h*]uhjh]r6h6XFIFO (first in---first out)r7r8}r9(hUhj3ubah!hubh6X way.r:r;}r<(hX way.hjubeubh:)r=}r>(hXiA resource needs a reference to an :class:`~simpy.core.Environment` and a *capacity* when it is created::hhyhhh!h=h#}r?(h%]h&]h']h(]h*]uh,K6h-hh]r@(h6X#A resource needs a reference to an rArB}rC(hX#A resource needs a reference to an hj=ubhC)rD}rE(hX :class:`~simpy.core.Environment`rFhj=hhh!hGh#}rG(UreftypeXclasshIhJXsimpy.core.EnvironmentU refdomainXpyrHh(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K6h]rIhQ)rJ}rK(hjFh#}rL(h%]h&]rM(hVjHXpy-classrNeh']h(]h*]uhjDh]rOh6X EnvironmentrPrQ}rR(hUhjJubah!h\ubaubh6X and a rSrT}rU(hX and a hj=ubh)rV}rW(hX *capacity*h#}rX(h%]h&]h']h(]h*]uhj=h]rYh6XcapacityrZr[}r\(hUhjVubah!hubh6X when it is created:r]r^}r_(hX when it is created:hj=ubeubh)r`}ra(hXX>>> import simpy >>> env = simpy.Environment() >>> bcs = simpy.Resource(env, capacity=2)hhyhhh!hh#}rb(hhh(]h']h%]h&]h*]uh,K9h-hh]rch6XX>>> import simpy >>> env = simpy.Environment() >>> bcs = simpy.Resource(env, capacity=2)rdre}rf(hUhj`ubaubh:)rg}rh(hX|We can now create the ``car`` processes and pass a reference to our resource as well as some additional parameters to them::hhyhhh!h=h#}ri(h%]h&]h']h(]h*]uh,K=h-hh]rj(h6XWe can now create the rkrl}rm(hXWe can now create the hjgubhQ)rn}ro(hX``car``h#}rp(h%]h&]h']h(]h*]uhjgh]rqh6Xcarrrrs}rt(hUhjnubah!h\ubh6X^ processes and pass a reference to our resource as well as some additional parameters to them:rurv}rw(hX^ processes and pass a reference to our resource as well as some additional parameters to them:hjgubeubh)rx}ry(hX>>> for i in range(4): ... env.process(car(env, 'Car %d' % i, bcs, i*2, 5)) hhyhhh!hh#}rz(hhh(]h']h%]h&]h*]uh,K@h-hh]r{h6X>>> for i in range(4): ... env.process(car(env, 'Car %d' % i, bcs, i*2, 5)) r|r}}r~(hUhjxubaubh:)r}r(hXFinally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don't need to specify an *until* time---the simulation will automatically stop when there are no more events left::hhyhhh!h=h#}r(h%]h&]h']h(]h*]uh,KGh-hh]r(h6XFinally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don't need to specify an rr}r(hXFinally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don't need to specify an hjubh)r}r(hX*until*h#}r(h%]h&]h']h(]h*]uhjh]rh6Xuntilrr}r(hUhjubah!hubh6XR time---the simulation will automatically stop when there are no more events left:rr}r(hXR time---the simulation will automatically stop when there are no more events left:hjubeubh)r}r(hXC>>> env.run() Car 0 arriving at 0 Car 0 starting to charge at 0 Car 1 arriving at 2 Car 1 starting to charge at 2 Car 2 arriving at 4 Car 0 leaving the bcs at 5 Car 2 starting to charge at 5 Car 3 arriving at 6 Car 1 leaving the bcs at 7 Car 3 starting to charge at 7 Car 2 leaving the bcs at 10 Car 3 leaving the bcs at 12hhyhhh!hh#}r(hhh(]h']h%]h&]h*]uh,KKh-hh]rh6XC>>> env.run() Car 0 arriving at 0 Car 0 starting to charge at 0 Car 1 arriving at 2 Car 1 starting to charge at 2 Car 2 arriving at 4 Car 0 leaving the bcs at 5 Car 2 starting to charge at 5 Car 3 arriving at 6 Car 1 leaving the bcs at 7 Car 3 starting to charge at 7 Car 2 leaving the bcs at 10 Car 3 leaving the bcs at 12rr}r(hUhjubaubh:)r}r(hXxNote that the first to cars can start charging immediately after they arrive at the BCS, while cars 2 an 3 have to wait.rhhyhhh!h=h#}r(h%]h&]h']h(]h*]uh,KYh-hh]rh6XxNote that the first to cars can start charging immediately after they arrive at the BCS, while cars 2 an 3 have to wait.rr}r(hjhjubaubeubh)r}r(hUhhhhh!h"h#}r(h%]h&]h']h(]rhah*]rhauh,K^h-hh]r(h/)r}r(hX What's Nextrhjhhh!h3h#}r(h%]h&]h']h(]h*]uh,K^h-hh]rh6X What's Nextrr}r(hjhjubaubcdocutils.nodes comment r)r}r(hXNThe last part of this tutorial will demonstrate, how you can collect data fromhjhhh!Ucommentrh#}r(hhh(]h']h%]h&]h*]uh,K`h-hh]rh6XNThe last part of this tutorial will demonstrate, how you can collect data fromrr}r(hUhjubaubj)r}r(hXyour simulation.hjhhh!jh#}r(hhh(]h']h%]h&]h*]uh,Kbh-hh]rh6Xyour simulation.rr}r(hUhjubaubh:)r}r(hXYou should now be familiar with SimPy's basic concepts. The :doc:`next section ` shows you how you can proceed with using SimPy from here on.hjhhh!h=h#}r(h%]h&]h']h(]h*]uh,Kch-hh]r(h6X<You should now be familiar with SimPy's basic concepts. The rr}r(hX<You should now be familiar with SimPy's basic concepts. The hjubhC)r}r(hX$:doc:`next section `rhjhhh!hGh#}r(UreftypeXdocrhIhJXhow_to_proceedU refdomainUh(]h']U refexplicith%]h&]h*]hLhMuh,Kch]rhQ)r}r(hjh#}r(h%]h&]r(hVjeh']h(]h*]uhjh]rh6X next sectionrr}r(hUhjubah!h\ubaubh6X= shows you how you can proceed with using SimPy from here on.rr}r(hX= shows you how you can proceed with using SimPy from here on.hjubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh-hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh3NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingr UUTF-8r!U_sourcer"UR/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/shared_resources.rstr#Ugettext_compactr$U generatorr%NUdump_internalsr&NU smart_quotesr'U pep_base_urlr(Uhttp://www.python.org/dev/peps/r)Usyntax_highlightr*Ulongr+Uinput_encoding_error_handlerr,jUauto_id_prefixr-Uidr.Udoctitle_xformr/Ustrip_elements_with_classesr0NU _config_filesr1]Ufile_insertion_enabledr2U raw_enabledr3KU dump_settingsr4NubUsymbol_footnote_startr5KUidsr6}r7(hjhhyhhuUsubstitution_namesr8}r9h!h-h#}r:(h%]h(]h']Usourcehh&]h*]uU footnotesr;]r<Urefidsr=}r>ub.PK@DLOR\\=simpy-3.0.4/.doctrees/simpy_intro/process_interaction.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xinterrupting another processqNX what's nextqNXprocess interactionqNXwaiting for a processq NuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUinterrupting-another-processqhU what-s-nextqhUprocess-interactionqh Uwaiting-for-a-processquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXU/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/process_interaction.rstq q!}q"bUtagnameq#Usectionq$U attributesq%}q&(Udupnamesq']Uclassesq(]Ubackrefsq)]Uidsq*]q+haUnamesq,]q-hauUlineq.KUdocumentq/hh]q0(cdocutils.nodes title q1)q2}q3(hXProcess Interactionq4hhhh!h#Utitleq5h%}q6(h']h(]h)]h*]h,]uh.Kh/hh]q7cdocutils.nodes Text q8XProcess Interactionq9q:}q;(hh4hh2ubaubcdocutils.nodes paragraph q<)q=}q>(hXThe :class:`~simpy.events.Process` instance that is returned by :meth:`Environment.process()` can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.hhhh!h#U paragraphq?h%}q@(h']h(]h)]h*]h,]uh.Kh/hh]qA(h8XThe qBqC}qD(hXThe hh=ubcsphinx.addnodes pending_xref qE)qF}qG(hX:class:`~simpy.events.Process`qHhh=hh!h#U pending_xrefqIh%}qJ(UreftypeXclassUrefwarnqKU reftargetqLXsimpy.events.ProcessU refdomainXpyqMh*]h)]U refexplicith']h(]h,]UrefdocqNXsimpy_intro/process_interactionqOUpy:classqPNU py:moduleqQX simpy.coreqRuh.Kh]qScdocutils.nodes literal qT)qU}qV(hhHh%}qW(h']h(]qX(UxrefqYhMXpy-classqZeh)]h*]h,]uhhFh]q[h8XProcessq\q]}q^(hUhhUubah#Uliteralq_ubaubh8X instance that is returned by q`qa}qb(hX instance that is returned by hh=ubhE)qc}qd(hX:meth:`Environment.process()`qehh=hh!h#hIh%}qf(UreftypeXmethhKhLXEnvironment.processU refdomainXpyqgh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]qhhT)qi}qj(hheh%}qk(h']h(]ql(hYhgXpy-methqmeh)]h*]h,]uhhch]qnh8XEnvironment.process()qoqp}qq(hUhhiubah#h_ubaubh8X can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.qrqs}qt(hX can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.hh=ubeubh)qu}qv(hUhhhh!h#h$h%}qw(h']h(]h)]h*]qxhah,]qyh auh.Kh/hh]qz(h1)q{}q|(hXWaiting for a Processq}hhuhh!h#h5h%}q~(h']h(]h)]h*]h,]uh.Kh/hh]qh8XWaiting for a Processqq}q(hh}hh{ubaubh<)q}q(hXAs it happens, a SimPy :class:`~simpy.events.Process` can be used like an event (technically, a process actually *is* an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.hhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8XAs it happens, a SimPy qq}q(hXAs it happens, a SimPy hhubhE)q}q(hX:class:`~simpy.events.Process`qhhhh!h#hIh%}q(UreftypeXclasshKhLXsimpy.events.ProcessU refdomainXpyqh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]qhT)q}q(hhh%}q(h']h(]q(hYhXpy-classqeh)]h*]h,]uhhh]qh8XProcessqq}q(hUhhubah#h_ubaubh8X< can be used like an event (technically, a process actually qq}q(hX< can be used like an event (technically, a process actually hhubcdocutils.nodes emphasis q)q}q(hX*is*h%}q(h']h(]h)]h*]h,]uhhh]qh8Xisqq}q(hUhhubah#Uemphasisqubh8X  an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.qq}q(hX  an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.hhubeubh<)q}q(hXLets assume that the car from our last example magically became an electric vehicle. Electric vehicles usually take a lot of time charing their batteries after a trip. They have to wait until their battery is charged before they can start driving again.qhhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8XLets assume that the car from our last example magically became an electric vehicle. Electric vehicles usually take a lot of time charing their batteries after a trip. They have to wait until their battery is charged before they can start driving again.qq}q(hhhhubaubh<)q}q(hXWe can model this with an additional ``charge()`` process for our car. Therefore, we refactor our car to be a class with two process methods: ``run()`` (which is the original ``car()`` process function) and ``charge()``.hhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8X%We can model this with an additional qq}q(hX%We can model this with an additional hhubhT)q}q(hX ``charge()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xcharge()qq}q(hUhhubah#h_ubh8X] process for our car. Therefore, we refactor our car to be a class with two process methods: qq}q(hX] process for our car. Therefore, we refactor our car to be a class with two process methods: hhubhT)q}q(hX ``run()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xrun()qŅq}q(hUhhubah#h_ubh8X (which is the original qȅq}q(hX (which is the original hhubhT)q}q(hX ``car()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xcar()qυq}q(hUhhubah#h_ubh8X process function) and q҅q}q(hX process function) and hhubhT)q}q(hX ``charge()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xcharge()qمq}q(hUhhubah#h_ubh8X.q}q(hX.hhubeubh<)q}q(hX/The ``run`` process is automatically started when ``Car`` is instantiated. A new ``charge`` process is started every time the vehicle starts parking. By yielding the :class:`~simpy.events.Process` instance that :meth:`Environment.process()` returns, the ``run`` process starts waiting for it to finish::hhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8XThe q⅁q}q(hXThe hhubhT)q}q(hX``run``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xrunq酁q}q(hUhhubah#h_ubh8X' process is automatically started when q셁q}q(hX' process is automatically started when hhubhT)q}q(hX``Car``h%}q(h']h(]h)]h*]h,]uhhh]qh8XCarqq}q(hUhhubah#h_ubh8X is instantiated. A new qq}q(hX is instantiated. A new hhubhT)q}q(hX ``charge``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xchargeqq}q(hUhhubah#h_ubh8XK process is started every time the vehicle starts parking. By yielding the rr}r(hXK process is started every time the vehicle starts parking. By yielding the hhubhE)r}r(hX:class:`~simpy.events.Process`rhhhh!h#hIh%}r(UreftypeXclasshKhLXsimpy.events.ProcessU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]rhT)r }r (hjh%}r (h']h(]r (hYjXpy-classr eh)]h*]h,]uhjh]rh8XProcessrr}r(hUhj ubah#h_ubaubh8X instance that rr}r(hX instance that hhubhE)r}r(hX:meth:`Environment.process()`rhhhh!h#hIh%}r(UreftypeXmethhKhLXEnvironment.processU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]rhT)r}r(hjh%}r(h']h(]r(hYjXpy-methreh)]h*]h,]uhjh]r h8XEnvironment.process()r!r"}r#(hUhjubah#h_ubaubh8X returns, the r$r%}r&(hX returns, the hhubhT)r'}r((hX``run``h%}r)(h']h(]h)]h*]h,]uhhh]r*h8Xrunr+r,}r-(hUhj'ubah#h_ubh8X) process starts waiting for it to finish:r.r/}r0(hX) process starts waiting for it to finish:hhubeubcdocutils.nodes literal_block r1)r2}r3(hXS>>> class Car(object): ... def __init__(self, env): ... self.env = env ... # Start the run process everytime an instance is created. ... self.proc = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We yield the process that process() returns ... # to wait for it to finish ... yield env.process(self.charge(charge_duration)) ... ... # The charge process has finished and ... # we can start driving again. ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)hhuhh!h#U literal_blockr4h%}r5(U xml:spacer6Upreserver7h*]h)]h']h(]h,]uh.K%h/hh]r8h8XS>>> class Car(object): ... def __init__(self, env): ... self.env = env ... # Start the run process everytime an instance is created. ... self.proc = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We yield the process that process() returns ... # to wait for it to finish ... yield env.process(self.charge(charge_duration)) ... ... # The charge process has finished and ... # we can start driving again. ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)r9r:}r;(hUhj2ubaubh<)r<}r=(hXStarting the simulation is straight forward again: We create an environment, one (or more) cars and finally call meth:`~Environment.simulate()`.hhuhh!h#h?h%}r>(h']h(]h)]h*]h,]uh.K>> import simpy >>> env = simpy.Environment() >>> car = Car(env) >>> env.run(until=15) Start parking and charging at 0 Start driving at 5 Start parking and charging at 7 Start driving at 12 Start parking and charging at 14hhuhh!h#j4h%}rP(j6j7h*]h)]h']h(]h,]uh.KAh/hh]rQh8X>>> import simpy >>> env = simpy.Environment() >>> car = Car(env) >>> env.run(until=15) Start parking and charging at 0 Start driving at 5 Start parking and charging at 7 Start driving at 12 Start parking and charging at 14rRrS}rT(hUhjNubaubeubh)rU}rV(hUhhhh!h#h$h%}rW(h']h(]h)]h*]rXhah,]rYhauh.KMh/hh]rZ(h1)r[}r\(hXInterrupting Another Processr]hjUhh!h#h5h%}r^(h']h(]h)]h*]h,]uh.KMh/hh]r_h8XInterrupting Another Processr`ra}rb(hj]hj[ubaubh<)rc}rd(hXImagine, you don't want to wait until your electric vehicle is fully charged but want to interrupt the charging process and just start driving instead.rehjUhh!h#h?h%}rf(h']h(]h)]h*]h,]uh.KOh/hh]rgh8XImagine, you don't want to wait until your electric vehicle is fully charged but want to interrupt the charging process and just start driving instead.rhri}rj(hjehjcubaubh<)rk}rl(hXqSimPy allows you to interrupt a running process by calling its :meth:`~simpy.events.Process.interrupt()` method::hjUhh!h#h?h%}rm(h']h(]h)]h*]h,]uh.KRh/hh]rn(h8X?SimPy allows you to interrupt a running process by calling its rorp}rq(hX?SimPy allows you to interrupt a running process by calling its hjkubhE)rr}rs(hX):meth:`~simpy.events.Process.interrupt()`rthjkhh!h#hIh%}ru(UreftypeXmethhKhLXsimpy.events.Process.interruptU refdomainXpyrvh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.KRh]rwhT)rx}ry(hjth%}rz(h']h(]r{(hYjvXpy-methr|eh)]h*]h,]uhjrh]r}h8X interrupt()r~r}r(hUhjxubah#h_ubaubh8X method:rr}r(hX method:hjkubeubj1)r}r(hXU>>> def driver(env, car): ... yield env.timeout(3) ... car.action.interrupt()hjUhh!h#j4h%}r(j6j7h*]h)]h']h(]h,]uh.KUh/hh]rh8XU>>> def driver(env, car): ... yield env.timeout(3) ... car.action.interrupt()rr}r(hUhjubaubh<)r}r(hXThe ``driver`` process has a reference to the car's ``run`` process. After waiting for 3 time steps, it interrupts that process.hjUhh!h#h?h%}r(h']h(]h)]h*]h,]uh.KYh/hh]r(h8XThe rr}r(hXThe hjubhT)r}r(hX ``driver``h%}r(h']h(]h)]h*]h,]uhjh]rh8Xdriverrr}r(hUhjubah#h_ubh8X& process has a reference to the car's rr}r(hX& process has a reference to the car's hjubhT)r}r(hX``run``h%}r(h']h(]h)]h*]h,]uhjh]rh8Xrunrr}r(hUhjubah#h_ubh8XE process. After waiting for 3 time steps, it interrupts that process.rr}r(hXE process. After waiting for 3 time steps, it interrupts that process.hjubeubh<)r}r(hX Interrupts are thrown into process functions as :exc:`~simpy.events.Interrupt` exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event)::hjUhh!h#h?h%}r(h']h(]h)]h*]h,]uh.K\h/hh]r(h8X0Interrupts are thrown into process functions as rr}r(hX0Interrupts are thrown into process functions as hjubhE)r}r(hX:exc:`~simpy.events.Interrupt`rhjhh!h#hIh%}r(UreftypeXexchKhLXsimpy.events.InterruptU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.K\h]rhT)r}r(hjh%}r(h']h(]r(hYjXpy-excreh)]h*]h,]uhjh]rh8X Interruptrr}r(hUhjubah#h_ubaubh8X exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event):rr}r(hX exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event):hjubeubj1)r}r(hX>>> class Car(object): ... def __init__(self, env): ... self.env = env ... self.action = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We may get interrupted while charging the battery ... try: ... yield env.process(self.charge(charge_duration)) ... except simpy.Interrupt: ... # When we received an interrupt, we stop charing and ... # switch to the "driving" state ... print('Was interrupted. Hope, the battery is full enough ...') ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)hjUhh!h#j4h%}r(j6j7h*]h)]h']h(]h,]uh.Kah/hh]rh8X>>> class Car(object): ... def __init__(self, env): ... self.env = env ... self.action = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We may get interrupted while charging the battery ... try: ... yield env.process(self.charge(charge_duration)) ... except simpy.Interrupt: ... # When we received an interrupt, we stop charing and ... # switch to the "driving" state ... print('Was interrupted. Hope, the battery is full enough ...') ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)rr}r(hUhjubaubh<)r}r(hXWhen you compare the output of this simulation with the previous example, you'll notice that the car now starts driving at time ``3`` instead of ``5``::hjUhh!h#h?h%}r(h']h(]h)]h*]h,]uh.Kyh/hh]r(h8XWhen you compare the output of this simulation with the previous example, you'll notice that the car now starts driving at time rr}r(hXWhen you compare the output of this simulation with the previous example, you'll notice that the car now starts driving at time hjubhT)r}r(hX``3``h%}r(h']h(]h)]h*]h,]uhjh]rh8X3r}r(hUhjubah#h_ubh8X instead of rr}r(hX instead of hjubhT)r}r(hX``5``h%}r(h']h(]h)]h*]h,]uhjh]rh8X5r}r(hUhjubah#h_ubh8X:r}r(hX:hjubeubj1)r}r(hXH>>> env = simpy.Environment() >>> car = Car(env) >>> env.process(driver(env, car)) >>> env.run(until=15) Start parking and charging at 0 Was interrupted. Hope, the battery is full enough ... Start driving at 3 Start parking and charging at 5 Start driving at 10 Start parking and charging at 12hjUhh!h#j4h%}r(j6j7h*]h)]h']h(]h,]uh.K|h/hh]rh8XH>>> env = simpy.Environment() >>> car = Car(env) >>> env.process(driver(env, car)) >>> env.run(until=15) Start parking and charging at 0 Was interrupted. Hope, the battery is full enough ... Start driving at 3 Start parking and charging at 5 Start driving at 10 Start parking and charging at 12rr}r(hUhjubaubeubh)r}r(hUhhhh!h#h$h%}r(h']h(]h)]h*]rhah,]rhauh.Kh/hh]r(h1)r}r(hX What's Nextrhjhh!h#h5h%}r(h']h(]h)]h*]h,]uh.Kh/hh]rh8X What's Nextrr}r(hjhjubaubh<)r}r(hXWe just demonstrated two basic methods for process interactions---waiting for a process and interrupting a process. Take a look at the :doc:`../topical_guides/index` or the :class:`~simpy.events.Process` API reference for more details.hjhh!h#h?h%}r(h']h(]h)]h*]h,]uh.Kh/hh]r(h8XWe just demonstrated two basic methods for process interactions---waiting for a process and interrupting a process. Take a look at the rr}r(hXWe just demonstrated two basic methods for process interactions---waiting for a process and interrupting a process. Take a look at the hjubhE)r}r(hX:doc:`../topical_guides/index`rhjhh!h#hIh%}r(UreftypeXdocrhKhLX../topical_guides/indexU refdomainUh*]h)]U refexplicith']h(]h,]hNhOuh.Kh]rhT)r}r(hjh%}r(h']h(]r(hYjeh)]h*]h,]uhjh]rh8X../topical_guides/indexrr}r(hUhjubah#h_ubaubh8X or the rr }r (hX or the hjubhE)r }r (hX:class:`~simpy.events.Process`r hjhh!h#hIh%}r(UreftypeXclasshKhLXsimpy.events.ProcessU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]rhT)r}r(hj h%}r(h']h(]r(hYjXpy-classreh)]h*]h,]uhj h]rh8XProcessrr}r(hUhjubah#h_ubaubh8X API reference for more details.rr}r(hX API reference for more details.hjubeubh<)r}r(hX`In the :doc:`next section ` we will cover the basic usage of shared resources.hjhh!h#h?h%}r(h']h(]h)]h*]h,]uh.Kh/hh]r (h8XIn the r!r"}r#(hXIn the hjubhE)r$}r%(hX&:doc:`next section `r&hjhh!h#hIh%}r'(UreftypeXdocr(hKhLXshared_resourcesU refdomainUh*]h)]U refexplicith']h(]h,]hNhOuh.Kh]r)hT)r*}r+(hj&h%}r,(h']h(]r-(hYj(eh)]h*]h,]uhj$h]r.h8X next sectionr/r0}r1(hUhj*ubah#h_ubaubh8X3 we will cover the basic usage of shared resources.r2r3}r4(hX3 we will cover the basic usage of shared resources.hjubeubeubeubahUU transformerr5NU footnote_refsr6}r7Urefnamesr8}r9Usymbol_footnotesr:]r;Uautofootnote_refsr<]r=Usymbol_footnote_refsr>]r?U citationsr@]rAh/hU current_linerBNUtransform_messagesrC]rDUreporterrENUid_startrFKU autofootnotesrG]rHU citation_refsrI}rJUindirect_targetsrK]rLUsettingsrM(cdocutils.frontend Values rNorO}rP(Ufootnote_backlinksrQKUrecord_dependenciesrRNU rfc_base_urlrSUhttp://tools.ietf.org/html/rTU tracebackrUUpep_referencesrVNUstrip_commentsrWNU toc_backlinksrXUentryrYU language_coderZUenr[U datestampr\NU report_levelr]KU _destinationr^NU halt_levelr_KU strip_classesr`Nh5NUerror_encoding_error_handlerraUbackslashreplacerbUdebugrcNUembed_stylesheetrdUoutput_encoding_error_handlerreUstrictrfU sectnum_xformrgKUdump_transformsrhNU docinfo_xformriKUwarning_streamrjNUpep_file_url_templaterkUpep-%04drlUexit_status_levelrmKUconfigrnNUstrict_visitorroNUcloak_email_addressesrpUtrim_footnote_reference_spacerqUenvrrNUdump_pseudo_xmlrsNUexpose_internalsrtNUsectsubtitle_xformruU source_linkrvNUrfc_referencesrwNUoutput_encodingrxUutf-8ryU source_urlrzNUinput_encodingr{U utf-8-sigr|U_disable_configr}NU id_prefixr~UU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUU/var/build/user_builds/simpy/checkouts/3.0.4/docs/simpy_intro/process_interaction.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjfUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhuhjUhhhjuUsubstitution_namesr}rh#h/h%}r(h']h*]h)]Usourceh!h(]h,]uU footnotesr]rUrefidsr}rub.PK=DYיnn3simpy-3.0.4/.doctrees/about/release_process.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XwheelqXrelease processqNXbuild and releaseqNXpypiq Xtickets for the next versionq X post releaseq NX wikipediaq X preparationsq NXdocumentation buildqX python wikiquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUwheelqhUrelease-processqhUbuild-and-releaseqh Upypiqh Utickets-for-the-next-versionqh U post-releaseqh U wikipediaqh U preparationsq hUdocumentation-buildq!hU python-wikiq"uUchildrenq#]q$cdocutils.nodes section q%)q&}q'(U rawsourceq(UUparentq)hUsourceq*cdocutils.nodes reprunicode q+XK/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/release_process.rstq,q-}q.bUtagnameq/Usectionq0U attributesq1}q2(Udupnamesq3]Uclassesq4]Ubackrefsq5]Uidsq6]q7haUnamesq8]q9hauUlineq:KUdocumentq;hh#]q<(cdocutils.nodes title q=)q>}q?(h(XRelease Processq@h)h&h*h-h/UtitleqAh1}qB(h3]h4]h5]h6]h8]uh:Kh;hh#]qCcdocutils.nodes Text qDXRelease ProcessqEqF}qG(h(h@h)h>ubaubcdocutils.nodes paragraph qH)qI}qJ(h(XWThis process describes the steps to execute in order to release a new version of SimPy.qKh)h&h*h-h/U paragraphqLh1}qM(h3]h4]h5]h6]h8]uh:Kh;hh#]qNhDXWThis process describes the steps to execute in order to release a new version of SimPy.qOqP}qQ(h(hKh)hIubaubh%)qR}qS(h(Uh)h&h*h-h/h0h1}qT(h3]h4]h5]h6]qUh ah8]qVh auh:K h;hh#]qW(h=)qX}qY(h(X PreparationsqZh)hRh*h-h/hAh1}q[(h3]h4]h5]h6]h8]uh:K h;hh#]q\hDX Preparationsq]q^}q_(h(hZh)hXubaubcdocutils.nodes enumerated_list q`)qa}qb(h(Uh)hRh*h-h/Uenumerated_listqch1}qd(UsuffixqeU.h6]h5]h3]UprefixqfUh4]h8]UenumtypeqgUarabicqhuh:K h;hh#]qi(cdocutils.nodes list_item qj)qk}ql(h(XmClose all `tickets for the next version `_. h)hah*h-h/U list_itemqmh1}qn(h3]h4]h5]h6]h8]uh:Nh;hh#]qohH)qp}qq(h(XlClose all `tickets for the next version `_.h)hkh*h-h/hLh1}qr(h3]h4]h5]h6]h8]uh:K h#]qs(hDX Close all qtqu}qv(h(X Close all h)hpubcdocutils.nodes reference qw)qx}qy(h(Xa`tickets for the next version `_h1}qz(UnameXtickets for the next versionUrefuriq{X?https://bitbucket.org/simpy/simpy/issues?status=new&status=openq|h6]h5]h3]h4]h8]uh)hph#]q}hDXtickets for the next versionq~q}q(h(Uh)hxubah/U referencequbcdocutils.nodes target q)q}q(h(XB U referencedqKh)hph/Utargetqh1}q(Urefurih|h6]qhah5]h3]h4]h8]qh auh#]ubhDX.q}q(h(X.h)hpubeubaubhj)q}q(h(XUpdate the *minium* required versions of dependencies in :file:`setup.py`. Update the *exact* version of all entries in :file:`requirements.txt`. h)hah*h-h/hmh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhH)q}q(h(XUpdate the *minium* required versions of dependencies in :file:`setup.py`. Update the *exact* version of all entries in :file:`requirements.txt`.h)hh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh#]q(hDX Update the qq}q(h(X Update the h)hubcdocutils.nodes emphasis q)q}q(h(X*minium*h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXminiumqq}q(h(Uh)hubah/UemphasisqubhDX& required versions of dependencies in qq}q(h(X& required versions of dependencies in h)hubcdocutils.nodes literal q)q}q(h(Uh1}q(h6]h5]h3]h4]qXfileqaUrolehh8]uh)hh#]qhDXsetup.pyqq}q(h(Xsetup.pyh)hubah/UliteralqubhDX . Update the qq}q(h(X . Update the h)hubh)q}q(h(X*exact*h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXexactqq}q(h(Uh)hubah/hubhDX version of all entries in qq}q(h(X version of all entries in h)hubh)q}q(h(Uh1}q(h6]h5]h3]h4]qXfileqaUrolehh8]uh)hh#]qhDXrequirements.txtqq}q(h(Xrequirements.txth)hubah/hubhDX.q}q(h(X.h)hubeubaubhj)q}q(h(XRun :command:`tox` from the project root. All tests for all supported versions must pass: .. code-block:: bash $ tox [...] ________ summary ________ py27: commands succeeded py32: commands succeeded py33: commands succeeded pypy: commands succeeded congratulations :) .. note:: Tox will use the :file:`requirements.txt` to setup the venvs, so make sure you've updated it! h)hah*Nh/hmh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]q(hH)q}q(h(XYRun :command:`tox` from the project root. All tests for all supported versions must pass:h)hh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh#]q(hDXRun q΅q}q(h(XRun h)hubcdocutils.nodes strong q)q}q(h(X:command:`tox`h1}q(h3]h4]qUcommandqah5]h6]h8]uh)hh#]qhDXtoxq؅q}q(h(Uh)hubah/UstrongqubhDXG from the project root. All tests for all supported versions must pass:q܅q}q(h(XG from the project root. All tests for all supported versions must pass:h)hubeubcdocutils.nodes literal_block q)q}q(h(X$ tox [...] ________ summary ________ py27: commands succeeded py32: commands succeeded py33: commands succeeded pypy: commands succeeded congratulations :)h)hh*h-h/U literal_blockqh1}q(UlinenosqUlanguageqXbashU xml:spaceqUpreserveqh6]h5]h3]h4]h8]uh:Kh#]qhDX$ tox [...] ________ summary ________ py27: commands succeeded py32: commands succeeded py33: commands succeeded pypy: commands succeeded congratulations :)q酁q}q(h(Uh)hubaubcdocutils.nodes note q)q}q(h(X]Tox will use the :file:`requirements.txt` to setup the venvs, so make sure you've updated it!h1}q(h3]h4]h5]h6]h8]uh)hh#]qhH)q}q(h(X]Tox will use the :file:`requirements.txt` to setup the venvs, so make sure you've updated it!h)hh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:K"h#]q(hDXTox will use the qq}q(h(XTox will use the h)hubh)q}q(h(Uh1}q(h6]h5]h3]h4]qXfileqaUrolehh8]uh)hh#]qhDXrequirements.txtqq}r(h(Xrequirements.txth)hubah/hubhDX4 to setup the venvs, so make sure you've updated it!rr}r(h(X4 to setup the venvs, so make sure you've updated it!h)hubeubah/Unoterubeubhj)r}r(h(XBuild the docs (HTML is enough). Make sure there are no errors and undefined references. .. code-block:: bash $ cd docs/ $ make clean html $ cd .. h)hah*Nh/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(hH)r }r (h(XXBuild the docs (HTML is enough). Make sure there are no errors and undefined references.r h)jh*h-h/hLh1}r (h3]h4]h5]h6]h8]uh:K%h#]r hDXXBuild the docs (HTML is enough). Make sure there are no errors and undefined references.rr}r(h(j h)j ubaubh)r}r(h(X$$ cd docs/ $ make clean html $ cd ..h)jh*h-h/hh1}r(hhXbashhhh6]h5]h3]h4]h8]uh:K(h#]rhDX$$ cd docs/ $ make clean html $ cd ..rr}r(h(Uh)jubaubeubhj)r}r(h(X8Check if all authors are listed in :file:`AUTHORS.txt`. h)hah*h-h/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(X7Check if all authors are listed in :file:`AUTHORS.txt`.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:K.h#]r(hDX#Check if all authors are listed in r r!}r"(h(X#Check if all authors are listed in h)jubh)r#}r$(h(Uh1}r%(h6]h5]h3]h4]r&Xfiler'aUrolej'h8]uh)jh#]r(hDX AUTHORS.txtr)r*}r+(h(X AUTHORS.txth)j#ubah/hubhDX.r,}r-(h(X.h)jubeubaubhj)r.}r/(h(XUpdate the change logs (:file:`CHANGES.txt` and :file:`docs/about/history.rst`). Only keep changes for the current major release in :file:`CHANGES.txt` and reference the history page from there. h)hah*h-h/hmh1}r0(h3]h4]h5]h6]h8]uh:Nh;hh#]r1hH)r2}r3(h(XUpdate the change logs (:file:`CHANGES.txt` and :file:`docs/about/history.rst`). Only keep changes for the current major release in :file:`CHANGES.txt` and reference the history page from there.h)j.h*h-h/hLh1}r4(h3]h4]h5]h6]h8]uh:K0h#]r5(hDXUpdate the change logs (r6r7}r8(h(XUpdate the change logs (h)j2ubh)r9}r:(h(Uh1}r;(h6]h5]h3]h4]r<Xfiler=aUrolej=h8]uh)j2h#]r>hDX CHANGES.txtr?r@}rA(h(X CHANGES.txth)j9ubah/hubhDX and rBrC}rD(h(X and h)j2ubh)rE}rF(h(Uh1}rG(h6]h5]h3]h4]rHXfilerIaUrolejIh8]uh)j2h#]rJhDXdocs/about/history.rstrKrL}rM(h(Xdocs/about/history.rsth)jEubah/hubhDX6). Only keep changes for the current major release in rNrO}rP(h(X6). Only keep changes for the current major release in h)j2ubh)rQ}rR(h(Uh1}rS(h6]h5]h3]h4]rTXfilerUaUrolejUh8]uh)j2h#]rVhDX CHANGES.txtrWrX}rY(h(X CHANGES.txth)jQubah/hubhDX+ and reference the history page from there.rZr[}r\(h(X+ and reference the history page from there.h)j2ubeubaubhj)r]}r^(h(XfCommit all changes: .. code-block:: bash $ hg ci -m 'Updated change log for the upcoming release.' h)hah*Nh/hmh1}r_(h3]h4]h5]h6]h8]uh:Nh;hh#]r`(hH)ra}rb(h(XCommit all changes:rch)j]h*h-h/hLh1}rd(h3]h4]h5]h6]h8]uh:K4h#]rehDXCommit all changes:rfrg}rh(h(jch)jaubaubh)ri}rj(h(X9$ hg ci -m 'Updated change log for the upcoming release.'h)j]h*h-h/hh1}rk(hhXbashhhh6]h5]h3]h4]h8]uh:K6h#]rlhDX9$ hg ci -m 'Updated change log for the upcoming release.'rmrn}ro(h(Uh)jiubaubeubhj)rp}rq(h(XWrite a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it. h)hah*h-h/hmh1}rr(h3]h4]h5]h6]h8]uh:Nh;hh#]rshH)rt}ru(h(XWrite a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it.rvh)jph*h-h/hLh1}rw(h3]h4]h5]h6]h8]uh:K:h#]rxhDXWrite a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it.ryrz}r{(h(jvh)jtubaubaubeubeubh%)r|}r}(h(Uh)h&h*h-h/h0h1}r~(h3]h4]h5]h6]rhah8]rhauh:K@h;hh#]r(h=)r}r(h(XBuild and releaserh)j|h*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:K@h;hh#]rhDXBuild and releaserr}r(h(jh)jubaubh`)r}r(h(Uh)j|h*h-h/hch1}r(heU.h6]h5]h3]hfUh4]h8]hghhuh:KBh;hh#]r(hj)r}r(h(X.Test the release process. Build a source distribution and a `wheel `_ package and test them: .. code-block:: bash $ python setup.py sdist $ python setup.py bdist_wheel $ ls dist/ simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gz Try installing them: .. code-block:: bash $ rm -rf /tmp/simpy-sdist # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-sdist $ /tmp/simpy-sdist/bin/pip install pytest $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz $ /tmp/simpy-sdist/bin/python >>> import simpy >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIP and .. code-block:: bash $ rm -rf /tmp/simpy-wheel # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-wheel $ /tmp/simpy-wheel/bin/pip install pytest $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy $ /tmp/simpy-wheel/bin/python >>> import simpy # doctest: +SKIP >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIP h)jh*Nh/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(hH)r}r(h(XTest the release process. Build a source distribution and a `wheel `_ package and test them:h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:KBh#]r(hDX<Test the release process. Build a source distribution and a rr}r(h(X<Test the release process. Build a source distribution and a h)jubhw)r}r(h(X-`wheel `_h1}r(Unamehh{X"https://pypi.python.org/pypi/wheelrh6]h5]h3]h4]h8]uh)jh#]rhDXwheelrr}r(h(Uh)jubah/hubh)r}r(h(X% hKh)jh/hh1}r(Urefurijh6]rhah5]h3]h4]h8]rhauh#]ubhDX package and test them:rr}r(h(X package and test them:h)jubeubh)r}r(h(Xt$ python setup.py sdist $ python setup.py bdist_wheel $ ls dist/ simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gzh)jh*h-h/hh1}r(hhXbashhhh6]h5]h3]h4]h8]uh:KEh#]rhDXt$ python setup.py sdist $ python setup.py bdist_wheel $ ls dist/ simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gzrr}r(h(Uh)jubaubhH)r}r(h(XTry installing them:rh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:KLh#]rhDXTry installing them:rr}r(h(jh)jubaubh)r}r(h(XQ$ rm -rf /tmp/simpy-sdist # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-sdist $ /tmp/simpy-sdist/bin/pip install pytest $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz $ /tmp/simpy-sdist/bin/python >>> import simpy >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPh)jh*h-h/hh1}r(hhXbashhhh6]h5]h3]h4]h8]uh:KNh#]rhDXQ$ rm -rf /tmp/simpy-sdist # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-sdist $ /tmp/simpy-sdist/bin/pip install pytest $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz $ /tmp/simpy-sdist/bin/python >>> import simpy >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPrr}r(h(Uh)jubaubhH)r}r(h(Xandrh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:KZh#]rhDXandrr}r(h(jh)jubaubh)r}r(h(Xo$ rm -rf /tmp/simpy-wheel # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-wheel $ /tmp/simpy-wheel/bin/pip install pytest $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy $ /tmp/simpy-wheel/bin/python >>> import simpy # doctest: +SKIP >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPh)jh*h-h/hh1}r(hhXbashhhh6]h5]h3]h4]h8]uh:K\h#]rhDXo$ rm -rf /tmp/simpy-wheel # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-wheel $ /tmp/simpy-wheel/bin/pip install pytest $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy $ /tmp/simpy-wheel/bin/python >>> import simpy # doctest: +SKIP >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPrr}r(h(Uh)jubaubeubhj)r}r(h(X-Create or check your accounts for the `test server ` and `PyPI `_. Update your :file:`~/.pypirc` with your current credentials: .. code-block:: ini [distutils] index-servers = pypi test [test] repository = https://testpypi.python.org/pypi username = password = [pypi] repository = http://pypi.python.org/pypi username = password = h)jh*Nh/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(hH)r}r(h(XCreate or check your accounts for the `test server ` and `PyPI `_. Update your :file:`~/.pypirc` with your current credentials:h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Khh#]r(hDX&Create or check your accounts for the rr}r(h(X&Create or check your accounts for the h)jubcdocutils.nodes title_reference r)r}r(h(X0`test server `h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX.test server rr}r(h(Uh)jubah/Utitle_referencerubhDX and rr}r(h(X and h)jubhw)r}r(h(X&`PyPI `_h1}r(UnameXPyPIh{Xhttps://pypi.python.org/pypirh6]h5]h3]h4]h8]uh)jh#]rhDXPyPIrr}r(h(Uh)jubah/hubh)r}r(h(X hKh)jh/hh1}r(Urefurijh6]rhah5]h3]h4]h8]rh auh#]ubhDX. Update your rr}r(h(X. Update your h)jubh)r}r(h(Uh1}r(h6]h5]h3]h4]rXfileraUrolejh8]uh)jh#]rhDX ~/.pypircrr}r(h(X ~/.pypirch)jubah/hubhDX with your current credentials:rr}r(h(X with your current credentials:h)jubeubh)r}r(h(XJ[distutils] index-servers = pypi test [test] repository = https://testpypi.python.org/pypi username = password = [pypi] repository = http://pypi.python.org/pypi username = password = h)jh*h-h/hh1}r(hhXinihhh6]h5]h3]h4]h8]uh:Kmh#]rhDXJ[distutils] index-servers = pypi test [test] repository = https://testpypi.python.org/pypi username = password = [pypi] repository = http://pypi.python.org/pypi username = password = rr}r(h(Uh)jubaubeubhj)r}r (h(XRegister SimPy with the test server and upload the distributions: .. code-block:: bash $ python setup.py register -r test $ python setup.py sdist upload -r test $ python setup.py bdist_wheel upload -r test h)jh*Nh/hmh1}r (h3]h4]h5]h6]h8]uh:Nh;hh#]r (hH)r }r (h(XARegister SimPy with the test server and upload the distributions:rh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:K~h#]rhDXARegister SimPy with the test server and upload the distributions:rr}r(h(jh)j ubaubh)r}r(h(Xv$ python setup.py register -r test $ python setup.py sdist upload -r test $ python setup.py bdist_wheel upload -r testh)jh*h-h/hh1}r(hhXbashhhh6]h5]h3]h4]h8]uh:Kh#]rhDXv$ python setup.py register -r test $ python setup.py sdist upload -r test $ python setup.py bdist_wheel upload -r testrr}r(h(Uh)jubaubeubhj)r}r(h(XTCheck if the package is displayed correctly: https://testpypi.python.org/pypi/simpy h)jh*h-h/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r (h(XSCheck if the package is displayed correctly: https://testpypi.python.org/pypi/simpyh)jh*h-h/hLh1}r!(h3]h4]h5]h6]h8]uh:Kh#]r"(hDX-Check if the package is displayed correctly: r#r$}r%(h(X-Check if the package is displayed correctly: h)jubhw)r&}r'(h(X&https://testpypi.python.org/pypi/simpyr(h1}r)(Urefurij(h6]h5]h3]h4]h8]uh)jh#]r*hDX&https://testpypi.python.org/pypi/simpyr+r,}r-(h(Uh)j&ubah/hubeubaubhj)r.}r/(h(XmTest the installation again: .. code-block:: bash $ pip install -i https://testpypi.python.org/pypi simpy h)jh*Nh/hmh1}r0(h3]h4]h5]h6]h8]uh:Nh;hh#]r1(hH)r2}r3(h(XTest the installation again:r4h)j.h*h-h/hLh1}r5(h3]h4]h5]h6]h8]uh:Kh#]r6hDXTest the installation again:r7r8}r9(h(j4h)j2ubaubh)r:}r;(h(X7$ pip install -i https://testpypi.python.org/pypi simpyh)j.h*h-h/hh1}r<(hhXbashhhh6]h5]h3]h4]h8]uh:Kh#]r=hDX7$ pip install -i https://testpypi.python.org/pypi simpyr>r?}r@(h(Uh)j:ubaubeubhj)rA}rB(h(XUpdate the version number in :file:`simpy/__init__.py`, commit and create a tag: .. code-block:: bash $ hg ci -m 'Bump version from a.b.c to x.y.z' $ hg tag x.y.z $ hg push ssh://hg@bitbucket.org/simpy/simpy h)jh*Nh/hmh1}rC(h3]h4]h5]h6]h8]uh:Nh;hh#]rD(hH)rE}rF(h(XPUpdate the version number in :file:`simpy/__init__.py`, commit and create a tag:h)jAh*h-h/hLh1}rG(h3]h4]h5]h6]h8]uh:Kh#]rH(hDXUpdate the version number in rIrJ}rK(h(XUpdate the version number in h)jEubh)rL}rM(h(Uh1}rN(h6]h5]h3]h4]rOXfilerPaUrolejPh8]uh)jEh#]rQhDXsimpy/__init__.pyrRrS}rT(h(Xsimpy/__init__.pyh)jLubah/hubhDX, commit and create a tag:rUrV}rW(h(X, commit and create a tag:h)jEubeubh)rX}rY(h(Xi$ hg ci -m 'Bump version from a.b.c to x.y.z' $ hg tag x.y.z $ hg push ssh://hg@bitbucket.org/simpy/simpyh)jAh*h-h/hh1}rZ(hhXbashhhh6]h5]h3]h4]h8]uh:Kh#]r[hDXi$ hg ci -m 'Bump version from a.b.c to x.y.z' $ hg tag x.y.z $ hg push ssh://hg@bitbucket.org/simpy/simpyr\r]}r^(h(Uh)jXubaubeubhj)r_}r`(h(XFinally upload the package to PyPI and test its installation one last time: .. code-block:: bash $ python setup.py register $ python setup.py sdist upload $ python setup.py bdist_wheel upload $ pip install simpy h)jh*Nh/hmh1}ra(h3]h4]h5]h6]h8]uh:Nh;hh#]rb(hH)rc}rd(h(XKFinally upload the package to PyPI and test its installation one last time:reh)j_h*h-h/hLh1}rf(h3]h4]h5]h6]h8]uh:Kh#]rghDXKFinally upload the package to PyPI and test its installation one last time:rhri}rj(h(jeh)jcubaubh)rk}rl(h(Xr$ python setup.py register $ python setup.py sdist upload $ python setup.py bdist_wheel upload $ pip install simpyh)j_h*h-h/hh1}rm(hhXbashhhh6]h5]h3]h4]h8]uh:Kh#]rnhDXr$ python setup.py register $ python setup.py sdist upload $ python setup.py bdist_wheel upload $ pip install simpyrorp}rq(h(Uh)jkubaubeubhj)rr}rs(h(XPCheck if the package is displayed correctly: https://pypi.python.org/pypi/simpy h)jh*h-h/hmh1}rt(h3]h4]h5]h6]h8]uh:Nh;hh#]ruhH)rv}rw(h(XOCheck if the package is displayed correctly: https://pypi.python.org/pypi/simpyh)jrh*h-h/hLh1}rx(h3]h4]h5]h6]h8]uh:Kh#]ry(hDX-Check if the package is displayed correctly: rzr{}r|(h(X-Check if the package is displayed correctly: h)jvubhw)r}}r~(h(X"https://pypi.python.org/pypi/simpyrh1}r(Urefurijh6]h5]h3]h4]h8]uh)jvh#]rhDX"https://pypi.python.org/pypi/simpyrr}r(h(Uh)j}ubah/hubeubaubhj)r}r(h(XnActivate the `documentation build `_ for the new version. h)jh*h-h/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(XlActivate the `documentation build `_ for the new version.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh#]r(hDX Activate the rr}r(h(X Activate the h)jubhw)r}r(h(XJ`documentation build `_h1}r(UnameXdocumentation buildh{X1https://readthedocs.org/dashboard/simpy/versions/rh6]h5]h3]h4]h8]uh)jh#]rhDXdocumentation buildrr}r(h(Uh)jubah/hubh)r}r(h(X4 hKh)jh/hh1}r(Urefurijh6]rh!ah5]h3]h4]h8]rhauh#]ubhDX for the new version.rr}r(h(X for the new version.h)jubeubaubeubeubh%)r}r(h(Uh)h&h*h-h/h0h1}r(h3]h4]h5]h6]rhah8]rh auh:Kh;hh#]r(h=)r}r(h(X Post releaserh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDX Post releaserr}r(h(jh)jubaubh`)r}r(h(Uh)jh*h-h/hch1}r(heU.h6]h5]h3]hfUh4]h8]hghhuh:Kh;hh#]r(hj)r}r(h(XDSend the prepared email to the mailing list and post it on Google+. h)jh*h-h/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(XCSend the prepared email to the mailing list and post it on Google+.rh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh#]rhDXCSend the prepared email to the mailing list and post it on Google+.rr}r(h(jh)jubaubaubhj)r}r(h(XBUpdate `Wikipedia `_ entries. h)jh*h-h/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(XAUpdate `Wikipedia `_ entries.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh#]r(hDXUpdate rr}r(h(XUpdate h)jubhw)r}r(h(X1`Wikipedia `_h1}r(UnameX Wikipediah{X"http://en.wikipedia.org/wiki/SimPyrh6]h5]h3]h4]h8]uh)jh#]rhDX Wikipediarr}r(h(Uh)jubah/hubh)r}r(h(X% hKh)jh/hh1}r(Urefurijh6]rhah5]h3]h4]h8]rh auh#]ubhDX entries.rr}r(h(X entries.h)jubeubaubhj)r}r(h(XNUpdate `Python Wiki `_ h)jh*h-h/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(XMUpdate `Python Wiki `_h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh#]r(hDXUpdate rr}r(h(XUpdate h)jubhw)r}r(h(XF`Python Wiki `_h1}r(UnameX Python Wikih{X5https://wiki.python.org/moin/UsefulModules#Scientificrh6]h5]h3]h4]h8]uh)jh#]rhDX Python Wikirr}r(h(Uh)jubah/hubh)r}r(h(X8 hKh)jh/hh1}r(Urefurijh6]rh"ah5]h3]h4]h8]rhauh#]ubeubaubhj)r}r(h(X:Post something to Planet Python (e.g., via Stefan's blog).rh)jh*h-h/hmh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(jh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh#]rhDX:Post something to Planet Python (e.g., via Stefan's blog).rr}r(h(jh)jubaubaubeubeubeubah(UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]r h;hU current_liner NUtransform_messagesr ]r Ureporterr NUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksr Uentryr!U language_coder"Uenr#U datestampr$NU report_levelr%KU _destinationr&NU halt_levelr'KU strip_classesr(NhANUerror_encoding_error_handlerr)Ubackslashreplacer*Udebugr+NUembed_stylesheetr,Uoutput_encoding_error_handlerr-Ustrictr.U sectnum_xformr/KUdump_transformsr0NU docinfo_xformr1KUwarning_streamr2NUpep_file_url_templater3Upep-%04dr4Uexit_status_levelr5KUconfigr6NUstrict_visitorr7NUcloak_email_addressesr8Utrim_footnote_reference_spacer9Uenvr:NUdump_pseudo_xmlr;NUexpose_internalsr<NUsectsubtitle_xformr=U source_linkr>NUrfc_referencesr?NUoutput_encodingr@Uutf-8rAU source_urlrBNUinput_encodingrCU utf-8-sigrDU_disable_configrENU id_prefixrFUU tab_widthrGKUerror_encodingrHUUTF-8rIU_sourcerJUK/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/release_process.rstrKUgettext_compactrLU generatorrMNUdump_internalsrNNU smart_quotesrOU pep_base_urlrPUhttp://www.python.org/dev/peps/rQUsyntax_highlightrRUlongrSUinput_encoding_error_handlerrTj.Uauto_id_prefixrUUidrVUdoctitle_xformrWUstrip_elements_with_classesrXNU _config_filesrY]rZUfile_insertion_enabledr[U raw_enabledr\KU dump_settingsr]NubUsymbol_footnote_startr^KUidsr_}r`(hjh"jhjh!jhjh hRhh&hj|hjhhuUsubstitution_namesra}rbh/h;h1}rc(h3]h6]h5]Usourceh-h4]h8]uU footnotesrd]reUrefidsrf}rgub.PK=DKjLL4simpy-3.0.4/.doctrees/about/acknowledgements.doctreecdocutils.nodes document q)q}q(U nametypesq}qXacknowledgmentsqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUacknowledgmentsqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXL/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/acknowledgements.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXAcknowledgmentsq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XAcknowledgmentsq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXcSimPy 2 has been primarily developed by Stefan Scherfke and Ontje Lünsdorf, starting from SimPy 1.9. Their work has resulted in a most elegant combination of an object oriented API with the existing API, maintaining full backward compatibility. It has been quite easy to integrate their product into the existing SimPy code and documentation environment.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubh6)q@}qA(hXDThanks, guys, for this great job! **SimPy 2.0 is dedicated to you!**qBhhhhhh:h}qC(h!]h"]h#]h$]h&]uh(K h)hh]qD(h2X"Thanks, guys, for this great job! qEqF}qG(hX"Thanks, guys, for this great job! hh@ubcdocutils.nodes strong qH)qI}qJ(hX"**SimPy 2.0 is dedicated to you!**h}qK(h!]h"]h#]h$]h&]uhh@h]qLh2XSimPy 2.0 is dedicated to you!qMqN}qO(hUhhIubahUstrongqPubeubh6)qQ}qR(hXSimPy was originally created by Klaus Müller and Tony Vignaux. They pushed its development for several years and built the Simpy community. Without them, there would be no SimPy 3.qShhhhhh:h}qT(h!]h"]h#]h$]h&]uh(K h)hh]qUh2XSimPy was originally created by Klaus Müller and Tony Vignaux. They pushed its development for several years and built the Simpy community. Without them, there would be no SimPy 3.qVqW}qX(hhShhQubaubh6)qY}qZ(hXDThanks, guys, for this great job! **SimPy 3.0 is dedicated to you!**q[hhhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh)hh]q](h2X"Thanks, guys, for this great job! q^q_}q`(hX"Thanks, guys, for this great job! hhYubhH)qa}qb(hX"**SimPy 3.0 is dedicated to you!**h}qc(h!]h"]h#]h$]h&]uhhYh]qdh2XSimPy 3.0 is dedicated to you!qeqf}qg(hUhhaubahhPubeubh6)qh}qi(hXnThe many contributions of the SimPy user and developer communities are of course also gratefully acknowledged.qjhhhhhh:h}qk(h!]h"]h#]h$]h&]uh(Kh)hh]qlh2XnThe many contributions of the SimPy user and developer communities are of course also gratefully acknowledged.qmqn}qo(hhjhhhubaubeubahUU transformerqpNU footnote_refsqq}qrUrefnamesqs}qtUsymbol_footnotesqu]qvUautofootnote_refsqw]qxUsymbol_footnote_refsqy]qzU citationsq{]q|h)hU current_lineq}NUtransform_messagesq~]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUL/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/acknowledgements.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesq‰U pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqʉUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledq͈U raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK=DMq q )simpy-3.0.4/.doctrees/about/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX about simpyqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU about-simpyqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXA/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX About SimPyq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X About SimPyq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXThis sections is all about the non-technical stuff. How did SimPy evolve? Who was responsible for it? And what the heck were they tinking when they made it?q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(Nh)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhX about/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qS(NX about/historyqTqUNXabout/acknowledgementsqVqWNXabout/defense_of_designqXqYNXabout/release_processqZq[NX about/licenseq\q]eUhiddenq^U includefilesq_]q`(hThVhXhZh\eUmaxdepthqaKuh(K h]ubaubeubahUU transformerqbNU footnote_refsqc}qdUrefnamesqe}qfUsymbol_footnotesqg]qhUautofootnote_refsqi]qjUsymbol_footnote_refsqk]qlU citationsqm]qnh)hU current_lineqoNUtransform_messagesqp]qqUreporterqrNUid_startqsKU autofootnotesqt]quU citation_refsqv}qwUindirect_targetsqx]qyUsettingsqz(cdocutils.frontend Values q{oq|}q}(Ufootnote_backlinksq~KUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUA/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK=D)jJRR5simpy-3.0.4/.doctrees/about/defense_of_design.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X changes and decisions in simpy 3qNXpysideqX0creating events via the environment or resourcesqNXchanges in simpy 2q NX matplotlibq Xoriginal design of simpy 1q NXno more sub-classing of processq NXdefense of designq NX processes live in an environmentqNXstronger focus on eventsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU changes-and-decisions-in-simpy-3qhUpysideqhU0creating-events-via-the-environment-or-resourcesqh Uchanges-in-simpy-2qh U matplotlibqh Uoriginal-design-of-simpy-1qh Uno-more-sub-classing-of-processqh Udefense-of-designq hU processes-live-in-an-environmentq!hUstronger-focus-on-eventsq"uUchildrenq#]q$cdocutils.nodes section q%)q&}q'(U rawsourceq(UUparentq)hUsourceq*cdocutils.nodes reprunicode q+XM/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/defense_of_design.rstq,q-}q.bUtagnameq/Usectionq0U attributesq1}q2(Udupnamesq3]Uclassesq4]Ubackrefsq5]Uidsq6]q7h aUnamesq8]q9h auUlineq:KUdocumentq;hh#]q<(cdocutils.nodes title q=)q>}q?(h(XDefense of Designq@h)h&h*h-h/UtitleqAh1}qB(h3]h4]h5]h6]h8]uh:Kh;hh#]qCcdocutils.nodes Text qDXDefense of DesignqEqF}qG(h(h@h)h>ubaubcdocutils.nodes paragraph qH)qI}qJ(h(X`This document explains why SimPy is designed the way it is and how its design evolved over time.qKh)h&h*h-h/U paragraphqLh1}qM(h3]h4]h5]h6]h8]uh:Kh;hh#]qNhDX`This document explains why SimPy is designed the way it is and how its design evolved over time.qOqP}qQ(h(hKh)hIubaubh%)qR}qS(h(Uh)h&h*h-h/h0h1}qT(h3]h4]h5]h6]qUhah8]qVh auh:K h;hh#]qW(h=)qX}qY(h(XOriginal Design of SimPy 1qZh)hRh*h-h/hAh1}q[(h3]h4]h5]h6]h8]uh:K h;hh#]q\hDXOriginal Design of SimPy 1q]q^}q_(h(hZh)hXubaubhH)q`}qa(h(XSimPy 1 was heavily inspired by *Simula 67* and *Simscript*. The basic entity of the framework was a process. A process described a temporal sequence of actions.h)hRh*h-h/hLh1}qb(h3]h4]h5]h6]h8]uh:K h;hh#]qc(hDX SimPy 1 was heavily inspired by qdqe}qf(h(X SimPy 1 was heavily inspired by h)h`ubcdocutils.nodes emphasis qg)qh}qi(h(X *Simula 67*h1}qj(h3]h4]h5]h6]h8]uh)h`h#]qkhDX Simula 67qlqm}qn(h(Uh)hhubah/UemphasisqoubhDX and qpqq}qr(h(X and h)h`ubhg)qs}qt(h(X *Simscript*h1}qu(h3]h4]h5]h6]h8]uh)h`h#]qvhDX Simscriptqwqx}qy(h(Uh)hsubah/houbhDXf. The basic entity of the framework was a process. A process described a temporal sequence of actions.qzq{}q|(h(Xf. The basic entity of the framework was a process. A process described a temporal sequence of actions.h)h`ubeubhH)q}}q~(h(XIn SimPy 1, you implemented a process by sub-classing ``Process``. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn't of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the *process execution method* (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.h)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh;hh#]q(hDX6In SimPy 1, you implemented a process by sub-classing qq}q(h(X6In SimPy 1, you implemented a process by sub-classing h)h}ubcdocutils.nodes literal q)q}q(h(X ``Process``h1}q(h3]h4]h5]h6]h8]uh)h}h#]qhDXProcessqq}q(h(Uh)hubah/UliteralqubhDX. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn't of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the qq}q(h(X. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn't of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the h)h}ubhg)q}q(h(X*process execution method*h1}q(h3]h4]h5]h6]h8]uh)h}h#]qhDXprocess execution methodqq}q(h(Uh)hubah/houbhDX (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.qq}q(h(X (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.h)h}ubeubhH)q}q(h(X}The simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from *Process* and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.h)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh;hh#]q(hDXThe simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from qq}q(h(XThe simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from h)hubhg)q}q(h(X *Process*h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXProcessqq}q(h(Uh)hubah/houbhDX and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.qq}q(h(X and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.h)hubeubhH)q}q(h(XSimPy 1 also followed the "batteries included" approach, providing shared resources, monitoring, plotting, GUIs and multiple types of simulations ("normal", real-time, manual stepping, with tracing).qh)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh;hh#]qhDXSimPy 1 also followed the "batteries included" approach, providing shared resources, monitoring, plotting, GUIs and multiple types of simulations ("normal", real-time, manual stepping, with tracing).qq}q(h(hh)hubaubhH)q}q(h(XZThe following code fragment shows how a simple simulation could be implemented in SimPy 1:qh)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:K"h;hh#]qhDXZThe following code fragment shows how a simple simulation could be implemented in SimPy 1:qq}q(h(hh)hubaubcdocutils.nodes literal_block q)q}q(h(Xwfrom SimPy.Simulation import Process, hold, initialize, activate, simulate class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 initialize() proc = MyProcess() activate(proc, proc.pem(3)) simulate(until=10) sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)h)hRh*h-h/U literal_blockqh1}q(UlinenosqUlanguageqXpythonU xml:spaceqUpreserveqh6]h5]h3]h4]h8]uh:K%h;hh#]qhDXwfrom SimPy.Simulation import Process, hold, initialize, activate, simulate class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 initialize() proc = MyProcess() activate(proc, proc.pem(3)) simulate(until=10) sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)qŅq}q(h(Uh)hubaubeubh%)q}q(h(Uh)h&h*h-h/h0h1}q(h3]h4]h5]h6]qhah8]qh auh:Kh;hh#]q(hDXSimpy 2 mostly sticked with Simpy 1's design, but added an object orient API for the execution of simulations, allowing them to be executed in parallel. Since processes and the simulation state were so closely coupled, you now needed to pass the qڅq}q(h(XSimpy 2 mostly sticked with Simpy 1's design, but added an object orient API for the execution of simulations, allowing them to be executed in parallel. Since processes and the simulation state were so closely coupled, you now needed to pass the h)hubh)q}q(h(X``Simulation``h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX Simulationqᅁq}q(h(Uh)hubah/hubhDX  instance into your process to "bind" them to that instance. Additionally, you still had to activate the process. If you forgot to pass the simulation instance, the process would use a global instance thereby breaking your program. SimPy 2's OO-API looked like this:q䅁q}q(h(X  instance into your process to "bind" them to that instance. Additionally, you still had to activate the process. If you forgot to pass the simulation instance, the process would use a global instance thereby breaking your program. SimPy 2's OO-API looked like this:h)hubeubh)q}q(h(Xfrom SimPy.Simulation import Simulation, Process, hold class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)h)hh*h-h/hh1}q(hhXpythonhhh6]h5]h3]h4]h8]uh:KFh;hh#]qhDXfrom SimPy.Simulation import Simulation, Process, hold class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)q녁q}q(h(Uh)hubaubeubh%)q}q(h(Uh)h&h*h-h/h0h1}q(h3]h4]h5]h6]qhah8]qhauh:KVh;hh#]q(h=)q}q(h(X Changes and Decisions in SimPy 3qh)hh*h-h/hAh1}q(h3]h4]h5]h6]h8]uh:KVh;hh#]qhDX Changes and Decisions in SimPy 3qq}q(h(hh)hubaubhH)q}q(h(XDThe original goals for SimPy 3 were to simplify and PEP8-ify its API and to clean up and modularize its internals. We knew from the beginning that our goals would not be achievable without breaking backwards compatibility with SimPy 2. However, we didn't expect the API changes to become as extensive as they ended up to be.qh)hh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:KXh;hh#]rhDXDThe original goals for SimPy 3 were to simplify and PEP8-ify its API and to clean up and modularize its internals. We knew from the beginning that our goals would not be achievable without breaking backwards compatibility with SimPy 2. However, we didn't expect the API changes to become as extensive as they ended up to be.rr}r(h(hh)hubaubhH)r}r(h(XWe also removed some of the included batteries, namely SimPy's plotting and GUI capabilities, since dedicated libraries like `matplotlib `_ or `PySide `_ do a much better job here.h)hh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:K^h;hh#]r(hDX}We also removed some of the included batteries, namely SimPy's plotting and GUI capabilities, since dedicated libraries like rr }r (h(X}We also removed some of the included batteries, namely SimPy's plotting and GUI capabilities, since dedicated libraries like h)jubcdocutils.nodes reference r )r }r (h(X&`matplotlib `_h1}r(Unameh UrefurirXhttp://matplotlib.org/rh6]h5]h3]h4]h8]uh)jh#]rhDX matplotlibrr}r(h(Uh)j ubah/U referencerubcdocutils.nodes target r)r}r(h(X U referencedrKh)jh/Utargetrh1}r(Urefurijh6]rhah5]h3]h4]h8]rh auh#]ubhDX or rr}r (h(X or h)jubj )r!}r"(h(X-`PySide `_h1}r#(UnameXPySidejX!http://qt-project.org/wiki/PySider$h6]h5]h3]h4]h8]uh)jh#]r%hDXPySider&r'}r((h(Uh)j!ubah/jubj)r)}r*(h(X$ jKh)jh/jh1}r+(Urefurij$h6]r,hah5]h3]h4]h8]r-hauh#]ubhDX do a much better job here.r.r/}r0(h(X do a much better job here.h)jubeubhH)r1}r2(h(XHowever, by far the most changes are---from the end user's view---mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing ``yield hold, self, 1`` with ``yield env.timeout(1)``).h)hh*h-h/hLh1}r3(h3]h4]h5]h6]h8]uh:Kch;hh#]r4(hDXHowever, by far the most changes are---from the end user's view---mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing r5r6}r7(h(XHowever, by far the most changes are---from the end user's view---mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing h)j1ubh)r8}r9(h(X``yield hold, self, 1``h1}r:(h3]h4]h5]h6]h8]uh)j1h#]r;hDXyield hold, self, 1r<r=}r>(h(Uh)j8ubah/hubhDX with r?r@}rA(h(X with h)j1ubh)rB}rC(h(X``yield env.timeout(1)``h1}rD(h3]h4]h5]h6]h8]uh)j1h#]rEhDXyield env.timeout(1)rFrG}rH(h(Uh)jBubah/hubhDX).rIrJ}rK(h(X).h)j1ubeubhH)rL}rM(h(X2In short, the most notable changes in SimPy 3 are:rNh)hh*h-h/hLh1}rO(h3]h4]h5]h6]h8]uh:Khh;hh#]rPhDX2In short, the most notable changes in SimPy 3 are:rQrR}rS(h(jNh)jLubaubcdocutils.nodes bullet_list rT)rU}rV(h(Uh)hh*h-h/U bullet_listrWh1}rX(UbulletrYX-h6]h5]h3]h4]h8]uh:Kjh;hh#]rZ(cdocutils.nodes list_item r[)r\}r](h(X]No more sub-classing of ``Process`` required. PEMs can even be simple module level functions.h)jUh*h-h/U list_itemr^h1}r_(h3]h4]h5]h6]h8]uh:Nh;hh#]r`hH)ra}rb(h(X]No more sub-classing of ``Process`` required. PEMs can even be simple module level functions.h)j\h*h-h/hLh1}rc(h3]h4]h5]h6]h8]uh:Kjh#]rd(hDXNo more sub-classing of rerf}rg(h(XNo more sub-classing of h)jaubh)rh}ri(h(X ``Process``h1}rj(h3]h4]h5]h6]h8]uh)jah#]rkhDXProcessrlrm}rn(h(Uh)jhubah/hubhDX: required. PEMs can even be simple module level functions.rorp}rq(h(X: required. PEMs can even be simple module level functions.h)jaubeubaubj[)rr}rs(h(XyThe simulation state is now stored in an ``Environment`` which can also be used by a PEM to interact with the simulation.h)jUh*h-h/j^h1}rt(h3]h4]h5]h6]h8]uh:Nh;hh#]ruhH)rv}rw(h(XyThe simulation state is now stored in an ``Environment`` which can also be used by a PEM to interact with the simulation.h)jrh*h-h/hLh1}rx(h3]h4]h5]h6]h8]uh:Klh#]ry(hDX)The simulation state is now stored in an rzr{}r|(h(X)The simulation state is now stored in an h)jvubh)r}}r~(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jvh#]rhDX Environmentrr}r(h(Uh)j}ubah/hubhDXA which can also be used by a PEM to interact with the simulation.rr}r(h(XA which can also be used by a PEM to interact with the simulation.h)jvubeubaubj[)r}r(h(XzPEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types. h)jUh*h-h/j^h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(XyPEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types.rh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Knh#]rhDXyPEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types.rr}r(h(jh)jubaubaubeubhH)r}r(h(XBThese changes are causing the above example to now look like this:rh)hh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kqh;hh#]rhDXBThese changes are causing the above example to now look like this:rr}r(h(jh)jubaubh)r}r(h(Xfrom simpy import Environment, simulate def pem(env, repeat): for i in range(repeat): yield env.timeout(i) env = Environment() env.process(pem(env, 7)) simulate(env, until=10)h)hh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Ksh;hh#]rhDXfrom simpy import Environment, simulate def pem(env, repeat): for i in range(repeat): yield env.timeout(i) env = Environment() env.process(pem(env, 7)) simulate(env, until=10)rr}r(h(Uh)jubaubhH)r}r(h(X8The following sections describe these changes in detail:rh)hh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDX8The following sections describe these changes in detail:rr}r(h(jh)jubaubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rhah8]rh auh:Kh;hh#]r(h=)r}r(h(X#No More Sub-classing of ``Process``rh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXNo More Sub-classing of rr}r(h(XNo More Sub-classing of rh)jubh)r}r(h(X ``Process``rh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubeubhH)r}r(h(X.In Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The ``Process`` class still exists, but you don't need to instantiate it by yourself, though. More on that later.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXIn Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The rr}r(h(XIn Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The h)jubh)r}r(h(X ``Process``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubhDXb class still exists, but you don't need to instantiate it by yourself, though. More on that later.rr}r(h(Xb class still exists, but you don't need to instantiate it by yourself, though. More on that later.h)jubeubeubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rh!ah8]rhauh:Kh;hh#]r(h=)r}r(h(X Processes Live in an Environmentrh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDX Processes Live in an Environmentrr}r(h(jh)jubaubhH)r}r(h(XProcess and simulation state are decoupled. An ``Environment`` holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the ``Process`` or ``Environment`` class without affecting other components.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDX/Process and simulation state are decoupled. An rr}r(h(X/Process and simulation state are decoupled. An h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the rr}r(h(X holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the h)jubh)r}r(h(X ``Process``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubhDX or rr}r(h(X or h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX* class without affecting other components.rr}r(h(X* class without affecting other components.h)jubeubhH)r}r(h(XtFor the same reason, the ``simulate()`` method now is a module level function that takes an environment to simulate.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXFor the same reason, the r r }r (h(XFor the same reason, the h)jubh)r }r (h(X``simulate()``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX simulate()rr}r(h(Uh)j ubah/hubhDXM method now is a module level function that takes an environment to simulate.rr}r(h(XM method now is a module level function that takes an environment to simulate.h)jubeubeubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rh"ah8]rhauh:Kh;hh#]r(h=)r}r(h(XStronger Focus on Eventsrh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r hDXStronger Focus on Eventsr!r"}r#(h(jh)jubaubhH)r$}r%(h(XRIn former versions, PEMs needed to yield one of SimPy's built-in keywords (like ``hold``) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the ``Simulation`` and ``Process`` making it very hard to extend SimPy with new functionality.h)jh*h-h/hLh1}r&(h3]h4]h5]h6]h8]uh:Kh;hh#]r'(hDXPIn former versions, PEMs needed to yield one of SimPy's built-in keywords (like r(r)}r*(h(XPIn former versions, PEMs needed to yield one of SimPy's built-in keywords (like h)j$ubh)r+}r,(h(X``hold``h1}r-(h3]h4]h5]h6]h8]uh)j$h#]r.hDXholdr/r0}r1(h(Uh)j+ubah/hubhDX) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the r2r3}r4(h(X) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the h)j$ubh)r5}r6(h(X``Simulation``h1}r7(h3]h4]h5]h6]h8]uh)j$h#]r8hDX Simulationr9r:}r;(h(Uh)j5ubah/hubhDX and r<r=}r>(h(X and h)j$ubh)r?}r@(h(X ``Process``h1}rA(h3]h4]h5]h6]h8]uh)j$h#]rBhDXProcessrCrD}rE(h(Uh)j?ubah/hubhDX< making it very hard to extend SimPy with new functionality.rFrG}rH(h(X< making it very hard to extend SimPy with new functionality.h)j$ubeubhH)rI}rJ(h(XHIn Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a ``BaseEvent``. Most events are generated by factory methods of ``Environment``. For example, ``Environment.timeout()`` creates a ``Timeout`` event that replaces the ``hold`` keyword.h)jh*h-h/hLh1}rK(h3]h4]h5]h6]h8]uh:Kh;hh#]rL(hDXIn Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a rMrN}rO(h(XIn Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a h)jIubh)rP}rQ(h(X ``BaseEvent``h1}rR(h3]h4]h5]h6]h8]uh)jIh#]rShDX BaseEventrTrU}rV(h(Uh)jPubah/hubhDX2. Most events are generated by factory methods of rWrX}rY(h(X2. Most events are generated by factory methods of h)jIubh)rZ}r[(h(X``Environment``h1}r\(h3]h4]h5]h6]h8]uh)jIh#]r]hDX Environmentr^r_}r`(h(Uh)jZubah/hubhDX. For example, rarb}rc(h(X. For example, h)jIubh)rd}re(h(X``Environment.timeout()``h1}rf(h3]h4]h5]h6]h8]uh)jIh#]rghDXEnvironment.timeout()rhri}rj(h(Uh)jdubah/hubhDX creates a rkrl}rm(h(X creates a h)jIubh)rn}ro(h(X ``Timeout``h1}rp(h3]h4]h5]h6]h8]uh)jIh#]rqhDXTimeoutrrrs}rt(h(Uh)jnubah/hubhDX event that replaces the rurv}rw(h(X event that replaces the h)jIubh)rx}ry(h(X``hold``h1}rz(h3]h4]h5]h6]h8]uh)jIh#]r{hDXholdr|r}}r~(h(Uh)jxubah/hubhDX keyword.rr}r(h(X keyword.h)jIubeubhH)r}r(h(XThe ``Process`` is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were "washing" is a process that the car processes can wait for once they enter the washing station.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXThe rr}r(h(XThe h)jubh)r}r(h(X ``Process``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubhDX is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were "washing" is a process that the car processes can wait for once they enter the washing station.rr}r(h(X is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were "washing" is a process that the car processes can wait for once they enter the washing station.h)jubeubeubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rhah8]rhauh:Kh;hh#]r(h=)r}r(h(X0Creating Events via the Environment or Resourcesrh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDX0Creating Events via the Environment or Resourcesrr}r(h(jh)jubaubhH)r}r(h(XThe ``Environment`` and resources have methods to create new events, e.g. ``Environment.timeout()`` or ``Resource.request()``. Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXThe rr}r(h(XThe h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX7 and resources have methods to create new events, e.g. rr}r(h(X7 and resources have methods to create new events, e.g. h)jubh)r}r(h(X``Environment.timeout()``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXEnvironment.timeout()rr}r(h(Uh)jubah/hubhDX or rr}r(h(X or h)jubh)r}r(h(X``Resource.request()``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXResource.request()rr}r(h(Uh)jubah/hubhDXk. Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:rr}r(h(Xk. Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:h)jubeubh)r}r(h(X#def event(self): return Event()h)jh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]rhDX#def event(self): return Event()rr}r(h(Uh)jubaubhH)r}r(h(XKTo simplify things, we wanted to use the event classes directly as methods:rh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDXKTo simplify things, we wanted to use the event classes directly as methods:rr}r(h(jh)jubaubh)r}r(h(X+class Environment(object) event = Eventh)jh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]rhDX+class Environment(object) event = Eventrr}r(h(Uh)jubaubhH)r}r(h(XThis was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a ``BoundClass``:h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXThis was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a rr}r(h(XThis was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a h)jubh)r}r(h(X``BoundClass``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX BoundClassrr}r(h(Uh)jubah/hubhDX:r}r(h(X:h)jubeubh)r}r(h(Xclass BoundClass(object): """Allows classes to behave like methods. The ``__get__()`` descriptor is basically identical to ``function.__get__()`` and binds the first argument of the ``cls`` to the descriptor instance. """ def __init__(self, cls): self.cls = cls def __get__(self, obj, type=None): if obj is None: return self.cls return types.MethodType(self.cls, obj) class Environment(object): event = BoundClass(Event)h)jh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]rhDXclass BoundClass(object): """Allows classes to behave like methods. The ``__get__()`` descriptor is basically identical to ``function.__get__()`` and binds the first argument of the ``cls`` to the descriptor instance. """ def __init__(self, cls): self.cls = cls def __get__(self, obj, type=None): if obj is None: return self.cls return types.MethodType(self.cls, obj) class Environment(object): event = BoundClass(Event)rr}r(h(Uh)jubaubhH)r}r(h(XThese methods are called a lot, so we added the event classes as :data:`types.MethodType` to the instance of ``Environment`` (or the resources, respectively):h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXAThese methods are called a lot, so we added the event classes as rr}r(h(XAThese methods are called a lot, so we added the event classes as h)jubcsphinx.addnodes pending_xref r)r}r(h(X:data:`types.MethodType`rh)jh*h-h/U pending_xrefrh1}r(UreftypeXdataUrefwarnrU reftargetrXtypes.MethodTypeU refdomainXpyrh6]h5]U refexplicith3]h4]h8]UrefdocrXabout/defense_of_designrUpy:classrNU py:modulerNuh:Kh#]rh)r}r (h(jh1}r (h3]h4]r (Uxrefr jXpy-datar eh5]h6]h8]uh)jh#]rhDXtypes.MethodTyperr}r(h(Uh)jubah/hubaubhDX to the instance of rr}r(h(X to the instance of h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX" (or the resources, respectively):rr}r(h(X" (or the resources, respectively):h)jubeubh)r}r (h(Xeclass Environment(object): def __init__(self): self.event = types.MethodType(Event, self)h)jh*h-h/hh1}r!(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]r"hDXeclass Environment(object): def __init__(self): self.event = types.MethodType(Event, self)r#r$}r%(h(Uh)jubaubhH)r&}r'(h(XIt turned out the the class attributes (the ``BoundClass`` instances) were now quite useless, so we removed them allthough it was actually the "right" way to to add classes as methods to another class.h)jh*h-h/hLh1}r((h3]h4]h5]h6]h8]uh:Kh;hh#]r)(hDX,It turned out the the class attributes (the r*r+}r,(h(X,It turned out the the class attributes (the h)j&ubh)r-}r.(h(X``BoundClass``h1}r/(h3]h4]h5]h6]h8]uh)j&h#]r0hDX BoundClassr1r2}r3(h(Uh)j-ubah/hubhDX instances) were now quite useless, so we removed them allthough it was actually the "right" way to to add classes as methods to another class.r4r5}r6(h(X instances) were now quite useless, so we removed them allthough it was actually the "right" way to to add classes as methods to another class.h)j&ubeubeubeubeubah(UU transformerr7NU footnote_refsr8}r9Urefnamesr:}r;Usymbol_footnotesr<]r=Uautofootnote_refsr>]r?Usymbol_footnote_refsr@]rAU citationsrB]rCh;hU current_linerDNUtransform_messagesrE]rFUreporterrGNUid_startrHKU autofootnotesrI]rJU citation_refsrK}rLUindirect_targetsrM]rNUsettingsrO(cdocutils.frontend Values rPorQ}rR(Ufootnote_backlinksrSKUrecord_dependenciesrTNU rfc_base_urlrUUhttp://tools.ietf.org/html/rVU tracebackrWUpep_referencesrXNUstrip_commentsrYNU toc_backlinksrZUentryr[U language_coder\Uenr]U datestampr^NU report_levelr_KU _destinationr`NU halt_levelraKU strip_classesrbNhANUerror_encoding_error_handlerrcUbackslashreplacerdUdebugreNUembed_stylesheetrfUoutput_encoding_error_handlerrgUstrictrhU sectnum_xformriKUdump_transformsrjNU docinfo_xformrkKUwarning_streamrlNUpep_file_url_templatermUpep-%04drnUexit_status_levelroKUconfigrpNUstrict_visitorrqNUcloak_email_addressesrrUtrim_footnote_reference_spacersUenvrtNUdump_pseudo_xmlruNUexpose_internalsrvNUsectsubtitle_xformrwU source_linkrxNUrfc_referencesryNUoutput_encodingrzUutf-8r{U source_urlr|NUinput_encodingr}U utf-8-sigr~U_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUM/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/defense_of_design.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhjhhRhj)h"jh h&hjh!jhhhjuUsubstitution_namesr}rh/h;h1}r(h3]h6]h5]Usourceh-h4]h8]uU footnotesr]rUrefidsr}rub.PK=DT˯ +simpy-3.0.4/.doctrees/about/license.doctreecdocutils.nodes document q)q}q(U nametypesq}qXlicenseqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUlicenseqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXC/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/license.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*cdocutils.nodes title q+)q,}q-(hXLicenseq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XLicenseq3q4}q5(hh.hh,ubaubaubahUU transformerq6NU footnote_refsq7}q8Urefnamesq9}q:Usymbol_footnotesq;]qUsymbol_footnote_refsq?]q@U citationsqA]qBh)hU current_lineqCNUtransform_messagesqD]qEUreporterqFNUid_startqGKU autofootnotesqH]qIU citation_refsqJ}qKUindirect_targetsqL]qMUsettingsqN(cdocutils.frontend Values qOoqP}qQ(Ufootnote_backlinksqRKUrecord_dependenciesqSNU rfc_base_urlqTUhttp://tools.ietf.org/html/qUU tracebackqVUpep_referencesqWNUstrip_commentsqXNU toc_backlinksqYUentryqZU language_codeq[Uenq\U datestampq]NU report_levelq^KU _destinationq_NU halt_levelq`KU strip_classesqaNh/NUerror_encoding_error_handlerqbUbackslashreplaceqcUdebugqdNUembed_stylesheetqeUoutput_encoding_error_handlerqfUstrictqgU sectnum_xformqhKUdump_transformsqiNU docinfo_xformqjKUwarning_streamqkNUpep_file_url_templateqlUpep-%04dqmUexit_status_levelqnKUconfigqoNUstrict_visitorqpNUcloak_email_addressesqqUtrim_footnote_reference_spaceqrUenvqsNUdump_pseudo_xmlqtNUexpose_internalsquNUsectsubtitle_xformqvU source_linkqwNUrfc_referencesqxNUoutput_encodingqyUutf-8qzU source_urlq{NUinput_encodingq|U utf-8-sigq}U_disable_configq~NU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUC/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/license.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhgUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK=DR+simpy-3.0.4/.doctrees/about/history.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X api changesqNX2.0.0 – 2009-01-26qNXseptember 2005: version 1.6.1qNX2.1 – 2010-06-03q NX18 october 2002q NX3.0 – 2013-10-11q NX bug fixesq NX2.2 – 2011-09-27q NX additionsqNX22 october 2002qNX3.0.1 – 2013-10-24qNXjanuary 2007: version 1.8qNX3.0.3 – 2014-03-06qNXsimpy history & change logqNX#25 september 2004: version 1.5alphaqNX!hitchhiker’s guide to packagingqXjune 2006: version 1.7.1qNXmarch 2008: version 1.9.1qNXfebruary 2006: version 1.7qNX2.3 – 2011-12-24qNX19 may 2004: version 1.4.2qNX3.0.4 – 2014-04-07qNX2.3.1 – 2012-01-28qNX22 june 2003: version 1.3qNXjune 2003: version 1.3 alphaqNX17 september 2002qNX29 april 2003: version 1.2q NX major changesq!NX27 september 2002q"NX1 december 2004: version 1.5q#NX#22 december 2003: version 1.4 alphaq$NX29 february 2004: version 1.4.1q%NX1 february 2005: version 1.5.1q&NX3.0.2 – 2013-10-24q'NXdecember 2007: version 1.9q(NX15 june 2005: version 1.6q)NX1 february 2004: version 1.4q*NXdocumentation format changesq+NX2.0.1 – 2009-04-06q,NuUsubstitution_defsq-}q.Uparse_messagesq/]q0(cdocutils.nodes system_message q1)q2}q3(U rawsourceq4UUparentq5cdocutils.nodes section q6)q7}q8(h4UU referencedq9Kh5h6)q:}q;(h4Uh5h6)q<}q=(h4Uh5hUsourceq>cdocutils.nodes reprunicode q?XC/var/build/user_builds/simpy/checkouts/3.0.4/docs/about/history.rstq@qA}qBbUtagnameqCUsectionqDU attributesqE}qF(UdupnamesqG]UclassesqH]UbackrefsqI]UidsqJ]qKUsimpy-history-change-logqLaUnamesqM]qNhauUlineqOKUdocumentqPhUchildrenqQ]qR(cdocutils.nodes title qS)qT}qU(h4XSimPy History & Change LogqVh5hhAhCUtitleqWhE}qX(hG]hH]hI]hJ]hM]uhOKhPhhQ]qYcdocutils.nodes Text qZXSimPy History & Change Logq[q\}q](h4hVh5hTubaubcdocutils.nodes paragraph q^)q_}q`(h4XSimPy was originally based on ideas from Simula and Simscript but uses standard Python. It combines two previous packages, SiPy, in Simula-Style (Klaus Müller) and SimPy, in Simscript style (Tony Vignaux and Chang Chui).qah5hhAhCU paragraphqbhE}qc(hG]hH]hI]hJ]hM]uhOKhPhhQ]qdhZXSimPy was originally based on ideas from Simula and Simscript but uses standard Python. It combines two previous packages, SiPy, in Simula-Style (Klaus Müller) and SimPy, in Simscript style (Tony Vignaux and Chang Chui).qeqf}qg(h4hah5h_ubaubh^)qh}qi(h4X`SimPy was based on efficient implementation of co-routines using Python's generators capability.qjh5hhAhChbhE}qk(hG]hH]hI]hJ]hM]uhOK hPhhQ]qlhZX`SimPy was based on efficient implementation of co-routines using Python's generators capability.qmqn}qo(h4hjh5hhubaubh^)qp}qq(h4XSimPy 3 introduced a completely new and easier-to-use API, but still relied on Python's generators as they proved to work very well.qrh5hhAhChbhE}qs(hG]hH]hI]hJ]hM]uhOK hPhhQ]qthZXSimPy 3 introduced a completely new and easier-to-use API, but still relied on Python's generators as they proved to work very well.quqv}qw(h4hrh5hpubaubh^)qx}qy(h4X|The package has been hosted on Sourceforge.net since September 15th, 2002. In June 2012, the project moved to Bitbucket.org.qzh5hhAhChbhE}q{(hG]hH]hI]hJ]hM]uhOKhPhhQ]q|hZX|The package has been hosted on Sourceforge.net since September 15th, 2002. In June 2012, the project moved to Bitbucket.org.q}q~}q(h4hzh5hxubaubh6)q}q(h4Uh5hhAhChDhE}q(hG]hH]hI]hJ]qUid1qahM]qhauhOKhPhhQ]q(hS)q}q(h4X3.0.4 – 2014-04-07qh5hh>hAhChWhE}q(hG]hH]hI]hJ]hM]uhOKhPhhQ]qhZX3.0.4 – 2014-04-07qq}q(h4hh5hubaubcdocutils.nodes bullet_list q)q}q(h4Uh5hh>hAhCU bullet_listqhE}q(UbulletqX-hJ]hI]hG]hH]hM]uhOKhPhhQ]q(cdocutils.nodes list_item q)q}q(h4X/[NEW] Verified, that SimPy works on Python 3.4.qh5hh>hAhCU list_itemqhE}q(hG]hH]hI]hJ]hM]uhONhPhhQ]qh^)q}q(h4hh5hh>hAhChbhE}q(hG]hH]hI]hJ]hM]uhOKhQ]qhZX/[NEW] Verified, that SimPy works on Python 3.4.qq}q(h4hh5hubaubaubh)q}q(h4XEW] Guide to SimPy eventsqh5hh>hAhChhE}q(hG]hH]hI]hJ]hM]uhONhPhhQ]qh^)q}q(h4hh5hh>hAhChbhE}q(hG]hH]hI]hJ]hM]uhOKhQ]qhZXEW] Guide to SimPy eventsqq}q(h4hh5hubaubaubh)q}q(h4X[CHANGE] The result dictionary for condition events (``AllOF`` / ``&`` and ``AnyOf`` / ``|``) now is an *OrderedDict* sorted in the same way as the original events list.h5hh>hAhChhE}q(hG]hH]hI]hJ]hM]uhONhPhhQ]qh^)q}q(h4X[CHANGE] The result dictionary for condition events (``AllOF`` / ``&`` and ``AnyOf`` / ``|``) now is an *OrderedDict* sorted in the same way as the original events list.h5hh>hAhChbhE}q(hG]hH]hI]hJ]hM]uhOKhQ]q(hZX6[CHANGE] The result dictionary for condition events (qq}q(h4X6[CHANGE] The result dictionary for condition events (h5hubcdocutils.nodes literal q)q}q(h4X ``AllOF``hE}q(hG]hH]hI]hJ]hM]uh5hhQ]qhZXAllOFqq}q(h4Uh5hubahCUliteralqubhZX / qąq}q(h4X / h5hubh)q}q(h4X``&``hE}q(hG]hH]hI]hJ]hM]uh5hhQ]qhZX&q}q(h4Uh5hubahChubhZX and qͅq}q(h4X and h5hubh)q}q(h4X ``AnyOf``hE}q(hG]hH]hI]hJ]hM]uh5hhQ]qhZXAnyOfqԅq}q(h4Uh5hubahChubhZX / qׅq}q(h4X / h5hubh)q}q(h4X``|``hE}q(hG]hH]hI]hJ]hM]uh5hhQ]qhZX|q}q(h4Uh5hubahChubhZX ) now is an qq}q(h4X ) now is an h5hubcdocutils.nodes emphasis q)q}q(h4X *OrderedDict*hE}q(hG]hH]hI]hJ]hM]uh5hhQ]qhZX OrderedDictq腁q}q(h4Uh5hubahCUemphasisqubhZX4 sorted in the same way as the original events list.q셁q}q(h4X4 sorted in the same way as the original events list.h5hubeubaubh)q}q(h4X;[CHANGE] Condition events now also except processed events.qh5hh>hAhChhE}q(hG]hH]hI]hJ]hM]uhONhPhhQ]qh^)q}q(h4hh5hh>hAhChbhE}q(hG]hH]hI]hJ]hM]uhOKhQ]qhZX;[CHANGE] Condition events now also except processed events.qq}q(h4hh5hubaubaubh)q}q(h4X[FIX] ``Resource.request()`` directly after ``Resource.release()`` no longer successful. The process now has to wait as supposed to.h5hh>hAhChhE}q(hG]hH]hI]hJ]hM]uhONhPhhQ]qh^)q}r(h4X[FIX] ``Resource.request()`` directly after ``Resource.release()`` no longer successful. The process now has to wait as supposed to.h5hh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]r(hZX[FIX] rr}r(h4X[FIX] h5hubh)r}r(h4X``Resource.request()``hE}r(hG]hH]hI]hJ]hM]uh5hhQ]r hZXResource.request()r r }r (h4Uh5jubahChubhZX directly after r r}r(h4X directly after h5hubh)r}r(h4X``Resource.release()``hE}r(hG]hH]hI]hJ]hM]uh5hhQ]rhZXResource.release()rr}r(h4Uh5jubahChubhZXB no longer successful. The process now has to wait as supposed to.rr}r(h4XB no longer successful. The process now has to wait as supposed to.h5hubeubaubh)r}r(h4Xq[FIX] ``Event.fail()`` now accept all exceptions derived from ``BaseException`` instead of only ``Exception``. h5hh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xo[FIX] ``Event.fail()`` now accept all exceptions derived from ``BaseException`` instead of only ``Exception``.h5jh>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOKhQ]r!(hZX[FIX] r"r#}r$(h4X[FIX] h5jubh)r%}r&(h4X``Event.fail()``hE}r'(hG]hH]hI]hJ]hM]uh5jhQ]r(hZX Event.fail()r)r*}r+(h4Uh5j%ubahChubhZX( now accept all exceptions derived from r,r-}r.(h4X( now accept all exceptions derived from h5jubh)r/}r0(h4X``BaseException``hE}r1(hG]hH]hI]hJ]hM]uh5jhQ]r2hZX BaseExceptionr3r4}r5(h4Uh5j/ubahChubhZX instead of only r6r7}r8(h4X instead of only h5jubh)r9}r:(h4X ``Exception``hE}r;(hG]hH]hI]hJ]hM]uh5jhQ]r<hZX Exceptionr=r>}r?(h4Uh5j9ubahChubhZX.r@}rA(h4X.h5jubeubaubeubeubh6)rB}rC(h4Uh5hhAhChDhE}rD(hG]hH]hI]hJ]rEUid2rFahM]rGhauhOK"hPhhQ]rH(hS)rI}rJ(h4X3.0.3 – 2014-03-06rKh5jBh>hAhChWhE}rL(hG]hH]hI]hJ]hM]uhOK"hPhhQ]rMhZX3.0.3 – 2014-03-06rNrO}rP(h4jKh5jIubaubh)rQ}rR(h4Uh5jBh>hAhChhE}rS(hX-hJ]hI]hG]hH]hM]uhOK$hPhhQ]rT(h)rU}rV(h4X[NEW] Guide to SimPy basics.rWh5jQh>hAhChhE}rX(hG]hH]hI]hJ]hM]uhONhPhhQ]rYh^)rZ}r[(h4jWh5jUh>hAhChbhE}r\(hG]hH]hI]hJ]hM]uhOK$hQ]r]hZX[NEW] Guide to SimPy basics.r^r_}r`(h4jWh5jZubaubaubh)ra}rb(h4X"[NEW] Guide to SimPy Environments.rch5jQh>hAhChhE}rd(hG]hH]hI]hJ]hM]uhONhPhhQ]reh^)rf}rg(h4jch5jah>hAhChbhE}rh(hG]hH]hI]hJ]hM]uhOK%hQ]rihZX"[NEW] Guide to SimPy Environments.rjrk}rl(h4jch5jfubaubaubh)rm}rn(h4XG[FIX] Timing problems with real time simulation on Windows (issue #46).roh5jQh>hAhChhE}rp(hG]hH]hI]hJ]hM]uhONhPhhQ]rqh^)rr}rs(h4joh5jmh>hAhChbhE}rt(hG]hH]hI]hJ]hM]uhOK&hQ]ruhZXG[FIX] Timing problems with real time simulation on Windows (issue #46).rvrw}rx(h4joh5jrubaubaubh)ry}rz(h4XI[FIX] Installation problems on Windows due to Unicode errors (issue #41).r{h5jQh>hAhChhE}r|(hG]hH]hI]hJ]hM]uhONhPhhQ]r}h^)r~}r(h4j{h5jyh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOK'hQ]rhZXI[FIX] Installation problems on Windows due to Unicode errors (issue #41).rr}r(h4j{h5j~ubaubaubh)r}r(h4X#[FIX] Minor documentation issues. h5jQh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X![FIX] Minor documentation issues.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOK(hQ]rhZX![FIX] Minor documentation issues.rr}r(h4jh5jubaubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUid3rahM]rh'auhOK,hPhhQ]r(hS)r}r(h4X3.0.2 – 2013-10-24rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOK,hPhhQ]rhZX3.0.2 – 2013-10-24rr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOK.hPhhQ]rh)r}r(h4XX[FIX] The default capacity for ``Container`` and ``FilterStore`` is now also ``inf``. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XV[FIX] The default capacity for ``Container`` and ``FilterStore`` is now also ``inf``.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOK.hQ]r(hZX [FIX] The default capacity for rr}r(h4X [FIX] The default capacity for h5jubh)r}r(h4X ``Container``hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX Containerrr}r(h4Uh5jubahChubhZX and rr}r(h4X and h5jubh)r}r(h4X``FilterStore``hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX FilterStorerr}r(h4Uh5jubahChubhZX is now also rr}r(h4X is now also h5jubh)r}r(h4X``inf``hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZXinfrr}r(h4Uh5jubahChubhZX.r}r(h4X.h5jubeubaubaubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUid4rahM]rhauhOK3hPhhQ]r(hS)r}r(h4X3.0.1 – 2013-10-24rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOK3hPhhQ]rhZX3.0.1 – 2013-10-24rr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOK5hPhhQ]rh)r}r(h4Xm[FIX] Documentation and default parameters of ``Store`` didn't match. Its default capacity is now ``inf``. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xk[FIX] Documentation and default parameters of ``Store`` didn't match. Its default capacity is now ``inf``.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOK5hQ]r(hZX/[FIX] Documentation and default parameters of rr}r(h4X/[FIX] Documentation and default parameters of h5jubh)r}r(h4X ``Store``hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZXStorerr}r(h4Uh5jubahChubhZX+ didn't match. Its default capacity is now rr}r(h4X+ didn't match. Its default capacity is now h5jubh)r}r(h4X``inf``hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZXinfrr}r(h4Uh5jubahChubhZX.r}r(h4X.h5jubeubaubaubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUid5rahM]rh auhOK:hPhhQ]r(hS)r}r(h4X3.0 – 2013-10-11rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOK:hPhhQ]rhZX3.0 – 2013-10-11r r }r (h4jh5jubaubh^)r }r (h4XSimPy 3 has been completely rewritten from scratch. Our main goals were to simplify the API and code base as well as making SimPy more flexible and extensible. Some of the most important changes are:rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOK@hPhhQ]r(h)r}r(h4XStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a *timeout* (formerly known as *hold*), but even processes are now events, too (you can wait until a process terminates). h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a *timeout* (formerly known as *hold*), but even processes are now events, too (you can wait until a process terminates).h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOK@hQ]r(hZXStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a r r!}r"(h4XStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a h5jubh)r#}r$(h4X *timeout*hE}r%(hG]hH]hI]hJ]hM]uh5jhQ]r&hZXtimeoutr'r(}r)(h4Uh5j#ubahChubhZX (formerly known as r*r+}r,(h4X (formerly known as h5jubh)r-}r.(h4X*hold*hE}r/(hG]hH]hI]hJ]hM]uh5jhQ]r0hZXholdr1r2}r3(h4Uh5j-ubahChubhZXT), but even processes are now events, too (you can wait until a process terminates).r4r5}r6(h4XT), but even processes are now events, too (you can wait until a process terminates).h5jubeubaubh)r7}r8(h4XUEvents can be combined with ``&`` (and) and ``|`` (or) to create *condition events*. h5jh>hAhChhE}r9(hG]hH]hI]hJ]hM]uhONhPhhQ]r:h^)r;}r<(h4XTEvents can be combined with ``&`` (and) and ``|`` (or) to create *condition events*.h5j7h>hAhChbhE}r=(hG]hH]hI]hJ]hM]uhOKEhQ]r>(hZXEvents can be combined with r?r@}rA(h4XEvents can be combined with h5j;ubh)rB}rC(h4X``&``hE}rD(hG]hH]hI]hJ]hM]uh5j;hQ]rEhZX&rF}rG(h4Uh5jBubahChubhZX (and) and rHrI}rJ(h4X (and) and h5j;ubh)rK}rL(h4X``|``hE}rM(hG]hH]hI]hJ]hM]uh5j;hQ]rNhZX|rO}rP(h4Uh5jKubahChubhZX (or) to create rQrR}rS(h4X (or) to create h5j;ubh)rT}rU(h4X*condition events*hE}rV(hG]hH]hI]hJ]hM]uh5j;hQ]rWhZXcondition eventsrXrY}rZ(h4Uh5jTubahChubhZX.r[}r\(h4X.h5j;ubeubaubh)r]}r^(h4XfProcess can now be defined by any generator function. You don't have to subclass ``Process`` anymore. h5jh>hAhChhE}r_(hG]hH]hI]hJ]hM]uhONhPhhQ]r`h^)ra}rb(h4XeProcess can now be defined by any generator function. You don't have to subclass ``Process`` anymore.h5j]h>hAhChbhE}rc(hG]hH]hI]hJ]hM]uhOKHhQ]rd(hZXQProcess can now be defined by any generator function. You don't have to subclass rerf}rg(h4XQProcess can now be defined by any generator function. You don't have to subclass h5jaubh)rh}ri(h4X ``Process``hE}rj(hG]hH]hI]hJ]hM]uh5jahQ]rkhZXProcessrlrm}rn(h4Uh5jhubahChubhZX anymore.rorp}rq(h4X anymore.h5jaubeubaubh)rr}rs(h4XNo more global simulation state. Every simulation stores its state in an *environment* which is comparable to the old ``Simulation`` class. h5jh>hAhChhE}rt(hG]hH]hI]hJ]hM]uhONhPhhQ]ruh^)rv}rw(h4XNo more global simulation state. Every simulation stores its state in an *environment* which is comparable to the old ``Simulation`` class.h5jrh>hAhChbhE}rx(hG]hH]hI]hJ]hM]uhOKKhQ]ry(hZXINo more global simulation state. Every simulation stores its state in an rzr{}r|(h4XINo more global simulation state. Every simulation stores its state in an h5jvubh)r}}r~(h4X *environment*hE}r(hG]hH]hI]hJ]hM]uh5jvhQ]rhZX environmentrr}r(h4Uh5j}ubahChubhZX which is comparable to the old rr}r(h4X which is comparable to the old h5jvubh)r}r(h4X``Simulation``hE}r(hG]hH]hI]hJ]hM]uh5jvhQ]rhZX Simulationrr}r(h4Uh5jubahChubhZX class.rr}r(h4X class.h5jvubeubaubh)r}r(h4X:Improved resource system with newly added resource types. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X9Improved resource system with newly added resource types.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKNhQ]rhZX9Improved resource system with newly added resource types.rr}r(h4jh5jubaubaubh)r}r(h4X`Removed plotting and GUI capabilities. `Pyside`__ and `matplotlib`__ are much better with this. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X_Removed plotting and GUI capabilities. `Pyside`__ and `matplotlib`__ are much better with this.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKPhQ]r(hZX'Removed plotting and GUI capabilities. rr}r(h4X'Removed plotting and GUI capabilities. h5jubcdocutils.nodes reference r)r}r(h4X `Pyside`__UresolvedrKh5jhCU referencerhE}r(UnameXPysideUrefurirX!http://qt-project.org/wiki/PySiderhJ]hI]hG]hH]hM]U anonymousrKuhQ]rhZXPysiderr}r(h4Uh5jubaubhZX and rr}r(h4X and h5jubj)r}r(h4X`matplotlib`__jKh5jhCjhE}r(UnameX matplotlibjXhttp://matplotlib.org/rhJ]hI]hG]hH]hM]jKuhQ]rhZX matplotlibrr}r(h4Uh5jubaubhZX are much better with this.rr}r(h4X are much better with this.h5jubeubaubh)r}r(h4XWGreatly improved test suite. Its cleaner, and the tests are shorter and more numerous. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XVGreatly improved test suite. Its cleaner, and the tests are shorter and more numerous.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKShQ]rhZXVGreatly improved test suite. Its cleaner, and the tests are shorter and more numerous.rr}r(h4jh5jubaubaubh)r}r(h4X%Completely overhauled documentation. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X$Completely overhauled documentation.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKVhQ]rhZX$Completely overhauled documentation.rr}r(h4jh5jubaubaubeubh^)r}r(h4XThere is a `guide for porting from SimPy 2 to SimPy 3`__. If you want to stick to SimPy 2 for a while, change your requirements to ``'SimPy>=2.3,<3'``.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKXhPhhQ]r(hZX There is a rr}r(h4X There is a h5jubj)r}r(h4X-`guide for porting from SimPy 2 to SimPy 3`__jKh5jhCjhE}r(UnameX)guide for porting from SimPy 2 to SimPy 3jXOhttps://simpy.readthedocs.org/en/latest/topical_guides/porting_from_simpy2.htmlrhJ]hI]hG]hH]hM]jKuhQ]rhZX)guide for porting from SimPy 2 to SimPy 3rr}r(h4Uh5jubaubhZXK. If you want to stick to SimPy 2 for a while, change your requirements to rr}r(h4XK. If you want to stick to SimPy 2 for a while, change your requirements to h5jubh)r}r(h4X``'SimPy>=2.3,<3'``hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX'SimPy>=2.3,<3'rr}r(h4Uh5jubahChubhZX.r}r(h4X.h5jubeubh^)r}r(h4X>All in all, SimPy has become a framework for asynchronous programming based on coroutines. It brings more than ten years of experience and scientific know-how in the field of event-discrete simulation to the world of asynchronous programming and should thus be a solid foundation for everything based on an event loop.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOK[hPhhQ]rhZX>All in all, SimPy has become a framework for asynchronous programming based on coroutines. It brings more than ten years of experience and scientific know-how in the field of event-discrete simulation to the world of asynchronous programming and should thus be a solid foundation for everything based on an event loop.rr}r(h4jh5jubaubh^)r}r(h4XEYou can find information about older versions on the `history page`__rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKahPhhQ]r(hZX5You can find information about older versions on the rr}r(h4X5You can find information about older versions on the h5jubj)r}r(h4X`history page`__jKh5jhCjhE}r(UnameX history pagejX:https://simpy.readthedocs.org/en/latest/about/history.htmlr hJ]hI]hG]hH]hM]jKuhQ]r hZX history pager r }r (h4Uh5jubaubeubcdocutils.nodes target r)r}r(h4X$__ http://qt-project.org/wiki/PySideh9Kh5jh>hAhCUtargetrhE}r(jjhJ]rUid6rahI]hG]hH]hM]jKuhOKchPhhQ]ubj)r}r(h4X__ http://matplotlib.org/h9Kh5jh>hAhCjhE}r(jjhJ]rUid7rahI]hG]hH]hM]jKuhOKdhPhhQ]ubj)r}r(h4XR__ https://simpy.readthedocs.org/en/latest/topical_guides/porting_from_simpy2.htmlh9Kh5jh>hAhCjhE}r(jjhJ]rUid8rahI]hG]hH]hM]jKuhOKehPhhQ]ubj)r}r (h4X=__ https://simpy.readthedocs.org/en/latest/about/history.htmlh9Kh5jh>hAhCjhE}r!(jj hJ]r"Uid9r#ahI]hG]hH]hM]jKuhOKfhPhhQ]ubeubh6)r$}r%(h4Uh5hhAhChDhE}r&(hG]hH]hI]hJ]r'Uid10r(ahM]r)hauhOKjhPhhQ]r*(hS)r+}r,(h4X2.3.1 – 2012-01-28r-h5j$h>hAhChWhE}r.(hG]hH]hI]hJ]hM]uhOKjhPhhQ]r/hZX2.3.1 – 2012-01-28r0r1}r2(h4j-h5j+ubaubh)r3}r4(h4Uh5j$h>hAhChhE}r5(hX-hJ]hI]hG]hH]hM]uhOKlhPhhQ]r6(h)r7}r8(h4X-[NEW] More improvements on the documentation.r9h5j3h>hAhChhE}r:(hG]hH]hI]hJ]hM]uhONhPhhQ]r;h^)r<}r=(h4j9h5j7h>hAhChbhE}r>(hG]hH]hI]hJ]hM]uhOKlhQ]r?hZX-[NEW] More improvements on the documentation.r@rA}rB(h4j9h5j<ubaubaubh)rC}rD(h4X<[FIX] Syntax error in tkconsole.py when installing on Py3.2.rEh5j3h>hAhChhE}rF(hG]hH]hI]hJ]hM]uhONhPhhQ]rGh^)rH}rI(h4jEh5jCh>hAhChbhE}rJ(hG]hH]hI]hJ]hM]uhOKmhQ]rKhZX<[FIX] Syntax error in tkconsole.py when installing on Py3.2.rLrM}rN(h4jEh5jHubaubaubh)rO}rP(h4X6[FIX] Added *mock* to the dep. list in SimPy.test(). h5j3h>hAhChhE}rQ(hG]hH]hI]hJ]hM]uhONhPhhQ]rRh^)rS}rT(h4X4[FIX] Added *mock* to the dep. list in SimPy.test().h5jOh>hAhChbhE}rU(hG]hH]hI]hJ]hM]uhOKnhQ]rV(hZX [FIX] Added rWrX}rY(h4X [FIX] Added h5jSubh)rZ}r[(h4X*mock*hE}r\(hG]hH]hI]hJ]hM]uh5jShQ]r]hZXmockr^r_}r`(h4Uh5jZubahChubhZX" to the dep. list in SimPy.test().rarb}rc(h4X" to the dep. list in SimPy.test().h5jSubeubaubeubeubh6)rd}re(h4Uh5hhAhChDhE}rf(hG]hH]hI]hJ]rgUid11rhahM]rihauhOKrhPhhQ]rj(hS)rk}rl(h4X2.3 – 2011-12-24rmh5jdh>hAhChWhE}rn(hG]hH]hI]hJ]hM]uhOKrhPhhQ]rohZX2.3 – 2011-12-24rprq}rr(h4jmh5jkubaubh)rs}rt(h4Uh5jdh>hAhChhE}ru(hX-hJ]hI]hG]hH]hM]uhOKthPhhQ]rv(h)rw}rx(h4XI[NEW] Support for Python 3.2. Support for Python <= 2.5 has been dropped.ryh5jsh>hAhChhE}rz(hG]hH]hI]hJ]hM]uhONhPhhQ]r{h^)r|}r}(h4jyh5jwh>hAhChbhE}r~(hG]hH]hI]hJ]hM]uhOKthQ]rhZXI[NEW] Support for Python 3.2. Support for Python <= 2.5 has been dropped.rr}r(h4jyh5j|ubaubaubh)r}r(h4XM[NEW] SimPy.test() method to run the tests on the installed version of SimPy.rh5jsh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4jh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKuhQ]rhZXM[NEW] SimPy.test() method to run the tests on the installed version of SimPy.rr}r(h4jh5jubaubaubh)r}r(h4X=[NEW] Tutorials/examples were integrated into the test suite.rh5jsh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4jh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKvhQ]rhZX=[NEW] Tutorials/examples were integrated into the test suite.rr}r(h4jh5jubaubaubh)r}r(h4Xi[CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).h5jsh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xi[CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKwhQ]rhZXi[CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).rr}r(h4jh5jubaubaubh)r}r(h4X+[CHANGE] Many documentation improvements. h5jsh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X)[CHANGE] Many documentation improvements.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKyhQ]rhZX)[CHANGE] Many documentation improvements.rr}r(h4jh5jubaubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUid12rahM]rh auhOK}hPhhQ]r(hS)r}r(h4X2.2 – 2011-09-27rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOK}hPhhQ]rhZX2.2 – 2011-09-27rr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]r(h)r}r(h4X[CHANGE] Restructured package layout to be conform to the `Hitchhiker’s Guide to packaging `_h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X[CHANGE] Restructured package layout to be conform to the `Hitchhiker’s Guide to packaging `_h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]r(hZX:[CHANGE] Restructured package layout to be conform to the rr}r(h4X:[CHANGE] Restructured package layout to be conform to the h5jubj)r}r(h4XJ`Hitchhiker’s Guide to packaging `_hE}r(UnameX!Hitchhiker’s Guide to packagingjX#http://guide.python-distribute.org/rhJ]hI]hG]hH]hM]uh5jhQ]rhZX!Hitchhiker’s Guide to packagingrr}r(h4Uh5jubahCjubj)r}r(h4X& h9Kh5jhCjhE}r(UrefurijhJ]rUhitchhikers-guide-to-packagingrahI]hG]hH]hM]rhauhQ]ubeubaubh)r}r(h4X*[CHANGE] Tests have been ported to pytest.rh5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4jh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZX*[CHANGE] Tests have been ported to pytest.rr}r(h4jh5jubaubaubh)r}r(h4X2[CHANGE] Documentation improvements and clean-ups.rh5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4jh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZX2[CHANGE] Documentation improvements and clean-ups.rr}r(h4jh5jubaubaubh)r}r(h4XV[FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XT[FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXT[FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix.rr}r(h4jh5jubaubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUid13rahM]rh auhOKhPhhQ]r (hS)r }r (h4X2.1 – 2010-06-03r h5jh>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZX2.1 – 2010-06-03rr}r(h4j h5j ubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]r(h)r}r(h4X[NEW] A function *step* has been added to the API. When called, it executes the next scheduled event. (*step* is actually a method of *Simulation*.)h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X[NEW] A function *step* has been added to the API. When called, it executes the next scheduled event. (*step* is actually a method of *Simulation*.)h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]r(hZX[NEW] A function rr}r (h4X[NEW] A function h5jubh)r!}r"(h4X*step*hE}r#(hG]hH]hI]hJ]hM]uh5jhQ]r$hZXstepr%r&}r'(h4Uh5j!ubahChubhZXP has been added to the API. When called, it executes the next scheduled event. (r(r)}r*(h4XP has been added to the API. When called, it executes the next scheduled event. (h5jubh)r+}r,(h4X*step*hE}r-(hG]hH]hI]hJ]hM]uh5jhQ]r.hZXstepr/r0}r1(h4Uh5j+ubahChubhZX is actually a method of r2r3}r4(h4X is actually a method of h5jubh)r5}r6(h4X *Simulation*hE}r7(hG]hH]hI]hJ]hM]uh5jhQ]r8hZX Simulationr9r:}r;(h4Uh5j5ubahChubhZX.)r<r=}r>(h4X.)h5jubeubaubh)r?}r@(h4X[NEW] Another new function is *peek*. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.h5jh>hAhChhE}rA(hG]hH]hI]hJ]hM]uhONhPhhQ]rBh^)rC}rD(h4X[NEW] Another new function is *peek*. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.h5j?h>hAhChbhE}rE(hG]hH]hI]hJ]hM]uhOKhQ]rF(hZX[NEW] Another new function is rGrH}rI(h4X[NEW] Another new function is h5jCubh)rJ}rK(h4X*peek*hE}rL(hG]hH]hI]hJ]hM]uh5jChQ]rMhZXpeekrNrO}rP(h4Uh5jJubahChubhZX. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.rQrR}rS(h4X. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.h5jCubeubaubh)rT}rU(h4X[NEW] A simple interactive debugger ``stepping.py`` has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.h5jh>hAhChhE}rV(hG]hH]hI]hJ]hM]uhONhPhhQ]rWh^)rX}rY(h4X[NEW] A simple interactive debugger ``stepping.py`` has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.h5jTh>hAhChbhE}rZ(hG]hH]hI]hJ]hM]uhOKhQ]r[(hZX$[NEW] A simple interactive debugger r\r]}r^(h4X$[NEW] A simple interactive debugger h5jXubh)r_}r`(h4X``stepping.py``hE}ra(hG]hH]hI]hJ]hM]uh5jXhQ]rbhZX stepping.pyrcrd}re(h4Uh5j_ubahChubhZX has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.rfrg}rh(h4X has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.h5jXubeubaubh)ri}rj(h4X|[NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.h5jh>hAhChhE}rk(hG]hH]hI]hJ]hM]uhONhPhhQ]rlh^)rm}rn(h4X|[NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.roh5jih>hAhChbhE}rp(hG]hH]hI]hJ]hM]uhOKhQ]rqhZX|[NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.rrrs}rt(h4joh5jmubaubaubh)ru}rv(h4XY[NEW] A new document describes tools for gaining insight into and debugging SimPy models.h5jh>hAhChhE}rw(hG]hH]hI]hJ]hM]uhONhPhhQ]rxh^)ry}rz(h4XY[NEW] A new document describes tools for gaining insight into and debugging SimPy models.r{h5juh>hAhChbhE}r|(hG]hH]hI]hJ]hM]uhOKhQ]r}hZXY[NEW] A new document describes tools for gaining insight into and debugging SimPy models.r~r}r(h4j{h5jyubaubaubh)r}r(h4Xm[CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xm[CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXm[CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.rr}r(h4jh5jubaubaubh)r}r(h4Xc[CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xc[CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXc[CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.rr}r(h4jh5jubaubaubh)r}r(h4X[CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X[CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZX[CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.rr}r(h4jh5jubaubaubh)r}r(h4Xu[CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xu[CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXu[CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.rr}r(h4jh5jubaubaubh)r}r(h4XH[FIX] Functions *allEventNotices* and *allEventTimes* are working again.rh5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4jh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]r(hZX[FIX] Functions rr}r(h4X[FIX] Functions h5jubh)r}r(h4X*allEventNotices*hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZXallEventNoticesrr}r(h4Uh5jubahChubhZX and rr}r(h4X and h5jubh)r}r(h4X*allEventTimes*hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX allEventTimesrr}r(h4Uh5jubahChubhZX are working again.rr}r(h4X are working again.h5jubeubaubh)r}r(h4X;[FIX] Error messages for methods in SimPy.Lib work again. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X9[FIX] Error messages for methods in SimPy.Lib work again.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZX9[FIX] Error messages for methods in SimPy.Lib work again.rr}r(h4jh5jubaubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUid14rahM]rh,auhOKhPhhQ]r(hS)r}r(h4X2.0.1 – 2009-04-06rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZX2.0.1 – 2009-04-06rr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]r(h)r}r(h4Xb[NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xb[NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXb[NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).rr}r(h4jh5jubaubaubh)r}r(h4XU[FIX] Repaired a number of coding errors in several models in the SimPyModels folder.h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XU[FIX] Repaired a number of coding errors in several models in the SimPyModels folder.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXU[FIX] Repaired a number of coding errors in several models in the SimPyModels folder.rr}r(h4jh5jubaubaubh)r}r (h4XI[FIX] Repaired SimulationRT.py bug introduced by recoding for the OO API.r h5jh>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r(h4j h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXI[FIX] Repaired SimulationRT.py bug introduced by recoding for the OO API.rr}r(h4j h5j ubaubaubh)r}r(h4X [FIX] Repaired errors in sample programs in documents: - Simulation with SimPy - In Depth Manual - SimPy’s Object Oriented API Manual - Simulation With Real Time Synchronization Manual - SimPlot Manual - Publication-quality Plot Production With Matplotlib Manual h5jh>NhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]r(h^)r}r(h4X6[FIX] Repaired errors in sample programs in documents:rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZX6[FIX] Repaired errors in sample programs in documents:rr}r(h4jh5jubaubh)r }r!(h4UhE}r"(hX-hJ]hI]hG]hH]hM]uh5jhQ]r#(h)r$}r%(h4X'Simulation with SimPy - In Depth Manualr&hE}r'(hG]hH]hI]hJ]hM]uh5j hQ]r(h^)r)}r*(h4j&h5j$h>hAhChbhE}r+(hG]hH]hI]hJ]hM]uhOKhQ]r,hZX'Simulation with SimPy - In Depth Manualr-r.}r/(h4j&h5j)ubaubahChubh)r0}r1(h4X$SimPy’s Object Oriented API Manualr2hE}r3(hG]hH]hI]hJ]hM]uh5j hQ]r4h^)r5}r6(h4j2h5j0h>hAhChbhE}r7(hG]hH]hI]hJ]hM]uhOKhQ]r8hZX$SimPy’s Object Oriented API Manualr9r:}r;(h4j2h5j5ubaubahChubh)r<}r=(h4X0Simulation With Real Time Synchronization Manualr>hE}r?(hG]hH]hI]hJ]hM]uh5j hQ]r@h^)rA}rB(h4j>h5j<h>hAhChbhE}rC(hG]hH]hI]hJ]hM]uhOKhQ]rDhZX0Simulation With Real Time Synchronization ManualrErF}rG(h4j>h5jAubaubahChubh)rH}rI(h4XSimPlot ManualrJhE}rK(hG]hH]hI]hJ]hM]uh5j hQ]rLh^)rM}rN(h4jJh5jHh>hAhChbhE}rO(hG]hH]hI]hJ]hM]uhOKhQ]rPhZXSimPlot ManualrQrR}rS(h4jJh5jMubaubahChubh)rT}rU(h4X<Publication-quality Plot Production With Matplotlib Manual hE}rV(hG]hH]hI]hJ]hM]uh5j hQ]rWh^)rX}rY(h4X:Publication-quality Plot Production With Matplotlib ManualrZh5jTh>hAhChbhE}r[(hG]hH]hI]hJ]hM]uhOKhQ]r\hZX:Publication-quality Plot Production With Matplotlib Manualr]r^}r_(h4jZh5jXubaubahChubehChubeubeubeubh6)r`}ra(h4Uh5hhAhChDhE}rb(hG]hH]hI]hJ]rcUid15rdahM]rehauhOKhPhhQ]rf(hS)rg}rh(h4X2.0.0 – 2009-01-26rih5j`h>hAhChWhE}rj(hG]hH]hI]hJ]hM]uhOKhPhhQ]rkhZX2.0.0 – 2009-01-26rlrm}rn(h4jih5jgubaubh^)ro}rp(h4XThis is a major release with changes to the SimPy application programming interface (API) and the formatting of the documentation.rqh5j`h>hAhChbhE}rr(hG]hH]hI]hJ]hM]uhOKhPhhQ]rshZXThis is a major release with changes to the SimPy application programming interface (API) and the formatting of the documentation.rtru}rv(h4jqh5joubaubh6)rw}rx(h4Uh5j`h>hAhChDhE}ry(hG]hH]hI]hJ]rzU api-changesr{ahM]r|hauhOKhPhhQ]r}(hS)r~}r(h4X API changesrh5jwh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZX API changesrr}r(h4jh5j~ubaubh^)r}r(h4X^In addition to its existing API, SimPy now also has an object oriented API. The additional APIrh5jwh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZX^In addition to its existing API, SimPy now also has an object oriented API. The additional APIrr}r(h4jh5jubaubh)r}r(h4Uh5jwh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]r(h)r}r(h4XKallows running SimPy in parallel on multiple processors or multi-core CPUs,rh5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4jh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXKallows running SimPy in parallel on multiple processors or multi-core CPUs,rr}r(h4jh5jubaubaubh)r}r(h4X.supports better structuring of SimPy programs,rh5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4jh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZX.supports better structuring of SimPy programs,rr}r(h4jh5jubaubaubh)r}r(h4Xallows subclassing of class *Simulation* and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andh5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4Xallows subclassing of class *Simulation* and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]r(hZXallows subclassing of class rr}r(h4Xallows subclassing of class h5jubh)r}r(h4X *Simulation*hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX Simulationrr}r(h4Uh5jubahChubhZXq and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andrr}r(h4Xq and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andh5jubeubaubh)r}r(h4XNreduces the total amount of SimPy code, thereby making it easier to maintain. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XMreduces the total amount of SimPy code, thereby making it easier to maintain.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXMreduces the total amount of SimPy code, thereby making it easier to maintain.rr}r(h4jh5jubaubaubeubh^)r}r(h4X_Note that the OO API is **in addition** to the old API. SimPy 2.0 is fully backward compatible.h5jwh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]r(hZXNote that the OO API is rr}r(h4XNote that the OO API is h5jubcdocutils.nodes strong r)r}r(h4X**in addition**hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX in additionrr}r(h4Uh5jubahCUstrongrubhZX8 to the old API. SimPy 2.0 is fully backward compatible.rr}r(h4X8 to the old API. SimPy 2.0 is fully backward compatible.h5jubeubeubh6)r}r(h4Uh5j`h>hAhChDhE}r(hG]hH]hI]hJ]rUdocumentation-format-changesrahM]rh+auhOKhPhhQ]r(hS)r}r(h4XDocumentation format changesrh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZXDocumentation format changesrr}r(h4jh5jubaubh^)r}r(h4XSimPy's documentation has been restructured and processed by the Sphinx documentation generation tool. This has generated one coherent, well structured document which can be easily browsed. A seach capability is included.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZXSimPy's documentation has been restructured and processed by the Sphinx documentation generation tool. This has generated one coherent, well structured document which can be easily browsed. A seach capability is included.rr}r(h4jh5jubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUmarch-2008-version-1-9-1rahM]rhauhOKhPhhQ]r(hS)r}r(h4XMarch 2008: Version 1.9.1rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZXMarch 2008: Version 1.9.1rr}r(h4jh5jubaubh^)r}r(h4X9This is a bug-fix release which cures the following bugs:rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZX9This is a bug-fix release which cures the following bugs:r r }r (h4jh5jubaubh)r }r (h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]r(h)r}r(h4XExcessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements. h5j h>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XExcessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXExcessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements.rr}r(h4jh5jubaubaubh)r}r(h4XKRuntime error for preempts of proceeses holding multiple Resource objects. h5j h>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r }r!(h4XJRuntime error for preempts of proceeses holding multiple Resource objects.r"h5jh>hAhChbhE}r#(hG]hH]hI]hJ]hM]uhOKhQ]r$hZXJRuntime error for preempts of proceeses holding multiple Resource objects.r%r&}r'(h4j"h5j ubaubaubeubh^)r(}r)(h4XKIt also adds a Short Manual, describing only the basic facilities of SimPy.r*h5jh>hAhChbhE}r+(hG]hH]hI]hJ]hM]uhOKhPhhQ]r,hZXKIt also adds a Short Manual, describing only the basic facilities of SimPy.r-r.}r/(h4j*h5j(ubaubeubh6)r0}r1(h4Uh5hhAhChDhE}r2(hG]hH]hI]hJ]r3Udecember-2007-version-1-9r4ahM]r5h(auhOKhPhhQ]r6(hS)r7}r8(h4XDecember 2007: Version 1.9r9h5j0h>hAhChWhE}r:(hG]hH]hI]hJ]hM]uhOKhPhhQ]r;hZXDecember 2007: Version 1.9r<r=}r>(h4j9h5j7ubaubh^)r?}r@(h4XRThis is a major release with added functionality/new user API calls and bug fixes.rAh5j0h>hAhChbhE}rB(hG]hH]hI]hJ]hM]uhOKhPhhQ]rChZXRThis is a major release with added functionality/new user API calls and bug fixes.rDrE}rF(h4jAh5j?ubaubh6)rG}rH(h4Uh9Kh5j0h>hAhChDhE}rI(hG]rJX major changesrKahH]hI]hJ]rLU major-changesrMahM]uhOKhPhhQ]rN(hS)rO}rP(h4X Major changesrQh5jGh>hAhChWhE}rR(hG]hH]hI]hJ]hM]uhOKhPhhQ]rShZX Major changesrTrU}rV(h4jQh5jOubaubh)rW}rX(h4Uh5jGh>hAhChhE}rY(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]rZ(h)r[}r\(h4XPThe event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux' idea! h5jWh>hAhChhE}r](hG]hH]hI]hJ]hM]uhONhPhhQ]r^h^)r_}r`(h4XOThe event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux' idea!rah5j[h>hAhChbhE}rb(hG]hH]hI]hJ]hM]uhOKhQ]rchZXOThe event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux' idea!rdre}rf(h4jah5j_ubaubaubh)rg}rh(h4X?The Manual has been edited and given an easier-to-read layout. h5jWh>hAhChhE}ri(hG]hH]hI]hJ]hM]uhONhPhhQ]rjh^)rk}rl(h4X>The Manual has been edited and given an easier-to-read layout.rmh5jgh>hAhChbhE}rn(hG]hH]hI]hJ]hM]uhOKhQ]rohZX>The Manual has been edited and given an easier-to-read layout.rprq}rr(h4jmh5jkubaubaubh)rs}rt(h4XcThe Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs. h5jWh>hAhChhE}ru(hG]hH]hI]hJ]hM]uhONhPhhQ]rvh^)rw}rx(h4XbThe Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs.ryh5jsh>hAhChbhE}rz(hG]hH]hI]hJ]hM]uhOKhQ]r{hZXbThe Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs.r|r}}r~(h4jyh5jwubaubaubeubeubh6)r}r(h4Uh9Kh5j0h>hAhChDhE}r(hG]rX bug fixesrahH]hI]hJ]rU bug-fixesrahM]uhOKhPhhQ]r(hS)r}r(h4X Bug fixesrh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZX Bug fixesrr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]rh)r}r(h4X7The tracing of 'activate' statements has been enabled. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X6The tracing of 'activate' statements has been enabled.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZX6The tracing of 'activate' statements has been enabled.rr}r(h4jh5jubaubaubaubeubh6)r}r(h4Uh9Kh5j0h>hAhChDhE}r(hG]rX additionsrahH]hI]hJ]rU additionsrahM]uhOKhPhhQ]r(hS)r}r(h4X Additionsrh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOKhPhhQ]rhZX Additionsrr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOKhPhhQ]r(h)r}r(h4XkA method returning the time-weighted variance of observations has been added to classes Monitor and Tally. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XjA method returning the time-weighted variance of observations has been added to classes Monitor and Tally.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXjA method returning the time-weighted variance of observations has been added to classes Monitor and Tally.rr}r(h4jh5jubaubaubh)r}r(h4XNA shortcut activation method called "start" has been added to class Process. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XLA shortcut activation method called "start" has been added to class Process.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOKhQ]rhZXLA shortcut activation method called "start" has been added to class Process.rr}r(h4jh5jubaubaubeubeubeubh:h6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUjune-2006-version-1-7-1rahM]rhauhOM:hPhhQ]r(hS)r}r(h4XJune 2006: Version 1.7.1rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOM:hPhhQ]rhZXJune 2006: Version 1.7.1rr}r(h4jh5jubaubh^)r}r(h4XEThis is a maintenance release. The API has not been changed/added to.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOM<hPhhQ]rhZXEThis is a maintenance release. The API has not been changed/added to.rr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOM>hPhhQ]r(h)r}r(h4XRepair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer). h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XRepair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer).rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOM>hQ]rhZXRepair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer).rr}r(h4jh5jubaubaubh)r}r(h4X\Repair of Level __init__ method to allow initialBuffered to be of either float or int type. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X[Repair of Level __init__ method to allow initialBuffered to be of either float or int type.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMAhQ]rhZX[Repair of Level __init__ method to allow initialBuffered to be of either float or int type.rr}r(h4jh5jubaubaubh)r}r(h4X^Addition of type test for Level get parameter 'nrToGet' to limit it to positive int or float. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X]Addition of type test for Level get parameter 'nrToGet' to limit it to positive int or float.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMChQ]rhZX]Addition of type test for Level get parameter 'nrToGet' to limit it to positive int or float.rr}r (h4jh5jubaubaubh)r }r (h4XTo improve pretty-printed output of 'Level' objects, changed attribute '_nrBuffered' to 'nrBuffered' (synonym for 'amount' property). h5jh>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r}r(h4XTo improve pretty-printed output of 'Level' objects, changed attribute '_nrBuffered' to 'nrBuffered' (synonym for 'amount' property).rh5j h>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMFhQ]rhZXTo improve pretty-printed output of 'Level' objects, changed attribute '_nrBuffered' to 'nrBuffered' (synonym for 'amount' property).rr}r(h4jh5jubaubaubh)r}r(h4X{To improve pretty-printed output of 'Store' objects, added attribute 'buffered' (which refers to '_theBuffer' attribute). h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XyTo improve pretty-printed output of 'Store' objects, added attribute 'buffered' (which refers to '_theBuffer' attribute).rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMIhQ]rhZXyTo improve pretty-printed output of 'Store' objects, added attribute 'buffered' (which refers to '_theBuffer' attribute).rr }r!(h4jh5jubaubaubeubeubh6)r"}r#(h4Uh5hhAhChDhE}r$(hG]hH]hI]hJ]r%Ufebruary-2006-version-1-7r&ahM]r'hauhOMNhPhhQ]r((hS)r)}r*(h4XFebruary 2006: Version 1.7r+h5j"h>hAhChWhE}r,(hG]hH]hI]hJ]hM]uhOMNhPhhQ]r-hZXFebruary 2006: Version 1.7r.r/}r0(h4j+h5j)ubaubh^)r1}r2(h4XThis is a major release.r3h5j"h>hAhChbhE}r4(hG]hH]hI]hJ]hM]uhOMPhPhhQ]r5hZXThis is a major release.r6r7}r8(h4j3h5j1ubaubh)r9}r:(h4Uh5j"h>hAhChhE}r;(hX-hJ]hI]hG]hH]hM]uhOMRhPhhQ]r<(h)r=}r>(h4XAddition of an abstract class Buffer, with two sub-classes *Store* and *Level* Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios. h5j9h>hAhChhE}r?(hG]hH]hI]hJ]hM]uhONhPhhQ]r@h^)rA}rB(h4XAddition of an abstract class Buffer, with two sub-classes *Store* and *Level* Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.h5j=h>hAhChbhE}rC(hG]hH]hI]hJ]hM]uhOMRhQ]rD(hZX;Addition of an abstract class Buffer, with two sub-classes rErF}rG(h4X;Addition of an abstract class Buffer, with two sub-classes h5jAubh)rH}rI(h4X*Store*hE}rJ(hG]hH]hI]hJ]hM]uh5jAhQ]rKhZXStorerLrM}rN(h4Uh5jHubahChubhZX and rOrP}rQ(h4X and h5jAubh)rR}rS(h4X*Level*hE}rT(hG]hH]hI]hJ]hM]uh5jAhQ]rUhZXLevelrVrW}rX(h4Uh5jRubahChubhZX| Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.rYrZ}r[(h4X| Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.h5jAubeubaubh)r\}r](h4XAddition of two new *yield* statements: + *yield put* for putting items into a buffer, and + *yield get* for getting items from a buffer. h5j9h>NhChhE}r^(hG]hH]hI]hJ]hM]uhONhPhhQ]r_(h^)r`}ra(h4X'Addition of two new *yield* statements:h5j\h>hAhChbhE}rb(hG]hH]hI]hJ]hM]uhOMVhQ]rc(hZXAddition of two new rdre}rf(h4XAddition of two new h5j`ubh)rg}rh(h4X*yield*hE}ri(hG]hH]hI]hJ]hM]uh5j`hQ]rjhZXyieldrkrl}rm(h4Uh5jgubahChubhZX statements:rnro}rp(h4X statements:h5j`ubeubh)rq}rr(h4UhE}rs(hX+hJ]hI]hG]hH]hM]uh5j\hQ]rt(h)ru}rv(h4X1*yield put* for putting items into a buffer, and hE}rw(hG]hH]hI]hJ]hM]uh5jqhQ]rxh^)ry}rz(h4X0*yield put* for putting items into a buffer, andh5juh>hAhChbhE}r{(hG]hH]hI]hJ]hM]uhOMXhQ]r|(h)r}}r~(h4X *yield put*hE}r(hG]hH]hI]hJ]hM]uh5jyhQ]rhZX yield putrr}r(h4Uh5j}ubahChubhZX% for putting items into a buffer, andrr}r(h4X% for putting items into a buffer, andh5jyubeubahChubh)r}r(h4X-*yield get* for getting items from a buffer. hE}r(hG]hH]hI]hJ]hM]uh5jqhQ]rh^)r}r(h4X,*yield get* for getting items from a buffer.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMZhQ]r(h)r}r(h4X *yield get*hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX yield getrr}r(h4Uh5jubahChubhZX! for getting items from a buffer.rr}r(h4X! for getting items from a buffer.h5jubeubahChubehChubeubh)r}r(h4X0The Manual has undergone a major re-write/edit. h5j9h>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X/The Manual has undergone a major re-write/edit.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOM\hQ]rhZX/The Manual has undergone a major re-write/edit.rr}r(h4jh5jubaubaubh)r}r(h4XFAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all *import* statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation. h5j9h>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XEAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all *import* statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOM^hQ]r(hZXjAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all rr}r(h4XjAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all h5jubh)r}r(h4X*import*hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZXimportrr}r(h4Uh5jubahChubhZX statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.rr}r(h4X statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.h5jubeubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUseptember-2005-version-1-6-1rahM]rhauhOMehPhhQ]r(hS)r}r(h4XSeptember 2005: Version 1.6.1rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOMehPhhQ]rhZXSeptember 2005: Version 1.6.1rr}r(h4jh5jubaubh^)r}r(h4XThis is a minor release.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMghPhhQ]rhZXThis is a minor release.rr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOMihPhhQ]r(h)r}r(h4XAddition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XAddition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMihQ]rhZXAddition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor.rr}r(h4jh5jubaubaubh)r}r(h4X[Change of Resource to work with Tally (new Resource API is backwards-compatible with 1.6). h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XZChange of Resource to work with Tally (new Resource API is backwards-compatible with 1.6).rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMmhQ]rhZXZChange of Resource to work with Tally (new Resource API is backwards-compatible with 1.6).rr}r(h4jh5jubaubaubh)r}r(h4XPAddition of function setHistogram to class Monitor for initializing histograms. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XOAddition of function setHistogram to class Monitor for initializing histograms.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMphQ]rhZXOAddition of function setHistogram to class Monitor for initializing histograms.rr}r(h4jh5jubaubaubh)r}r(h4XNew function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances. h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XNew function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMshQ]rhZXNew function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances.rr}r(h4jh5jubaubaubh)r}r(h4XRAddition of function allEventTimes (returns event times of all scheduled events). h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r }r (h4XQAddition of function allEventTimes (returns event times of all scheduled events).r h5jh>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMvhQ]r hZXQAddition of function allEventTimes (returns event times of all scheduled events).rr}r(h4j h5j ubaubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUjune-2005-version-1-6rahM]rh)auhOMzhPhhQ]r(hS)r}r(h4X15 June 2005: Version 1.6rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOMzhPhhQ]rhZX15 June 2005: Version 1.6rr}r(h4jh5jubaubh)r }r!(h4Uh5jh>hAhChhE}r"(hX-hJ]hI]hG]hH]hM]uhOM|hPhhQ]r#(h)r$}r%(h4XtAddition of two compound yield statement forms to support the modelling of processes reneging from resource queues. h5j h>hAhChhE}r&(hG]hH]hI]hJ]hM]uhONhPhhQ]r'h^)r(}r)(h4XsAddition of two compound yield statement forms to support the modelling of processes reneging from resource queues.r*h5j$h>hAhChbhE}r+(hG]hH]hI]hJ]hM]uhOM|hQ]r,hZXsAddition of two compound yield statement forms to support the modelling of processes reneging from resource queues.r-r.}r/(h4j*h5j(ubaubaubh)r0}r1(h4XPAddition of two test/demo files showing the use of the new reneging statements. h5j h>hAhChhE}r2(hG]hH]hI]hJ]hM]uhONhPhhQ]r3h^)r4}r5(h4XOAddition of two test/demo files showing the use of the new reneging statements.r6h5j0h>hAhChbhE}r7(hG]hH]hI]hJ]hM]uhOMhQ]r8hZXOAddition of two test/demo files showing the use of the new reneging statements.r9r:}r;(h4j6h5j4ubaubaubh)r<}r=(h4XKAddition of test for prior simulation initialization in method activate(). h5j h>hAhChhE}r>(hG]hH]hI]hJ]hM]uhONhPhhQ]r?h^)r@}rA(h4XJAddition of test for prior simulation initialization in method activate().rBh5j<h>hAhChbhE}rC(hG]hH]hI]hJ]hM]uhOMhQ]rDhZXJAddition of test for prior simulation initialization in method activate().rErF}rG(h4jBh5j@ubaubaubh)rH}rI(h4XLRepair of bug in monitoring thw waitQ of a resource when preemption occurs. h5j h>hAhChhE}rJ(hG]hH]hI]hJ]hM]uhONhPhhQ]rKh^)rL}rM(h4XKRepair of bug in monitoring thw waitQ of a resource when preemption occurs.rNh5jHh>hAhChbhE}rO(hG]hH]hI]hJ]hM]uhOMhQ]rPhZXKRepair of bug in monitoring thw waitQ of a resource when preemption occurs.rQrR}rS(h4jNh5jLubaubaubh)rT}rU(h4X6Major restructuring/editing to Manual and Cheatsheet. h5j h>hAhChhE}rV(hG]hH]hI]hJ]hM]uhONhPhhQ]rWh^)rX}rY(h4X5Major restructuring/editing to Manual and Cheatsheet.rZh5jTh>hAhChbhE}r[(hG]hH]hI]hJ]hM]uhOMhQ]r\hZX5Major restructuring/editing to Manual and Cheatsheet.r]r^}r_(h4jZh5jXubaubaubeubeubh6)r`}ra(h4Uh5hhAhChDhE}rb(hG]hH]hI]hJ]rcUfebruary-2005-version-1-5-1rdahM]reh&auhOMhPhhQ]rf(hS)rg}rh(h4X1 February 2005: Version 1.5.1rih5j`h>hAhChWhE}rj(hG]hH]hI]hJ]hM]uhOMhPhhQ]rkhZX1 February 2005: Version 1.5.1rlrm}rn(h4jih5jgubaubh)ro}rp(h4Uh5j`h>hAhChhE}rq(hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]rr(h)rs}rt(h4X MAJOR LICENSE CHANGE: Starting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work. h5joh>hAhChhE}ru(hG]hH]hI]hJ]hM]uhONhPhhQ]rv(h^)rw}rx(h4XMAJOR LICENSE CHANGE:ryh5jsh>hAhChbhE}rz(hG]hH]hI]hJ]hM]uhOMhQ]r{hZXMAJOR LICENSE CHANGE:r|r}}r~(h4jyh5jwubaubcdocutils.nodes block_quote r)r}r(h4UhE}r(hG]hH]hI]hJ]hM]uh5jshQ]rh^)r}r(h4XStarting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZXStarting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work.rr}r(h4jh5jubaubahCU block_quoterubeubh)r}r(h4XMinor re-release h5joh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XMinor re-releaserh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZXMinor re-releaserr}r(h4jh5jubaubaubh)r}r(h4X$No additional/changed functionality h5joh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X#No additional/changed functionalityrh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZX#No additional/changed functionalityrr}r(h4jh5jubaubaubh)r}r(h4XUIncludes unit test file'MonitorTest.py' which had been accidentally deleted from 1.5 h5joh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XTIncludes unit test file'MonitorTest.py' which had been accidentally deleted from 1.5rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZXTIncludes unit test file'MonitorTest.py' which had been accidentally deleted from 1.5rr}r(h4jh5jubaubaubh)r}r(h4X2Provides updated version of 'Bank.html' tutorial. h5joh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X1Provides updated version of 'Bank.html' tutorial.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZX1Provides updated version of 'Bank.html' tutorial.rr}r(h4jh5jubaubaubh)r}r(h4XProvides an additional tutorial ('Bank2.html') which shows how to use the new synchronization constructs introduced in SimPy 1.5. h5joh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XProvides an additional tutorial ('Bank2.html') which shows how to use the new synchronization constructs introduced in SimPy 1.5.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZXProvides an additional tutorial ('Bank2.html') which shows how to use the new synchronization constructs introduced in SimPy 1.5.rr}r(h4jh5jubaubaubh)r}r(h4X2More logical, cleaner version numbering in files. h5joh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X1More logical, cleaner version numbering in files.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZX1More logical, cleaner version numbering in files.rr}r(h4jh5jubaubaubeubeubh6)r}r(h4Uh5hhAhChDhE}r(hG]hH]hI]hJ]rUdecember-2004-version-1-5rahM]rh#auhOMhPhhQ]r(hS)r}r(h4X1 December 2004: Version 1.5rh5jh>hAhChWhE}r(hG]hH]hI]hJ]hM]uhOMhPhhQ]rhZX1 December 2004: Version 1.5rr}r(h4jh5jubaubh)r}r(h4Uh5jh>hAhChhE}r(hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r(h)r}r(h4X7No new functionality/API changes relative to 1.5 alpha h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X6No new functionality/API changes relative to 1.5 alpharh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZX6No new functionality/API changes relative to 1.5 alpharr}r(h4jh5jubaubaubh)r}r(h4X<Repaired bug related to waiting/queuing for multiple events h5jh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X;Repaired bug related to waiting/queuing for multiple eventsrh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZX;Repaired bug related to waiting/queuing for multiple eventsrr}r(h4jh5jubaubaubh)r }r (h4XISimulationRT: Improved synchronization with wallclock time on Unix/Linux h5jh>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4XHSimulationRT: Improved synchronization with wallclock time on Unix/Linuxr h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXHSimulationRT: Improved synchronization with wallclock time on Unix/Linuxr r }r (h4j h5j ubaubaubeubeubh6)r }r (h4Uh5hhAhChDhE}r (hG]hH]hI]hJ]r Useptember-2004-version-1-5alphar ahM]r hauhOMhPhhQ]r (hS)r }r (h4X#25 September 2004: Version 1.5alphar h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOMhPhhQ]r hZX#25 September 2004: Version 1.5alphar r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r (h)r }r (h4XNew functionality/API additions * SimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands. * A general "wait until" synchronization construct, with the 'yield waituntil' command. h5j h>hAhChhE}r! (hG]hH]hI]hJ]hM]uhONhPhhQ]r" (h^)r# }r$ (h4XNew functionality/API additionsr% h5j h>hAhChbhE}r& (hG]hH]hI]hJ]hM]uhOMhQ]r' hZXNew functionality/API additionsr( r) }r* (h4j% h5j# ubaubj)r+ }r, (h4UhE}r- (hG]hH]hI]hJ]hM]uh5j hQ]r. h)r/ }r0 (h4UhE}r1 (hX*hJ]hI]hG]hH]hM]uh5j+ hQ]r2 (h)r3 }r4 (h4XmSimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands. hE}r5 (hG]hH]hI]hJ]hM]uh5j/ hQ]r6 h^)r7 }r8 (h4XlSimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands.r9 h5j3 h>hAhChbhE}r: (hG]hH]hI]hJ]hM]uhOMhQ]r; hZXlSimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands.r< r= }r> (h4j9 h5j7 ubaubahChubh)r? }r@ (h4XVA general "wait until" synchronization construct, with the 'yield waituntil' command. hE}rA (hG]hH]hI]hJ]hM]uh5j/ hQ]rB h^)rC }rD (h4XUA general "wait until" synchronization construct, with the 'yield waituntil' command.rE h5j? h>hAhChbhE}rF (hG]hH]hI]hJ]hM]uhOMhQ]rG hZXUA general "wait until" synchronization construct, with the 'yield waituntil' command.rH rI }rJ (h4jE h5jC ubaubahChubehChubahCjubeubh)rK }rL (h4XBNo changes to 1.4.x API, i.e., existing code will work as before. h5j h>hAhChhE}rM (hG]hH]hI]hJ]hM]uhONhPhhQ]rN h^)rO }rP (h4XANo changes to 1.4.x API, i.e., existing code will work as before.rQ h5jK h>hAhChbhE}rR (hG]hH]hI]hJ]hM]uhOMhQ]rS hZXANo changes to 1.4.x API, i.e., existing code will work as before.rT rU }rV (h4jQ h5jO ubaubaubeubeubh6)rW }rX (h4Uh5hhAhChDhE}rY (hG]hH]hI]hJ]rZ Umay-2004-version-1-4-2r[ ahM]r\ hauhOMhPhhQ]r] (hS)r^ }r_ (h4X19 May 2004: Version 1.4.2r` h5jW h>hAhChWhE}ra (hG]hH]hI]hJ]hM]uhOMhPhhQ]rb hZX19 May 2004: Version 1.4.2rc rd }re (h4j` h5j^ ubaubh)rf }rg (h4Uh5jW h>hAhChhE}rh (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]ri (h)rj }rk (h4XSub-release to repair two bugs: * The unittest for monitored Resource queues does not fail anymore. * SimulationTrace now works correctly with "yield hold,self" form. h5jf h>hAhChhE}rl (hG]hH]hI]hJ]hM]uhONhPhhQ]rm (h^)rn }ro (h4XSub-release to repair two bugs:rp h5jj h>hAhChbhE}rq (hG]hH]hI]hJ]hM]uhOMhQ]rr hZXSub-release to repair two bugs:rs rt }ru (h4jp h5jn ubaubj)rv }rw (h4UhE}rx (hG]hH]hI]hJ]hM]uh5jj hQ]ry h)rz }r{ (h4UhE}r| (hX*hJ]hI]hG]hH]hM]uh5jv hQ]r} (h)r~ }r (h4XBThe unittest for monitored Resource queues does not fail anymore. hE}r (hG]hH]hI]hJ]hM]uh5jz hQ]r h^)r }r (h4XAThe unittest for monitored Resource queues does not fail anymore.r h5j~ h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXAThe unittest for monitored Resource queues does not fail anymore.r r }r (h4j h5j ubaubahChubh)r }r (h4XASimulationTrace now works correctly with "yield hold,self" form. hE}r (hG]hH]hI]hJ]hM]uh5jz hQ]r h^)r }r (h4X@SimulationTrace now works correctly with "yield hold,self" form.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX@SimulationTrace now works correctly with "yield hold,self" form.r r }r (h4j h5j ubaubahChubehChubahCjubeubh)r }r (h4XNo functional or API changes h5jf h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4XNo functional or API changesr h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXNo functional or API changesr r }r (h4j h5j ubaubaubeubeubh6)r }r (h4Uh5hhAhChDhE}r (hG]hH]hI]hJ]r Ufebruary-2004-version-1-4-1r ahM]r h%auhOMhPhhQ]r (hS)r }r (h4X29 February 2004: Version 1.4.1r h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOMhPhhQ]r hZX29 February 2004: Version 1.4.1r r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r (h)r }r (h4XSub-release to repair two bugs: * The (optional) monitoring of the activeQ in Resource now works correctly. * The "cellphone.py" example is now implemented correctly. h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r (h^)r }r (h4XSub-release to repair two bugs:r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXSub-release to repair two bugs:r r }r (h4j h5j ubaubj)r }r (h4UhE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h)r }r (h4UhE}r (hX*hJ]hI]hG]hH]hM]uh5j hQ]r (h)r }r (h4XJThe (optional) monitoring of the activeQ in Resource now works correctly. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4XIThe (optional) monitoring of the activeQ in Resource now works correctly.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXIThe (optional) monitoring of the activeQ in Resource now works correctly.r r }r (h4j h5j ubaubahChubh)r }r (h4X9The "cellphone.py" example is now implemented correctly. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4X8The "cellphone.py" example is now implemented correctly.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX8The "cellphone.py" example is now implemented correctly.r r }r (h4j h5j ubaubahChubehChubahCjubeubh)r }r (h4XNo functional or API changes h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4XNo functional or API changesr h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXNo functional or API changesr r }r (h4j h5j ubaubaubeubeubh6)r }r (h4Uh5hhAhChDhE}r (hG]hH]hI]hJ]r Ufebruary-2004-version-1-4r ahM]r h*auhOMhPhhQ]r (hS)r }r (h4X1 February 2004: Version 1.4r h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOMhPhhQ]r hZX1 February 2004: Version 1.4r r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r h)r }r (h4XReleased on SourceForge.net h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4XReleased on SourceForge.netr h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXReleased on SourceForge.netr r }r (h4j h5j ubaubaubaubeubh6)r }r (h4Uh5hhAhChDhE}r (hG]hH]hI]hJ]r Udecember-2003-version-1-4-alphar ahM]r h$auhOMhPhhQ]r (hS)r }r (h4X#22 December 2003: Version 1.4 alphar h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOMhPhhQ]r hZX#22 December 2003: Version 1.4 alphar r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r h)r }r (h4XNew functionality/API changes * All classes in the SimPy API are now new style classes, i.e., they inherit from *object* either directly or indirectly. * Module *Monitor.py* has been merged into module *Simulation.py* and all *SimulationXXX.py* modules. Import of *Simulation* or any *SimulationXXX* module now also imports *Monitor*. * Some *Monitor* methods/attributes have changed. See Manual! * *Monitor* now inherits from *list*. * A class *Histogram* has been added to *Simulation.py* and all *SimulationXXX.py* modules. * A module *SimulationRT* has been added which allows synchronization between simulated and wallclock time. * A moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event. * A Tk/Tkinter-based module *SimGUI* has been added which provides a SimPy GUI framework. * A Tk/Tkinter-based module *SimPlot* has been added which provides for plot output from SimPy programs. h5j h>hAhChhE}r! (hG]hH]hI]hJ]hM]uhONhPhhQ]r" (h^)r# }r$ (h4XNew functionality/API changesr% h5j h>hAhChbhE}r& (hG]hH]hI]hJ]hM]uhOMhQ]r' hZXNew functionality/API changesr( r) }r* (h4j% h5j# ubaubj)r+ }r, (h4UhE}r- (hG]hH]hI]hJ]hM]uh5j hQ]r. (j)r/ }r0 (h4UhE}r1 (hG]hH]hI]hJ]hM]uh5j+ hQ]r2 h)r3 }r4 (h4UhE}r5 (hX*hJ]hI]hG]hH]hM]uh5j/ hQ]r6 (h)r7 }r8 (h4XxAll classes in the SimPy API are now new style classes, i.e., they inherit from *object* either directly or indirectly. hE}r9 (hG]hH]hI]hJ]hM]uh5j3 hQ]r: h^)r; }r< (h4XwAll classes in the SimPy API are now new style classes, i.e., they inherit from *object* either directly or indirectly.h5j7 h>hAhChbhE}r= (hG]hH]hI]hJ]hM]uhOMhQ]r> (hZXPAll classes in the SimPy API are now new style classes, i.e., they inherit from r? r@ }rA (h4XPAll classes in the SimPy API are now new style classes, i.e., they inherit from h5j; ubh)rB }rC (h4X*object*hE}rD (hG]hH]hI]hJ]hM]uh5j; hQ]rE hZXobjectrF rG }rH (h4Uh5jB ubahChubhZX either directly or indirectly.rI rJ }rK (h4X either directly or indirectly.h5j; ubeubahChubh)rL }rM (h4XModule *Monitor.py* has been merged into module *Simulation.py* and all *SimulationXXX.py* modules. Import of *Simulation* or any *SimulationXXX* module now also imports *Monitor*. hE}rN (hG]hH]hI]hJ]hM]uh5j3 hQ]rO h^)rP }rQ (h4XModule *Monitor.py* has been merged into module *Simulation.py* and all *SimulationXXX.py* modules. Import of *Simulation* or any *SimulationXXX* module now also imports *Monitor*.h5jL h>hAhChbhE}rR (hG]hH]hI]hJ]hM]uhOMhQ]rS (hZXModule rT rU }rV (h4XModule h5jP ubh)rW }rX (h4X *Monitor.py*hE}rY (hG]hH]hI]hJ]hM]uh5jP hQ]rZ hZX Monitor.pyr[ r\ }r] (h4Uh5jW ubahChubhZX has been merged into module r^ r_ }r` (h4X has been merged into module h5jP ubh)ra }rb (h4X*Simulation.py*hE}rc (hG]hH]hI]hJ]hM]uh5jP hQ]rd hZX Simulation.pyre rf }rg (h4Uh5ja ubahChubhZX and all rh ri }rj (h4X and all h5jP ubh)rk }rl (h4X*SimulationXXX.py*hE}rm (hG]hH]hI]hJ]hM]uh5jP hQ]rn hZXSimulationXXX.pyro rp }rq (h4Uh5jk ubahChubhZX modules. Import of rr rs }rt (h4X modules. Import of h5jP ubh)ru }rv (h4X *Simulation*hE}rw (hG]hH]hI]hJ]hM]uh5jP hQ]rx hZX Simulationry rz }r{ (h4Uh5ju ubahChubhZX or any r| r} }r~ (h4X or any h5jP ubh)r }r (h4X*SimulationXXX*hE}r (hG]hH]hI]hJ]hM]uh5jP hQ]r hZX SimulationXXXr r }r (h4Uh5j ubahChubhZX module now also imports r r }r (h4X module now also imports h5jP ubh)r }r (h4X *Monitor*hE}r (hG]hH]hI]hJ]hM]uh5jP hQ]r hZXMonitorr r }r (h4Uh5j ubahChubhZX.r }r (h4X.h5jP ubeubahChubh)r }r (h4X<Some *Monitor* methods/attributes have changed. See Manual! hE}r (hG]hH]hI]hJ]hM]uh5j3 hQ]r h^)r }r (h4X;Some *Monitor* methods/attributes have changed. See Manual!h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r (hZXSome r r }r (h4XSome h5j ubh)r }r (h4X *Monitor*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZXMonitorr r }r (h4Uh5j ubahChubhZX- methods/attributes have changed. See Manual!r r }r (h4X- methods/attributes have changed. See Manual!h5j ubeubahChubh)r }r (h4X$*Monitor* now inherits from *list*. hE}r (hG]hH]hI]hJ]hM]uh5j3 hQ]r h^)r }r (h4X#*Monitor* now inherits from *list*.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r (h)r }r (h4X *Monitor*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZXMonitorr r }r (h4Uh5j ubahChubhZX now inherits from r r }r (h4X now inherits from h5j ubh)r }r (h4X*list*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZXlistr r }r (h4Uh5j ubahChubhZX.r }r (h4X.h5j ubeubahChubehChubahCjubh)r }r (h4UhE}r (hX*hJ]hI]hG]hH]hM]uh5j+ hQ]r (h)r }r (h4XZA class *Histogram* has been added to *Simulation.py* and all *SimulationXXX.py* modules. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4XYA class *Histogram* has been added to *Simulation.py* and all *SimulationXXX.py* modules.h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r (hZXA class r r }r (h4XA class h5j ubh)r }r (h4X *Histogram*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZX Histogramr r }r (h4Uh5j ubahChubhZX has been added to r r }r (h4X has been added to h5j ubh)r }r (h4X*Simulation.py*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZX Simulation.pyr r }r (h4Uh5j ubahChubhZX and all r r }r (h4X and all h5j ubh)r }r (h4X*SimulationXXX.py*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZXSimulationXXX.pyr r }r (h4Uh5j ubahChubhZX modules.r r }r (h4X modules.h5j ubeubahChubh)r }r (h4XjA module *SimulationRT* has been added which allows synchronization between simulated and wallclock time. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4XiA module *SimulationRT* has been added which allows synchronization between simulated and wallclock time.h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r (hZX A module r r }r (h4X A module h5j ubh)r }r (h4X*SimulationRT*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZX SimulationRTr r }r (h4Uh5j ubahChubhZXR has been added which allows synchronization between simulated and wallclock time.r r }r (h4XR has been added which allows synchronization between simulated and wallclock time.h5j ubeubahChubh)r }r (h4XA moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4XA moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXA moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event.r r }r (h4j h5j ubaubahChubh)r }r (h4XXA Tk/Tkinter-based module *SimGUI* has been added which provides a SimPy GUI framework. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4XWA Tk/Tkinter-based module *SimGUI* has been added which provides a SimPy GUI framework.h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r (hZXA Tk/Tkinter-based module r r }r (h4XA Tk/Tkinter-based module h5j ubh)r }r (h4X*SimGUI*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZXSimGUIr r! }r" (h4Uh5j ubahChubhZX5 has been added which provides a SimPy GUI framework.r# r$ }r% (h4X5 has been added which provides a SimPy GUI framework.h5j ubeubahChubh)r& }r' (h4XhA Tk/Tkinter-based module *SimPlot* has been added which provides for plot output from SimPy programs. hE}r( (hG]hH]hI]hJ]hM]uh5j hQ]r) h^)r* }r+ (h4XfA Tk/Tkinter-based module *SimPlot* has been added which provides for plot output from SimPy programs.h5j& h>hAhChbhE}r, (hG]hH]hI]hJ]hM]uhOMhQ]r- (hZXA Tk/Tkinter-based module r. r/ }r0 (h4XA Tk/Tkinter-based module h5j* ubh)r1 }r2 (h4X *SimPlot*hE}r3 (hG]hH]hI]hJ]hM]uh5j* hQ]r4 hZXSimPlotr5 r6 }r7 (h4Uh5j1 ubahChubhZXC has been added which provides for plot output from SimPy programs.r8 r9 }r: (h4XC has been added which provides for plot output from SimPy programs.h5j* ubeubahChubehChubehCjubeubaubeubh6)r; }r< (h4Uh5hhAhChDhE}r= (hG]hH]hI]hJ]r> Ujune-2003-version-1-3r? ahM]r@ hauhOMhPhhQ]rA (hS)rB }rC (h4X22 June 2003: Version 1.3rD h5j; h>hAhChWhE}rE (hG]hH]hI]hJ]hM]uhOMhPhhQ]rF hZX22 June 2003: Version 1.3rG rH }rI (h4jD h5jB ubaubh)rJ }rK (h4Uh5j; h>hAhChhE}rL (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]rM (h)rN }rO (h4XNo functional or API changesrP h5jJ h>hAhChhE}rQ (hG]hH]hI]hJ]hM]uhONhPhhQ]rR h^)rS }rT (h4jP h5jN h>hAhChbhE}rU (hG]hH]hI]hJ]hM]uhOMhQ]rV hZXNo functional or API changesrW rX }rY (h4jP h5jS ubaubaubh)rZ }r[ (h4XIReduction of sourcecode linelength in Simulation.py to <= 80 characters h5jJ h>hAhChhE}r\ (hG]hH]hI]hJ]hM]uhONhPhhQ]r] h^)r^ }r_ (h4XGReduction of sourcecode linelength in Simulation.py to <= 80 charactersr` h5jZ h>hAhChbhE}ra (hG]hH]hI]hJ]hM]uhOMhQ]rb hZXGReduction of sourcecode linelength in Simulation.py to <= 80 charactersrc rd }re (h4j` h5j^ ubaubaubeubeubh6)rf }rg (h4Uh5hhAhChDhE}rh (hG]hH]hI]hJ]ri Ujune-2003-version-1-3-alpharj ahM]rk hauhOMhPhhQ]rl (hS)rm }rn (h4XJune 2003: Version 1.3 alpharo h5jf h>hAhChWhE}rp (hG]hH]hI]hJ]hM]uhOMhPhhQ]rq hZXJune 2003: Version 1.3 alpharr rs }rt (h4jo h5jm ubaubh)ru }rv (h4Uh5jf h>hAhChhE}rw (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]rx (h)ry }rz (h4X"Significantly improved performancer{ h5ju h>hAhChhE}r| (hG]hH]hI]hJ]hM]uhONhPhhQ]r} h^)r~ }r (h4j{ h5jy h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX"Significantly improved performancer r }r (h4j{ h5j~ ubaubaubh)r }r (h4XKSignificant increase in number of quasi-parallel processes SimPy can handler h5ju h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXKSignificant increase in number of quasi-parallel processes SimPy can handler r }r (h4j h5j ubaubaubh)r }r (h4XNew functionality/API changes: * Addition of SimulationTrace, an event trace utility * Addition of Lister, a prettyprinter for instance attributes * No API changes h5ju h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r (h^)r }r (h4XNew functionality/API changes:r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXNew functionality/API changes:r r }r (h4j h5j ubaubj)r }r (h4UhE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h)r }r (h4UhE}r (hX*hJ]hI]hG]hH]hM]uh5j hQ]r (h)r }r (h4X3Addition of SimulationTrace, an event trace utilityr hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX3Addition of SimulationTrace, an event trace utilityr r }r (h4j h5j ubaubahChubh)r }r (h4X;Addition of Lister, a prettyprinter for instance attributesr hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX;Addition of Lister, a prettyprinter for instance attributesr r }r (h4j h5j ubaubahChubh)r }r (h4XNo API changes hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4XNo API changesr h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXNo API changesr r }r (h4j h5j ubaubahChubehChubahCjubeubh)r }r (h4XInternal changes: * Implementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you! h5ju h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r (h^)r }r (h4XInternal changes:r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXInternal changes:r r }r (h4j h5j ubaubj)r }r (h4UhE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h)r }r (h4UhE}r (hX*hJ]hI]hG]hH]hM]uh5j hQ]r h)r }r (h4XImplementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you! hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4XImplementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you!r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXImplementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you!r r }r (h4j h5j ubaubahChubahChubahCjubeubh)r }r (h4X$Update of Manual to address tracing.r h5ju h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX$Update of Manual to address tracing.r r }r (h4j h5j ubaubaubh)r }r (h4XaUpdate of Interfacing doc to address output visualization using Scientific Python gplt package. h5ju h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4X_Update of Interfacing doc to address output visualization using Scientific Python gplt package.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX_Update of Interfacing doc to address output visualization using Scientific Python gplt package.r r }r (h4j h5j ubaubaubeubeubh6)r }r (h4Uh5hhAhChDhE}r (hG]hH]hI]hJ]r Uapril-2003-version-1-2r ahM]r h auhOMhPhhQ]r (hS)r }r (h4X29 April 2003: Version 1.2r h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOMhPhhQ]r hZX29 April 2003: Version 1.2r r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r (h)r }r (h4XNo changes in API.r h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXNo changes in API.r r }r (h4j h5j ubaubaubh)r }r! (h4X^Internal changes: * Defined "True" and "False" in Simulation.py to support Python 2.2. h5j h>NhChhE}r" (hG]hH]hI]hJ]hM]uhONhPhhQ]r# cdocutils.nodes definition_list r$ )r% }r& (h4UhE}r' (hG]hH]hI]hJ]hM]uh5j hQ]r( cdocutils.nodes definition_list_item r) )r* }r+ (h4XXInternal changes: * Defined "True" and "False" in Simulation.py to support Python 2.2. h5j% h>hAhCUdefinition_list_itemr, hE}r- (hG]hH]hI]hJ]hM]uhOMhQ]r. (cdocutils.nodes term r/ )r0 }r1 (h4XInternal changes:r2 h5j* h>hAhCUtermr3 hE}r4 (hG]hH]hI]hJ]hM]uhOMhQ]r5 hZXInternal changes:r6 r7 }r8 (h4j2 h5j0 ubaubcdocutils.nodes definition r9 )r: }r; (h4UhE}r< (hG]hH]hI]hJ]hM]uh5j* hQ]r= h)r> }r? (h4UhE}r@ (hX*hJ]hI]hG]hH]hM]uh5j: hQ]rA h)rB }rC (h4XDDefined "True" and "False" in Simulation.py to support Python 2.2. hE}rD (hG]hH]hI]hJ]hM]uh5j> hQ]rE h^)rF }rG (h4XBDefined "True" and "False" in Simulation.py to support Python 2.2.rH h5jB h>hAhChbhE}rI (hG]hH]hI]hJ]hM]uhOMhQ]rJ hZXBDefined "True" and "False" in Simulation.py to support Python 2.2.rK rL }rM (h4jH h5jF ubaubahChubahChubahCU definitionrN ubeubahCUdefinition_listrO ubaubeubeubh6)rP }rQ (h4Uh5hhAhChDhE}rR (hG]hH]hI]hJ]rS U october-2002rT ahM]rU hauhOM hPhhQ]rV (hS)rW }rX (h4X22 October 2002rY h5jP h>hAhChWhE}rZ (hG]hH]hI]hJ]hM]uhOM hPhhQ]r[ hZX22 October 2002r\ r] }r^ (h4jY h5jW ubaubh)r_ }r` (h4Uh5jP h>hAhChhE}ra (hX-hJ]hI]hG]hH]hM]uhOM hPhhQ]rb (h)rc }rd (h4XPRe-release of 0.5 Beta on SourceForge.net to replace corrupted file __init__.py.re h5j_ h>hAhChhE}rf (hG]hH]hI]hJ]hM]uhONhPhhQ]rg h^)rh }ri (h4je h5jc h>hAhChbhE}rj (hG]hH]hI]hJ]hM]uhOM hQ]rk hZXPRe-release of 0.5 Beta on SourceForge.net to replace corrupted file __init__.py.rl rm }rn (h4je h5jh ubaubaubh)ro }rp (h4XNo code changes whatever! h5j_ h>hAhChhE}rq (hG]hH]hI]hJ]hM]uhONhPhhQ]rr h^)rs }rt (h4XNo code changes whatever!ru h5jo h>hAhChbhE}rv (hG]hH]hI]hJ]hM]uhOM hQ]rw hZXNo code changes whatever!rx ry }rz (h4ju h5js ubaubaubeubeubh6)r{ }r| (h4Uh5hhAhChDhE}r} (hG]hH]hI]hJ]r~ Uid19r ahM]r h auhOMhPhhQ]r (hS)r }r (h4X18 October 2002r h5j{ h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOMhPhhQ]r hZX18 October 2002r r }r (h4j h5j ubaubh)r }r (h4Uh5j{ h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r (h)r }r (h4XVersion 0.5 Beta-release, intended to get testing by application developers and system integrators in preparation of first full (production) release. Released on SourceForge.net on 20 October 2002.r h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXVersion 0.5 Beta-release, intended to get testing by application developers and system integrators in preparation of first full (production) release. Released on SourceForge.net on 20 October 2002.r r }r (h4j h5j ubaubaubh)r }r (h4X More modelsr h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX More modelsr r }r (h4j h5j ubaubaubh)r }r (h4XZDocumentation enhanced by a manual, a tutorial ("The Bank") and installation instructions.r h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXZDocumentation enhanced by a manual, a tutorial ("The Bank") and installation instructions.r r }r (h4j h5j ubaubaubh)r }r (h4XMajor changes to the API: * Introduced 'simulate(until=0)' instead of 'scheduler(till=0)'. Left 'scheduler()' in for backward compatibility, but marked as deprecated. * Added attribute "name" to class Process. Process constructor is now:: def __init__(self,name="a_process") Backward compatible if keyword parameters used. * Changed Resource constructor to:: def __init__(self,capacity=1,name="a_resource",unitName="units") Backward compatible if keyword parameters used. h5j h>NhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r (h^)r }r (h4XMajor changes to the API:r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXMajor changes to the API:r r }r (h4j h5j ubaubh)r }r (h4UhE}r (hX*hJ]hI]hG]hH]hM]uh5j hQ]r (h)r }r (h4XIntroduced 'simulate(until=0)' instead of 'scheduler(till=0)'. Left 'scheduler()' in for backward compatibility, but marked as deprecated.r hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r h^)r }r (h4j h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXIntroduced 'simulate(until=0)' instead of 'scheduler(till=0)'. Left 'scheduler()' in for backward compatibility, but marked as deprecated.r r }r (h4j h5j ubaubahChubh)r }r (h4XAdded attribute "name" to class Process. Process constructor is now:: def __init__(self,name="a_process") Backward compatible if keyword parameters used. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r (h^)r }r (h4XEAdded attribute "name" to class Process. Process constructor is now::h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZXDAdded attribute "name" to class Process. Process constructor is now:r r }r (h4XDAdded attribute "name" to class Process. Process constructor is now:h5j ubaubcdocutils.nodes literal_block r )r }r (h4X#def __init__(self,name="a_process")h5j hCU literal_blockr hE}r (U xml:spacer Upreserver hJ]hI]hG]hH]hM]uhOMhQ]r hZX#def __init__(self,name="a_process")r r }r (h4Uh5j ubaubh^)r }r (h4X/Backward compatible if keyword parameters used.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX/Backward compatible if keyword parameters used.r r }r (h4j h5j ubaubehChubh)r }r (h4XChanged Resource constructor to:: def __init__(self,capacity=1,name="a_resource",unitName="units") Backward compatible if keyword parameters used. hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r (h^)r }r (h4X!Changed Resource constructor to::r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r hZX Changed Resource constructor to:r r }r (h4X Changed Resource constructor to:h5j ubaubj )r }r (h4X@def __init__(self,capacity=1,name="a_resource",unitName="units")h5j hCj hE}r (j j hJ]hI]hG]hH]hM]uhOM!hQ]r hZX@def __init__(self,capacity=1,name="a_resource",unitName="units")r r }r (h4Uh5j ubaubh^)r }r (h4X/Backward compatible if keyword parameters used.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOM#hQ]r hZX/Backward compatible if keyword parameters used.r r }r (h4j h5j ubaubehChubehChubeubeubeubh6)r }r (h4Uh5hhAhChDhE}r (hG]hH]hI]hJ]r Useptember-2002r ahM]r h"auhOM'hPhhQ]r (hS)r }r (h4X27 September 2002r h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOM'hPhhQ]r hZX27 September 2002r r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX*hJ]hI]hG]hH]hM]uhOM)hPhhQ]r (h)r }r (h4XBVersion 0.2 Alpha-release, intended to attract feedback from usersr h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4j h5j h>hAhChbhE}r! (hG]hH]hI]hJ]hM]uhOM)hQ]r" hZXBVersion 0.2 Alpha-release, intended to attract feedback from usersr# r$ }r% (h4j h5j ubaubaubh)r& }r' (h4XExtended list of modelsr( h5j h>hAhChhE}r) (hG]hH]hI]hJ]hM]uhONhPhhQ]r* h^)r+ }r, (h4j( h5j& h>hAhChbhE}r- (hG]hH]hI]hJ]hM]uhOM*hQ]r. hZXExtended list of modelsr/ r0 }r1 (h4j( h5j+ ubaubaubh)r2 }r3 (h4XUpodated documentation h5j h>hAhChhE}r4 (hG]hH]hI]hJ]hM]uhONhPhhQ]r5 h^)r6 }r7 (h4XUpodated documentationr8 h5j2 h>hAhChbhE}r9 (hG]hH]hI]hJ]hM]uhOM+hQ]r: hZXUpodated documentationr; r< }r= (h4j8 h5j6 ubaubaubeubeubh6)r> }r? (h4Uh5hhAhChDhE}r@ (hG]hH]hI]hJ]rA Uid20rB ahM]rC hauhOM.hPhhQ]rD (hS)rE }rF (h4X17 September 2002rG h5j> h>hAhChWhE}rH (hG]hH]hI]hJ]hM]uhOM.hPhhQ]rI hZX17 September 2002rJ rK }rL (h4jG h5jE ubaubh)rM }rN (h4Uh5j> h>hAhChhE}rO (hX*hJ]hI]hG]hH]hM]uhOM0hPhhQ]rP (h)rQ }rR (h4XEVersion 0.1.2 published on SourceForge; fully working, pre-alpha coderS h5jM h>hAhChhE}rT (hG]hH]hI]hJ]hM]uhONhPhhQ]rU h^)rV }rW (h4jS h5jQ h>hAhChbhE}rX (hG]hH]hI]hJ]hM]uhOM0hQ]rY hZXEVersion 0.1.2 published on SourceForge; fully working, pre-alpha coderZ r[ }r\ (h4jS h5jV ubaubaubh)r] }r^ (h4XfImplements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.h5jM h>hAhChhE}r_ (hG]hH]hI]hJ]hM]uhONhPhhQ]r` h^)ra }rb (h4XfImplements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.rc h5j] h>hAhChbhE}rd (hG]hH]hI]hJ]hM]uhOM1hQ]re hZXfImplements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.rf rg }rh (h4jc h5ja ubaubaubh)ri }rj (h4X[Contains basic documentation (cheatsheet) and simulation models for test and demonstration.h5jM h>hAhChhE}rk (hG]hH]hI]hJ]hM]uhONhPhhQ]rl h^)rm }rn (h4X[Contains basic documentation (cheatsheet) and simulation models for test and demonstration.ro h5ji h>hAhChbhE}rp (hG]hH]hI]hJ]hM]uhOM3hQ]rq hZX[Contains basic documentation (cheatsheet) and simulation models for test and demonstration.rr rs }rt (h4jo h5jm ubaubaubeubeubeubh>hAhChDhE}ru (hG]hH]hI]hJ]rv Ujanuary-2007-version-1-8rw ahM]rx hauhOMhPhhQ]ry (hS)rz }r{ (h4XJanuary 2007: Version 1.8r| h5h:h>hAhChWhE}r} (hG]hH]hI]hJ]hM]uhOMhPhhQ]r~ hZXJanuary 2007: Version 1.8r r }r (h4j| h5jz ubaubh7h6)r }r (h4Uh9Kh5h:h>hAhChDhE}r (hG]r jahH]hI]hJ]r Uid17r ahM]uhOMhPhhQ]r (hS)r }r (h4X Bug fixesr h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOMhPhhQ]r hZX Bug fixesr r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOMhPhhQ]r (h)r }r (h4X2Repaired a bug in *yield waituntil* runtime code. h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4X1Repaired a bug in *yield waituntil* runtime code.h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r (hZXRepaired a bug in r r }r (h4XRepaired a bug in h5j ubh)r }r (h4X*yield waituntil*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZXyield waituntilr r }r (h4Uh5j ubahChubhZX runtime code.r r }r (h4X runtime code.h5j ubeubaubh)r }r (h4XTIntroduced check for *capacity* parameter of a Level or a Store being a number > 0. h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4XSIntroduced check for *capacity* parameter of a Level or a Store being a number > 0.h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOMhQ]r (hZXIntroduced check for r r }r (h4XIntroduced check for h5j ubh)r }r (h4X *capacity*hE}r (hG]hH]hI]hJ]hM]uh5j hQ]r hZXcapacityr r }r (h4Uh5j ubahChubhZX4 parameter of a Level or a Store being a number > 0.r r }r (h4X4 parameter of a Level or a Store being a number > 0.h5j ubeubaubh)r }r (h4XAdded code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case). h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4XAdded code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case).r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOM hQ]r hZXAdded code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case).r r }r (h4j h5j ubaubaubh)r }r (h4X3Repaired a bug in prettyprinting of Store objects. h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4X2Repaired a bug in prettyprinting of Store objects.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOM#hQ]r hZX2Repaired a bug in prettyprinting of Store objects.r r }r (h4j h5j ubaubaubeubeubh6)r }r (h4Uh9Kh5h:h>hAhChDhE}r (hG]r jahH]hI]hJ]r Uid18r ahM]uhOM&hPhhQ]r (hS)r }r (h4X Additionsr h5j h>hAhChWhE}r (hG]hH]hI]hJ]hM]uhOM&hPhhQ]r hZX Additionsr r }r (h4j h5j ubaubh)r }r (h4Uh5j h>hAhChhE}r (hX-hJ]hI]hG]hH]hM]uhOM(hPhhQ]r (h)r }r (h4XNew compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances. h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4X~New compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances.r h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOM(hQ]r hZX~New compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances.r r }r (h4j h5j ubaubaubh)r }r (h4X@*yield get* on a Store instance can now have a filter function. h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4X?*yield get* on a Store instance can now have a filter function.h5j h>hAhChbhE}r (hG]hH]hI]hJ]hM]uhOM+hQ]r (h)r }r (h4X *yield get*hE}r(hG]hH]hI]hJ]hM]uh5j hQ]rhZX yield getrr}r(h4Uh5j ubahChubhZX4 on a Store instance can now have a filter function.rr}r(h4X4 on a Store instance can now have a filter function.h5j ubeubaubh)r}r (h4XsAll Monitor and Tally instances are automatically registered in list *allMonitors* and *allTallies*, respectively. h5j h>hAhChhE}r (hG]hH]hI]hJ]hM]uhONhPhhQ]r h^)r }r (h4XrAll Monitor and Tally instances are automatically registered in list *allMonitors* and *allTallies*, respectively.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOM-hQ]r(hZXEAll Monitor and Tally instances are automatically registered in list rr}r(h4XEAll Monitor and Tally instances are automatically registered in list h5j ubh)r}r(h4X *allMonitors*hE}r(hG]hH]hI]hJ]hM]uh5j hQ]rhZX allMonitorsrr}r(h4Uh5jubahChubhZX and rr}r(h4X and h5j ubh)r}r(h4X *allTallies*hE}r(hG]hH]hI]hJ]hM]uh5j hQ]r hZX allTalliesr!r"}r#(h4Uh5jubahChubhZX, respectively.r$r%}r&(h4X, respectively.h5j ubeubaubh)r'}r((h4XbThe new function *startCollection* allows activation of Monitors and Tallies at a specified time. h5j h>hAhChhE}r)(hG]hH]hI]hJ]hM]uhONhPhhQ]r*h^)r+}r,(h4XaThe new function *startCollection* allows activation of Monitors and Tallies at a specified time.h5j'h>hAhChbhE}r-(hG]hH]hI]hJ]hM]uhOM0hQ]r.(hZXThe new function r/r0}r1(h4XThe new function h5j+ubh)r2}r3(h4X*startCollection*hE}r4(hG]hH]hI]hJ]hM]uh5j+hQ]r5hZXstartCollectionr6r7}r8(h4Uh5j2ubahChubhZX? allows activation of Monitors and Tallies at a specified time.r9r:}r;(h4X? allows activation of Monitors and Tallies at a specified time.h5j+ubeubaubh)r<}r=(h4XaA *printHistogram* method was added to Tally and Monitor which generates a table-form histogram. h5j h>hAhChhE}r>(hG]hH]hI]hJ]hM]uhONhPhhQ]r?h^)r@}rA(h4X`A *printHistogram* method was added to Tally and Monitor which generates a table-form histogram.h5j<h>hAhChbhE}rB(hG]hH]hI]hJ]hM]uhOM3hQ]rC(hZXA rDrE}rF(h4XA h5j@ubh)rG}rH(h4X*printHistogram*hE}rI(hG]hH]hI]hJ]hM]uh5j@hQ]rJhZXprintHistogramrKrL}rM(h4Uh5jGubahChubhZXN method was added to Tally and Monitor which generates a table-form histogram.rNrO}rP(h4XN method was added to Tally and Monitor which generates a table-form histogram.h5j@ubeubaubh)rQ}rR(h4XuIn SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added. h5j h>hAhChhE}rS(hG]hH]hI]hJ]hM]uhONhPhhQ]rTh^)rU}rV(h4XtIn SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added.rWh5jQh>hAhChbhE}rX(hG]hH]hI]hJ]hM]uhOM6hQ]rYhZXtIn SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added.rZr[}r\(h4jWh5jUubaubaubeubeubeubh>hAhChDhE}r](hG]r^jKahH]hI]hJ]r_Uid16r`ahM]uhOMhPhhQ]ra(hS)rb}rc(h4X Major Changesrdh5h7h>hAhChWhE}re(hG]hH]hI]hJ]hM]uhOMhPhhQ]rfhZX Major Changesrgrh}ri(h4jdh5jbubaubh)rj}rk(h4Uh5h7h>hAhChhE}rl(hX-hJ]hI]hG]hH]hM]uhOM hPhhQ]rm(h)rn}ro(h4XtSimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later. h5jjh>hAhChhE}rp(hG]hH]hI]hJ]hM]uhONhPhhQ]rqh^)rr}rs(h4XsSimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later.rth5jnh>hAhChbhE}ru(hG]hH]hI]hJ]hM]uhOM hQ]rvhZXsSimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later.rwrx}ry(h4jth5jrubaubaubh)rz}r{(h4XjThe Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format. h5jjh>hAhChhE}r|(hG]hH]hI]hJ]hM]uhONhPhhQ]r}h^)r~}r(h4XiThe Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format.rh5jzh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOM hQ]rhZXiThe Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format.rr}r(h4jh5j~ubaubaubh)r}r(h4XThe Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format. h5jjh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XThe Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZXThe Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format.rr}r(h4jh5jubaubaubh)r}r(h4X\The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable 'version'. h5jjh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4X[The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable 'version'.rh5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]rhZX[The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable 'version'.rr}r(h4jh5jubaubaubh)r}r(h4XHThe *__str__* method of Histogram was changed to return a table format. h5jjh>hAhChhE}r(hG]hH]hI]hJ]hM]uhONhPhhQ]rh^)r}r(h4XGThe *__str__* method of Histogram was changed to return a table format.h5jh>hAhChbhE}r(hG]hH]hI]hJ]hM]uhOMhQ]r(hZXThe rr}r(h4XThe h5jubh)r}r(h4X *__str__*hE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX__str__rr}r(h4Uh5jubahChubhZX: method of Histogram was changed to return a table format.rr}r(h4X: method of Histogram was changed to return a table format.h5jubeubaubeubeubh>hAhCUsystem_messagerhE}r(hG]UlevelKhJ]hI]rj`aUsourcehAhH]hM]UlineMUtypeUINFOruhOMhPhhQ]rh^)r}r(h4UhE}r(hG]hH]hI]hJ]hM]uh5h2hQ]rhZX0Duplicate implicit target name: "major changes".rr}r(h4Uh5jubahChbubaubh1)r}r(h4Uh5j h>hAhCjhE}r(hG]UlevelKhJ]hI]rj aUsourcehAhH]hM]UlineMUtypejuhOMhPhhQ]rh^)r}r(h4UhE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX,Duplicate implicit target name: "bug fixes".rr}r(h4Uh5jubahChbubaubh1)r}r(h4Uh5j h>hAhCjhE}r(hG]UlevelKhJ]hI]rj aUsourcehAhH]hM]UlineM&UtypejuhOM&hPhhQ]rh^)r}r(h4UhE}r(hG]hH]hI]hJ]hM]uh5jhQ]rhZX,Duplicate implicit target name: "additions".rr}r(h4Uh5jubahChbubaubeUcurrent_sourcerNU decorationrNUautofootnote_startrKUnameidsr}r(hj{hjdhjh jh j h jh Nh jhNhjT hjhjw hjFhhLhj hjhjhjhj&hjhhj[ hhhj(hj? hjj hjB h j h!Nh"j h#jh$j h%j h&jdh'jh(j4h)jh*j h+jh,juhQ]rh}r?(jjjMjGj4j0j? j; jB j> jjj{jwjj jf j j jjjjj#jjjjjjjjjjFjBjjhhj(j$jhjdjjjjjjjdj`j`h7j j j j j j jjj&j"j j jdj`jw h:jjj j{ jT jP jjj j jjhLh}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hX InterruptsqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2X InterruptsqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXResources: PreemptiveResource hhAhhhhKh}qW(h!]h"]h#]h$]h&]uh(Nh)hh]qXh6)qY}qZ(hXResources: PreemptiveResourceq[hhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XResources: PreemptiveResourceq^q_}q`(hh[hhYubaubaubeubh6)qa}qb(hXThis example comprises a workshop with *n* identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.hhhhhh:h}qc(h!]h"]h#]h$]h&]uh(K h)hh]qd(h2X'This example comprises a workshop with qeqf}qg(hX'This example comprises a workshop with hhaubcdocutils.nodes emphasis qh)qi}qj(hX*n*h}qk(h!]h"]h#]h$]h&]uhhah]qlh2Xnqm}qn(hUhhiubahUemphasisqoubh2Xn identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.qpqq}qr(hXn identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.hhaubeubh6)qs}qt(hXA machine has two processes: *working* implements the actual behaviour of the machine (producing parts). *break_machine* periodically interrupts the *working* process to simulate the machine failure.hhhhhh:h}qu(h!]h"]h#]h$]h&]uh(Kh)hh]qv(h2XA machine has two processes: qwqx}qy(hXA machine has two processes: hhsubhh)qz}q{(hX *working*h}q|(h!]h"]h#]h$]h&]uhhsh]q}h2Xworkingq~q}q(hUhhzubahhoubh2XC implements the actual behaviour of the machine (producing parts). qq}q(hXC implements the actual behaviour of the machine (producing parts). hhsubhh)q}q(hX*break_machine*h}q(h!]h"]h#]h$]h&]uhhsh]qh2X break_machineqq}q(hUhhubahhoubh2X periodically interrupts the qq}q(hX periodically interrupts the hhsubhh)q}q(hX *working*h}q(h!]h"]h#]h$]h&]uhhsh]qh2Xworkingqq}q(hUhhubahhoubh2X) process to simulate the machine failure.qq}q(hX) process to simulate the machine failure.hhsubeubh6)q}q(hX;The repairman's other job is also a process (implemented by *other_job*). The repairman itself is a :class:`~simpy.resources.resource.PreemptiveResource` with a capacity of *1*. The machine repairing has a priority of *1*, while the other job has a priority of *2* (the smaller the number, the higher the priority).hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2X<The repairman's other job is also a process (implemented by qq}q(hX<The repairman's other job is also a process (implemented by hhubhh)q}q(hX *other_job*h}q(h!]h"]h#]h$]h&]uhhh]qh2X other_jobqq}q(hUhhubahhoubh2X). The repairman itself is a qq}q(hX). The repairman itself is a hhubcsphinx.addnodes pending_xref q)q}q(hX5:class:`~simpy.resources.resource.PreemptiveResource`qhhhhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX+simpy.resources.resource.PreemptiveResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/machine_shopqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hhh}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhhh]qh2XPreemptiveResourceqq}q(hUhhubahUliteralqubaubh2X with a capacity of qÅq}q(hX with a capacity of hhubhh)q}q(hX*1*h}q(h!]h"]h#]h$]h&]uhhh]qh2X1q}q(hUhhubahhoubh2X*. The machine repairing has a priority of q̅q}q(hX*. The machine repairing has a priority of hhubhh)q}q(hX*1*h}q(h!]h"]h#]h$]h&]uhhh]qh2X1q}q(hUhhubahhoubh2X(, while the other job has a priority of qՅq}q(hX(, while the other job has a priority of hhubhh)q}q(hX*2*h}q(h!]h"]h#]h$]h&]uhhh]qh2X2q}q(hUhhubahhoubh2X3 (the smaller the number, the higher the priority).qޅq}q(hX3 (the smaller the number, the higher the priority).hhubeubcdocutils.nodes literal_block q)q}q(hXs""" Machine shop example Covers: - Interrupts - Resources: PreemptiveResource Scenario: A workshop has *n* identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously. """ import random import simpy RANDOM_SEED = 42 PT_MEAN = 10.0 # Avg. processing time in minutes PT_SIGMA = 2.0 # Sigma of processing time MTTF = 300.0 # Mean time to failure in minutes BREAK_MEAN = 1 / MTTF # Param. for expovariate distribution REPAIR_TIME = 30.0 # Time it takes to repair a machine in minutes JOB_DURATION = 30.0 # Duration of other jobs in minutes NUM_MACHINES = 10 # Number of machines in the machine shop WEEKS = 4 # Simulation time in weeks SIM_TIME = WEEKS * 7 * 24 * 60 # Simulation time in minutes def time_per_part(): """Return actual processing time for a concrete part.""" return random.normalvariate(PT_MEAN, PT_SIGMA) def time_to_failure(): """Return time until next failure for a machine.""" return random.expovariate(BREAK_MEAN) class Machine(object): """A machine produces parts and my get broken every now and then. If it breaks, it requests a *repairman* and continues the production after the it is repaired. A machine has a *name* and a numberof *parts_made* thus far. """ def __init__(self, env, name, repairman): self.env = env self.name = name self.parts_made = 0 self.broken = False # Start "working" and "break_machine" processes for this machine. self.process = env.process(self.working(repairman)) env.process(self.break_machine()) def working(self, repairman): """Produce parts as long as the simulation runs. While making a part, the machine may break multiple times. Request a repairman when this happens. """ while True: # Start making a new part done_in = time_per_part() while done_in: try: # Working on the part start = self.env.now yield self.env.timeout(done_in) done_in = 0 # Set to 0 to exit while loop. except simpy.Interrupt: self.broken = True done_in -= self.env.now - start # How much time left? # Request a repairman. This will preempt its "other_job". with repairman.request(priority=1) as req: yield req yield self.env.timeout(REPAIR_TIME) self.broken = False # Part is done. self.parts_made += 1 def break_machine(self): """Break the machine every now and then.""" while True: yield self.env.timeout(time_to_failure()) if not self.broken: # Only break the machine if it is currently working. self.process.interrupt() def other_jobs(env, repairman): """The repairman's other (unimportant) job.""" while True: # Start a new job done_in = JOB_DURATION while done_in: # Retry the job until it is done. # It's priority is lower than that of machine repairs. with repairman.request(priority=2) as req: yield req try: start = env.now yield env.timeout(done_in) done_in = 0 except simpy.Interrupt: done_in -= env.now - start # Setup and start the simulation print('Machine shop') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() repairman = simpy.PreemptiveResource(env, capacity=1) machines = [Machine(env, 'Machine %d' % i, repairman) for i in range(NUM_MACHINES)] env.process(other_jobs(env, repairman)) # Execute! env.run(until=SIM_TIME) # Analyis/results print('Machine shop results after %s weeks' % WEEKS) for machine in machines: print('%s made %d parts.' % (machine.name, machine.parts_made)) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXO/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/machine_shop.pyh"]h&]uh(Kh)hh]qh2Xs""" Machine shop example Covers: - Interrupts - Resources: PreemptiveResource Scenario: A workshop has *n* identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously. """ import random import simpy RANDOM_SEED = 42 PT_MEAN = 10.0 # Avg. processing time in minutes PT_SIGMA = 2.0 # Sigma of processing time MTTF = 300.0 # Mean time to failure in minutes BREAK_MEAN = 1 / MTTF # Param. for expovariate distribution REPAIR_TIME = 30.0 # Time it takes to repair a machine in minutes JOB_DURATION = 30.0 # Duration of other jobs in minutes NUM_MACHINES = 10 # Number of machines in the machine shop WEEKS = 4 # Simulation time in weeks SIM_TIME = WEEKS * 7 * 24 * 60 # Simulation time in minutes def time_per_part(): """Return actual processing time for a concrete part.""" return random.normalvariate(PT_MEAN, PT_SIGMA) def time_to_failure(): """Return time until next failure for a machine.""" return random.expovariate(BREAK_MEAN) class Machine(object): """A machine produces parts and my get broken every now and then. If it breaks, it requests a *repairman* and continues the production after the it is repaired. A machine has a *name* and a numberof *parts_made* thus far. """ def __init__(self, env, name, repairman): self.env = env self.name = name self.parts_made = 0 self.broken = False # Start "working" and "break_machine" processes for this machine. self.process = env.process(self.working(repairman)) env.process(self.break_machine()) def working(self, repairman): """Produce parts as long as the simulation runs. While making a part, the machine may break multiple times. Request a repairman when this happens. """ while True: # Start making a new part done_in = time_per_part() while done_in: try: # Working on the part start = self.env.now yield self.env.timeout(done_in) done_in = 0 # Set to 0 to exit while loop. except simpy.Interrupt: self.broken = True done_in -= self.env.now - start # How much time left? # Request a repairman. This will preempt its "other_job". with repairman.request(priority=1) as req: yield req yield self.env.timeout(REPAIR_TIME) self.broken = False # Part is done. self.parts_made += 1 def break_machine(self): """Break the machine every now and then.""" while True: yield self.env.timeout(time_to_failure()) if not self.broken: # Only break the machine if it is currently working. self.process.interrupt() def other_jobs(env, repairman): """The repairman's other (unimportant) job.""" while True: # Start a new job done_in = JOB_DURATION while done_in: # Retry the job until it is done. # It's priority is lower than that of machine repairs. with repairman.request(priority=2) as req: yield req try: start = env.now yield env.timeout(done_in) done_in = 0 except simpy.Interrupt: done_in -= env.now - start # Setup and start the simulation print('Machine shop') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() repairman = simpy.PreemptiveResource(env, capacity=1) machines = [Machine(env, 'Machine %d' % i, repairman) for i in range(NUM_MACHINES)] env.process(other_jobs(env, repairman)) # Execute! env.run(until=SIM_TIME) # Analyis/results print('Machine shop results after %s weeks' % WEEKS) for machine in machines: print('%s made %d parts.' % (machine.name, machine.parts_made)) q酁q}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hX>Machine shop Machine shop results after 4 weeks Machine 0 made 3251 parts. Machine 1 made 3273 parts. Machine 2 made 3242 parts. Machine 3 made 3343 parts. Machine 4 made 3387 parts. Machine 5 made 3244 parts. Machine 6 made 3269 parts. Machine 7 made 3185 parts. Machine 8 made 3302 parts. Machine 9 made 3279 parts. hhhhhhh}q(h!]hhh$]h#]UsourceXP/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/machine_shop.outh"]h&]uh(K h)hh]qh2X>Machine shop Machine shop results after 4 weeks Machine 0 made 3251 parts. Machine 1 made 3273 parts. Machine 2 made 3242 parts. Machine 3 made 3343 parts. Machine 4 made 3387 parts. Machine 5 made 3244 parts. Machine 6 made 3269 parts. Machine 7 made 3185 parts. Machine 8 made 3302 parts. Machine 9 made 3279 parts. qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh)hU current_linerNUtransform_messagesr ]r Ureporterr NUid_startr KU autofootnotesr ]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coder Uenr!U datestampr"NU report_levelr#KU _destinationr$NU halt_levelr%KU strip_classesr&Nh/NUerror_encoding_error_handlerr'Ubackslashreplacer(Udebugr)NUembed_stylesheetr*Uoutput_encoding_error_handlerr+Ustrictr,U sectnum_xformr-KUdump_transformsr.NU docinfo_xformr/KUwarning_streamr0NUpep_file_url_templater1Upep-%04dr2Uexit_status_levelr3KUconfigr4NUstrict_visitorr5NUcloak_email_addressesr6Utrim_footnote_reference_spacer7Uenvr8NUdump_pseudo_xmlr9NUexpose_internalsr:NUsectsubtitle_xformr;U source_linkr<NUrfc_referencesr=NUoutput_encodingr>Uutf-8r?U source_urlr@NUinput_encodingrAU utf-8-sigrBU_disable_configrCNU id_prefixrDUU tab_widthrEKUerror_encodingrFUUTF-8rGU_sourcerHUK/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/machine_shop.rstrIUgettext_compactrJU generatorrKNUdump_internalsrLNU smart_quotesrMU pep_base_urlrNUhttp://www.python.org/dev/peps/rOUsyntax_highlightrPUlongrQUinput_encoding_error_handlerrRj,Uauto_id_prefixrSUidrTUdoctitle_xformrUUstrip_elements_with_classesrVNU _config_filesrW]rXUfile_insertion_enabledrYU raw_enabledrZKU dump_settingsr[NubUsymbol_footnote_startr\KUidsr]}r^hhsUsubstitution_namesr_}r`hh)h}ra(h!]h$]h#]Usourcehh"]h&]uU footnotesrb]rcUrefidsrd}reub.PK@D;v ? ?3simpy-3.0.4/.doctrees/examples/movie_renege.doctreecdocutils.nodes document q)q}q(U nametypesq}qX movie renegeqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU movie-renegeqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXK/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/movie_renege.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Movie Renegeq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Movie Renegeq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXResources: ResourceqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: ResourceqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXCondition eventsqWhhAhhhhKh}qX(h!]h"]h#]h$]h&]uh(Nh)hh]qYh6)qZ}q[(hhWhhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XCondition eventsq^q_}q`(hhWhhZubaubaubhG)qa}qb(hXShared events hhAhhhhKh}qc(h!]h"]h#]h$]h&]uh(Nh)hh]qdh6)qe}qf(hX Shared eventsqghhahhhh:h}qh(h!]h"]h#]h$]h&]uh(K h]qih2X Shared eventsqjqk}ql(hhghheubaubaubeubh6)qm}qn(hX6This examples models a movie theater with one ticket counter selling tickets for three movies (next show only). People arrive at random times and triy to buy a random number (1--6) tickets for a random movie. When a movie is sold out, all people waiting to buy a ticket for that movie renege (leave the queue).qohhhhhh:h}qp(h!]h"]h#]h$]h&]uh(K h)hh]qqh2X6This examples models a movie theater with one ticket counter selling tickets for three movies (next show only). People arrive at random times and triy to buy a random number (1--6) tickets for a random movie. When a movie is sold out, all people waiting to buy a ticket for that movie renege (leave the queue).qrqs}qt(hhohhmubaubh6)qu}qv(hXThe movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a :class:`~simpy.resources.resource.Resource` with a capacity of one.hhhhhh:h}qw(h!]h"]h#]h$]h&]uh(Kh)hh]qx(h2XThe movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a qyqz}q{(hXThe movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a hhuubcsphinx.addnodes pending_xref q|)q}}q~(hX+:class:`~simpy.resources.resource.Resource`qhhuhhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX!simpy.resources.resource.ResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/movie_renegeqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hhh}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhh}h]qh2XResourceqq}q(hUhhubahUliteralqubaubh2X with a capacity of one.qq}q(hX with a capacity of one.hhuubeubh6)q}q(hXThe *moviegoer* process starts waiting until either it's his turn (it acquires the counter resource) or until the *sold out* signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the *sold out* signal is triggered.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2XThe qq}q(hXThe hhubcdocutils.nodes emphasis q)q}q(hX *moviegoer*h}q(h!]h"]h#]h$]h&]uhhh]qh2X moviegoerqq}q(hUhhubahUemphasisqubh2Xc process starts waiting until either it's his turn (it acquires the counter resource) or until the qq}q(hXc process starts waiting until either it's his turn (it acquires the counter resource) or until the hhubh)q}q(hX *sold out*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xsold outqq}q(hUhhubahhubh2X' signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the qq}q(hX' signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the hhubh)q}q(hX *sold out*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xsold outqq}q(hUhhubahhubh2X signal is triggered.qq}q(hX signal is triggered.hhubeubh6)q}q(hXMoviegoers are generated by the *customer arrivals* process. It also chooses a movie and the number of tickets for the moviegoer.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2X Moviegoers are generated by the qąq}q(hX Moviegoers are generated by the hhubh)q}q(hX*customer arrivals*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xcustomer arrivalsq˅q}q(hUhhubahhubh2XN process. It also chooses a movie and the number of tickets for the moviegoer.q΅q}q(hXN process. It also chooses a movie and the number of tickets for the moviegoer.hhubeubcdocutils.nodes literal_block q)q}q(hXN """ Movie renege example Covers: - Resources: Resource - Condition events - Shared events Scenario: A movie theatre has one ticket counter selling tickets for three movies (next show only). When a movie is sold out, all people waiting to buy tickets for that movie renege (leave queue). """ import collections import random import simpy RANDOM_SEED = 42 TICKETS = 50 # Number of tickets per movie SIM_TIME = 120 # Simulate until def moviegoer(env, movie, num_tickets, theater): """A moviegoer tries to by a number of tickets (*num_tickets*) for a certain *movie* in a *theater*. If the movie becomes sold out, she leaves the theater. If she gets to the counter, she tries to buy a number of tickets. If not enough tickets are left, she argues with the teller and leaves. If at most one ticket is left after the moviegoer bought her tickets, the *sold out* event for this movie is triggered causing all remaining moviegoers to leave. """ with theater.counter.request() as my_turn: # Wait until its our turn or until the movie is sold out result = yield my_turn | theater.sold_out[movie] # Check if it's our turn of if movie is sold out if my_turn not in result: theater.num_renegers[movie] += 1 env.exit() # Check if enough tickets left. if theater.available[movie] < num_tickets: # Moviegoer leaves after some discussion yield env.timeout(0.5) env.exit() # Buy tickets theater.available[movie] -= num_tickets if theater.available[movie] < 2: # Trigger the "sold out" event for the movie theater.sold_out[movie].succeed() theater.when_sold_out[movie] = env.now theater.available[movie] = 0 yield env.timeout(1) def customer_arrivals(env, theater): """Create new *moviegoers* until the sim time reaches 120.""" while True: yield env.timeout(random.expovariate(1 / 0.5)) movie = random.choice(theater.movies) num_tickets = random.randint(1, 6) if theater.available[movie]: env.process(moviegoer(env, movie, num_tickets, theater)) Theater = collections.namedtuple('Theater', 'counter, movies, available, ' 'sold_out, when_sold_out, ' 'num_renegers') # Setup and start the simulation print('Movie renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Create movie theater counter = simpy.Resource(env, capacity=1) movies = ['Python Unchained', 'Kill Process', 'Pulp Implementation'] available = {movie: TICKETS for movie in movies} sold_out = {movie: env.event() for movie in movies} when_sold_out = {movie: None for movie in movies} num_renegers = {movie: 0 for movie in movies} theater = Theater(counter, movies, available, sold_out, when_sold_out, num_renegers) # Start process and run env.process(customer_arrivals(env, theater)) env.run(until=SIM_TIME) # Analysis/results for movie in movies: if theater.sold_out[movie]: print('Movie "%s" sold out %.1f minutes after ticket counter ' 'opening.' % (movie, theater.when_sold_out[movie])) print(' Number of people leaving queue when film sold out: %s' % theater.num_renegers[movie]) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXO/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/movie_renege.pyh"]h&]uh(K h)hh]qh2XN """ Movie renege example Covers: - Resources: Resource - Condition events - Shared events Scenario: A movie theatre has one ticket counter selling tickets for three movies (next show only). When a movie is sold out, all people waiting to buy tickets for that movie renege (leave queue). """ import collections import random import simpy RANDOM_SEED = 42 TICKETS = 50 # Number of tickets per movie SIM_TIME = 120 # Simulate until def moviegoer(env, movie, num_tickets, theater): """A moviegoer tries to by a number of tickets (*num_tickets*) for a certain *movie* in a *theater*. If the movie becomes sold out, she leaves the theater. If she gets to the counter, she tries to buy a number of tickets. If not enough tickets are left, she argues with the teller and leaves. If at most one ticket is left after the moviegoer bought her tickets, the *sold out* event for this movie is triggered causing all remaining moviegoers to leave. """ with theater.counter.request() as my_turn: # Wait until its our turn or until the movie is sold out result = yield my_turn | theater.sold_out[movie] # Check if it's our turn of if movie is sold out if my_turn not in result: theater.num_renegers[movie] += 1 env.exit() # Check if enough tickets left. if theater.available[movie] < num_tickets: # Moviegoer leaves after some discussion yield env.timeout(0.5) env.exit() # Buy tickets theater.available[movie] -= num_tickets if theater.available[movie] < 2: # Trigger the "sold out" event for the movie theater.sold_out[movie].succeed() theater.when_sold_out[movie] = env.now theater.available[movie] = 0 yield env.timeout(1) def customer_arrivals(env, theater): """Create new *moviegoers* until the sim time reaches 120.""" while True: yield env.timeout(random.expovariate(1 / 0.5)) movie = random.choice(theater.movies) num_tickets = random.randint(1, 6) if theater.available[movie]: env.process(moviegoer(env, movie, num_tickets, theater)) Theater = collections.namedtuple('Theater', 'counter, movies, available, ' 'sold_out, when_sold_out, ' 'num_renegers') # Setup and start the simulation print('Movie renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Create movie theater counter = simpy.Resource(env, capacity=1) movies = ['Python Unchained', 'Kill Process', 'Pulp Implementation'] available = {movie: TICKETS for movie in movies} sold_out = {movie: env.event() for movie in movies} when_sold_out = {movie: None for movie in movies} num_renegers = {movie: 0 for movie in movies} theater = Theater(counter, movies, available, sold_out, when_sold_out, num_renegers) # Start process and run env.process(customer_arrivals(env, theater)) env.run(until=SIM_TIME) # Analysis/results for movie in movies: if theater.sold_out[movie]: print('Movie "%s" sold out %.1f minutes after ticket counter ' 'opening.' % (movie, theater.when_sold_out[movie])) print(' Number of people leaving queue when film sold out: %s' % theater.num_renegers[movie]) qمq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(K"h)hh]qh2XThe simulation's output:qᅁq}q(hhhhubaubh)q}q(hXMovie renege Movie "Python Unchained" sold out 38.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 16 Movie "Kill Process" sold out 43.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 Movie "Pulp Implementation" sold out 28.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 hhhhhhh}q(h!]hhh$]h#]UsourceXP/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/movie_renege.outh"]h&]uh(K$h)hh]qh2XMovie renege Movie "Python Unchained" sold out 38.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 16 Movie "Kill Process" sold out 43.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 Movie "Pulp Implementation" sold out 28.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 q腁q}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh/NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamr NUpep_file_url_templater!Upep-%04dr"Uexit_status_levelr#KUconfigr$NUstrict_visitorr%NUcloak_email_addressesr&Utrim_footnote_reference_spacer'Uenvr(NUdump_pseudo_xmlr)NUexpose_internalsr*NUsectsubtitle_xformr+U source_linkr,NUrfc_referencesr-NUoutput_encodingr.Uutf-8r/U source_urlr0NUinput_encodingr1U utf-8-sigr2U_disable_configr3NU id_prefixr4UU tab_widthr5KUerror_encodingr6UUTF-8r7U_sourcer8UK/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/movie_renege.rstr9Ugettext_compactr:U generatorr;NUdump_internalsr<NU smart_quotesr=U pep_base_urlr>Uhttp://www.python.org/dev/peps/r?Usyntax_highlightr@UlongrAUinput_encoding_error_handlerrBjUauto_id_prefixrCUidrDUdoctitle_xformrEUstrip_elements_with_classesrFNU _config_filesrG]Ufile_insertion_enabledrHU raw_enabledrIKU dump_settingsrJNubUsymbol_footnote_startrKKUidsrL}rMhhsUsubstitution_namesrN}rOhh)h}rP(h!]h$]h#]Usourcehh"]h&]uU footnotesrQ]rRUrefidsrS}rTub.PK@D0^9&&2simpy-3.0.4/.doctrees/examples/bank_renege.doctreecdocutils.nodes document q)q}q(U nametypesq}qX bank renegeqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU bank-renegeqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXJ/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/bank_renege.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Bank Renegeq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Bank Renegeq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXResources: ResourceqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: ResourceqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXCondition events hhAhhhhKh}qW(h!]h"]h#]h$]h&]uh(Nh)hh]qXh6)qY}qZ(hXCondition eventsq[hhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XCondition eventsq^q_}q`(hh[hhYubaubaubeubh6)qa}qb(hXA counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM)qchhhhhh:h}qd(h!]h"]h#]h$]h&]uh(K h)hh]qeh2XA counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM)qfqg}qh(hhchhaubaubh6)qi}qj(hXThis example models a bank counter and customers arriving t random times. Each customer has a certain patience. It waits to get to the counter until she’s at the end of her tether. If she gets to the counter, she uses it for a while before releasing it.qkhhhhhh:h}ql(h!]h"]h#]h$]h&]uh(K h)hh]qmh2XThis example models a bank counter and customers arriving t random times. Each customer has a certain patience. It waits to get to the counter until she’s at the end of her tether. If she gets to the counter, she uses it for a while before releasing it.qnqo}qp(hhkhhiubaubh6)qq}qr(hXINew customers are created by the ``source`` process every few time steps.qshhhhhh:h}qt(h!]h"]h#]h$]h&]uh(Kh)hh]qu(h2X!New customers are created by the qvqw}qx(hX!New customers are created by the hhqubcdocutils.nodes literal qy)qz}q{(hX ``source``h}q|(h!]h"]h#]h$]h&]uhhqh]q}h2Xsourceq~q}q(hUhhzubahUliteralqubh2X process every few time steps.qq}q(hX process every few time steps.hhqubeubcdocutils.nodes literal_block q)q}q(hX:""" Bank renege example Covers: - Resources: Resource - Condition events Scenario: A counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM) """ import random import simpy RANDOM_SEED = 42 NEW_CUSTOMERS = 5 # Total number of customers INTERVAL_CUSTOMERS = 10.0 # Generate new customers roughly every x seconds MIN_PATIENCE = 1 # Min. customer patience MAX_PATIENCE = 3 # Max. customer patience def source(env, number, interval, counter): """Source generates customers randomly""" for i in range(number): c = customer(env, 'Customer%02d' % i, counter, time_in_bank=12.0) env.process(c) t = random.expovariate(1.0 / interval) yield env.timeout(t) def customer(env, name, counter, time_in_bank): """Customer arrives, is served and leaves.""" arrive = env.now print('%7.4f %s: Here I am' % (arrive, name)) with counter.request() as req: patience = random.uniform(MIN_PATIENCE, MAX_PATIENCE) # Wait for the counter or abort at the end of our tether results = yield req | env.timeout(patience) wait = env.now - arrive if req in results: # We got to the counter print('%7.4f %s: Waited %6.3f' % (env.now, name, wait)) tib = random.expovariate(1.0 / time_in_bank) yield env.timeout(tib) print('%7.4f %s: Finished' % (env.now, name)) else: # We reneged print('%7.4f %s: RENEGED after %6.3f' % (env.now, name, wait)) # Setup and start the simulation print('Bank renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Start processes and run counter = simpy.Resource(env, capacity=1) env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter)) env.run() hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXN/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/bank_renege.pyh"]h&]uh(Kh)hh]qh2X:""" Bank renege example Covers: - Resources: Resource - Condition events Scenario: A counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM) """ import random import simpy RANDOM_SEED = 42 NEW_CUSTOMERS = 5 # Total number of customers INTERVAL_CUSTOMERS = 10.0 # Generate new customers roughly every x seconds MIN_PATIENCE = 1 # Min. customer patience MAX_PATIENCE = 3 # Max. customer patience def source(env, number, interval, counter): """Source generates customers randomly""" for i in range(number): c = customer(env, 'Customer%02d' % i, counter, time_in_bank=12.0) env.process(c) t = random.expovariate(1.0 / interval) yield env.timeout(t) def customer(env, name, counter, time_in_bank): """Customer arrives, is served and leaves.""" arrive = env.now print('%7.4f %s: Here I am' % (arrive, name)) with counter.request() as req: patience = random.uniform(MIN_PATIENCE, MAX_PATIENCE) # Wait for the counter or abort at the end of our tether results = yield req | env.timeout(patience) wait = env.now - arrive if req in results: # We got to the counter print('%7.4f %s: Waited %6.3f' % (env.now, name, wait)) tib = random.expovariate(1.0 / time_in_bank) yield env.timeout(tib) print('%7.4f %s: Finished' % (env.now, name)) else: # We reneged print('%7.4f %s: RENEGED after %6.3f' % (env.now, name, wait)) # Setup and start the simulation print('Bank renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Start processes and run counter = simpy.Resource(env, capacity=1) env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter)) env.run() qq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hXBank renege 0.0000 Customer00: Here I am 0.0000 Customer00: Waited 0.000 3.8595 Customer00: Finished 10.2006 Customer01: Here I am 10.2006 Customer01: Waited 0.000 12.7265 Customer02: Here I am 13.9003 Customer02: RENEGED after 1.174 23.7507 Customer01: Finished 34.9993 Customer03: Here I am 34.9993 Customer03: Waited 0.000 37.9599 Customer03: Finished 40.4798 Customer04: Here I am 40.4798 Customer04: Waited 0.000 43.1401 Customer04: Finished hhhhhhh}q(h!]hhh$]h#]UsourceXO/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/bank_renege.outh"]h&]uh(Kh)hh]qh2XBank renege 0.0000 Customer00: Here I am 0.0000 Customer00: Waited 0.000 3.8595 Customer00: Finished 10.2006 Customer01: Here I am 10.2006 Customer01: Waited 0.000 12.7265 Customer02: Here I am 13.9003 Customer02: RENEGED after 1.174 23.7507 Customer01: Finished 34.9993 Customer03: Here I am 34.9993 Customer03: Waited 0.000 37.9599 Customer03: Finished 40.4798 Customer04: Here I am 40.4798 Customer04: Waited 0.000 43.1401 Customer04: Finished qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqΉUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqڈUtrim_footnote_reference_spaceqۉUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformq߉U source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUJ/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/bank_renege.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsr}rhhsUsubstitution_namesr}rhh)h}r(h!]h$]h#]Usourcehh"]h&]uU footnotesr]rUrefidsr}rub.PK@D2!d\?\?9simpy-3.0.4/.doctrees/examples/gas_station_refuel.doctreecdocutils.nodes document q)q}q(U nametypesq}qXgas station refuelingqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUgas-station-refuelingqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXQ/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/gas_station_refuel.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXGas Station Refuelingq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XGas Station Refuelingq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXResources: ResourceqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: ResourceqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXResources: ContainerqWhhAhhhhKh}qX(h!]h"]h#]h$]h&]uh(Nh)hh]qYh6)qZ}q[(hhWhhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XResources: Containerq^q_}q`(hhWhhZubaubaubhG)qa}qb(hXWaiting for other processes hhAhhhhKh}qc(h!]h"]h#]h$]h&]uh(Nh)hh]qdh6)qe}qf(hXWaiting for other processesqghhahhhh:h}qh(h!]h"]h#]h$]h&]uh(K h]qih2XWaiting for other processesqjqk}ql(hhghheubaubaubeubh6)qm}qn(hXUThis examples models a gas station and cars that arrive at the station for refueling.qohhhhhh:h}qp(h!]h"]h#]h$]h&]uh(K h)hh]qqh2XUThis examples models a gas station and cars that arrive at the station for refueling.qrqs}qt(hhohhmubaubh6)qu}qv(hXThe gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as :class:`~simpy.resources.resource.Resource`. The shared fuel tank is modeled with a :class:`~simpy.resources.container.Container`.hhhhhh:h}qw(h!]h"]h#]h$]h&]uh(Kh)hh]qx(h2XThe gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as qyqz}q{(hXThe gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as hhuubcsphinx.addnodes pending_xref q|)q}}q~(hX+:class:`~simpy.resources.resource.Resource`qhhuhhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX!simpy.resources.resource.ResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/gas_station_refuelqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hhh}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhh}h]qh2XResourceqq}q(hUhhubahUliteralqubaubh2X). The shared fuel tank is modeled with a qq}q(hX). The shared fuel tank is modeled with a hhuubh|)q}q(hX-:class:`~simpy.resources.container.Container`qhhuhhhhh}q(UreftypeXclasshhX#simpy.resources.container.ContainerU refdomainXpyqh$]h#]U refexplicith!]h"]h&]hhhNhNuh(Kh]qh)q}q(hhh}q(h!]h"]q(hhXpy-classqeh#]h$]h&]uhhh]qh2X Containerqq}q(hUhhubahhubaubh2X.q}q(hX.hhuubeubh6)q}q(hXVehicles arriving at the gas station first request a fuel pump from the station. Once they acquire one, they try to take the desired amount of fuel from the fuel pump. They leave when they are done.qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XVehicles arriving at the gas station first request a fuel pump from the station. Once they acquire one, they try to take the desired amount of fuel from the fuel pump. They leave when they are done.qq}q(hhhhubaubh6)q}q(hXThe gas stations fuel level is reqularly monitored by *gas station control*. When the level drops below a certain threshold, a *tank truck* is called to refuel the gas station itself.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2X6The gas stations fuel level is reqularly monitored by qq}q(hX6The gas stations fuel level is reqularly monitored by hhubcdocutils.nodes emphasis q)q}q(hX*gas station control*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xgas station controlqq}q(hUhhubahUemphasisqubh2X4. When the level drops below a certain threshold, a q…q}q(hX4. When the level drops below a certain threshold, a hhubh)q}q(hX *tank truck*h}q(h!]h"]h#]h$]h&]uhhh]qh2X tank truckqɅq}q(hUhhubahhubh2X, is called to refuel the gas station itself.q̅q}q(hX, is called to refuel the gas station itself.hhubeubcdocutils.nodes literal_block q)q}q(hX """ Gas Station Refueling example Covers: - Resources: Resource - Resources: Container - Waiting for other processes Scenario: A gas station has a limited number of gas pumps that share a common fuel reservoir. Cars randomly arrive at the gas station, request one of the fuel pumps and start refueling from that reservoir. A gas station control process observes the gas station's fuel level and calls a tank truck for refueling if the station's level drops below a threshold. """ import itertools import random import simpy RANDOM_SEED = 42 GAS_STATION_SIZE = 200 # liters THRESHOLD = 10 # Threshold for calling the tank truck (in %) FUEL_TANK_SIZE = 50 # liters FUEL_TANK_LEVEL = [5, 25] # Min/max levels of fuel tanks (in liters) REFUELING_SPEED = 2 # liters / second TANK_TRUCK_TIME = 300 # Seconds it takes the tank truck to arrive T_INTER = [30, 300] # Create a car every [min, max] seconds SIM_TIME = 1000 # Simulation time in seconds def car(name, env, gas_station, fuel_pump): """A car arrives at the gas station for refueling. It requests one of the gas station's fuel pumps and tries to get the desired amount of gas from it. If the stations reservoir is depleted, the car has to wait for the tank truck to arrive. """ fuel_tank_level = random.randint(*FUEL_TANK_LEVEL) print('%s arriving at gas station at %.1f' % (name, env.now)) with gas_station.request() as req: start = env.now # Request one of the gas pumps yield req # Get the required amount of fuel liters_required = FUEL_TANK_SIZE - fuel_tank_level yield fuel_pump.get(liters_required) # The "actual" refueling process takes some time yield env.timeout(liters_required / REFUELING_SPEED) print('%s finished refueling in %.1f seconds.' % (name, env.now - start)) def gas_station_control(env, fuel_pump): """Periodically check the level of the *fuel_pump* and call the tank truck if the level falls below a threshold.""" while True: if fuel_pump.level / fuel_pump.capacity * 100 < THRESHOLD: # We need to call the tank truck now! print('Calling tank truck at %d' % env.now) # Wait for the tank truck to arrive and refuel the station yield env.process(tank_truck(env, fuel_pump)) yield env.timeout(10) # Check every 10 seconds def tank_truck(env, fuel_pump): """Arrives at the gas station after a certain delay and refuels it.""" yield env.timeout(TANK_TRUCK_TIME) print('Tank truck arriving at time %d' % env.now) ammount = fuel_pump.capacity - fuel_pump.level print('Tank truck refuelling %.1f liters.' % ammount) yield fuel_pump.put(ammount) def car_generator(env, gas_station, fuel_pump): """Generate new cars that arrive at the gas station.""" for i in itertools.count(): yield env.timeout(random.randint(*T_INTER)) env.process(car('Car %d' % i, env, gas_station, fuel_pump)) # Setup and start the simulation print('Gas Station refuelling') random.seed(RANDOM_SEED) # Create environment and start processes env = simpy.Environment() gas_station = simpy.Resource(env, 2) fuel_pump = simpy.Container(env, GAS_STATION_SIZE, init=GAS_STATION_SIZE) env.process(gas_station_control(env, fuel_pump)) env.process(car_generator(env, gas_station, fuel_pump)) # Execute! env.run(until=SIM_TIME) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXU/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/gas_station_refuel.pyh"]h&]uh(Kh)hh]qh2X """ Gas Station Refueling example Covers: - Resources: Resource - Resources: Container - Waiting for other processes Scenario: A gas station has a limited number of gas pumps that share a common fuel reservoir. Cars randomly arrive at the gas station, request one of the fuel pumps and start refueling from that reservoir. A gas station control process observes the gas station's fuel level and calls a tank truck for refueling if the station's level drops below a threshold. """ import itertools import random import simpy RANDOM_SEED = 42 GAS_STATION_SIZE = 200 # liters THRESHOLD = 10 # Threshold for calling the tank truck (in %) FUEL_TANK_SIZE = 50 # liters FUEL_TANK_LEVEL = [5, 25] # Min/max levels of fuel tanks (in liters) REFUELING_SPEED = 2 # liters / second TANK_TRUCK_TIME = 300 # Seconds it takes the tank truck to arrive T_INTER = [30, 300] # Create a car every [min, max] seconds SIM_TIME = 1000 # Simulation time in seconds def car(name, env, gas_station, fuel_pump): """A car arrives at the gas station for refueling. It requests one of the gas station's fuel pumps and tries to get the desired amount of gas from it. If the stations reservoir is depleted, the car has to wait for the tank truck to arrive. """ fuel_tank_level = random.randint(*FUEL_TANK_LEVEL) print('%s arriving at gas station at %.1f' % (name, env.now)) with gas_station.request() as req: start = env.now # Request one of the gas pumps yield req # Get the required amount of fuel liters_required = FUEL_TANK_SIZE - fuel_tank_level yield fuel_pump.get(liters_required) # The "actual" refueling process takes some time yield env.timeout(liters_required / REFUELING_SPEED) print('%s finished refueling in %.1f seconds.' % (name, env.now - start)) def gas_station_control(env, fuel_pump): """Periodically check the level of the *fuel_pump* and call the tank truck if the level falls below a threshold.""" while True: if fuel_pump.level / fuel_pump.capacity * 100 < THRESHOLD: # We need to call the tank truck now! print('Calling tank truck at %d' % env.now) # Wait for the tank truck to arrive and refuel the station yield env.process(tank_truck(env, fuel_pump)) yield env.timeout(10) # Check every 10 seconds def tank_truck(env, fuel_pump): """Arrives at the gas station after a certain delay and refuels it.""" yield env.timeout(TANK_TRUCK_TIME) print('Tank truck arriving at time %d' % env.now) ammount = fuel_pump.capacity - fuel_pump.level print('Tank truck refuelling %.1f liters.' % ammount) yield fuel_pump.put(ammount) def car_generator(env, gas_station, fuel_pump): """Generate new cars that arrive at the gas station.""" for i in itertools.count(): yield env.timeout(random.randint(*T_INTER)) env.process(car('Car %d' % i, env, gas_station, fuel_pump)) # Setup and start the simulation print('Gas Station refuelling') random.seed(RANDOM_SEED) # Create environment and start processes env = simpy.Environment() gas_station = simpy.Resource(env, 2) fuel_pump = simpy.Container(env, GAS_STATION_SIZE, init=GAS_STATION_SIZE) env.process(gas_station_control(env, fuel_pump)) env.process(car_generator(env, gas_station, fuel_pump)) # Execute! env.run(until=SIM_TIME) qׅq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:q߅q}q(hhhhubaubh)q}q(hXGas Station refuelling Car 0 arriving at gas station at 87.0 Car 0 finished refueling in 18.5 seconds. Car 1 arriving at gas station at 129.0 Car 1 finished refueling in 19.0 seconds. Car 2 arriving at gas station at 284.0 Car 2 finished refueling in 21.0 seconds. Car 3 arriving at gas station at 385.0 Car 3 finished refueling in 13.5 seconds. Car 4 arriving at gas station at 459.0 Calling tank truck at 460 Car 4 finished refueling in 22.0 seconds. Car 5 arriving at gas station at 705.0 Car 6 arriving at gas station at 750.0 Tank truck arriving at time 760 Tank truck refuelling 188.0 liters. Car 6 finished refueling in 29.0 seconds. Car 5 finished refueling in 76.5 seconds. Car 7 arriving at gas station at 891.0 Car 7 finished refueling in 13.0 seconds. hhhhhhh}q(h!]hhh$]h#]UsourceXV/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/gas_station_refuel.outh"]h&]uh(K!h)hh]qh2XGas Station refuelling Car 0 arriving at gas station at 87.0 Car 0 finished refueling in 18.5 seconds. Car 1 arriving at gas station at 129.0 Car 1 finished refueling in 19.0 seconds. Car 2 arriving at gas station at 284.0 Car 2 finished refueling in 21.0 seconds. Car 3 arriving at gas station at 385.0 Car 3 finished refueling in 13.5 seconds. Car 4 arriving at gas station at 459.0 Calling tank truck at 460 Car 4 finished refueling in 22.0 seconds. Car 5 arriving at gas station at 705.0 Car 6 arriving at gas station at 750.0 Tank truck arriving at time 760 Tank truck refuelling 188.0 liters. Car 6 finished refueling in 29.0 seconds. Car 5 finished refueling in 76.5 seconds. Car 7 arriving at gas station at 891.0 Car 7 finished refueling in 13.0 seconds. q慁q}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh/NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04dr Uexit_status_levelr!KUconfigr"NUstrict_visitorr#NUcloak_email_addressesr$Utrim_footnote_reference_spacer%Uenvr&NUdump_pseudo_xmlr'NUexpose_internalsr(NUsectsubtitle_xformr)U source_linkr*NUrfc_referencesr+NUoutput_encodingr,Uutf-8r-U source_urlr.NUinput_encodingr/U utf-8-sigr0U_disable_configr1NU id_prefixr2UU tab_widthr3KUerror_encodingr4UUTF-8r5U_sourcer6UQ/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/gas_station_refuel.rstr7Ugettext_compactr8U generatorr9NUdump_internalsr:NU smart_quotesr;U pep_base_urlr<Uhttp://www.python.org/dev/peps/r=Usyntax_highlightr>Ulongr?Uinput_encoding_error_handlerr@jUauto_id_prefixrAUidrBUdoctitle_xformrCUstrip_elements_with_classesrDNU _config_filesrE]Ufile_insertion_enabledrFU raw_enabledrGKU dump_settingsrHNubUsymbol_footnote_startrIKUidsrJ}rKhhsUsubstitution_namesrL}rMhh)h}rN(h!]h$]h#]Usourcehh"]h&]uU footnotesrO]rPUrefidsrQ}rRub.PK@D%ׄ)).simpy-3.0.4/.doctrees/examples/latency.doctreecdocutils.nodes document q)q}q(U nametypesq}qX event latencyqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU event-latencyqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXF/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/latency.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Event Latencyq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Event Latencyq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qFcdocutils.nodes list_item qG)qH}qI(hXResources: Store hhAhhhU list_itemqJh}qK(h!]h"]h#]h$]h&]uh(Nh)hh]qLh6)qM}qN(hXResources: StoreqOhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: StoreqRqS}qT(hhOhhMubaubaubaubh6)qU}qV(hXlThis example shows how to separate the time delay of events between processes from the processes themselves.qWhhhhhh:h}qX(h!]h"]h#]h$]h&]uh(K h)hh]qYh2XlThis example shows how to separate the time delay of events between processes from the processes themselves.qZq[}q\(hhWhhUubaubcdocutils.nodes definition_list q])q^}q_(hUhhhhhUdefinition_listq`h}qa(h!]h"]h#]h$]h&]uh(Nh)hh]qb(cdocutils.nodes definition_list_item qc)qd}qe(hXWhen Useful: When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes. Can also be used to interconnect processes sending messages hh^hhhUdefinition_list_itemqfh}qg(h!]h"]h#]h$]h&]uh(Kh]qh(cdocutils.nodes term qi)qj}qk(hX When Useful:qlhhdhhhUtermqmh}qn(h!]h"]h#]h$]h&]uh(Kh]qoh2X When Useful:qpqq}qr(hhlhhjubaubcdocutils.nodes definition qs)qt}qu(hUh}qv(h!]h"]h#]h$]h&]uhhdh]qw(h6)qx}qy(hXWhen modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes.qzhhthhhh:h}q{(h!]h"]h#]h$]h&]uh(Kh]q|h2XWhen modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes.q}q~}q(hhzhhxubaubh6)q}q(hX;Can also be used to interconnect processes sending messagesqhhthhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X;Can also be used to interconnect processes sending messagesqq}q(hhhhubaubehU definitionqubeubhc)q}q(hXExample by: Keith Smith hh^hhhhfh}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(hi)q}q(hX Example by:qhhhhhhmh}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Example by:qq}q(hhhhubaubhs)q}q(hUh}q(h!]h"]h#]h$]h&]uhhh]qh6)q}q(hX Keith Smithqhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Keith Smithqq}q(hhhhubaubahhubeubeubcdocutils.nodes literal_block q)q}q(hX1""" Event Latency example Covers: - Resources: Store Scenario: This example shows how to separate the time delay of events between processes from the processes themselves. When Useful: When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes. Can also be used to interconnect processes sending messages Example by: Keith Smith """ import simpy SIM_DURATION = 100 class Cable(object): """This class represents the propagation through a cable.""" def __init__(self, env, delay): self.env = env self.delay = delay self.store = simpy.Store(env) def latency(self, value): yield self.env.timeout(self.delay) self.store.put(value) def put(self, value): self.env.process(self.latency(value)) def get(self): return self.store.get() def sender(env, cable): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(5) cable.put('Sender sent this at %d' % env.now) def receiver(env, cable): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield cable.get() print('Received this at %d while %s' % (env.now, msg)) # Setup and start the simulation print('Event Latency') env = simpy.Environment() cable = Cable(env, 10) env.process(sender(env, cable)) env.process(receiver(env, cable)) env.run(until=SIM_DURATION) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXJ/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/latency.pyh"]h&]uh(Kh)hh]qh2X1""" Event Latency example Covers: - Resources: Store Scenario: This example shows how to separate the time delay of events between processes from the processes themselves. When Useful: When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes. Can also be used to interconnect processes sending messages Example by: Keith Smith """ import simpy SIM_DURATION = 100 class Cable(object): """This class represents the propagation through a cable.""" def __init__(self, env, delay): self.env = env self.delay = delay self.store = simpy.Store(env) def latency(self, value): yield self.env.timeout(self.delay) self.store.put(value) def put(self, value): self.env.process(self.latency(value)) def get(self): return self.store.get() def sender(env, cable): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(5) cable.put('Sender sent this at %d' % env.now) def receiver(env, cable): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield cable.get() print('Received this at %d while %s' % (env.now, msg)) # Setup and start the simulation print('Event Latency') env = simpy.Environment() cable = Cable(env, 10) env.process(sender(env, cable)) env.process(receiver(env, cable)) env.run(until=SIM_DURATION) qq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hXNEvent Latency Received this at 15 while Sender sent this at 5 Received this at 20 while Sender sent this at 10 Received this at 25 while Sender sent this at 15 Received this at 30 while Sender sent this at 20 Received this at 35 while Sender sent this at 25 Received this at 40 while Sender sent this at 30 Received this at 45 while Sender sent this at 35 Received this at 50 while Sender sent this at 40 Received this at 55 while Sender sent this at 45 Received this at 60 while Sender sent this at 50 Received this at 65 while Sender sent this at 55 Received this at 70 while Sender sent this at 60 Received this at 75 while Sender sent this at 65 Received this at 80 while Sender sent this at 70 Received this at 85 while Sender sent this at 75 Received this at 90 while Sender sent this at 80 Received this at 95 while Sender sent this at 85 hhhhhhh}q(h!]hhh$]h#]UsourceXK/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/latency.outh"]h&]uh(Kh)hh]qh2XNEvent Latency Received this at 15 while Sender sent this at 5 Received this at 20 while Sender sent this at 10 Received this at 25 while Sender sent this at 15 Received this at 30 while Sender sent this at 20 Received this at 35 while Sender sent this at 25 Received this at 40 while Sender sent this at 30 Received this at 45 while Sender sent this at 35 Received this at 50 while Sender sent this at 40 Received this at 55 while Sender sent this at 45 Received this at 60 while Sender sent this at 50 Received this at 65 while Sender sent this at 55 Received this at 70 while Sender sent this at 60 Received this at 75 while Sender sent this at 65 Received this at 80 while Sender sent this at 70 Received this at 85 while Sender sent this at 75 Received this at 90 while Sender sent this at 80 Received this at 95 while Sender sent this at 85 qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqۈUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUF/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/latency.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}rhhsUsubstitution_namesr}rhh)h}r (h!]h$]h#]Usourcehh"]h&]uU footnotesr!]r"Urefidsr#}r$ub.PK@D]7;;.simpy-3.0.4/.doctrees/examples/carwash.doctreecdocutils.nodes document q)q}q(U nametypesq}qXcarwashqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUcarwashqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXF/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/carwash.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXCarwashq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XCarwashq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXWaiting for other processesqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XWaiting for other processesqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXResources: Resource hhAhhhhKh}qW(h!]h"]h#]h$]h&]uh(Nh)hh]qXh6)qY}qZ(hXResources: Resourceq[hhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XResources: Resourceq^q_}q`(hh[hhYubaubaubeubh6)qa}qb(hXThe *Carwash* example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.hhhhhh:h}qc(h!]h"]h#]h$]h&]uh(K h)hh]qd(h2XThe qeqf}qg(hXThe hhaubcdocutils.nodes emphasis qh)qi}qj(hX *Carwash*h}qk(h!]h"]h#]h$]h&]uhhah]qlh2XCarwashqmqn}qo(hUhhiubahUemphasisqpubh2X example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.qqqr}qs(hX example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.hhaubeubh6)qt}qu(hXThe carwash uses a :class:`~simpy.resources.resource.Resource` to model the limited number of washing machines. It also defines a process for washing a car.hhhhhh:h}qv(h!]h"]h#]h$]h&]uh(Kh)hh]qw(h2XThe carwash uses a qxqy}qz(hXThe carwash uses a hhtubcsphinx.addnodes pending_xref q{)q|}q}(hX+:class:`~simpy.resources.resource.Resource`q~hhthhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX!simpy.resources.resource.ResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/carwashqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hh~h}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhh|h]qh2XResourceqq}q(hUhhubahUliteralqubaubh2X^ to model the limited number of washing machines. It also defines a process for washing a car.qq}q(hX^ to model the limited number of washing machines. It also defines a process for washing a car.hhtubeubh6)q}q(hXWhen a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash's *wash* processes and waits for it to finish. It finally releases the machine and leaves.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2XcWhen a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash's qq}q(hXcWhen a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash's hhubhh)q}q(hX*wash*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xwashqq}q(hUhhubahhpubh2XR processes and waits for it to finish. It finally releases the machine and leaves.qq}q(hXR processes and waits for it to finish. It finally releases the machine and leaves.hhubeubh6)q}q(hXThe cars are generated by a *setup* process. After creating an intial amount of cars it creates new *car* processes after a random time interval as long as the simulation continues.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2XThe cars are generated by a qq}q(hXThe cars are generated by a hhubhh)q}q(hX*setup*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xsetupqq}q(hUhhubahhpubh2XA process. After creating an intial amount of cars it creates new qq}q(hXA process. After creating an intial amount of cars it creates new hhubhh)q}q(hX*car*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xcarqq}q(hUhhubahhpubh2XL processes after a random time interval as long as the simulation continues.qq}q(hXL processes after a random time interval as long as the simulation continues.hhubeubcdocutils.nodes literal_block q)q}q(hX8 """ Carwasch example. Covers: - Waiting for other processes - Resources: Resource Scenario: A carwash has a limited number of washing machines and defines a washing processes that takes some (random) time. Car processes arrive at the carwash at a random time. If one washing machine is available, they start the washing process and wait for it to finish. If not, they wait until they an use one. """ import random import simpy RANDOM_SEED = 42 NUM_MACHINES = 2 # Number of machines in the carwash WASHTIME = 5 # Minutes it takes to clean a car T_INTER = 7 # Create a car every ~7 minutes SIM_TIME = 20 # Simulation time in minutes class Carwash(object): """A carwash has a limited number of machines (``NUM_MACHINES``) to clean cars in parallel. Cars have to request one of the machines. When they got one, they can start the washing processes and wait for it to finish (which takes ``washtime`` minutes). """ def __init__(self, env, num_machines, washtime): self.env = env self.machine = simpy.Resource(env, num_machines) self.washtime = washtime def wash(self, car): """The washing processes. It takes a ``car`` processes and tries to clean it.""" yield self.env.timeout(WASHTIME) print("Carwashed removed %d%% of %s's dirt." % (random.randint(50, 99), car)) def car(env, name, cw): """The car process (each car has a ``name``) arrives at the carwash (``cw``) and requests a cleaning machine. It then starts the washing process, waits for it to finish and leaves to never come back ... """ print('%s arrives at the carwash at %.2f.' % (name, env.now)) with cw.machine.request() as request: yield request print('%s enters the carwash at %.2f.' % (name, env.now)) yield env.process(cw.wash(name)) print('%s leaves the carwash at %.2f.' % (name, env.now)) def setup(env, num_machines, washtime, t_inter): """Create a carwash, a number of initial cars and keep creating cars approx. every ``t_inter`` minutes.""" # Create the carwash carwash = Carwash(env, num_machines, washtime) # Create 4 initial cars for i in range(4): env.process(car(env, 'Car %d' % i, carwash)) # Create more cars while the simulation is running while True: yield env.timeout(random.randint(t_inter-2, t_inter+2)) i += 1 env.process(car(env, 'Car %d' % i, carwash)) # Setup and start the simulation print('Carwash') print('Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() env.process(setup(env, NUM_MACHINES, WASHTIME, T_INTER)) # Execute! env.run(until=SIM_TIME) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXJ/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/carwash.pyh"]h&]uh(Kh)hh]qh2X8 """ Carwasch example. Covers: - Waiting for other processes - Resources: Resource Scenario: A carwash has a limited number of washing machines and defines a washing processes that takes some (random) time. Car processes arrive at the carwash at a random time. If one washing machine is available, they start the washing process and wait for it to finish. If not, they wait until they an use one. """ import random import simpy RANDOM_SEED = 42 NUM_MACHINES = 2 # Number of machines in the carwash WASHTIME = 5 # Minutes it takes to clean a car T_INTER = 7 # Create a car every ~7 minutes SIM_TIME = 20 # Simulation time in minutes class Carwash(object): """A carwash has a limited number of machines (``NUM_MACHINES``) to clean cars in parallel. Cars have to request one of the machines. When they got one, they can start the washing processes and wait for it to finish (which takes ``washtime`` minutes). """ def __init__(self, env, num_machines, washtime): self.env = env self.machine = simpy.Resource(env, num_machines) self.washtime = washtime def wash(self, car): """The washing processes. It takes a ``car`` processes and tries to clean it.""" yield self.env.timeout(WASHTIME) print("Carwashed removed %d%% of %s's dirt." % (random.randint(50, 99), car)) def car(env, name, cw): """The car process (each car has a ``name``) arrives at the carwash (``cw``) and requests a cleaning machine. It then starts the washing process, waits for it to finish and leaves to never come back ... """ print('%s arrives at the carwash at %.2f.' % (name, env.now)) with cw.machine.request() as request: yield request print('%s enters the carwash at %.2f.' % (name, env.now)) yield env.process(cw.wash(name)) print('%s leaves the carwash at %.2f.' % (name, env.now)) def setup(env, num_machines, washtime, t_inter): """Create a carwash, a number of initial cars and keep creating cars approx. every ``t_inter`` minutes.""" # Create the carwash carwash = Carwash(env, num_machines, washtime) # Create 4 initial cars for i in range(4): env.process(car(env, 'Car %d' % i, carwash)) # Create more cars while the simulation is running while True: yield env.timeout(random.randint(t_inter-2, t_inter+2)) i += 1 env.process(car(env, 'Car %d' % i, carwash)) # Setup and start the simulation print('Carwash') print('Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() env.process(setup(env, NUM_MACHINES, WASHTIME, T_INTER)) # Execute! env.run(until=SIM_TIME) q̅q}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qԅq}q(hhhhubaubh)q}q(hXCarwash Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-) Car 0 arrives at the carwash at 0.00. Car 1 arrives at the carwash at 0.00. Car 2 arrives at the carwash at 0.00. Car 3 arrives at the carwash at 0.00. Car 0 enters the carwash at 0.00. Car 1 enters the carwash at 0.00. Car 4 arrives at the carwash at 5.00. Carwashed removed 97% of Car 0's dirt. Carwashed removed 67% of Car 1's dirt. Car 0 leaves the carwash at 5.00. Car 1 leaves the carwash at 5.00. Car 2 enters the carwash at 5.00. Car 3 enters the carwash at 5.00. Car 5 arrives at the carwash at 10.00. Carwashed removed 64% of Car 2's dirt. Carwashed removed 58% of Car 3's dirt. Car 2 leaves the carwash at 10.00. Car 3 leaves the carwash at 10.00. Car 4 enters the carwash at 10.00. Car 5 enters the carwash at 10.00. Carwashed removed 97% of Car 4's dirt. Carwashed removed 56% of Car 5's dirt. Car 4 leaves the carwash at 15.00. Car 5 leaves the carwash at 15.00. Car 6 arrives at the carwash at 16.00. Car 6 enters the carwash at 16.00. hhhhhhh}q(h!]hhh$]h#]UsourceXK/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/carwash.outh"]h&]uh(Kh)hh]qh2XCarwash Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-) Car 0 arrives at the carwash at 0.00. Car 1 arrives at the carwash at 0.00. Car 2 arrives at the carwash at 0.00. Car 3 arrives at the carwash at 0.00. Car 0 enters the carwash at 0.00. Car 1 enters the carwash at 0.00. Car 4 arrives at the carwash at 5.00. Carwashed removed 97% of Car 0's dirt. Carwashed removed 67% of Car 1's dirt. Car 0 leaves the carwash at 5.00. Car 1 leaves the carwash at 5.00. Car 2 enters the carwash at 5.00. Car 3 enters the carwash at 5.00. Car 5 arrives at the carwash at 10.00. Carwashed removed 64% of Car 2's dirt. Carwashed removed 58% of Car 3's dirt. Car 2 leaves the carwash at 10.00. Car 3 leaves the carwash at 10.00. Car 4 enters the carwash at 10.00. Car 5 enters the carwash at 10.00. Carwashed removed 97% of Car 4's dirt. Carwashed removed 56% of Car 5's dirt. Car 4 leaves the carwash at 15.00. Car 5 leaves the carwash at 15.00. Car 6 arrives at the carwash at 16.00. Car 6 enters the carwash at 16.00. qۅq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesr Nh/NUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesr NUoutput_encodingr!Uutf-8r"U source_urlr#NUinput_encodingr$U utf-8-sigr%U_disable_configr&NU id_prefixr'UU tab_widthr(KUerror_encodingr)UUTF-8r*U_sourcer+UF/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/carwash.rstr,Ugettext_compactr-U generatorr.NUdump_internalsr/NU smart_quotesr0U pep_base_urlr1Uhttp://www.python.org/dev/peps/r2Usyntax_highlightr3Ulongr4Uinput_encoding_error_handlerr5jUauto_id_prefixr6Uidr7Udoctitle_xformr8Ustrip_elements_with_classesr9NU _config_filesr:]Ufile_insertion_enabledr;U raw_enabledr<KU dump_settingsr=NubUsymbol_footnote_startr>KUidsr?}r@hhsUsubstitution_namesrA}rBhh)h}rC(h!]h$]h#]Usourcehh"]h&]uU footnotesrD]rEUrefidsrF}rGub.PK@DBj>j>,simpy-3.0.4/.doctrees/examples/index.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xresources: storeqNX bitbucketqXresources: preemptive resourceqNX monitoringq NX interruptsq NXresources: resourceq NX mainling listq Xresources: containerq NXexamplesqNX all examplesqNX shared eventsqNXwaiting for other processesqNXcondition eventsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUresources-storeqhU bitbucketqhUresources-preemptive-resourceqh U monitoringqh U interruptsq h Uresources-resourceq!h U mainling-listq"h Uresources-containerq#hUexamplesq$hU all-examplesq%hU shared-eventsq&hUwaiting-for-other-processesq'hUcondition-eventsq(uUchildrenq)]q*cdocutils.nodes section q+)q,}q-(U rawsourceq.UUparentq/hUsourceq0cdocutils.nodes reprunicode q1XD/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/index.rstq2q3}q4bUtagnameq5Usectionq6U attributesq7}q8(Udupnamesq9]Uclassesq:]Ubackrefsq;]Uidsq<]q=h$aUnamesq>]q?hauUlineq@KUdocumentqAhh)]qB(cdocutils.nodes title qC)qD}qE(h.XExamplesqFh/h,h0h3h5UtitleqGh7}qH(h9]h:]h;]h<]h>]uh@KhAhh)]qIcdocutils.nodes Text qJXExamplesqKqL}qM(h.hFh/hDubaubcdocutils.nodes paragraph qN)qO}qP(h.XyAll theory is grey. In this section, we present various practical examples that demonstrate how to uses SimPy's features.qQh/h,h0h3h5U paragraphqRh7}qS(h9]h:]h;]h<]h>]uh@KhAhh)]qThJXyAll theory is grey. In this section, we present various practical examples that demonstrate how to uses SimPy's features.qUqV}qW(h.hQh/hOubaubhN)qX}qY(h.X?Here's a list of examples grouped by features they demonstrate.qZh/h,h0h3h5hRh7}q[(h9]h:]h;]h<]h>]uh@KhAhh)]q\hJX?Here's a list of examples grouped by features they demonstrate.q]q^}q_(h.hZh/hXubaubh+)q`}qa(h.Uh/h,h0h3h5h6h7}qb(h9]h:]h;]h<]qch(ah>]qdhauh@K hAhh)]qe(hC)qf}qg(h.XCondition eventsqhh/h`h0h3h5hGh7}qi(h9]h:]h;]h<]h>]uh@K hAhh)]qjhJXCondition eventsqkql}qm(h.hhh/hfubaubcdocutils.nodes bullet_list qn)qo}qp(h.Uh/h`h0h3h5U bullet_listqqh7}qr(UbulletqsX-h<]h;]h9]h:]h>]uh@K hAhh)]qt(cdocutils.nodes list_item qu)qv}qw(h.X:doc:`bank_renege`qxh/hoh0h3h5U list_itemqyh7}qz(h9]h:]h;]h<]h>]uh@NhAhh)]q{hN)q|}q}(h.hxh/hvh0h3h5hRh7}q~(h9]h:]h;]h<]h>]uh@K h)]qcsphinx.addnodes pending_xref q)q}q(h.hxh/h|h0h3h5U pending_xrefqh7}q(UreftypeXdocqUrefwarnqU reftargetqX bank_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]UrefdocqXexamples/indexquh@K h)]qcdocutils.nodes literal q)q}q(h.hxh7}q(h9]h:]q(Uxrefqheh;]h<]h>]uh/hh)]qhJX bank_renegeqq}q(h.Uh/hubah5Uliteralqubaubaubaubhu)q}q(h.X:doc:`movie_renege` h/hoh0h3h5hyh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhN)q}q(h.X:doc:`movie_renege`qh/hh0h3h5hRh7}q(h9]h:]h;]h<]h>]uh@Kh)]qh)q}q(h.hh/hh0h3h5hh7}q(UreftypeXdocqhhX movie_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@Kh)]qh)q}q(h.hh7}q(h9]h:]q(hheh;]h<]h>]uh/hh)]qhJX movie_renegeqq}q(h.Uh/hubah5hubaubaubaubeubeubh+)q}q(h.Uh/h,h0h3h5h6h7}q(h9]h:]h;]h<]qh ah>]qh auh@KhAhh)]q(hC)q}q(h.X Interruptsqh/hh0h3h5hGh7}q(h9]h:]h;]h<]h>]uh@KhAhh)]qhJX Interruptsqq}q(h.hh/hubaubhn)q}q(h.Uh/hh0h3h5hqh7}q(hsX-h<]h;]h9]h:]h>]uh@KhAhh)]qhu)q}q(h.X:doc:`machine_shop` h/hh0h3h5hyh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhN)q}q(h.X:doc:`machine_shop`qh/hh0h3h5hRh7}q(h9]h:]h;]h<]h>]uh@Kh)]qh)q}q(h.hh/hh0h3h5hh7}q(UreftypeXdocqhhX machine_shopU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@Kh)]qh)q}q(h.hh7}q(h9]h:]q(hheh;]h<]h>]uh/hh)]qhJX machine_shopqхq}q(h.Uh/hubah5hubaubaubaubaubeubh+)q}q(h.Uh/h,h0h3h5h6h7}q(h9]h:]h;]h<]qhah>]qh auh@KhAhh)]qhC)q}q(h.X Monitoringqh/hh0h3h5hGh7}q(h9]h:]h;]h<]h>]uh@KhAhh)]qhJX Monitoringq߅q}q(h.hh/hubaubaubh+)q}q(h.Uh/h,h0h3h5h6h7}q(h9]h:]h;]h<]qh#ah>]qh auh@KhAhh)]q(hC)q}q(h.XResources: Containerqh/hh0h3h5hGh7}q(h9]h:]h;]h<]h>]uh@KhAhh)]qhJXResources: Containerq텁q}q(h.hh/hubaubhn)q}q(h.Uh/hh0h3h5hqh7}q(hsX-h<]h;]h9]h:]h>]uh@KhAhh)]qhu)q}q(h.X:doc:`gas_station_refuel` h/hh0h3h5hyh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhN)q}q(h.X:doc:`gas_station_refuel`qh/hh0h3h5hRh7}q(h9]h:]h;]h<]h>]uh@Kh)]qh)q}q(h.hh/hh0h3h5hh7}q(UreftypeXdocrhhXgas_station_refuelU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@Kh)]rh)r}r(h.hh7}r(h9]h:]r(hjeh;]h<]h>]uh/hh)]rhJXgas_station_refuelrr}r (h.Uh/jubah5hubaubaubaubaubeubh+)r }r (h.Uh/h,h0h3h5h6h7}r (h9]h:]h;]h<]r hah>]rhauh@K"hAhh)]r(hC)r}r(h.XResources: Preemptive Resourcerh/j h0h3h5hGh7}r(h9]h:]h;]h<]h>]uh@K"hAhh)]rhJXResources: Preemptive Resourcerr}r(h.jh/jubaubhn)r}r(h.Uh/j h0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K$hAhh)]rhu)r}r(h.X:doc:`machine_shop` h/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r }r!(h.X:doc:`machine_shop`r"h/jh0h3h5hRh7}r#(h9]h:]h;]h<]h>]uh@K$h)]r$h)r%}r&(h.j"h/j h0h3h5hh7}r'(UreftypeXdocr(hhX machine_shopU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K$h)]r)h)r*}r+(h.j"h7}r,(h9]h:]r-(hj(eh;]h<]h>]uh/j%h)]r.hJX machine_shopr/r0}r1(h.Uh/j*ubah5hubaubaubaubaubeubh+)r2}r3(h.Uh/h,h0h3h5h6h7}r4(h9]h:]h;]h<]r5h!ah>]r6h auh@K(hAhh)]r7(hC)r8}r9(h.XResources: Resourcer:h/j2h0h3h5hGh7}r;(h9]h:]h;]h<]h>]uh@K(hAhh)]r<hJXResources: Resourcer=r>}r?(h.j:h/j8ubaubhn)r@}rA(h.Uh/j2h0h3h5hqh7}rB(hsX-h<]h;]h9]h:]h>]uh@K*hAhh)]rC(hu)rD}rE(h.X:doc:`bank_renege`rFh/j@h0h3h5hyh7}rG(h9]h:]h;]h<]h>]uh@NhAhh)]rHhN)rI}rJ(h.jFh/jDh0h3h5hRh7}rK(h9]h:]h;]h<]h>]uh@K*h)]rLh)rM}rN(h.jFh/jIh0h3h5hh7}rO(UreftypeXdocrPhhX bank_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K*h)]rQh)rR}rS(h.jFh7}rT(h9]h:]rU(hjPeh;]h<]h>]uh/jMh)]rVhJX bank_renegerWrX}rY(h.Uh/jRubah5hubaubaubaubhu)rZ}r[(h.X:doc:`carwash`r\h/j@h0h3h5hyh7}r](h9]h:]h;]h<]h>]uh@NhAhh)]r^hN)r_}r`(h.j\h/jZh0h3h5hRh7}ra(h9]h:]h;]h<]h>]uh@K+h)]rbh)rc}rd(h.j\h/j_h0h3h5hh7}re(UreftypeXdocrfhhXcarwashU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K+h)]rgh)rh}ri(h.j\h7}rj(h9]h:]rk(hjfeh;]h<]h>]uh/jch)]rlhJXcarwashrmrn}ro(h.Uh/jhubah5hubaubaubaubhu)rp}rq(h.X:doc:`gas_station_refuel`rrh/j@h0h3h5hyh7}rs(h9]h:]h;]h<]h>]uh@NhAhh)]rthN)ru}rv(h.jrh/jph0h3h5hRh7}rw(h9]h:]h;]h<]h>]uh@K,h)]rxh)ry}rz(h.jrh/juh0h3h5hh7}r{(UreftypeXdocr|hhXgas_station_refuelU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K,h)]r}h)r~}r(h.jrh7}r(h9]h:]r(hj|eh;]h<]h>]uh/jyh)]rhJXgas_station_refuelrr}r(h.Uh/j~ubah5hubaubaubaubhu)r}r(h.X:doc:`movie_renege` h/j@h0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.X:doc:`movie_renege`rh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K-h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhX movie_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K-h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJX movie_renegerr}r(h.Uh/jubah5hubaubaubaubeubeubh+)r}r(h.Uh/h,h0h3h5h6h7}r(h9]h:]h;]h<]rhah>]rhauh@K1hAhh)]r(hC)r}r(h.XResources: Storerh/jh0h3h5hGh7}r(h9]h:]h;]h<]h>]uh@K1hAhh)]rhJXResources: Storerr}r(h.jh/jubaubhn)r}r(h.Uh/jh0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K3hAhh)]r(hu)r}r(h.X:doc:`latency`rh/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.jh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K3h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhXlatencyU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K3h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJXlatencyrr}r(h.Uh/jubah5hubaubaubaubhu)r}r(h.X:doc:`process_communication` h/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.X:doc:`process_communication`rh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K4h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhXprocess_communicationU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K4h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJXprocess_communicationrr}r(h.Uh/jubah5hubaubaubaubeubeubh+)r}r(h.Uh/h,h0h3h5h6h7}r(h9]h:]h;]h<]rh&ah>]rhauh@K8hAhh)]r(hC)r}r(h.X Shared eventsrh/jh0h3h5hGh7}r(h9]h:]h;]h<]h>]uh@K8hAhh)]rhJX Shared eventsrr}r(h.jh/jubaubhn)r}r(h.Uh/jh0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K:hAhh)]rhu)r}r(h.X:doc:`movie_renege` h/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.X:doc:`movie_renege`rh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K:h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhX movie_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K:h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJX movie_renegerr}r(h.Uh/jubah5hubaubaubaubaubeubh+)r}r(h.Uh/h,h0h3h5h6h7}r(h9]h:]h;]h<]rh'ah>]rhauh@K>hAhh)]r(hC)r}r (h.XWaiting for other processesr h/jh0h3h5hGh7}r (h9]h:]h;]h<]h>]uh@K>hAhh)]r hJXWaiting for other processesr r}r(h.j h/jubaubhn)r}r(h.Uh/jh0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K@hAhh)]r(hu)r}r(h.X:doc:`carwash`rh/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.jh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K@h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocr hhXcarwashU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K@h)]r!h)r"}r#(h.jh7}r$(h9]h:]r%(hj eh;]h<]h>]uh/jh)]r&hJXcarwashr'r(}r)(h.Uh/j"ubah5hubaubaubaubhu)r*}r+(h.X:doc:`gas_station_refuel` h/jh0h3h5hyh7}r,(h9]h:]h;]h<]h>]uh@NhAhh)]r-hN)r.}r/(h.X:doc:`gas_station_refuel`r0h/j*h0h3h5hRh7}r1(h9]h:]h;]h<]h>]uh@KAh)]r2h)r3}r4(h.j0h/j.h0h3h5hh7}r5(UreftypeXdocr6hhXgas_station_refuelU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@KAh)]r7h)r8}r9(h.j0h7}r:(h9]h:]r;(hj6eh;]h<]h>]uh/j3h)]r<hJXgas_station_refuelr=r>}r?(h.Uh/j8ubah5hubaubaubaubeubeubh+)r@}rA(h.Uh/h,h0h3h5h6h7}rB(h9]h:]h;]h<]rCh%ah>]rDhauh@KEhAhh)]rE(hC)rF}rG(h.X All examplesrHh/j@h0h3h5hGh7}rI(h9]h:]h;]h<]h>]uh@KEhAhh)]rJhJX All examplesrKrL}rM(h.jHh/jFubaubcdocutils.nodes compound rN)rO}rP(h.Uh/j@h0h3h5UcompoundrQh7}rR(h9]h:]rSUtoctree-wrapperrTah;]h<]h>]uh@KPhAhh)]rUcsphinx.addnodes toctree rV)rW}rX(h.Uh/jOh0h3h5UtoctreerYh7}rZ(Unumberedr[KU includehiddenr\h/hU titlesonlyr]Uglobr^h<]h;]h9]h:]h>]Uentriesr_]r`(NXexamples/bank_renegerarbNXexamples/carwashrcrdNXexamples/machine_shoprerfNXexamples/movie_renegergrhNXexamples/gas_station_refuelrirjNXexamples/process_communicationrkrlNXexamples/latencyrmrneUhiddenroU includefilesrp]rq(jajcjejgjijkjmeUmaxdepthrrJuh@KGh)]ubaubhN)rs}rt(h.XYou have ideas for better examples? Please send them to our `mainling list `_ or make a pull request on `bitbucket `_.h/j@h0h3h5hRh7}ru(h9]h:]h;]h<]h>]uh@KQhAhh)]rv(hJX<You have ideas for better examples? Please send them to our rwrx}ry(h.X<You have ideas for better examples? Please send them to our h/jsubcdocutils.nodes reference rz)r{}r|(h.XK`mainling list `_h7}r}(UnameX mainling listUrefurir~X8https://lists.sourceforge.net/lists/listinfo/simpy-usersrh<]h;]h9]h:]h>]uh/jsh)]rhJX mainling listrr}r(h.Uh/j{ubah5U referencerubcdocutils.nodes target r)r}r(h.X; U referencedrKh/jsh5Utargetrh7}r(Urefurijh<]rh"ah;]h9]h:]h>]rh auh)]ubhJX or make a pull request on rr}r(h.X or make a pull request on h/jsubjz)r}r(h.X0`bitbucket `_h7}r(Unamehj~X!https://bitbucket.org/simpy/simpyrh<]h;]h9]h:]h>]uh/jsh)]rhJX bitbucketrr}r(h.Uh/jubah5jubj)r}r(h.X$ jKh/jsh5jh7}r(Urefurijh<]rhah;]h9]h:]h>]rhauh)]ubhJX.r}r(h.X.h/jsubeubeubeubah.UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhAhU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhGNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUD/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/index.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjh(h`hhh!j2h&jh hh%j@hjh"jh$h,h#hhj h'juUsubstitution_namesr}rh5hAh7}r(h9]h<]h;]Usourceh3h:]h>]uU footnotesr]rUrefidsr}rub.PK@DQ;RR<simpy-3.0.4/.doctrees/examples/process_communication.doctreecdocutils.nodes document q)q}q(U nametypesq}qXprocess communicationqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUprocess-communicationqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXT/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/process_communication.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXProcess Communicationq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XProcess Communicationq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qFcdocutils.nodes list_item qG)qH}qI(hXResources: Store hhAhhhU list_itemqJh}qK(h!]h"]h#]h$]h&]uh(Nh)hh]qLh6)qM}qN(hXResources: StoreqOhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: StoreqRqS}qT(hhOhhMubaubaubaubh6)qU}qV(hXThis example shows how to interconnect simulation model elements together using "resources.Store" for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store.qWhhhhhh:h}qX(h!]h"]h#]h$]h&]uh(K h)hh]qYh2XThis example shows how to interconnect simulation model elements together using "resources.Store" for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store.qZq[}q\(hhWhhUubaubcdocutils.nodes definition_list q])q^}q_(hUhhhhhUdefinition_listq`h}qa(h!]h"]h#]h$]h&]uh(Nh)hh]qb(cdocutils.nodes definition_list_item qc)qd}qe(hXWhen Useful: When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process. This is also useful when some information needs to be broadcast to many receiving processes Finally, using pipes can simplify how processes are interconnected to each other in a simulation model. hh^hhhUdefinition_list_itemqfh}qg(h!]h"]h#]h$]h&]uh(Kh]qh(cdocutils.nodes term qi)qj}qk(hX When Useful:qlhhdhhhUtermqmh}qn(h!]h"]h#]h$]h&]uh(Kh]qoh2X When Useful:qpqq}qr(hhlhhjubaubcdocutils.nodes definition qs)qt}qu(hUh}qv(h!]h"]h#]h$]h&]uhhdh]qw(h6)qx}qy(hXWhen a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process.qzhhthhhh:h}q{(h!]h"]h#]h$]h&]uh(Kh]q|h2XWhen a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process.q}q~}q(hhzhhxubaubh6)q}q(hX[This is also useful when some information needs to be broadcast to many receiving processesqhhthhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X[This is also useful when some information needs to be broadcast to many receiving processesqq}q(hhhhubaubh6)q}q(hXgFinally, using pipes can simplify how processes are interconnected to each other in a simulation model.qhhthhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2XgFinally, using pipes can simplify how processes are interconnected to each other in a simulation model.qq}q(hhhhubaubehU definitionqubeubhc)q}q(hXExample By: Keith Smith hh^hhhhfh}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(hi)q}q(hX Example By:qhhhhhhmh}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Example By:qq}q(hhhhubaubhs)q}q(hUh}q(h!]h"]h#]h$]h&]uhhh]qh6)q}q(hX Keith Smithqhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Keith Smithqq}q(hhhhubaubahhubeubeubcdocutils.nodes literal_block q)q}q(hX""" Process communication example Covers: - Resources: Store Scenario: This example shows how to interconnect simulation model elements together using :class:`~simpy.resources.store.Store` for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store. When Useful: When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process. This is also useful when some information needs to be broadcast to many receiving processes Finally, using pipes can simplify how processes are interconnected to each other in a simulation model. Example By: Keith Smith """ import random import simpy RANDOM_SEED = 42 SIM_TIME = 100 class BroadcastPipe(object): """A Broadcast pipe that allows one process to send messages to many. This construct is useful when message consumers are running at different rates than message generators and provides an event buffering to the consuming processes. The parameters are used to create a new :class:`~simpy.resources.store.Store` instance each time :meth:`get_output_conn()` is called. """ def __init__(self, env, capacity=simpy.core.Infinity): self.env = env self.capacity = capacity self.pipes = [] def put(self, value): """Broadcast a *value* to all receivers.""" if not self.pipes: raise RuntimeError('There are no output pipes.') events = [store.put(value) for store in self.pipes] return self.env.all_of(events) # Condition event for all "events" def get_output_conn(self): """Get a new output connection for this broadcast pipe. The return value is a :class:`~simpy.resources.store.Store`. """ pipe = simpy.Store(self.env, capacity=self.capacity) self.pipes.append(pipe) return pipe def message_generator(name, env, out_pipe): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(random.randint(6, 10)) # messages are time stamped to later check if the consumer was # late getting them. Note, using event.triggered to do this may # result in failure due to FIFO nature of simulation yields. # (i.e. if at the same env.now, message_generator puts a message # in the pipe first and then message_consumer gets from pipe, # the event.triggered will be True in the other order it will be # False msg = (env.now, '%s says hello at %d' % (name, env.now)) out_pipe.put(msg) def message_consumer(name, env, in_pipe): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield in_pipe.get() if msg[0] < env.now: # if message was already put into pipe, then # message_consumer was late getting to it. Depending on what # is being modeled this, may, or may not have some # significance print('LATE Getting Message: at time %d: %s received message: %s' % (env.now, name, msg[1])) else: # message_consumer is synchronized with message_generator print('at time %d: %s received message: %s.' % (env.now, name, msg[1])) # Process does some other work, which may result in missing messages yield env.timeout(random.randint(4, 8)) # Setup and start the simulation print('Process communication') random.seed(RANDOM_SEED) env = simpy.Environment() # For one-to-one or many-to-one type pipes, use Store pipe = simpy.Store(env) env.process(message_generator('Generator A', env, pipe)) env.process(message_consumer('Consumer A', env, pipe)) print('\nOne-to-one pipe communication\n') env.run(until=SIM_TIME) # For one-to many use BroadcastPipe # (Note: could also be used for one-to-one,many-to-one or many-to-many) env = simpy.Environment() bc_pipe = BroadcastPipe(env) env.process(message_generator('Generator A', env, bc_pipe)) env.process(message_consumer('Consumer A', env, bc_pipe.get_output_conn())) env.process(message_consumer('Consumer B', env, bc_pipe.get_output_conn())) print('\nOne-to-many pipe communication\n') env.run(until=SIM_TIME) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXX/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/process_communication.pyh"]h&]uh(Kh)hh]qh2X""" Process communication example Covers: - Resources: Store Scenario: This example shows how to interconnect simulation model elements together using :class:`~simpy.resources.store.Store` for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store. When Useful: When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process. This is also useful when some information needs to be broadcast to many receiving processes Finally, using pipes can simplify how processes are interconnected to each other in a simulation model. Example By: Keith Smith """ import random import simpy RANDOM_SEED = 42 SIM_TIME = 100 class BroadcastPipe(object): """A Broadcast pipe that allows one process to send messages to many. This construct is useful when message consumers are running at different rates than message generators and provides an event buffering to the consuming processes. The parameters are used to create a new :class:`~simpy.resources.store.Store` instance each time :meth:`get_output_conn()` is called. """ def __init__(self, env, capacity=simpy.core.Infinity): self.env = env self.capacity = capacity self.pipes = [] def put(self, value): """Broadcast a *value* to all receivers.""" if not self.pipes: raise RuntimeError('There are no output pipes.') events = [store.put(value) for store in self.pipes] return self.env.all_of(events) # Condition event for all "events" def get_output_conn(self): """Get a new output connection for this broadcast pipe. The return value is a :class:`~simpy.resources.store.Store`. """ pipe = simpy.Store(self.env, capacity=self.capacity) self.pipes.append(pipe) return pipe def message_generator(name, env, out_pipe): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(random.randint(6, 10)) # messages are time stamped to later check if the consumer was # late getting them. Note, using event.triggered to do this may # result in failure due to FIFO nature of simulation yields. # (i.e. if at the same env.now, message_generator puts a message # in the pipe first and then message_consumer gets from pipe, # the event.triggered will be True in the other order it will be # False msg = (env.now, '%s says hello at %d' % (name, env.now)) out_pipe.put(msg) def message_consumer(name, env, in_pipe): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield in_pipe.get() if msg[0] < env.now: # if message was already put into pipe, then # message_consumer was late getting to it. Depending on what # is being modeled this, may, or may not have some # significance print('LATE Getting Message: at time %d: %s received message: %s' % (env.now, name, msg[1])) else: # message_consumer is synchronized with message_generator print('at time %d: %s received message: %s.' % (env.now, name, msg[1])) # Process does some other work, which may result in missing messages yield env.timeout(random.randint(4, 8)) # Setup and start the simulation print('Process communication') random.seed(RANDOM_SEED) env = simpy.Environment() # For one-to-one or many-to-one type pipes, use Store pipe = simpy.Store(env) env.process(message_generator('Generator A', env, pipe)) env.process(message_consumer('Consumer A', env, pipe)) print('\nOne-to-one pipe communication\n') env.run(until=SIM_TIME) # For one-to many use BroadcastPipe # (Note: could also be used for one-to-one,many-to-one or many-to-many) env = simpy.Environment() bc_pipe = BroadcastPipe(env) env.process(message_generator('Generator A', env, bc_pipe)) env.process(message_consumer('Consumer A', env, bc_pipe.get_output_conn())) env.process(message_consumer('Consumer B', env, bc_pipe.get_output_conn())) print('\nOne-to-many pipe communication\n') env.run(until=SIM_TIME) qq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hX Process communication One-to-one pipe communication at time 6: Consumer A received message: Generator A says hello at 6. at time 12: Consumer A received message: Generator A says hello at 12. at time 19: Consumer A received message: Generator A says hello at 19. at time 26: Consumer A received message: Generator A says hello at 26. at time 36: Consumer A received message: Generator A says hello at 36. at time 46: Consumer A received message: Generator A says hello at 46. at time 52: Consumer A received message: Generator A says hello at 52. at time 58: Consumer A received message: Generator A says hello at 58. LATE Getting Message: at time 66: Consumer A received message: Generator A says hello at 65 at time 75: Consumer A received message: Generator A says hello at 75. at time 85: Consumer A received message: Generator A says hello at 85. at time 95: Consumer A received message: Generator A says hello at 95. One-to-many pipe communication at time 10: Consumer A received message: Generator A says hello at 10. at time 10: Consumer B received message: Generator A says hello at 10. at time 18: Consumer A received message: Generator A says hello at 18. at time 18: Consumer B received message: Generator A says hello at 18. at time 27: Consumer A received message: Generator A says hello at 27. at time 27: Consumer B received message: Generator A says hello at 27. at time 34: Consumer A received message: Generator A says hello at 34. at time 34: Consumer B received message: Generator A says hello at 34. at time 40: Consumer A received message: Generator A says hello at 40. LATE Getting Message: at time 41: Consumer B received message: Generator A says hello at 40 at time 46: Consumer A received message: Generator A says hello at 46. LATE Getting Message: at time 47: Consumer B received message: Generator A says hello at 46 at time 56: Consumer A received message: Generator A says hello at 56. at time 56: Consumer B received message: Generator A says hello at 56. at time 65: Consumer A received message: Generator A says hello at 65. at time 65: Consumer B received message: Generator A says hello at 65. at time 74: Consumer A received message: Generator A says hello at 74. at time 74: Consumer B received message: Generator A says hello at 74. at time 82: Consumer A received message: Generator A says hello at 82. at time 82: Consumer B received message: Generator A says hello at 82. at time 92: Consumer A received message: Generator A says hello at 92. at time 92: Consumer B received message: Generator A says hello at 92. at time 98: Consumer B received message: Generator A says hello at 98. at time 98: Consumer A received message: Generator A says hello at 98. hhhhhhh}q(h!]hhh$]h#]UsourceXY/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/code/process_communication.outh"]h&]uh(K h)hh]qh2X Process communication One-to-one pipe communication at time 6: Consumer A received message: Generator A says hello at 6. at time 12: Consumer A received message: Generator A says hello at 12. at time 19: Consumer A received message: Generator A says hello at 19. at time 26: Consumer A received message: Generator A says hello at 26. at time 36: Consumer A received message: Generator A says hello at 36. at time 46: Consumer A received message: Generator A says hello at 46. at time 52: Consumer A received message: Generator A says hello at 52. at time 58: Consumer A received message: Generator A says hello at 58. LATE Getting Message: at time 66: Consumer A received message: Generator A says hello at 65 at time 75: Consumer A received message: Generator A says hello at 75. at time 85: Consumer A received message: Generator A says hello at 85. at time 95: Consumer A received message: Generator A says hello at 95. One-to-many pipe communication at time 10: Consumer A received message: Generator A says hello at 10. at time 10: Consumer B received message: Generator A says hello at 10. at time 18: Consumer A received message: Generator A says hello at 18. at time 18: Consumer B received message: Generator A says hello at 18. at time 27: Consumer A received message: Generator A says hello at 27. at time 27: Consumer B received message: Generator A says hello at 27. at time 34: Consumer A received message: Generator A says hello at 34. at time 34: Consumer B received message: Generator A says hello at 34. at time 40: Consumer A received message: Generator A says hello at 40. LATE Getting Message: at time 41: Consumer B received message: Generator A says hello at 40 at time 46: Consumer A received message: Generator A says hello at 46. LATE Getting Message: at time 47: Consumer B received message: Generator A says hello at 46 at time 56: Consumer A received message: Generator A says hello at 56. at time 56: Consumer B received message: Generator A says hello at 56. at time 65: Consumer A received message: Generator A says hello at 65. at time 65: Consumer B received message: Generator A says hello at 65. at time 74: Consumer A received message: Generator A says hello at 74. at time 74: Consumer B received message: Generator A says hello at 74. at time 82: Consumer A received message: Generator A says hello at 82. at time 82: Consumer B received message: Generator A says hello at 82. at time 92: Consumer A received message: Generator A says hello at 92. at time 92: Consumer B received message: Generator A says hello at 92. at time 98: Consumer B received message: Generator A says hello at 98. at time 98: Consumer A received message: Generator A says hello at 98. qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingrUUTF-8rU_sourcerUT/var/build/user_builds/simpy/checkouts/3.0.4/docs/examples/process_communication.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledr U raw_enabledr!KU dump_settingsr"NubUsymbol_footnote_startr#KUidsr$}r%hhsUsubstitution_namesr&}r'hh)h}r((h!]h$]h#]Usourcehh"]h&]uU footnotesr)]r*Urefidsr+}r,ub.PK~Di.sg.."simpy-3.0.4/_static/simpy-logo.pngPNG  IHDRl_ IDATxy,]7j_^oߗ[R.  b<€9m<0sY1!$DkEjuoߗ+XezYs"_޼ $?._z B!B[E7yj~GvzB!BȆ'.w>-UB]R[B! 8q=}k#6yB!BHCHib[lȄvQA$xqR}&blPB!B^w"-\ʣ[Xl˘p}Ri8qӜWf݃{톰g-4\wzއISG˓E;!B!d͡$OxTK c , -m?*mJ}[" SLj:R!)L)QRBPBJ )\'lDSpy5杺ژmLU90LTn޺Ҩ5\}]/^B9uO#RB!Bz z6W<I^p-b0J#êPЭ;iӔvT2[EEӱ0ńń&P RHݦkoW"aVy"*fRBY(%)W܆a7vC\VތSsKKQ L1{UݍtChېO{L!B!w 'SQoxX.36o@eH = $د[ $ IO2fLe}B#*]תȃC4pm\ubՕzfnN7kswKjԧ̧#8 B!|P;<,â\ =^/lݴ͜%ϲ߰^(&t p]*a;yyJEg=[?ن _@H!Zs<[qQN/̪%qunڹ}Zcͷ;b@#I=&B!@_{ⲧ˄MGKG3P=Y=8*|P(OR]sU0oڥ`M.$P*nxg.Ш]n.pgqƙz7Y̢;MlEhB!BH.(W q5b<1w~'J6SMKL %FuCsQ8MКC-`S|llN!BCSكo|an?^ᣏXr`P/ϖ>dVuMiWUq-I.̣U98$߻c6VWϝroxB!'*|!!?¡G]Qc%V9)ZlQ݆g OƶW]z~ZU]yw-=X-[ޞB!BD癛|{ubZZŹױE(=Z{{-̑ӳ-|v\0,1P}ܜv{cW=d\\#B!>=9C_~rJ)t.֥|5k[U^a)0թ&󍓋H PGμjV tsB!BC6@o$+(:al26o7>bpylq/3;ղFg6ǶGb*! uCl<}C}z{qu9B!܇lTx́LAHP_ hjַX3;nZ^3թ{?<8NHQwضz㊷VȻBW=xN!BYlD.ʇ~[qЍfhy@>qKa׶ٻ]|-ΧŢ8mypaM_K*%i"B!?MyX/{ ~WbQWءW)?#% /=^ ֔U co,=B{Ǝ|%\/}-[:/mrv]xt k'݇I} B.d#%`ۘ|o-~%U 6r!B!(=^+btBA!sm\=&P'y'xm[9ϸ]rme-K PFɏy:TJyHpTo\×sw.o5ċC#B!{{{#"ηn5~g+?iSB@f <.kGU7gt/a= BE=T̴wCy0`-Xjn5Py͹|ssvm2(+ ]J폔0Ю}ڦwgb|B!~~aq$F~~Ng&D0Z0-0_?kpyfb*?~O*a>DzX;7ݫSQ9y͵Ӻ8N),#viW榽*ZKvkB!Bz~dp9?ÿe9H!Tܜ1-E)3;ղ陷s44f<?=CwKzscnm> < j{p_BaӓN!BHs )V~{z8^gvv]eaW,~s @@?^xG0 1&P/ۯu{B媆wcXy{^^ҵKy<a|xi6|܌ز]ߢobyΧU64^ wH'B!z8@(kP(]mU gWany Hkſ(9w.ΓZEKp-KG\RREo4|GOB!BIG ?߬T*"Wz|y'%.ѶDzI/yP ꍗgNjvy8\c%ʃ-Y=t]Zv;P\)%Aylr>}i] { !B!}&áلG><׷W^HU \)*MI/ _Agid;n|y{ aqhz]]աglتMyncH:V@apHծz>27B!>G􈸬4Qg>>B\J (N[-S;pӰ8uBc]5_8|z n߄og {ګA7Ws iu>=0 bb _8*7fu'B!zXK2XG0YPt_+ y0_ mTic=i+YǙu4-٘ggJ\Yf |lPkԠDC?E:!B!,޿j5RD`^a}N [yg=ymڅy޾w#;d' w.L%bV20 6m 6o{ׇ s/ ܃PwB!B=f =7"ş5-Lzᅦ|8:} +|:0]5̛ԻI::Q|ft <}A΃4/txY`[~e<8Z5ϜX*G?c}=B!{zaetq1}cٳ Lqͻ&/WcuyJTf-|{sztvzڃ'tLhIwB߬?i=싉N!B=F6;b3(_ƊMyMPM}ڽmos# o.yHU΁$;M Y*cbWך^h~y >y=QJ)^׮\poF7B!JG>O?{c!ʁFȉ-20OHQŹgF(@794/K ppz8qa8#H`XPP~alfR`heHX'6oB!B=` 6Gb5ENWayLUTTys'򆻷8{$́.#[b`PΟosEp8{9~*4Ml?!Epő9B)vh8y-R8n wB!Bz"_xOIMXky^a׶<ͺξj9GJVALlҞؾp3wwjw#3# tMe¼j  LSL?ږ_=勍Wfnzwܼ0JȨVvL>4>.? 2XHzl{02!?z78C݃M^tB!B IY=phN˙{$rL{)S*V-=0,90c@"O<:5+ެDQŸUBIۯItA!Q! V}Lj/{)эwG^Zru) z .aA)Upܻh;ai(L=hgsjq u'B!dYsá0_^ߕ˨Xn"-Z)]K6r*ZMtrU΃|&&6?hes !B!H ҁ@X}_RM5(790if0kOxD]$<3ot@'̻H5{Z]G˃B!Uf=% A7umtaMmaU܅@gɵ^2-DNcم !fJ MShRt4S. k:4]B IDATI )CtMBjФ:%h^{!5tS+3B!@Cu4%&\?=@7s))}7vꢪ֪^uaVxswnyo87.yӷyZ[6È^ Prpv}dhL iA tS(!a8{ZBEBvë}y5z !BYcU@ m:(nP/"9b sriqh:%45; ӯ7^<P67;/-(Dz4ռ kN;m2&룇'GЈVQo}OS{ޭ0_~* (u1{꒚9!B!~ay8]߱KZ(`GKoy0 cG0vM/7_^.9ӳw;h|o* zHO#,w!<`"ϝr;u6yѱImnĥٺmU=c] %ꂚ9!B!~([^bm}Q/MV{= coדPvHME/8yq:|O _7H{һD-,Ѓ?s箜s;^x ؾ#a]~mVʞG|2r#R(x]7v3B!B!*%iłVn^ŒlcV9%νX\ U֋߮֫[׽;zh_GXwy@G>@:z0[H/X:{^vɽ}=)whT];+H,)to4h>d!B!*Ёw]Qߪ Fign`ۊ0O@엟k|˵gyRsS;hw+LI򢇟 _7/v># EYXzξls'ٔʼn]Sj5,RB!@zM۷FGA/X]9梹7 l_/%Þm[1 M):* ʚ3O\֟}51>߼ r]7Wu+'l`IDžkBY/ح$:W݋077aqR{7{տsݻ_O]_ȺYs̃}BU&HljH>~@s_^ZF=v4=jG 솪=9wyi IB$I*e&N|'%ͲOST%i=$B6$:*VÍ^YMaܻ0(B_qս`=fA"u͓=K]u]v@_oh ܌g|qS΅x8uK7y4-?p=W[wQ  N!nN'M[+[' o'JeZFHY@Z^t aP(Ť o/yJE|ܿ*c}JߕP;ߴʳ3}^E0 {Ax!0q { fq]v!톺]]TWōWk fW{iI45L_gfaG\"޸s^ X]/P4-(o y][unWݝ09vEX;Y8=|!Fs GCKC^C+"bݶ󍅗o>Ut1>}We@Y%Q4YGv 5ǽƋh}AsB8Dv8Q [vZ 0XKe`e xÕ\,q uLHC:R.> /\b"4! ^>\~}&DQX\- @Ȗ]sPSe6l[]scj}ta~=?{G]-y 5w̹uÿ+ϣQ{pB)&Ё>YLjW))́nypx\p$5Upc.9Q0?f/֗kߞ]A@O>d!uMXZʁcfet k@EQ1LY2L9Z*q&tM$ut] RmMRrϿH; zA,)  Vh4-/5jZtnq9][f;7n>U&{`)Y]g N$IGã砏nַ$#S*Nj39 gV%K ,-ۧ70n~SK=u W/uaS@3xj\TOo] Pw-c n^w/,-x7њ[,)Nv?8ߠ9Ap" \-lKӗ/okrt˔u6mШ,! :aBF4 Tڕ++wnzowZBo bhLu B!-֤t]iS ]9 1RJɡ13oj굋/EA+= _<:O*!}F? \ 0 rn昷U Og;aRٍնEu2Z< 7aq /ɦ&|n b豵4^n\x/Ub {ɉЈ*@q@T, &rbYE#B)RK ¬773fo{wn:3Z ڒyXl<>?lA7!]3ҕR#dUQ P.5/B 13?tœ3/|^Xږ i&; r"f vm7x,Л[i0Y\yj0B@V*Ikl4M̀P$$๞s3?YH[;6_xY4 }T@lGRPBF  UҏDbVA۾ 4s'NN=Kq#.b, |,RkaHGtT .ruzFP \2+n]LN8< Kkh{x$>t4KX|Ѳ !l\:hByRAAQk<[A4(zWUBG=!kD? 6oiBԠ[aaoPyt.AʉKA|"@phZI{{azܹNA̞BB]G( !,V{ouξQߖO |;@Q =g=1 LtzMsDRIvօ-OzIzhC,*£bœBH#Qߏ(P)wyxW_=]Xa%g{ .Fo=Ił*x0G7 gt $`XZ!-Is֣ցv5ڒ#BO")y"4G&|'N 2cb+]G91 (kWRP@y<+)3=桶{@e~ ZK~EPB!$,ng8@(N7/ˡ0+BKhy) 1*[l  Pb*;Rijv+qLLKhcBoB!.ܡ?kC(4h;E:!=_:s5Z#aR 2߭0Gq*lzI0CH'B!QyжLi{?=돿7"OYc@AAd-Զ22v7   bljq4G qi B!w&k o1?Oi#7R Ls~YA?{~cNC55e=9].Q͞rx.Z2-<9ulq;O7Z?ᬛqtB!Bql1HЧ¿ % UMM٪<`V<%$$~]x%5)SI+H cGML/J|Z]Gy?Ch st4|B!X\('>Rrrp;' IxУ#삔{|<$7%wMzy/y#+Ke)@J薅Cۦ;o8h@tB!< 照~9hug;!@!Eh(y<62w9Ǽ>mY<1Ty|RY%ԣB!dU4rYNٷ^/zxz@QG[C*cmlyn?i;l]y[j$B Jrm/X),ԃ焐E-zp(Bi~9}PҜ~W5_qdZ^Ja wL612]s͞V@+q_0'=B_Ra tr(%&ngϺnGVwsBRKnj'U$亚g׶ٽ S)*brdB{jchM],4u3;!~HG2Ol@'+E!a٫[~)\{) zba!H⑇~w#3U;O'x( j{%us7 $xՁBHjf] IDAT.6OlFNV(jޅ^-NO:!)@Zt -zhapqD"FVe ƾle&,(vѽwzv:8Up{ uB!@'R@ePrjӯW 8DBB@fr.H]Uv0Nj;<7y񚆱4*<ҜRM4ŖBY<|A0'wn9 )*E L*aB!BNV?aUsgf*E:/hvPpmѶleKM8{J݆wu ͩt)kbX?}Q7uǩ.h\ v !P5RENի g^s._=*񾐐&$ЁΥLE`Gwyiz)̑3}=on-! bE>c}=(VPv ~tÞ,A&B tfH 18 lTI/@C/ 裻0b{5ϼj3O#{,8f"߿ecFy|kvmaK/IaqKQB!O@gw#LKlu=os^tB@h t @\C;r͋Cޓ$psM89Ƙr_ L9uSwo\vfqb^uB!dm\! FE_i| @ў0Ҥz t@^͛]'"g6e0.V=*S!+ʐ^G/; %!(ɚ"`r |i Zs) O= (nك8&{ǒZ<Ӽ<j0+\Mab0CcڻyǬŹXBRma:![(ɚ#+z쵳έ71_{ } 'к|rB!X^z>[]UP ePR@H RB,襊Y,eahT (R4M MkUKԒv<:it#~@K`/ygܫ[} %XcvgWy/3ԉmU'V,On2.8qo:Nd_@{SX tǜB!`;W=°GbyH-x^.m9:[O&&X(0MQڼx0 ~~Os];О$,ܪmۤ0 a ^-o+[* Ǚ%O`e@{ddR֝=u(z743 3B!$![9ok`|h[hnmRqj7or.s[e]WK(I&zP.{߾ކ/sI O? t}z0Ph80Տr .0k칼"l?yB+Uʐ-G1.q4͂.F!9]Ks_o|,>,B=ؖB[Xx@ Λ/j՛Rx!REX6XRXsN _G\{{0FͫޛCrB[y]z#Sms{7@{e<(8 !ʐRE}prS/:w+/&G\L=!B2z/)3-ЙQtΣp2c}I807_FmM2=~RE&ڗ(i~D5J{7Gz i[u=) 3a)ƞlށnlD|?Ju00hā·i=Q9fl-z4<@:!Ć/.;}4|y{DžGZs ?7 4L3j΍ל#cZe`D%R oPĄ!GďVKoK+dx0F&=8 nAc9x\k3p Xk: !v6@.}uċZd%1eYA5o͗AOl'5 &*nx߽sNH t=Q\XQc~Lj" *Cě`Ԋ gzGJ(CbXO9hоcܹiF;BEu뙯ֿ8GSZʃyy}!q^8ZܺSfZ9g(Kp'8@z/ܞKQxXh0^Ԯ'a=goZcaҠRɭgv֦&UUڴ B G@0P'ذYܫKޭgZ*|dky b91;;@o.W)80]Iu+*3̝lhUkOt sxBŅYorN5Sz=w8-z" Onޡݾ!k,Z@w*.BlL.w)ЃLKhy678*݉<^rgf;(n\(umM"8'"Þt͌o4OXQ|k-X;PZ|$nB Xmqcׯz7w3kBlX^zI! D{xw=qٝ;b3-݋E1tmkh iҢz@\Wn6%p{/U ci0Xx bP[vnGdebE!7HWLKj7/}ß!~ V;K90† clz#̣M4Ml*#G3O7//6О{@__Dl罾ٰZ@bsP=p{k}j`HBXU|.G2LG6,,cqN0 #k*̻l>}ј#n,ιQ›{KM|ܲzJj{/EA{&IYE4-;f4 a hݙS/זZS ˭IWVq#u{^l{N-SZ0C;}\U0d8_K(8m?]5Ϸ_Փ!i9ߕ_7~4~HU">5EyyTdqwb}>פ>[i;R:#U߂B6)/ڧ\{qi_D;VY4E+R(lխnvoۻ v{=`8;陛=nZ2)N+EX4Gx/߫WŲY*"232222 ^erjÀ "wv&;-1K1]kQD\gAJ#rH"<ۡmXG £ly=N]\.efH7k >|V3/! fYAzckjYe86FJ"I}< QzLjxP3ˈ9Uj&g3QrQ^ElCw+$j6^:1b,}3[WAoAc EsL^='\&0Ӣokx/{ 9n3gL;Ao×K[qs~>MR k|G&/1>牘8lC2IuȞUkW;d u`P6Q ?a2NEf.,Y)M& Q"EKĪ=˨4zֳxVO}#Hfag!Q뽫wg0S'\9Jrr1<6,'*`ݿz>5~ g Dkr+BA/c."L CdD}¼F/y|lqDZjzuv,W.w?g#ͼ׹}Ol~HsjO睬ȟ5,|cTuJJL*/'F_N$>EyOT#&eT#d@=L*52AJu]ӈ꺮X1nvY., 㸣9x ~G2HC8O=ắDU#gYGoRթd"iM%zR (0CUUM'@' V!TDap9crs]y*dlq:[e&o_-8O:uhF&Ƒ'&+Q_̨lڶ%LPQFE :U Kǵr.,ƘvN'ܙ{*"ncVw5/1x!_,Aqku$ޣ;']M>Nzk-F}ٛ/cQAƱs;pY 5@wX.ֳszU+ ݁/E#N۬ PSB<͖YdveyD!fr!3 * UZ3"j2M-/^yOyB&i>f9 Q@ PW$כN%AB5ڤ5C& m Q @9PAA8'sB8bO3L2O32gP,>{#w߼0<`j޳WlclxAX^ϣ^T&&xQRyٸON]W[MiVڢP4*B`PJUp JHZ\`rN\f޻nYpmw-^>?ug"wCw|JZdʏ:VlLR(2ҹt|j}kWu$RuQDm&H !PAA@^#w { lpnaqpswcs'_(ܱ]~|#qor;͒XwԄHcXI'p<9[[܋k{$i#$Q:j@#z{/OFUӍ0fӄ9STJìXYɻ;q_-X,2PF-cYx>1V •;j!ɢ]WfKm245T\#6uKW M"/ꅝPVӺXUy#ն":ʞvڟNU]ߠ(J$@ J)[T{߹ڒ/IR8x 69csn呱tmltb|;Jr~O˅wwR8d6NnܦiN3tA '6yR$ݤ=Ӫt ڦhRUQ54!xBBe+IEx>!EO=/o* ʭ=* IZg.U}N(P (%B{iX^QH[KM~޸QxWʄQK ^$ _3<_j QVYmpp㉦LMۣhVJi;N Bi$;y (!T'^\Uw2^ \,GrkOGrVW%rl$i]7z75 Fj[%@ J |X|6c" Ji2dZܮUu;\* '>yڹBa*;11Q!J(CEI#d&Ӟl^տno&ܧ')U:-( =ÿo%@PH nuͤU۶[^%+o}:>:znxR{Kj-,4ʇܯ:(E[٭no>?mP8TRFyƷ錹QձNxf`UIUHB Jiݯ4#xUKXB}:z&-j =&߷mrDZS9\^ٳ##'@y%#LxN=޻aPߞЭ4tNG)iϕZmPʭ9ON9'(-p(s\Ls=q-~.F^/d[(܈=YI]t@y0S f:i [3lߤdVu$A#S< .$%bN}y+s (T}=&z=cSS|wYCV_ LZzu>9<19~ݻo'Ean%%y͆-]mͫڞNkRJj$,l BN꺶 ;۱niDz?rGG|096144tQxm% Ks`yܓLePAЋCνk^mp5DR]ݼh]M!B܂/%S&+UQʓP-hVU4@E[fٟL|ygu\fqhz+01.)W>uQ)R\*2DtH ±}W޾5uT4YI] 4xL_^揔t3if3L畴ȟ5,?Od^3s󚧮>瓘G\""%ҷ{DqF`ܕwDZP0ilJk5Υ,q*8`G "j IDATc TJIC{Q[gV^ijjj[~sw3Itةkꠦ YYX<ׇ@iuo?  M>26鏏}V(&7 v2';&fv=ؚMM-t]ۢ( \m$=I93\K[? ō67>|'? q%12}Mt ޜ`1v{+}U'M4W#TN=vglsA[ɳvY!1w@_URū!O~mj\XoatyP7#;;C'߷~s TQsy%A#牴}r3g<"s!9q]$悘{Xy$M<ץPS/=[׏ BKW2^εLGGsߪULkj(CuqDzFo|vgFEڸ,Xۮ{ڪ)L9&{ vKuCC a"a'ICLx/5-=[mpc閦=jnTe Q]S Uc $o9ȣa&ջj?:tG;/a.$O @sϽԪUMc%yJmf"x"z9驉7~p'7 ^ g x9[7LmܮF虌VK(Cp?|>es@HS(@)6>ss ~#9.l yM'.d <;w ok+~ݘkؼCǬμ%&3z"a84y@]R} إ3]jnQoy?9rx}0) ɭ;6vuwui0NH(ZJv& \MjREQ(dBbYnRPJSJ\q/b1<1X\ܶPm o/d z ~!n=ifJi;QHh* 1mYBGJvEUo:7rĉKbIۚyٯ7}YUEUVQ1#LʫA8TIӺ+/ktt|WkY$kX1 " A,Yq;&(UV/Q=jDУ(Kҏa@}c`-y pǟ3u}U./˚U+m,[pU8iԞU4j i 7?x-zp%tY(I子cV4UIMZefL^js/$,'$IS: *Qݽ4Cவ[׎ZL6[(B(8(T(ѩS}BNJihPQT© P ZVI$5N2kb^GQ..IxT␴l^C:{Je/u'UxI T͗`\s]-wڵkd{Z-BF(9(M-'ȕt:m|/ %MQB˞aP(BL{{|z;c4Nn> yךcz{sg~yφWB.TeR&3Q,5gYƸcqGՉ4Y+sY|nq6ot86|:Uvg\{6eCQwY`,B@~tZ~4n 7~Qxӓ¬FEdFq :u~4yE5fِV=JIjt\j"M F\ V7U!"him>[>Ǧ#VCw.BT*|oU6! k[l9c.]]ҷW9-gTQjv۪JH#MM(,W['odxٔQf>+ W[q,Su| (_sTDu*eF$UI &广Hlu%"WsQALYGާ/z)S4X<3\KY㥩Ě9RIeKRq, .xDӗl[(_#On=(֬̅㲰twc@ΖdN 6پziYV !* !Bs2MM_ݺ}~--=1UhEysYY7s7B!y/y|? z㧅wr/g+^\tnl|k.e=JQݜn9/"@ϵt( [` ?^O #Y9x}?ZtH7-zK; `Y|‡c%e)-3rLrHgQATD! itKRjNK|9D ֐GKKxYa)4VpGr3hֳyC2Jl?"E.Ke/ 6pcLjp]vϿmu/\'1'*W%ش8aޡ,s}\ ϳ#ou_E瀞^H}hSc^us!=74қYN8E^|'29N1f#t xSBU@xu!H'0 =Q|1ļIfMZ(#U71Oz f\&auyjLsRMyI]V/AE+P=u- ז ߥ<𨒩{'+K4>U,a['kQW Ƙ _6x[c.@ΤvͶm;#$Hzx1N-xC{ Dr :[ o^qlÁ3ЉֹJ{w_[n\to&MFS=Q<v5rLJ%i\R<B+9Ӹ,F٣C4wڳ.ɫ1R9 cIPÉa۷?~੃̇ rԥWZXmQ~dS}@ސs{384(knTް-rAXOԗ~$_N$F u>7B3G rn# b./h_\9L'~&ڙֻ/PAb1t8f.# Mg5Q4Z@,I+΅ں3)UEzPgxcIz@]*˹"]_P} 9)AU""qB%M뷣$]cJuC9?1sַqO> Qi{9FЁ I 3 ?Hi{o,w۪N*IhD VJjv\9dZjVdDQ{aV4/|YI ^Z)tHiPj5ҶUk)rҷI[m3~mO=xcidZ1fWuE'4sv'^z1L8Y7kg[S^H4dP)tYk&w}k՛j:I24?a U z#9;da2d T}&;rOgmR27JcuX]*I5N0;` :N󸠟&;{qآWW.[Z 8+%rBD̠^#F y,6YW.tzzZvTQaQh3mj:\##tXݿv?w˕+W.\)O$ORJF1su9xZ,f>Xlv $X#'hTO&bYlGAsecw2-5NǦ SGc,!<\Pߥk&}?UWgYX1#t*1j' եu0C.U;dZ.} tt4{r? ZeY?].e^>X ˇU+CUmj5yzj}W=qld_ضmp/hq]-G,u[5=?Dr ?iBc,/ІTf(FGpl愒j1{a\' CeҠV^[O}^=o>W-R@.kk֫}ڋAF Fw7O/"p ' À* :y SGK$ or/Z?2t3pl$Lj#F:9c4 5&1ˆ$H2C2FUUr$/~iTVHeS99 NJ"ݼi"a\A_1'*o,Է3vwt+wYu 01{pض1\HυyUQ$ElU?~ussgC!EP%Nb}vY<L%] 9'ہ49Zs+:cȴHre%wDvgcCOv$J&Id1bpv _jBz.e}Q M9.H(KgO{}cEUqzL9@ W&T&2慤"J`0UXʹ*v ־z ]6.٩TR6PN..ۀ=yĜBļZ~eߪtlCPd-F#֎jrgڮ뤝5(pgzT5OJIo~@]nkO!瀦#~ݫJne#݅~[LR@k'}i 9!C(' {s8eNE~0#/*ywTUˬ}@#F4ܺ牃߇r $=F0iEkj<GP^rM8]Ծv}=3&{Y/c8]t(asSΑ7 O΅ì>"B5&_v7" ՟NYGsS|÷OOJD֎ϐ4b^/9 Z&~سͷO}utɎ<`[K}b.I+ʊoZx"@؟a&J[Ig ##?ͽ76_]v9/$JCոpV"aGmek7^tP,E&iy8:pP';ŸjBjhr\O~眹|ιAcNe{[gj Uϔ(ļ<‹z%ٖrlA"C?lWxgqez^I lnxdd݁^+">WLЃ_j`C< 9@; {pq1۸E]yumPA 4SbD֜I9PFH%R]A+Bӂ>(ՖWM}^'% (-n^.R{Qx}irh㘠@ʝD҅HrHzʱa]8Lݸ WvR@^M}IDvQYPZ.Z(uzZ!"e?$m0XUuމy:ybN ]k6"fp:1 ߉^i ŭOZ'_?ǿmqoepT5c@S#5d5)8 %ˎdj9Ϗ<F4w({k7IFT@̳Dy@ɯ8GHݗl%je)zZa {<` CRj^U*$"rBg.fƍj/$ĈC7u6?w^ٛ;g,b!VVC`~IH=."*%Rwn>s3G 2]o~#F%g_O5~Ȋɝey%.!dUw[;niSjN'W %ڷơxREGzzT{-F H(0~߽k;!=ϛ($&shpf?^ZSҖGz蹓֙nջV[7mYKVO= RmKD;`-Zr&rW` d..ů %!Ĺ|bW= U7Z^-R X~ǿ /~Di/prZB# u4b[LjR7~|}xDM?]+TÛ~ʐM]*P L(gf_;/{P+KH6ҋG)LaW;q/qYcPmI`hqon $"Y1^۳ͻ輦?xo<|.T]ksujڽvoMI;.GeFG%إc*J+QѣrZcys4ļjGAto8wºIFZ,a PubW_nEA1}6mٟ5t/%dZǜ Y'.8 KݱrLaRGا[(y9T - `K޵.TZum@{7S5B*t$ņ(#GIK:v&!5H{t%PK|~Abd^n矘y_y;TW"敧1zo2&ZE@c >cy+FGs( mڼms#3o> j@.w&4*9_k~in2dۈ^3*}v}>D|!=?'ૹouNo $*a+Lѭ-_?61G^ rwrܣ}OP<-6q0L"$T,rk "p䏬 w p"$ imdrrxѷN[o4E(U^6V#X% `%8|FuvYNjCj1f  ϋ,-f' ύ>klv9$]VӉOcĈcA1íU-u=ϻ("A꯬+zGk?M^*;J#ds.@P,p>|ӹbE S.gzu%.~Rp vAݫ[:܁waӚn9>T7H&܉{.7٩0a|^Z1A_>])AE'QI[>&9 v&7lfliԻT*d!5؞WWI<+"SA[tuJ**wVW^byg41~8c]tKAΣ9ooz?:cR L˴N1,ծ D(\SOlߧ"A@A8P L[#|dɰ ^7:NSttn#s]~} ^!ׅH m۔"P553GS`/97!}d:Em#dJnHEL=;{,wSڶ7=ju?ӬnBຒgW( X$vyv~Z#"ZyPkvy"y3ג)Qܻ3|3| 97FT.FxK`hz 9(UZ6o}#}-,ōp! _X, %EnGKlݸUb{{N@GT!߽܃O4:B.'n^p?|o(CcasFnԃ0P=LAWjTZ$>V(lcևn:7 &#a}d5`D_. QO0ܷ{m&0ٹymjms{+Z S0&Ųw v.Pey*ljHC`:$ɵwļV~uJ(&'O8xPmj:c% ߾2̷8b9YdR E#9s6Np;c .cp8QB( JơQULk{ ×R C`qmw@ٲC[q}>iU>x¨Ugcl A)Rt O( S]6GG'x}-z-:=Ӊ۵:2+;yp~:o}6&苇ʰ*P4Y^t0uă&N6=3}=} p qͣr\Vj|p*'xW%ݨ%ܩvl-*yl\/%J>9ylv6q""Jz+1b;! ;lnPM[V1V!fu˘W@JPE 0d2L%ҩL2jR:8c1Y|BN)B* l~*NrSeی1eesBBE Lf"Ltk2l2 Gs$ͪ69#"Ȅl׬SW߸Û) /KHHiMͭ=A60tl%nzO]^/ Z<2=AovN+ɯh&F 7M޶۷A@ËQCS_M7+5Š);~(8OAxE ˒u^̄'Ɗc;O^IYԿf]L9LyH"MKR" yl̗BZ>ӱ)-$UOXIC.sgݺu2i\,0qM`O9rwܿ;==5^(rv,P,/J* ;1L4D"LRij*Qܶ6991:`U(|P(l.zxF1k覙L&D"Huuw^EHuϛ=<<OϞ>AEF\_ :|_ΘcLMMOMMsfWW{BG9Uզd: HlAOswRRd(<%Wy@`מ6yL^:m7>,Hn$;$,EVXWW͎V+ӵ+ٌv+>ȴzvVf҃d&$vOtwu*V(w&dޑw= <; >8G 66v0ni ZzYe7ʼOx_W2 yxZ6Krfe^;o|p˺9s~$_Il@og8">?EU^:x-['zy [o3ˎRij_uɘnt8hN\W2gN(nlԇ:;-9$,ӜٛfmRM{$]_E"wCz>GGw_~C#Oc}!}!nݐW@09$\0d`yFuѥ#_|u/ۙ7;pl-O"F&ofrh猁n@;N{LY`Hv#03 'qP'߇J]f_xn۾eMgs4 fk^{gõ6Wjoޣ,I|gϽVNj?]PfBtBp .ÛEldD,]Ru2f'Oo(7<\xduڶmp/CCۣ]vpc U;rO,jY^8axD1t:=9226 ]%Sx⩏J&dN~¹?ԝ'zd?t kO%c 8MiMg^|wʟXEp͜ڈ4싯 ܴe07[g?.]\sYBV\`IvS=b5Iy4`T* 3ܹcOyp||Ji'W=Ml=^{-SҴҹ'vqy.`^k]F_y4#^ӀBR pbDR>7 e1χlsoߙZ`;vعk/nܸym`]w إK,߹JY `ÊYtNq> 3X&C_j="@r/1WyΝK۶n߹{7tMOdB3h685tڟhweWo޼{~ITalr#(RЕ!Bxh sу.K2+Gы.E_rrٗR%FRϣHg񛛶Y<{/ߠ9p8_;o}ż#lxsW•y軿oǁJiaܣoؽ{מ>x|bVyvy6y= g.E& ՔPQZGLpt:,>##_YIܹLnٲgddt[OBH. w":CS7k{T._xlM;GGǶ$1Z1t*d2p{|bPJ/ZW"Y{6lUD'g W)b[6kl;l%ƀܰ~~ſSg?sG^7I{i峖U'KPɓ{AA7 T_Mϯ]tqڵ<>F0ޤV 8ڣx`7Q^:>!֍+M '$2)\NMZܔ6D+&@lw#q00mJ߽sġ_.!$q!؄h)c8ˍxqn$b%T-//>}/[,eMC&3}j-I IӀ*]:Q4~aY%?|Q^tZv׿fRG yjWk#ſ[[pAʼ1xm vBMzIA&1Ùؐ=!|hKo  `ڕgBjs1Ơil}ꩭ^719\kי><3=umyyiJcHR3L޼'W7?^zLNĩm">gIK*肑 7'Q׿yQ6jyr9 z5Ak>p| .+tk)HvCQ߼`_u8M ) 3TݦxcfLomܼy4J^uw(x(Km̿I~ B}@Vrٙ鋅mĨJ"yP@ƲԽz[I &d&&&TPc)f߸qîdÎic"f̃LJ&f'JgM+'iv呦ܙ%Bz]mB:C{~mx|i}`/O/i0wTJ̺yjy器1ρޛʃd)*z9~ +ӼoZpz~uJTkM"مt"ci&9VlD#ȯ=p^02OdV {?oF|6^Ble۲ޞzoDovaA{?9S-ܣ;R6](n'Rٔ?ĝKyҕJ6vd.M\%{$iYW_=yn!ّL8v*McZ~m/x{lraE-:oh ¹ԓ3T&2(C9qۥ4H=-x=E4iZRu]'Tz.0uw$~U4ͥC2A䶂njpMH5J~NFS^n/Ǔcb_0wyGmV*FZVzp@Lr|e a i>}g-:pa>t=A=ElPj!۪]*_:i)"1Cv_%axJ}?G GIx{@Vvc Ї,IrjM{Qp8+GըS Q@O!8eV2͵>_Dk-u?˸_kbی]8nB܁~35DP.Q{_ܸd^9q8p 1G۸*Wwt }^T5޽a/qD1ɲJyЕ:)~CyyCMOH[VŘ{}vX sg%^HR)Md3I 8Wor?eB\g`u&F%ARrRnvx C& 1qk2.,П#c|Х<=u|Zs1z ]Sb§ؠ25w^*KZ)#-eUjBv-`wc ICŀj))u[~xiYEj5$,;aЪ~?eJiG煮fpIn"ĉ8OvF峣?-}L)?Ch%{ڷSU7R:uM*%f߼b}ͺpXX|oʃIƗgy=_]} oA1" xo+\n &lS^q=+.lh֝r/@b8ZXSjafɪؖ]" ΎiD8W 5u)6-1s М~_dJq2߿m]-]yxy)[Kp/ `-OFǵI>Z]SGR8?@KAWdtp4,UKE,KAW?*p"n]zك}0b)ߍtշf%=n(- %{7\yMKkƽ.Cq jW}\Y.U!4MC~uK6 薵c OT Գ[ɓ7/W.w)+p`;G#?1]STuH߾8)}o%ZSs>,<wT1{{MAWılŤee4WB_@́ Tg%D[K u cRL #4znStg n̲_Nx<>Fm_> Wzd*/-s.;ߛ1ل7}R҉wm[R"]g d؇p8],Pt:Sry ܒ"l{/H6: LRN\b4d5R3k CW4Id^{Hdpc"^P0DxX6[!B>;SݟWC8`νe{9&n;bV u_z|RL2FNplGS8v!zp']7JRZf`_C:9LV h ׋ IDAT]+zקԵ󕏈WRD`:wx,}G|DX;]W?q U(-a̳yp6>w({ɇCny(cd򫿟 oߣҕW!|537k$kUR4i(NSu~Q^9mEc @@`*ӥggX5p8ê}c_*@WV-g~=0>[Ig`,Jr} U)[ᛅctH*Ƌ0ʰabo?eC8O"ٯ԰Ii+)EF\f+n^2/괌`R8٘O|FzM[346OIӁrU.1O./Ypqw9Jݖ'ݶ|?[( x%G8/Yyek > )'?!!ڦ͛sG>z~]nN&&WOD6 V)Y׺uF)Kuš*5/*9bK'p{`Kd9ؾ*NbNNuB>q<56m0wFҹŏM'!+R~oG qpQ寮{Dk+]`lf(!7~=55u .87ŧ.K$C5 uk $>J!M榭'ޫ|rRe G{%'Nmm P,? ?0ލWppλ_ =]bّ8e4 ׳Kh;0浅(>/XC61cL冿~+;G'6/; y'JJJJJJJ]!U1-K*g?Ui"'} s:HyX6' /:Oz\ʩ6~dgn@йRB|xP[<l:;=j?)G;!,Azp#T*]P_]:{Je.qԜqB- /k|zmÅ=sY/S܆!z .W}ɼxpD iKŬ '͏V\0 (KR?ēH:yY 0,Fd߭l ym&:1膱y֧Uk]srp^N녒)nJb^;-Vu{$]c yQt4V(}8Cg q9Ua}yEHE:>] u_w76+ךлY:7^~ Е-2qI:Ho6-5|v`-nE2B6m|țoLߛ߮]| w l`fJJJJJJJ42mm[wo_7o̼8_Cƞ;7y7f}#(7z"(X~7O1d@uPy@*J0) so[eoAkbyBfkqՋKóxa/]III z,.ثoZ7]O߳,9y]>9Ǘ 7l[G+*Խ7=wD_I|jmtSF֙򉻷{F|{<@aB.zu"ۯXm(0c>&oS42B=t6?~v1/K*B[_j"y@ME(u@ZWs#ϋTC PPs>yg90g/eC=k<CDᎵ"ޝnx3JX:aܦubD[i:z|c$MbsԠ̉d= :/i6l{{6ZmEQv;ʣސ24ei$HU?A|s"./ z'I3/g2݄MBQv<(yg=Vw#6C_ړ?ݻ}f"?8dZdf-?qI@|sD0F=m:O4BF*,JŤ*CÕE{ np"sšD0.C^1\`|W3QWZ.M*ef]rb5%eW .YoW&lxuipد( ͔喰a!Q߹;2vt&=IE@m]W嶆yM|fK:W&p珛74pZ_{ixXKe$ɑL*#&"ƙb#DRpZ&YaԲ`Z2-U*T)"/-G[t6 Zn>qX)<p.VO׷&C{9׼WΚN}~|6q! +W\Cb8>@"2hESpnj?8{[wL˅»W/~wB?dYyK\۾}#iXz{$`][hCly; ~mHC{_7nO>RYƗz$jWq@Q`LV8+ t?֏7I5=%0iC: Cg:1`:t!D#=Q0J@lbeªL+EV*hT`JrU%viuW(1c߸Yl6I|zSuC=0M@zfʺ{3KG0 V u`mO_zy8p!i7@ùs#~nF*˲0 mJ?|zjO>'"oWgXT~}% 6 ct_2lM;`YNB|p%0)0to}y絳9,|cqtMUURSGEi:Bx.5LZK hЉNCui  ` RQؖ 6-ؕ2LBM˪ABlr^r1]~eUa\YIF!]duϞx||~- ]X&7n<)/yb]u:\0~'7#COM6 )E}z޷oύ+sgaA'5_t%~fqSt_RK%,3ajC2Q (ZT+zEHp?<&s*S9|[z~E?މ_w ޾<{vmΟ;^ږJ! :[:ppaq28!t:=7^M&nX`Lt]$Zj#۲mܝѣ58_){xɾD|]P< 399lv3΀yȂA@0gw03?oIBII⤤Z$^8'Ԏz%+B:.sq0_2@=lɼ}K/〈^2LÁΑ T?b/d&¾rxa>N=%7X;ypNO|囯S[7M3 ` `T㶌iOMlL&ug""ݻMرd~Hqlf=YqKsߦ'IIO\E4}nlmOR,% N#?|O8~ o1u^;#OdzQ̇?-ptFߩCDVxkT3r) a8gd'R~oM%!cU1  v{j(7α7ONO/|ܝ'2s8V^&6o#JyGwde%Q` ;GG0$b"4 p<|.Be\2 {y2(?J3OǽهSK:$f:aWԪLjPQ9Ȥ7dӖ3!wCk:ph3{7n/S[$|ㅅ+.].\" 8neoL߼KWok(qGta|7W6++[$ݧ}F9sHݵz P㝒RU q^K<ݟ5 چL?<2MQwii/!~hWFǵMO*Rk+*9Odh;W?]|q8UN{_o0 qpx=.]H`1XN\f|C#?ؼu>{b.|zw?ȗˋpC05̻?(1>swЁ#c =Dem\GykV=Q(vpyyre(L8cvR8Fb}P_Lq۹E](ժVPp2AlK/'?h4w\fSGP~΢-ti>hgo'G$>K4 XY_UE9#o{rN{ܱy# ߂63_\o?#84KE&y0{@PB>,,bU{䖒Q[yYR*Jp~%8w4x$)Q;%:͍k Į>Ig]j÷}'J9Ÿ0.Kճk>YYyrfRE];W9>uǺsqD>dbps[7qӟhҔ!b;s1q0@ cԉ^ucR׍I#z)[?R)Uέ-OJ%p3p!I΁oLd{yEO1A|)ٱM69rOG@׍.N`!p-yw[ֶlV*)>$,Gdb{ۢ\@?f-+ ZӖ^0TXsOVNlڦ '%]7f7?;c&V: F^ZL߹t:=7|o-Tӌ4$oO郮y҉>4]t`LҞ[T*'WV޿ZTZGxxgTzFQ PLٴi|S;< cKi]0YU[TPUK~Ȳs:G~'VX\;- Vz"Ik86 k]z^*n]_T|M5ԍ6.j8}3Wϗ=}@;ґ̯= BJΗN>#8tY.D._;;s]O 1 |40VKr#a@JӴT.\.''-R9VX;:x/,, wXVF]v4aO@z[n7 {`!y=pw|̣h7Bm2  zOX(w(1a\ n^Etyfρkڸm|{&M#X~vÉ㞋]!9̗v;wos !p3ބ- f8BL.'&62˗zJ\~^=ss̳.yE+7,7tY eJmٲc[OmxftlLktzv=0npl[rl?`f#l!u%$,uIb!uyg8Wzr%_|50wӺ=3e]MI:)VKv9diwHo.K,&flO ޷ZfQϽ׼RR d/fsC/Nl،Jfݻ]͊YZZO->}e\nt.0R]#f $ 0LtQ|MqzDwCP젂y{s˶KKڰIzƳ׺$:~(vIڍeDIG!݆NsgZ~ؕ ]=A7~hFjb^U/@/ê'ݟ.Nk_wA57]0mM7o_̽!!:igA0$81;y?gB8\K< ٻ ]<=Ypgc@\-p]s9הA ޱy"zEy`=m JȗJX[WN$N[Ogd|;v5)ܡ\`^lހ,PB~2ax<"֪G]浅EŽh({7<>3^[e!4znfQ,)Kqƒ%9tX]$>brD!{+p D y7b8u^N~8O`C~}=k$nM kV3m si&JQ3+%jC!no/Ag. -[ kZ>Gw0WV2PV\KsW mZI]%IaR\t˺JN{(u;ڝtv·rܦ׎K"ws \C݇;ekpFCy8׳--5dk QryxYT=-&X=x`&g"E&ioqKqKҮ1()) q+% q s.ks>$;γ2_ۿ;22k4\&7R{\,;a`.Fmg5{; w={< וWo# zRX_ IRQ[qK\ϫUŪ>IX'$ id WGsN=̜ZȻ4u p.zϳ2/m!d3oΣcڛsw96Qe!0ߐU֨![e;[sޚ!0osAwȲKKY}`*)))))))uYнʒ9H`5M/%Ķ]wΓerэ^ܟөIJ>[D{sPx00 <.Gwԇl\ ғVG{==0ws׳;seoU%:1Q\$1Y꣤ԊPZsu?PՍ><=gHq:}5[P{PҨ-h`c.цYp[S`^l$@W$>`[z 條hR)o5Rw%TF\Hu2=_~ #EmdF7ܵU炶KMCs>GٛgT E:xrwTy;rCݣ  L7AIkzx&$5 j\뢮sojUIR&{ŐJ<=O Oܻtf `jv<`nߞU픭-HbNmܣZ^ͱsX*X~vrp@]̦?8.WRDOzB.9^|+cco9I@:y7iee`ևucHz&U[(^=(s vlpfX\Z<: 9w{r`tKS νQҮo]ܮÁ@O=O=Mӳe[`U6%R{y([js)I!@l͗hk~C1}J 28CUJayy&tI└1Hb%wt@}Sȳ༞*Xt̽ww܇ wd{rQ$ˢl1zrKG]р"wo!i8֧`Ǻ0+Zz}%QRRJZt{S)k][w<)GE={ @}A0ڥVVJrVs恅(nk3QzMֳw̅H{0h_^Y,KO]ZEW4ĵ.q=V())))vC,Rg;[Lvހ:y7m4J,z?({ InC<2|Q~չͻ[#])iJr @qϕV=pOmڴ巩`^9JY[NRsE.WGBzwwuK{k>XUaāpe ˶l˲iR)/Lk* wJuc$^)iH^}z,êyfgHXirXi{Ω^Y,vcj&[^VRۆl-ķ:qQp܎7:?e8phĝ*E+f)_)W+zbRR.L*UJb\.,XV_zo' ȱ7k]xv?'MCq:)URzeªA{ϵ/ -EqM"UgYP{O\b*+!Unloܱfl{p' z'*fTRi\,JT[Y2mlfٴm%J7&p _].…s1]=GV=܋^g}nt|˄hcnxsD`.=nTp&I;.߷FQr F,vs1FmbTɗʅR\*V*rѶmfv̴,2ea*u8ۻ$IR\듴w,qKs\@1묤KACqm#np`-7Mgpv߮;jk syH`90JMImR,WVV,=m fYRlx3[u+ՉCzQ}ϓL;5<2{<}ƍ_Y5`  qלoϨuJJJJJJJJJJJ=R=@'§'9a#۶x-΍))ZLi F;l +`ۯdsAt_<2|ױ ;8j*))))))))))%NAZ[n=BmDZ~w&({t0z.Ы(;@;`؎= {QwW2죳wo>Ni-58^s<)&%%%%%*+)%AI]&N* Љo>O=_# 5 I7wi gUSev'!; phyz6=0wKe6{wSjMWb' $)Iڍ׺$ nX]c yQRRRRjMxS)q/n4́((np[\rV]({(B[,'0Ghujzjs./kյ98rpjO^}"T\Ťa L{7%ɫRKj$IR{ٟΦ&j˨Aob Cy(!0{`_\ <;V[Q!΁A{b0yssYR'j+rZ$^ʇL] msdg 'yK@#e>G[0-t]0{QP ^wh02 /C#U MIIIIIIIII U]Lg7niJ%L4t:r8Fڛ֠[b0hoV[jCQam@y$sxQ@n|P(g;!0@ynB81)3()))))KIW[0R3Jbk1iyuۍ{>g펉_0ebii{ʆwٻs{f񖋓(5hRRRRRRRRRRR.h;w{U3 4ڣ`a C5(؛B W6M0vn҃ [5ak%Sf"vPjO4' so$(uI[%ժV%%%%To5yft|aYJɤv &lb(r TL֐-A{5ڐiusaܷH9 |R\RoR$c|S\ϫU%>JJJJJ(̃Γqd; #RcZ].hp+\z_$C쑶FC}g^ ڼ$G ;5]m?-"SRRRRRRRRRR kg&R!jۡM0w֨ WgRЍvko֐[` ؎=N{;/ՇzME@WRRRRR$6)))SUϹ\ߴeˎWbU`ݔ){[b,3qXY 5-ķU(@n7-AwCjolP 1`QQMIIIIIJbO %$(ˤէ fMtcCC]'9\Ά4 0ol~_Fmmu8oM0ڛW G s%Au5NW,ϭEf{bHu TmZc=[%Slv2lI]0:y`aPPyt)ܻڼ߫[]בu]mEWQ@b%xWsok%%%%%Γčnt 64MlhwnߞU픭-De (gs p{}0lDT)trFj Co wERCE80w%%%%%%%%%%={l.2ߛMynkyH e%n =Vo)s###CcR^yЕFI}kz)g$yeǮ5w{HH(J|z7>B7PB" xaݞ]3;]+ٕUczfv֖ɪg2OߛA({BGDus>Bou&=~BYwuX~vq^|sׅiw޷7ՅNcF'  f tn,.7%  !4d+2@縺tQ~}$˵59jD7uy鯝ahk\Ws/Q~W6NA ˛NM.%|Y7i;7Ͽ-vcr3 z}>a>v:=0mԉ_[]8ۨ)֮aTXrx3p w0)YTk:\IrRQ. {&YY7 u fP7;-./dYz'V_~V=0 ?>ǵ :=N-̭3 s-1pã껢~%Òěf&qM*_c9ĵ3,dz E qỲ#qH Gs8puClv oUBWs˟k~^a>y."V<ۯک0Q'>èoNW l{|ߧnuO'ˠjk~.a~ s v<|^¼:ƄgQMNbWмo^I]}a;!o19 W*j͛I˯l)Ӎ7&tCU] @8p3,bʵAW>4t*䌱 ,.1)ɫc 6`d="6O)/P|O棽w# ڰ{g z*=)+:3{za`"gH2)s8x cl8G0r\~a۴q 8hp ek,_ IDAT )¶nku3B1G`R̻ *T|6L7^w;t)|y"bs"v]v], dR-6m9H,Ĭg9\0́zP\ a%Siq09oc@I}qyCjs*{UxH/rPuՉ{FA^-^XO ?(?ӵ3Y~zzQ>kcY@`Rnl;[<u|=?y*]__D$Y%$Yi%D},"]/ Y͍\X?^U?\-Gvl-r4M,I4Od3g^oEa;EYОwpM$ۛF)] u%sGߺ7 JVV;AB I$Mv$Yn&ol*A?{w?\v]_4C Ɗdg4I,MN$=x#My^ʾ?7 g v4egea- 4Ð5`li.96^H"8~lwO^G?>/De1 3Q5=9̏>M{x4V .36殪mZe` dԕ/;Q$@}jOa>-tN 0%`qw`H\plw{0 r}4][ Ʋ,x`繅}Y}!$4iO$i/ N$diOi'K~ hk=OtdY?x7 xyު -˾50X\:n-ZLB<-ŭ$,I'y4'i֏ xoi܎ ! Be߲W;[[ a绷[|o\ -x̎t,r<>ȲT<,,eqKG 4YIBYqqɶ^lի]  ۞미6+ Xp9MxR\v.>=\6Y3!|̖yB B8*WVnhEHb)Ti$A~G'E$,"툎8p;\i٬Mχ׃1-ap?x`o![|Ysq,]bɛa57(2S4fxh=x x {~>tEے^?辰'tlb/e^~SfzdV>>n}\g6KpHSY:N~Gq}ݻ|@ +bmy¼:?8?\}va>~:}03S*+N9=QF<(RD1`\Y!=q\s? w燞5\ \qqgCK!s)2e.ifqQIQ&qG8I"YiL<<˲,FYN2@Qelk5Lp 2 CByqxc=k:z;;.+ߜ3; E.s)$D<,ʓ4I$J[G64KxNg@CupVxq\9.cqAp]7p=/t=yN຾p28 ;q$B"yii&U^8\Lzt/W'Iw{s{o+?WG9i\w2̢*+4(n|ӯk/}y~xۏu[n=p\';3ƴGտ;'a^^':^kFt?0gZBBH)%cs^ifo֪ Stf;@-mIQTiC "r,Y(*73;Iss`>TM!cR! 373m@E•7LE"Q1vP_ !^V]1Tp3Zg@jdg9dhBDψM{.zesE[UD<֦(ϕ=䥝)wsRrciHqFab1j-9sY6QĢ=^G݋>/L9=>s#dYfYhٖa1`t(^դU֏);',*;e5sχϣi%̕mP FiFpKU:R{8˴c{*PߕDVf),f^<9&YN Eww M!@ )r!& 4Se%r[i];lt/RG}yn̓aT:ϵm. !G?z#T,MS;/}8o?{;a#Xr';.8jIuzʵRC HVsE.D'Bi 귺q[+}_tוBC|ׅ29?W J̨b@S}B0@ 3yMAji.h( AQ.\Ƽ`9¶qo\bg`ֶ mvm׼nc=L݌\;AćƆbfvַ,,M+ngeksyۻΪL (O҄xDSnB2sƦQϠۼjgJ4*[_f|(3tzzZ:E㵽J erL7l*0YiAbQ oS*}VZqӡ!Z~ɼVfMN7WtO v-Y@1OWzR;u\*68wfis!fvը?soss`ssS6 oݾť[ͅ0  |o2,/= Za^'Fw ScÁ*ȑy<Yy%i'IP:7}߽ͅ;=cu|ZxuX]u)$s=WsW?)(.UV6Aff3MB3Ӊ岛k険ꘪDPm3C~6ק6h ^ ]@B,2EZԳ좌zE-uvַm8ڬp2Z2y*݈0nTUJdZAuZazx*lvVYO727>8IU0ل9dk[E,iZOoU6= IPo w0dxL|ׅVVg|SL]Kݱaҍ&Mn֌go.'ELZ9y;sR|Y8爒r?@MH˪5&QfL#oq̪rgiy֣wޝ;wrUk7I-5 ,M,cgQeQĽ(Jz8^nizYNyC{/_>;:<_{[oAyvH0ǒq#7݃1) ȟU@̴R u^0[xԢM5/wЛ<}Eg2Z3 VE% ׿*m_u)m#rqJf)]fc=>B613-^օz]H8/D7xQegYdTfgLo^%e7L;nV[V׬ȳӳU*VUf.BƉZb/Q1Jq>kyiq)Ҭ,wiy98F t=kMUFo{O?o,aӋr. v;u8Wk%U3'=cQ&X۶vvv׿C9xa>º2ibmz.LUhО-ʫh˼Z&L{{ll66m.1B=)TCUif{>>Wis]\8+|DUxT=mK)m93nʾz]]5Ӌ:ò6GUV_&A\5w0-UJN?KYLf} n >zRS?}?^X\/,M)wZNnYNZ0mŅ5֦@KqgO~;cO9)ӦT^9ӵ1diX˵4may^CYSV%ept?k;L% =89lz%y F/xo"^L.P Q yut-PJ}{Џg*L6[Č~^)fk}0K,kYm6;N+dU3o[?*;f`t!զUqٖ.׾TgRY4 wUӼ*ms1`ٶ=%Ϯ3mTM<阏b˗/>i;?ѿ{ % R nM2gy !h+zSۢ73J QM-ŃAW,I{y~|ÞGօM⹔25DG. U¬bauVo45{]&oϥWz{Ufg[ܷtݫ2uaciƶnw3nuތϗekݶ@o @ue͞H7LGleu[*==\u*ڮ NoQwzʖªi{ֳf[dt`ف]yV_o}߆Pf,rLagWdo>{Bd(G(Jyrf% nmm}{{?0_g~.iY~(O){u//n; ڳ_|;!LYU$ )vYkSV 8˳Tܪ2Yea9Tf XUR=ݫ_;B]SY㴰Y{ձtj}~٘ƨ>m\% u%MߧAau|ڳu>jۿqt調'`YO>G?mbo4aa9a94[yq8zOgϞ}! oZ1>מ>:Fg]Q1oӧ_ӭ[w9Ǟ<UХ~)+UL1 ~ң;\S$M>vz*g^ Z${~{qywq)&)6eeDh]Xxu\!ϲ}0`&c ,j<6zuLuwkڇe۶fysYNv;nǯ{12byJY^Kgayu(/U8ƾd# Ah4°8ò ppt;?'/^|BPs%;(FnWMml6VMa|kyebyiז/מtwsm P>Ɯn]7Dylv]wBW󙛺OK!΀(/_RUE G혾yϓs{9ujuYH-ua_w;'>jngۻ]^\&3;e3@&#Ylmp' `9h4FW6yHNn 7+Ng?۝/QE%(>,m`{mFTRp{~(}ח.LD6sڳi(+ANPzUst܆<6Anns]ЎGGy2->_mQs,n䫍+0.0g`lbع7n:\GOWìqZ iҽ1@JMb"K!D B$ K:|B4{Y9zM$M˜M+8QՕ KKT* /V6s/0Ju1 ϳgj=Ea# 6oiWI]Ng 1l4J}{G(8n c! ~rgQrCu  Q%жMj,qoowiF\5v3 04K?g_|/ʾ\5V^s5i4Qtg Fp[*a^ iUawpn},Q6PFV1bFIgl.4f` ^qh!Ã_iKH⟭{AAAdsh5Rʴwq|8Zcv{O/gYzR+adz?ӈ:Lq.sA޲C.+/@Ok!`\nlg(lHެrp}>nS]81= ߺCs˞k>)aƯL&onnj{WZ&qOmuEIU\c`^[j8{<99y6*.#Ĺ>J/   n8t`\(Ĺ99W@[k/ !z]?RB s <~8TBHoFA9.l݃n t ~w!j]ޜ]gp!\ 8Oq|x:,l{ꧻvRy%)lt'ce{Uw  k}1 Zy_}_0&Bv{;G^{}=mQb\C/9ce   5,]a R_X5qW"B(귢hu(NRo^8Q翹w_<a>~r,/GYIrC`N]OM   sqJD)jѷcs:qݭn߹`J$V1EG<à:>>~qyU R@W"6"AAAf\@WFR9u|zlu:WVWHa80sqqOvE:`on67VN7  xMOӄP]˪v7s:nu~ˎ ^kXnBcH$:::R¤87{]+}\}ѧuz   ^Ry*t/9X\y'=pnRuO qϸ5|RW]0(oZGk(ټuWQU4MLAAkuo*(CPL>:ZN8Mi  1 4=@9#` i s   . 藃AGDywvw>H3>v >{3w-~7(*ٚh%  `H%fiW>{τcZW;|s=}y}j;$   .˰H,VpNPxC@E)UŀFmB۪Y:AAA\$/}.q%1} 6%]{ tU ~G-siD &0'NAA1GcN(Ÿ}Zv}_7 t_)ܼ   $Я]ٖ:q&ŵ0MWf$   . WM}87anԕ8׷X qNAAq%@z)ԾMڮ.57'   >( Mm g#   .דYpAAAW דHAAA\C?/\ow;IENDB`PKI0Dasimpy-3.0.4/_static/plus.pngPNG  IHDR &q pHYs  tIME 1l9tEXtComment̖RIDATcz(BpipPc |IENDB`PKh0Dݾ'\\ simpy-3.0.4/_static/pygments.css.highlight .hll { background-color: #ffffcc } .highlight { background: #f0f0f0; } .highlight .c { color: #60a0b0; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #FF0000 } /* Error */ .highlight .k { color: #007020; font-weight: bold } /* Keyword */ .highlight .o { color: #666666 } /* Operator */ .highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #007020 } /* Comment.Preproc */ .highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ .highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gt { color: #0044DD } /* Generic.Traceback */ .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #007020 } /* Keyword.Pseudo */ .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #902000 } /* Keyword.Type */ .highlight .m { color: #40a070 } /* Literal.Number */ .highlight .s { color: #4070a0 } /* Literal.String */ .highlight .na { color: #4070a0 } /* Name.Attribute */ .highlight .nb { color: #007020 } /* Name.Builtin */ .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ .highlight .no { color: #60add5 } /* Name.Constant */ .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ .highlight .ne { color: #007020 } /* Name.Exception */ .highlight .nf { color: #06287e } /* Name.Function */ .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #bb60d5 } /* Name.Variable */ .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mf { color: #40a070 } /* Literal.Number.Float */ .highlight .mh { color: #40a070 } /* Literal.Number.Hex */ .highlight .mi { color: #40a070 } /* Literal.Number.Integer */ .highlight .mo { color: #40a070 } /* Literal.Number.Oct */ .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ .highlight .sc { color: #4070a0 } /* Literal.String.Char */ .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ .highlight .sx { color: #c65d09 } /* Literal.String.Other */ .highlight .sr { color: #235388 } /* Literal.String.Regex */ .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ .highlight .ss { color: #517918 } /* Literal.String.Symbol */ .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ .highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */PKI0DDUkksimpy-3.0.4/_static/up.pngPNG  IHDRasRGBbKGDC pHYs B(xtIME!.<̓EIDAT8͓NABP\EG{%<|xc  cr6@t;b$;3&)h1!﫳Hzz@=)p 3۵e2/ߴ ( %^ND^ }3H1DoǪISFұ?, G`{v^X[b]&HC3{:sO& ?,[eL#IENDB`PKFEDVR>>simpy-3.0.4/_static/rtd.css/* * rtd.css * ~~~~~~~~~~~~~~~ * * Sphinx stylesheet -- sphinxdoc theme. Originally created by * Armin Ronacher for Werkzeug. * * Customized for ReadTheDocs by Eric Pierce & Eric Holscher * * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /* RTD colors * light blue: #e8ecef * medium blue: #8ca1af * dark blue: #465158 * dark grey: #444444 * * white hover: #d1d9df; * medium blue hover: #697983; * green highlight: #8ecc4c * light blue (project bar): #e8ecef */ @import url("basic.css"); /* PAGE LAYOUT -------------------------------------------------------------- */ body { font: 100%/1.5 "ff-meta-web-pro-1","ff-meta-web-pro-2",Arial,"Helvetica Neue",sans-serif; text-align: center; color: black; background-color: #465158; padding: 0; margin: 0; } div.document { text-align: left; background-color: #e8ecef; } div.bodywrapper { background-color: #ffffff; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; margin: 0 0 0 16em; } div.body { margin: 0; padding: 0.5em 1.3em; min-width: 20em; } div.related { font-size: 1em; background-color: #465158; } div.documentwrapper { float: left; width: 100%; background-color: #e8ecef; } /* HEADINGS --------------------------------------------------------------- */ h1 { margin: 0; padding: 0.7em 0 0.3em 0; font-size: 1.5em; line-height: 1.15; color: #111; clear: both; } h2 { margin: 2em 0 0.2em 0; font-size: 1.35em; padding: 0; color: #465158; } h3 { margin: 1em 0 -0.3em 0; font-size: 1.2em; color: #6c818f; } div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a { color: black; } h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { display: none; margin: 0 0 0 0.3em; padding: 0 0.2em 0 0.2em; color: #aaa !important; } h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { display: inline; } h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, h5 a.anchor:hover, h6 a.anchor:hover { color: #777; background-color: #eee; } /* LINKS ------------------------------------------------------------------ */ /* Normal links get a pseudo-underline */ a { color: #444; text-decoration: none; border-bottom: 1px solid #ccc; } /* Links in sidebar, TOC, index trees and tables have no underline */ .sphinxsidebar a, .toctree-wrapper a, .indextable a, #indices-and-tables a { color: #444; text-decoration: none; /* border-bottom: none; */ } /* Search box size */ div.sphinxsidebar #searchbox input[type="submit"] { width: 50px; } /* Most links get an underline-effect when hovered */ a:hover, div.toctree-wrapper a:hover, .indextable a:hover, #indices-and-tables a:hover { color: #111; text-decoration: none; border-bottom: 1px solid #111; } /* Footer links */ div.footer a { color: #86989B; text-decoration: none; border: none; } div.footer a:hover { color: #a6b8bb; text-decoration: underline; border: none; } /* Permalink anchor (subtle grey with a red hover) */ div.body a.headerlink { color: #ccc; font-size: 1em; margin-left: 6px; padding: 0 4px 0 4px; text-decoration: none; border: none; } div.body a.headerlink:hover { color: #c60f0f; border: none; } /* NAVIGATION BAR --------------------------------------------------------- */ div.related ul { height: 2.5em; } div.related ul li { margin: 0; padding: 0.65em 0; float: left; display: block; color: white; /* For the >> separators */ font-size: 0.8em; } div.related ul li.right { float: right; margin-right: 5px; color: transparent; /* Hide the | separators */ } /* "Breadcrumb" links in nav bar */ div.related ul li a { order: none; background-color: inherit; font-weight: bold; margin: 6px 0 6px 4px; line-height: 1.75em; color: #ffffff; padding: 0.4em 0.8em; border: none; border-radius: 3px; } /* previous / next / modules / index links look more like buttons */ div.related ul li.right a { margin: 0.375em 0; background-color: #697983; text-shadow: 0 1px rgba(0, 0, 0, 0.5); border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; } /* All navbar links light up as buttons when hovered */ div.related ul li a:hover { background-color: #8ca1af; color: #ffffff; text-decoration: none; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; } /* Take extra precautions for tt within links */ a tt, div.related ul li a tt { background: inherit !important; color: inherit !important; } /* SIDEBAR ---------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 0; } div.sphinxsidebar { margin: 0; margin-left: -100%; float: left; top: 3em; left: 0; padding: 0 1em; width: 14em; font-size: 1em; text-align: left; background-color: #e8ecef; } div.sphinxsidebar img { max-width: 12em; } div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p.logo { margin: 1.2em 0 0.3em 0; font-size: 1em; padding: 0; color: #222222; font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; } div.sphinxsidebar h3 a { color: #444444; } div.sphinxsidebar ul, div.sphinxsidebar p { margin-top: 0; padding-left: 0; line-height: 130%; background-color: #e8ecef; } /* No bullets for nested lists, but a little extra indentation */ div.sphinxsidebar ul ul { list-style-type: none; margin-left: 1.5em; padding: 0; } /* A little top/bottom padding to prevent adjacent links' borders * from overlapping each other */ div.sphinxsidebar ul li { padding: 1px 0; } /* A little left-padding to make these align with the ULs */ div.sphinxsidebar p.topless { padding-left: 0 0 0 1em; } /* Make these into hidden one-liners */ div.sphinxsidebar ul li, div.sphinxsidebar p.topless { white-space: nowrap; overflow: hidden; } /* ...which become visible when hovered */ div.sphinxsidebar ul li:hover, div.sphinxsidebar p.topless:hover { overflow: visible; } /* Search text box and "Go" button */ #searchbox { margin-top: 2em; margin-bottom: 1em; background: #ddd; padding: 0.5em; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; } #searchbox h3 { margin-top: 0; } /* Make search box and button abut and have a border */ input, div.sphinxsidebar input { border: 1px solid #999; float: left; } /* Search textbox */ input[type="text"] { margin: 0; padding: 0 3px; height: 20px; width: 144px; border-top-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; } /* Search button */ input[type="submit"] { margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ height: 22px; color: #444; background-color: #e8ecef; padding: 1px 4px; font-weight: bold; border-top-right-radius: 3px; border-bottom-right-radius: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; } input[type="submit"]:hover { color: #ffffff; background-color: #8ecc4c; } div.sphinxsidebar p.searchtip { clear: both; padding: 0.5em 0 0 0; background: #ddd; color: #666; font-size: 0.9em; } /* Sidebar links are unusual */ div.sphinxsidebar li a, div.sphinxsidebar p a { background: #e8ecef; /* In case links overlap main content */ border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border: 1px solid transparent; /* To prevent things jumping around on hover */ padding: 0 5px 0 5px; } div.sphinxsidebar li a:hover, div.sphinxsidebar p a:hover { color: #111; text-decoration: none; border: 1px solid #888; } div.sphinxsidebar p.logo a { border: 0; } /* Tweak any link appearing in a heading */ div.sphinxsidebar h3 a { } /* OTHER STUFF ------------------------------------------------------------ */ cite, code, tt { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-size: 0.95em; letter-spacing: 0.01em; } tt { background-color: #f2f2f2; color: #444; } tt.descname, tt.descclassname, tt.xref { border: 0; } hr { border: 1px solid #abc; margin: 2em; } pre, #_fontwidthtest { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; margin: 1em 2em; font-size: 0.95em; letter-spacing: 0.015em; line-height: 120%; padding: 0.5em; border: 1px solid #ccc; background-color: #eee; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; } pre a { color: inherit; text-decoration: underline; } td.linenos pre { margin: 1em 0em; } td.code pre { margin: 1em 0em; } div.quotebar { background-color: #f8f8f8; max-width: 250px; float: right; padding: 2px 7px; border: 1px solid #ccc; } div.topic { background-color: #f8f8f8; } table { border-collapse: collapse; margin: 0 -0.5em 0 -0.5em; } table td, table th { padding: 0.2em 0.5em 0.2em 0.5em; } /* ADMONITIONS AND WARNINGS ------------------------------------------------- */ /* Shared by admonitions, warnings and sidebars */ div.admonition, div.warning, div.sidebar { font-size: 0.9em; margin: 2em; padding: 0; /* border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; */ } div.admonition p, div.warning p, div.sidebar p { margin: 0.5em 1em 0.5em 1em; padding: 0; } div.admonition pre, div.warning pre, div.sidebar pre { margin: 0.4em 1em 0.4em 1em; } div.admonition p.admonition-title, div.warning p.admonition-title, div.sidebar p.sidebar-title { margin: 0; padding: 0.1em 0 0.1em 0.5em; color: white; font-weight: bold; font-size: 1.1em; text-shadow: 0 1px rgba(0, 0, 0, 0.5); } div.admonition ul, div.admonition ol, div.warning ul, div.warning ol, div.sidebar ul, div.sidebar ol { margin: 0.1em 0.5em 0.5em 3em; padding: 0; } /* Admonitions and sidebars only */ div.admonition, div.sidebar { border: 1px solid #609060; background-color: #e9ffe9; } div.admonition p.admonition-title, div.sidebar p.sidebar-title { background-color: #70A070; border-bottom: 1px solid #609060; } /* Warnings only */ div.warning { border: 1px solid #900000; background-color: #ffe9e9; } div.warning p.admonition-title { background-color: #b04040; border-bottom: 1px solid #900000; } /* Sidebars only */ div.sidebar { max-width: 30%; } div.versioninfo { margin: 1em 0 0 0; border: 1px solid #ccc; background-color: #DDEAF0; padding: 8px; line-height: 1.3em; font-size: 0.9em; } .viewcode-back { font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; } div.viewcode-block:target { background-color: #f4debf; border-top: 1px solid #ac9; border-bottom: 1px solid #ac9; } dl { margin: 1em 0 2.5em 0; } dl dt { font-style: italic; } dl dd { color: rgb(68, 68, 68); font-size: 0.95em; } /* Highlight target when you click an internal link */ dt:target { background: #ffe080; } /* Don't highlight whole divs */ div.highlight { background: transparent; } /* But do highlight spans (so search results can be highlighted) */ span.highlight { background: #ffe080; } div.footer { background-color: #465158; color: #eeeeee; padding: 0 2em 2em 2em; clear: both; font-size: 0.8em; text-align: center; } p { margin: 0.8em 0 0.5em 0; } .section p img.math { margin: 0; } .section p img { margin: 1em 2em; } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; } /* MOBILE LAYOUT -------------------------------------------------------------- */ @media screen and (max-width: 600px) { h1, h2, h3, h4, h5 { position: relative; } ul { padding-left: 1.25em; } div.bodywrapper a.headerlink, #indices-and-tables h1 a { color: #e6e6e6; font-size: 80%; float: right; line-height: 1.8; position: absolute; right: -0.7em; visibility: inherit; } div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { line-height: 1.5; } pre { font-size: 0.7em; overflow: auto; word-wrap: break-word; white-space: pre-wrap; } div.related ul { height: 2.5em; padding: 0; text-align: left; } div.related ul li { clear: both; color: #465158; padding: 0.2em 0; } div.related ul li:last-child { border-bottom: 1px dotted #8ca1af; padding-bottom: 0.4em; margin-bottom: 1em; width: 100%; } div.related ul li a { color: #465158; padding-right: 0; } div.related ul li a:hover { background: inherit; color: inherit; } div.related ul li.right { clear: none; padding: 0.65em 0; margin-bottom: 0.5em; } div.related ul li.right a { color: #fff; padding-right: 0.8em; } div.related ul li.right a:hover { background-color: #8ca1af; } div.body { clear: both; min-width: 0; word-wrap: break-word; } div.bodywrapper { margin: 0 0 0 0; } div.sphinxsidebar { float: none; margin: 0; width: auto; } div.sphinxsidebar input[type="text"] { height: 2em; line-height: 2em; width: 70%; } div.sphinxsidebar input[type="submit"] { height: 2em; margin-left: 0.5em; width: 20%; } div.sphinxsidebar p.searchtip { background: inherit; margin-bottom: 1em; } div.sphinxsidebar ul li, div.sphinxsidebar p.topless { white-space: normal; } .bodywrapper img { display: block; margin-left: auto; margin-right: auto; max-width: 100%; } div.documentwrapper { float: none; } div.admonition, div.warning, pre, blockquote { margin-left: 0em; margin-right: 0em; } .body p img { margin: 0; } #searchbox { background: transparent; } .related:not(:first-child) li { display: none; } .related:not(:first-child) li.right { display: block; } div.footer { padding: 1em; } .rtd_doc_footer .rtd-badge { float: none; margin: 1em auto; position: static; } .rtd_doc_footer .rtd-badge.revsys-inline { margin-right: auto; margin-bottom: 2em; } table.indextable { display: block; width: auto; } .indextable tr { display: block; } .indextable td { display: block; padding: 0; width: auto !important; } .indextable td dt { margin: 1em 0; } ul.search { margin-left: 0.25em; } ul.search li div.context { font-size: 90%; line-height: 1.1; margin-bottom: 1; margin-left: 0; } } PKI0D;l/l/!simpy-3.0.4/_static/underscore.js// Underscore.js 1.3.1 // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. // Underscore is freely distributable under the MIT license. // Portions of Underscore are inspired or borrowed from Prototype, // Oliver Steele's Functional, and John Resig's Micro-Templating. // For all details and documentation: // http://documentcloud.github.com/underscore (function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source== c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c, h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each= b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e2;a== null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect= function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e= e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck= function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;bd?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a, c,d){d||(d=b.identity);for(var e=0,f=a.length;e>1;d(a[g])=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e=0;d--)b=[a[d].apply(this,b)];return b[0]}}; b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments, 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)}; b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"}; b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.mixin=function(a){j(b.functions(a), function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+ u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]= function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain= true;return this};m.prototype.value=function(){return this._wrapped}}).call(this); PK~DDނL0L0"simpy-3.0.4/_static/simpy-logo.svg image/svg+xml im Py PKI0D<>#simpy-3.0.4/_static/ajax-loader.gifGIF89aU|NU|l!Created with ajaxload.info! ! NETSCAPE2.0,30Ikc:Nf E1º.`q-[9ݦ9 JkH! ,4N!  DqBQT`1 `LE[|ua C%$*! ,62#+AȐ̔V/cNIBap ̳ƨ+Y2d! ,3b%+2V_ ! 1DaFbR]=08,Ȥr9L! ,2r'+JdL &v`\bThYB)@<&,ȤR! ,3 9tڞ0!.BW1  sa50 m)J! ,2 ٜU]qp`a4AF0` @1Α! ,20IeBԜ) q10ʰPaVڥ ub[;PKI0DPu u simpy-3.0.4/_static/comment.pngPNG  IHDRa OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME 1;VIDAT8ukU?sg4h`G1 RQܸp%Bn"bЍXJ .4V iZ##T;m!4bP~7r>ιbwc;m;oӍAΆ ζZ^/|s{;yR=9(rtVoG1w#_ө{*E&!(LVuoᲵ‘D PG4 :&~*ݳreu: S-,U^E&JY[P!RB ŖޞʖR@_ȐdBfNvHf"2T]R j'B1ddAak/DIJD D2H&L`&L $Ex,6|~_\P $MH`I=@Z||ttvgcЕWTZ'3rje"ܵx9W> mb|byfFRx{w%DZC$wdցHmWnta(M<~;9]C/_;Տ#}o`zSڷ_>:;x컓?yݩ|}~wam-/7=0S5RP"*֯ IENDB`PKI0Dhkksimpy-3.0.4/_static/down.pngPNG  IHDRasRGBbKGDC pHYs B(xtIME"U{IDAT8ҡNCAJ, ++@4>/U^,~T&3M^^^PM6ٹs*RJa)eG*W<"F Fg78G>q OIp:sAj5GنyD^+yU:p_%G@D|aOs(yM,"msx:.b@D|`Vٟ۲иeKſ/G!IENDB`PKI0D+0simpy-3.0.4/_static/file.pngPNG  IHDRabKGD pHYs  tIME  )TIDAT8˭J@Ir('[ "&xYZ X0!i|_@tD] #xjv YNaEi(əy@D&`6PZk$)5%"z.NA#Aba`Vs_3c,2mj [klvy|!Iմy;v "߮a?A7`c^nk?Bg}TЙD# "RD1yER*6MJ3K_Ut8F~IENDB`PK~Dg"(simpy-3.0.4/_static/simpy-logo-small.pngPNG  IHDRks AiCCPICC ProfileH wTSϽ7" %z ;HQIP&vDF)VdTG"cE b PQDE݌k 5ޚYg}׺PtX4X\XffGD=HƳ.d,P&s"7C$ E6<~&S2)212 "įl+ɘ&Y4Pޚ%ᣌ\%g|eTI(L0_&l2E9r9hxgIbטifSb1+MxL 0oE%YmhYh~S=zU&ϞAYl/$ZUm@O ޜl^ ' lsk.+7oʿ9V;?#I3eE妧KD d9i,UQ h A1vjpԁzN6p\W p G@ K0ށiABZyCAP8C@&*CP=#t] 4}a ٰ;GDxJ>,_“@FXDBX$!k"EHqaYbVabJ0՘cVL6f3bձX'?v 6-V``[a;p~\2n5׌ &x*sb|! ߏƿ' Zk! $l$T4QOt"y\b)AI&NI$R$)TIj"]&=&!:dGrY@^O$ _%?P(&OJEBN9J@y@yCR nXZOD}J}/G3ɭk{%Oחw_.'_!JQ@SVF=IEbbbb5Q%O@%!BӥyҸM:e0G7ӓ e%e[(R0`3R46i^)*n*|"fLUo՝mO0j&jajj.ϧwϝ_4갺zj=U45nɚ4ǴhZ ZZ^0Tf%9->ݫ=cXgN].[7A\SwBOK/X/_Q>QG[ `Aaac#*Z;8cq>[&IIMST`ϴ kh&45ǢYYF֠9<|y+ =X_,,S-,Y)YXmĚk]c}džjcΦ浭-v};]N"&1=xtv(}'{'IߝY) Σ -rqr.d._xpUەZM׍vm=+KGǔ ^WWbj>:>>>v}/avO8 FV> 2 u/_$\BCv< 5 ]s.,4&yUx~xw-bEDCĻHGKwFGEGME{EEKX,YFZ ={$vrK .3\rϮ_Yq*©L_wד+]eD]cIIIOAu_䩔)3ѩiB%a+]3='/40CiU@ёL(sYfLH$%Y jgGeQn~5f5wugv5k֮\۹Nw]m mHFˍenQQ`hBBQ-[lllfjۗ"^bO%ܒY}WwvwXbY^Ю]WVa[q`id2JjGէ{׿m>PkAma꺿g_DHGGu;776ƱqoC{P38!9 ҝˁ^r۽Ug9];}}_~imp㭎}]/}.{^=}^?z8hc' O*?f`ϳgC/Oϩ+FFGGόzˌㅿ)ѫ~wgbk?Jި9mdwi獵ޫ?cǑOO?w| x&mf2:Y~ pHYs  @IDATx]Wu.9Oow[wl| Ha#",V:m)ORfYWN:[B.͢xiN0?O>O DF{-+ {*)jrMӧJt- -D( $M:R362ޙ;Uڥz_ H/mF,!)BsRpA!#0#vshamnfAH!3Ś CS:bHAX>3^|ŏ ȦicLo3f& sC2=<09b6#̙,]+Q?uee~  ,Y ! #E.N&38P&!H*itt&NfӪ/ӐHfM5>xhW eD)6DٽtkYӨWM>UAHDP`"F /b@; t rp8R()#` ƥ`I&GV@O%ճݙm;_J| xj::83KXJvY4aAI29$KޢlP;S uZV'fN)Vh@DiX1AHXm|믻~ ^ ɫ?!!}SyOBpgU?Ւgy4 80-ɸ ԘC&Gp00{lk]͓HnH%Ba#̏jo_z:oUJIFP)SyG7U@hm*/Իn /} 럌iс~pg'mIaGP : # =us vz^L|aPq7{T? h;ڴZpO>C X=7:LY5V槾qM5jϭEp Ypyko/nH# DDt8 4G3EhL˃&wء1|EX>| 8(<qE?fп w3aA]m&KH ZG^o+ tø-ƒ#Q824-v`C47 =^!DvX>:x~'u")_>/ EteY 9*eߗږ@g吶aD{TkNa\cN ]3p O[ 2`B1z8e/<]fa{`IF!$Yڰ¡#wz=jl=ZNNg ey)ۿj}xQi>g\ONcq=豢b㊲/I7Y95ژO>) X-%lO QxcK5q 2mEIo`m.a܀ lyI<*r؞n]61Yee!r߀Ӊ@0yz'>Na E H%n&aGʵk7oZO>i LO*E\\I `‚-{6ni3"`E8xCJ@d383㑬3k8swg} 8(0U$ZGLD^Q;%e|2GN]!ӣXG`Axvt:Z #8ƃ`Zz7Gi^;\l7oa8mP%\_ .+|,U?TVbI$_)pQ`JFqc`Mq>0p:hptn;G[ E'/vx7kq=fE'K~p>{qbW_ׇBZоʋL#U'3D0SD ZG0}$ ǵfnևa! ma{XzHcX8 J\KŕH7Hк8dn|'=+)+> bjk/ ,ds٥ŀ8GQ h%n;V51SSl] i| L أTͼTRd&A;AD"Zs"56 ɭ=3'M^llt⑓)S-@A DlMEq}(8+Or8vv\G ^, 0P^Юwqz&"7F3ÚB'VX\atfabPs.ki\=Rd,Dpg)SEZ-*{'ck`R--aLq/i;alPK.Cp[!4p:X=@o?ܞd:;Nd1`A/Pn܀26uK1lGCj H\<%̐|)wT𡾮%+>| (H!u^2qf,)L⺍bPCa?Ӳ ]m3xBv;ouN3E'y|ZQx*tƼ IR^ 5 9!r'"xg:}q'e:| )pNQ Y&an%X`y7%|+ I l豋۸vAxtw= />==QoGяdL1ƃ氛JK&dJ*xx=7@jwm]+qDr0^ rb儀ŵˍ^QO`'[[K.|)pS@:6ZG]EDj%9"' #ߛ7L񆔈9A$! F nОkpm^JgS[ fq ׉d$^U9RZ5DB&`[*1TW47On{ڛBW,]Ҙh"H0䌓{frH^07a[!ݝߗ܏&[^ͥZ5wK떴R1Q1 Gkǹ.Uw{+)š<,(4/Cxv7P vY&[ Vpymԙc{U7 |C)lUb[]R;SZOժW?@p9BW<.S[G;p ބfӊ$Z;߿3SO_[J>W>6ޫ {TOw׋ӷʀz;9FCf9@x_z.Dx%ՌPJbg# Tա= v*-CK—s1 qӏb:geomSH7g:rj+PCZ "7n NcKq#2RLݟgØ FYA}?X-^{Ld<ӥ:NJ>u(Urkʄ0ۄK3Ymz0PHח:߭a:a] gȵ{BnLmxv$-<ٸ&f`% >蟻\utqxjyȪ.&bъʚhL(@Z #qZt ꭁH@ g;Sua{4:BR#Wc,_GLW"wVlf7]jC?|ygMH  m%g?ZʾTQ /S[ :Xy)ײfa5ˍd@(^X bMvd2Ӻ F#6b1u2s4imPV<"U<]-YJR԰<5T# .1fT0*cF)f&dSFWGٱwG/RXYsU=28yBmg k3/M~k.:.o4_r{(j'4MVEDK.5DGl_?܋6~Uqzl7z(ٳSVD =[,xڵA4f*8)rDax1.kz>EU Κb: I6ġf6LoŊ"S75^DD9wgW}*ܤ <8K?"M@+[Ix_j*;-T Kj+(0=nBEp*XZ0.(*QDO7#۶M׫b;ȁSL2TKz 2u].덊#6\VH`{vͤd2muf[RQ ?f=$;UhF+&!4OcCe@)4D{J@pែ"SMIf#w5 C1> y4& 4==5R{~W_K|Ze`4۔ R񂘒 IQ8m%v2tkÐv.0[JR*M8@e=s N>I(ǧE␱k ?YO8vB1)6Le:΍;>z0 ք<2p {"u3FnNkg8~~n LZ۹? @46Cpgm4G OWz) 88(x4#(eb-O׿nxlGz򺷸p !Ux gQф;unNߚ'zƶO#%"* n <=GKt;WS୧F缛}ӼڸŢwoE wo}JP|5TC %IJX4x q~9-Jg/^`xl;+x<{{i<3lwr"YD|!25BpZ;;+*q⏸#N8]'TFWߏ s{8+> 㭎g1 hN(tϧC"OgMe-@ Ye;7]:z+lp^!N/a0\x}g+µ*j`c5>&DI-tF$B*Z͙[?Yt56lN2L P^FeVJ_%:z^54 8Am CD)G`7iLUTw|/7BNRx%1X_oLcOR@3s:N{ؠ)6ש7+uuB~KNe@R_Kh G3h~7Gplz(`LM7۰e>|AP} Kv tYZ''.9uJ$sӼ3i"RaĐ# S)GnF?V`#,ō\ҿ[qAx7R[1"aO7x"?unAsmZf|I^g;RT٢()D'@Pb95B9b-*M~#nNHvGqB*L*V^"?WKcmڤ3^/LX)ࡀӮmoVI^{Lt$sU*ds__GWinH\"%fEsgRl$2^n0hwM@@r O.+E?;y2yߍ"M:T:Dg|v|S෕lDҳbx;vpF!YiO5'6 zg2Y2P!n 0#eǯ@ҙ.pX]Vm|~|W}O>va]dz+:9_:8ONi{N,Do.kBcOsCan%1iDk/o[> k!y@Xҧ> _$\1vTW` HX!'q?1&3 #[-\}[3߻\օJ:W斍B Hscn-wk-!ԕ( 9P/}׆^MG!8ou^q@tZ53ׂؐźgUVD/nu(5Tx-9CaY8t.[ÅkY=pT EO=gq䓛6%MʬV̴Q qGq5yhH_O53xv V-ăkQ/ iexSn؞ ONf i^BNb‘G@L=,\4M=?bGćTҀeò{&:N 9AlhST:|:`H+ł{u7D_vu/^^G^ˮsT2kʠbY+o[ mnC5 q%2̎_Wc{/C͚W 0sޒಙ|ͳ(zb;TϪODq{,FӥB#N@\0;#-y<%=Hv&faaDǓ&&_ia[J?zq_OܗŦM {`A^۳gҲZٓLݫZZZWgmzjlugaqϒy\871 y y8yj7Qu;p",DUžBwZ4F[gQA5P]]<3bF r=VxBs?k3[G$ے{VaZ쌱jN.ę]U#"9#7Xb{2.SQ%!5sUvW4ci<uc<\yhptn;-y"ˍbعG Cx;s}_;kMvFwz3u0*03YdP#)7bvm:Pz+:|F)zn+: -[2X<Qٸq755ql'X quqUƵ7Zo;y(D/OǙĮ*^܆єSb5/+5,natȓt79o95 ̔B x:5Fiw՝CWW(}OʮgQR:>C_> FpzU}U5=E?6c!(d7b{anuqXy¢v++[;8qn}gk߸qu,okݢ7}9J`vO4B&Bڂ'MVnݺP,VE@WT6wZjƋhI=T#Ok,g;++@n)zkG +մWEBgܖCr$&1Î!R o?kQ4%35|w~0,7CђP0e ^G[¦3=Mg=jTbϾxa9%ɐ1 ϲ#_VU/ʆj*! l=SY-e0LAKœTi-£D_5Xnݧg0*i_Z:~usߑ?XvO>N#q 1 4s]70z hnMu0q't-=Oa$p|`vVwcQWy3fM׃yu}&p/CPZ t[d0ogF3 `ơf3֮k43=?~"h2p`ar߰lE0^0KЧA/pv ?,YH#v^ػ͞qڼ\f2GΎO=[)T D<0 B†r ]h‹B]7TC5,8YFH+lvZIhHg2o$}MͯG@7 p4[0Ǒ TG <7ҟ&vx:YT!Wr9 C7Jr9@hpc̷^rdAuU|CתblK:kY,k|˲iuiwLfk"8$ٍzjfmo[ù3tN\\`Qx،W> n*䥔гQ䁼_G4Yl##0Is>dl&ۊĎdV_uj*m=k֨&xoXҲ cw8A K;rmp$>]PS]8n T6% ^tG?]?g-[ 47E w._veEŕP4zX[[10(#h#@`e],{rm5F2eT&Xb3]$Ӹse0#sLq-[6cҕKbEkpmi-FU„;`?`"kayAZA$OK49]+nOjm{£e2R(k/d9jb7wꆾ$ 2_BWB_,ۙ ܈RGVU/>e0G+t$-))k\xKx#ǀ֣swLHȠΎ"Ǝ^HJ^xckWrkk6.~ ]kDA^赳p@PYb,Cʄŀ0cy4\eOd.QQ,_ ƢѶ~l_> sݍ[[UUuS8~?rN%Ӄ4a1,@`X8‘0[W]upE?ڷ{7mt`]] 2e=Vƹ=J]yd$dV)Q$?ʃ;|b£E~WAsA.$,w’Hy=!L$=.:ͩݘ: `ꌝ^Z\+6 .W; Hc&84'~l~*W=S%@#uEվdm{$T%ұBegɶn7<6<2C7ÍjDŽB3>enYU:@w?`Dckjk*+3(3p@XSA~C!LCNPY J.p]99ILi+t2Fż tmdhE(ab'===0#8]yfN~00W Y4;WD`d8Rf!4I\^KnxB4UBzn߻<>Gn G"h\gOB5/&fk4"*cx 낋x%rXۏGGnr`XdǥLFxI lAa݉l @Ht2a- C1;Q ! ־[Fޗ6+p!ve~A'f#<ǽح/ 3SS`c%` ]ʭz'-bh%&ZNw&\u;OՑEzՙYk# "(,YT.K 1!Zx' ۊnçD [:&ݨ;n03lrZPӂY@q'2?x"Nd2A/6ख़LSƢ1N8>FbSB:娃qiGy[C 7^xAWTE7A&d!ji*4O:GH~& aT+Mf"3!RJXwQ;M,ϘhVɕ ԁOk>#Y71q)(C BH*7%tPn8w W:h:"x.Ydw+ D6lHut9 ȳ~á W;yi0kjpSPFz8¶_t=X Y?O]aeKV7Ϙ?)QH]26oVKK+*Ľ;~ݮL{9-)-[ a90]v@]76I@n"8F "gm WXXfώ#CY/ :1: [d,&i~(OnGy~,1%CL@P<_ϓ!c4'ѢeV :uYh(PIKd)[#7va "oIxbLA/ΡbqC5F )B`Z_V^. lזz"cYjQ[es7VܱG浻#}Ͳm9wpJ nCϟidx IK0 f\FkAt[kpc\`IN)Μ UUNwu{?NM">D#ד 3-_BBNHN/i+yh5o$oCutW]]Ҁ*uAi`HU ulJuQs+5i-{-h; B#] f ޗ(gzj`șr0f~tuͪWvtXa& >hvQؠ ium6 Z8| ̓Aoy<Ӹ,phpYɧ8T敗قbq̓yVPB2Xe|Ч ?Žr. ')@h&ETIzޭ?cmm}՚5 <]Ý\Bc+Q"z' q<Š`L_X) K7LXf 0V޲na;p5^B!;WAHBy)`1֘S)>c&G!yLwzfXhSlhld>ZkKyjrAj_ t5O*15p2ud+ bjI/p)BpWOw7 鉎Bso)^5`Ďxtb3oG!@:I<$'Ɣs mk MIa` V:zP5,Xv~{&S LnV܂ Stb7:Pp[>@@wK@ van-"9qݘGl!̞x?񃻙5qjǽ$P{,MLeT%4±Y&&1it#y#<)L( TUV4 qƂ=ee5?B\^u`Uyeč= 'd|Dls>sBoܺZ9MF!<7Hw+Ɂxk+ot`; oȹP{pv^!@0!oUWOnF%- BE$.>˚"SV]?' WsIFOjfi+DqLTͧO=p`;Oؑ}Wq؂7VϚ\}G$U 8"Ř Gxu[XtjՃ.^ 78 1'Eڀ۶>PTTtf`#>L1Iib>dX<|s0)䛆B-Qe|&nQ*;8gKIr@aw$ N{6i5U%edQ(E-JqZ KRH)%$&/?t&t,L k[E@($ĵSntRyd Ϋ"} o by؊F|gkߔCfQ[)@2$sR pkBu&PP'~H.g`60g ;xhX Hks;3\/`rC'm㠻 ^pa|bW֋,Ǯ)qM9>>.($pJb6f%b/h&FԮrj?bm]K8j;uZ/Wj:ylx?<;cNd+f,[ST[qg: -4W'1ڈ%0dң0L4Jc)]ۈfZC{4X!cÙv|削ӛ!<3kcQx8ډ8& (WzvSa ~{zZ;;Ѡw&8ƍt6WtzIYټX,6!#܉ȬHHAwu ߅K$<àh4VgΏb|LJpX72/7Mū3gL8P}d36q0^!k;pN!ڳ`ȨF,!<8XsOVEа}Nɚ,S_ <}/VmRghBQQ(n4%vZWx[GeM>jfcq;򀧵q +Gwy*d5S{_K< 0jfJޜmc\ ^2q 6toJsU6Ft'GN8f\7cEWWVUŊs* W J,:N!-cЌof;ֿ-2#7m}Mr!Jpɻ. F8""dFP&fc#3k;w< 0H=%*6$Q%f\|Ν;X wMY_zp/=}ңG)Y*/SoxE3g͹*6Ȗ`+( n^45+ѝ"fqEf7pV53x-n)uZU'ZW^Ʈ(" ^Ԡ2,7| Ij{_?IqlX!D)'q3m'8tE+eE!Q&a)8Yw{qźbvXC=rc8 eUhuZ˩Գ~(k/#f\ ,0cRrTΚ-6}N"n]tk.6mXl^8T;4(McCl,n[[ 5)wIJKfl3g.l9u(ф +>w! Kyxd7$XṞ0|E`ݻhfCJb涊_x'Nw.6$Tݔ1m 4NA8Q휻paGG$57Wn=Unۿlkݎ)R`2&媀ãӟ쾥&< 2\À|ukӭ&.BC'ݣ י`גϪ#g:sJ-xOHmk.S]'<3pyŊIke  ܑUcdF!C6]hrS }Aۘ;{\OVX A8%.'TwJtww`̼eeZB74t/sn_=oڒa<@yj, (W e5; Y/pl-c[Tgӏ:x7f-}bm[!3.+^ZQm?Ow4 ,[X1x͘U=t#[TP`l5 J bJSw0Ћ4su0MLm}wa <nU;ǶދO,^ts,mCnuw|}"Bw^5X }.Unۅ`{"-qUr\g=3^:m::qt֬ʃsV}vf1C",vRfu,٢k?un sl{=*a0NB%];1$)Ow!MA Bg^>YiRs++9Gzďfv(;::=rfv믽{'fxЪ91W]ډcWWWi]z^yɞWON0OL6BM/Z49&ƢG<$>,ng'ayN=d_v 0OV!OѷݑmW&6 !Q*܊t=.E5d_ _ʜO:TWـZ:m.#gdIKa†~xuufSRRcߞm:z/Vbr8)m O FlyrgPmED:;:L\`AGOSӤ? WDʀmp&{apaRK8T,OOx ⓶_<; tBoWee1ާWGZZpbњ1)g+tjLd#ĺ(//-mge>j0(DbHCiixƸ*[2{6䵫83|f~շJ>ܠ8p0U'Bh :wX#O|f Kou"墽3>QTvJa0 (.GwP1Z~QG[5UQ%k̈́b&ߞ9 v_{'KT.IMjAP` }(i`ԩ~=ïƒǏ9_h!<* ̂i;mf|;@rۢ8( =~ζ^ٿ;P5CXY]ӂ(PX-˥_Y%ι|ʈ8jb Į©a"~Hfo&߮"A?ЎKB0]5cFv<2v kc4-fsb3Ɓ+@.C.ZBRm}qΠOx*v|Cs@I2XP爴 SX'mq޸V0`Pz1C2s^>00p®[#qIaعj'ܬێX_33{:x\d %Y!~ꮞڟz ̼+f/^);sVQs4d9UG!v![) Joj5::"vx#.JcarڪZA hul(N#1 +*[xƍ=[Lr yPA#I$h2Nl"5񇛜F~-3F),$42j`|| |9f$MBpc U.Gln*3<y0` nc]/lKlm2 dӒոA~YܒM%n7П͜hɞ>ِnڿ3݄h܎ mKc$^[W=3lmC4IYMX-E4P$? D`Wؐa&Qΐ3CLwOkUW׾νիGCNW9sʗtvʤRu{*Ir#{Zs p`Ҝi4u W~ug׮uH 9*1=wP(k#×~{!Ϝyf d:~f 9΄?d8c uwTaV?|j򷟔U WZ(ԯ`/M9ƫ9uTU1h˘ĝ%ҨXQE#;>^jHJDheaJY}zfa IqwdžTdV_?;ޫӏQTl`W8kc<'kzJB˳ZneƙS\ŋ]R[81{$uCYє g(ڭ~u~~ ϐmd^މ|Q~8=mgqk@|[z=O>Q,6vƠB@0t"o/cԋ2b9DF3/b{MnOD%\"ȗ$'Jt=3Ews-SHn~%VY=M+g:hYzzyQ!^lAb}QǭQZR*dW¥߳KFrߐ.YG>3q(xw46+N?ߎMbTQn ny|#O~&!-D"qF(NԾp遏OwRo\zF'qq4*{lsдQ?*_5O }Cr;Vjڮ"ЪH8cf78NaQSyl] Cxڱ_T0/za '"H>XT R?w˫~pk>^~I*ߑsN#uϢ%BXʓ1jCkg0+5՚}# 5ٚ]yZXϤ+/Uop1veoϾcg=C'Sb`K Ԑ=xRY @ݍ[9'g$ha<?8=rJW*ՙB!s{pϧW2gd+132KC‹ Ak%9zp  Gw"aéq` OlCo뀑Si0P*OKt_xO , l<` E#DD-b'-Z:$r q ӐL `RۨQru΋#I/LXQrEQ4*Jgqiwgm?_w߻/ Sg?X[A+u:s_ީik: o=cOHzQT !26@Smèfl`NPX^ P_G~^bha^88^۸랻Pl`;_W@ 6@8R`3#@g+4]&Ġ8Hde|-`*Z G^~70NX>|%Z__ r J(YvZyɦy!aC= [ P1& .[:CI$b^xz%c &MX %_fJ쀻x{?HG1]Zd@@\}zڷWේ='(EiĀ~ᩧ"+_?^@/+*d3w)?Ehi&[ (Db7eQ݂zT.N:FP<[vS+e2@p QM[Ъ'zūiM_~[ffgX*Ycj$$Q{7C]<:n2^*Hˣ ]; &TUTz*yO;'vѳcG,m'YPB×UzJ]v:S ʑŶk>" y48u'g?Pz&'//$^&ùgGI$K^^eY $Ũ9acOٶ O''&N }#u%  WNIqѸîd_Sy>(lڽ`;h4,n`+r!na -"ʋyYmPʼ kXS NY9JIx;=)s!eE%')吅uR:?ȇ^t r^tӍvrCc 6"ضuMQ  ]_zG0o& T>iUQ4=,v/S0P(*)c!lC|Qf` Rn. mSy9$kKDWǓJoˣ(u'Nwu7Cg{׌_d0w@ҋ"=d޳p~ȯBWqbmX57BVɓO:m.n wUz`FwXeQir.Uba#fTj%Ӹx_ŵ-yw" ` W9Rݱ[0 $tU#i^A&Y7aMn m3;)*#7ՓN)8;?Ǯ~  p!SE^>w{YmrԸÀ`ycV<=IM0Kb EJR:;qtlƱU9QL ~[akCv+Z= 6iv/S^]YgC#=5ŭv+%t2{fmmƃC/in2"pvb@xuy|5t%ncn4Cj/LC)$<+CVCEI^X0 u~>g0p~7@!Q@ok"Ak mm\V{r ͢k?n+ l/Sz S'' d-9\(c9Bt*\4 v:@=QdehTLN}8l'ґ=i9݅LΘ6ǥtϊQ%잁Py$̃n/Ub.4I쏚WhCWjxǫ}n@|z"Ղ]uE@1 ʧʳ,6!KEu4O&[>w?G?֥\n=P.緶\.͞g^,f2!n.8 w,=WyV^*>ucFGSbvd@pRg=}Ft`{Ur5W̫߆ue!66~؆JHA@y):7^kbUL\įpǩ [LX!7=}rcccVx !:M@޹MqdRUt_T#&CݻGTr7n%NZ?dyLP%ܽEK P^:ѽi@|KxjؑO`[1ˌzIF' 6, :ӿsXD@\]~V_3 e5`;aV8̾R]{ԋˠR U+LaBk.#,U=Pq(.MtBj̠ !"~]#ȩ7HzLs)gJ7}pĸ3YJḯ%Ə}7K2ĭۀStRptF.lw]NZ`LX+?%PuxxeA$-!?)zȒ@.Wѥ g<˸SNQS1Lmxg DsC9$>㲌-4w'%J3&iՏC&;;;;raBOhVm@W[{P~9o }0S̭]m4F#L( u;ak<ࡰXaS9۸HA}+^JfVkغs PFܼ@D2yɖJ%a.v$uu PؘN.`2 A`ـCzQEq{jw5`D}ue obeOdb#`x X Y"o*J\#,FcXTtVkXk~JFlWdo 9laʬC+ ry+=xbz(htM  12N=#/ϵH`gyG S/eq3f%njAgJԕv_.· ȇ~H2=)%ax(/. ̮*6Wt.z˥71H,r'vX$?JHY \M kLjO 5`g L$[f ”%!1ax{ J0W(WGDea,$$F/2<3l3tnhe[ | t-dyy$Kďc[1'Ii~oMNJ ;*-.FewV*nB8:^*}^\/Db(ͦx0ܖB"hAt+OBhM.9kw: $UcA6p‰^G+j#cXfU8P'U.$ki_`C׭6Xa,dXф@T_NX0JzzWbR' BЃAλ;Oy0ΪoT݄^zp7¨Qۍ,#v5~ڡoFV,dx.`$9E:rFCt? 0 zOP QNVSOgJd7=Zouު]<0I&FZZ0k\ND\z>^ᇆp b+_  a*[eJDQĢֆx-m<VBxtm%S|EP4狦L HCKX\<A  S?T1]˃|yIj/RƁ;e%EYSUPF!t ŠqRv.^̊#(X5+պ6ɽgk!:r 1'q 80TǞ~94s 3 @&:xɛj9%/SyOu<=U԰b2tBbUd`7`-B4}d2Q!:aE"P|V(毀 gt15^-_(dB! y>%iGkG^P" ĚV}=H%rKl+s<n3Z(ԶmHޭʥBZ[)ӤP?>J U,<†^ʃbzQk$Tg3ejJX⫍htO,34N^|wkwd(C>*}!TJ0L[.:@*)Z8צ^,?Z^kͺ1jۃT;GH$G+cс?2/?}Tv-N]FA Ld!@`/+3#DL; HnLBT,(lȋ^ol S"@҅| @(Q2P&c|"9G"P 1T10xATSgx`4 s8=[#SIW77ཎեY2LyJ/X]0n<;K d4|V@{M˸R۪e3zz3UKt_um# nv#&8:}ש&o '~_ӀmC Z0,˗ f-ݬoWק/fhԺZ(,N[웜O~׾N&@fl֗ԕ45x g~?Օ_y̏9q=GF#I(4/8_0bݯ0oiAA>mqKVeKFP\H$:w/ 1f|+^ ej}?8Iaقdӕ]8rgiOm@fES+A~\p+Vf;:eaR.#vP^ý(SCeOGy.sû!`02Јr2y#v.Ӌ?>:6fC qIf:}X(.6/T*dFEG;H&I>\oe/x$:_~&TbOGIXlJ8\ BpV "ABR)s%C_FYI=WD*>$zgqHI $Li'+52 0a)N"v08 AByµpWјUS\a[ҵa|ujQC<>VˈҠTB~vS>~X UFCexsM$c 3ِ4tGmz#] WM(R)~_l,9DV<DL8c{3S^\"7*[y$λ428~Ma\bSNS#y3y6q60wNe.y7-9d9=mQk}BGA%v~wiqi]~ }"!aDtkDbőWTPl.{o-,̽30` `]ǸDPH[bqtV^̥[k^ۿ/Qxs+Ƿ#L,Z@Rc k[4tdr|$Om^ԑc'o=QP< NnJ>1xQb~r[gf,1O\g1w muZ>og#eqϛҪ@ NDY0Nwr'Q4z1wc~o Im!ǞlNxO›aә;ɍ\x4|uΊ8!Bŵ+?"GF‘dWXʟl2111cq Msx&,ŋGJ0&B;[TжZðaU]Wُ?' tzmm˥`86aز1-ʇ\9XɃ8BzviPw*f,--/.^st'\Fk 5GQh騽nz٭,Oח3v8v@'zvkm7 raRnkavnz}cmK=u4`DCd ?|嗾r0pʔd_X$`~ueqefz2>BQT+Ry0y]Bc0++N,::plhxP@jbzRs+sMe|v4 yH)V0;)!a1 Ñlndzf/ͼw \+d0F44X}@_} |4݀\.=x`#n驫12yW\sg~*MX:)Wem’;*k ~~&o;QXzٝm蛌L!ƗOο[xy -9 Gc WWg1e5SLale6,!,Z_xw} 5'WfU K/Xɋ[h%lC~KßP<XO-/u줲61^>tzcr\C!zi}MK_c*fX she!Ö S0?^q(a㷟L.c pVBj P_E=Wq]_} 5n +A[cH-p·ϧ0aAx͙ {gbsi[G7̂aŏ/]x ҠeWZW!-i nj.g-L]y8p1(߄r:Ao} 5 +DVUTjTbd {}KǎWM[hv46 {s>l7(l~7k3zW+2=VBA.x8n"5 Ra=;8)]_} 5@3)Ecvyȿ21}}09EY'a: iE8:Ya\m~&]dF^4LakJ\ƱB5v4fMea,CʡK c/bY0(T˗0-x ۦkr‘ gaZ}e]_} |pk@KSXΖ9p{XF@1X6L+W_SF_k>0]17Rh"0"gСǒCç(E؋UXnklMofޚ6c^-w2q#/K_} 5piF4 Tfp:ZtXGqq^38؝E{?:.뻾k}j@(D `p <-EC #.b7s1˾kpjF5 X11;妑ֆ87PB5@_gE_aSN'lxcaƿk' |7Ufd*IENDB`PKI0D[{gtt"simpy-3.0.4/_static/up-pressed.pngPNG  IHDRasRGBbKGDC pHYs B(xtIME ,ZeIDAT8͓jA*WKk-,By@- و/`cXYh!6jf GrOlXvvfk2!p!GOOԲ &zf 6|M~%`]* ΛM]K ZĆ1Er%ȶcm1`= 0 && !jQuery(node.parentNode).hasClass(className)) { var span = document.createElement("span"); span.className = className; span.appendChild(document.createTextNode(val.substr(pos, text.length))); node.parentNode.insertBefore(span, node.parentNode.insertBefore( document.createTextNode(val.substr(pos + text.length)), node.nextSibling)); node.nodeValue = val.substr(0, pos); } } else if (!jQuery(node).is("button, select, textarea")) { jQuery.each(node.childNodes, function() { highlight(this); }); } } return this.each(function() { highlight(this); }); }; /** * Small JavaScript module for the documentation. */ var Documentation = { init : function() { this.fixFirefoxAnchorBug(); this.highlightSearchWords(); this.initIndexTable(); }, /** * i18n support */ TRANSLATIONS : {}, PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, LOCALE : 'unknown', // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) gettext : function(string) { var translated = Documentation.TRANSLATIONS[string]; if (typeof translated == 'undefined') return string; return (typeof translated == 'string') ? translated : translated[0]; }, ngettext : function(singular, plural, n) { var translated = Documentation.TRANSLATIONS[singular]; if (typeof translated == 'undefined') return (n == 1) ? singular : plural; return translated[Documentation.PLURALEXPR(n)]; }, addTranslations : function(catalog) { for (var key in catalog.messages) this.TRANSLATIONS[key] = catalog.messages[key]; this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); this.LOCALE = catalog.locale; }, /** * add context elements like header anchor links */ addContextElements : function() { $('div[id] > :header:first').each(function() { $('\u00B6'). attr('href', '#' + this.id). attr('title', _('Permalink to this headline')). appendTo(this); }); $('dt[id]').each(function() { $('\u00B6'). attr('href', '#' + this.id). attr('title', _('Permalink to this definition')). appendTo(this); }); }, /** * workaround a firefox stupidity */ fixFirefoxAnchorBug : function() { if (document.location.hash && $.browser.mozilla) window.setTimeout(function() { document.location.href += ''; }, 10); }, /** * highlight the search words provided in the url in the text */ highlightSearchWords : function() { var params = $.getQueryParameters(); var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; if (terms.length) { var body = $('div.body'); if (!body.length) { body = $('body'); } window.setTimeout(function() { $.each(terms, function() { body.highlightText(this.toLowerCase(), 'highlighted'); }); }, 10); $('') .appendTo($('#searchbox')); } }, /** * init the domain index toggle buttons */ initIndexTable : function() { var togglers = $('img.toggler').click(function() { var src = $(this).attr('src'); var idnum = $(this).attr('id').substr(7); $('tr.cg-' + idnum).toggle(); if (src.substr(-9) == 'minus.png') $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); else $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); }).css('display', ''); if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { togglers.click(); } }, /** * helper function to hide the search marks again */ hideSearchWords : function() { $('#searchbox .highlight-link').fadeOut(300); $('span.highlighted').removeClass('highlighted'); }, /** * make the url absolute */ makeURL : function(relativeURL) { return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; }, /** * get the current relative url */ getCurrentURL : function() { var path = document.location.pathname; var parts = path.split(/\//); $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { if (this == '..') parts.pop(); }); var url = parts.join('/'); return path.substring(url.lastIndexOf('/') + 1, path.length - 1); } }; // quick alias for translations _ = Documentation.gettext; $(document).ready(function() { Documentation.init(); }); PK~D`iisimpy-3.0.4/_static/favicon.ico hV  00 %f ; X(  IIIIIIGDBDA?̀>66!UUUYVRVSOTOMwPMKMJGJGDFDCDA?A>B?>6!;96gF.. WWQ/WUPUROTQMQQL/OKHLIFKHEIFDHEBGDBlB@=h@>;?<:=;9;;78[XTZVSXUQWSPUROTQLROMQNKOLINKHLIFKHEIFDHEBFDAEB?CA>B?=@>;><9k^[W]YV[XTZVSXUQWSPUROTPMROLQNJOLINKHLIFKHEIFCHEBFCAEB?C@>A?bc_[;c_[a]Z`\X^ZW]YU[XTZVSXUQWSPUROSPMROLQMJOLIMJGLIFJHEIFCHEBGGGeb^d`\c_[a]Z_\X^ZW\YU[XTYVSXUQVSPURNSPMROLPMJOLIMJGLIFJHEIFCGEBEBABB=6ccc6gc_ea^d`\b_[a]Y_\X^ZW\YU[WTYVSXTQVSPURNSPMROLPMJOLIMJGLIFJGEIFCGFCRicKde_gc_ea^d`]c`\P`[[-ffM ZZZZZVA\WUrXVRXTQVSPUQNSPMROKPMJOLIMJGLIFJGEBqcMTjbFUUU\\R[WTYVRXTQVSPUQNSPMROKPMJOLIMJGd^YV\YU[WTYVRXTQVSPUQNSOMQMJOUUUa]Y_[X^ZV\YU[WTYVRXTQVROfffea^c`\b^Za]Y_[X]ZV\XUZWTYVR7sg*FodWibhd`fc_ea]c`\b^Z`]Y_[X]ZV\XUZUU3UlZ~k|i%wh6rfGmdXibhd`fb^ea]c`\b^Z`]Y_[X]YV@@@oSnmll~k|i&vg7reHmdYhbhd`fb^ea]c_\b^Z`\Y^YU9rqponmlk~k{i&vg8qeImcZhbhd`fb^ea]c_]vytsrqponmlk~k{i'vg8qfJmb`\halhd`xdd]!{wvutsrqponmlkj$yxwwvutsrqonp{zyxwvvutsT}|{zyxwu~}|{zyy7~}|{z.u%rnqpkm~}|{q u?ttssrqj~}}{zyxwvutsro ~}|{zyxwvut?~~}|{y*yws*w~}}||{y=.~}{z>{4?????(0` GD@DEC?DB?CA>B@=333HECGDBFCAEC@DA?DA>bUUUSQNbRNN;MHC5JGDIFCHECGDBFCAEB@999 ;;; >:7<:7777YUQHVSPUROTQNROLUUU NIGLIFKHEJGDIFCHEBGDBGCAC?;=@>;?=:><9=;8;;7y@@@ZXSqYVRXUQWTPVSOUROTQNPPP SLL%PNKfOLINKHMJGLIFKHEJGDIFCHEBGEBwDDAGDDD"D@>C@>B?=A><@>;?<:><9:::#\XU[XTZWSYVRXUQWTPVSOURNTQNSPMROLQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDBFCAEB@DA?C@>B?=A><@=;@@7]ZW]YV\XU[XTZVSYVRXUQWTPVSOURNTQMSPMROLQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFCAEB@DA?C@>B?=CC7`\X_[X^ZW]YV\XU[WTZVSYURXUQWTPVSOURNTQMSPLROLQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFC@EB@DA?@@@a_YYa]Y`\Y_[X^ZW]YV\XU[WTZVSYURXTQWTPVSOURNTQMSPLROKQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFC@CCC```c_[b^Za]Y`\Y_[X^ZW]YV\XU[WTZVSYURXTQWSPVSOUQNTQMSPLROKQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAea]|d`\c_[b^Za]Y`\X_[X^ZW]YV\XU[WTZVSYURXTQWSPVROUQNTPMSPLROKQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGE@oGBB6@@@cccfb^ea]d`\c_[b^Za]Y`\X_[W^ZW]YV\XU[WTZVSYURXTQWSPVROUQNTPMSOLROKQNJPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFB@@@@ie`wgc_fb^ea]d`\c_[b^Za]Y`\X_[W^ZV]YV\XU[WTZVSYURXTQWSPVROUQNTPMSOLRNKQNJPLIOLINKHMJGLIFKHEJGDIFCHEBHCAj`gbhd`gc_fb^ea]d`\c_[b^Za]Ya\X_ZW_YV\XT[XT[WTZVSYURXTQWSPVROUQNTPMSOLRNKQMJPLINKHNKHLJGLIFJHEJGDHFCUibafahd`gc_fb^ea\tccZUUUZWTUZVSYURXTQWSPUROUQNSPMSOLQNKQMJOLINKHMJGLJGKIFJIEImmKlbWicbib'ZVR>ZWTZVSXURXTQVSPUROTQNSPMROLQNKPMJOLINKHMJGKHHU\YU[XTZWTYVSXURWTQVSPUROTQNSPMROLQNKPMKMMIB^[V]ZV\YU[XTZWSYVRXURWTQVSPUROTQNSPMRMM8`]Y_\X^[W]ZV\YU[XTZWSYVRXUQWTQVSPUSO{c_\Kb_[a^Z`]Y_\X^[W]ZV\YU[XTZWSYVRXUQXUPffa^dea]d`]c_\b^[a^Z`\Y_\X^[W]ZV\YU[XTZWSXVR@jj Njbe[hbee`gc_fb^ea]d`]c_\b^[a]Z`\Y_[X^[W]ZV\YU[XTZZS%zhG!xh.tg8qeCndOkcZhbfd`gc_fb^ea]d`\c_\b^[a]Z`\Y_[X^ZW]ZV\YUmlfk~k}j{i#wh.tg:qeDndOkc[hafd`gc_fb^ea]d`\c_[b^[a]Z`\Y_[X^ZW\YWdmntnmmlk~k}j{i#wh/tf:qeFndQkc]gahd`gc_fb^ea]d`\c_[b^Za]Z`\Y_[X mqponnmmlk~k}j{i$wh/tf;qeFndRjb]gahd`gc_fb^ea]d`\c_[b^Za]Yt,rrqpponnmmlk~k}jzi$wh0tf;qeGmdRjb^gahd`gc_fb^ea]d`\ccUwtssrrqpponnmmlk~k}jzi%wh0tfwvvuutssrqqpponnmll hyxxwvvuutssrqqpponmf zyyxxwvvuttssrqqFy({{zyyxxwvvuttu#|N||{{zyyxxwvt.}t~}||{{zyyxxY~}~~}||{{zy|!g~~}||{{y7s3qXqFqQ~~}||{uHtsrrqqpp~~}|}w>vuuttsrrqq|~}}||{zzxzxwwvuuttsrrs~}}||{zzyyxwwvuutts~ ~}}||{zzyxy&w\wvuu v'Y~}}||{zz.wwwv_~}}||{v yyxw~}}|{{z{rL~}}|zAn~{ +QvuU/|?p???0qq?PNG  IHDR>a{IDATx]ytřU_sjF%˒,,_ 1ƀ9 ؗ, Mrnv;䱛%/lB^؄10[6agzfzF3\=4U]]ݿ_}WgLQ(SbV&))r,f`,f`,f`,f.@!ݑ(T=;?Y״$p8z&C\Tg2YQe6(9D= aK;/DB-r.c}*<a*خ"gf KxB TwRA!z*'"AC /=# C.ys`tˮ(nqd& =Z* H`~{}na24NKRf4Ty-3%TŃ..OJzO)?|hI]7yٚƅG9w VLM8r />? @%f!f*.{r ||Y u{?3 9yi3Z=KcR];쒷>71  lu w);W~/ݷ-;: 8Uq@nG{/>cpϤ<し)(PcZ>0='m~JiM]w~g>Н)~|{G""/[--fK[ky*y॔FҾ2m k9s-^Mu'=0Dqqd_{p#>NZ^vdf}Z>=<LFL9<r<8QBi<ɠQ5 #XZ}8AjA)~µ}r牎vP=v <89jo|FSp)9/|M o`G\85Zxܭ8 a#zt(V5m2Vy"f-T.\.Z?SKN k୪ʌH)r&ۣJT M"Xyl_U[55׀@9^˧z.6i QHq~0a>}jêq@$(-64K - ~ćDsD&÷c,P~㗬W}.J)O'vqe w/n`FLpl7 Q"C)wpr4ud"uKVHsLü@*{l:nHIh/5_J= k5>:"vN j39*[/0/E} ʳ\rQS.A8 xKԈp\(6bxz 7>}>iRB@8sOc+#K0H 5$ suq ,늸:"g#=<(#at9i#:fPhܼ\hEǕgk" `*]uMHY:ez`wc_G kkrCpl>{Fv0Xc/^qec*c=x8>9@i`mZ_GOSPT}U[;^[S> DQ+Oz;vͯb-JҖ-gO6 $(*t>6_<;uՎCN?ZTp]}ry:/nδ~0OSܙӱ7> FL?fTXs v9zxtF&D4 gOnXuiqXiBFeSd#_o  ƠT`E8Xvx-q ISBd0 0ii.WJj9|J̡¡ 4(C{C +p'$l@,DZchƒ`5+g2<*`qU;JLjjz/ү^wY* R ׸H5(=`55y}j`~Va{vkfīKsDs:m<)6~\R'd,Y-lLLC TNwhz;4kR`@UZ Ϫ>!u@a)޹B(4`ج04g&#<4ʳpNd8+e`G,V⁛[VƁ5x mjiW%#2᳑ [4;0|զ-0Bb̿+E)6(@sRVBH'bkFSPshi1k-6r{xrg#Œ3 B_>mnY9,"E^ݼb郯}-w.` B :3RԥaK4]kCd']7PJq](OF~'a 9T)6@BzO4Y͔LIyzG_z!XgN%FB~De א3't ȿx1kPAa-ްe-w.O0u)isccBATL"L \hGlNeةH'|RoƇc{??rd`EΝNZ}[_L >1OE3B~+vuNي\ֲZ;[){ P"T@8 Qӧ_3rR&at#z=`Ɗ҆|UJPT@8^=}Ow9pNS\vU\hmMGO?Il5D@/b][e _[zjAJPJDI9̟"R30W<ˏB; 0^AkiG 1{P^U L|57 H$7Ίx}#ڑŔI 6QstHG=>+Dd(~ ?!6P٪6(T7K4FtPb[rC 6Qr&UZ]U-_I-IjV5YJ6 &!Za\;S?ݝx@`ZMT@P ` `[w.[#v}afb'p! |$03`RI]MOVn7 61'K#z)i(_ 7@=,6nKMW,Y-LcHy wO ʧq21iY?x= .t>jJy4_x52bt:.$8o|3çOicy}?["># Q`D#Bau Zŕ5uR- $$.gS \]o?[s2"X7rxB#Ɗjqk/t.Y^b;a8Mݧoly1c @' ,VaWZfM}Ü`R7ʼMolۍ>-O`G{p8HF, DQ1PP/Ħ-ji^a: TmZtw]3o cӎ5`[V@,uŚ ;`;ygh`>D46R `>U7.o]yb> ccG;^=.&f 0 I`"IZ7^wWjzJ W^; lwyu8MvB[}>RPoPhi㒇~)b8؞BJ/3DPp۱{玭,+q'XƀǮCaP=XhA&رcI1M`~Id@UF^HEVxڼ* ^(T #ٶ"v|95$Ir_ d:Q1odhhZNN#j]vٕ?[ Y(ᐒm7Ogb$vlsRb٪O>x3r݅]mD K@ݟG H~=ڦ`0!q"Z 72%:(Ah]hk%\AIL Srns>>'_gTS)@SWXVV^٨/39]q$o?zryL|vnCC(/蓷ݾݳ׋<٣[X[ڬNtqgP%82o7.b{Dw,!J*++笻vK~liOj%@_u_MM͏A%Ɋ9/ ?o#ؙ Gf/slEaI]T1jqMӸG?D3ϓ755}'Y|&/H>x}OG}΋JˮlΦd|B&9Y}>|O@d{?N}oGV'i>Og |o Tc~o|>g7::zlnآГ}6R @֭oh6ūq) 6p||R1``{cLO28WRjAOx&*0nbSk55xÇ쳲'b`JlGSNk+vUUUḌlbaO 45xP sЁ@'bWtET%`^悿 1Qƀ O \6*>> -sq\H8xǿUe/X(t eNg&:mDŽHu6 4Ko~p ̮mH*4_ Ų̰g7r|. ( Ga% >_ @H-+q33YM..3; &ja0G/KUUU5xa)Axu>V9ަT%/ͲYmeLF"ex5/O(FO Z-KR7 =SǕpE^5L&G,T||{]'Pj5]dlvd2[ a+#ol:X-Q`Z@+TH> pw|rO¸۳a`xDq+W-n{ѮΓ{^Y*.ijnLE)S#sK mV:@ .X)C}{?(L`۾]|[r5P(w}dc6R곂t2=ooԺbIrzxVEQF\Mf`ZaOm%pPNxl~= _rIqoi;+_BАpOשǃĎ J{A݇P_-+6766y^^\( =橓_1IH74} a8k9V^^4F@`tw׋`D|xSe𡑆Mkh%.ь}^WWGGGv8L#%A P(4p}_牣GW,k]q$gN|ݹ[Q#`5Q!e7!$9{NgRC.n`o;}2!$6=z=͋n% WooN0ul9JE 2H ;^ `I`{aCP9K#`=^|ٕWd2Udڙ<>q,ho~m)]-RV4ox\}`ZS}Q0ӕy} TQM(=VKx0=`/,li;348L;s\ݲ,kffj3~^EQ:OT HfLE 0D}ɚJ wfY[(:jmݼMI#ݝ^Fҕߧ+Y>تlhR*DlsRfJM0x f5":2so#~yLj^T]9xY I=~VYi )D"Ǐ= fK 4^ Q7\`9qkf"d*$&I"+4B70B'.O)9?@%u٢mmx{/%Nt+$E~#^z:%>zz/=SsBI[R\% Yp% Yp% }dG^8IENDB`PNG  IHDRx IDATxg$ŕ-ҕ9޴4ihV8!@Fb F7Ns1{ѝW#A$! ߴqhofUQY9esV,HDS BA{Q% $ F@n ?˶kpل:H5"S)GG=IlH@0ň@AaT|TàB|VE0 4;HUU^F~K ֻ`-\Kζv;Odǜ5I:\^sv6oki;mgri-өɦ츖< hفd#vm}~e @€,6 "Eyҹ-,4ws mN<5L5 mnh35IMs5 FPPO̼Nkvm/GwrYeώq q>{Gz^x ;ɺ- ;e0Xg L$|=`]׻a^𑶥sXkX0099 ̀]D=1rlC7l{igH~ϑw=y8 ϋٺc}cjJh 2~e˱g][=XҦ%(ڽpr ;Gye7qƝ엟,I߆@PmJ@Ⱦzx=1絑ovom|8rPQ" K"10 @ B$}4Uvvkgœڻ4 :U pt.e)gؘ{ܮg~}gz &1_NB`@% lI&a~6[gvdD 6 pyeٴ;rv9bt/  la=itS $hfH?=U`~5ˎ]ޡ00d$#"~ɸ7Lyzt~ܣ7lt Myn~M$$H Ќ_H,@rl>iOFTgc}+r7ykG /o@A◅Mwz|_}] du#u9B2d}17^I!\ " @3 >7Qh׷z{f5>h9XɢчPU\c4_2-6m캝fP~$$H P ~M`uF/u]6s3J'#uj6124;~Cp@7 դ $}~o0of1>' #Dįp!~Ojfr!,HB`@~Y۾ \!u'[?ݫah3OXv~"~e{% ~{rtw`)5! @@?#Yg^vMW~ ?БIw?]( ; @.eRSd毻۳;3y!PzE H+7XH|9׸VЦ|2"Г)9>uF"rg_=fT$Gd[(co?i͉?5+CtJRmGr(2zwp $b1BS H|e~ jfG1 @T@sD{v֢_*D, v,A" $H P/ Vq}._Drf=?XD Uρ'~7_/}@) & @ z@Z+ZWHh)?ԉߩ/ 9 Q|,7x:z@D?O޼x'M~{٪ [MW(?Bqn"84s}o%F H*BB~ .K{{[+ֆND4ruiIK/;$E(K k[>@g`$#"~"`fQn֎-C(7 I $H Pk >Ǒ?v}y\'u9#wbOt@< @ Ze-u'X.;-mYF}y}%[Da~DJ/?l<$ @ Zb{? ?xUϴ45}DNU#~#"`>;q[9۲ H"$nv~tR4qYy45oT7L޳L]C7N hV@ ,X\ѯPUM,`4#sx< @ 7 @ ,u_ͶKP[ݵEE{"~F"~!#w׏mF!$ h:@ӁbX]FɮB})\˄?Tk_NGF訓vR-mZMKfx½q6_(qB!>Ppj" HL%"ؕ֌O]xR_S%įWZmnao;p;K;IpqkС/[mX!6jkAk֢R2|l/` yP._$H 0֬O|G񄶞?ܩщċL^ka|rx1 &|VlM<'/CGͿ_9?;wr`S(HS>њϵ_ke"Wvٌ?n{:$+f3sNj lՓEK;3򹗷@>@DH@`*XO;ٜ{ŧ;J‰NGrAFx䡽o.ֶǼEp @:OcrMOcq,S*įP("|z$~H# qh0BdYN{H咏nڰ)t f“V{ Рd u?+Dя?6;~5F"Ͼ#( Kߌ>3S\Zŋ} @Sc?:jͩJ8i(D>lo-B?\/o?i;J_Sh`c0y&(D!U=۟JoB5C~}ﳟ?>P,c62)Ծ+fďVoC9`4Pj@PmS$>+zg-*5#? r%4(IXynh: T> @WdB/jįJMH [J?Q&Aa*.P0Gv|J+խkEIE< ¤C %n<;M,O!DJ|Q>NDf m, [FP `c¾CH.Ὧg_/r2dvƧO($EH4H&vY?9Ӗe* K?Ogg>t`0d>",|2 vOٵ#r.k5 Ѐ @V'5xN Sk⇿AΡ 'o??8f6)1ϼhtYrP0`@"@0iP[hϪ}. IUxvF>k|?lŀsHSFDE),G~ ; Ի; ;laspG6ΐUr}J{E@Qz dBFvNxF40DsHK&rc(ª}.5Ojَl;ʼnvzŀ_T  9S?QӴړqP|S4H&t~&ЗUpį&yGS 7U[iTG85E =F+܄/E/H5)H*pqh+݀4iFwrk|Xi.:Wqe=ƪ/ޭjW??|J]YB /nA0K}?@>ԏ?CgK[6"O9xgt^*Q(N{MikOyfQi>A/Xf>zɭA#č?5N0E\ Ȉ-11{'[/l', s?$@1H&dۧLC B_Mo{Oj?Y !rOgkqeua/]{G 㲋>r(!A B_h9s ޏ3 .F`S?vUy.}g5B rbT@J:4-V5~Sxf5{!O(@R>/~ۮuDAFD]gV៝9?7]>wً qMIKl=K?0MHZ_pؖ͹›HQ:8o3Cursgf(/8FrzrP)*H}M%{Þen*E7Wxvf1.KG@! d9X_h1)į e\ԼD'֤`x-g!x`" B T?f9c22/)u~(ڗ/%E(weG@$a h{>z+J_RD k&J v+\{%Tp_;<7m(7HGf /f)sM3{qG&~!EDMD7!wCSK\Ak $a]Ö{iq LQɍ_WA{.S7"~{f'C.  Aغ/|{E) 3>/[Jj֕C EDrD]mmV=,hژ 𙧜YbhmSrj?P?RFjDKƈC~UY P @oehoJW%D"`Kį[gG,][AM j%dUw(n*QEQT5ԯPh{- TmMjiT̈scШ5?P0fvv!W "~?"`"~f?Ej$A [\z9M D}0"7{S`o?Ej$~[p~@įpD~D5L xn@d~_u깉V})75&]UW#|6dsr9r'8le3Z.ur]vӴrMoaXaa0LK3 S3L}cff:&u{& Y6eFD!վ7~ErN~hȏ u䇏zg=?s^ڒ9p@~O~qO?!|pA exٵ=0g5g7/6{4ttDa' ;I!  B >f ][%$DzWSک=oޑݿsK@jNȡ@쓉Q~/{? t;}C۞J_]wr| ֱW?!Bg0 ?1gބ?"  IQv IDAT p4W)lto`OOA`?9_deߏ;P _5w%xy) YTnd eBo`K2ER[z0Ƴ+O<-Sk/]x3l<];dvAoLlj$\i$96mˑ?~a3_cz'ʤ?T\X@F(_:ӗi@MXP~:s01@BD(GX@2GS/<9g&q`Bh4GaO=Pļ^xȟk$ iĵDB?)O|݇~#(/#AYjwM0pP~v@&$mgNm+'_aSlMlc+Jnc̫p7?TPͿFAC:z[kݑ_T j SgrV [vkU_{1ž(oAx!OZԜuǬ0Vx6(@;0v{ߑ!xOx jWCj 0v\֜[DJ}-]}G/^5(_%~1xb$|^?@R{_˽HOo<3|=zWn*N"rN2[{|֕"Pa!k$@Ȱs HxHnХ/8n{ 1_|vWiU3|q@b4o1L-Oݛ~Ԏekbן[pk1!h E=Λ^}'>xE([g1Hj $<^}G->Ax+d3?}<@  ` ;Rf|K= Wg.YĜoYZiZ'~ۆ잧NoZ\%Q٨k.Դs/=Hbkװ1Q 6S  /b}떅تV79/ H'w5:z1kˣ闇AA; 'RAHhi/C/(¡ {R;Pc-C aywY~0! N9,q''fam&=nBl*k΢eܹ =C׌i]9@܁_ݽ3' O)H6u^@Lj.(! ?o?l,f$ q%/,]۳#g`bz|*ce֜ =3.]N~tGo現=oA[$ɞ9Yʯ ȿ@X$b#:"d|w:-ZGd b  Kgmze[⹌g=l:-b<:+vqƆ쑡>{H~!{h~CeL~VI~I$SDui`MΌ &J N?52qR$+UC= p(xao[,m9Ã}o 7DZ$?,Ilkl<QDhI$~ޥuDa}MSp% e!F̠<1~1 ppO,:5M|{fOdǙm0<HHJȍ?bŽM~a ,5GYM&k+ ~>QV PٔҲ]P @`6Xq-l03 "O* DQ n!ASd/@E/yBͅ 6B'` мp>": 憬&,!:3y'p?N} W:Ou(9@|DM2/A 1o "a!apyp%LZ *~G6 Oȉ?v=s#߶_M?H|ݲ`J}$z%~ f[gؕ^ y@ DOAH>eLȶ2r$ R`WJ@$^7HMM&"~uPFOj>]W}sz- N5f$RPx(B@+vzf[}}B6,ɉt XߥTިac104hCoy:,\qbҚGCh%a CIߨVc;Q][3?|ԫ( <"@oA  6 }Rˬ/7:fhZM 'Xub} #O`@(x$zėKZj2vp=J~ZhWurLj/[o~탉>4u#$cE6f>  @' 3θ0qK~jE;E7<;787G@6 1 UI 0PD@&Ξo.TƯzW$~qΣodՎz=(4䡖'@BP @ CL$P( 3o]OhbD{H~P@$~ ty`7wzAN2!@bP @ x=P 09*[1Qev!cCvS9{&@(ˆM0r/z?rMW. W,.sUɻ7N6;Y9D Le_?92GP !@L @@"`P<暯r $Pqtj w؛m#QAW$ H$f6"`/޿Ǯowjs|}r9AƭnlB@6/H& $yqp|m]:' CKfg!s;f~54QɈH* HFDw.3 ep;?w< b$| M̼1| J1xP{CD"l9<<';(A<@B $H ̀|@eW}dI3TGC}kSsxkW{oۊr? 5* H0 wBsɟ]ךT@r+KVC%ȤgGJ " )Hx 06k?3g?؉)K>_#sj HA >٨=z7;⏴^=mDFHv0>>O6ߑz|H47H@A+"ؠ@=zίu3 ݭs4Լ͔LyOnH!"I4'H@@)W`^:TFC=g@_ߗW3Po(@s $xHdJɀ-m/]Ƿ,K gW0Tפɉ_`ddйDBA2$]@ݗI%NU*_>PEpY(lÃ>~oo\䋮$$H  0&?C ?2 ?0PO[>36CRV&A!/_,60 : H!dd@1 ^ع|9Dw.3k&Wq |g{__&*A/z HA22DBJ"Lu4:y ?~ 470 : H(@'<܄wtf"#"~7%S``?|@fj9R @ t dD_zc1&~|"~Ѿ p4yCǃ[SS~@ $! P| 5 +?bqD' ⺎\/3ySc(Y (  $$ st~χZpj<"3p ďza/o'|r! !P>4h х H u=Fg:{YםyPp@w~rί}t; Bz4@+yKtzc(I@@>Q6G V\~U۟B^*%42kpJa0/.}7Pz e! pELk2-_NgaA^$H  ńn]d%6NnQjp/|4w9rY^{o `WA.[G !H@@>]" g\k: Rw#į$ K1&w-mo IDAT;П[nxӮh8ǀHaP%w.#{sYl{xꑽ }"E,6cus{@Q  bS[O=/qʙIW,?o _tQBȻyCaE |? =p$!O wv(4ed ԔQ" $*-0)] >+c1o"@'"~ 58`/_>Ȥsfs^ы_ jGtC1[79ft4MK{lg蹧zK/mۃBS/ u)H@H~MRaSl|@{k %Pܤ5(1#(/ %podB/~~WȤO^`  4"$@cg5V#`a qe-[ʼނ |&xjҡB=C/3S坔 '2+? ^)cq(Cpl]1@F,f8&Wtpy1Ǽ9_x'M!r] …! "AHS,E:t^֜X ޔL'\w'CA ш(5r3Mlgq[>smC!B!vTwW J@(F᭕_=dŴ5z7|B}G ~_H<**"dϜi֪5W_!1}jBj L>M6Mc(7 [~1z[^ >{UT 6m_atDŽZ߀S J rsAhm/,\zy~M@M C" C9`OG:Vuo(EA?* ~#JF$Y8eGgO8azE u `  9 u^ ?$~'tRU%~5}"?sE 5s.}٪UBAQ  L $M`" bzhn_PF I`'piuEq*#W_Ba7`!麑;^ٞ=B-ZmHD.߈5r[x1T7JǣΥ^S*?5~~v#0O;/E&B@6yi't>_r QQ~v)8e5R=RdMͫr.5?B_PT?f>/<Վ[GAȳ(6qU8NQ]sfH%9:DZ!g]'tщ_tQ!Q:tej^s? QY_\~6Uc;40?6iV"APM=~Z`Qi B".ziLEWMkz(S2# "cVBePԼш_C?*"SCk+g2Y/ZO?h6g#RF4>蹬.$9,YHg[ks-Ιo.;/bq5O2RU!~U?eY Um&Źpy{~B^6W65@9$ H2!8"[h_u'ǎ$0&)$S*O(j2ß!~7o}Gy h{ M+H@`3F P$PeP\֝_qʼnw[1-G*n DMGmgvgѣ?[B^> EFHPa !9f} Aex&\%o}OgS>Dj ~f߫?o'_lf޿!6qMWwz{{vQ>^TAj4(GpGx\o3VFG(ՎՉQG"~M\~_(&Z?u @ DL-(D}Id< "~\yU8 ++/5Udž_r_$# @ (e==pGZ`b@kEo从]Y"*.o<֦Bm}c ɽ(@M @zjr06 qK[r1;s ,_}ySzf3''/c"OS ᖖϤw\OO:-mZ⅕Wv)8eC45/3ԦgƬ܍x#כ0 @)p"p Y3@.Hl=mH?hj'SrNrݺc -s1Ћ[n(E"~/ԼSK5qG6v'~5<4h  XX0 // [il;O;?ajҬ'#"KN45o=r˚< _}YkW*E5I,bSHsKLn{GO0q ݀(k}ɘ(=5&jч{^B P>#0,I;_Xb / 1c '.Zfi> ~FJ2RU!~U?oB7@&X^ x܅Ƭw]8ibsaI>.ӊ歝^ү^}- $jt@#JX&Ĩ(JB` sަw'6ΜkDuLT}=Oi96lsxxͻnCY zS(H&r7vXؚ̜ǚ3kuGNjF! I<f?{<}.U~3ϥz߁ EsmHpPqT@)gw.gwdviŖuj !AǝXrWaץF45?PSm"#<|&I_$VO&j ̀ PO[t9g؊ǚ,/*N<5$zx=#j0;ҩw&d\$H4Bz ȒJd@<1Br͉c͜g. 9N45oߧt_(_k?أ7+(<?'5RH$hFT(D1 p ccWŗv22ykޏmˆ?2xm>Cو,_jH ЬIBO QO B /Ye%EV̰hjz"UPڿ Ek&@`bTT(jT@2!`Y\}|1ִ.9'1[4uYԼa6vщeS{CC/KC$H bD@5*1VWOc ˗h;j .JW4w'?XdTNܮ-=sW_y^gtk._ H5$LzEmsW^EeX05\%p3?mͷ]M ?D1Gdbo&EKX1=cY:cVlM34yy/v*UĈ0>>w_fKCp.5g @ B8x1`@ޝ0(_@U@gOc݆9/>-8TN[v?{<}.Uĉp`vG6pۯ=ҟ? 5M ho@ $V"₏hIU,kiMkHSZw_,+G!o.2 2TQ12+;fKg옭i5Լ~eE ~o9͈6Rw{{v>@C!iP+-&<]-_shuP@CQ|&?A}_e+,Z<M;6^;R?Im>7ګO6_?@ a DA r9v5-_3{tOy'n㵫1gFuσ $ՅPED 2$tWYxR4-wb6^Hgr/lN`ltȽw\.~Yֿ߿.y a0@&K!/Ĩ?LX V-[teKKk[M$zx=#jWhvC^g]X]H@0bAP,\jի̘1&!7'枷|' O$ L/D PȢ"A @|޼9s-䯯f*h:tz;nAq?ـ?uO@F/Okn"yOJ7"ppƌYN8y <P!ώ|Ň,֗-,ُzOH'EM~sȚd% u '_xR4Mjk7U/fߛw (٧_.@Hj4#V"}ֶ3|is]HSF)oNUCGG~gSw $ z`=Q $O Xv 'ɲb1UUl`xh`߽w}p ~,uσu- $6  rD BMDnPQ TqaB ҋwۻg{ƌ3nZ_nGlۻ1muM7H"Ay|Y`[Z [Ow‰֯߰Q7L*È?{<}.Uf?];Lo?E(@ =|zߋ ȡ XTEĨ@[ܒݶ:|s{iZB@c{_جmrx&E BzB)[X(3%rx0 mC(gkCܕe3+r_Fnz=xDFruҲm ZeZ(=S'BЀ{g #&P(A_:o?l&L f҈_U$~KU)(3f#}67 $(X /Ɗ `ÈC2Û#["LC?[WGW+w>/'oP !{o#I}#שּׁc{zfٙr%hȐ6قD`XA CH ,ChÂ.s}U]]YUy_#ex/"2+2*w/^devnQՀD ZaYOT,+w51Zit^ԠϏo;TdH.E_* $ 6\tGu _m}h,֏o.wԥS- ur}o]p4F'LG@鐓V(EViEsF A`Q rP" 5W &>OMǹy8qSwnsS|-N#  ]&* HlKZ.߸f0 >4;35>xC+ t댑nV@D H: PH1~muwu,8 g }ЏKCu D" e5 Go$W % Y(oݺ]Q?m>!,wc>ы~S!eQ&qREQ7I,2$R LS@<N>O듩mn#M;1X~/>FVFCχ JEFED"Jbx# 7^ n~rPܼ p(/Ҕ2 HdS`g2##(^Һ- A 2]"2$ɱmy IDAT*6\ut:hb _<=ESX ]5CED"%m fdgfnp)8P=Pw0K"َ/5dDdH$Rr&޿wZ5oHĴ0%'t1N1RAt= B^ @p H]I@-krPLD.Rf@I8.W{z"7$"@"M)P7yB!pӾd|w8EP I(2$a9 `U3(!K[_ܽc?#6 6B:LdH$ҸE4b`usky/s+<,<YdtH$d,0Vrܪ#Cc~P'3'nM[/ol]!q$Z%fV=Scs~7-?}7a6*2# D"5CRR&QdiKXg鐩@x)NruZcL{ G(]/'@ߋY^(PdH$҆iMjҙZ4,6 =_=(/_`6L:XDj#QDrKa7k fQDnNu{u7@QG/|#aFCDD"- z0kP(tNbtq Ƙzl>&_Zع_yl&ztH$7e$ƭ5Z0 ppy7@pc[mo B!"@"%M!=u]m3,E:08^HO,_u׮(!%@&MED"y)-oL|=2+/>ҟ:  vH$/b]?Ƹ~Z [e~;xyŗ߁} #"@"%2 %n ,N#:8Iy~A[qZܵ_ 5W P6䦌/|Ÿ@#7]6ԝĈ?L1_}BЛ q`ۉ Dr[&W߶m;?}Cx)7H$|?ڻw^M5l# mXTGH1lW 9d3_kTc=Գ'º]R]R:G}w;^1,[|cotqh>oϡ#ŗ=d#;Dd+̭^nAdO>ʛG"@~e}z_A1 ~^>߁Çk*(Q}r7KV3k>2he%/PK\5l3pkg [Bww@]p3C]aX:գNbiCNdR/ e*K w'A^Я[wEQ@+Ud:w'~xx@EF?PKo lbnݺw׊Ro* Mu[i4fWo\yM@l@6s<B큁޿AQkMPJ|Gi6͡JP3Qd07?- ~ɥ ,fNOOLΝdaax'@@S=.*/SoZG%,d?`O.\2ϿJ`&#ٿw:zl_N෈#|uut Zܯ5_TAK/wW^5yOo2dt?3BP{'9WKjUZ!_j-ß埯e/̀P@ HRG- ;o~r8_V_߽|(V%)& kdp06H 1CIC@-#|ϯ^˥̀l8bGi?2ѳlUoGw ?7zzbWvm:գ ~T5`fO@jlfn~ў}}u*[JE=Ǣў~5W*.gKT;7LLLAܵЪd'/8l۪~X_W_}n]?cotL1~=Q\.;S2)2( Zo|/ľSno3"lϛW:)@8bjX) WrKΟAUVj^糵b߿bB~/>sӑr?m~'1 ?d3Śa[ujl @JԘKWphh_sR7,?ÑH[pxPe$K *x#PpXײ~ݻO~9;^~&_r?i_sW Hɞ#Ǣ8}hCT^|3gO+Qq>~V?:iiPӥ:R,FƒL&pueK&@5[㷏92cϞC=HL8z43[1_GoL7^Qn(@4WTA믛б}{N?u Ug3/?;hJO*?H>l۱NΖZ,MTmT,|>?J$ff'FFИk@ȑ[#`+(}ƿG!Nz닩lT,3OM% @b]W_{.}~a:b+yWD)/p*h۶c'=W^:U5uA+˪ed4MhU5-ijFԬjMCAQ+|*E}>- )JPPQ( <miq$tC8g j^wt*=H5n!y 2 ~~[0<]n}n*[1-c']L}~I0Y3]"xg6즁_wnx~vm?j}m!3|x 2'ioG& kSْC-cimc8u:@ӠN෍kg>oujF@,2m.ao׶m;ՙ@]~r;~b_S,9*|hcI{~En5'G+V~f)L Y@"2#D_};˭" Oc,."qn8y3;HgeeFq hS o~'zvLK7-|57 @)(FC乭%gy/.thVfI"Іr8odx={}5CyxL햶阯 Ƙ9)ou'1- ~ϛ[Of2|&`z<l/K/#eW#$.Ĵ?j|.h $$EzGf8= xʖyxe_Jo,Q QEg4yf$y$2m$I?f>۶:ұLv"ܯug1Laבx<>q E$59f:QeK|޼j<˴zk_b'75oq/1vw/+(_B @{ɪx˶m[we;C_I _wu;. i:tZ|_"tc7+?ve_#R._|L*%>o^Y#?oKKWP*xE}$j8}Ry'ꀺV?NbmsoZ)?9*c/Tl|Q%HS|wc,θG`~Zlo}mN>O* oDWϽ===_F._j#N/ aum\;yk!3]E,2-,'`0sߑ% ~bC*P(ggA P*^dZ_!^[`2/kN9_WEN_=##++WdP.`l@iI @ @t=3%cqs#VPI:D 񕫣F>Ed/`[@dZ_ BoP`9- <15w jPo =џPu |>HRdrja~$UiJr![NdZP66ot޽YϋÆ^m:+t ƘD=~ytqvාQR1˧L*%t"ɬWleЧ$*k!sD%o#nέ6H7 ~>o8") \6l6d҉t*LRL&21Y~e YX@~& @ɦiؽD~q_>u{utG .hFY* \6dL:NSZ2X/ y- `FˢV XPD5%j_^# _H2-8 ԝܯug1:5jj.KeD&NdRd*Jq9yh C_[2wz o?W)V'zC MqWw^Srt*H$VUUe5\uc"0n.Ed5؉SG#蓵pON|20Y{`dK.^`>EH=~ i:t&6;=pq~q&N&P,^zbxOOc7_M֔? tĉ_)t#uG\ᮐ#I&cfg``_̀l=F!,UG с-[޷n(T?qN_9J$[zlϛW:KϪ#g̀S`U kݛu =+}!,˻ 1Mg\u#kM{95{?O% зg}y ^}#EƵZӄ??)"2 w޽#H /q~t؁Ao}\?4`~nLyfe9Em?r%2'?~EQ8΍#[wnz{ ;Vw y X[Pd6Y mY918'P߄/_?b}ڟUa=ʞŽ NAc?It"l> lb,."/_PI:D*L&Q?3IԪD;>$նh&"W[u{utG .X[uڏQ>'1o {<͕U#D3w~~-;iשyɤ_<ܿ?.[t!ؓD`%mAu_ ;)_ Nb\?kj޺_, k׮|\(F~|yF_OCd6A#@ 2e=O/ߴ:ԝVl IDATu{;tƈx6^F:?B)P5MV {=WW.IPw ~[՝N&]!Mi8 ?`03FDrKd3IL{_rᮐ4F:g~Pi"dqq@ "Q/ 16~b*[e:8I'n] g"=9~qu'1~?NbH7c~?6Ed];NCnor鰗nx~vZo^1\e\+} )"F ɜ:v`S;Љ෎kg[ǵ ݊8ˇ4j% @"mTdq ?@8I7nYCouĘWMb?ϧ+0HM&J2i ?0Ȯ!K.Gߏ5ͱm}3_/@@$E;[?E76~U%Dbl6jHPdpp%~ Z O{r1W|FS;z47CNjށB$5 Mqz_?~w c;gqptFDhx2lBL_g~'1 ~H(w5$5]dh4@/Ln.`7N(q- ~fkB0.?3Pdg<U|~S~ =p+q&_kS>@ϗPx/G.# ً zn4{PyeiuMq@ h,DSom-Hne=1&Ӊwt+8ǹ~ie3~4$6to_G5(ojLSnvO?\E:%UU5yEZv1t1lc4[;)øeLjpԯ,c#q iZRەS۵OSylF@c#@?iKE@)yl  5IdWxyێ/" :i snݸJ$Jl6>Z}ܹ}={n۶;ӻE댩lϛW\cϚcI 7 ?"[޾kyQQ,&Ř7JV^"jK TU&gg'{{ݻێ{lABI;sMCAogiZ&ISh4 X[7r(gMQ"P(筪 UNFPB++w/T48q/( i9yL˰:"@2H=o{7 bH$VI)lşWӚ෎il6Jdbemume5/JJ'c箽;w>w 9b}<ĥT@r]d(MӴ w4nsʒpg/{wyI@x<6z+dPfߍ%o'֒p-PXw AӇWsL*NœR<\(ЗJ:N>O?w{8jOD"[ @".2JW㵵ձ+#_*wnGQ6 @豈J;ʥ, Av B`a~~ma~~;z'Ne :b+5˦sl2&2t"JT*PU)qت\>q-C͟Ϥ CFV%yrه/R($~m@.K^t/gPfFhʥ_WrKûN6. <&/e%ʒAё /{Wl_K̔c7~ן@InIA_  >F 0QёnٻXgPni6>6zeԌ̀ D>QdK?>>|ݻw? Ag;_f @rM2EUYN_PP @/~[e@ϽG^Էbo/k<W`??ol^~4a ?Lʀw`g~T ~y\{wo]DtU'&1e%2c\v}7}@S]\ ` g5h4ƥkYPT୴blw_/͟=p%bJհ,bqOFQ[E bCÅ/^f@+P&<|Prw/2dIu]C@&c3Bӱ07 X_9y̻ǘ ϑ H$D;ui+R3`tzra|yiW^}whhJLf_hmmmܾ|!?L "}߿{_| y95&'UM߿YTZ}64+7%o42Tڥqĩsw8젾T~CMS++?RSDU0h_j|NzG ?/lyVWgh |] 0]奥x|dphx/격yn/-?bo Ew<YTUx:r>:?xBw '~x zCeeH$WD[3{Q \l秦'ǟ}7w4ٙWʍDTd7D}fa NN_:ުS6 P( gߋ7珳[>uŸ.L^__[zԙ"P_4uiqOUU]~+gInZAi.oJ*_?,=5dK_e,SO>̱c`+_4wo߼ }#g}r?q㐩F#`Ff}(7d/xD"mn]!Mi8N#2*kߋت_|b3kƪQ@ Sm6\ZL&86?=oUK[FTYsB*?VUsDwn޸45>s/|cph^{:$ (J7lrෂScGÜ2=ff.:rm7 bYǕKGaXu{hdۼoTB(0:nJҝ7(_gVw6f/?y5|cIUP\[@Pg4 ӏ?qɓ/D2x?Y7$X_$#jNa"tࡷ|~tm.]),)imްF4"Db' 1aӎkϒ̽a"@&Xm~1M $BoN=~wHpn=iӓ7o\Khxr9Bs:4(^Z?232|>tc/ue-j~W ̛5c; 2>649 ,dt(_.޸vߟhO=ʖ-4mvqr >x F8r,G}m:n6rU//i 禍e 4f ͪׯ]'x}hSO>J%63XF?'Y~')2$>cJX,/?'K~ p$f;ݑՕ+.|N7稱/8^2| $2Ȯ,$Æ;iZ_@}eY ~0b0bYI@U'{_xSP0j SL.K>oPzxdbCP|Jwt*9??7{ka~~ \Oy#Uc.&  R(ҷo];W3)c~֛4B >'64ߗvxP~YXyC)ZmKhߥ1 xѕ}~B!199~-e0Uf8T(J:|ՐiKPDχU=K>#641e4,+ǿXIi"" G;DEQ[l>][[z](Nδǹ~KƟoMӪ7ԞYYn_T&sWNhCYc>s_LU[Mjz}NWp%K`nfj–0&ZZ7TM+} ?N 4oraR!QIUH/AhS JCeG7,>:6=h7K<:zb8^̴'%%k+ ުJqi`l'WÈ ߮X"fMG?6C#JJЏfWK(-rKו,.-\޷o+a1i8o϶''D3EQzX)Nƴ2oc.9=:>~HPmor0a0v)* ԡ"С0XW/Yw̋͢1hd,0}[ P,MNM܀ȦYolmWKD["F>CH," sEgLժ|np~}Y|­ڮ`UK jAjڮNZ2IDATR @H3܋i\ש2B0 p5Ar@IU .@^/`rO8U'}g.mBrƀcc5M+~"! k[lvM JJ캽vsB< jsuj~5hSuX*jc I%2$l-5c?4d$C v7_[$%]qR1Rw d@7rbmmnu%~A}#h *0R $@4v|u>c#Tv8gplہH$DDHRl,`&  :3?73Cv] 裟 cm&!H dqMZ u͟W뮄ZSJSϗF&鈁H$R2וWe96_bB"z0-{{zwF{p/}Pț]y %U͗JZRF|` jeYD f#@&զ^72$ e`& e/((jW'|`0_+>|>_ϯ4hB1_(R!_|1i!2yQUI&24dPo C;~y\.9$LW?VewQ',b)L@ |_wԥ"@"Y 1>CLeFP< qh¢j(?Z8fHD"uHUJ0 l]ZNw'Ř$ ɉ0<Vc)n'H$2$w Q^|Q|za5`6mfK{ED5o@7֢RfBx3(O""@"YH#z{%/"?hJ[D" @"#[ _B Xi_fؚ7~#H$dH$[qM_2ynVK?`-2g2H$2$#M;;洨_~j,I$ z[!oM$ Ԙ`OVd;D2  I 4|K'EH$T't6ͺD"IEDDI$fgB"H$DD"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"P?TiGIENDB`PKh0DEE"simpy-3.0.4/_static/searchtools.js/* * searchtools.js_t * ~~~~~~~~~~~~~~~~ * * Sphinx JavaScript utilties for the full-text search. * * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /** * Porter Stemmer */ var Stemmer = function() { var step2list = { ational: 'ate', tional: 'tion', enci: 'ence', anci: 'ance', izer: 'ize', bli: 'ble', alli: 'al', entli: 'ent', eli: 'e', ousli: 'ous', ization: 'ize', ation: 'ate', ator: 'ate', alism: 'al', iveness: 'ive', fulness: 'ful', ousness: 'ous', aliti: 'al', iviti: 'ive', biliti: 'ble', logi: 'log' }; var step3list = { icate: 'ic', ative: '', alize: 'al', iciti: 'ic', ical: 'ic', ful: '', ness: '' }; var c = "[^aeiou]"; // consonant var v = "[aeiouy]"; // vowel var C = c + "[^aeiouy]*"; // consonant sequence var V = v + "[aeiou]*"; // vowel sequence var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 var s_v = "^(" + C + ")?" + v; // vowel in stem this.stemWord = function (w) { var stem; var suffix; var firstch; var origword = w; if (w.length < 3) return w; var re; var re2; var re3; var re4; firstch = w.substr(0,1); if (firstch == "y") w = firstch.toUpperCase() + w.substr(1); // Step 1a re = /^(.+?)(ss|i)es$/; re2 = /^(.+?)([^s])s$/; if (re.test(w)) w = w.replace(re,"$1$2"); else if (re2.test(w)) w = w.replace(re2,"$1$2"); // Step 1b re = /^(.+?)eed$/; re2 = /^(.+?)(ed|ing)$/; if (re.test(w)) { var fp = re.exec(w); re = new RegExp(mgr0); if (re.test(fp[1])) { re = /.$/; w = w.replace(re,""); } } else if (re2.test(w)) { var fp = re2.exec(w); stem = fp[1]; re2 = new RegExp(s_v); if (re2.test(stem)) { w = stem; re2 = /(at|bl|iz)$/; re3 = new RegExp("([^aeiouylsz])\\1$"); re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); if (re2.test(w)) w = w + "e"; else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); } else if (re4.test(w)) w = w + "e"; } } // Step 1c re = /^(.+?)y$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; re = new RegExp(s_v); if (re.test(stem)) w = stem + "i"; } // Step 2 re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; suffix = fp[2]; re = new RegExp(mgr0); if (re.test(stem)) w = stem + step2list[suffix]; } // Step 3 re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; suffix = fp[2]; re = new RegExp(mgr0); if (re.test(stem)) w = stem + step3list[suffix]; } // Step 4 re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; re2 = /^(.+?)(s|t)(ion)$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; re = new RegExp(mgr1); if (re.test(stem)) w = stem; } else if (re2.test(w)) { var fp = re2.exec(w); stem = fp[1] + fp[2]; re2 = new RegExp(mgr1); if (re2.test(stem)) w = stem; } // Step 5 re = /^(.+?)e$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; re = new RegExp(mgr1); re2 = new RegExp(meq1); re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) w = stem; } re = /ll$/; re2 = new RegExp(mgr1); if (re.test(w) && re2.test(w)) { re = /.$/; w = w.replace(re,""); } // and turn initial Y back to y if (firstch == "y") w = firstch.toLowerCase() + w.substr(1); return w; } } /** * Simple result scoring code. */ var Scorer = { // Implement the following function to further tweak the score for each result // The function takes a result array [filename, title, anchor, descr, score] // and returns the new score. /* score: function(result) { return result[4]; }, */ // query matches the full name of an object objNameMatch: 11, // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object objPrio: {0: 15, // used to be importantResults 1: 5, // used to be objectResults 2: -5}, // used to be unimportantResults // Used when the priority is not in the mapping. objPrioDefault: 0, // query found in title title: 15, // query found in terms term: 5 }; /** * Search Module */ var Search = { _index : null, _queued_query : null, _pulse_status : -1, init : function() { var params = $.getQueryParameters(); if (params.q) { var query = params.q[0]; $('input[name="q"]')[0].value = query; this.performSearch(query); } }, loadIndex : function(url) { $.ajax({type: "GET", url: url, data: null, dataType: "script", cache: true, complete: function(jqxhr, textstatus) { if (textstatus != "success") { document.getElementById("searchindexloader").src = url; } }}); }, setIndex : function(index) { var q; this._index = index; if ((q = this._queued_query) !== null) { this._queued_query = null; Search.query(q); } }, hasIndex : function() { return this._index !== null; }, deferQuery : function(query) { this._queued_query = query; }, stopPulse : function() { this._pulse_status = 0; }, startPulse : function() { if (this._pulse_status >= 0) return; function pulse() { var i; Search._pulse_status = (Search._pulse_status + 1) % 4; var dotString = ''; for (i = 0; i < Search._pulse_status; i++) dotString += '.'; Search.dots.text(dotString); if (Search._pulse_status > -1) window.setTimeout(pulse, 500); } pulse(); }, /** * perform a search for something (or wait until index is loaded) */ performSearch : function(query) { // create the required interface elements this.out = $('#search-results'); this.title = $('

' + _('Searching') + '

').appendTo(this.out); this.dots = $('').appendTo(this.title); this.status = $('

').appendTo(this.out); this.output = $('