Skip to content

Instantly share code, notes, and snippets.

@wush978
Last active July 25, 2018 09:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wush978/fa21d3769ff719f163a3f4fa703f0897 to your computer and use it in GitHub Desktop.
Save wush978/fa21d3769ff719f163a3f4fa703f0897 to your computer and use it in GitHub Desktop.
jenkins ALL=(ALL) NOPASSWD:ALL
FROM ubuntu:16.04
COPY import.sh /tmp/import.sh
COPY packages.list /tmp/packages.list
COPY repo.keys /tmp/repo.keys
COPY sources.list.tar /tmp/sources.list.tar
RUN cd /tmp && bash -x import.sh
RUN useradd jenkins && \
adduser jenkins sudo && \
mkdir -p /home/jenkins && \
chown jenkins:jenkins /home/jenkins
RUN cd /tmp && \
wget https://bootstrap.pypa.io/get-pip.py && \
python3.6 get-pip.py && \
pip install virtualenv && \
apt-get install -y python3.6-dev
RUN locale-gen zh_TW.UTF-8 && update-locale zh_TW.UTF-8
COPY 00-jenkins /etc/sudoers.d/00-jenkins
USER jenkins
WORKDIR /home/jenkins
COPY requirements.txt /home/jenkins/requirements.txt
RUN python3.6 -m virtualenv ~/env && \
bash -c "source ~/env/bin/activate && pip install -r requirements.txt"
USER jenkins
WORKDIR /home/jenkins
#! /bin/bash
# RUN this script under project root
docker run --name ap -d -p 9453:9453 -v `pwd`:/var/src/AP dsp/ap:latest /bin/bash -c "cp -r /var/src/AP . && cd AP && (PYTHON_BIN=python3.6 LANG=zh_TW.UTF-8 bash -x tests/jenkins-slave.sh > /tmp/slave.log 2>&1 || echo \"\") && tail -f /tmp/test-server.log" && \
sleep 10 && \
docker exec ap tail -f /tmp/slave.log
#! /bin/bash
apt-key add repo.keys && \
tar -xf sources.list.tar -C /etc/apt && \
apt-get update && \
(awk -F" " '{print $1}' packages.list | xargs apt-get install -y)
adduser install
apt install
apt-utils install
base-files install
base-passwd install
bash install
binutils install
bsdutils install
build-essential install
bzip2 install
ca-certificates install
coreutils install
cpp install
cpp-5 install
cron install
dash install
dbus install
debconf install
debianutils install
dh-python install
diffutils install
distro-info-data install
dpkg install
dpkg-dev install
e2fslibs:amd64 install
e2fsprogs install
fakeroot install
file install
findutils install
fontconfig install
fontconfig-config install
fonts-dejavu-core install
g++ install
g++-5 install
gcc install
gcc-5 install
gcc-5-base:amd64 install
gcc-6-base:amd64 install
gdal-bin install
ghostscript install
gir1.2-glib-2.0:amd64 install
gnupg install
gpgv install
grep install
gsfonts install
gzip install
hostname install
i965-va-driver:amd64 install
ifupdown install
init install
init-system-helpers install
initscripts install
insserv install
iproute2 install
isc-dhcp-client install
isc-dhcp-common install
iso-codes install
krb5-locales install
libaacs0:amd64 install
libacl1:amd64 install
libaec0:amd64 install
libalgorithm-diff-perl install
libalgorithm-diff-xs-perl install
libalgorithm-merge-perl install
libapparmor1:amd64 install
libapt-inst2.0:amd64 install
libapt-pkg5.0:amd64 install
libarmadillo6 install
libarpack2 install
libasan2:amd64 install
libasn1-8-heimdal:amd64 install
libasound2:amd64 install
libasound2-data install
libass5:amd64 install
libasyncns0:amd64 install
libatm1:amd64 install
libatomic1:amd64 install
libattr1:amd64 install
libaudio2:amd64 install
libaudit-common install
libaudit1:amd64 install
libavahi-client3:amd64 install
libavahi-common-data:amd64 install
libavahi-common3:amd64 install
libavc1394-0:amd64 install
libavcodec-ffmpeg56:amd64 install
libavdevice-ffmpeg56:amd64 install
libavfilter-ffmpeg5:amd64 install
libavformat-ffmpeg56:amd64 install
libavresample-ffmpeg2:amd64 install
libavutil-ffmpeg54:amd64 install
libbdplus0:amd64 install
libblas-common install
libblas3 install
libblkid1:amd64 install
libbluray1:amd64 install
libboost-serialization1.58.0:amd64 install
libboost-system1.58.0:amd64 install
libboost-thread1.58.0:amd64 install
libbs2b0:amd64 install
libbsd0:amd64 install
libbz2-1.0:amd64 install
libc-bin install
libc-dev-bin install
libc6:amd64 install
libc6-dev:amd64 install
libcaca0:amd64 install
libcairo2:amd64 install
libcap-ng0:amd64 install
libcap2:amd64 install
libcap2-bin install
libcc1-0:amd64 install
libcdio-cdda1:amd64 install
libcdio-paranoia1:amd64 install
libcdio13:amd64 install
libcgal11v5:amd64 install
libcilkrts5:amd64 install
libcoin80v5 install
libcomerr2:amd64 install
libcroco3:amd64 install
libcryptsetup4:amd64 install
libcrystalhd3:amd64 install
libcups2:amd64 install
libcupsfilters1:amd64 install
libcupsimage2:amd64 install
libcurl3-gnutls:amd64 install
libdap17v5:amd64 install
libdapclient6v5:amd64 install
libdatrie1:amd64 install
libdb5.3:amd64 install
libdbus-1-3:amd64 install
libdbus-glib-1-2:amd64 install
libdc1394-22:amd64 install
libdebconfclient0:amd64 install
libdevmapper1.02.1:amd64 install
libdns-export162 install
libdpkg-perl install
libdrm-amdgpu1:amd64 install
libdrm-common install
libdrm-intel1:amd64 install
libdrm-nouveau2:amd64 install
libdrm-radeon1:amd64 install
libdrm2:amd64 install
libedit2:amd64 install
libelf1:amd64 install
libepsilon1:amd64 install
libexpat1:amd64 install
libexpat1-dev:amd64 install
libfaad2:amd64 install
libfakeroot:amd64 install
libfdisk1:amd64 install
libffi6:amd64 install
libfile-fcntllock-perl install
libflac8:amd64 install
libflite1:amd64 install
libfontconfig1:amd64 install
libfreetype6:amd64 install
libfreexl1:amd64 install
libfribidi0:amd64 install
libgcc-5-dev:amd64 install
libgcc1:amd64 install
libgcrypt20:amd64 install
libgdal1i install
libgdbm3:amd64 install
libgdk-pixbuf2.0-0:amd64 install
libgdk-pixbuf2.0-common install
libgeos-3.5.0 install
libgeos-c1v5 install
libgfortran3:amd64 install
libgif7:amd64 install
libgirepository-1.0-1:amd64 install
libgl1-mesa-dri:amd64 install
libgl1-mesa-glx:amd64 install
libglapi-mesa:amd64 install
libglib2.0-0:amd64 install
libglib2.0-data install
libgme0:amd64 install
libgmp10:amd64 install
libgnutls30:amd64 install
libgomp1:amd64 install
libgpg-error0:amd64 install
libgpm2:amd64 install
libgraphicsmagick-q16-3 install
libgraphite2-3:amd64 install
libgs9:amd64 install
libgs9-common install
libgsm1:amd64 install
libgssapi-krb5-2:amd64 install
libgssapi3-heimdal:amd64 install
libharfbuzz0b:amd64 install
libhcrypto4-heimdal:amd64 install
libhdf4-0-alt install
libhdf5-10:amd64 install
libheimbase1-heimdal:amd64 install
libheimntlm0-heimdal:amd64 install
libhogweed4:amd64 install
libhx509-5-heimdal:amd64 install
libice6:amd64 install
libicu55:amd64 install
libidn11:amd64 install
libiec61883-0:amd64 install
libijs-0.35:amd64 install
libisc-export160 install
libisl15:amd64 install
libiso9660-8:amd64 install
libitm1:amd64 install
libjack-jackd2-0:amd64 install
libjasper1:amd64 install
libjbig0:amd64 install
libjbig2dec0 install
libjpeg-turbo8:amd64 install
libjpeg8:amd64 install
libjson-c2:amd64 install
libk5crypto3:amd64 install
libkeyutils1:amd64 install
libkmlbase1:amd64 install
libkmldom1:amd64 install
libkmlengine1:amd64 install
libkmod2:amd64 install
libkrb5-26-heimdal:amd64 install
libkrb5-3:amd64 install
libkrb5support0:amd64 install
liblapack3 install
liblcms2-2:amd64 install
libldap-2.4-2:amd64 install
libldb1:amd64 install
libllvm6.0:amd64 install
liblsan0:amd64 install
libltdl7:amd64 install
liblwgeom-2.3-0 install
liblz4-1:amd64 install
liblzma5:amd64 install
libmad0:amd64 install
libmagic1:amd64 install
libminizip1:amd64 install
libmng2:amd64 install
libmnl0:amd64 install
libmodplug1:amd64 install
libmount1:amd64 install
libmp3lame0:amd64 install
libmpc3:amd64 install
libmpcdec6:amd64 install
libmpdec2:amd64 install
libmpfr4:amd64 install
libmpx0:amd64 install
libmysqlclient20:amd64 install
libncurses5:amd64 install
libncursesw5:amd64 install
libnetcdf11 install
libnettle6:amd64 install
libnuma1:amd64 install
libodbc1:amd64 install
libogdi3.2 install
libogg0:amd64 install
libopenal-data install
libopenal1:amd64 install
libopencv-core2.4v5:amd64 install
libopencv-imgproc2.4v5:amd64 install
libopenjp2-7:amd64 install
libopenjpeg5:amd64 install
libopenscenegraph100v5:amd64 install
libopenthreads20:amd64 install
libopus0:amd64 install
liborc-0.4-0:amd64 install
libp11-kit0:amd64 install
libpam-modules:amd64 install
libpam-modules-bin install
libpam-runtime install
libpam0g:amd64 install
libpango-1.0-0:amd64 install
libpangocairo-1.0-0:amd64 install
libpangoft2-1.0-0:amd64 install
libpaper-utils install
libpaper1:amd64 install
libpciaccess0:amd64 install
libpcre3:amd64 install
libperl5.22:amd64 install
libpixman-1-0:amd64 install
libpng12-0:amd64 install
libpoppler-glib8:amd64 install
libpoppler58:amd64 install
libpopt0:amd64 install
libpostproc-ffmpeg53:amd64 install
libpq5:amd64 install
libprocps4:amd64 install
libproj9 install
libpulse0:amd64 install
libpython-stdlib:amd64 install
libpython2.7:amd64 install
libpython2.7-minimal:amd64 install
libpython2.7-stdlib:amd64 install
libpython3-dev:amd64 install
libpython3-stdlib:amd64 install
libpython3.5:amd64 install
libpython3.5-dev:amd64 install
libpython3.5-minimal:amd64 install
libpython3.5-stdlib:amd64 install
libpython3.6:amd64 install
libpython3.6-dev:amd64 install
libpython3.6-minimal:amd64 install
libpython3.6-stdlib:amd64 install
libqt4-dbus:amd64 install
libqt4-declarative:amd64 install
libqt4-network:amd64 install
libqt4-opengl:amd64 install
libqt4-script:amd64 install
libqt4-sql:amd64 install
libqt4-sql-mysql:amd64 install
libqt4-xml:amd64 install
libqt4-xmlpatterns:amd64 install
libqtcore4:amd64 install
libqtdbus4:amd64 install
libqtgui4:amd64 install
libquadmath0:amd64 install
libraw1394-11:amd64 install
libreadline6:amd64 install
libroken18-heimdal:amd64 install
librsvg2-2:amd64 install
librsvg2-common:amd64 install
librtmp1:amd64 install
libsamplerate0:amd64 install
libsasl2-2:amd64 install
libsasl2-modules:amd64 install
libsasl2-modules-db:amd64 install
libschroedinger-1.0-0:amd64 install
libsdl1.2debian:amd64 install
libseccomp2:amd64 install
libselinux1:amd64 install
libsemanage-common install
libsemanage1:amd64 install
libsensors4:amd64 install
libsepol1:amd64 install
libsfcgal1 install
libshine3:amd64 install
libslang2:amd64 install
libsm6:amd64 install
libsmartcols1:amd64 install
libsmbclient:amd64 install
libsnappy1v5:amd64 install
libsndfile1:amd64 install
libsodium18:amd64 install
libsoxr0:amd64 install
libspatialite7:amd64 install
libspeex1:amd64 install
libsqlite3-0:amd64 install
libss2:amd64 install
libssh-gcrypt-4:amd64 install
libssl1.0.0:amd64 install
libstdc++-5-dev:amd64 install
libstdc++6:amd64 install
libsuperlu4:amd64 install
libswresample-ffmpeg1:amd64 install
libswscale-ffmpeg3:amd64 install
libsystemd0:amd64 install
libsz2:amd64 install
libtalloc2:amd64 install
libtasn1-6:amd64 install
libtbb2:amd64 install
libtdb1:amd64 install
libtevent0:amd64 install
libthai-data install
libthai0:amd64 install
libtheora0:amd64 install
libtiff5:amd64 install
libtinfo5:amd64 install
libtsan0:amd64 install
libtwolame0:amd64 install
libtxc-dxtn-s2tc0:amd64 install
libubsan0:amd64 install
libudev1:amd64 install
liburiparser1:amd64 install
libusb-0.1-4:amd64 install
libusb-1.0-0:amd64 install
libustr-1.0-1:amd64 install
libuuid1:amd64 install
libv4l-0:amd64 install
libv4lconvert0:amd64 install
libva1:amd64 install
libvcdinfo0 install
libvorbis0a:amd64 install
libvorbisenc2:amd64 install
libvpx3:amd64 install
libwavpack1:amd64 install
libwbclient0:amd64 install
libwebp5:amd64 install
libwind0-heimdal:amd64 install
libwmf0.2-7:amd64 install
libwrap0:amd64 install
libx11-6:amd64 install
libx11-data install
libx11-xcb1:amd64 install
libx264-148:amd64 install
libx265-79:amd64 install
libxau6:amd64 install
libxcb-dri2-0:amd64 install
libxcb-dri3-0:amd64 install
libxcb-glx0:amd64 install
libxcb-present0:amd64 install
libxcb-render0:amd64 install
libxcb-shape0:amd64 install
libxcb-shm0:amd64 install
libxcb-sync1:amd64 install
libxcb-xfixes0:amd64 install
libxcb1:amd64 install
libxdamage1:amd64 install
libxdmcp6:amd64 install
libxerces-c3.1:amd64 install
libxext6:amd64 install
libxfixes3:amd64 install
libxi6:amd64 install
libxine2 install
libxine2-bin install
libxine2-doc install
libxine2-ffmpeg install
libxine2-misc-plugins install
libxine2-plugins install
libxml2:amd64 install
libxrender1:amd64 install
libxshmfence1:amd64 install
libxslt1.1:amd64 install
libxt6:amd64 install
libxtables11:amd64 install
libxv1:amd64 install
libxvidcore4:amd64 install
libxxf86vm1:amd64 install
libzmq5:amd64 install
libzvbi-common install
libzvbi0:amd64 install
linux-libc-dev:amd64 install
locales install
login install
logrotate install
lsb-base install
lsb-release install
make install
makedev install
manpages install
manpages-dev install
mawk install
mesa-va-drivers:amd64 install
mime-support install
mount install
multiarch-support install
mysql-common install
ncurses-base install
ncurses-bin install
netbase install
odbcinst install
odbcinst1debian2:amd64 install
openssl install
passwd install
patch install
perl install
perl-base install
perl-modules-5.22 install
pgdg-keyring install
poppler-data install
postgresql-9.6 install
postgresql-9.6-postgis-2.3 install
postgresql-9.6-postgis-2.3-scripts install
postgresql-client-9.6 install
postgresql-client-common install
postgresql-common install
postgresql-contrib-9.6 install
procps install
proj-bin install
proj-data install
python install
python-apt-common install
python-minimal install
python-pip-whl install
python-talloc install
python2.7 install
python2.7-minimal install
python3 install
python3-apt install
python3-dbus install
python3-dev install
python3-gi install
python3-minimal install
python3-pip install
python3-pkg-resources install
python3-pycurl install
python3-setuptools install
python3-software-properties install
python3-wheel install
python3.5 install
python3.5-dev install
python3.5-minimal install
python3.6 install
python3.6-dev install
python3.6-minimal install
qdbus install
qt-at-spi:amd64 install
qtchooser install
qtcore4-l10n install
readline-common install
rename install
samba-libs:amd64 install
sed install
sensible-utils install
sgml-base install
shared-mime-info install
software-properties-common install
ssl-cert install
sudo install
sysstat install
systemd install
systemd-sysv install
sysv-rc install
sysvinit-utils install
tar install
tcpd install
tzdata install
ubuntu-keyring install
ucf install
unattended-upgrades install
util-linux install
va-driver-all:amd64 install
vim install
vim-common install
vim-runtime install
wget install
x11-common install
xdg-user-dirs install
xml-core install
xz-utils install
zlib1g:amd64 install
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
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
B5z2LhAhfGSpfUdjuvLEZV2OP2UCk6ehTkRxJivTxybvFASCt0MsBkVDENgEsO5X
oTqMoR8B/Bkg1IR7g5ybza+0IXkrQeLCEVTT2TLbKiBsy5NOLZ/yJs3xJtuFkMmU
M93ZmSSmwo18gAuY6I+Eca9caa2DoV3NFQ5IaKtKby1xqSlL53T8gSVsPjneySzG
DqzdxOztD4+51pxzJDQGpq0yfOZ/EJU6i1PrmRWebPY/7hDSBFJD9mL0ifP46vNb
G2fr9N3D4UxTC8FxzFbWvzyTq5UvPbeNb/yM67CdSngkqZm1r9TZRkpPI/Ku9NiG
n/MrffYESfGJFjhl9CMDgjCXDTSXilgEMstzpMUm0tsO/zn1QKKxdrwy1ZhauUzd
h8YWz2TVZ6Ywvy7v2DYMryDdU+QP3hDlqeq58Qabvgr+R46ayzxxCgFf1U8UylLW
YUJP7ZR0Y/RS8yUANy3RoWcDC1v1ABEBAAG0QVVidW50dSBDRCBJbWFnZSBBdXRv
bWF0aWMgU2lnbmluZyBLZXkgKDIwMTIpIDxjZGltYWdlQHVidW50dS5jb20+iQI3
BBMBCgAhBQJPrY5oAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJENlKo/Dv
4hCSSEAQAImNlle4BpsysLj1nnYfLBVmKkmChXm58yLYtBgyTIYpVBD8TviVSNxw
yZtDiPTSKFNgH4X+Lb0DF9q8meVKlaCbCM87hhjmO+ihSJdCZUdfXSgzXDf5j3BJ
yZ5RjciFO3CIVoEmvpNntG85OD+ltDQa/PE2WRKhu6oUJnTbeZyXZjs6RjU9mDGI
tp8PpHHY7+ByVA+zhh8ejxspEDijXTvTacTxgT52LEiABDDrtPGGrmJ03Gxam50q
r0nV8uCcTPuL0AlQ5/XayD1ftm+ldndC8xXmI68sDgNEu/0cjHLPvRep5qRL67N8
pe4IzOF1RMhv+00AI0Hfv6t4ip0+zJQXe3FXJZovWMyRGy/rXvIoCJi883AwNG+t
sqInghyd3i0/OarPkcEVTJQuezcnMk2OmAoK8saFWr6VWx2kyWlDEQbn9uHMmAHW
OshuRw5J+dDXLQa/0Ii16X7WrQEcyfR09VZo18pgUazPiKBb66P/8LT3+C0Yybvw
9B+OoShHaP9Nqb+2a5zFIrffXJ+blqDYJBgYLduzB8gj7gRqdf1039Ebf/Z2xLJi
u5alMhAbpdrv4Bm1gEMRc1ii+B0m1dbJS1bRftHq8iOHUdh6vd1HqK8n6r9tYZjj
nMd40E1TfeGWeXEQQ2J/dFn+P/DdKMau1JArr2Zo1Hqierj3Z77riQIcBBABAgAG
BQJPrZIZAAoJEAv7hH8/Jy9brPYQAIjfp78AfEylAgrTWgC4LOOwHMu8Km02Nnv/
bB/aNaEK+lYUUmzVMlx8HjzwYThbuRpRLjEMBJ/k7rIUNKP+UknvBY+0E1GILB0r
PW1VCQZaLFMNXXce0EBsP7x6R2KRzI5HbYEujHU7v1aGBH4XmVfJIWtF0Jg9OU0B
8UzWoIfBpfQ7bZRRJRzbb7tuOgDdxhqMMHiBADl9jaGO4mSV0TB+uJVd9KRA3Fim
Vlq6qA/MzcM2tx1sZbkRx6N3Z/qg8SgGR64gmpSw9YEtAtKpaDqdjbHciBRiEmre
NQ+bQN0Lqv25gGcv2q66nBVAk708s7LXv9uIowCmBIsB04MwxOoH+zqJ6vJNcL5y
LOnrA4tR3wq2gdU/9dt6dAfFbsMI4/TqsSM9+ucokbAjcNmwKyodmeF87UxKc/YJ
flG9beo088WsLxYsDjYhOhqZ8hs7PsC0ZbGtGnpdBcCkZ8E3jOoibGHmyjpqU12D
CNOFz1kec/tWhjBh+Rn5p1JEPU0zAHXFaQxplg0Ur/kz3YuRYW9tei/BMTZiZc7F
Kk12zeRTjg7sfAXEEn3K5Vjw9HgHXWdsFb8P/XhU3IXafdVTrg7OfMLbuf5IBc5J
+Jx94dQ7eNIkbh0h8Ct8rjAEoygxVbqR+MFcQfN3XyAJK/M9ROA8MxXZxkpF/Ls9
25oWjPouiQIcBBABCAAGBQJPrabzAAoJEDk1h9l9hlALJx0P/0ZuOca5YyJGI+/w
L6U4rx3pf+VOXKbY0N6nB/FW7gelGuww8u2rPpGea4qmWtBQznyjvywq7AsbFk9w
v3QoBKrzFsT3xsPKEgxmA6DoOZwunI7jbRr2mtGW/rMVv+oXZ0L9AQ24rTXR1MIk
Dmplt5jHImaX6x/+3soewoOCmYC3sq3u5PAMQ6Am+fG4CHrnZAubU2zmwz7+PMwj
C940TSVkNJblcVkDuwTsS+wuv4SBtutsszD1iqXpUE3wVv5DywiaVR6LFJnv7Oqf
5j/MqzavwVkR0VhdQcMAxWfxqd8PVDVOCxQWcZc1uwWAoBQnQxYQVPov7GvMh1j0
mDCGTqQL0jQfZCerTT9M4tqwQONTaW6pO7Kvg5nLo0QUtbjittsoDvYgLvfl8fT3
6sF8Ui6ySsXCI7Y28l2QYcZutNgfH8yk508h1deePwcPTSW14k4xZqrfssFrhQ+z
QaFxhAq/V7gJ2jGtzEd0Zphu62r1J21KkHmwwkqAk00T6SgxDa5WtOVS5HGW6mcs
w6mHbv2jwEqw5bxscgGd4pKJsHltQz4GpqpTsgvWqFhCb5F/oDJR5qNWLNKj9qLW
D+acNxR/yTewdm6o2ThMw6lWP2kvwMh4gu2Koyf5J8tLQqmAyDGqClGhUzLe0j6S
T0b/liWNulFbWjFeA7UPEqEDj30JiQIcBBABCgAGBQJPrho5AAoJEFdZ81ABqkpk
8ocP/3tZp7OSYC0TF+VU1wBFvpSad9IPz59bDEVxHnKMj0H0RiKsVuHiXeGeCeBU
7OeawYt2oaPiKwNwLpWmj6rjqcedtvU9Yz5nsDLsW3Bf2Vy3RJCLCILk/UJdFUzl
nwTuHdrovjYefpZisUwsPlEHtNMAs2reWcFBLDJK0UrvgSAEcEPvs+CwAGYZXdF1
7krMNaev8Y5xNZjOduWIO2HXwdymRtlyZk6WXTPAg10Qm7FIvQxnJl8VHRSYSOaW
fXEeSkZ7ZibVnMTuwMF3flQLmG93jwDrTOZAfDexrJbh/nZXHmh28UcoJkDbQhKA
Lf2VLuhfcUrCGaYGbo1mabr8WpXUckfy1ggCHqsO/K1XcsSkfNLkchgNOMRKkc1u
O1ZwSwGt7mI4rIq3ulcaPCrWzV2Pa6P1NfK0CvcH/eZR7/NHdDCWOhKn1EF/nnxj
NxdggeP3luBK0szLt62SLhRjTx5oBPMSaJwB8wj47iSEDUbtgA9utVALTjF912KU
sgZynceroXj0mgup46wP+sZboFUOJFlufplPlIlBfXp9vAnn+SwqG3YyCOZUioyL
k8Pp0EO1RRtq9hqgL5DpmHfGNO5IY7YMF+h0hr/EMv1I3P4upJs3RRHlDgj/soe2
DWKvT0dhQ8SPL5mWgEFrtnJr6WAGiBBLn31wCGzdETtgEHxHmQGiBEHUUngRBACh
nb3mDLFxN/2A/2m2VdF4VduvwWqdzD2AXanEBud8G5HiPYxry+nqu5xaiTpcwKxt
jgCENd8dhmNA/uDmuoMBlZa7xLTdeGixdmj+VOce7fa6Guq1UOhDe/UtjDbRp9bL
BhW5qDewL0RLJ1VElnl7rx1Acty9KUz3qQWtIzc4NwCgn/5beM2PUbQMHv8CTWf3
nYWEFf8EAJSnXbfe1k8R6B+iSqralm7JJPpFRuCsI5Katcw1lrZW1Nm1KGTMy2yz
i25DRQgQmxbhDgrjAwc+WzVLipXnNfUY1/E7XskwZeIw+TZ+jBRJYBRSW0u4vz4b
qe/8IoRd9pVHO5By1o5wAi+WnS/2h//QYEmWlULbo6TBentTmS7GA/9iwKv8F/nF
rodffBgw4LSZnNV3dbZGIr5h/ncPMS1g+2QVchsrJyzVjOoKfO4Gx5/h3Q8keCPa
Vs/7Dmq8LOIGUfZjG5MCn5rCHHMSOy3x4cU3xd0j/VipJl/boF+E8Hll+s87W2Rx
yfmuSb+BKMCbobac+x664t2R3iUqHQsZQbQ6VWJ1bnR1IENEIEltYWdlIEF1dG9t
YXRpYyBTaWduaW5nIEtleSA8Y2RpbWFnZUB1YnVudHUuY29tPoheBBMRAgAeBQJB
1FJ4AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEEYYFDP7t1RRrtQAn3lQd/AW
EQgasJhvSuaEKE3dX3WjAJwIQPr+zjqUg0b2jRvvHqSviXXU74hGBBMRAgAGBQJB
1KChAAoJEPbdMwIQ+kzR784AoIZy8LRoinb6q2Wf+pD6Hqi7IMMoAJ40CFDbgnNi
ynFZ3GR2oJN9yHIf5YhGBBARAgAGBQJEktmNAAoJEILX1YqwqGAr3BQAmgMkTLx3
nl6RT2gnpivlVbTLLp5LAJ9h457Bn5ltNr1VLXGu3KZC//M9g4hGBBARAgAGBQJE
lC+xAAoJEDofCI5h4RFTt4IAoJD/UQUco5ooL80k9GouG2zqvHRRAJ40YXoS/epf
8LgVbkPb4dZjemzJL4hGBBARAgAGBQJFB8KdAAoJEFsYwIFsM98InFwAmwSyPe3r
H1NM354zmWVhOXjb1JocAKDYTgJx5GevcIrcrB3ocGZb3I12H4hGBBARAgAGBQJF
oAF5AAoJEFmBudKHS+vIpowAoIGO+EUF5Xf1hs2baKO5mZ37H0oHAJ4vpAexQJY+
YHDqGWNkHsvIOWxpZohGBBARAgAGBQJF939rAAoJEDxjyj+gs+iL5NcAni//R3GS
b/5zCcpovhc35J3IEbVnAKCOs+PR2FkkipdYVC/9oRBMcPA5aohJBBARAgAJBQJE
gFKZAgcAAAoJEFXlrhuO6QQREqUAoIqmXetBaIDlQEwllfH0s0Q+du0+AKCutoEk
UCdcTw0quWBjOCPZ6alwP4hJBBARAgAJBQJEgcJmAgcAAAoJEJnmBLRVGFggKKgA
oIYKZVWg8f2dVKm/J1NfNMa3xL7GAJ0c8M21PV5JjrN8mxqVi6cnxLEA3YhJBBAR
AgAJBQJFm3DoAgcAAAoJEAeNJY2yIK3G294AnjKonrxlKETwr/LyArS0bBNv3tmR
AJ4wrnEvpFCBgMpOsD3bQ6VEsHzraIjcBBABAgAGBQJDb2QeAAoJENHZUgQJ6aHV
1A0GALTFLl9rphqzqocobTkHOuORP8b/coYfY8H9sTZGGRV5YyWKRXVcf9dvAHxx
XFoFSmDnCJL2IQMvwXDCtRWB3DW83cHj4s066RLvdM3Bb7ozC8MlCiDqQMJ34ui7
phVLb3ewkacAwAujzmIzJ9tFijgFV9F/vd0OeYZ6Z500U9Cczz5H7/cwCGV/nTMK
1298m5t0ULkidupe6+U0zgWC52Wr7VBQODCXnuEJ4qwZngBNLd2vHL247soTtYhh
wW9v9okBHAQQAQIABgUCROOo9gAKCRBpZyJzLMORIBo2B/4/XhrNUZwzu/SsFV/E
9o31WSzOjYwpB1GsyrxGSIXCl9oGq2NRWbenl5W2J9gnYsmU5dniz94c4eQx0gc5
cVm1QbFlHTaTVxDMrcHP/348LIWxUNrvpowyO44Yc0W8UtiNdzKcszsVdK6ksKWr
YY7hE/pHhE8Lkiz26v9KRZvgtM08zlD3a6kMJRKO+7YlrQ5yHMyIl5q40AZpY/6r
2qpWwfQgOdr+5qJt8XVmngMGpaj06nsh+ZLOYGuzFYRqa8rGwa4sNMRPwZe+2p88
BKUn611DQGPi6m2Vu+UqfrsaJj7XBu398HTThOxhJnoImX2T+RSEEHiE12aH7nPd
666riQEcBBABAgAGBQJE47ItAAoJEGlnInMsw5EgnroIAIN8Q03TbUFG343G0cSs
t++9xpNWj327nFEUa/80dhnBqoJjwFKs5tyvMaX2+YvCwnBqoTp0dPe85iVeaSYD
t459A9szGuLW0CU+nXbES9jOJ0G2arl+Qd5jsNkihiQYyMjZ93675WPu2I+4KmNZ
PfWlE4B7zeMG4fUbHRjujOYrmzHujeIpSDeZCq2DuNWayXzmMsoSon0QBu2sYZrs
KO162vWF1nReiqaXtwMlsqWz0fHjKaEZT7VKeHiXIykj0+X++5WtPFouQURjN8MW
khlfstXqNxaOfOJH5k8+u1Pl40fpbwGUrKT4lbXsXnsCLyexX/tSpX8f03ojArJb
26aJARwEMAECAAYFAkTjqiEACgkQaWcicyzDkSDXDwf/a/f1T4443Hg7DFC7FnS/
OQe2X3/koIAxztEK/NFdX/fiYRPPtla3vI9OlQrUCsTLeW/qA/uM8JC/psLqzoid
9A+Qx3VNnd87nLaLQtbHxDKf6R0OwRYDOwYOfOY9/Hwnqn2Mv8DcMu+qJl8P0Vlz
Wo6KdkjoLzGaqX1dVHfh4TXoQy+BQqO/8tk/F1zd76KbIB+IK3YyaZO47B8453RD
7OVSs6/xMuxVBY3C2Xwp9LxrBw+k1B2JZ+3PWlEBSXJwKHN6DbZWfTVv0CQnj5cg
UIl77MMDFb9hPPw/2fwM6OGT8V5hP8UJQZY+6i627IWCMY+gSBpjScD+JobaCEi0
3IkBHAQwAQIABgUCROO0uwAKCRBpZyJzLMORIL07B/0cVMwFkEzQ7NPLm4415ggC
gyrc8NgMHHTzR9YmBAk0Rgn1ARZERkuZyrtgbjUY1AjZiHaAVrNvF/DtrhWcKNQ7
snBJdlU3GBVyzEuKTwtmmFsPxrFa/mWmy3S8b6SqejqzKMbhXtG+LpSXGzidPRzc
TUkWZzlIAI9OTL3Ot03z17x/hjRnvnAcOIL6gmEdPMsua4nTBQIDxnzWoqKqO4dg
W3Ooprb63UtutnioEGA4Zz5Eh9qQeRgEleoKLwpy57NZ4aaeT9gD2DX7ffYYuHx5
CaCGz73S+0CPK9HrMADS1Pr/xnTMZAmOkxTaA8TMHqlWlM/tq7kg1wm7u78NVztA
iQIcBBABAgAGBQJHNMaeAAoJEAv7hH8/Jy9b3qYP/j9s/GTSkSg92FZwp7uTxnCH
UZjxbA3dzP87zU18S8TOcP7Ce2y1TI0Xbn7lUA8MMhq1mj9/NahdHaU8gvLuLHQL
BsUU5KvCP+R7Qdns7XC27ohHfmwD1967jDSXXUDVNiyw8L0wmgtSct8rOPpvYXWP
U0gIFcJCzil8W3J7S6Xz/BmUm1gpE0ZYXBWbYot1fbAng0CJvuzi1UlwRGsCu+3e
sHI0x6URQcsibVwmsGK+Ow9u7CaRNyTxJJdnJ52JaAsqh35bSQVw2IsBztpeerLZ
q/mJPOMcDRhzbpHL8M0gocO2OrjQuJN0+GXUaQa4c1/8/h5h1AOBrQJY+YTougjR
upa+Koqdd3AljxK9jDtCsKjbbIbTb2tchP0OsShrgreocfWV7k4kHPSHMlHR3bnR
RLgF4lWtrQGYWgCF4YeNQdcsw/upCk8Xar9YhM6e3sRnQzvQ4jMoyUN2fK0TDwgj
M+lWTLfGKQBrXEtfhKBKMb+3npcMKfsCwAajBIJBZX927oHhXNBrHo+iv81KlmHQ
U3n32Rqvn5oqc+cbyQJMe9Va5YJEevPzefJVRkeNMmxRtQIfm/q30ZdEzAbx8BM0
qYPNrKeEBoWLKdZS2iZVCI4iNsogLB3EWgyajumC/bbL4p5vqnIlKN70FUMxdKab
TsePWdIAB2DVOz1Cx6bwmQINBE6XR8IBEACVdDKT2HEH1IyHzXkb4nIWAY7echjR
xo7MTcj4vbXAyBKOfjjaUrBEJWHN6fjKJXOYWXHLIYg0hOGeW9qcSiaa1/rYIbOz
jfGfhE4x0Y+NJHS1db0VG6GUj3qXaeyqIJGS2z7m0Thy4Lgr/LpZlZ78Nf1fliSz
BlMo1sV7PpP/7zUO+aA4bKa8Rio3weMXQOZgclzgeSdqtwKnyKTQdXY5MkH1QXyF
Ik1nTfWwyqpJjHlgtwMic2cxjqG5nnV9rIYlTTjYG6RBglq0SmzF/raBnF4Lwjxq
4qRqvRllBXdFu5+2pMfCIZ10HPRdqDCTN60DUix+BTzBUT30NzaLhZbOMT5RvQtv
TVgWpeIn20i2NrPWNCUhhj490dKDLpK/v+A5/i8zPvN4c6MkDHi1FZfaoz3863dy
lUBR3Ip26oM0hHXf4/2UA/oA4pCl2W0hc4aNtozjKHkVjRx5Q8/hVYu+39csFWxo
6YSB/KgIEw+0W8DiTII3RQj/OlD68ZDmGLyQPiJvaEtY9fDrcSpI0Esm0i4sjkNb
uuh0Cvwwwqo5EF1zfkVjTqz2REYQGMJGc5LUbIpk5sMHo1HWV038TWxlDRwtOdzw
08zQA6BeWe9FOokRPeR2AqhyaJJwOZJodKZ76S+LDwFkTLzEKnYPCzkoRwLrEdNt
1M7wQBThnC5z6wARAQABtBxQb3N0Z3JlU1FMIERlYmlhbiBSZXBvc2l0b3J5iQJO
BBMBCAA4AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEEuXsK/KoaR/BE8kSg
f8x9RqzMTPgFAlhtCD8ACgkQf8x9RqzMTPgECxAAk8uL+dwveTv6eH21tIHcltt8
U3Ofajdo+D/ayO53LiYOxi27kdHD0zvFMUWXLGxQtWyeqqDRvDagfWglHucIcaLx
oxNwL8+e+9hVFIEskQAYkVToBCKMXTQDLarz8/J030Pmcv3ihbwB+jhnykMuyyNm
ht4kq0CNgnlcMCdVz0d3z/09puryIHJrD+A8y3TD4RM74snQuwc9u5bsckvRtRJK
bP3GX5JaFZAqUyZNRJRJTn2OQRBhCpxhlZ2afkAPFIq2aVnEt/Ie6tmeRCzsW3lO
xEH2K7MQSfSu/kRz7ELfCz3NJHj7rMzC+76Rhsas60t9CjmvMuGONEpctijDWONL
Cuch3Pdj6XpC+MVxpgBy2VUdkunb48YhXNW0jgFGM/BFRj+dMQOUbY8PjJjsmVV0
joDruWATQG/M4C7O8iU0B7o6yVv4m8LDEN9CiR6r7H17m4xZseT3f+0QpMe7iQjz
6XxTUFRQxXqzmNnloA1T7VjwPqIIzkj/u0V8nICG/ktLzp1OsCFatWXh7LbU+hwY
l6gsFH/mFDqVxJ3+DKQivyf1NatzEwl62foVjGUSpvh3ymtmtUQ4JUkNDsXiRBWc
zaiGSuzD9Qi0ONdkAX3bewqmN4TfE+XIpCPxxHXwGq9Rv1IFjOdCX0iG436GHyTL
C1tTUIKF5xV4Y0+cXIOIRgQQEQgABgUCTpdI7gAKCRDFr3dKWFELWqaPAKD1TtT5
c3sZz92Fj97KYmqbNQZP+ACfSC6+hfvlj4GxmUjp1aepoVTo3weJAhwEEAEIAAYF
Ak6XSQsACgkQTFprqxLSp64F8Q//cCcutwrH50UoRFejg0EIZav6LUKejC6kpLeu
bbEtuaIH3r2zMblPGc4i+eMQKo/PqyQrceRXeNNlqO6/exHozYi2meudxa6Iudhw
JIOn1MQykJbNMSC2sGUp1W5M1N5EYgt4hy+qhlfnD66LR4G+9t5FscTJSy84SdiO
uqgCOpQmPkVRm1HX5X1+dmnzMOCk5LHHQuiacV0qeGO7JcBCVEIDr+uhU1H2u5GP
FNHm5u15n25tOxVivb94xg6NDjouECBH7cCVuW79YcExH/0X3/9G45rjdHlKPH1O
IUJiiX47OTxdG3dAbB4QfnViRJhjehFscFvYWSqXo3pgWqUsEvv9qJac2ZEMSz9x
2mj0ekWxuM6/hGWxJdB++985rIelPmc7VRAXOjIxWknrXnPCZAMlPlDLu6+vZ5Bh
FX0Be3y38f7GNCxFkJzlhWZ4Cj3WojMj+0DaC1eKTj3rJ7OJlt9S9xnO7OOPEUTG
yzgNIDAyCiu8F4huLPaTape6RupxOMHZeoCVlqx3ouWctelB2oNXcxxiQ/8y+21a
HfD4n/CiIFwDvIQjl7dgmT3u5Lr6yxuosR3QJx1P6rP5ZrDTP9khT30t+HZCbvs5
Pq+v/9m6XDmi+NlU7ZuhEhy97tL3uBDgoL4b/5BpFL5U9nruPlQzGq1P9jj40dxA
aDAX/WKJAj0EEwEIACcCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AFAlB5KywF
CQPDFt8ACgkQf8x9RqzMTPhuCQ//QAjRSAOCQ02qmUAikT+mTB6baOAakkYq6uHb
EO7qPZkv4E/M+HPIJ4wdnBNeSQjfvdNcZBA/x0hr5EMcBneKKPDj4hJ0panOIRQm
NSTThQw9OU351gm3YQctAMPRUu1fTJAL/AuZUQf9ESmhyVtWNlH/56HBfYjE4iVe
aRkkNLJyX3vkWdJSMwC/LO3Lw/0M3R8itDsm74F8w4xOdSQ52nSRFRh7PunFtREl
+QzQ3EA/WB4AIj3VohIGkWDfPFCzV3cyZQiEnjAe9gG5pHsXHUWQsDFZ12t784Jg
kGyO5wT26pzTiuApWM3k/9V+o3HJSgH5hn7wuTi3TelEFwP1fNzI5iUUtZdtxbFO
fWMnZAypEhaLmXNkg4zDkH44r0ss9fR0DAgUav1a25UnbOn4PgIEQy2fgHKHwRpC
y20d6oCSlmgyWsR40EPPYvtGq49A2aK6ibXmdvvFT+Ts8Z+q2SkFpoYFX20mR2ns
F0fbt1lfH65P64dukxeRGteWIeNakDD40bAAOH8+OaoTGVBJ2ACJfLVNM53PEoft
avAwUYMrR910qvwYfd/46rh46g1Frr9SFMKYE9uvIJIgDsQB3QBp71houU4H55M5
GD8XURYs+bfiQpJG1p7eB8e5jZx1SagNWc4XwL2FzQ9svrkbg1Y+359buUiP7T6Q
XX2zY++JAj0EEwEIACcCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AFAlEqbZUF
CQg2wEEACgkQf8x9RqzMTPhFMQ//WxAfKMdpSIA9oIC/yPD/dJpY/+DyouOljpE6
MucMy/ArBECjFTBwi/j9NYM4ynAk34IkhuNexc1i9/05f5RM6+riLCLgAOsADDbH
D4miZzoSxiVr6GQ3YXMbOGld9kV9Sy6mGNjcUov7iFcf5Hy5w3AjPfKuR9zXswyf
zIU1YXObiiZT38l55pp/BSgvGVQsvbNjsff5CbEKXS7q3xW+WzN0QWF6YsfNVhFj
RGj8hKtHvwKcA02wwjLeLXVTm6915ZUKhZXUFc0vM4Pj4EgNswH8Ojw9AJaKWJIZ
mLyW+aP+wpu6YwVCicxBY59CzBO2pPJDfKFQzUtrErk9irXeuCCLesDyirxJhv8o
0JAvmnMAKOLhNFUrSQ2m+3EnF7zhfz70gHW+EG8X8mL/EN3/dUM09j6TVrjtw43R
LxBzwMDeariFF9yC+5bLtnGgxjsB9Ik6GV5v34/NEEGf1qBiAzFmDVFRZlrNDkq6
gmpvGnA5hUWNr+y0i01LjGyaLSWHYjgw2UEQOqcUtTFK9MNzbZze4mVaHMEz9/aM
fX25R6qbiNqCChveIm8mYr5Ds2zdZx+G5bAKdzX7nx2IUAxFQJEE94VLSp3npAaT
Wv3sHr7dR8tSyUJ9poDwgw4W9BIcnAM7zvFYbLF5FNggg/26njHCCN70sHt8zGxK
QINMc6SJAj0EEwEIACcCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AFAlLpFRkF
CQ6EJy0ACgkQf8x9RqzMTPjOZA//Zp0e25pcvle7cLc0YuFr9pBv2JIkLzPm83nk
cwKmxaWayUIG4Sv6pH6hm8+S/CHQij/yFCX+o3ngMw2J9HBUvafZ4bnbI0RGJ70G
sAwraQ0VlkIfg7GUw3TzvoGYO42rZTru9S0K/6nFP6D1HUu+U+AsJONLeb6oypQg
InfXQExPZyliUnHdipei4WR1YFW6sjSkZT/5C3J1wkAvPl5lvOVthI9Zs6bZlJLZ
wusKxU0UM4Btgu1Sf3nnJcHmzisixwS9PMHE+AgPWIGSec/N27a0KmTTvImV6K6n
EjXJey0K2+EYJuIBsYUNorOGBwDFIhfRk9qGlpgt0KRyguV+AP5qvgry95IrYtrO
uE7307SidEbSnvO5ezNemE7gT9Z1tM7IMPfmoKph4BfpNoH7aXiQh1Wo+ChdP92h
ZUtQrY2Nm13cmkxYjQ4ZgMWfYMC+DA/GooSgZM5i6hYqyyfAuUD9kwRN6BqTbuAU
Ap+hCWYeN4D88sLYpFh3paDYNKJ+Gf7Yyi6gThcV956RUFDH3ys5Dk0vDL9NiWwd
ebWfRFbzoRM3dyGP889aOyLzS3mh6nHzZrNGhW73kslSQek8tjKrB+56hXOnb4Ha
ElTZGDvD5wmrrhN94kbyGtz3cydIohvNO9d90+29h0eGEDYti7j7maHkBKUAwlcP
vMg5m3aZAg0EWXx9gQEQANCYZnqkOvBj2If0NWXA3BM685nuruUdc+X9Mt8yzW1y
Qxz8P1qGx0E31Va0yaj5HJK+GQh7xfXmvrlMWzYcTx+3qPZ7/grjvak5szWEH5qO
JT/BhfZLKrsMGU2bpgw/n9LJDNHGqKzglrW5SNbhDn8Kx1/kify4zNePkPU/uo6I
/Zo1rQSvfDo9dZFO5OKFZk6we/yenJVgMFFHqARlt3evzqycj/ujwF+Zp3cqNvEv
to500zACpAVo0qXtj5Qmm/UI0Uh/63Bw6gLSx7VKuxUmUAf0c0cztcZCw9TCk29C
Vya+v63W9VLabvaWTeDJKEO4mmLVOJ8bD4OhOq7nhTST7SxmbimdBV6KLM2R59TZ
So6gaW3iiIb2ciFJfTjFGUZ6zdhrQ6M0jlvXFtxihH6vRzeh0j5QLDdVJm0oNf/G
UfWj/zZvyi5d4TssDWLgO8Y2PhVK+jG/iCAjOfEx/4+RZdYrBEaxsABcXnauvgVR
p5oqghQOQmodcDGsHc9CyVn5mAES6SRBkXvo2SpGo/UTsVfNlkyjZ4Qvu+2eFLNS
Vqc5/jYQIGhYdWhlBpEUw1samqWD1pZ50cbJ60xK1LecfWypqev6LgjxVH9Qf6KV
qs9NbdMTRqlaWwfz43cgptHHbCCtFk2hAS7JW2/J7AMVhKEkHdnG3tULLru8oCXV
ABEBAAG0HExhdW5jaHBhZCBQUEEgZm9yIGRlYWRzbmFrZXOJAjgEEwECACIFAll8
fYECGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELppMjZqdVd2/CEP/igj
fJyR4qf1ok01MmzLDjJ0yQgA50b6Ntmxi/+s3vdRVAXVEDwcLvVIOZt3Q27zSSgE
5f5RK4u++GgwiwBGUPl0vHl//NpBxhYmb8G2wwX95nizXGx6fBbo+ld3wWlpOfWq
2D/z47331Hi5J60CGHJ/W9JFv/xTSyBJB3fyallkWrfnZS5WKxeeYJOGPrbWWhC5
tgneXBQtIuzzCaCjhchgftSB1q9X11+mU+HQzX1EdAvfBPJA/YpE1GrWsbv+fVfN
TAPKpjp4xWF1WG+fEAbO290ULJJXMFGv+sLDqq6FxhDAGp2ppeHPreen7iaVQ193
wS75Vqxv+1u14X+kO7TJ4UykrhfT0LCfaRhgKmrhe6OKNb6JFZvgw7cbwsuLygEA
c/+TQIz9C9JFtsbwkNCRAMffsR+byIT8S20lOLGMoAh/K6Ca8Qd9yufFoygGKhrq
HoxxCsy8jxsmKvGisnM5UXiRjvFe8xjCPNoMLwbR9MDxLNBFpKGSxHdRJdmPPy9L
q1n5g1qZEc+hndRrRvPi3ZoJy79+SdUaxdw0FrM0gr1YXbrrlS39vuUNuiNexRnc
+m6o6h4ZAv0tGPueYIjq6CgqQ2nxldwYnwEbDftZ6nbO3LMOiFenp//iYaDLYphX
1HhLwPnIENRToFLtK7meFAxK191+vgV98uae8UL3
=fnbr
-----END PGP PUBLIC KEY BLOCK-----
amqp==1.4.9
anyjson==0.3.3
Babel==2.3.4
beautifulsoup4==4.6.0
billiard==3.3.0.23
boto==2.43.0
bz2file==0.98
celery==3.1.25
chardet==3.0.4
click==6.7
Cython==0.25.2
decorator==4.1.2
Django==1.10.3
django-celery==3.2.1
docopt==0.6.2
easy-thumbnails==2.3
ephem==3.7.6.0
et-xmlfile==1.0.1
flower==0.9.2
future==0.16.0
geocoder==1.38.1
html2text==2014.12.29
ipython-genutils==0.2.0
jdcal==1.3
kombu==3.0.37
lxml==3.8.0
Naked==0.1.31
numpy==1.13.1
olefile==0.44
openpyxl==2.4.0
pandas==0.20.3
pexpect==4.2.1
pickleshare==0.7.4
Pillow==5.1.0
pip==10.0.1
prompt-toolkit==1.0.14
psycopg2==2.7.1
ptyprocess==0.5.1
Pygments==2.2.0
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.2
PyYAML==3.12
pyzmq==16.0.2
ratelim==0.1.6
requests==2.11.1
scikit-learn==0.18.1
scipy==0.18.1
selenium==3.13.0
setuptools==39.2.0
Shapely==1.6.4.post1
shellescape==3.4.1
simplegeneric==0.8.1
simplejson==3.10.0
six==1.10.0
smart-open==1.3.5
style==1.1.0
tornado==4.5.3
traitlets==4.3.2
unicodecsv==0.14.1
uWSGI==2.0.15
vine==1.1.4
wcwidth==0.1.7
wheel==0.31.1
xlrd==1.0.0
xlwt==1.2.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment