Commit f4cef2d9 authored by Richard's avatar Richard Committed by Vincent Bechu

Update Pyodide and and new libraries

/reviewed-on nexedi/erp5!741
parents 086285fa 3efde831
"""
Cycler
======
Cycling through combinations of values, producing dictionaries.
You can add cyclers::
from cycler import cycler
cc = (cycler(color=list('rgb')) +
cycler(linestyle=['-', '--', '-.']))
for d in cc:
print(d)
Results in::
{'color': 'r', 'linestyle': '-'}
{'color': 'g', 'linestyle': '--'}
{'color': 'b', 'linestyle': '-.'}
You can multiply cyclers::
from cycler import cycler
cc = (cycler(color=list('rgb')) *
cycler(linestyle=['-', '--', '-.']))
for d in cc:
print(d)
Results in::
{'color': 'r', 'linestyle': '-'}
{'color': 'r', 'linestyle': '--'}
{'color': 'r', 'linestyle': '-.'}
{'color': 'g', 'linestyle': '-'}
{'color': 'g', 'linestyle': '--'}
{'color': 'g', 'linestyle': '-.'}
{'color': 'b', 'linestyle': '-'}
{'color': 'b', 'linestyle': '--'}
{'color': 'b', 'linestyle': '-.'}
"""
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import six
from itertools import product, cycle
from six.moves import zip, reduce
from operator import mul, add
import copy
__version__ = '0.10.0'
def _process_keys(left, right):
"""
Helper function to compose cycler keys
Parameters
----------
left, right : iterable of dictionaries or None
The cyclers to be composed
Returns
-------
keys : set
The keys in the composition of the two cyclers
"""
l_peek = next(iter(left)) if left is not None else {}
r_peek = next(iter(right)) if right is not None else {}
l_key = set(l_peek.keys())
r_key = set(r_peek.keys())
if l_key & r_key:
raise ValueError("Can not compose overlapping cycles")
return l_key | r_key
class Cycler(object):
"""
Composable cycles
This class has compositions methods:
``+``
for 'inner' products (zip)
``+=``
in-place ``+``
``*``
for outer products (itertools.product) and integer multiplication
``*=``
in-place ``*``
and supports basic slicing via ``[]``
Parameters
----------
left : Cycler or None
The 'left' cycler
right : Cycler or None
The 'right' cycler
op : func or None
Function which composes the 'left' and 'right' cyclers.
"""
def __call__(self):
return cycle(self)
def __init__(self, left, right=None, op=None):
"""Semi-private init
Do not use this directly, use `cycler` function instead.
"""
if isinstance(left, Cycler):
self._left = Cycler(left._left, left._right, left._op)
elif left is not None:
# Need to copy the dictionary or else that will be a residual
# mutable that could lead to strange errors
self._left = [copy.copy(v) for v in left]
else:
self._left = None
if isinstance(right, Cycler):
self._right = Cycler(right._left, right._right, right._op)
elif right is not None:
# Need to copy the dictionary or else that will be a residual
# mutable that could lead to strange errors
self._right = [copy.copy(v) for v in right]
else:
self._right = None
self._keys = _process_keys(self._left, self._right)
self._op = op
@property
def keys(self):
"""
The keys this Cycler knows about
"""
return set(self._keys)
def change_key(self, old, new):
"""
Change a key in this cycler to a new name.
Modification is performed in-place.
Does nothing if the old key is the same as the new key.
Raises a ValueError if the new key is already a key.
Raises a KeyError if the old key isn't a key.
"""
if old == new:
return
if new in self._keys:
raise ValueError("Can't replace %s with %s, %s is already a key" %
(old, new, new))
if old not in self._keys:
raise KeyError("Can't replace %s with %s, %s is not a key" %
(old, new, old))
self._keys.remove(old)
self._keys.add(new)
if self._right is not None and old in self._right.keys:
self._right.change_key(old, new)
# self._left should always be non-None
# if self._keys is non-empty.
elif isinstance(self._left, Cycler):
self._left.change_key(old, new)
else:
# It should be completely safe at this point to
# assume that the old key can be found in each
# iteration.
self._left = [{new: entry[old]} for entry in self._left]
def _compose(self):
"""
Compose the 'left' and 'right' components of this cycle
with the proper operation (zip or product as of now)
"""
for a, b in self._op(self._left, self._right):
out = dict()
out.update(a)
out.update(b)
yield out
@classmethod
def _from_iter(cls, label, itr):
"""
Class method to create 'base' Cycler objects
that do not have a 'right' or 'op' and for which
the 'left' object is not another Cycler.
Parameters
----------
label : str
The property key.
itr : iterable
Finite length iterable of the property values.
Returns
-------
cycler : Cycler
New 'base' `Cycler`
"""
ret = cls(None)
ret._left = list({label: v} for v in itr)
ret._keys = set([label])
return ret
def __getitem__(self, key):
# TODO : maybe add numpy style fancy slicing
if isinstance(key, slice):
trans = self.by_key()
return reduce(add, (_cycler(k, v[key])
for k, v in six.iteritems(trans)))
else:
raise ValueError("Can only use slices with Cycler.__getitem__")
def __iter__(self):
if self._right is None:
return iter(dict(l) for l in self._left)
return self._compose()
def __add__(self, other):
"""
Pair-wise combine two equal length cycles (zip)
Parameters
----------
other : Cycler
The second Cycler
"""
if len(self) != len(other):
raise ValueError("Can only add equal length cycles, "
"not {0} and {1}".format(len(self), len(other)))
return Cycler(self, other, zip)
def __mul__(self, other):
"""
Outer product of two cycles (`itertools.product`) or integer
multiplication.
Parameters
----------
other : Cycler or int
The second Cycler or integer
"""
if isinstance(other, Cycler):
return Cycler(self, other, product)
elif isinstance(other, int):
trans = self.by_key()
return reduce(add, (_cycler(k, v*other)
for k, v in six.iteritems(trans)))
else:
return NotImplemented
def __rmul__(self, other):
return self * other
def __len__(self):
op_dict = {zip: min, product: mul}
if self._right is None:
return len(self._left)
l_len = len(self._left)
r_len = len(self._right)
return op_dict[self._op](l_len, r_len)
def __iadd__(self, other):
"""
In-place pair-wise combine two equal length cycles (zip)
Parameters
----------
other : Cycler
The second Cycler
"""
if not isinstance(other, Cycler):
raise TypeError("Cannot += with a non-Cycler object")
# True shallow copy of self is fine since this is in-place
old_self = copy.copy(self)
self._keys = _process_keys(old_self, other)
self._left = old_self
self._op = zip
self._right = Cycler(other._left, other._right, other._op)
return self
def __imul__(self, other):
"""
In-place outer product of two cycles (`itertools.product`)
Parameters
----------
other : Cycler
The second Cycler
"""
if not isinstance(other, Cycler):
raise TypeError("Cannot *= with a non-Cycler object")
# True shallow copy of self is fine since this is in-place
old_self = copy.copy(self)
self._keys = _process_keys(old_self, other)
self._left = old_self
self._op = product
self._right = Cycler(other._left, other._right, other._op)
return self
def __eq__(self, other):
"""
Check equality
"""
if len(self) != len(other):
return False
if self.keys ^ other.keys:
return False
return all(a == b for a, b in zip(self, other))
def __repr__(self):
op_map = {zip: '+', product: '*'}
if self._right is None:
lab = self.keys.pop()
itr = list(v[lab] for v in self)
return "cycler({lab!r}, {itr!r})".format(lab=lab, itr=itr)
else:
op = op_map.get(self._op, '?')
msg = "({left!r} {op} {right!r})"
return msg.format(left=self._left, op=op, right=self._right)
def _repr_html_(self):
# an table showing the value of each key through a full cycle
output = "<table>"
sorted_keys = sorted(self.keys, key=repr)
for key in sorted_keys:
output += "<th>{key!r}</th>".format(key=key)
for d in iter(self):
output += "<tr>"
for k in sorted_keys:
output += "<td>{val!r}</td>".format(val=d[k])
output += "</tr>"
output += "</table>"
return output
def by_key(self):
"""Values by key
This returns the transposed values of the cycler. Iterating
over a `Cycler` yields dicts with a single value for each key,
this method returns a `dict` of `list` which are the values
for the given key.
The returned value can be used to create an equivalent `Cycler`
using only `+`.
Returns
-------
transpose : dict
dict of lists of the values for each key.
"""
# TODO : sort out if this is a bottle neck, if there is a better way
# and if we care.
keys = self.keys
# change this to dict comprehension when drop 2.6
out = dict((k, list()) for k in keys)
for d in self:
for k in keys:
out[k].append(d[k])
return out
# for back compatibility
_transpose = by_key
def simplify(self):
"""Simplify the Cycler
Returned as a composition using only sums (no multiplications)
Returns
-------
simple : Cycler
An equivalent cycler using only summation"""
# TODO: sort out if it is worth the effort to make sure this is
# balanced. Currently it is is
# (((a + b) + c) + d) vs
# ((a + b) + (c + d))
# I would believe that there is some performance implications
trans = self.by_key()
return reduce(add, (_cycler(k, v) for k, v in six.iteritems(trans)))
def concat(self, other):
"""Concatenate this cycler and an other.
The keys must match exactly.
This returns a single Cycler which is equivalent to
`itertools.chain(self, other)`
Examples
--------
>>> num = cycler('a', range(3))
>>> let = cycler('a', 'abc')
>>> num.concat(let)
cycler('a', [0, 1, 2, 'a', 'b', 'c'])
Parameters
----------
other : `Cycler`
The `Cycler` to concatenate to this one.
Returns
-------
ret : `Cycler`
The concatenated `Cycler`
"""
return concat(self, other)
def concat(left, right):
"""Concatenate two cyclers.
The keys must match exactly.
This returns a single Cycler which is equivalent to
`itertools.chain(left, right)`
Examples
--------
>>> num = cycler('a', range(3))
>>> let = cycler('a', 'abc')
>>> num.concat(let)
cycler('a', [0, 1, 2, 'a', 'b', 'c'])
Parameters
----------
left, right : `Cycler`
The two `Cycler` instances to concatenate
Returns
-------
ret : `Cycler`
The concatenated `Cycler`
"""
if left.keys != right.keys:
msg = '\n\t'.join(["Keys do not match:",
"Intersection: {both!r}",
"Disjoint: {just_one!r}"]).format(
both=left.keys & right.keys,
just_one=left.keys ^ right.keys)
raise ValueError(msg)
_l = left.by_key()
_r = right.by_key()
return reduce(add, (_cycler(k, _l[k] + _r[k]) for k in left.keys))
def cycler(*args, **kwargs):
"""
Create a new `Cycler` object from a single positional argument,
a pair of positional arguments, or the combination of keyword arguments.
cycler(arg)
cycler(label1=itr1[, label2=iter2[, ...]])
cycler(label, itr)
Form 1 simply copies a given `Cycler` object.
Form 2 composes a `Cycler` as an inner product of the
pairs of keyword arguments. In other words, all of the
iterables are cycled simultaneously, as if through zip().
Form 3 creates a `Cycler` from a label and an iterable.
This is useful for when the label cannot be a keyword argument
(e.g., an integer or a name that has a space in it).
Parameters
----------
arg : Cycler
Copy constructor for Cycler (does a shallow copy of iterables).
label : name
The property key. In the 2-arg form of the function,
the label can be any hashable object. In the keyword argument
form of the function, it must be a valid python identifier.
itr : iterable
Finite length iterable of the property values.
Can be a single-property `Cycler` that would
be like a key change, but as a shallow copy.
Returns
-------
cycler : Cycler
New `Cycler` for the given property
"""
if args and kwargs:
raise TypeError("cyl() can only accept positional OR keyword "
"arguments -- not both.")
if len(args) == 1:
if not isinstance(args[0], Cycler):
raise TypeError("If only one positional argument given, it must "
" be a Cycler instance.")
return Cycler(args[0])
elif len(args) == 2:
return _cycler(*args)
elif len(args) > 2:
raise TypeError("Only a single Cycler can be accepted as the lone "
"positional argument. Use keyword arguments instead.")
if kwargs:
return reduce(add, (_cycler(k, v) for k, v in six.iteritems(kwargs)))
raise TypeError("Must have at least a positional OR keyword arguments")
def _cycler(label, itr):
"""
Create a new `Cycler` object from a property name and
iterable of values.
Parameters
----------
label : hashable
The property key.
itr : iterable
Finite length iterable of the property values.
Returns
-------
cycler : Cycler
New `Cycler` for the given property
"""
if isinstance(itr, Cycler):
keys = itr.keys
if len(keys) != 1:
msg = "Can not create Cycler from a multi-property Cycler"
raise ValueError(msg)
lab = keys.pop()
# Doesn't need to be a new list because
# _from_iter() will be creating that new list anyway.
itr = (v[lab] for v in itr)
return Cycler._from_iter(label, itr)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>cycler.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module=typeof pyodide!=="undefined"?pyodide:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="cycler.data";var REMOTE_PACKAGE_BASE="cycler.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.6",true,true);Module["FS_createPath"]("/lib/python3.6","site-packages",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","cycler-0.10.0-py3.6.egg-info",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,function(){Module["removeRunDependency"]("fp "+that.name)},function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{err("Preloading file "+that.name+" failed")}},false,true);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])err("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_cycler.data")}Module["addRunDependency"]("datafile_cycler.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{filename:"/lib/python3.6/site-packages/cycler.py",start:0,end:15959,audio:0},{filename:"/lib/python3.6/site-packages/__pycache__/cycler.cpython-36.pyc",start:15959,end:31999,audio:0},{filename:"/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg-info/top_level.txt",start:31999,end:32006,audio:0},{filename:"/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg-info/dependency_links.txt",start:32006,end:32007,audio:0},{filename:"/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg-info/PKG-INFO",start:32007,end:32720,audio:0},{filename:"/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg-info/SOURCES.txt",start:32720,end:33110,audio:0},{filename:"/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg-info/requires.txt",start:33110,end:33114,audio:0}],remote_package_size:33114,package_uuid:"49e462f0-cff7-482f-b8b2-7b414ac838db"})})();
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>cycler.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>iodide.master.fonts</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensans.ttf</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensans.woff</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/font-woff</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensans.woff2</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensansbold.ttf</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensansbold.woff</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/font-woff</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensansbold.woff2</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensansextrabold.woff2</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>opensansitalic.woff2</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>kiwisolver.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module=typeof pyodide!=="undefined"?pyodide:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="kiwisolver.data";var REMOTE_PACKAGE_BASE="kiwisolver.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.6",true,true);Module["FS_createPath"]("/lib/python3.6","site-packages",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","kiwisolver-1.0.1-py3.6.egg-info",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,function(){Module["removeRunDependency"]("fp "+that.name)},function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{err("Preloading file "+that.name+" failed")}},false,true);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])err("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_kiwisolver.data")}Module["addRunDependency"]("datafile_kiwisolver.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{filename:"/lib/python3.6/site-packages/kiwisolver.so",start:0,end:144087,audio:0},{filename:"/lib/python3.6/site-packages/kiwisolver-1.0.1-py3.6.egg-info/top_level.txt",start:144087,end:144098,audio:0},{filename:"/lib/python3.6/site-packages/kiwisolver-1.0.1-py3.6.egg-info/dependency_links.txt",start:144098,end:144099,audio:0},{filename:"/lib/python3.6/site-packages/kiwisolver-1.0.1-py3.6.egg-info/PKG-INFO",start:144099,end:145168,audio:0},{filename:"/lib/python3.6/site-packages/kiwisolver-1.0.1-py3.6.egg-info/SOURCES.txt",start:145168,end:145846,audio:0},{filename:"/lib/python3.6/site-packages/kiwisolver-1.0.1-py3.6.egg-info/requires.txt",start:145846,end:145857,audio:0}],remote_package_size:145857,package_uuid:"8f0d0a23-11d4-41e9-9503-f90b53718e97"})})();
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>kiwisolver.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>matplotlib.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module=typeof pyodide!=="undefined"?pyodide:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="matplotlib.data";var REMOTE_PACKAGE_BASE="matplotlib.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.6",true,true);Module["FS_createPath"]("/lib/python3.6","site-packages",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","matplotlib-2.2.2-py3.6.egg-info",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","matplotlib",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","projections",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/projections","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","testing",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/testing","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/testing","_nose",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/testing/_nose","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/testing/_nose","plugins",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/testing/_nose/plugins","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/testing","jpl_units",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/testing/jpl_units","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","style",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/style","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","cbook",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/cbook","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","compat",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/compat","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","sphinxext",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/sphinxext","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","axes",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/axes","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","mpl-data",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data","images",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data","stylelib",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data","fonts",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data/fonts","pdfcorefonts",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data/fonts","afm",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data/fonts","ttf",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data","sample_data",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data","axes_grid",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","backends",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends","qt_editor",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/qt_editor","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends","web_backend",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend","js",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend","css",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend","jquery",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery","js",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery","css",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css","themes",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes","base",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base","images",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib","tri",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/matplotlib/tri","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","mpl_toolkits",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits","axisartist",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits/axisartist","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits","mplot3d",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits/mplot3d","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits","axes_grid1",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits/axes_grid1","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits","axes_grid",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/mpl_toolkits/axes_grid","__pycache__",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,function(){Module["removeRunDependency"]("fp "+that.name)},function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{err("Preloading file "+that.name+" failed")}},false,true);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])err("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_matplotlib.data")}Module["addRunDependency"]("datafile_matplotlib.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{filename:"/lib/python3.6/site-packages/pylab.py",start:0,end:90,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6-nspkg.pth",start:90,end:463,audio:0},{filename:"/lib/python3.6/site-packages/__pycache__/pylab.cpython-36.pyc",start:463,end:671,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6.egg-info/top_level.txt",start:671,end:701,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6.egg-info/dependency_links.txt",start:701,end:702,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6.egg-info/namespace_packages.txt",start:702,end:715,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6.egg-info/PKG-INFO",start:715,end:1935,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6.egg-info/not-zip-safe",start:1935,end:1936,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6.egg-info/SOURCES.txt",start:1936,end:279431,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib-2.2.2-py3.6.egg-info/requires.txt",start:279431,end:279552,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/texmanager.py",start:279552,end:297937,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/docstring.py",start:297937,end:301932,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/dates.py",start:301932,end:363441,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sankey.py",start:363441,end:402265,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/streamplot.py",start:402265,end:424351,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_pylab_helpers.py",start:424351,end:428007,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_mathtext_data.py",start:428007,end:517512,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/widgets.py",start:517512,end:611204,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/artist.py",start:611204,end:657884,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/pylab.py",start:657884,end:668373,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/cm.py",start:668373,end:681027,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/stackplot.py",start:681027,end:685226,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_animation_data.py",start:685226,end:691383,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_tri.so",start:691383,end:1009319,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/path.py",start:1009319,end:1046885,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mathtext.py",start:1046885,end:1169374,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mlab.py",start:1169374,end:1294293,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/spines.py",start:1294293,end:1315436,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/offsetbox.py",start:1315436,end:1370974,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/scale.py",start:1370974,end:1390264,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_constrained_layout.py",start:1390264,end:1418650,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/fontconfig_pattern.py",start:1418650,end:1425450,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/bezier.py",start:1425450,end:1440905,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backend_bases.py",start:1440905,end:1555134,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_cm_listed.py",start:1555134,end:1617551,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/image.py",start:1617551,end:1672692,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/legend_handler.py",start:1672692,end:1698374,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/ttconv.so",start:1698374,end:2001134,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/lines.py",start:2001134,end:2051799,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tight_layout.py",start:2051799,end:2064705,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/colors.py",start:2064705,end:2137776,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/afm.py",start:2137776,end:2153974,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/container.py",start:2153974,end:2159535,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/dviread.py",start:2159535,end:2197741,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/contour.py",start:2197741,end:2265196,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/blocking_input.py",start:2265196,end:2276854,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/pyplot.py",start:2276854,end:2411346,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/animation.py",start:2411346,end:2478772,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/transforms.py",start:2478772,end:2580219,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/ft2font.so",start:2580219,end:2870121,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_image.so",start:2870121,end:3401691,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/legend.py",start:3401691,end:3454382,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axis.py",start:3454382,end:3544486,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/font_manager.py",start:3544486,end:3593016,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_qhull.so",start:3593016,end:4230568,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/patheffects.py",start:4230568,end:4244914,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/hatch.py",start:4244914,end:4252054,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/patches.py",start:4252054,end:4405173,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_color_data.py",start:4405173,end:4440069,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/markers.py",start:4440069,end:4471379,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/units.py",start:4471379,end:4478132,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/type1font.py",start:4478132,end:4490605,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_layoutbox.py",start:4490605,end:4515179,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/figure.py",start:4515179,end:4605490,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/ticker.py",start:4605490,end:4691736,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__init__.py",start:4691736,end:4756266,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/textpath.py",start:4756266,end:4772941,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/text.py",start:4772941,end:4853006,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/rcsetup.py",start:4853006,end:4910873,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/table.py",start:4910873,end:4933040,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_version.py",start:4933040,end:4933511,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/collections.py",start:4933511,end:5001677,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_cm.py",start:5001677,end:5068280,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backend_managers.py",start:5068280,end:5081407,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tight_bbox.py",start:5081407,end:5083992,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_contour.so",start:5083992,end:5357531,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/colorbar.py",start:5357531,end:5410325,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_path.so",start:5410325,end:5798933,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/quiver.py",start:5798933,end:5845016,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/gridspec.py",start:5845016,end:5863139,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backend_tools.py",start:5863139,end:5896783,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/category.py",start:5896783,end:5903331,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/_png.so",start:5903331,end:6164117,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/collections.cpython-36.pyc",start:6164117,end:6226285,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/dviread.cpython-36.pyc",start:6226285,end:6261527,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/lines.cpython-36.pyc",start:6261527,end:6301858,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/axis.cpython-36.pyc",start:6301858,end:6370770,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/streamplot.cpython-36.pyc",start:6370770,end:6389413,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/type1font.cpython-36.pyc",start:6389413,end:6399432,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/animation.cpython-36.pyc",start:6399432,end:6450003,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/colors.cpython-36.pyc",start:6450003,end:6514237,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/quiver.cpython-36.pyc",start:6514237,end:6549013,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/category.cpython-36.pyc",start:6549013,end:6556021,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/ticker.cpython-36.pyc",start:6556021,end:6631006,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_mathtext_data.cpython-36.pyc",start:6631006,end:6681663,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/figure.cpython-36.pyc",start:6681663,end:6757852,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/backend_tools.cpython-36.pyc",start:6757852,end:6789833,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/contour.cpython-36.pyc",start:6789833,end:6840043,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/backend_managers.cpython-36.pyc",start:6840043,end:6852095,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/docstring.cpython-36.pyc",start:6852095,end:6856719,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/stackplot.cpython-36.pyc",start:6856719,end:6860265,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/widgets.cpython-36.pyc",start:6860265,end:6936394,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/markers.cpython-36.pyc",start:6936394,end:6963286,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_cm.cpython-36.pyc",start:6963286,end:7006828,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/rcsetup.cpython-36.pyc",start:7006828,end:7043033,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/table.cpython-36.pyc",start:7043033,end:7061184,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/dates.cpython-36.pyc",start:7061184,end:7115222,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/fontconfig_pattern.cpython-36.pyc",start:7115222,end:7121066,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_version.cpython-36.pyc",start:7121066,end:7121505,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/blocking_input.cpython-36.pyc",start:7121505,end:7133079,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_pylab_helpers.cpython-36.pyc",start:7133079,end:7137126,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_constrained_layout.cpython-36.pyc",start:7137126,end:7147891,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/patches.cpython-36.pyc",start:7147891,end:7279873,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_color_data.cpython-36.pyc",start:7279873,end:7310203,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/texmanager.cpython-36.pyc",start:7310203,end:7325326,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/tight_bbox.cpython-36.pyc",start:7325326,end:7327842,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/pyplot.cpython-36.pyc",start:7327842,end:7437228,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/gridspec.cpython-36.pyc",start:7437228,end:7453030,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/hatch.cpython-36.pyc",start:7453030,end:7460648,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/legend.cpython-36.pyc",start:7460648,end:7500802,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/colorbar.cpython-36.pyc",start:7500802,end:7540610,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/__init__.cpython-36.pyc",start:7540610,end:7588710,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/afm.cpython-36.pyc",start:7588710,end:7603691,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/text.cpython-36.pyc",start:7603691,end:7668917,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/bezier.cpython-36.pyc",start:7668917,end:7680267,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/pylab.cpython-36.pyc",start:7680267,end:7691387,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/transforms.cpython-36.pyc",start:7691387,end:7787777,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/container.cpython-36.pyc",start:7787777,end:7794496,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/artist.cpython-36.pyc",start:7794496,end:7838279,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/offsetbox.cpython-36.pyc",start:7838279,end:7889939,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/mlab.cpython-36.pyc",start:7889939,end:8001664,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/tight_layout.cpython-36.pyc",start:8001664,end:8010737,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/image.cpython-36.pyc",start:8010737,end:8052442,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/units.cpython-36.pyc",start:8052442,end:8058500,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_layoutbox.cpython-36.pyc",start:8058500,end:8080601,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_cm_listed.cpython-36.pyc",start:8080601,end:8135358,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/sankey.cpython-36.pyc",start:8135358,end:8159913,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/scale.cpython-36.pyc",start:8159913,end:8180090,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/mathtext.cpython-36.pyc",start:8180090,end:8276409,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/cm.cpython-36.pyc",start:8276409,end:8288138,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/patheffects.cpython-36.pyc",start:8288138,end:8300884,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/_animation_data.cpython-36.pyc",start:8300884,end:8307119,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/textpath.cpython-36.pyc",start:8307119,end:8319629,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/font_manager.cpython-36.pyc",start:8319629,end:8358932,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/backend_bases.cpython-36.pyc",start:8358932,end:8460379,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/path.cpython-36.pyc",start:8460379,end:8491647,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/legend_handler.cpython-36.pyc",start:8491647,end:8512828,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/__pycache__/spines.cpython-36.pyc",start:8512828,end:8526770,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/projections/__init__.py",start:8526770,end:8529922,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/projections/polar.py",start:8529922,end:8585020,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/projections/geo.py",start:8585020,end:8604052,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/projections/__pycache__/geo.cpython-36.pyc",start:8604052,end:8623631,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/projections/__pycache__/__init__.cpython-36.pyc",start:8623631,end:8626881,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/projections/__pycache__/polar.cpython-36.pyc",start:8626881,end:8668716,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/compare.py",start:8668716,end:8686624,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/conftest.py",start:8686624,end:8689846,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/decorators.py",start:8689846,end:8711165,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/exceptions.py",start:8711165,end:8711303,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/determinism.py",start:8711303,end:8716227,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/noseclasses.py",start:8716227,end:8716918,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__init__.py",start:8716918,end:8718695,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/disable_internet.py",start:8718695,end:8723562,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/compare.cpython-36.pyc",start:8723562,end:8736119,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/decorators.cpython-36.pyc",start:8736119,end:8753911,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/disable_internet.cpython-36.pyc",start:8753911,end:8757322,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/__init__.cpython-36.pyc",start:8757322,end:8759129,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/noseclasses.cpython-36.pyc",start:8759129,end:8760156,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/conftest.cpython-36.pyc",start:8760156,end:8762490,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/exceptions.cpython-36.pyc",start:8762490,end:8762915,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/__pycache__/determinism.cpython-36.pyc",start:8762915,end:8767038,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/decorators.py",start:8767038,end:8768240,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/exceptions.py",start:8768240,end:8768491,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/__init__.py",start:8768491,end:8770810,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/__pycache__/decorators.cpython-36.pyc",start:8770810,end:8772005,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/__pycache__/__init__.cpython-36.pyc",start:8772005,end:8774202,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/__pycache__/exceptions.cpython-36.pyc",start:8774202,end:8774849,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/plugins/__init__.py",start:8774849,end:8774849,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/plugins/knownfailure.py",start:8774849,end:8776840,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/plugins/performgc.py",start:8776840,end:8777618,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/plugins/__pycache__/knownfailure.cpython-36.pyc",start:8777618,end:8779444,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/plugins/__pycache__/__init__.cpython-36.pyc",start:8779444,end:8779607,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/_nose/plugins/__pycache__/performgc.cpython-36.pyc",start:8779607,end:8780867,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/UnitDblFormatter.py",start:8780867,end:8782388,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/UnitDbl.py",start:8782388,end:8791796,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/EpochConverter.py",start:8791796,end:8797288,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/StrConverter.py",start:8797288,end:8802581,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/Epoch.py",start:8802581,end:8809832,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__init__.py",start:8809832,end:8813035,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/UnitDblConverter.py",start:8813035,end:8818572,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/Duration.py",start:8818572,end:8825290,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/UnitDbl.cpython-36.pyc",start:8825290,end:8833041,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/UnitDblConverter.cpython-36.pyc",start:8833041,end:8836661,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/StrConverter.cpython-36.pyc",start:8836661,end:8840441,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/Epoch.cpython-36.pyc",start:8840441,end:8845862,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/UnitDblFormatter.cpython-36.pyc",start:8845862,end:8847472,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/__init__.cpython-36.pyc",start:8847472,end:8850258,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/EpochConverter.cpython-36.pyc",start:8850258,end:8854833,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/testing/jpl_units/__pycache__/Duration.cpython-36.pyc",start:8854833,end:8860631,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/style/core.py",start:8860631,end:8868675,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/style/__init__.py",start:8868675,end:8868782,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/style/__pycache__/core.cpython-36.pyc",start:8868782,end:8875856,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/style/__pycache__/__init__.cpython-36.pyc",start:8875856,end:8876171,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/cbook/__init__.py",start:8876171,end:8963672,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/cbook/_backports.py",start:8963672,end:8968890,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/cbook/deprecation.py",start:8968890,end:8975958,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/cbook/__pycache__/deprecation.cpython-36.pyc",start:8975958,end:8982075,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/cbook/__pycache__/_backports.cpython-36.pyc",start:8982075,end:8986008,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/cbook/__pycache__/__init__.cpython-36.pyc",start:8986008,end:9070478,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/compat/subprocess.py",start:9070478,end:9072295,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/compat/__init__.py",start:9072295,end:9072295,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/compat/__pycache__/subprocess.cpython-36.pyc",start:9072295,end:9073741,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/compat/__pycache__/__init__.cpython-36.pyc",start:9073741,end:9073889,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/mathmpl.py",start:9073889,end:9077711,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/only_directives.py",start:9077711,end:9079951,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/__init__.py",start:9079951,end:9080060,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/plot_directive.py",start:9080060,end:9108488,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/__pycache__/plot_directive.cpython-36.pyc",start:9108488,end:9129401,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/__pycache__/mathmpl.cpython-36.pyc",start:9129401,end:9133348,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/__pycache__/only_directives.cpython-36.pyc",start:9133348,end:9135983,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/sphinxext/__pycache__/__init__.cpython-36.pyc",start:9135983,end:9136255,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/_axes.py",start:9136255,end:9437597,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/__init__.py",start:9437597,end:9437753,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/_subplots.py",start:9437753,end:9448088,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/_base.py",start:9448088,end:9596884,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/__pycache__/_subplots.cpython-36.pyc",start:9596884,end:9604399,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/__pycache__/_base.cpython-36.pyc",start:9604399,end:9727895,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/__pycache__/__init__.cpython-36.pyc",start:9727895,end:9728210,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/axes/__pycache__/_axes.cpython-36.pyc",start:9728210,end:9960760,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc",start:9960760,end:9993816,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/filesave.png",start:9993816,end:9994274,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/hand.png",start:9994274,end:9995253,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/subplots.pdf",start:9995253,end:9996967,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/forward.pdf",start:9996967,end:9998597,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/qt4_editor_options.svg",start:9998597,end:9999841,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/matplotlib_large.png",start:9999841,end:10002929,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/hand.pdf",start:10002929,end:10007101,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/subplots.png",start:10007101,end:10007546,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/back.png",start:10007546,end:10007926,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/matplotlib.png",start:10007926,end:10009209,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/back.svg",start:10009209,end:10010721,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/back_large.gif",start:10010721,end:10011520,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/move.pdf",start:10011520,end:10013387,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/subplots.gif",start:10013387,end:10014078,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/subplots_large.png",start:10014078,end:10014740,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/home.gif",start:10014740,end:10015406,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/back_large.png",start:10015406,end:10016026,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/filesave_large.gif",start:10016026,end:10017524,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/filesave_large.png",start:10017524,end:10018244,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/qt4_editor_options.pdf",start:10018244,end:10019812,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/zoom_to_rect_large.gif",start:10019812,end:10021268,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/move.gif",start:10021268,end:10021947,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/matplotlib.pdf",start:10021947,end:10044799,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/matplotlib.svg",start:10044799,end:10106886,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/forward.gif",start:10106886,end:10107476,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/zoom_to_rect.pdf",start:10107476,end:10109085,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/forward.png",start:10109085,end:10109442,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/zoom_to_rect.png",start:10109442,end:10109972,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/home_large.gif",start:10109972,end:10111394,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/home.png",start:10111394,end:10111862,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/back.pdf",start:10111862,end:10113485,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/forward_large.png",start:10113485,end:10114078,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/subplots.svg",start:10114078,end:10116208,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/home.svg",start:10116208,end:10118099,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/move_large.gif",start:10118099,end:10119050,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/filesave.pdf",start:10119050,end:10120784,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/hand.gif",start:10120784,end:10122051,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/move.png",start:10122051,end:10122532,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/qt4_editor_options_large.png",start:10122532,end:10123151,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/hand.svg",start:10123151,end:10128039,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/hand_large.gif",start:10128039,end:10129012,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/forward_large.gif",start:10129012,end:10129798,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/zoom_to_rect.gif",start:10129798,end:10130494,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/move_large.png",start:10130494,end:10131261,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/move.svg",start:10131261,end:10133770,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/filesave.gif",start:10133770,end:10134493,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/home.pdf",start:10134493,end:10136230,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/matplotlib.ppm",start:10136230,end:10137971,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/home_large.png",start:10137971,end:10138761,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/zoom_to_rect_large.png",start:10138761,end:10139777,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/filesave.svg",start:10139777,end:10141806,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/subplots_large.gif",start:10141806,end:10143156,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/qt4_editor_options.png",start:10143156,end:10143536,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/forward.svg",start:10143536,end:10145067,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/zoom_to_rect.svg",start:10145067,end:10146546,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/images/back.gif",start:10146546,end:10147154,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-pastel.mplstyle",start:10147154,end:10147298,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-dark.mplstyle",start:10147298,end:10147965,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/ggplot.mplstyle",start:10147965,end:10148922,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/Solarize_Light2.mplstyle",start:10148922,end:10150177,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-notebook.mplstyle",start:10150177,end:10150559,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/bmh.mplstyle",start:10150559,end:10151271,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/fast.mplstyle",start:10151271,end:10151559,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-deep.mplstyle",start:10151559,end:10151701,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle",start:10151701,end:10177315,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-poster.mplstyle",start:10177315,end:10177718,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-paper.mplstyle",start:10177718,end:10178111,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-darkgrid.mplstyle",start:10178111,end:10178781,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-dark-palette.mplstyle",start:10178781,end:10178923,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-muted.mplstyle",start:10178923,end:10179066,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle",start:10179066,end:10179898,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-ticks.mplstyle",start:10179898,end:10180563,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-colorblind.mplstyle",start:10180563,end:10180711,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-whitegrid.mplstyle",start:10180711,end:10181375,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/classic.mplstyle",start:10181375,end:10207044,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/grayscale.mplstyle",start:10207044,end:10207570,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-talk.mplstyle",start:10207570,end:10207973,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/dark_background.mplstyle",start:10207973,end:10208450,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-white.mplstyle",start:10208450,end:10209115,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn-bright.mplstyle",start:10209115,end:10209259,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/seaborn.mplstyle",start:10209259,end:10210389,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/tableau-colorblind10.mplstyle",start:10210389,end:10210579,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/ZapfDingbats.afm",start:10210579,end:10220106,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Courier-Bold.afm",start:10220106,end:10235439,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Courier-Oblique.afm",start:10235439,end:10250880,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Times-Italic.afm",start:10250880,end:10317208,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Times-Bold.afm",start:10317208,end:10381459,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Times-BoldItalic.afm",start:10381459,end:10441101,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Times-Roman.afm",start:10441101,end:10501561,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-Oblique.afm",start:10501561,end:10575953,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Symbol.afm",start:10575953,end:10585693,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Courier-BoldOblique.afm",start:10585693,end:10601092,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-Bold.afm",start:10601092,end:10670361,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-BoldOblique.afm",start:10670361,end:10739726,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica.afm",start:10739726,end:10814018,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/readme.txt",start:10814018,end:10814846,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts/Courier.afm",start:10814846,end:10830181,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pbkdi8a.afm",start:10830181,end:10845459,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/ptmbi8a.afm",start:10845459,end:10863529,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pcrbo8a.afm",start:10863529,end:10878951,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvb8a.afm",start:10878951,end:10896106,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pagk8a.afm",start:10896106,end:10913347,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/cmmi10.afm",start:10913347,end:10923763,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/ptmb8a.afm",start:10923763,end:10941746,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvro8a.afm",start:10941746,end:10959665,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvr8an.afm",start:10959665,end:10977446,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvr8a.afm",start:10977446,end:10995285,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pcrb8a.afm",start:10995285,end:11010637,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pcrr8a.afm",start:11010637,end:11025976,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pagd8a.afm",start:11025976,end:11043159,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pagko8a.afm",start:11043159,end:11060505,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pncb8a.afm",start:11060505,end:11076533,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/putbi8a.afm",start:11076533,end:11098464,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pcrro8a.afm",start:11098464,end:11113907,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pplr8a.afm",start:11113907,end:11129659,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pbkli8a.afm",start:11129659,end:11144840,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/cmex10.afm",start:11144840,end:11156910,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pplb8a.afm",start:11156910,end:11172572,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvbo8a.afm",start:11172572,end:11189802,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pncbi8a.afm",start:11189802,end:11207298,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvro8an.afm",start:11207298,end:11225175,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/ptmr8a.afm",start:11225175,end:11243117,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/psyr.afm",start:11243117,end:11252761,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvlo8a.afm",start:11252761,end:11268490,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pplbi8a.afm",start:11268490,end:11284300,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvl8a.afm",start:11284300,end:11299927,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pagdo8a.afm",start:11299927,end:11317182,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pzcmi8a.afm",start:11317182,end:11333432,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pbkd8a.afm",start:11333432,end:11348589,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvbo8an.afm",start:11348589,end:11365784,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/cmtt10.afm",start:11365784,end:11372285,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pncr8a.afm",start:11372285,end:11388950,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/putb8a.afm",start:11388950,end:11410482,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pbkl8a.afm",start:11410482,end:11425482,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/cmsy10.afm",start:11425482,end:11433777,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pncri8a.afm",start:11433777,end:11450697,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/putri8a.afm",start:11450697,end:11472588,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/cmr10.afm",start:11472588,end:11482689,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pzdr.afm",start:11482689,end:11492156,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/putr8a.afm",start:11492156,end:11514304,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/phvb8an.afm",start:11514304,end:11531390,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/pplri8a.afm",start:11531390,end:11547123,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm/ptmri8a.afm",start:11547123,end:11565191,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf",start:11565191,end:11905431,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf",start:11905431,end:12609559,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymReg.ttf",start:12609559,end:12625531,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif.ttf",start:12625531,end:13005271,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniIta.ttf",start:13005271,end:13052023,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf",start:13052023,end:13693743,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBolIta.ttf",start:13693743,end:13735015,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBol.ttf",start:13735015,end:13765527,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/cmss10.ttf",start:13765527,end:13785903,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf",start:13785903,end:13960943,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf",start:13960943,end:14717015,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymBol.ttf",start:14717015,end:14729243,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf",start:14729243,end:14910395,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-BoldItalic.ttf",start:14910395,end:15257459,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/cmtt10.ttf",start:15257459,end:15285595,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf",start:15285595,end:15733823,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Bold.ttf",start:15733823,end:16089515,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf",start:16089515,end:16115227,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-BoldOblique.ttf",start:16115227,end:16368343,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf",start:16368343,end:17002183,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFiveSymReg.ttf",start:17002183,end:17015839,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUni.ttf",start:17015839,end:17074947,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/LICENSE_STIX",start:17074947,end:17080422,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerifDisplay.ttf",start:17080422,end:17094722,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Italic.ttf",start:17094722,end:17440334,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymBol.ttf",start:17440334,end:17452526,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Oblique.ttf",start:17452526,end:17703998,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/cmmi10.ttf",start:17703998,end:17736558,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Bold.ttf",start:17736558,end:18068094,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymBol.ttf",start:18068094,end:18080650,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/cmsy10.ttf",start:18080650,end:18110046,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf",start:18110046,end:18129806,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymBol.ttf",start:18129806,end:18141922,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/cmr10.ttf",start:18141922,end:18168270,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf",start:18168270,end:18405630,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymReg.ttf",start:18405630,end:18421334,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/cmb10.ttf",start:18421334,end:18447014,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymReg.ttf",start:18447014,end:18462850,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/cmex10.ttf",start:18462850,end:18483942,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/ada.png",start:18483942,end:18792255,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/logo2.png",start:18792255,end:18825796,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/None_vs_nearest-pdf.png",start:18825796,end:18932024,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/msft.csv",start:18932024,end:18935235,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/percent_bachelors_degrees_women_usa.csv",start:18935235,end:18940916,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/README.txt",start:18940916,end:18941044,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/data_x_x2_x3.csv",start:18941044,end:18941176,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/demodata.csv",start:18941176,end:18941835,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/ct.raw.gz",start:18941835,end:19197994,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/grace_hopper.png",start:19197994,end:19826274,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/grace_hopper.jpg",start:19826274,end:19887580,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/membrane.dat",start:19887580,end:19935580,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/eeg.dat",start:19935580,end:19961180,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/aapl.npz",start:19961180,end:20068683,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/embedding_in_wx3.xrc",start:20068683,end:20070869,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/goog.npz",start:20070869,end:20093714,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/jacksboro_fault_dem.npz",start:20093714,end:20267775,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/Minduka_Present_Blue_Pack.png",start:20267775,end:20281409,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/s1045.ima.gz",start:20281409,end:20314638,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/mpl-data/sample_data/axes_grid/bivariate_normal.npy",start:20314638,end:20316518,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_qt5.py",start:20316518,end:20357657,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_compat.py",start:20357657,end:20365588,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_gdk.py",start:20365588,end:20381381,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_webagg.py",start:20381381,end:20392946,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_ps.py",start:20392946,end:20454872,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/wasm_backend.py",start:20454872,end:20472111,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_qt4cairo.py",start:20472111,end:20472236,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_wxagg.py",start:20472236,end:20476562,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_gtkagg.py",start:20476562,end:20479915,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_qt4agg.py",start:20479915,end:20480247,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/_backend_agg.so",start:20480247,end:21046910,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_macosx.py",start:21046910,end:21053731,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_agg.py",start:21053731,end:21074763,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/tkagg.py",start:21074763,end:21076097,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_webagg_core.py",start:21076097,end:21094055,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_qt5agg.py",start:21094055,end:21097412,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_pdf.py",start:21097412,end:21195188,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_gtk.py",start:21195188,end:21231432,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/windowing.py",start:21231432,end:21232230,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_template.py",start:21232230,end:21241759,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_svg.py",start:21241759,end:21287262,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py",start:21287262,end:21326584,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_cairo.py",start:21326584,end:21344594,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__init__.py",start:21344594,end:21347880,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3agg.py",start:21347880,end:21351176,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_wx.py",start:21351176,end:21420700,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/wx_compat.py",start:21420700,end:21426451,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3cairo.py",start:21426451,end:21428191,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3.py",start:21428191,end:21459903,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_tkagg.py",start:21459903,end:21460860,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_qt4.py",start:21460860,end:21461358,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_tkcairo.py",start:21461358,end:21462740,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_mixed.py",start:21462740,end:21468600,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_pgf.py",start:21468600,end:21505719,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_qt5cairo.py",start:21505719,end:21507657,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_nbagg.py",start:21507657,end:21516496,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_wxcairo.py",start:21516496,end:21518461,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/_tkagg.so",start:21518461,end:21745118,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/backend_gtkcairo.py",start:21745118,end:21747676,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/_gtk3_compat.py",start:21747676,end:21748705,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_gtkagg.cpython-36.pyc",start:21748705,end:21752477,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_ps.cpython-36.pyc",start:21752477,end:21796729,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_cairo.cpython-36.pyc",start:21796729,end:21811014,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_mixed.cpython-36.pyc",start:21811014,end:21815669,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_svg.cpython-36.pyc",start:21815669,end:21845788,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_qt4.cpython-36.pyc",start:21845788,end:21846701,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/wx_compat.cpython-36.pyc",start:21846701,end:21849627,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_gtk3agg.cpython-36.pyc",start:21849627,end:21852977,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_tkagg.cpython-36.pyc",start:21852977,end:21854655,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_template.cpython-36.pyc",start:21854655,end:21863246,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_nbagg.cpython-36.pyc",start:21863246,end:21872044,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_qt5agg.cpython-36.pyc",start:21872044,end:21875454,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_pgf.cpython-36.pyc",start:21875454,end:21903842,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_macosx.cpython-36.pyc",start:21903842,end:21911512,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_qt5cairo.cpython-36.pyc",start:21911512,end:21913630,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_qt4cairo.cpython-36.pyc",start:21913630,end:21914022,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_qt4agg.cpython-36.pyc",start:21914022,end:21914672,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_tkcairo.cpython-36.pyc",start:21914672,end:21916354,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_webagg.cpython-36.pyc",start:21916354,end:21927105,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_agg.cpython-36.pyc",start:21927105,end:21945465,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/windowing.cpython-36.pyc",start:21945465,end:21946806,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_gtk.cpython-36.pyc",start:21946806,end:21978275,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/qt_compat.cpython-36.pyc",start:21978275,end:21981804,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_wx.cpython-36.pyc",start:21981804,end:22039213,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/__init__.cpython-36.pyc",start:22039213,end:22041898,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_gtk3.cpython-36.pyc",start:22041898,end:22070018,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_pdf.cpython-36.pyc",start:22070018,end:22137690,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_wxagg.cpython-36.pyc",start:22137690,end:22142024,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/_gtk3_compat.cpython-36.pyc",start:22142024,end:22143289,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/wasm_backend.cpython-36.pyc",start:22143289,end:22158224,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_gdk.cpython-36.pyc",start:22158224,end:22171529,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_qt5.cpython-36.pyc",start:22171529,end:22206555,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_webagg_core.cpython-36.pyc",start:22206555,end:22221616,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_gtk3cairo.cpython-36.pyc",start:22221616,end:22223898,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_wxcairo.cpython-36.pyc",start:22223898,end:22226249,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/backend_gtkcairo.cpython-36.pyc",start:22226249,end:22229456,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/_backend_tk.cpython-36.pyc",start:22229456,end:22261735,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/__pycache__/tkagg.cpython-36.pyc",start:22261735,end:22263063,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/figureoptions.py",start:22263063,end:22272273,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/formlayout.py",start:22272273,end:22291693,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/formsubplottool.py",start:22291693,end:22293646,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/__init__.py",start:22293646,end:22293755,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/__pycache__/figureoptions.cpython-36.pyc",start:22293755,end:22300863,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/__pycache__/__init__.cpython-36.pyc",start:22300863,end:22301144,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/__pycache__/formsubplottool.cpython-36.pyc",start:22301144,end:22302778,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/qt_editor/__pycache__/formlayout.cpython-36.pyc",start:22302778,end:22320262,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/nbagg_uat.ipynb",start:22320262,end:22336242,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/single_figure.html",start:22336242,end:22337445,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/ipython_inline_figure.html",start:22337445,end:22338750,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/all_figures.html",start:22338750,end:22340262,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/js/nbagg_mpl.js",start:22340262,end:22347729,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/js/mpl_tornado.js",start:22347729,end:22348001,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/js/mpl.js",start:22348001,end:22364965,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/css/fbm.css",start:22364965,end:22366438,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/css/page.css",start:22366438,end:22368037,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/css/boilerplate.css",start:22368037,end:22370347,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/js/jquery-1.11.3.min.js",start:22370347,end:22466304,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/js/jquery-ui.min.js",start:22466304,end:22706731,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/jquery-ui.min.css",start:22706731,end:22736894,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_flat_10_000000_40x100.png",start:22736894,end:22737099,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-icons_ffd27a_256x240.png",start:22737099,end:22741648,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_diagonals-thick_18_b81900_40x40.png",start:22741648,end:22742066,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_diagonals-thick_20_666666_40x40.png",start:22742066,end:22742378,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_glass_100_fdf5ce_1x400.png",start:22742378,end:22742726,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_highlight-soft_100_eeeeee_1x100.png",start:22742726,end:22743004,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_glass_100_f6f6f6_1x400.png",start:22743004,end:22743266,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-icons_ffffff_256x240.png",start:22743266,end:22749565,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_highlight-soft_75_ffe45c_1x100.png",start:22749565,end:22749893,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-icons_222222_256x240.png",start:22749893,end:22756815,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_glass_65_ffffff_1x400.png",start:22756815,end:22757022,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-icons_228ef1_256x240.png",start:22757022,end:22761571,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-icons_ef8c08_256x240.png",start:22761571,end:22766120,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/backends/web_backend/jquery/css/themes/base/images/ui-bg_gloss-wave_35_f6a828_500x100.png",start:22766120,end:22771935,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/tripcolor.py",start:22771935,end:22777664,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/triangulation.py",start:22777664,end:22785881,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/trifinder.py",start:22785881,end:22789507,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__init__.py",start:22789507,end:22789884,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/tricontour.py",start:22789884,end:22799524,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/tritools.py",start:22799524,end:22812152,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/trirefine.py",start:22812152,end:22826418,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/triplot.py",start:22826418,end:22829461,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/triinterpolate.py",start:22829461,end:22895304,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/trifinder.cpython-36.pyc",start:22895304,end:22899541,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/tricontour.cpython-36.pyc",start:22899541,end:22909142,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/triangulation.cpython-36.pyc",start:22909142,end:22915809,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/triplot.cpython-36.pyc",start:22915809,end:22918038,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/tripcolor.cpython-36.pyc",start:22918038,end:22922148,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/tritools.cpython-36.pyc",start:22922148,end:22932694,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/__init__.cpython-36.pyc",start:22932694,end:22933218,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/trirefine.cpython-36.pyc",start:22933218,end:22942587,audio:0},{filename:"/lib/python3.6/site-packages/matplotlib/tri/__pycache__/triinterpolate.cpython-36.pyc",start:22942587,end:22993384,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/__init__.py",start:22993384,end:22993505,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/__pycache__/__init__.cpython-36.pyc",start:22993505,end:22993760,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py",start:22993760,end:23009669,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/clip_path.py",start:23009669,end:23013759,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/axes_rgb.py",start:23013759,end:23014048,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/grid_finder.py",start:23014048,end:23025911,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/axes_grid.py",start:23025911,end:23026853,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/axislines.py",start:23026853,end:23051609,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__init__.py",start:23051609,end:23052479,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/axisline_style.py",start:23052479,end:23057764,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/floating_axes.py",start:23057764,end:23075261,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/parasite_axes.py",start:23075261,end:23075818,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/axis_artist.py",start:23075818,end:23124412,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/axes_divider.py",start:23124412,end:23124773,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/angle_helper.py",start:23124773,end:23137813,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/axes_divider.cpython-36.pyc",start:23137813,end:23138378,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/grid_finder.cpython-36.pyc",start:23138378,end:23148874,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/axislines.cpython-36.pyc",start:23148874,end:23172417,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/axes_rgb.cpython-36.pyc",start:23172417,end:23173028,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/angle_helper.cpython-36.pyc",start:23173028,end:23184343,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/floating_axes.cpython-36.pyc",start:23184343,end:23197046,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/clip_path.cpython-36.pyc",start:23197046,end:23200275,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/axes_grid.cpython-36.pyc",start:23200275,end:23201740,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/grid_helper_curvelinear.cpython-36.pyc",start:23201740,end:23213793,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/__init__.cpython-36.pyc",start:23213793,end:23214845,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/parasite_axes.cpython-36.pyc",start:23214845,end:23215487,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/axis_artist.cpython-36.pyc",start:23215487,end:23254948,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axisartist/__pycache__/axisline_style.cpython-36.pyc",start:23254948,end:23260603,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/axes3d.py",start:23260603,end:23366034,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/axis3d.py",start:23366034,end:23384738,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/proj3d.py",start:23384738,end:23389498,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/art3d.py",start:23389498,end:23414192,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/__init__.py",start:23414192,end:23414341,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/__pycache__/proj3d.cpython-36.pyc",start:23414341,end:23419579,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/__pycache__/axes3d.cpython-36.pyc",start:23419579,end:23503643,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/__pycache__/axis3d.cpython-36.pyc",start:23503643,end:23516033,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/__pycache__/art3d.cpython-36.pyc",start:23516033,end:23541511,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/mplot3d/__pycache__/__init__.cpython-36.pyc",start:23541511,end:23541840,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/mpl_axes.py",start:23541840,end:23546743,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/anchored_artists.py",start:23546743,end:23559957,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/axes_rgb.py",start:23559957,end:23566930,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/axes_grid.py",start:23566930,end:23594628,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__init__.py",start:23594628,end:23595022,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/axes_size.py",start:23595022,end:23604055,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/inset_locator.py",start:23604055,end:23622769,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/parasite_axes.py",start:23622769,end:23638200,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/colorbar.py",start:23638200,end:23666029,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/axes_divider.py",start:23666029,end:23697468,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/axes_size.cpython-36.pyc",start:23697468,end:23709202,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/inset_locator.cpython-36.pyc",start:23709202,end:23726776,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/anchored_artists.cpython-36.pyc",start:23726776,end:23739384,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/axes_divider.cpython-36.pyc",start:23739384,end:23767762,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/axes_rgb.cpython-36.pyc",start:23767762,end:23774389,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/axes_grid.cpython-36.pyc",start:23774389,end:23792535,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/colorbar.cpython-36.pyc",start:23792535,end:23816876,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/__init__.cpython-36.pyc",start:23816876,end:23817481,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/parasite_axes.cpython-36.pyc",start:23817481,end:23831957,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid1/__pycache__/mpl_axes.cpython-36.pyc",start:23831957,end:23837960,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/grid_helper_curvelinear.py",start:23837960,end:23838132,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/clip_path.py",start:23838132,end:23838290,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/anchored_artists.py",start:23838290,end:23838691,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/axes_rgb.py",start:23838691,end:23839078,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/grid_finder.py",start:23839078,end:23839238,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/axes_grid.py",start:23839238,end:23840180,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/axislines.py",start:23840180,end:23840338,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__init__.py",start:23840338,end:23841e3,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/axisline_style.py",start:23841e3,end:23841163,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/floating_axes.py",start:23841163,end:23841325,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/axes_size.py",start:23841325,end:23841483,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/inset_locator.py",start:23841483,end:23841809,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/parasite_axes.py",start:23841809,end:23842366,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/colorbar.py",start:23842366,end:23842537,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/axis_artist.py",start:23842537,end:23842697,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/axes_divider.py",start:23842697,end:23843054,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/angle_helper.py",start:23843054,end:23843215,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/axes_size.cpython-36.pyc",start:23843215,end:23843540,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/inset_locator.cpython-36.pyc",start:23843540,end:23844097,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/anchored_artists.cpython-36.pyc",start:23844097,end:23844744,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/axes_divider.cpython-36.pyc",start:23844744,end:23845308,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/grid_finder.cpython-36.pyc",start:23845308,end:23845637,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/axislines.cpython-36.pyc",start:23845637,end:23845962,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/axes_rgb.cpython-36.pyc",start:23845962,end:23846572,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/angle_helper.cpython-36.pyc",start:23846572,end:23846903,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/floating_axes.cpython-36.pyc",start:23846903,end:23847236,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/clip_path.cpython-36.pyc",start:23847236,end:23847561,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/axes_grid.cpython-36.pyc",start:23847561,end:23849025,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/grid_helper_curvelinear.cpython-36.pyc",start:23849025,end:23849378,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/colorbar.cpython-36.pyc",start:23849378,end:23849760,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/__init__.cpython-36.pyc",start:23849760,end:23850518,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/parasite_axes.cpython-36.pyc",start:23850518,end:23851159,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/axis_artist.cpython-36.pyc",start:23851159,end:23851488,audio:0},{filename:"/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__pycache__/axisline_style.cpython-36.pyc",start:23851488,end:23851823,audio:0}],remote_package_size:23851823,package_uuid:"1d3d2e81-31c5-438d-b7dd-54553f8d0f0f"})})();
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>matplotlib.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>numpy.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module=typeof pyodide!=="undefined"?pyodide:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="numpy.data";var REMOTE_PACKAGE_BASE="numpy.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.6",true,true);Module["FS_createPath"]("/lib/python3.6","site-packages",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","numpy-1.14.1-py3.6.egg-info",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","numpy",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","f2py",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py","src",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests","src",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","regression",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","size",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","mixed",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","string",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","array_from_pyobj",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","common",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","assumed_shape",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","kind",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/f2py/tests/src","parameter",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","ma",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/ma","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/ma","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","random",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/random","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/random","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","lib",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/lib","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/lib","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/lib/tests","data",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","testing",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/testing","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/testing","nose_tools",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/testing/nose_tools","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/testing","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","fft",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/fft","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/fft","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","matrixlib",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/matrixlib","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/matrixlib","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","distutils",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/distutils","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/distutils","command",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/distutils/command","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/distutils","fcompiler",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/distutils/fcompiler","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/distutils","mingw",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/distutils","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","polynomial",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/polynomial","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/polynomial","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","compat",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/compat","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","doc",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/doc","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","linalg",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/linalg","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/linalg","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy","core",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/core","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/core","lib",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/core","include",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/core/include","numpy",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/core","tests",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/numpy/core/tests","data",true,true);Module["FS_createPath"]("/","bin",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,function(){Module["removeRunDependency"]("fp "+that.name)},function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{err("Preloading file "+that.name+" failed")}},false,true);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])err("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_numpy.data")}Module["addRunDependency"]("datafile_numpy.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{filename:"/lib/python3.6/site-packages/numpy-1.14.1-py3.6.egg-info/top_level.txt",start:0,end:6,audio:0},{filename:"/lib/python3.6/site-packages/numpy-1.14.1-py3.6.egg-info/dependency_links.txt",start:6,end:7,audio:0},{filename:"/lib/python3.6/site-packages/numpy-1.14.1-py3.6.egg-info/PKG-INFO",start:7,end:2363,audio:0},{filename:"/lib/python3.6/site-packages/numpy-1.14.1-py3.6.egg-info/SOURCES.txt",start:2363,end:47426,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ctypeslib.py",start:47426,end:62156,audio:0},{filename:"/lib/python3.6/site-packages/numpy/_globals.py",start:62156,end:64015,audio:0},{filename:"/lib/python3.6/site-packages/numpy/add_newdocs.py",start:64015,end:298762,audio:0},{filename:"/lib/python3.6/site-packages/numpy/conftest.py",start:298762,end:300319,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__config__.py",start:300319,end:301256,audio:0},{filename:"/lib/python3.6/site-packages/numpy/LICENSE.txt",start:301256,end:303568,audio:0},{filename:"/lib/python3.6/site-packages/numpy/version.py",start:303568,end:303862,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__init__.py",start:303862,end:310113,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matlib.py",start:310113,end:319922,audio:0},{filename:"/lib/python3.6/site-packages/numpy/_import_tools.py",start:319922,end:333156,audio:0},{filename:"/lib/python3.6/site-packages/numpy/dual.py",start:333156,end:335020,audio:0},{filename:"/lib/python3.6/site-packages/numpy/setup.py",start:335020,end:335940,audio:0},{filename:"/lib/python3.6/site-packages/numpy/_distributor_init.py",start:335940,end:336271,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/add_newdocs.cpython-36.pyc",start:336271,end:542473,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/__config__.cpython-36.pyc",start:542473,end:543473,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/_globals.cpython-36.pyc",start:543473,end:545681,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/_distributor_init.cpython-36.pyc",start:545681,end:546165,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/__init__.cpython-36.pyc",start:546165,end:551733,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/conftest.cpython-36.pyc",start:551733,end:553176,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/dual.cpython-36.pyc",start:553176,end:555013,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/ctypeslib.cpython-36.pyc",start:555013,end:567105,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/_import_tools.cpython-36.pyc",start:567105,end:576883,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/setup.cpython-36.pyc",start:576883,end:577750,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/version.cpython-36.pyc",start:577750,end:578034,audio:0},{filename:"/lib/python3.6/site-packages/numpy/__pycache__/matlib.cpython-36.pyc",start:578034,end:588255,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/cfuncs.py",start:588255,end:633368,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/rules.py",start:633368,end:691893,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/use_rules.py",start:691893,end:695545,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/cb_rules.py",start:695545,end:717901,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/common_rules.py",start:717901,end:722931,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/f90mod_rules.py",start:722931,end:732781,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/crackfortran.py",start:732781,end:861185,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__init__.py",start:861185,end:863212,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/auxfuncs.py",start:863212,end:885038,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/func2subr.py",start:885038,end:894262,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/setup.py",start:894262,end:898187,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/capi_maps.py",start:898187,end:929726,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/f2py_testing.py",start:929726,end:931249,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/diagnose.py",start:931249,end:936544,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/info.py",start:936544,end:936680,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__main__.py",start:936680,end:937419,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__version__.py",start:937419,end:937673,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/f2py2e.py",start:937673,end:960581,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/use_rules.cpython-36.pyc",start:960581,end:963699,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/rules.cpython-36.pyc",start:963699,end:997903,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/capi_maps.cpython-36.pyc",start:997903,end:1015935,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/common_rules.cpython-36.pyc",start:1015935,end:1020656,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/f90mod_rules.cpython-36.pyc",start:1020656,end:1028059,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/func2subr.cpython-36.pyc",start:1028059,end:1034831,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/crackfortran.cpython-36.pyc",start:1034831,end:1110993,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/cfuncs.cpython-36.pyc",start:1110993,end:1149379,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/__version__.cpython-36.pyc",start:1149379,end:1149797,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/__main__.cpython-36.pyc",start:1149797,end:1150589,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/__init__.cpython-36.pyc",start:1150589,end:1152647,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/cb_rules.cpython-36.pyc",start:1152647,end:1167574,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/auxfuncs.cpython-36.pyc",start:1167574,end:1189901,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/diagnose.cpython-36.pyc",start:1189901,end:1193675,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/f2py2e.cpython-36.pyc",start:1193675,end:1212977,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/info.cpython-36.pyc",start:1212977,end:1213289,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/setup.cpython-36.pyc",start:1213289,end:1217084,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/__pycache__/f2py_testing.cpython-36.pyc",start:1217084,end:1218561,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/src/fortranobject.c",start:1218561,end:1254374,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/src/fortranobject.h",start:1254374,end:1259305,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_return_integer.py",start:1259305,end:1264001,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_return_real.py",start:1264001,end:1269411,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_mixed.py",start:1269411,end:1270386,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_array_from_pyobj.py",start:1270386,end:1292497,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_string.py",start:1292497,end:1293225,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_return_logical.py",start:1293225,end:1298175,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_block_docstring.py",start:1298175,end:1298798,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_assumed_shape.py",start:1298798,end:1299799,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_return_character.py",start:1299799,end:1303668,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/__init__.py",start:1303668,end:1303668,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_size.py",start:1303668,end:1305056,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_common.py",start:1305056,end:1305956,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_callback.py",start:1305956,end:1309970,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_parameter.py",start:1309970,end:1313947,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_kind.py",start:1313947,end:1315073,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_return_complex.py",start:1315073,end:1319857,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/util.py",start:1319857,end:1329311,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/test_regression.py",start:1329311,end:1330140,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/regression/inout.f90",start:1330140,end:1330417,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/size/foo.f90",start:1330417,end:1331232,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/mixed/foo_fixed.f90",start:1331232,end:1331411,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/mixed/foo.f",start:1331411,end:1331496,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/mixed/foo_free.f90",start:1331496,end:1331635,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/string/char.f90",start:1331635,end:1332253,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c",start:1332253,end:1341054,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/common/block.f",start:1341054,end:1341278,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap",start:1341278,end:1341307,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/assumed_shape/precision.f90",start:1341307,end:1341437,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/assumed_shape/foo_free.f90",start:1341437,end:1341897,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/assumed_shape/foo_use.f90",start:1341897,end:1342166,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/assumed_shape/foo_mod.f90",start:1342166,end:1342665,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/kind/foo.f90",start:1342665,end:1343012,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/parameter/constant_integer.f90",start:1343012,end:1343624,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/parameter/constant_non_compound.f90",start:1343624,end:1344233,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/parameter/constant_compound.f90",start:1344233,end:1344702,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/parameter/constant_both.f90",start:1344702,end:1346641,audio:0},{filename:"/lib/python3.6/site-packages/numpy/f2py/tests/src/parameter/constant_real.f90",start:1346641,end:1347251,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/extras.py",start:1347251,end:1403214,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/timer_comparison.py",start:1403214,end:1418800,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/version.py",start:1418800,end:1419180,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/core.py",start:1419180,end:1675023,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__init__.py",start:1675023,end:1676499,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/mrecords.py",start:1676499,end:1703934,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/bench.py",start:1703934,end:1708851,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/setup.py",start:1708851,end:1709280,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/testutils.py",start:1709280,end:1719664,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/timer_comparison.cpython-36.pyc",start:1719664,end:1731037,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/extras.cpython-36.pyc",start:1731037,end:1780667,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/mrecords.cpython-36.pyc",start:1780667,end:1803229,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/bench.cpython-36.pyc",start:1803229,end:1807091,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/core.cpython-36.pyc",start:1807091,end:2016844,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/__init__.cpython-36.pyc",start:2016844,end:2018463,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/setup.cpython-36.pyc",start:2018463,end:2019063,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/version.cpython-36.pyc",start:2019063,end:2019710,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/__pycache__/testutils.cpython-36.pyc",start:2019710,end:2028021,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/test_core.py",start:2028021,end:2220265,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/test_subclassing.py",start:2220265,end:2233931,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/test_extras.py",start:2233931,end:2298039,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/__init__.py",start:2298039,end:2298039,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/test_deprecations.py",start:2298039,end:2300449,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/test_old_ma.py",start:2300449,end:2332584,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/test_regression.py",start:2332584,end:2335021,audio:0},{filename:"/lib/python3.6/site-packages/numpy/ma/tests/test_mrecords.py",start:2335021,end:2354950,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/randomkit.h",start:2354950,end:2361749,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/mtrand.so",start:2361749,end:3571073,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/__init__.py",start:3571073,end:3576554,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/setup.py",start:3576554,end:3578866,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/info.py",start:3578866,end:3584065,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/__pycache__/__init__.cpython-36.pyc",start:3584065,end:3589779,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/__pycache__/info.cpython-36.pyc",start:3589779,end:3595066,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/__pycache__/setup.cpython-36.pyc",start:3595066,end:3597100,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/tests/test_random.py",start:3597100,end:3662395,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/tests/__init__.py",start:3662395,end:3662395,audio:0},{filename:"/lib/python3.6/site-packages/numpy/random/tests/test_regression.py",start:3662395,end:3667514,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/shape_base.py",start:3667514,end:3696182,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/format.py",start:3696182,end:3725338,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/user_array.py",start:3725338,end:3733155,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/financial.py",start:3733155,end:3757650,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/polynomial.py",start:3757650,end:3796222,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/function_base.py",start:3796222,end:3966254,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/recfunctions.py",start:3966254,end:4005928,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/arrayterator.py",start:4005928,end:4013119,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/_datasource.py",start:4013119,end:4038430,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/index_tricks.py",start:4038430,end:4065110,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/nanfunctions.py",start:4065110,end:4115964,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/twodim_base.py",start:4115964,end:4141781,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/npyio.py",start:4141781,end:4224953,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/ufunclike.py",start:4224953,end:4230667,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__init__.py",start:4230667,end:4231968,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/_version.py",start:4231968,end:4236835,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/scimath.py",start:4236835,end:4250920,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/type_check.py",start:4250920,end:4267420,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/setup.py",start:4267420,end:4267799,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/_iotools.py",start:4267799,end:4300415,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/info.py",start:4300415,end:4307031,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/stride_tricks.py",start:4307031,end:4315816,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/mixins.py",start:4315816,end:4323100,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/arraysetops.py",start:4323100,end:4343667,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/utils.py",start:4343667,end:4380007,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/arraypad.py",start:4380007,end:4431864,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/mixins.cpython-36.pyc",start:4431864,end:4439228,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/twodim_base.cpython-36.pyc",start:4439228,end:4465801,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/utils.cpython-36.pyc",start:4465801,end:4493744,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/ufunclike.cpython-36.pyc",start:4493744,end:4499580,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/_datasource.cpython-36.pyc",start:4499580,end:4522066,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/shape_base.cpython-36.pyc",start:4522066,end:4548915,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/polynomial.cpython-36.pyc",start:4548915,end:4584942,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/financial.cpython-36.pyc",start:4584942,end:4608117,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/_iotools.cpython-36.pyc",start:4608117,end:4635155,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/arraypad.cpython-36.pyc",start:4635155,end:4677124,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/user_array.cpython-36.pyc",start:4677124,end:4688597,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/recfunctions.cpython-36.pyc",start:4688597,end:4721034,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/_version.cpython-36.pyc",start:4721034,end:4725884,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/arrayterator.cpython-36.pyc",start:4725884,end:4733057,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/type_check.cpython-36.pyc",start:4733057,end:4749158,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/format.cpython-36.pyc",start:4749158,end:4772404,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/arraysetops.cpython-36.pyc",start:4772404,end:4791040,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/__init__.cpython-36.pyc",start:4791040,end:4792190,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/npyio.cpython-36.pyc",start:4792190,end:4856156,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/info.cpython-36.pyc",start:4856156,end:4862957,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/scimath.cpython-36.pyc",start:4862957,end:4877808,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/index_tricks.cpython-36.pyc",start:4877808,end:4902116,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/setup.cpython-36.pyc",start:4902116,end:4902689,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/stride_tricks.cpython-36.pyc",start:4902689,end:4910572,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/nanfunctions.cpython-36.pyc",start:4910572,end:4957463,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/__pycache__/function_base.cpython-36.pyc",start:4957463,end:5101752,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_io.py",start:5101752,end:5194218,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_twodim_base.py",start:5194218,end:5211972,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_format.py",start:5211972,end:5246503,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_function_base.py",start:5246503,end:5379483,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_index_tricks.py",start:5379483,end:5393172,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test__version.py",start:5393172,end:5395297,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_mixins.py",start:5395297,end:5402146,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_stride_tricks.py",start:5402146,end:5417188,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_ufunclike.py",start:5417188,end:5420206,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_recfunctions.py",start:5420206,end:5455414,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_nanfunctions.py",start:5455414,end:5490249,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_financial.py",start:5490249,end:5507417,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_type_check.py",start:5507417,end:5520520,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_shape_base.py",start:5520520,end:5539889,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/__init__.py",start:5539889,end:5539889,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test__iotools.py",start:5539889,end:5553464,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_polynomial.py",start:5553464,end:5560616,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_arraysetops.py",start:5560616,end:5578648,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_arraypad.py",start:5578648,end:5622295,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_utils.py",start:5622295,end:5623951,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test__datasource.py",start:5623951,end:5634281,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_regression.py",start:5634281,end:5642823,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_arrayterator.py",start:5642823,end:5644278,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/test_packbits.py",start:5644278,end:5657207,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/data/py2-objarr.npy",start:5657207,end:5657465,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/data/py3-objarr.npz",start:5657465,end:5657914,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/data/py3-objarr.npy",start:5657914,end:5658255,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/data/win64python2.npy",start:5658255,end:5658351,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/data/python3.npy",start:5658351,end:5658447,audio:0},{filename:"/lib/python3.6/site-packages/numpy/lib/tests/data/py2-objarr.npz",start:5658447,end:5658813,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/print_coercion_tables.py",start:5658813,end:5661518,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/decorators.py",start:5661518,end:5661646,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/noseclasses.py",start:5661646,end:5661776,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__init__.py",start:5661776,end:5662251,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nosetester.py",start:5662251,end:5662540,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/setup.py",start:5662540,end:5663217,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/utils.py",start:5663217,end:5664143,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__pycache__/utils.cpython-36.pyc",start:5664143,end:5665145,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__pycache__/print_coercion_tables.cpython-36.pyc",start:5665145,end:5667630,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__pycache__/decorators.cpython-36.pyc",start:5667630,end:5667915,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__pycache__/nosetester.cpython-36.pyc",start:5667915,end:5668328,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__pycache__/__init__.cpython-36.pyc",start:5668328,end:5669023,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__pycache__/noseclasses.cpython-36.pyc",start:5669023,end:5669311,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/__pycache__/setup.cpython-36.pyc",start:5669311,end:5670116,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/decorators.py",start:5670116,end:5678707,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/noseclasses.py",start:5678707,end:5693306,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/parameterized.py",start:5693306,end:5711592,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/__init__.py",start:5711592,end:5711592,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/nosetester.py",start:5711592,end:5732154,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/utils.py",start:5732154,end:5807588,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/__pycache__/utils.cpython-36.pyc",start:5807588,end:5871115,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/__pycache__/decorators.cpython-36.pyc",start:5871115,end:5880039,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/__pycache__/nosetester.cpython-36.pyc",start:5880039,end:5895478,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/__pycache__/__init__.cpython-36.pyc",start:5895478,end:5895633,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/__pycache__/noseclasses.cpython-36.pyc",start:5895633,end:5905533,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/nose_tools/__pycache__/parameterized.cpython-36.pyc",start:5905533,end:5922175,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/tests/test_decorators.py",start:5922175,end:5926729,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/tests/__init__.py",start:5926729,end:5926729,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/tests/test_doctesting.py",start:5926729,end:5928051,audio:0},{filename:"/lib/python3.6/site-packages/numpy/testing/tests/test_utils.py",start:5928051,end:5974290,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/helper.py",start:5974290,end:5983882,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/fftpack.py",start:5983882,end:6029941,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/__init__.py",start:6029941,end:6030199,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/setup.py",start:6030199,end:6030749,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/info.py",start:6030749,end:6037984,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/fftpack_lite.so",start:6037984,end:6075751,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/__pycache__/helper.cpython-36.pyc",start:6075751,end:6085486,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/__pycache__/fftpack.cpython-36.pyc",start:6085486,end:6130899,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/__pycache__/__init__.cpython-36.pyc",start:6130899,end:6131300,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/__pycache__/info.cpython-36.pyc",start:6131300,end:6138671,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/__pycache__/setup.cpython-36.pyc",start:6138671,end:6139339,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/tests/test_fftpack.py",start:6139339,end:6146436,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/tests/test_helper.py",start:6146436,end:6152435,audio:0},{filename:"/lib/python3.6/site-packages/numpy/fft/tests/__init__.py",start:6152435,end:6152435,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/__init__.py",start:6152435,end:6152725,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/setup.py",start:6152725,end:6153173,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/defmatrix.py",start:6153173,end:6186146,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/__pycache__/defmatrix.cpython-36.pyc",start:6186146,end:6218610,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/__pycache__/__init__.cpython-36.pyc",start:6218610,end:6219063,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/__pycache__/setup.cpython-36.pyc",start:6219063,end:6219691,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/tests/test_numeric.py",start:6219691,end:6220276,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/tests/test_defmatrix.py",start:6220276,end:6235354,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/tests/__init__.py",start:6235354,end:6235354,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/tests/test_multiarray.py",start:6235354,end:6236059,audio:0},{filename:"/lib/python3.6/site-packages/numpy/matrixlib/tests/test_regression.py",start:6236059,end:6237141,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/from_template.py",start:6237141,end:6244971,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/msvc9compiler.py",start:6244971,end:6247229,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/msvccompiler.py",start:6247229,end:6249220,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__config__.py",start:6249220,end:6250157,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/line_endings.py",start:6250157,end:6252210,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/log.py",start:6252210,end:6254955,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/ccompiler.py",start:6254955,end:6283502,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/unixccompiler.py",start:6283502,end:6288658,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/environment.py",start:6288658,end:6291004,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/misc_util.py",start:6291004,end:6373283,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/npy_pkg_config.py",start:6373283,end:6386526,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/core.py",start:6386526,end:6394709,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__init__.py",start:6394709,end:6395797,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/lib2def.py",start:6395797,end:6399309,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/pathccompiler.py",start:6399309,end:6400088,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/extension.py",start:6400088,end:6403055,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/exec_command.py",start:6403055,end:6411718,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/cpuinfo.py",start:6411718,end:6434733,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/conv_template.py",start:6434733,end:6444442,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/compat.py",start:6444442,end:6444660,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/numpy_distribution.py",start:6444660,end:6445360,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/setup.py",start:6445360,end:6445971,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/intelccompiler.py",start:6445971,end:6450262,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/info.py",start:6450262,end:6450419,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/mingw32ccompiler.py",start:6450419,end:6475620,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/system_info.py",start:6475620,end:6565121,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__version__.py",start:6565121,end:6565272,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/misc_util.cpython-36.pyc",start:6565272,end:6632361,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/mingw32ccompiler.cpython-36.pyc",start:6632361,end:6646777,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/extension.cpython-36.pyc",start:6646777,end:6648885,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/cpuinfo.cpython-36.pyc",start:6648885,end:6682574,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/environment.cpython-36.pyc",start:6682574,end:6685288,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/pathccompiler.cpython-36.pyc",start:6685288,end:6686277,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/log.cpython-36.pyc",start:6686277,end:6688749,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/line_endings.cpython-36.pyc",start:6688749,end:6690869,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/unixccompiler.cpython-36.pyc",start:6690869,end:6694252,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/__config__.cpython-36.pyc",start:6694252,end:6695262,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/msvccompiler.cpython-36.pyc",start:6695262,end:6697252,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/npy_pkg_config.cpython-36.pyc",start:6697252,end:6709761,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/intelccompiler.cpython-36.pyc",start:6709761,end:6713861,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/ccompiler.cpython-36.pyc",start:6713861,end:6733981,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/__version__.cpython-36.pyc",start:6733981,end:6734328,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/core.cpython-36.pyc",start:6734328,end:6739103,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/compat.cpython-36.pyc",start:6739103,end:6739585,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/__init__.cpython-36.pyc",start:6739585,end:6740626,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/conv_template.cpython-36.pyc",start:6740626,end:6748795,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/exec_command.cpython-36.pyc",start:6748795,end:6756744,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/info.cpython-36.pyc",start:6756744,end:6757082,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/setup.cpython-36.pyc",start:6757082,end:6757833,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/numpy_distribution.cpython-36.pyc",start:6757833,end:6758685,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/system_info.cpython-36.pyc",start:6758685,end:6828758,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/msvc9compiler.cpython-36.pyc",start:6828758,end:6831004,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/from_template.cpython-36.pyc",start:6831004,end:6837992,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/__pycache__/lib2def.cpython-36.pyc",start:6837992,end:6841300,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/install_clib.py",start:6841300,end:6842741,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/autodist.py",start:6842741,end:6844789,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/config.py",start:6844789,end:6862799,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/egg_info.py",start:6862799,end:6863786,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/develop.py",start:6863786,end:6864427,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/config_compiler.py",start:6864427,end:6868806,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/build_clib.py",start:6868806,end:6882195,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/sdist.py",start:6882195,end:6882994,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/build.py",start:6882994,end:6884612,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__init__.py",start:6884612,end:6885710,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/build_ext.py",start:6885710,end:6910974,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/build_py.py",start:6910974,end:6912184,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/build_scripts.py",start:6912184,end:6913915,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/install_data.py",start:6913915,end:6914829,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/install.py",start:6914829,end:6917956,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/install_headers.py",start:6917956,end:6918941,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/build_src.py",start:6918941,end:6949887,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/bdist_rpm.py",start:6949887,end:6950662,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/build_clib.cpython-36.pyc",start:6950662,end:6958221,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/autodist.cpython-36.pyc",start:6958221,end:6960451,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/install_headers.cpython-36.pyc",start:6960451,end:6961486,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/config.cpython-36.pyc",start:6961486,end:6973753,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/build_py.cpython-36.pyc",start:6973753,end:6975183,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/egg_info.cpython-36.pyc",start:6975183,end:6976350,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/build_scripts.cpython-36.pyc",start:6976350,end:6978091,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/develop.cpython-36.pyc",start:6978091,end:6979028,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/build_ext.cpython-36.pyc",start:6979028,end:6991326,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/build.cpython-36.pyc",start:6991326,end:6993237,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/install_data.cpython-36.pyc",start:6993237,end:6994218,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/__init__.cpython-36.pyc",start:6994218,end:6995327,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/sdist.cpython-36.pyc",start:6995327,end:6996352,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/install_clib.cpython-36.pyc",start:6996352,end:6998069,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/bdist_rpm.cpython-36.pyc",start:6998069,end:6998983,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/config_compiler.cpython-36.pyc",start:6998983,end:7003226,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/build_src.cpython-36.pyc",start:7003226,end:7021789,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/command/__pycache__/install.cpython-36.pyc",start:7021789,end:7023925,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/compaq.py",start:7023925,end:7028034,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/pg.py",start:7028034,end:7032247,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/none.py",start:7032247,end:7033071,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/intel.py",start:7033071,end:7039844,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/hpux.py",start:7039844,end:7041263,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/ibm.py",start:7041263,end:7044698,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/nag.py",start:7044698,end:7047306,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/mips.py",start:7047306,end:7049086,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py",start:7049086,end:7088433,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/g95.py",start:7088433,end:7089829,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/vast.py",start:7089829,end:7091562,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/absoft.py",start:7091562,end:7097129,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/pathf95.py",start:7097129,end:7098256,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/sun.py",start:7098256,end:7099901,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/gnu.py",start:7099901,end:7119664,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/lahey.py",start:7119664,end:7121057,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/pg.cpython-36.pyc",start:7121057,end:7125760,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/vast.cpython-36.pyc",start:7125760,end:7127651,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/absoft.cpython-36.pyc",start:7127651,end:7132189,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/ibm.cpython-36.pyc",start:7132189,end:7135576,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/g95.cpython-36.pyc",start:7135576,end:7137149,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/hpux.cpython-36.pyc",start:7137149,end:7138996,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/pathf95.cpython-36.pyc",start:7138996,end:7140440,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/sun.cpython-36.pyc",start:7140440,end:7142535,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/none.cpython-36.pyc",start:7142535,end:7143581,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/nag.cpython-36.pyc",start:7143581,end:7146668,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/__init__.cpython-36.pyc",start:7146668,end:7175096,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/mips.cpython-36.pyc",start:7175096,end:7177333,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/gnu.cpython-36.pyc",start:7177333,end:7190129,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/intel.cpython-36.pyc",start:7190129,end:7197202,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/lahey.cpython-36.pyc",start:7197202,end:7199083,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/fcompiler/__pycache__/compaq.cpython-36.pyc",start:7199083,end:7203408,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/mingw/gfortran_vs2003_hack.c",start:7203408,end:7203482,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/test_system_info.py",start:7203482,end:7210967,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/test_misc_util.py",start:7210967,end:7214275,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/test_npy_pkg_config.py",start:7214275,end:7216984,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/test_fcompiler_nagfor.py",start:7216984,end:7218231,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/test_fcompiler_intel.py",start:7218231,end:7219441,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/test_fcompiler_gnu.py",start:7219441,end:7221729,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/test_exec_command.py",start:7221729,end:7228945,audio:0},{filename:"/lib/python3.6/site-packages/numpy/distutils/tests/__init__.py",start:7228945,end:7228945,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/hermite_e.py",start:7228945,end:7287031,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/polynomial.py",start:7287031,end:7339839,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/chebyshev.py",start:7339839,end:7406808,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/_polybase.py",start:7406808,end:7436900,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/legendre.py",start:7436900,end:7494304,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__init__.py",start:7494304,end:7495444,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/hermite.py",start:7495444,end:7553340,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/polyutils.py",start:7553340,end:7564869,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/setup.py",start:7564869,end:7565254,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/laguerre.py",start:7565254,end:7621563,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/chebyshev.cpython-36.pyc",start:7621563,end:7687885,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/polynomial.cpython-36.pyc",start:7687885,end:7739729,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/legendre.cpython-36.pyc",start:7739729,end:7795897,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/hermite.cpython-36.pyc",start:7795897,end:7852764,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/__init__.cpython-36.pyc",start:7852764,end:7854142,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/hermite_e.cpython-36.pyc",start:7854142,end:7911036,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/_polybase.cpython-36.pyc",start:7911036,end:7941986,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/polyutils.cpython-36.pyc",start:7941986,end:7954536,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/setup.cpython-36.pyc",start:7954536,end:7955123,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/__pycache__/laguerre.cpython-36.pyc",start:7955123,end:8010333,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_laguerre.py",start:8010333,end:8027731,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_chebyshev.py",start:8027731,end:8048151,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_hermite.py",start:8048151,end:8066610,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/__init__.py",start:8066610,end:8066610,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_legendre.py",start:8066610,end:8084772,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_polynomial.py",start:8084772,end:8104025,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_polyutils.py",start:8104025,end:8107110,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_hermite_e.py",start:8107110,end:8125899,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_classes.py",start:8125899,end:8144913,audio:0},{filename:"/lib/python3.6/site-packages/numpy/polynomial/tests/test_printing.py",start:8144913,end:8147053,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/__init__.py",start:8147053,end:8147551,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/_inspect.py",start:8147551,end:8155105,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/setup.py",start:8155105,end:8155476,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/py3k.py",start:8155476,end:8159113,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/__pycache__/py3k.cpython-36.pyc",start:8159113,end:8163460,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/__pycache__/_inspect.cpython-36.pyc",start:8163460,end:8171127,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/__pycache__/__init__.cpython-36.pyc",start:8171127,end:8171808,audio:0},{filename:"/lib/python3.6/site-packages/numpy/compat/__pycache__/setup.cpython-36.pyc",start:8171808,end:8172354,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/broadcasting.py",start:8172354,end:8177919,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/misc.py",start:8177919,end:8184113,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/internals.py",start:8184113,end:8193782,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/indexing.py",start:8193782,end:8209451,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/ufuncs.py",start:8209451,end:8214878,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__init__.py",start:8214878,end:8215452,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/basics.py",start:8215452,end:8223370,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/structured_arrays.py",start:8223370,end:8247813,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/constants.py",start:8247813,end:8256695,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/glossary.py",start:8256695,end:8269066,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/byteswapping.py",start:8269066,end:8274412,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/subclassing.py",start:8274412,end:8302972,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/creation.py",start:8302972,end:8308473,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/broadcasting.cpython-36.pyc",start:8308473,end:8314224,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/constants.cpython-36.pyc",start:8314224,end:8322008,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/creation.cpython-36.pyc",start:8322008,end:8327691,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/glossary.cpython-36.pyc",start:8327691,end:8340244,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/byteswapping.cpython-36.pyc",start:8340244,end:8345772,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/structured_arrays.cpython-36.pyc",start:8345772,end:8370406,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/subclassing.cpython-36.pyc",start:8370406,end:8399151,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/__init__.cpython-36.pyc",start:8399151,end:8400007,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/misc.cpython-36.pyc",start:8400007,end:8406379,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/basics.cpython-36.pyc",start:8406379,end:8414475,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/indexing.cpython-36.pyc",start:8414475,end:8430326,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/ufuncs.cpython-36.pyc",start:8430326,end:8435931,audio:0},{filename:"/lib/python3.6/site-packages/numpy/doc/__pycache__/internals.cpython-36.pyc",start:8435931,end:8445783,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/lapack_lite.so",start:8445783,end:9815733,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/_umath_linalg.so",start:9815733,end:11278356,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/__init__.py",start:11278356,end:11280688,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/setup.py",start:11280688,end:11282566,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/info.py",start:11282566,end:11283764,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/linalg.py",start:11283764,end:11364201,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/__pycache__/linalg.cpython-36.pyc",start:11364201,end:11437557,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/__pycache__/__init__.cpython-36.pyc",start:11437557,end:11440043,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/__pycache__/info.cpython-36.pyc",start:11440043,end:11441423,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/__pycache__/setup.cpython-36.pyc",start:11441423,end:11443080,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/tests/test_build.py",start:11443080,end:11444836,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/tests/__init__.py",start:11444836,end:11444836,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/tests/test_deprecations.py",start:11444836,end:11445612,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/tests/test_linalg.py",start:11445612,end:11508e3,audio:0},{filename:"/lib/python3.6/site-packages/numpy/linalg/tests/test_regression.py",start:11508e3,end:11513741,audio:0},{filename:"/lib/python3.6/site-packages/numpy/tests/test_numpy_version.py",start:11513741,end:11514458,audio:0},{filename:"/lib/python3.6/site-packages/numpy/tests/test_matlib.py",start:11514458,end:11516446,audio:0},{filename:"/lib/python3.6/site-packages/numpy/tests/__init__.py",start:11516446,end:11516446,audio:0},{filename:"/lib/python3.6/site-packages/numpy/tests/test_reloading.py",start:11516446,end:11517484,audio:0},{filename:"/lib/python3.6/site-packages/numpy/tests/test_warnings.py",start:11517484,end:11520170,audio:0},{filename:"/lib/python3.6/site-packages/numpy/tests/test_scripts.py",start:11520170,end:11523229,audio:0},{filename:"/lib/python3.6/site-packages/numpy/tests/test_ctypeslib.py",start:11523229,end:11527560,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/memmap.py",start:11527560,end:11538992,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/shape_base.py",start:11538992,end:11557808,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/numerictypes.py",start:11557808,end:11586910,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/umath_tests.so",start:11586910,end:11599142,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/multiarray_tests.so",start:11599142,end:11712675,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/umath.so",start:11712675,end:12477289,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/generate_numpy_api.py",start:12477289,end:12484795,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/setup_common.py",start:12484795,end:12500748,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/defchararray.py",start:12500748,end:12568117,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/function_base.py",start:12568117,end:12580457,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/numeric.py",start:12580457,end:12666188,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/machar.py",start:12666188,end:12676977,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/operand_flag_tests.so",start:12676977,end:12680659,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/_internal.py",start:12680659,end:12702475,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/fromnumeric.py",start:12702475,end:12803112,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__init__.py",start:12803112,end:12806156,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/records.py",start:12806156,end:12836249,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/struct_ufunc_test.so",start:12836249,end:12840637,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/_dummy.so",start:12840637,end:12841321,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/setup.py",start:12841321,end:12882798,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/multiarray.so",start:12882798,end:14704889,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/_methods.py",start:14704889,end:14709593,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/arrayprint.py",start:14709593,end:14766858,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/einsumfunc.py",start:14766858,end:14807550,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/info.py",start:14807550,end:14812242,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/cversions.py",start:14812242,end:14812655,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/test_rational.so",start:14812655,end:14869496,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/getlimits.py",start:14869496,end:14887918,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/getlimits.cpython-36.pyc",start:14887918,end:14902027,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/_methods.cpython-36.pyc",start:14902027,end:14905643,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/shape_base.cpython-36.pyc",start:14905643,end:14924178,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/memmap.cpython-36.pyc",start:14924178,end:14934320,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/cversions.cpython-36.pyc",start:14934320,end:14934931,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/fromnumeric.cpython-36.pyc",start:14934931,end:15034599,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/generate_numpy_api.cpython-36.pyc",start:15034599,end:15041019,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/einsumfunc.cpython-36.pyc",start:15041019,end:15071255,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/arrayprint.cpython-36.pyc",start:15071255,end:15120146,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/machar.cpython-36.pyc",start:15120146,end:15127836,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/__init__.cpython-36.pyc",start:15127836,end:15130223,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/defchararray.cpython-36.pyc",start:15130223,end:15197480,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/_internal.cpython-36.pyc",start:15197480,end:15215902,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/info.cpython-36.pyc",start:15215902,end:15220780,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/setup.cpython-36.pyc",start:15220780,end:15243107,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/setup_common.cpython-36.pyc",start:15243107,end:15253434,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/numeric.cpython-36.pyc",start:15253434,end:15336633,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/numerictypes.cpython-36.pyc",start:15336633,end:15360752,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/records.cpython-36.pyc",start:15360752,end:15383557,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/__pycache__/function_base.cpython-36.pyc",start:15383557,end:15394565,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/lib/libnpymath.a",start:15394565,end:15600423,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_common.h",start:15600423,end:15638070,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h",start:15638070,end:15702409,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h",start:15702409,end:15702573,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/halffloat.h",start:15702573,end:15704451,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_interrupt.h",start:15704451,end:15707890,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/oldnumeric.h",start:15707890,end:15708598,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/numpyconfig.h",start:15708598,end:15709765,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/arrayscalars.h",start:15709765,end:15713274,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_3kcompat.h",start:15713274,end:15725589,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h",start:15725589,end:15730193,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/_neighborhood_iterator_imp.h",start:15730193,end:15732054,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/noprefix.h",start:15732054,end:15738840,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h",start:15738840,end:15749731,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/ufuncobject.h",start:15749731,end:15762255,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/utils.h",start:15762255,end:15762883,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_no_deprecated_api.h",start:15762883,end:15763450,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_cpu.h",start:15763450,end:15766499,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/old_defines.h",start:15766499,end:15772805,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_os.h",start:15772805,end:15773622,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_endian.h",start:15773622,end:15775957,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/include/numpy/npy_math.h",start:15775957,end:15794477,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_machar.py",start:15794477,end:15795712,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_numeric.py",start:15795712,end:15897838,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_longdouble.py",start:15897838,end:15903798,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_abc.py",start:15903798,end:15906270,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_api.py",start:15906270,end:15925176,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_function_base.py",start:15925176,end:15936589,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_print.py",start:15936589,end:15944678,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_getlimits.py",start:15944678,end:15949264,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_item_selection.py",start:15949264,end:15952933,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_mem_overlap.py",start:15952933,end:15982497,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_scalarmath.py",start:15982497,end:16009203,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_dtype.py",start:16009203,end:16038275,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_indexing.py",start:16038275,end:16088359,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_scalarprint.py",start:16088359,end:16099093,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_einsum.py",start:16099093,end:16139929,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_shape_base.py",start:16139929,end:16160228,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_extint128.py",start:16160228,end:16166012,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_ufunc.py",start:16166012,end:16221300,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_scalar_ctors.py",start:16221300,end:16223662,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_umath.py",start:16223662,end:16322694,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/__init__.py",start:16322694,end:16322694,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_memmap.py",start:16322694,end:16329725,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_datetime.py",start:16329725,end:16423115,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_nditer.py",start:16423115,end:16529247,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_scalarinherit.py",start:16529247,end:16531114,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_multiarray.py",start:16531114,end:16806455,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_deprecations.py",start:16806455,end:16826053,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_unicode.py",start:16826053,end:16839786,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_numerictypes.py",start:16839786,end:16855198,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_defchararray.py",start:16855198,end:16880891,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_errstate.py",start:16880891,end:16882467,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_records.py",start:16882467,end:16898760,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_arrayprint.py",start:16898760,end:16930138,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_half.py",start:16930138,end:16948765,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_umath_complex.py",start:16948765,end:16968421,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_regression.py",start:16968421,end:17048141,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/test_indexerrors.py",start:17048141,end:17053067,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/data/astype_copy.pkl",start:17053067,end:17053783,audio:0},{filename:"/lib/python3.6/site-packages/numpy/core/tests/data/recarray_from_file.fits",start:17053783,end:17062423,audio:0},{filename:"/bin/f2py3",start:17062423,end:17063226,audio:0}],remote_package_size:17063226,package_uuid:"1026dc95-48af-4663-b8ad-d286932ba7a7"})})();
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>numpy.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{"dependencies": {"matplotlib": ["cycler", "kiwisolver", "numpy", "pyparsing", "python-dateutil", "pytz"], "numpy": [], "pyparsing": [], "kiwisolver": [], "python-dateutil": [], "xlrd": [], "pandas": ["numpy", "python-dateutil", "pytz"], "cycler": [], "pytz": []}}
\ No newline at end of file
{"dependencies": {"pytz": [], "python-dateutil": [], "pyparsing": [], "numpy": [], "matplotlib": ["cycler", "kiwisolver", "numpy", "pyparsing", "python-dateutil", "pytz"], "cycler": [], "kiwisolver": [], "pandas": ["numpy", "python-dateutil", "pytz"]}}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pandas.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pandas.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pyodide.asm.data</string> </value>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,6 +2,12 @@
* The main bootstrap script for loading pyodide.
*/
// Regexp for validating package name and URI
var package_name_regexp = '[a-z0-9_][a-z0-9_\-]*'
var package_uri_regexp =
new RegExp('^https?://.*?(' + package_name_regexp + ').js$', 'i');
var package_name_regexp = new RegExp('^' + package_name_regexp + '$', 'i');
var languagePluginLoader = new Promise((resolve, reject) => {
// This is filled in by the Makefile to be either a local file or the
// deployed location. TODO: This should be done in a less hacky
......@@ -11,20 +17,52 @@ var languagePluginLoader = new Promise((resolve, reject) => {
////////////////////////////////////////////////////////////
// Package loading
var packages = undefined;
let loadedPackages = new Set();
let loadedPackages = new Array();
let _uri_to_package_name = (package_uri) => {
// Generate a unique package name from URI
if (package_name_regexp.test(package_uri)) {
return package_uri;
} else if (package_uri_regexp.test(package_uri)) {
let match = package_uri_regexp.exec(package_uri);
// Get the regexp group corresponding to the package name
return match[1];
} else {
return null;
}
};
let loadPackage = (names) => {
// DFS to find all dependencies of the requested packages
let packages = window.pyodide.packages.dependencies;
let queue = new Array(names);
let toLoad = new Set();
let toLoad = new Array();
while (queue.length) {
const package = queue.pop();
if (!loadedPackages.has(package)) {
toLoad.add(package);
let package_uri = queue.pop();
const package = _uri_to_package_name(package_uri);
if (package == null) {
throw new Error(`Invalid package name or URI '${package_uri}'`);
} else if (package == package_uri) {
package_uri = 'default channel';
}
console.log(`Loading ${package} from ${package_uri}`);
if (package in loadedPackages) {
if (package_uri != loadedPackages[package]) {
throw new Error(
`URI mismatch, attempting to load package ` +
`${package} from ${package_uri} while it is already ` +
`loaded from ${loadedPackages[package]}!`);
}
} else {
toLoad[package] = package_uri;
if (packages.hasOwnProperty(package)) {
packages[package].forEach((subpackage) => {
if (!loadedPackages.has(subpackage) && !toLoad.has(subpackage)) {
if (!(subpackage in loadedPackages) && !(subpackage in toLoad)) {
queue.push(subpackage);
}
});
......@@ -35,25 +73,32 @@ var languagePluginLoader = new Promise((resolve, reject) => {
}
let promise = new Promise((resolve, reject) => {
if (toLoad.size === 0) {
if (Object.keys(toLoad).length === 0) {
resolve('No new packages to load');
}
pyodide.monitorRunDependencies = (n) => {
if (n === 0) {
toLoad.forEach((package) => loadedPackages.add(package));
for (let package in toLoad) {
loadedPackages[package] = toLoad[package];
}
delete pyodide.monitorRunDependencies;
const packageList = Array.from(toLoad.keys()).join(', ');
const packageList = Array.from(Object.keys(toLoad)).join(', ');
resolve(`Loaded ${packageList}`);
}
};
toLoad.forEach((package) => {
for (let package in toLoad) {
let script = document.createElement('script');
let package_uri = toLoad[package];
if (package_uri == 'default channel') {
script.src = `${baseURL}${package}.js`;
} else {
script.src = `${package_uri}`;
}
script.onerror = (e) => { reject(e); };
document.body.appendChild(script);
});
}
// We have to invalidate Python's import caches, or it won't
// see the new files. This is done here so it happens in parallel
......@@ -117,6 +162,7 @@ var languagePluginLoader = new Promise((resolve, reject) => {
};
Module.filePackagePrefixURL = baseURL;
Module.locateFile = (path) => baseURL + path;
var postRunPromise = new Promise((resolve, reject) => {
Module.postRun = () => {
delete window.Module;
......
"""
A library of helper utilities for connecting Python to the browser environment.
"""
from js import XMLHttpRequest
import ast
import io
def open_url(url):
"""
Fetches a given *url* and returns a io.StringIO to access its contents.
"""
req = XMLHttpRequest.new()
req.open('GET', url, False)
req.send(None)
return io.StringIO(req.response)
def eval_code(code, ns):
"""
Runs a string of code, the last part of which may be an expression.
"""
mod = ast.parse(code)
if isinstance(mod.body[-1], ast.Expr):
expr = ast.Expression(mod.body[-1].value)
del mod.body[-1]
else:
expr = None
if len(mod.body):
exec(compile(mod, '<exec>', mode='exec'), ns, ns)
if expr is not None:
return eval(compile(expr, '<eval>', mode='eval'), ns, ns)
else:
return None
__all__ = ['open_url', 'eval_code']
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pyodide.py</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pyparsing.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module=typeof pyodide!=="undefined"?pyodide:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="pyparsing.data";var REMOTE_PACKAGE_BASE="pyparsing.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.6",true,true);Module["FS_createPath"]("/lib/python3.6","site-packages",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","pyparsing-2.2.0-py3.6.egg-info",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","__pycache__",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,function(){Module["removeRunDependency"]("fp "+that.name)},function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{err("Preloading file "+that.name+" failed")}},false,true);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])err("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_pyparsing.data")}Module["addRunDependency"]("datafile_pyparsing.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{filename:"/lib/python3.6/site-packages/pyparsing.py",start:0,end:231121,audio:0},{filename:"/lib/python3.6/site-packages/pyparsing-2.2.0-py3.6.egg-info/top_level.txt",start:231121,end:231131,audio:0},{filename:"/lib/python3.6/site-packages/pyparsing-2.2.0-py3.6.egg-info/dependency_links.txt",start:231131,end:231132,audio:0},{filename:"/lib/python3.6/site-packages/pyparsing-2.2.0-py3.6.egg-info/PKG-INFO",start:231132,end:232052,audio:0},{filename:"/lib/python3.6/site-packages/pyparsing-2.2.0-py3.6.egg-info/SOURCES.txt",start:232052,end:237111,audio:0},{filename:"/lib/python3.6/site-packages/__pycache__/pyparsing.cpython-36.pyc",start:237111,end:439358,audio:0}],remote_package_size:439358,package_uuid:"28aa4f4a-c37c-41cd-a4e5-cc0435e7a49e"})})();
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pyparsing.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>python-dateutil.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module=typeof pyodide!=="undefined"?pyodide:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="python-dateutil.data";var REMOTE_PACKAGE_BASE="python-dateutil.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.6",true,true);Module["FS_createPath"]("/lib/python3.6","site-packages",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","dateutil",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/dateutil","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/dateutil","tz",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/dateutil/tz","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/dateutil","parser",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/dateutil/parser","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/dateutil","zoneinfo",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/dateutil/zoneinfo","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","python_dateutil-2.7.2-py3.6.egg-info",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,function(){Module["removeRunDependency"]("fp "+that.name)},function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{err("Preloading file "+that.name+" failed")}},false,true);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])err("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_python-dateutil.data")}Module["addRunDependency"]("datafile_python-dateutil.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{filename:"/lib/python3.6/site-packages/dateutil/_common.py",start:0,end:932,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tzwin.py",start:932,end:991,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/rrule.py",start:991,end:65858,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/easter.py",start:65858,end:68542,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__init__.py",start:68542,end:68764,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/_version.py",start:68764,end:68880,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/relativedelta.py",start:68880,end:93373,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/utils.py",start:93373,end:95214,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/relativedelta.cpython-36.pyc",start:95214,end:110049,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/tzwin.cpython-36.pyc",start:110049,end:110208,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/utils.cpython-36.pyc",start:110208,end:112291,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/_version.cpython-36.pyc",start:112291,end:112447,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/_common.cpython-36.pyc",start:112447,end:113846,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/__init__.cpython-36.pyc",start:113846,end:114186,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/easter.cpython-36.pyc",start:114186,end:116345,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/__pycache__/rrule.cpython-36.pyc",start:116345,end:158308,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/_common.py",start:158308,end:171200,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/tz.py",start:171200,end:227580,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/_factories.py",start:227580,end:229014,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/__init__.py",start:229014,end:229517,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/win.py",start:229517,end:240835,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/__pycache__/_factories.cpython-36.pyc",start:240835,end:243019,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/__pycache__/win.cpython-36.pyc",start:243019,end:252492,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/__pycache__/_common.cpython-36.pyc",start:252492,end:264717,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/__pycache__/__init__.cpython-36.pyc",start:264717,end:265362,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/tz/__pycache__/tz.cpython-36.pyc",start:265362,end:305860,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/parser/isoparser.py",start:305860,end:318705,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/parser/__init__.py",start:318705,end:320432,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/parser/_parser.py",start:320432,end:376190,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/parser/__pycache__/_parser.cpython-36.pyc",start:376190,end:414320,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/parser/__pycache__/isoparser.cpython-36.pyc",start:414320,end:425238,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/parser/__pycache__/__init__.cpython-36.pyc",start:425238,end:427252,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/zoneinfo/rebuild.py",start:427252,end:428971,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz",start:428971,end:568051,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/zoneinfo/__init__.py",start:568051,end:573940,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/zoneinfo/__pycache__/rebuild.cpython-36.pyc",start:573940,end:575800,audio:0},{filename:"/lib/python3.6/site-packages/dateutil/zoneinfo/__pycache__/__init__.cpython-36.pyc",start:575800,end:581385,audio:0},{filename:"/lib/python3.6/site-packages/python_dateutil-2.7.2-py3.6.egg-info/top_level.txt",start:581385,end:581394,audio:0},{filename:"/lib/python3.6/site-packages/python_dateutil-2.7.2-py3.6.egg-info/dependency_links.txt",start:581394,end:581395,audio:0},{filename:"/lib/python3.6/site-packages/python_dateutil-2.7.2-py3.6.egg-info/zip-safe",start:581395,end:581396,audio:0},{filename:"/lib/python3.6/site-packages/python_dateutil-2.7.2-py3.6.egg-info/PKG-INFO",start:581396,end:589214,audio:0},{filename:"/lib/python3.6/site-packages/python_dateutil-2.7.2-py3.6.egg-info/SOURCES.txt",start:589214,end:590799,audio:0},{filename:"/lib/python3.6/site-packages/python_dateutil-2.7.2-py3.6.egg-info/requires.txt",start:590799,end:590809,audio:0}],remote_package_size:590809,package_uuid:"4f0f9fb5-9590-40c6-af98-fa434b9d4140"})})();
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>python-dateutil.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Python - iodide</title>
<link rel="stylesheet" type="text/css" href="https://iodide.io/dist/iodide.pyodide-20180623.css">
</head>
<body>
<script id="jsmd" type="text/jsmd">
%% meta
{
"title": "Python",
"languages": {
"js": {
"pluginType": "language",
"languageId": "js",
"displayName": "Javascript",
"codeMirrorMode": "javascript",
"module": "window",
"evaluator": "eval",
"keybinding": "j",
"url": ""
},
"py": {
"languageId": "py",
"displayName": "python",
"codeMirrorMode": "python",
"keybinding": "p",
"url": "https://iodide.io/pyodide-demo/pyodide.js",
"module": "pyodide",
"evaluator": "runPython",
"pluginType": "language"
}
},
"lastExport": "2018-05-04T17:13:00.489Z"
}
%% md
# Pyodide 🐍
Pyodide adds support for Python in an Iodide notebook, running inside your browser.
**This is early days. Everything here is subject to change.**
(A major shortcoming is that `print` from Python currently prints to the Javascript debugger console, rather than to the notebook cell, so some of these examples are more contrived than they need to be.)
**Also to note: If you have any issues, try disabling any ad or tracking blockers for this site.**
First, let's use a plugin cell to load the Python interpreter and tell Iodide about the new cell type.
%% plugin
{
"languageId": "py",
"displayName": "python",
"codeMirrorMode": "python",
"keybinding": "p",
"url": "https://iodide.io/pyodide-demo/pyodide.js",
"module": "pyodide",
"evaluator": "runPython",
"pluginType": "language"
}
%% md
## Make a Python cell. Import stuff and use it.
Most of the standard library (at least the parts that make sense) are here and available to use.
%% code {"language":"py"}
# python
import sys
sys.version
%% md
## Basic data types
The basic data types (None, bool, ints, floats, lists, and dicts) are converted from Python to Javascript when they are output and displayed using the standard mechanisms in Iodide.
%% code {"language":"py"}
[0, 1, 32.0, 'foo', {'a': 10, 'b': '20'}, b'bytes']
%% md
## Sharing objects between Python and Javascript
The Python and Javascript sides can pass objects back and forth.
So, you can set a value in Javascript code:
%% js
// javascript
secret = "Wklv#lv#olnh#pdjlf$"
%% md
...and use it from Python by using `from js import ...`:
%% code {"language":"py"}
# python
from js import secret
decoded = ''.join(chr(ord(x) - 3) for x in secret)
%% md
...and then get it back from Javascript using `pyodide.pyimport`:
%% js
// javascript
var decoded = pyodide.pyimport("decoded")
decoded
%% md
## Custom data types
Non-basic data types, such as class instances, functions, File objects etc., can also be passed between Python and Javascript.
### Using Python objects from Javascript
For example, say we had the following Python function that we wanted to call from Javascript:
%% code {"language":"py"}
# python
def square(x):
return x * x
%% md
Since calling conventions are a bit different in Python than in Javascript, all Python callables take two arguments when called from Javascript: the positional arguments as an array, and the keyword arguments as an object.
%% js
// javascript
var square = pyodide.pyimport("square")
square(2.5)
%% md
This is equivalent to the following Python syntax:
%% code {"language":"py"}
# python
square(2.5)
%% md
You can also get the attributes of objects in a similar way. Say we had an instance of the following Python custom class:
%% code {"language":"py"}
# python
class Foo:
def __init__(self, val):
self.val = val
foo = Foo(42)
foo
%% md
We can get the value of its `val` property as so:
%% js
// javascript
var foo = pyodide.pyimport("foo")
foo.val
%% md
### Using Javascript objects from Python
Likewise, you can use Javascript objects from Python.
%% js
// javascript
function square(x) {
return x*x;
}
%% md
To call this function from Python...
%% code {"language":"py"}
from js import square
square(4)
%% md
## Exceptions
Python exceptions are converted to Javascript exceptions, and they include tracebacks.
%% code {"language":"py"}
x = 5 / 0
%% md
## World DOMination
By using `from js import document`, you can easily access the Web API from Python.
For example, get the title of the document:
%% code {"language":"py"}
# python
from js import document
document.title
%% md
You can set it, too:
%% code {"language":"py"}
# python
document.title = 'My mind is blown'
%% md
We can set up a special `div` element from a markdown cell, and then manipulate it from Python.
<div id="targetDiv">This is a div we'll target from Python</div>
%% code {"language":"py"}
# python
# Turn the div red
document.getElementById("targetDiv").setAttribute("style", "background-color: red")
%% md
## Numpy
You bet, [Numpy](http://numpy.org) works.
To save on download times, isn't loaded by default. We need to manually use
the `pyodide.loadPackage` function from a Javascript cell.
%% js
pyodide.loadPackage('numpy')
%% md
Now that the Numpy package has been loaded (i.e. transferred to your local browser), we can import it:
%% code {"language":"py"}
import numpy as np
%% md
Let's make a simple array of zeros. When it's displayed, it's using the same output code that Iodide uses for Javascript.
(On a technical level, it's important to note that Pyodide doesn't need to copy the whole array over to the Javascript side to do this: it's only accessing the parts of the array it needs to make the display.)
%% code {"language":"py"}
np.zeros((16, 16))
%% md
### Estimating pi
Here's a fun example where we can estimate pi by generating a bunch of random (x, y) points and calculating the ratio of them that fall within the unit circle.
%% code {"language":"py"}
from numpy import random
points = (random.rand(1000, 2) * 2.0) - 1.0
%% code {"language":"py"}
x = points[:, 0]
y = points[:, 1]
inside_circle = (x*x + y*y) < 1.0
pi = (float(np.sum(inside_circle)) / float(len(points))) * 4.0
pi
%% md
## Coming soon..
A couple things that already work that will be coming to this example notebook soon...
- Pandas support
- Plotting using D3 from Python
%% js
</script>
<div id='page'></div>
<script src='https://iodide.io/dist/iodide.pyodide-20180623.js'></script>
</body>
</html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>python.html</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pytz.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module=typeof pyodide!=="undefined"?pyodide:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="pytz.data";var REMOTE_PACKAGE_BASE="pytz.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.6",true,true);Module["FS_createPath"]("/lib/python3.6","site-packages",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","pytz",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz","__pycache__",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz","zoneinfo",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Africa",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Chile",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Antarctica",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Canada",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Asia",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Arctic",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","America",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo/America","Indiana",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo/America","North_Dakota",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo/America","Kentucky",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo/America","Argentina",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Indian",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Pacific",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Europe",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Brazil",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","US",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Etc",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Australia",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Atlantic",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages/pytz/zoneinfo","Mexico",true,true);Module["FS_createPath"]("/lib/python3.6/site-packages","pytz-2018.4-py3.6.egg-info",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,function(){Module["removeRunDependency"]("fp "+that.name)},function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{err("Preloading file "+that.name+" failed")}},false,true);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])err("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_pytz.data")}Module["addRunDependency"]("datafile_pytz.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{filename:"/lib/python3.6/site-packages/pytz/lazy.py",start:0,end:5494,audio:0},{filename:"/lib/python3.6/site-packages/pytz/reference.py",start:5494,end:9272,audio:0},{filename:"/lib/python3.6/site-packages/pytz/tzfile.py",start:9272,end:14017,audio:0},{filename:"/lib/python3.6/site-packages/pytz/exceptions.py",start:14017,end:15346,audio:0},{filename:"/lib/python3.6/site-packages/pytz/tzinfo.py",start:15346,end:34618,audio:0},{filename:"/lib/python3.6/site-packages/pytz/__init__.py",start:34618,end:68774,audio:0},{filename:"/lib/python3.6/site-packages/pytz/__pycache__/tzinfo.cpython-36.pyc",start:68774,end:83692,audio:0},{filename:"/lib/python3.6/site-packages/pytz/__pycache__/tzfile.cpython-36.pyc",start:83692,end:86788,audio:0},{filename:"/lib/python3.6/site-packages/pytz/__pycache__/__init__.cpython-36.pyc",start:86788,end:115760,audio:0},{filename:"/lib/python3.6/site-packages/pytz/__pycache__/exceptions.cpython-36.pyc",start:115760,end:117583,audio:0},{filename:"/lib/python3.6/site-packages/pytz/__pycache__/lazy.cpython-36.pyc",start:117583,end:122910,audio:0},{filename:"/lib/python3.6/site-packages/pytz/__pycache__/reference.cpython-36.pyc",start:122910,end:126770,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/ROC",start:126770,end:127560,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Navajo",start:127560,end:130013,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Portugal",start:130013,end:133482,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Iceland",start:133482,end:134670,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/NZ-CHAT",start:134670,end:136757,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/MST",start:136757,end:136884,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/tzdata.zi",start:136884,end:243523,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Poland",start:243523,end:246228,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/CET",start:246228,end:248330,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/WET",start:248330,end:250203,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Japan",start:250203,end:250521,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/zone1970.tab",start:250521,end:268302,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/HST",start:268302,end:268430,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Zulu",start:268430,end:268557,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Egypt",start:268557,end:270529,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/UTC",start:270529,end:270656,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Israel",start:270656,end:272921,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Cuba",start:272921,end:275358,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Libya",start:275358,end:276013,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/PRC",start:276013,end:276427,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Singapore",start:276427,end:276851,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/leapseconds",start:276851,end:279047,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/posixrules",start:279047,end:282592,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/GB",start:282592,end:286279,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/ROK",start:286279,end:286810,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Eire",start:286810,end:290353,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/GMT-0",start:290353,end:290480,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/CST6CDT",start:290480,end:292774,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/UCT",start:292774,end:292901,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Iran",start:292901,end:294619,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/GMT",start:294619,end:294746,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Universal",start:294746,end:294873,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/W-SU",start:294873,end:296417,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/GB-Eire",start:296417,end:300104,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Hongkong",start:300104,end:301293,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/iso3166.tab",start:301293,end:305738,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/MST7MDT",start:305738,end:308032,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/GMT0",start:308032,end:308159,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/EST5EDT",start:308159,end:310453,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/EET",start:310453,end:312329,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Greenwich",start:312329,end:312456,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/NZ",start:312456,end:314916,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/PST8PDT",start:314916,end:317210,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/EST",start:317210,end:317337,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/MET",start:317337,end:319439,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Kwajalein",start:319439,end:319698,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/GMT+0",start:319698,end:319825,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Turkey",start:319825,end:321991,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Factory",start:321991,end:322139,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/zone.tab",start:322139,end:341304,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Jamaica",start:341304,end:341811,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Kinshasa",start:341811,end:341982,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Lusaka",start:341982,end:342153,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Timbuktu",start:342153,end:342323,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Djibouti",start:342323,end:342608,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Ndjamena",start:342608,end:342833,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Juba",start:342833,end:343516,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Asmara",start:343516,end:343801,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Lome",start:343801,end:343971,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Abidjan",start:343971,end:344141,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Cairo",start:344141,end:346113,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Mogadishu",start:346113,end:346398,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Lubumbashi",start:346398,end:346569,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Luanda",start:346569,end:346740,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Maputo",start:346740,end:346911,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Brazzaville",start:346911,end:347082,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/El_Aaiun",start:347082,end:348555,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Banjul",start:348555,end:348725,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Sao_Tome",start:348725,end:348959,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Ceuta",start:348959,end:351018,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Bamako",start:351018,end:351188,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Asmera",start:351188,end:351473,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Harare",start:351473,end:351644,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Tripoli",start:351644,end:352299,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Johannesburg",start:352299,end:352570,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Freetown",start:352570,end:352740,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Mbabane",start:352740,end:353011,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Dar_es_Salaam",start:353011,end:353296,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Libreville",start:353296,end:353467,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Blantyre",start:353467,end:353638,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Nouakchott",start:353638,end:353808,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Nairobi",start:353808,end:354093,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Bujumbura",start:354093,end:354264,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Conakry",start:354264,end:354434,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Kigali",start:354434,end:354605,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Kampala",start:354605,end:354890,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Casablanca",start:354890,end:356533,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Douala",start:356533,end:356704,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Niamey",start:356704,end:356875,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Monrovia",start:356875,end:357108,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Khartoum",start:357108,end:357821,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Bissau",start:357821,end:358029,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Algiers",start:358029,end:358789,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Porto-Novo",start:358789,end:358960,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Maseru",start:358960,end:359231,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Gaborone",start:359231,end:359402,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Tunis",start:359402,end:360112,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Dakar",start:360112,end:360282,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Lagos",start:360282,end:360453,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Ouagadougou",start:360453,end:360623,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Addis_Ababa",start:360623,end:360908,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Windhoek",start:360908,end:361938,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Malabo",start:361938,end:362109,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Bangui",start:362109,end:362280,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Africa/Accra",start:362280,end:363122,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Chile/EasterIsland",start:363122,end:365364,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Chile/Continental",start:365364,end:367902,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/South_Pole",start:367902,end:370362,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Rothera",start:370362,end:370548,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/McMurdo",start:370548,end:373008,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Davis",start:373008,end:373319,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/DumontDUrville",start:373319,end:373535,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Vostok",start:373535,end:373722,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Palmer",start:373722,end:375154,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Mawson",start:375154,end:375379,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Troll",start:375379,end:376555,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Syowa",start:376555,end:376742,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Macquarie",start:376742,end:378285,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Antarctica/Casey",start:378285,end:378596,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Mountain",start:378596,end:380998,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Central",start:380998,end:383889,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Pacific",start:383889,end:386790,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Yukon",start:386790,end:388883,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Saskatchewan",start:388883,end:389877,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Atlantic",start:389877,end:393315,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Newfoundland",start:393315,end:396979,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Canada/Eastern",start:396979,end:400482,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Atyrau",start:400482,end:401507,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kamchatka",start:401507,end:402705,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Omsk",start:402705,end:403948,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kuching",start:403948,end:404469,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Istanbul",start:404469,end:406635,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Ust-Nera",start:406635,end:407925,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Damascus",start:407925,end:410245,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kuala_Lumpur",start:410245,end:410669,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Ulan_Bator",start:410669,end:411590,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Yekaterinburg",start:411590,end:412871,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Chita",start:412871,end:414128,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Macau",start:414128,end:414899,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Riyadh",start:414899,end:415086,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Taipei",start:415086,end:415876,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Bangkok",start:415876,end:416096,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Shanghai",start:416096,end:416510,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Beirut",start:416510,end:418685,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Bishkek",start:418685,end:419730,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Pontianak",start:419730,end:420125,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Hong_Kong",start:420125,end:421314,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Karachi",start:421314,end:421731,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Yangon",start:421731,end:422028,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Qyzylorda",start:422028,end:423075,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Hebron",start:423075,end:425398,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Oral",start:425398,end:426437,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Harbin",start:426437,end:426851,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Tokyo",start:426851,end:427169,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Macao",start:427169,end:427940,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Baku",start:427940,end:429209,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kabul",start:429209,end:429438,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kolkata",start:429438,end:429750,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Singapore",start:429750,end:430174,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Seoul",start:430174,end:430705,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Calcutta",start:430705,end:431017,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Sakhalin",start:431017,end:432251,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Choibalsan",start:432251,end:433242,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Dushanbe",start:433242,end:433863,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Manila",start:433863,end:434230,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Chongqing",start:434230,end:434644,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Ujung_Pandang",start:434644,end:434932,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Hovd",start:434932,end:435853,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Tehran",start:435853,end:437571,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kuwait",start:437571,end:437758,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Jayapura",start:437758,end:438009,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Urumqi",start:438009,end:438196,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Novosibirsk",start:438196,end:439451,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Novokuznetsk",start:439451,end:440648,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Amman",start:440648,end:442525,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Vladivostok",start:442525,end:443769,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Vientiane",start:443769,end:443989,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Ashkhabad",start:443989,end:444640,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Khandyga",start:444640,end:445951,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Pyongyang",start:445951,end:446223,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Dhaka",start:446223,end:446593,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Thimbu",start:446593,end:446822,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Aqtobe",start:446822,end:447869,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Tbilisi",start:447869,end:448949,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Brunei",start:448949,end:449178,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Chungking",start:449178,end:449592,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Phnom_Penh",start:449592,end:449812,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Nicosia",start:449812,end:451828,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Anadyr",start:451828,end:453050,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Krasnoyarsk",start:453050,end:454293,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Muscat",start:454293,end:454480,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Dili",start:454480,end:454733,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Gaza",start:454733,end:457028,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Magadan",start:457028,end:458286,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Saigon",start:458286,end:458675,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Aqtau",start:458675,end:459692,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Katmandu",start:459692,end:459930,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Colombo",start:459930,end:460343,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Rangoon",start:460343,end:460640,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Tashkent",start:460640,end:461275,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Samarkand",start:461275,end:461894,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Thimphu",start:461894,end:462123,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Ho_Chi_Minh",start:462123,end:462512,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Famagusta",start:462512,end:464554,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Srednekolymsk",start:464554,end:465798,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Tomsk",start:465798,end:467053,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Ulaanbaatar",start:467053,end:467974,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Barnaul",start:467974,end:469229,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Jerusalem",start:469229,end:471494,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Yakutsk",start:471494,end:472737,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Dacca",start:472737,end:473107,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Irkutsk",start:473107,end:474383,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kathmandu",start:474383,end:474621,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Almaty",start:474621,end:475652,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Makassar",start:475652,end:475940,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Tel_Aviv",start:475940,end:478205,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Aden",start:478205,end:478392,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Ashgabat",start:478392,end:479043,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Dubai",start:479043,end:479230,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Jakarta",start:479230,end:479622,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Yerevan",start:479622,end:480835,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Bahrain",start:480835,end:481060,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Baghdad",start:481060,end:482064,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Qatar",start:482064,end:482289,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Asia/Kashgar",start:482289,end:482476,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Arctic/Longyearbyen",start:482476,end:484727,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Monterrey",start:484727,end:486143,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Tegucigalpa",start:486143,end:486421,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Rio_Branco",start:486421,end:487083,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Belem",start:487083,end:487685,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Danmarkshavn",start:487685,end:488397,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Merida",start:488397,end:489853,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Nome",start:489853,end:492229,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Menominee",start:492229,end:494512,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Godthab",start:494512,end:496404,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Eirunepe",start:496404,end:497094,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Ojinaga",start:497094,end:498616,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Toronto",start:498616,end:502119,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Metlakatla",start:502119,end:503537,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Inuvik",start:503537,end:505465,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Atka",start:505465,end:507830,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/El_Salvador",start:507830,end:508080,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Catamarca",start:508080,end:509189,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Punta_Arenas",start:509189,end:511100,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Kralendijk",start:511100,end:511312,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Mazatlan",start:511312,end:512876,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Port-au-Prince",start:512876,end:514331,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Dawson",start:514331,end:516424,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Resolute",start:516424,end:518354,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Porto_Velho",start:518354,end:518956,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Jujuy",start:518956,end:520037,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Pangnirtung",start:520037,end:522145,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Bogota",start:522145,end:522416,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Scoresbysund",start:522416,end:524346,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Mendoza",start:524346,end:525455,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Santiago",start:525455,end:527993,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Adak",start:527993,end:530358,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Halifax",start:530358,end:533796,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Cuiaba",start:533796,end:535784,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Boise",start:535784,end:538187,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Fort_Wayne",start:538187,end:539862,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/St_Thomas",start:539862,end:540032,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Boa_Vista",start:540032,end:540690,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Curacao",start:540690,end:540902,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Phoenix",start:540902,end:541255,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Atikokan",start:541255,end:541600,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Montreal",start:541600,end:545103,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Dominica",start:545103,end:545273,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Sao_Paulo",start:545273,end:547289,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Cayenne",start:547289,end:547513,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Vancouver",start:547513,end:550414,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Rankin_Inlet",start:550414,end:552344,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Yakutat",start:552344,end:554658,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Moncton",start:554658,end:557821,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Denver",start:557821,end:560274,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Yellowknife",start:560274,end:562254,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/St_Lucia",start:562254,end:562424,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Cordoba",start:562424,end:563533,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Guyana",start:563533,end:563799,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Iqaluit",start:563799,end:565845,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Miquelon",start:565845,end:567541,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Thule",start:567541,end:569069,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Marigot",start:569069,end:569239,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Port_of_Spain",start:569239,end:569409,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Cayman",start:569409,end:569612,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/St_Vincent",start:569612,end:569782,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Santo_Domingo",start:569782,end:570273,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Managua",start:570273,end:570736,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Shiprock",start:570736,end:573189,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Santa_Isabel",start:573189,end:575545,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Panama",start:575545,end:575748,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Costa_Rica",start:575748,end:576089,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Maceio",start:576089,end:576859,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/New_York",start:576859,end:580404,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Cancun",start:580404,end:581220,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Grand_Turk",start:581220,end:583101,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Guadeloupe",start:583101,end:583271,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Edmonton",start:583271,end:585673,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Lower_Princes",start:585673,end:585885,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Barbados",start:585885,end:586229,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Nassau",start:586229,end:588513,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Fort_Nelson",start:588513,end:590762,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Aruba",start:590762,end:590974,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Porto_Acre",start:590974,end:591636,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Paramaribo",start:591636,end:591932,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Detroit",start:591932,end:594120,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Asuncion",start:594120,end:596197,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Los_Angeles",start:596197,end:599042,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Dawson_Creek",start:599042,end:600101,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Caracas",start:600101,end:600390,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Hermosillo",start:600390,end:600844,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Bahia",start:600844,end:601894,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Juneau",start:601894,end:604256,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Guayaquil",start:604256,end:604527,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Santarem",start:604527,end:605159,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Blanc-Sablon",start:605159,end:605466,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Louisville",start:605466,end:608247,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Bahia_Banderas",start:608247,end:609835,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Matamoros",start:609835,end:611251,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Ensenada",start:611251,end:613607,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Martinique",start:613607,end:613864,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Mexico_City",start:613864,end:615482,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Belize",start:615482,end:616460,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indianapolis",start:616460,end:618135,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Swift_Current",start:618135,end:618709,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Rosario",start:618709,end:619818,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Coral_Harbour",start:619818,end:620163,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Fortaleza",start:620163,end:620905,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Whitehorse",start:620905,end:622998,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Montserrat",start:622998,end:623168,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Campo_Grande",start:623168,end:625184,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Tijuana",start:625184,end:627540,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Havana",start:627540,end:629977,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Manaus",start:629977,end:630607,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/St_Barthelemy",start:630607,end:630777,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/La_Paz",start:630777,end:631034,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Rainy_River",start:631034,end:633165,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Chihuahua",start:633165,end:634687,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Montevideo",start:634687,end:636251,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Knox_IN",start:636251,end:638688,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Puerto_Rico",start:638688,end:638943,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Goose_Bay",start:638943,end:642162,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Antigua",start:642162,end:642332,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Buenos_Aires",start:642332,end:643441,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Guatemala",start:643441,end:643747,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Nipigon",start:643747,end:645878,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/St_Kitts",start:645878,end:646048,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Tortola",start:646048,end:646218,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Cambridge_Bay",start:646218,end:648316,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/St_Johns",start:648316,end:651980,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Sitka",start:651980,end:654330,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Regina",start:654330,end:655324,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Anchorage",start:655324,end:657704,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Winnipeg",start:657704,end:660595,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Lima",start:660595,end:661026,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Glace_Bay",start:661026,end:663232,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Anguilla",start:663232,end:663402,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Jamaica",start:663402,end:663909,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Thunder_Bay",start:663909,end:666120,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Creston",start:666120,end:666353,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Grenada",start:666353,end:666523,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Chicago",start:666523,end:670108,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Noronha",start:670108,end:670850,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Araguaina",start:670850,end:671760,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Recife",start:671760,end:672502,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Virgin",start:672502,end:672672,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Vevay",start:672672,end:674095,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Vincennes",start:674095,end:675798,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Knox",start:675798,end:678235,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Winamac",start:678235,end:680022,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Marengo",start:680022,end:681753,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Indianapolis",start:681753,end:683428,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Tell_City",start:683428,end:685163,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Indiana/Petersburg",start:685163,end:687076,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/North_Dakota/Center",start:687076,end:689465,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/North_Dakota/Beulah",start:689465,end:691854,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/North_Dakota/New_Salem",start:691854,end:694243,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Kentucky/Monticello",start:694243,end:696604,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Kentucky/Louisville",start:696604,end:699385,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Salta",start:699385,end:700466,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Catamarca",start:700466,end:701575,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Jujuy",start:701575,end:702656,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Mendoza",start:702656,end:703765,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/San_Luis",start:703765,end:704904,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Cordoba",start:704904,end:706013,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Ushuaia",start:706013,end:707122,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Tucuman",start:707122,end:708259,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/La_Rioja",start:708259,end:709382,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/ComodRivadavia",start:709382,end:710491,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Buenos_Aires",start:710491,end:711600,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/Rio_Gallegos",start:711600,end:712709,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/America/Argentina/San_Juan",start:712709,end:713832,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Cocos",start:713832,end:714023,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Reunion",start:714023,end:714210,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Christmas",start:714210,end:714392,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Mahe",start:714392,end:714579,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Comoro",start:714579,end:714864,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Kerguelen",start:714864,end:715051,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Mayotte",start:715051,end:715336,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Chagos",start:715336,end:715561,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Mauritius",start:715561,end:715828,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Maldives",start:715828,end:716048,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Indian/Antananarivo",start:716048,end:716333,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Auckland",start:716333,end:718793,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Pago_Pago",start:718793,end:718989,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Niue",start:718989,end:719255,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Ponape",start:719255,end:719438,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Nauru",start:719438,end:719720,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Pitcairn",start:719720,end:719943,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Wake",start:719943,end:720126,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Truk",start:720126,end:720309,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Port_Moresby",start:720309,end:720515,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Wallis",start:720515,end:720698,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Apia",start:720698,end:721832,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Chuuk",start:721832,end:722015,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Fakaofo",start:722015,end:722236,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Samoa",start:722236,end:722432,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Pohnpei",start:722432,end:722615,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Easter",start:722615,end:724857,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Galapagos",start:724857,end:725125,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Noumea",start:725125,end:725453,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Honolulu",start:725453,end:725729,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Kiritimati",start:725729,end:725992,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Guadalcanal",start:725992,end:726180,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Saipan",start:726180,end:726405,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Tahiti",start:726405,end:726592,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Chatham",start:726592,end:728679,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Fiji",start:728679,end:729783,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Majuro",start:729783,end:730004,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Norfolk",start:730004,end:730327,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Enderbury",start:730327,end:730586,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Efate",start:730586,end:731078,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Johnston",start:731078,end:731354,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Gambier",start:731354,end:731540,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Guam",start:731540,end:731765,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Marquesas",start:731765,end:731960,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Midway",start:731960,end:732156,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Funafuti",start:732156,end:732339,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Kosrae",start:732339,end:732590,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Palau",start:732590,end:732772,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Tarawa",start:732772,end:732955,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Kwajalein",start:732955,end:733214,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Yap",start:733214,end:733397,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Tongatapu",start:733397,end:733790,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Rarotonga",start:733790,end:734392,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Pacific/Bougainville",start:734392,end:734688,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Belgrade",start:734688,end:736645,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Sarajevo",start:736645,end:738602,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Rome",start:738602,end:741294,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Zaporozhye",start:741294,end:743409,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Istanbul",start:743409,end:745575,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/London",start:745575,end:749262,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Amsterdam",start:749262,end:752211,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Andorra",start:752211,end:753962,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Warsaw",start:753962,end:756667,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Athens",start:756667,end:758938,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Zurich",start:758938,end:760856,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Busingen",start:760856,end:762774,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Simferopol",start:762774,end:764264,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Kaliningrad",start:764264,end:765782,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Zagreb",start:765782,end:767739,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Jersey",start:767739,end:771426,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Belfast",start:771426,end:775113,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Kirov",start:775113,end:776280,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Skopje",start:776280,end:778237,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Volgograd",start:778237,end:779404,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Brussels",start:779404,end:782374,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Chisinau",start:782374,end:784819,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/San_Marino",start:784819,end:787511,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Malta",start:787511,end:790140,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Stockholm",start:790140,end:792058,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Uzhgorod",start:792058,end:794161,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Vilnius",start:794161,end:796360,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Vaduz",start:796360,end:798278,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Sofia",start:798278,end:800408,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Vienna",start:800408,end:802645,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Isle_of_Man",start:802645,end:806332,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Helsinki",start:806332,end:808241,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Copenhagen",start:808241,end:810401,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Dublin",start:810401,end:813944,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Moscow",start:813944,end:815488,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Oslo",start:815488,end:817739,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Nicosia",start:817739,end:819755,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Prague",start:819755,end:822027,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Vatican",start:822027,end:824719,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Paris",start:824719,end:827690,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Mariehamn",start:827690,end:829599,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Gibraltar",start:829599,end:832660,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Budapest",start:832660,end:835065,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Lisbon",start:835065,end:838534,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Saratov",start:838534,end:839731,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Kiev",start:839731,end:841828,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Berlin",start:841828,end:844163,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Bratislava",start:844163,end:846435,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Astrakhan",start:846435,end:847632,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Madrid",start:847632,end:850269,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Riga",start:850269,end:852504,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Minsk",start:852504,end:853874,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Monaco",start:853874,end:856827,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Tirane",start:856827,end:858925,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Tiraspol",start:858925,end:861370,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Ljubljana",start:861370,end:863327,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Podgorica",start:863327,end:865284,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Ulyanovsk",start:865284,end:866565,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Luxembourg",start:866565,end:869539,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Samara",start:869539,end:870792,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Bucharest",start:870792,end:873013,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Tallinn",start:873013,end:875200,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Europe/Guernsey",start:875200,end:878887,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Brazil/DeNoronha",start:878887,end:879629,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Brazil/East",start:879629,end:881645,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Brazil/West",start:881645,end:882275,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Brazil/Acre",start:882275,end:882937,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Aleutian",start:882937,end:885302,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Hawaii",start:885302,end:885578,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Mountain",start:885578,end:888031,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Central",start:888031,end:891616,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Pacific",start:891616,end:894461,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Samoa",start:894461,end:894657,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Arizona",start:894657,end:895010,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/East-Indiana",start:895010,end:896685,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Eastern",start:896685,end:900230,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Indiana-Starke",start:900230,end:902667,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Michigan",start:902667,end:904855,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/US/Alaska",start:904855,end:907235,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-4",start:907235,end:907384,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+11",start:907384,end:907533,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+12",start:907533,end:907682,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+9",start:907682,end:907830,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/Zulu",start:907830,end:907957,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-1",start:907957,end:908106,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+10",start:908106,end:908255,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/UTC",start:908255,end:908382,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-11",start:908382,end:908532,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-7",start:908532,end:908681,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-8",start:908681,end:908830,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-6",start:908830,end:908979,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+5",start:908979,end:909127,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-5",start:909127,end:909276,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-0",start:909276,end:909403,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-3",start:909403,end:909552,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+4",start:909552,end:909700,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/UCT",start:909700,end:909827,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-13",start:909827,end:909977,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT",start:909977,end:910104,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-2",start:910104,end:910253,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-14",start:910253,end:910403,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/Universal",start:910403,end:910530,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+3",start:910530,end:910678,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+6",start:910678,end:910826,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+1",start:910826,end:910974,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-10",start:910974,end:911124,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT0",start:911124,end:911251,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+2",start:911251,end:911399,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/Greenwich",start:911399,end:911526,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-9",start:911526,end:911675,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT-12",start:911675,end:911825,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+0",start:911825,end:911952,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+8",start:911952,end:912100,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Etc/GMT+7",start:912100,end:912248,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/North",start:912248,end:912571,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Queensland",start:912571,end:913023,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Darwin",start:913023,end:913346,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Currie",start:913346,end:915569,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Yancowinna",start:915569,end:917843,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Perth",start:917843,end:918322,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/ACT",start:918322,end:920545,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Tasmania",start:920545,end:922880,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Hobart",start:922880,end:925215,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Adelaide",start:925215,end:927453,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Brisbane",start:927453,end:927905,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Canberra",start:927905,end:930128,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Eucla",start:930128,end:930631,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/LHI",start:930631,end:932520,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/South",start:932520,end:934758,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/West",start:934758,end:935237,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Victoria",start:935237,end:937460,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Lindeman",start:937460,end:937982,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/NSW",start:937982,end:940205,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Sydney",start:940205,end:942428,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Lord_Howe",start:942428,end:944317,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Broken_Hill",start:944317,end:946591,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Australia/Melbourne",start:946591,end:948814,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/South_Georgia",start:948814,end:948995,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/St_Helena",start:948995,end:949165,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Reykjavik",start:949165,end:950353,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Faeroe",start:950353,end:952182,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Bermuda",start:952182,end:954186,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Madeira",start:954186,end:957670,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Faroe",start:957670,end:959499,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Canary",start:959499,end:961410,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Stanley",start:961410,end:962661,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Azores",start:962661,end:966154,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Cape_Verde",start:966154,end:966438,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Atlantic/Jan_Mayen",start:966438,end:968689,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Mexico/BajaNorte",start:968689,end:971045,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Mexico/General",start:971045,end:972663,audio:0},{filename:"/lib/python3.6/site-packages/pytz/zoneinfo/Mexico/BajaSur",start:972663,end:974227,audio:0},{filename:"/lib/python3.6/site-packages/pytz-2018.4-py3.6.egg-info/top_level.txt",start:974227,end:974232,audio:0},{filename:"/lib/python3.6/site-packages/pytz-2018.4-py3.6.egg-info/dependency_links.txt",start:974232,end:974233,audio:0},{filename:"/lib/python3.6/site-packages/pytz-2018.4-py3.6.egg-info/zip-safe",start:974233,end:974234,audio:0},{filename:"/lib/python3.6/site-packages/pytz-2018.4-py3.6.egg-info/PKG-INFO",start:974234,end:999676,audio:0},{filename:"/lib/python3.6/site-packages/pytz-2018.4-py3.6.egg-info/SOURCES.txt",start:999676,end:1017482,audio:0}],remote_package_size:1017482,package_uuid:"81d70154-9885-4352-aacd-116da699f5c2"})})();
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pytz.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>xlrd.data</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
var Module = typeof pyodide !== 'undefined' ? pyodide : {};
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
var loadPackage = function(metadata) {
var PACKAGE_PATH;
if (typeof window === 'object') {
PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
} else if (typeof location !== 'undefined') {
// worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
} else {
throw 'using preloaded data can only be done on a web page or in a web worker';
}
var PACKAGE_NAME = '/home/nexedir/pyodide/packages/xlrd/build/xlrd.data';
var REMOTE_PACKAGE_BASE = 'xlrd.data';
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
Module['locateFile'] = Module['locateFilePackage'];
err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
}
var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
var PACKAGE_UUID = metadata.package_uuid;
function fetchRemotePackage(packageName, packageSize, callback, errback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', packageName, true);
xhr.responseType = 'arraybuffer';
xhr.onprogress = function(event) {
var url = packageName;
var size = packageSize;
if (event.total) size = event.total;
if (event.loaded) {
if (!xhr.addedTotal) {
xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
}
};
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
}
xhr.onload = function(event) {
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
var packageData = xhr.response;
callback(packageData);
} else {
throw new Error(xhr.statusText + " : " + xhr.responseURL);
}
};
xhr.send(null);
};
function handleError(error) {
console.error('package error:', error);
};
var fetchedCallback = null;
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() {
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
Module['FS_createPath']('/', 'lib', true, true);
Module['FS_createPath']('/lib', 'python3.6', true, true);
Module['FS_createPath']('/lib/python3.6', 'site-packages', true, true);
Module['FS_createPath']('/lib/python3.6/site-packages', 'xlrd', true, true);
Module['FS_createPath']('/lib/python3.6/site-packages/xlrd', 'examples', true, true);
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createPreloadedFile'](this.name, null, byteArray, true, true, function() {
Module['removeRunDependency']('fp ' + that.name);
}, function() {
if (that.audio) {
Module['removeRunDependency']('fp ' + that.name); // workaround for chromium bug 124926 (still no audio with this, but at least we don't hang)
} else {
err('Preloading file ' + that.name + ' failed');
}
}, false, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
this.requests[this.name] = null;
}
};
var files = metadata.files;
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i].start, files[i].end, files[i].audio).open('GET', files[i].filename);
}
function processPackageData(arrayBuffer) {
Module.finishedDataFileDownloads++;
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
// (we may be allocating before malloc is ready, during startup).
if (Module['SPLIT_MEMORY']) err('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting');
var ptr = Module['getMemory'](byteArray.length);
Module['HEAPU8'].set(byteArray, ptr);
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length);
var files = metadata.files;
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_/home/nexedir/pyodide/packages/xlrd/build/xlrd.data');
};
Module['addRunDependency']('datafile_/home/nexedir/pyodide/packages/xlrd/build/xlrd.data');
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
}
if (Module['calledRun']) {
runWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
}
}
loadPackage({"files": [{"start": 0, "audio": 0, "end": 1756, "filename": "/lib/python3.6/site-packages/xlrd/timemachine.py"}, {"start": 1756, "audio": 0, "end": 9698, "filename": "/lib/python3.6/site-packages/xlrd/xldate.py"}, {"start": 9698, "audio": 0, "end": 30673, "filename": "/lib/python3.6/site-packages/xlrd/compdoc.py"}, {"start": 30673, "audio": 0, "end": 87640, "filename": "/lib/python3.6/site-packages/xlrd/book.py"}, {"start": 87640, "audio": 0, "end": 93987, "filename": "/lib/python3.6/site-packages/xlrd/__init__.py"}, {"start": 93987, "audio": 0, "end": 188670, "filename": "/lib/python3.6/site-packages/xlrd/formula.py"}, {"start": 188670, "audio": 0, "end": 205350, "filename": "/lib/python3.6/site-packages/xlrd/biffh.py"}, {"start": 205350, "audio": 0, "end": 239529, "filename": "/lib/python3.6/site-packages/xlrd/xlsx.py"}, {"start": 239529, "audio": 0, "end": 239551, "filename": "/lib/python3.6/site-packages/xlrd/info.py"}, {"start": 239551, "audio": 0, "end": 345729, "filename": "/lib/python3.6/site-packages/xlrd/sheet.py"}, {"start": 345729, "audio": 0, "end": 390814, "filename": "/lib/python3.6/site-packages/xlrd/formatting.py"}, {"start": 390814, "audio": 0, "end": 397946, "filename": "/lib/python3.6/site-packages/xlrd/examples/xlrdnameAPIdemo.py"}, {"start": 397946, "audio": 0, "end": 420474, "filename": "/lib/python3.6/site-packages/xlrd/examples/namesdemo.xls"}], "remote_package_size": 420474, "package_uuid": "fee1cb8e-27fc-40c5-b7ba-c0fde67e1aad"});
})();
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>xlrd.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -129,8 +129,29 @@ pyodide.asm.data.js\n
pyodide.asm.js\n
pyodide.asm.wasm\n
pyodide.asm.data\n
cycler.data\n
cycler.js\n
kiwisolver.data\n
kiwisolver.js\n
matplotlib.data\n
matplotlib.js\n
numpy.data\n
numpy.js\n
packages.json\n
pandas.data\n
pandas.js\n
pyodide.asm.html\n
pyodide.py\n
pyparsing.data\n
pyparsing.js\n
python-dateutil.data\n
python-dateutil.js\n
python.html\n
pytz.data\n
pytz.js\n
renderedhtml.css\n
xlrd.data\n
xlrd.js\n
\n
font-awesome/font-awesome.css\n
font-awesome/font-awesome-webfont.eot\n
......@@ -373,7 +394,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>969.50674.1572.7867</string> </value>
<value> <string>969.57706.26709.14899</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -391,7 +412,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1535021998.08</float>
<float>1533713860.15</float>
<string>UTC</string>
</tuple>
</state>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment