From 1ac8ac0b15c2192e2316530b603793c08de48fd3 Mon Sep 17 00:00:00 2001 From: medariox Date: Wed, 14 Dec 2016 20:14:43 +0100 Subject: [PATCH 01/25] Initial provider tests --- tests/providers/__init__.py | 0 tests/providers/conftest.py | 40 +++ tests/providers/test_parser.py | 45 ++++ .../extratorrent/extratorrent_backlog.html | 231 ++++++++++++++++++ .../extratorrent/extratorrent_daily.html | 205 ++++++++++++++++ .../extratorrent/extratorrent_test.yml | 49 ++++ 6 files changed, 570 insertions(+) create mode 100644 tests/providers/__init__.py create mode 100644 tests/providers/conftest.py create mode 100644 tests/providers/test_parser.py create mode 100644 tests/providers/torrent/extratorrent/extratorrent_backlog.html create mode 100644 tests/providers/torrent/extratorrent/extratorrent_daily.html create mode 100644 tests/providers/torrent/extratorrent/extratorrent_test.yml diff --git a/tests/providers/__init__.py b/tests/providers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py new file mode 100644 index 0000000000..507a54b766 --- /dev/null +++ b/tests/providers/conftest.py @@ -0,0 +1,40 @@ +# coding=utf-8 +"""Configuration for pytest.""" +from __future__ import unicode_literals + +import os +from collections import namedtuple + +from medusa.providers.torrent import extratorrent + +import pytest + +import yaml + + +__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) + +__providers__ = (extratorrent,) + + +@pytest.fixture(scope='session') +def providers(): + + Provider = namedtuple('Provider', 'name type klass data') + providers = [Provider(name=provider.__name__.rpartition('.')[2], + type=provider.__name__.split('.', 3)[2], + klass=provider.__dict__.get('provider'), + data={}) + for provider in __providers__] + + for provider in providers: + + # Load provider test config + input_file = os.path.join(__location__, provider.type, provider.name, provider.name + '_test.yml') + with open(input_file, 'r') as stream: + data = yaml.load(stream) + + # Update provider with test data + provider.data.update(data) + + return providers diff --git a/tests/providers/test_parser.py b/tests/providers/test_parser.py new file mode 100644 index 0000000000..95dd416216 --- /dev/null +++ b/tests/providers/test_parser.py @@ -0,0 +1,45 @@ +# coding=utf-8 +"""Provider parser tests.""" +from __future__ import unicode_literals + +import codecs +import os + + +__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) + + +def test_parser_daily(providers, limit=3): + + # Given + for provider in providers: + + # When + html = codecs.open(os.path.join(__location__, provider.type, provider.name, + provider.name + '_daily.html'), 'r') + + actual = provider.klass.parse(html.read(), provider.data['daily']['mode']) + + # Then + for i, result in enumerate(actual): + assert result == provider.data['daily']['data'][i] + if i + 1 == limit: + break + + +def test_parser_backlog(providers, limit=2): + + # Given + for provider in providers: + + # When + html = codecs.open(os.path.join(__location__, provider.type, provider.name, + provider.name + '_backlog.html'), 'r') + + actual = provider.klass.parse(html.read(), provider.data['backlog']['mode']) + + # Then + for i, result in enumerate(actual): + assert result == provider.data['backlog']['data'][i] + if i + 1 == limit: + break diff --git a/tests/providers/torrent/extratorrent/extratorrent_backlog.html b/tests/providers/torrent/extratorrent/extratorrent_backlog.html new file mode 100644 index 0000000000..d2207196a6 --- /dev/null +++ b/tests/providers/torrent/extratorrent/extratorrent_backlog.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + Search for 'Elementary S05E07' torrents - Page 1 - ExtraTorrent.cc The World's Largest BitTorrent System + + + + + + + + + + + + + + + + + + + + + + +
+
ExtraTorrent.cc - The Largest Bittorent SystemLogin   |   Register
+
+ + + + + +
+
Latest Articles
Most searched
Hot torrents
First Cams
View Torrent Info: Max Steel 2016 HC HDCAM UnKnOwN
View Torrent Info: Allied 2016 HDCAM x264 AC3 HQMic-CPG
View Torrent Info: Underworld Blood Wars 2016 HDCAM NAKRO
View Torrent Info: Moana 2016 HD-TS XviD AC3-CPG
Hot torrents
XVID DIVX
View Torrent Info: Criticsized.2016.HDRip.XviD.AC3-EVO
View Torrent Info: Stevie.D.2016.HDRip.XviD.AC3-EVO
View Torrent Info: American.Honey.2016.HDRip.XviD.AC3-EVO
View Torrent Info: City.of.Sin.2017.HDRip.XviD.AC3-EVO
Hot torrents
H264 X264
View Torrent Info: American.Honey.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Independence.Day.1996.Extended.BluRay.720p.DTS.AC3.x264-ETRG
View Torrent Info: When.The.Bough.Breaks.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Incarnate.2016.720p.WEBRip.x264.AAC-ETRG
Hot torrents
Television
View Torrent Info: Chance.S01E10.WEB.H264-DEFLATE[ettv]
View Torrent Info: NCIS.S14E10.HDTV.x264-LOL[ettv]
View Torrent Info: Bull.2016.S01E09.HDTV.x264-LOL[ettv]
View Torrent Info: NCIS.New.Orleans.S03E09.HDTV.x264-LOL[ettv]
View Torrent Info: Jijibisha.(2016)-HEVC-Tiny.Rip-x265.AAC.Esubs-400MB-[DDR]
View Torrent Info: Tai Chi Zero (2012) x264 720p BluRay Eng Subs {Dual Audio} [Hindi DD 2.0   Chinese 5.1] Exclusive By DREDD
View Torrent Info: Maalik (2016) HDRIP 1GBRIP x265 AAC Esub [DDR]
View Torrent Info: Born to Defense (1986) DVDRip x264 Eng Subs [Dual Audio] [Hindi 2.0 - English 2.0] Exclusive By -=!Dr.STAR!=-
+ +
30s
Chat
To add new messages please Login or Register for FREE
+ + + + + +
+ + + +
Warning! Protect Yourself from Lawsuits and Fines!
Your IP Address is 87.78.209.173.   Location is Germany
Your IP Address is visible to EVERYONE. Hide your IP ADDRESS with a VPN while torrenting!
ExtraTorrent strongly recommends using Trust.Zone VPN to anonymize your torrenting. It's FREE!
+ + +
+ + + +
+ExtraTorrent.cc > Search for Torrents +
+

+ +

Search for Torrents

+ +
+ +
+
+ + + + + + + + + + + + + +
Search
Category + +
+
+
+ + +
Safety Recommendation:   Download Torrents Anonymously!

Your IP Address is 87.78.209.173.   Location is Germany
Torrenting does not guarantee ANONYMITY! Your Internet Provider and Government can track your torrent activity!
ExtraTorrent strongly recommends using Trust.Zone VPN to anonymize your torrenting. Protect yourself with VPN - Save ExtraTorrent!

+ + + + +

Search for torrents results: + + RSS: Search 'Elementary S05E07' Torrents + +

+total 6 torrents found +  (watch for "Elementary S05E07" new coming torrents watch for Elementary S05E07 new coming torrents)

+ + + + + + +
+   + + Torrents per page: + +
+ + + + + + + +
  Sort
Added Size SortS SortL SortHealth
DownloadMagnet linkBrowseEnglish Elementary S05E07 (1080p WEBRip x265 HEVC 10bit AAC 5.1 Qman) [UTR] 10.00 in Elementary, by 21d361.52 MB4914
DownloadMagnet linkBrowseEnglish Elementary.S05E07.1080p.HDTV.x264[state] in Elementary, by 23d434.28 MB21945
DownloadMagnet linkBrowseEnglish Elementary.S05E07.HDTV.XviD-FUM[ettv] in Other, by 23d348.20 MB3514351
DownloadMagnet linkBrowseEnglish Elementary.S05E07.1080p.HDTV.X264-DIMENSION[ettv] 10.00 in Other, by 23d3.69 GB18049
DownloadMagnet linkBrowseEnglish Elementary.S05E07.HDTV.x264-LOL[ettv] 10.00 in Other, by 23d203.37 MB4229302
DownloadMagnet linkBrowseEnglish Elementary.S05E07.720p.HDTV.X264-DIMENSION[ettv] 9.00 in Other, by 23d741.07 MB671151

+ + + + + +
+   + + Torrents per page: + +
+ + +
+

Recent Searches

planes hindi     zombieland 2 dvdrip jaybob     the wire s04e02 720p     ETTV     game of thrones s02e01 winter is ing hdtv xvid-fqm     dvd     water under the bridge     The Warlords 2007     Luke Cage S01E09 720p     the simpsons se01 720p     the karate kid, part ii 720p     conguring2     software     lil flip carmine     gossip girl s01e03 720p     casting     marvels agent of s.h.i.e.l.d. s04e09     adult     the vampire diaries s05e09 720p     Now You See Me 1     supergirl s02e06 720p     zootopia 720p     sausage party 720p     fear, inc. 720p     movie     the middle s08e07     DDR     elementary s05e07     Westworld     angus 1995 720p web-dl h264-ctrlhd [publichd]     toy story 720p     suicide squad 720p     the conjuring     The Marine REPACK TS XviD TFF[ ]     the lord of the rings - the two towers 720p     anime     wildonesfloride     K-camp ft chris brown lil bit     the legend of korra s03e 720p     the real housewives of atlanta     890 bridge training eur multi5 nds eximius(torrent     south park 1 a 15 temporada dublado     the BFG     SISTER SLEDGE     sex     the middle s08e09 720p     Shawn mendes     music     porn     the 7d     search     the witching 720p     the walking dead     van helsing s01e04 720p     ultimate r&b songs     ETRG     Francesca's Juggies 3     bronchial asthma     game of thrones s02e 720p     zodiac 720p     z nation s01e02 720p     

+ +
+ + + + + + + + + + + + + + + +
+ + +
+
+
+ Home - + Browse Torrents - + Upload Torrent - + Stat - + Forum - + FAQ - + Login
+ ExtraTorrent.cc is in compliance with copyrights
+ BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
+ Can't load ExtraTorrent? Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com - extratorrentlive.com
+ 2006-2016 ExtraTorrent.cc3 +
+ + +
+ +
+ + + + + + diff --git a/tests/providers/torrent/extratorrent/extratorrent_daily.html b/tests/providers/torrent/extratorrent/extratorrent_daily.html new file mode 100644 index 0000000000..c75ee27c7d --- /dev/null +++ b/tests/providers/torrent/extratorrent/extratorrent_daily.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + List of today added TV torrents - ExtraTorrent.cc The World's Largest BitTorrent System + + + + + + + + + + + + + + + + + + + + + + +
+
ExtraTorrent.cc - The Largest Bittorent SystemLogin   |   Register
+
+ + + + + +
+
Latest Articles
Most searched
Hot torrents
First Cams
View Torrent Info: Max Steel 2016 HC HDCAM UnKnOwN
View Torrent Info: Allied 2016 HDCAM x264 AC3 HQMic-CPG
View Torrent Info: Underworld Blood Wars 2016 HDCAM NAKRO
View Torrent Info: Moana 2016 HD-TS XviD AC3-CPG
Hot torrents
XVID DIVX
View Torrent Info: Criticsized.2016.HDRip.XviD.AC3-EVO
View Torrent Info: Stevie.D.2016.HDRip.XviD.AC3-EVO
View Torrent Info: American.Honey.2016.HDRip.XviD.AC3-EVO
View Torrent Info: City.of.Sin.2017.HDRip.XviD.AC3-EVO
Hot torrents
H264 X264
View Torrent Info: American.Honey.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Independence.Day.1996.Extended.BluRay.720p.DTS.AC3.x264-ETRG
View Torrent Info: When.The.Bough.Breaks.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Incarnate.2016.720p.WEBRip.x264.AAC-ETRG
Hot torrents
Television
View Torrent Info: Chance.S01E10.WEB.H264-DEFLATE[ettv]
View Torrent Info: NCIS.S14E10.HDTV.x264-LOL[ettv]
View Torrent Info: Bull.2016.S01E09.HDTV.x264-LOL[ettv]
View Torrent Info: NCIS.New.Orleans.S03E09.HDTV.x264-LOL[ettv]
View Torrent Info: Jijibisha.(2016)-HEVC-Tiny.Rip-x265.AAC.Esubs-400MB-[DDR]
View Torrent Info: Tai Chi Zero (2012) x264 720p BluRay Eng Subs {Dual Audio} [Hindi DD 2.0   Chinese 5.1] Exclusive By DREDD
View Torrent Info: Maalik (2016) HDRIP 1GBRIP x265 AAC Esub [DDR]
View Torrent Info: Born to Defense (1986) DVDRip x264 Eng Subs [Dual Audio] [Hindi 2.0 - English 2.0] Exclusive By -=!Dr.STAR!=-
+ +
30s
Chat
To add new messages please Login or Register for FREE
+ + + + + +
+ + + +
Warning! Stop Government from Tracking Your Torrenting!
Your IP Address is 87.78.209.232.   Location is Germany
Your Internet Provider and Government can track your internet activity! Hide your IP and LOCATION with a VPN
ExtraTorrent strongly recommends using Trust.Zone VPN to anonymize your torrenting. It's FREE!
+ + +
+ + + + + + +
+ + ExtraTorrent.cc > + + Today Torrents > All Today TV Torrents + +
+ +
+ + + + + + +
+

+ All Today TV Torrents (169 torrents) + + RSS: All Today TV Torrents + +

+
+ + + + + +
+ See also: + + Newly Most Popular Torrents
+ Yesterday Torrents +
+
+ +
+ + + + + + +
+ 1 2 3 4 > >>>
+
+ Torrents per page: + +
+ + + +
Browse TV Torrents TV torrents RSS Sort
Added Size SortS SortL SortHealth
DownloadMagnet linkEnglish Carson.Daly.2016.12.13.Simone.Biles.HDTV.x264-CROOKS[ettv] in Other, by 27m189.46 MB------
DownloadMagnet linkEnglish Jimmy.Kimmel.2016.12.13.Rami.Malek.HDTV.x264-CROOKS[ettv] in Other, by 41m422.72 MB------
DownloadMagnet linkEnglish The.Weekly.With.Charlie.Pickering.2016.12.14.Yearly.Special.360p.LDTV.ABC.AU.WEBRIP.[MPup] in Other, by 43m231.50 MB25
DownloadMagnet linkEnglish The.Royal.Variety.Performance.2016.12.13.EN.SUB.WEBRIP.[MPup] in UK, by 47m1.29 GB------
DownloadMagnet linkEnglish Dance Moms S07E03 Return of The Rotten Apples 1080p WEB-DL AAC2.0 H.264-LAZY in Other, by 1h1.53 GB281
DownloadMagnet linkEnglish The 11th Hour with Brian Williams 2016 12 13 720p WEBRip x264-LM in Other, by 1h453.63 MB2231
DownloadMagnet linkEnglish The Last Word with Lawrence ODonnell 2016 12 13 720p WEBRip x264-LM in Other, by 1h840.11 MB1331
DownloadMagnet linkEnglish The Rachel Maddow Show 2016 12 13 720p WEBRip x264-LM in Other, by 1h839.20 MB33128
DownloadMagnet linkEnglish All In with Chris Hayes 2016 12 13 720p WEBRip x264-LM in Other, by 1h848.51 MB1771
DownloadMagnet linkEnglish The Voice US S11E27 Grand Finale Results HDTV x264-PWE[state] in The Voice, by 1h644.29 MB37952
DownloadMagnet linkEnglish Muslims.Like.Us.Complete.BBC.Series.1.EN.SUB.MPEG4.x264.WEBRIP.[MPup] | s01e01 | s01e02 | in UK, by 1h1.98 GB------
DownloadMagnet linkEnglish Conan.2016.12.13.Chris.Pratt.HDTV.x264-CROOKS[ettv] in Other, by 2h283.09 MB266235
DownloadMagnet linkEnglish WWII.Hell.Under.The.Sea.S01E01-E02.HDTV.x264-PLUTONiUM - [SRIGGA] in Other, by 2h567.51 MB167182
DownloadMagnet linkEnglish VICE.News.Tonight.2016.12.13.1080p.HBO.WEBRip.H.264-monkee - [SRIGGA] in Other, by 2h225.98 MB135136
DownloadMagnet linkEnglish James.Corden.2016.12.13.Jennifer.Lawrence.HDTV.x264-CROOKS[ettv] in Other, by 3h565.81 MB377231
DownloadMagnet linkEnglish Shooter S01E01-E04 720p WEBRip 1.3GB - MkvCage in Other, by 3h1.37 GB18208
DownloadMagnet linkEnglish Car.SOS.S01E07.Triumph.of.the.Stag.1080P.HDTV.x264-skorpion.mp4 in National Geographic, by 3h1.48 GB------
DownloadMagnet linkEnglish Man with a Plan S01E07 720p HDTV 160MB - MkvCage in Other, by 3h162.06 MB------
DownloadMagnet linkEnglish Opening.Shot.2016.12.14.The.End.of.the.Line.360p.LDTV.WEBRIP.[MPup] in Other, by 3h102.22 MB58
DownloadMagnet linkEnglish Rillington.Place.Complete.Series.1.EN.SUB.MPEG4.x264.WEBRIP.[MPup] | s01e01 | s01e02 | s01e03 | in UK, by 3h2.91 GB1517
DownloadMagnet linkDark Angel Season S01 Widescreen DVD x265 10bit AAC 2.0 in Other, by 4h6.97 GB223
DownloadMagnet linkEnglish Stephen.Colbert.2016.12.13.Mark.Wahlberg.HDTV.x264-SORNY[ettv] in Other, by 4h389.19 MB1092548
DownloadMagnet linkEnglish Seth.Meyers.2016.12.13.Bernie.Sanders.720p.HDTV.x264-BRISK[PRiME] in Other, by 4h1.30 GB164254
DownloadMagnet linkEnglish Years.of.Living.Dangerously.S02E07.HDTV.x264-CROOKS[ettv] in Other, by 5h311.33 MB------
DownloadMagnet linkEnglish Geordie Shore S13E08 WEBRip x264-RBB[state] in Geordie Shore, by 5h265.97 MB1740847
DownloadMagnet linkEnglish How I Met Your Mother S06e01-24 [Mux - 1080p - H264 - Ita Ac3 Eng Ac3 5.1 - Sub Ita Eng] WEB-DLMux by Fratposa - Complete Season in How I Met Your Mother, by 5h20.51 GB------
DownloadMagnet linkEnglish House.of.Bryan.S01E10.HDTV.x264-BRISK[PRiME] in Other, by 6h163.74 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E12.720p.HDTV.x264-BRISK[PRiME] in Other, by 6h610.41 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E11.720p.HDTV.x264-BRISK[PRiME] in Other, by 6h623.63 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E10.720p.HDTV.x264-BRISK[PRiME] in Other, by 6h579.17 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E12.HDTV.x264-BRISK[PRiME] in Other, by 6h177.68 MB13777
DownloadMagnet linkEnglish House.of.Bryan.S01E11.HDTV.x264-BRISK[PRiME] in Other, by 6h180.21 MB------
DownloadMagnet linkEnglish Fuller House Season 2 - Ep 1-13 720p in Other, by 6h8.90 GB1107
DownloadMagnet linkEnglish Chance.S01E08.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.44 MB------
DownloadMagnet linkEnglish Chance.S01E07.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.20 MB------
DownloadMagnet linkEnglish Chance.S01E06.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.64 MB------
DownloadMagnet linkEnglish Chance.S01E05.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.49 MB------
DownloadMagnet linkEnglish Chance.S01E04.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.38 MB------
DownloadMagnet linkEnglish Chance.S01E03.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.21 MB------
DownloadMagnet linkEnglish Chance.S01E02.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.15 MB------
DownloadMagnet linkEnglish Chance.S01E01.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.97 MB------
DownloadMagnet linkEnglish Shooter.S01E04.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.04 MB4036
DownloadMagnet linkEnglish Shooter.S01E03.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.14 MB------
DownloadMagnet linkEnglish Shooter.S01E02.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.29 MB------
DownloadMagnet linkEnglish Shooter.S01E01.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.34 MB------
DownloadMagnet linkEnglish The.Curse.of.Oak.Island.S04E05.Bullseye.720p.WEB-DL.x264-FUM[ettv] 10.00 in Other, by 6h1.23 GB15793410
DownloadMagnet linkEnglish Dr.Phil.Show.2016.12.13.HDTV.x264.mp4 10.00 in Other, by 7h216.67 MB4113
DownloadMagnet linkEnglish Johnny Carson 1981.12.10 Jack Lemmon; Walter Matthau [Tdot] in Other, by 7h382.14 MB2974
DownloadMagnet linkEnglish TMZ.on.TV.2016.12.13.SDTV.x264.mp4 in Other, by 7h184.44 MB2736
DownloadMagnet linkEnglish Geordie Shore S13E08 1080P WEB-DL AAC2 0 H 264 in Geordie Shore, by 7h1.53 GB241193

+ + + + + +
+ 1 2 3 4 > >>>
+
+ Torrents per page: + +
+ + + + + + + + + + + + + + + +
+ + +
+
+
+ Home - + Browse Torrents - + Upload Torrent - + Stat - + Forum - + FAQ - + Login
+ ExtraTorrent.cc is in compliance with copyrights
+ BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
+ Can't load ExtraTorrent? Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com - extratorrentlive.com
+ 2006-2016 ExtraTorrent.cc4 +
+ + +
+ +
+ + + + + + diff --git a/tests/providers/torrent/extratorrent/extratorrent_test.yml b/tests/providers/torrent/extratorrent/extratorrent_test.yml new file mode 100644 index 0000000000..2e457a923b --- /dev/null +++ b/tests/providers/torrent/extratorrent/extratorrent_test.yml @@ -0,0 +1,49 @@ +daily: + date: 2016-12-14 + url: http://extratorrent.cc/view/today/TV.html + mode: RSS + data: + - seeders: 1 + pubdate: + title: Carson.Daly.2016.12.13.Simone.Biles.HDTV.x264-CROOKS[ettv] + torrent_hash: + leechers: 0 + link: http://extratorrent.cc/download/5354297/Carson.Daly.2016.12.13.Simone.Biles.HDTV.x264-CROOKS%5Bettv%5D.torrent + size: 198663208 + + - seeders: 1 + pubdate: + title: Jimmy.Kimmel.2016.12.13.Rami.Malek.HDTV.x264-CROOKS[ettv] + torrent_hash: + leechers: 0 + link: http://extratorrent.cc/download/5354250/Jimmy.Kimmel.2016.12.13.Rami.Malek.HDTV.x264-CROOKS%5Bettv%5D.torrent + size: 443254046 + + - seeders: 2 + pubdate: + title: The.Weekly.With.Charlie.Pickering.2016.12.14.Yearly.Special.360p.LDTV.ABC.AU.WEBRIP.[MPup] + torrent_hash: + leechers: 5 + link: http://extratorrent.cc/download/5354245/The.Weekly.With.Charlie.Pickering.2016.12.14.Yearly.Special.360p.LDTV.ABC.AU.WEBRIP.%5BMPup%5D.torrent + size: 242745344 + +backlog: + date: 2016-12-14 + url: http://extratorrent.cc/search/?y=0&new=1&search=Elementary+S05E07&x=0 + mode: Episode + data: + - seeders: 49 + pubdate: + title: Elementary S05E07 (1080p WEBRip x265 HEVC 10bit AAC 5.1 Qman) [UTR] + torrent_hash: + leechers: 14 + link: http://extratorrent.cc/download/5309682/Elementary+S05E07+%281080p+WEBRip+x265+HEVC+10bit+AAC+5.1+Qman%29+%5BUTR%5D.torrent + size: 379081195 + + - seeders: 219 + pubdate: + title: Elementary.S05E07.1080p.HDTV.x264[state] + torrent_hash: + leechers: 45 + link: http://extratorrent.cc/download/5305486/Elementary.S05E07.1080p.HDTV.x264%5Bstate%5D.torrent + size: 455375585 From e55a4671d9a02159e8cdb7b7045d656c54be2319 Mon Sep 17 00:00:00 2001 From: medariox Date: Thu, 15 Dec 2016 16:33:14 +0100 Subject: [PATCH 02/25] Added VRC and wrapt (dependency) libs, added basic search test, initial use of cassettes instead of html, updated yaml test structure --- lib/vcr/__init__.py | 17 + lib/vcr/cassette.py | 308 ++ lib/vcr/compat.py | 18 + lib/vcr/config.py | 275 ++ lib/vcr/errors.py | 7 + lib/vcr/filters.py | 163 + lib/vcr/matchers.py | 101 + lib/vcr/migration.py | 168 + lib/vcr/patch.py | 456 +++ lib/vcr/persist.py | 14 + lib/vcr/persisters/__init__.py | 0 lib/vcr/persisters/filesystem.py | 11 + lib/vcr/request.py | 131 + lib/vcr/serialize.py | 63 + lib/vcr/serializers/__init__.py | 0 lib/vcr/serializers/compat.py | 79 + lib/vcr/serializers/jsonserializer.py | 29 + lib/vcr/serializers/yamlserializer.py | 15 + lib/vcr/stubs/__init__.py | 346 +++ lib/vcr/stubs/aiohttp_stubs/__init__.py | 100 + lib/vcr/stubs/boto3_stubs.py | 15 + lib/vcr/stubs/boto_stubs.py | 8 + lib/vcr/stubs/compat.py | 43 + lib/vcr/stubs/httplib2_stubs.py | 63 + lib/vcr/stubs/requests_stubs.py | 19 + lib/vcr/stubs/tornado_stubs.py | 107 + lib/vcr/stubs/urllib3_stubs.py | 15 + lib/vcr/util.py | 124 + lib/wrapt/__init__.py | 19 + lib/wrapt/_wrappers.c | 2729 +++++++++++++++++ lib/wrapt/arguments.py | 95 + lib/wrapt/decorators.py | 512 ++++ lib/wrapt/importer.py | 228 ++ lib/wrapt/wrappers.py | 899 ++++++ tests/providers/conftest.py | 6 +- tests/providers/test_parser.py | 31 +- tests/providers/test_search.py | 38 + .../extratorrent/extratorrent_backlog.html | 231 -- .../extratorrent/extratorrent_backlog.yaml | 277 ++ .../extratorrent/extratorrent_daily.html | 205 -- .../extratorrent/extratorrent_daily.yaml | 270 ++ ...orrent_test.yml => extratorrent_test.yaml} | 6 +- 42 files changed, 7786 insertions(+), 455 deletions(-) create mode 100644 lib/vcr/__init__.py create mode 100644 lib/vcr/cassette.py create mode 100644 lib/vcr/compat.py create mode 100644 lib/vcr/config.py create mode 100644 lib/vcr/errors.py create mode 100644 lib/vcr/filters.py create mode 100644 lib/vcr/matchers.py create mode 100644 lib/vcr/migration.py create mode 100644 lib/vcr/patch.py create mode 100644 lib/vcr/persist.py create mode 100644 lib/vcr/persisters/__init__.py create mode 100644 lib/vcr/persisters/filesystem.py create mode 100644 lib/vcr/request.py create mode 100644 lib/vcr/serialize.py create mode 100644 lib/vcr/serializers/__init__.py create mode 100644 lib/vcr/serializers/compat.py create mode 100644 lib/vcr/serializers/jsonserializer.py create mode 100644 lib/vcr/serializers/yamlserializer.py create mode 100644 lib/vcr/stubs/__init__.py create mode 100644 lib/vcr/stubs/aiohttp_stubs/__init__.py create mode 100644 lib/vcr/stubs/boto3_stubs.py create mode 100644 lib/vcr/stubs/boto_stubs.py create mode 100644 lib/vcr/stubs/compat.py create mode 100644 lib/vcr/stubs/httplib2_stubs.py create mode 100644 lib/vcr/stubs/requests_stubs.py create mode 100644 lib/vcr/stubs/tornado_stubs.py create mode 100644 lib/vcr/stubs/urllib3_stubs.py create mode 100644 lib/vcr/util.py create mode 100644 lib/wrapt/__init__.py create mode 100644 lib/wrapt/_wrappers.c create mode 100644 lib/wrapt/arguments.py create mode 100644 lib/wrapt/decorators.py create mode 100644 lib/wrapt/importer.py create mode 100644 lib/wrapt/wrappers.py create mode 100644 tests/providers/test_search.py delete mode 100644 tests/providers/torrent/extratorrent/extratorrent_backlog.html create mode 100644 tests/providers/torrent/extratorrent/extratorrent_backlog.yaml delete mode 100644 tests/providers/torrent/extratorrent/extratorrent_daily.html create mode 100644 tests/providers/torrent/extratorrent/extratorrent_daily.yaml rename tests/providers/torrent/extratorrent/{extratorrent_test.yml => extratorrent_test.yaml} (90%) diff --git a/lib/vcr/__init__.py b/lib/vcr/__init__.py new file mode 100644 index 0000000000..60af6905eb --- /dev/null +++ b/lib/vcr/__init__.py @@ -0,0 +1,17 @@ +import logging +from .config import VCR + +# Set default logging handler to avoid "No handler found" warnings. +try: # Python 2.7+ + from logging import NullHandler +except ImportError: + class NullHandler(logging.Handler): + def emit(self, record): + pass + + +logging.getLogger(__name__).addHandler(NullHandler()) + + +default_vcr = VCR() +use_cassette = default_vcr.use_cassette diff --git a/lib/vcr/cassette.py b/lib/vcr/cassette.py new file mode 100644 index 0000000000..2f5c293898 --- /dev/null +++ b/lib/vcr/cassette.py @@ -0,0 +1,308 @@ +import sys +import inspect +import logging + +import wrapt + +from .compat import contextlib, collections +from .errors import UnhandledHTTPRequestError +from .matchers import requests_match, uri, method +from .patch import CassettePatcherBuilder +from .persist import load_cassette, save_cassette +from .serializers import yamlserializer +from .util import partition_dict + + +log = logging.getLogger(__name__) + + +class CassetteContextDecorator(object): + """Context manager/decorator that handles installing the cassette and + removing cassettes. + + This class defers the creation of a new cassette instance until + the point at which it is installed by context manager or + decorator. The fact that a new cassette is used with each + application prevents the state of any cassette from interfering + with another. + + Instances of this class are NOT reentrant as context managers. + However, functions that are decorated by + ``CassetteContextDecorator`` instances ARE reentrant. See the + implementation of ``__call__`` on this class for more details. + There is also a guard against attempts to reenter instances of + this class as a context manager in ``__exit__``. + """ + + _non_cassette_arguments = ('path_transformer', 'func_path_generator') + + @classmethod + def from_args(cls, cassette_class, **kwargs): + return cls(cassette_class, lambda: dict(kwargs)) + + def __init__(self, cls, args_getter): + self.cls = cls + self._args_getter = args_getter + self.__finish = None + + def _patch_generator(self, cassette): + with contextlib.ExitStack() as exit_stack: + for patcher in CassettePatcherBuilder(cassette).build(): + exit_stack.enter_context(patcher) + log_format = '{action} context for cassette at {path}.' + log.debug(log_format.format( + action="Entering", path=cassette._path + )) + yield cassette + log.debug(log_format.format( + action="Exiting", path=cassette._path + )) + # TODO(@IvanMalison): Hmmm. it kind of feels like this should be + # somewhere else. + cassette._save() + + def __enter__(self): + # This assertion is here to prevent the dangerous behavior + # that would result from forgetting about a __finish before + # completing it. + # How might this condition be met? Here is an example: + # context_decorator = Cassette.use('whatever') + # with context_decorator: + # with context_decorator: + # pass + assert self.__finish is None, "Cassette already open." + other_kwargs, cassette_kwargs = partition_dict( + lambda key, _: key in self._non_cassette_arguments, + self._args_getter() + ) + if other_kwargs.get('path_transformer'): + transformer = other_kwargs['path_transformer'] + cassette_kwargs['path'] = transformer(cassette_kwargs['path']) + self.__finish = self._patch_generator(self.cls.load(**cassette_kwargs)) + return next(self.__finish) + + def __exit__(self, *args): + next(self.__finish, None) + self.__finish = None + + @wrapt.decorator + def __call__(self, function, instance, args, kwargs): + # This awkward cloning thing is done to ensure that decorated + # functions are reentrant. This is required for thread + # safety and the correct operation of recursive functions. + args_getter = self._build_args_getter_for_decorator(function) + return type(self)(self.cls, args_getter)._execute_function( + function, args, kwargs + ) + + def _execute_function(self, function, args, kwargs): + if inspect.isgeneratorfunction(function): + handler = self._handle_coroutine + else: + handler = self._handle_function + return handler(function, args, kwargs) + + def _handle_coroutine(self, function, args, kwargs): + """Wraps a coroutine so that we're inside the cassette context for the + duration of the coroutine. + """ + with self as cassette: + coroutine = self.__handle_function(cassette, function, args, kwargs) + # We don't need to catch StopIteration. The caller (Tornado's + # gen.coroutine, for example) will handle that. + to_yield = next(coroutine) + while True: + try: + to_send = yield to_yield + except Exception: + to_yield = coroutine.throw(*sys.exc_info()) + else: + to_yield = coroutine.send(to_send) + + def __handle_function(self, cassette, function, args, kwargs): + if cassette.inject: + return function(cassette, *args, **kwargs) + else: + return function(*args, **kwargs) + + def _handle_function(self, function, args, kwargs): + with self as cassette: + return self.__handle_function(cassette, function, args, kwargs) + + @staticmethod + def get_function_name(function): + return function.__name__ + + def _build_args_getter_for_decorator(self, function): + def new_args_getter(): + kwargs = self._args_getter() + if 'path' not in kwargs: + name_generator = (kwargs.get('func_path_generator') or + self.get_function_name) + path = name_generator(function) + kwargs['path'] = path + return kwargs + return new_args_getter + + +class Cassette(object): + """A container for recorded requests and responses""" + + @classmethod + def load(cls, **kwargs): + """Instantiate and load the cassette stored at the specified path.""" + new_cassette = cls(**kwargs) + new_cassette._load() + return new_cassette + + @classmethod + def use_arg_getter(cls, arg_getter): + return CassetteContextDecorator(cls, arg_getter) + + @classmethod + def use(cls, **kwargs): + return CassetteContextDecorator.from_args(cls, **kwargs) + + def __init__(self, path, serializer=yamlserializer, record_mode='once', + match_on=(uri, method), before_record_request=None, + before_record_response=None, custom_patches=(), + inject=False): + + self._path = path + self._serializer = serializer + self._match_on = match_on + self._before_record_request = before_record_request or (lambda x: x) + self._before_record_response = before_record_response or (lambda x: x) + self.inject = inject + self.record_mode = record_mode + self.custom_patches = custom_patches + + # self.data is the list of (req, resp) tuples + self.data = [] + self.play_counts = collections.Counter() + self.dirty = False + self.rewound = False + + @property + def play_count(self): + return sum(self.play_counts.values()) + + @property + def all_played(self): + """Returns True if all responses have been played, False otherwise.""" + return self.play_count == len(self) + + @property + def requests(self): + return [request for (request, response) in self.data] + + @property + def responses(self): + return [response for (request, response) in self.data] + + @property + def write_protected(self): + return self.rewound and self.record_mode == 'once' or \ + self.record_mode == 'none' + + def append(self, request, response): + """Add a request, response pair to this cassette""" + request = self._before_record_request(request) + if not request: + return + response = self._before_record_response(response) + if response is None: + return + self.data.append((request, response)) + self.dirty = True + + def filter_request(self, request): + return self._before_record_request(request) + + def _responses(self, request): + """ + internal API, returns an iterator with all responses matching + the request. + """ + request = self._before_record_request(request) + for index, (stored_request, response) in enumerate(self.data): + if requests_match(request, stored_request, self._match_on): + yield index, response + + def can_play_response_for(self, request): + request = self._before_record_request(request) + return request and request in self and \ + self.record_mode != 'all' and \ + self.rewound + + def play_response(self, request): + """ + Get the response corresponding to a request, but only if it + hasn't been played back before, and mark it as played + """ + for index, response in self._responses(request): + if self.play_counts[index] == 0: + self.play_counts[index] += 1 + return response + # The cassette doesn't contain the request asked for. + raise UnhandledHTTPRequestError( + "The cassette (%r) doesn't contain the request (%r) asked for" + % (self._path, request) + ) + + def responses_of(self, request): + """ + Find the responses corresponding to a request. + This function isn't actually used by VCR internally, but is + provided as an external API. + """ + responses = [response for index, response in self._responses(request)] + + if responses: + return responses + # The cassette doesn't contain the request asked for. + raise UnhandledHTTPRequestError( + "The cassette (%r) doesn't contain the request (%r) asked for" + % (self._path, request) + ) + + def _as_dict(self): + return {"requests": self.requests, "responses": self.responses} + + def _save(self, force=False): + if force or self.dirty: + save_cassette( + self._path, + self._as_dict(), + serializer=self._serializer + ) + self.dirty = False + + def _load(self): + try: + requests, responses = load_cassette( + self._path, + serializer=self._serializer + ) + for request, response in zip(requests, responses): + self.append(request, response) + self.dirty = False + self.rewound = True + except IOError: + pass + + def __str__(self): + return "".format( + len(self) + ) + + def __len__(self): + """Return the number of request,response pairs stored in here""" + return len(self.data) + + def __contains__(self, request): + """Return whether or not a request has been stored""" + for index, response in self._responses(request): + if self.play_counts[index] == 0: + return True + return False diff --git a/lib/vcr/compat.py b/lib/vcr/compat.py new file mode 100644 index 0000000000..e76c68ff50 --- /dev/null +++ b/lib/vcr/compat.py @@ -0,0 +1,18 @@ +try: + from unittest import mock +except ImportError: + import mock + +try: + import contextlib +except ImportError: + import contextlib2 as contextlib +else: + if not hasattr(contextlib, 'ExitStack'): + import contextlib2 as contextlib + +import collections +if not hasattr(collections, 'Counter'): + import backport_collections as collections + +__all__ = ['mock', 'contextlib', 'collections'] diff --git a/lib/vcr/config.py b/lib/vcr/config.py new file mode 100644 index 0000000000..ae993465b7 --- /dev/null +++ b/lib/vcr/config.py @@ -0,0 +1,275 @@ +import copy +import functools +import inspect +import os +import types + +import six + +from .compat import collections +from .cassette import Cassette +from .serializers import yamlserializer, jsonserializer +from .util import compose, auto_decorate +from . import matchers +from . import filters + + +class VCR(object): + + @staticmethod + def is_test_method(method_name, function): + return method_name.startswith('test') and \ + isinstance(function, types.FunctionType) + + @staticmethod + def ensure_suffix(suffix): + def ensure(path): + if not path.endswith(suffix): + return path + suffix + return path + return ensure + + def __init__(self, path_transformer=None, before_record_request=None, + custom_patches=(), filter_query_parameters=(), ignore_hosts=(), + record_mode="once", ignore_localhost=False, filter_headers=(), + before_record_response=None, filter_post_data_parameters=(), + match_on=('method', 'scheme', 'host', 'port', 'path', 'query'), + before_record=None, inject_cassette=False, serializer='yaml', + cassette_library_dir=None, func_path_generator=None, + decode_compressed_response=False): + self.serializer = serializer + self.match_on = match_on + self.cassette_library_dir = cassette_library_dir + self.serializers = { + 'yaml': yamlserializer, + 'json': jsonserializer, + } + self.matchers = { + 'method': matchers.method, + 'uri': matchers.uri, + 'url': matchers.uri, # matcher for backwards compatibility + 'scheme': matchers.scheme, + 'host': matchers.host, + 'port': matchers.port, + 'path': matchers.path, + 'query': matchers.query, + 'headers': matchers.headers, + 'raw_body': matchers.raw_body, + 'body': matchers.body, + } + self.record_mode = record_mode + self.filter_headers = filter_headers + self.filter_query_parameters = filter_query_parameters + self.filter_post_data_parameters = filter_post_data_parameters + self.before_record_request = before_record_request or before_record + self.before_record_response = before_record_response + self.ignore_hosts = ignore_hosts + self.ignore_localhost = ignore_localhost + self.inject_cassette = inject_cassette + self.path_transformer = path_transformer + self.func_path_generator = func_path_generator + self.decode_compressed_response = decode_compressed_response + self._custom_patches = tuple(custom_patches) + + def _get_serializer(self, serializer_name): + try: + serializer = self.serializers[serializer_name] + except KeyError: + raise KeyError( + "Serializer {0} doesn't exist or isn't registered".format( + serializer_name + ) + ) + return serializer + + def _get_matchers(self, matcher_names): + matchers = [] + try: + for m in matcher_names: + matchers.append(self.matchers[m]) + except KeyError: + raise KeyError( + "Matcher {0} doesn't exist or isn't registered".format(m) + ) + return matchers + + def use_cassette(self, path=None, **kwargs): + if path is not None and not isinstance(path, six.string_types): + function = path + # Assume this is an attempt to decorate a function + return self._use_cassette(**kwargs)(function) + return self._use_cassette(path=path, **kwargs) + + def _use_cassette(self, with_current_defaults=False, **kwargs): + if with_current_defaults: + config = self.get_merged_config(**kwargs) + return Cassette.use(**config) + # This is made a function that evaluates every time a cassette + # is made so that changes that are made to this VCR instance + # that occur AFTER the `use_cassette` decorator is applied + # still affect subsequent calls to the decorated function. + args_getter = functools.partial(self.get_merged_config, **kwargs) + return Cassette.use_arg_getter(args_getter) + + def get_merged_config(self, **kwargs): + serializer_name = kwargs.get('serializer', self.serializer) + matcher_names = kwargs.get('match_on', self.match_on) + path_transformer = kwargs.get( + 'path_transformer', + self.path_transformer + ) + func_path_generator = kwargs.get( + 'func_path_generator', + self.func_path_generator + ) + cassette_library_dir = kwargs.get( + 'cassette_library_dir', + self.cassette_library_dir + ) + additional_matchers = kwargs.get('additional_matchers', ()) + + if cassette_library_dir: + def add_cassette_library_dir(path): + if not path.startswith(cassette_library_dir): + return os.path.join(cassette_library_dir, path) + return path + path_transformer = compose( + add_cassette_library_dir, path_transformer + ) + elif not func_path_generator: + # If we don't have a library dir, use the functions + # location to build a full path for cassettes. + func_path_generator = self._build_path_from_func_using_module + + merged_config = { + 'serializer': self._get_serializer(serializer_name), + 'match_on': self._get_matchers( + tuple(matcher_names) + tuple(additional_matchers) + ), + 'record_mode': kwargs.get('record_mode', self.record_mode), + 'before_record_request': self._build_before_record_request(kwargs), + 'before_record_response': self._build_before_record_response(kwargs), + 'custom_patches': self._custom_patches + kwargs.get( + 'custom_patches', () + ), + 'inject': kwargs.get('inject_cassette', self.inject_cassette), + 'path_transformer': path_transformer, + 'func_path_generator': func_path_generator + } + path = kwargs.get('path') + if path: + merged_config['path'] = path + return merged_config + + def _build_before_record_response(self, options): + before_record_response = options.get( + 'before_record_response', self.before_record_response + ) + decode_compressed_response = options.get( + 'decode_compressed_response', self.decode_compressed_response + ) + filter_functions = [] + if decode_compressed_response: + filter_functions.append(filters.decode_response) + if before_record_response: + if not isinstance(before_record_response, collections.Iterable): + before_record_response = (before_record_response,) + filter_functions.extend(before_record_response) + + def before_record_response(response): + for function in filter_functions: + if response is None: + break + response = function(response) + return response + return before_record_response + + def _build_before_record_request(self, options): + filter_functions = [] + filter_headers = options.get( + 'filter_headers', self.filter_headers + ) + filter_query_parameters = options.get( + 'filter_query_parameters', self.filter_query_parameters + ) + filter_post_data_parameters = options.get( + 'filter_post_data_parameters', self.filter_post_data_parameters + ) + before_record_request = options.get( + "before_record_request", + options.get("before_record", self.before_record_request) + ) + ignore_hosts = options.get( + 'ignore_hosts', self.ignore_hosts + ) + ignore_localhost = options.get( + 'ignore_localhost', self.ignore_localhost + ) + if filter_headers: + replacements = [h if isinstance(h, tuple) else (h, None) + for h in filter_headers] + filter_functions.append( + functools.partial( + filters.replace_headers, + replacements=replacements, + ) + ) + if filter_query_parameters: + replacements = [p if isinstance(p, tuple) else (p, None) + for p in filter_query_parameters] + filter_functions.append(functools.partial( + filters.replace_query_parameters, + replacements=replacements, + )) + if filter_post_data_parameters: + replacements = [p if isinstance(p, tuple) else (p, None) + for p in filter_post_data_parameters] + filter_functions.append( + functools.partial( + filters.replace_post_data_parameters, + replacements=replacements, + ) + ) + + hosts_to_ignore = set(ignore_hosts) + if ignore_localhost: + hosts_to_ignore.update(('localhost', '0.0.0.0', '127.0.0.1')) + if hosts_to_ignore: + filter_functions.append(self._build_ignore_hosts(hosts_to_ignore)) + + if before_record_request: + if not isinstance(before_record_request, collections.Iterable): + before_record_request = (before_record_request,) + filter_functions.extend(before_record_request) + + def before_record_request(request): + request = copy.copy(request) + for function in filter_functions: + if request is None: + break + request = function(request) + return request + return before_record_request + + @staticmethod + def _build_ignore_hosts(hosts_to_ignore): + def filter_ignored_hosts(request): + if hasattr(request, 'host') and request.host in hosts_to_ignore: + return + return request + return filter_ignored_hosts + + @staticmethod + def _build_path_from_func_using_module(function): + return os.path.join(os.path.dirname(inspect.getfile(function)), + function.__name__) + + def register_serializer(self, name, serializer): + self.serializers[name] = serializer + + def register_matcher(self, name, matcher): + self.matchers[name] = matcher + + def test_case(self, predicate=None): + predicate = predicate or self.is_test_method + return six.with_metaclass(auto_decorate(self.use_cassette, predicate)) diff --git a/lib/vcr/errors.py b/lib/vcr/errors.py new file mode 100644 index 0000000000..bdc970194e --- /dev/null +++ b/lib/vcr/errors.py @@ -0,0 +1,7 @@ +class CannotOverwriteExistingCassetteException(Exception): + pass + + +class UnhandledHTTPRequestError(KeyError): + """Raised when a cassette does not contain the request we want.""" + pass diff --git a/lib/vcr/filters.py b/lib/vcr/filters.py new file mode 100644 index 0000000000..bd7e6c6518 --- /dev/null +++ b/lib/vcr/filters.py @@ -0,0 +1,163 @@ +from six import BytesIO, text_type +from six.moves.urllib.parse import urlparse, urlencode, urlunparse +import copy +import json +import zlib + +from .util import CaseInsensitiveDict + + +def replace_headers(request, replacements): + """ + Replace headers in request according to replacements. The replacements + should be a list of (key, value) pairs where the value can be any of: + 1. A simple replacement string value. + 2. None to remove the given header. + 3. A callable which accepts (key, value, request) and returns a string + value or None. + """ + new_headers = request.headers.copy() + for k, rv in replacements: + if k in new_headers: + ov = new_headers.pop(k) + if callable(rv): + rv = rv(key=k, value=ov, request=request) + if rv is not None: + new_headers[k] = rv + request.headers = new_headers + return request + + +def remove_headers(request, headers_to_remove): + """ + Wrap replace_headers() for API backward compatibility. + """ + replacements = [(k, None) for k in headers_to_remove] + return replace_headers(request, replacements) + + +def replace_query_parameters(request, replacements): + """ + Replace query parameters in request according to replacements. The + replacements should be a list of (key, value) pairs where the value can be + any of: + 1. A simple replacement string value. + 2. None to remove the given header. + 3. A callable which accepts (key, value, request) and returns a string + value or None. + """ + query = request.query + new_query = [] + replacements = dict(replacements) + for k, ov in query: + if k not in replacements: + new_query.append((k, ov)) + else: + rv = replacements[k] + if callable(rv): + rv = rv(key=k, value=ov, request=request) + if rv is not None: + new_query.append((k, rv)) + uri_parts = list(urlparse(request.uri)) + uri_parts[4] = urlencode(new_query) + request.uri = urlunparse(uri_parts) + return request + + +def remove_query_parameters(request, query_parameters_to_remove): + """ + Wrap replace_query_parameters() for API backward compatibility. + """ + replacements = [(k, None) for k in query_parameters_to_remove] + return replace_query_parameters(request, replacements) + + +def replace_post_data_parameters(request, replacements): + """ + Replace post data in request--either form data or json--according to + replacements. The replacements should be a list of (key, value) pairs where + the value can be any of: + 1. A simple replacement string value. + 2. None to remove the given header. + 3. A callable which accepts (key, value, request) and returns a string + value or None. + """ + replacements = dict(replacements) + if request.method == 'POST' and not isinstance(request.body, BytesIO): + if request.headers.get('Content-Type') == 'application/json': + json_data = json.loads(request.body.decode('utf-8')) + for k, rv in replacements.items(): + if k in json_data: + ov = json_data.pop(k) + if callable(rv): + rv = rv(key=k, value=ov, request=request) + if rv is not None: + json_data[k] = rv + request.body = json.dumps(json_data).encode('utf-8') + else: + if isinstance(request.body, text_type): + request.body = request.body.encode('utf-8') + splits = [p.partition(b'=') for p in request.body.split(b'&')] + new_splits = [] + for k, sep, ov in splits: + if sep is None: + new_splits.append((k, sep, ov)) + else: + rk = k.decode('utf-8') + if rk not in replacements: + new_splits.append((k, sep, ov)) + else: + rv = replacements[rk] + if callable(rv): + rv = rv(key=rk, value=ov.decode('utf-8'), + request=request) + if rv is not None: + new_splits.append((k, sep, rv.encode('utf-8'))) + request.body = b'&'.join(k if sep is None else b''.join([k, sep, v]) + for k, sep, v in new_splits) + return request + + +def remove_post_data_parameters(request, post_data_parameters_to_remove): + """ + Wrap replace_post_data_parameters() for API backward compatibility. + """ + replacements = [(k, None) for k in post_data_parameters_to_remove] + return replace_post_data_parameters(request, replacements) + + +def decode_response(response): + """ + If the response is compressed with gzip or deflate: + 1. decompress the response body + 2. delete the content-encoding header + 3. update content-length header to decompressed length + """ + def is_compressed(headers): + encoding = headers.get('content-encoding', []) + return encoding and encoding[0] in ('gzip', 'deflate') + + def decompress_body(body, encoding): + """Returns decompressed body according to encoding using zlib. + to (de-)compress gzip format, use wbits = zlib.MAX_WBITS | 16 + """ + if encoding == 'gzip': + return zlib.decompress(body, zlib.MAX_WBITS | 16) + else: # encoding == 'deflate' + return zlib.decompress(body) + + # Deepcopy here in case `headers` contain objects that could + # be mutated by a shallow copy and corrupt the real response. + response = copy.deepcopy(response) + headers = CaseInsensitiveDict(response['headers']) + if is_compressed(headers): + encoding = headers['content-encoding'][0] + headers['content-encoding'].remove(encoding) + if not headers['content-encoding']: + del headers['content-encoding'] + + new_body = decompress_body(response['body']['string'], encoding) + response['body']['string'] = new_body + headers['content-length'] = [str(len(new_body))] + response['headers'] = dict(headers) + return response diff --git a/lib/vcr/matchers.py b/lib/vcr/matchers.py new file mode 100644 index 0000000000..8fe334e497 --- /dev/null +++ b/lib/vcr/matchers.py @@ -0,0 +1,101 @@ +import json +from six.moves import urllib, xmlrpc_client +from .util import read_body +import logging + + +log = logging.getLogger(__name__) + + +def method(r1, r2): + return r1.method == r2.method + + +def uri(r1, r2): + return r1.uri == r2.uri + + +def host(r1, r2): + return r1.host == r2.host + + +def scheme(r1, r2): + return r1.scheme == r2.scheme + + +def port(r1, r2): + return r1.port == r2.port + + +def path(r1, r2): + return r1.path == r2.path + + +def query(r1, r2): + return r1.query == r2.query + + +def raw_body(r1, r2): + return read_body(r1) == read_body(r2) + + +def _header_checker(value, header='Content-Type'): + def checker(headers): + return value in headers.get(header, '').lower() + return checker + + +def _transform_json(body): + # Request body is always a byte string, but json.loads() wants a text + # string. RFC 7159 says the default encoding is UTF-8 (although UTF-16 + # and UTF-32 are also allowed: hmmmmm). + if body: + return json.loads(body.decode('utf-8')) + + +_xml_header_checker = _header_checker('text/xml') +_xmlrpc_header_checker = _header_checker('xmlrpc', header='User-Agent') +_checker_transformer_pairs = ( + (_header_checker('application/x-www-form-urlencoded'), urllib.parse.parse_qs), + (_header_checker('application/json'), _transform_json), + (lambda request: _xml_header_checker(request) and _xmlrpc_header_checker(request), xmlrpc_client.loads), +) + + +def _identity(x): + return x + + +def _get_transformer(request): + for checker, transformer in _checker_transformer_pairs: + if checker(request.headers): + return transformer + else: + return _identity + + +def body(r1, r2): + transformer = _get_transformer(r1) + r2_transformer = _get_transformer(r2) + if transformer != r2_transformer: + transformer = _identity + return transformer(read_body(r1)) == transformer(read_body(r2)) + + +def headers(r1, r2): + return r1.headers == r2.headers + + +def _log_matches(r1, r2, matches): + differences = [m for m in matches if not m[0]] + if differences: + log.debug( + "Requests {0} and {1} differ according to " + "the following matchers: {2}".format(r1, r2, differences) + ) + + +def requests_match(r1, r2, matchers): + matches = [(m(r1, r2), m) for m in matchers] + _log_matches(r1, r2, matches) + return all([m[0] for m in matches]) diff --git a/lib/vcr/migration.py b/lib/vcr/migration.py new file mode 100644 index 0000000000..6e30027757 --- /dev/null +++ b/lib/vcr/migration.py @@ -0,0 +1,168 @@ +""" +Migration script for old 'yaml' and 'json' cassettes + +.. warning:: Backup your cassettes files before migration. + +It merges and deletes the request obsolete keys (protocol, host, port, path) +into new 'uri' key. +Usage:: + + python -m vcr.migration PATH + +The PATH can be path to the directory with cassettes or cassette itself +""" + +import json +import os +import shutil +import sys +import tempfile +import yaml + +from .serializers import yamlserializer, jsonserializer +from .serialize import serialize +from . import request +from .stubs.compat import get_httpmessage + +# Use the libYAML versions if possible +try: + from yaml import CLoader as Loader +except ImportError: + from yaml import Loader + + +def preprocess_yaml(cassette): + # this is the hack that makes the whole thing work. The old version used + # to deserialize to Request objects automatically using pyYaml's !!python + # tag system. This made it difficult to deserialize old cassettes on new + # versions. So this just strips the tags before deserializing. + + STRINGS_TO_NUKE = [ + '!!python/object:vcr.request.Request', + '!!python/object/apply:__builtin__.frozenset', + '!!python/object/apply:builtins.frozenset', + ] + for s in STRINGS_TO_NUKE: + cassette = cassette.replace(s, '') + return cassette + + +PARTS = [ + 'protocol', + 'host', + 'port', + 'path', +] + + +def build_uri(**parts): + port = parts['port'] + scheme = parts['protocol'] + default_port = {'https': 443, 'http': 80}[scheme] + parts['port'] = ':{0}'.format(port) if port != default_port else '' + return "{protocol}://{host}{port}{path}".format(**parts) + + +def _migrate(data): + interactions = [] + for item in data: + req = item['request'] + res = item['response'] + uri = dict((k, req.pop(k)) for k in PARTS) + req['uri'] = build_uri(**uri) + # convert headers to dict of lists + headers = req['headers'] + for k in headers: + headers[k] = [headers[k]] + response_headers = {} + for k, v in get_httpmessage( + b"".join(h.encode('utf-8') for h in res['headers']) + ).items(): + response_headers.setdefault(k, []) + response_headers[k].append(v) + res['headers'] = response_headers + interactions.append({'request': req, 'response': res}) + return { + 'requests': [ + request.Request._from_dict(i['request']) for i in interactions + ], + 'responses': [i['response'] for i in interactions], + } + + +def migrate_json(in_fp, out_fp): + data = json.load(in_fp) + if _already_migrated(data): + return False + interactions = _migrate(data) + out_fp.write(serialize(interactions, jsonserializer)) + return True + + +def _list_of_tuples_to_dict(fs): + return dict((k, v) for k, v in fs[0]) + + +def _already_migrated(data): + try: + if data.get('version') == 1: + return True + except AttributeError: + return False + + +def migrate_yml(in_fp, out_fp): + data = yaml.load(preprocess_yaml(in_fp.read()), Loader=Loader) + if _already_migrated(data): + return False + for i in range(len(data)): + data[i]['request']['headers'] = _list_of_tuples_to_dict( + data[i]['request']['headers'] + ) + interactions = _migrate(data) + out_fp.write(serialize(interactions, yamlserializer)) + return True + + +def migrate(file_path, migration_fn): + # because we assume that original files can be reverted + # we will try to copy the content. (os.rename not needed) + with tempfile.TemporaryFile(mode='w+') as out_fp: + with open(file_path, 'r') as in_fp: + if not migration_fn(in_fp, out_fp): + return False + with open(file_path, 'w') as in_fp: + out_fp.seek(0) + shutil.copyfileobj(out_fp, in_fp) + return True + + +def try_migrate(path): + if path.endswith('.json'): + return migrate(path, migrate_json) + elif path.endswith('.yaml') or path.endswith('.yml'): + return migrate(path, migrate_yml) + return False + + +def main(): + if len(sys.argv) != 2: + raise SystemExit("Please provide path to cassettes directory or file. " + "Usage: python -m vcr.migration PATH") + + path = sys.argv[1] + if not os.path.isabs(path): + path = os.path.abspath(path) + files = [path] + if os.path.isdir(path): + files = (os.path.join(root, name) + for (root, dirs, files) in os.walk(path) + for name in files) + for file_path in files: + migrated = try_migrate(file_path) + status = 'OK' if migrated else 'FAIL' + sys.stderr.write("[{0}] {1}\n".format(status, file_path)) + sys.stderr.write("Done.\n") + +if __name__ == '__main__': + main() diff --git a/lib/vcr/patch.py b/lib/vcr/patch.py new file mode 100644 index 0000000000..ac1127a47f --- /dev/null +++ b/lib/vcr/patch.py @@ -0,0 +1,456 @@ +'''Utilities for patching in cassettes''' +import functools +import itertools + +from .compat import contextlib, mock +from .stubs import VCRHTTPConnection, VCRHTTPSConnection +from six.moves import http_client as httplib + + +# Save some of the original types for the purposes of unpatching +_HTTPConnection = httplib.HTTPConnection +_HTTPSConnection = httplib.HTTPSConnection + + +# Try to save the original types for requests +try: + import requests.packages.urllib3.connectionpool as cpool +except ImportError: # pragma: no cover + pass +else: + _VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection + _cpoolHTTPConnection = cpool.HTTPConnection + _cpoolHTTPSConnection = cpool.HTTPSConnection + +# Try to save the original types for boto3 +try: + import botocore.vendored.requests.packages.urllib3.connectionpool as cpool +except ImportError: # pragma: no cover + pass +else: + _Boto3VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection + _cpoolBoto3HTTPConnection = cpool.HTTPConnection + _cpoolBoto3HTTPSConnection = cpool.HTTPSConnection + + +# Try to save the original types for urllib3 +try: + import urllib3 +except ImportError: # pragma: no cover + pass +else: + _VerifiedHTTPSConnection = urllib3.connectionpool.VerifiedHTTPSConnection + + +# Try to save the original types for httplib2 +try: + import httplib2 +except ImportError: # pragma: no cover + pass +else: + _HTTPConnectionWithTimeout = httplib2.HTTPConnectionWithTimeout + _HTTPSConnectionWithTimeout = httplib2.HTTPSConnectionWithTimeout + _SCHEME_TO_CONNECTION = httplib2.SCHEME_TO_CONNECTION + + +# Try to save the original types for boto +try: + import boto.https_connection +except ImportError: # pragma: no cover + pass +else: + _CertValidatingHTTPSConnection = boto.https_connection.CertValidatingHTTPSConnection + + +# Try to save the original types for Tornado +try: + import tornado.simple_httpclient +except ImportError: # pragma: no cover + pass +else: + _SimpleAsyncHTTPClient_fetch_impl = \ + tornado.simple_httpclient.SimpleAsyncHTTPClient.fetch_impl + + +try: + import tornado.curl_httpclient +except ImportError: # pragma: no cover + pass +else: + _CurlAsyncHTTPClient_fetch_impl = \ + tornado.curl_httpclient.CurlAsyncHTTPClient.fetch_impl + +try: + import aiohttp.client +except ImportError: # pragma: no cover + pass +else: + _AiohttpClientSessionRequest = aiohttp.client.ClientSession._request + + +class CassettePatcherBuilder(object): + + def _build_patchers_from_mock_triples_decorator(function): + @functools.wraps(function) + def wrapped(self, *args, **kwargs): + return self._build_patchers_from_mock_triples( + function(self, *args, **kwargs) + ) + return wrapped + + def __init__(self, cassette): + self._cassette = cassette + self._class_to_cassette_subclass = {} + + def build(self): + return itertools.chain( + self._httplib(), self._requests(), self._boto3(), self._urllib3(), + self._httplib2(), self._boto(), self._tornado(), self._aiohttp(), + self._build_patchers_from_mock_triples( + self._cassette.custom_patches + ), + ) + + def _build_patchers_from_mock_triples(self, mock_triples): + for args in mock_triples: + patcher = self._build_patcher(*args) + if patcher: + yield patcher + + def _build_patcher(self, obj, patched_attribute, replacement_class): + if not hasattr(obj, patched_attribute): + return + + return mock.patch.object(obj, patched_attribute, + self._recursively_apply_get_cassette_subclass( + replacement_class)) + + def _recursively_apply_get_cassette_subclass(self, replacement_dict_or_obj): + """One of the subtleties of this class is that it does not directly + replace HTTPSConnection with `VCRRequestsHTTPSConnection`, but a + subclass of the aforementioned class that has the `cassette` + class attribute assigned to `self._cassette`. This behavior is + necessary to properly support nested cassette contexts. + + This function exists to ensure that we use the same class + object (reference) to patch everything that replaces + VCRRequestHTTP[S]Connection, but that we can talk about + patching them with the raw references instead, and without + worrying about exactly where the subclass with the relevant + value for `cassette` is first created. + + The function is recursive because it looks in to dictionaries + and replaces class values at any depth with the subclass + described in the previous paragraph. + """ + if isinstance(replacement_dict_or_obj, dict): + for key, replacement_obj in replacement_dict_or_obj.items(): + replacement_obj = self._recursively_apply_get_cassette_subclass( + replacement_obj) + replacement_dict_or_obj[key] = replacement_obj + return replacement_dict_or_obj + if hasattr(replacement_dict_or_obj, 'cassette'): + replacement_dict_or_obj = self._get_cassette_subclass( + replacement_dict_or_obj) + return replacement_dict_or_obj + + def _get_cassette_subclass(self, klass): + if klass.cassette is not None: + return klass + if klass not in self._class_to_cassette_subclass: + subclass = self._build_cassette_subclass(klass) + self._class_to_cassette_subclass[klass] = subclass + return self._class_to_cassette_subclass[klass] + + def _build_cassette_subclass(self, base_class): + bases = (base_class,) + if not issubclass(base_class, object): # Check for old style class + bases += (object,) + return type('{0}{1}'.format(base_class.__name__, self._cassette._path), + bases, dict(cassette=self._cassette)) + + @_build_patchers_from_mock_triples_decorator + def _httplib(self): + yield httplib, 'HTTPConnection', VCRHTTPConnection + yield httplib, 'HTTPSConnection', VCRHTTPSConnection + + def _requests(self): + try: + import requests.packages.urllib3.connectionpool as cpool + except ImportError: # pragma: no cover + return () + from .stubs import requests_stubs + return self._urllib3_patchers(cpool, requests_stubs) + + def _boto3(self): + try: + import botocore.vendored.requests.packages.urllib3.connectionpool as cpool + except ImportError: # pragma: no cover + return () + from .stubs import boto3_stubs + return self._urllib3_patchers(cpool, boto3_stubs) + + def _patched_get_conn(self, connection_pool_class, connection_class_getter): + get_conn = connection_pool_class._get_conn + + @functools.wraps(get_conn) + def patched_get_conn(pool, timeout=None): + connection = get_conn(pool, timeout) + connection_class = ( + pool.ConnectionCls if hasattr(pool, 'ConnectionCls') + else connection_class_getter()) + # We need to make sure that we are actually providing a + # patched version of the connection class. This might not + # always be the case because the pool keeps previously + # used connections (which might actually be of a different + # class) around. This while loop will terminate because + # eventually the pool will run out of connections. + while not isinstance(connection, connection_class): + connection = get_conn(pool, timeout) + return connection + + return patched_get_conn + + def _patched_new_conn(self, connection_pool_class, connection_remover): + new_conn = connection_pool_class._new_conn + + @functools.wraps(new_conn) + def patched_new_conn(pool): + new_connection = new_conn(pool) + connection_remover.add_connection_to_pool_entry(pool, new_connection) + return new_connection + + return patched_new_conn + + def _urllib3(self): + try: + import urllib3.connectionpool as cpool + except ImportError: # pragma: no cover + return () + from .stubs import urllib3_stubs + return self._urllib3_patchers(cpool, urllib3_stubs) + + @_build_patchers_from_mock_triples_decorator + def _httplib2(self): + try: + import httplib2 as cpool + except ImportError: # pragma: no cover + pass + else: + from .stubs.httplib2_stubs import VCRHTTPConnectionWithTimeout + from .stubs.httplib2_stubs import VCRHTTPSConnectionWithTimeout + + yield cpool, 'HTTPConnectionWithTimeout', VCRHTTPConnectionWithTimeout + yield cpool, 'HTTPSConnectionWithTimeout', VCRHTTPSConnectionWithTimeout + yield cpool, 'SCHEME_TO_CONNECTION', {'http': VCRHTTPConnectionWithTimeout, + 'https': VCRHTTPSConnectionWithTimeout} + + @_build_patchers_from_mock_triples_decorator + def _boto(self): + try: + import boto.https_connection as cpool + except ImportError: # pragma: no cover + pass + else: + from .stubs.boto_stubs import VCRCertValidatingHTTPSConnection + yield cpool, 'CertValidatingHTTPSConnection', VCRCertValidatingHTTPSConnection + + @_build_patchers_from_mock_triples_decorator + def _tornado(self): + try: + import tornado.simple_httpclient as simple + except ImportError: # pragma: no cover + pass + else: + from .stubs.tornado_stubs import vcr_fetch_impl + + new_fetch_impl = vcr_fetch_impl( + self._cassette, _SimpleAsyncHTTPClient_fetch_impl + ) + yield simple.SimpleAsyncHTTPClient, 'fetch_impl', new_fetch_impl + try: + import tornado.curl_httpclient as curl + except ImportError: # pragma: no cover + pass + else: + from .stubs.tornado_stubs import vcr_fetch_impl + + new_fetch_impl = vcr_fetch_impl( + self._cassette, _CurlAsyncHTTPClient_fetch_impl + ) + yield curl.CurlAsyncHTTPClient, 'fetch_impl', new_fetch_impl + + @_build_patchers_from_mock_triples_decorator + def _aiohttp(self): + try: + import aiohttp.client as client + except ImportError: # pragma: no cover + pass + else: + from .stubs.aiohttp_stubs import vcr_request + new_request = vcr_request( + self._cassette, _AiohttpClientSessionRequest + ) + yield client.ClientSession, '_request', new_request + + def _urllib3_patchers(self, cpool, stubs): + http_connection_remover = ConnectionRemover( + self._get_cassette_subclass(stubs.VCRRequestsHTTPConnection) + ) + https_connection_remover = ConnectionRemover( + self._get_cassette_subclass(stubs.VCRRequestsHTTPSConnection) + ) + mock_triples = ( + (cpool, 'VerifiedHTTPSConnection', stubs.VCRRequestsHTTPSConnection), + (cpool, 'VerifiedHTTPSConnection', stubs.VCRRequestsHTTPSConnection), + (cpool, 'HTTPConnection', stubs.VCRRequestsHTTPConnection), + (cpool, 'HTTPSConnection', stubs.VCRRequestsHTTPSConnection), + (cpool, 'is_connection_dropped', mock.Mock(return_value=False)), # Needed on Windows only + (cpool.HTTPConnectionPool, 'ConnectionCls', stubs.VCRRequestsHTTPConnection), + (cpool.HTTPSConnectionPool, 'ConnectionCls', stubs.VCRRequestsHTTPSConnection), + ) + # These handle making sure that sessions only use the + # connections of the appropriate type. + mock_triples += ((cpool.HTTPConnectionPool, '_get_conn', + self._patched_get_conn(cpool.HTTPConnectionPool, + lambda: cpool.HTTPConnection)), + (cpool.HTTPSConnectionPool, '_get_conn', + self._patched_get_conn(cpool.HTTPSConnectionPool, + lambda: cpool.HTTPSConnection)), + (cpool.HTTPConnectionPool, '_new_conn', + self._patched_new_conn(cpool.HTTPConnectionPool, + http_connection_remover)), + (cpool.HTTPSConnectionPool, '_new_conn', + self._patched_new_conn(cpool.HTTPSConnectionPool, + https_connection_remover))) + + return itertools.chain(self._build_patchers_from_mock_triples(mock_triples), + (http_connection_remover, https_connection_remover)) + + +class ConnectionRemover(object): + + def __init__(self, connection_class): + self._connection_class = connection_class + self._connection_pool_to_connections = {} + + def add_connection_to_pool_entry(self, pool, connection): + if isinstance(connection, self._connection_class): + self._connection_pool_to_connections.setdefault(pool, set()).add(connection) + + def remove_connection_to_pool_entry(self, pool, connection): + if isinstance(connection, self._connection_class): + self._connection_pool_to_connections[self._connection_class].remove(connection) + + def __enter__(self): + return self + + def __exit__(self, *args): + for pool, connections in self._connection_pool_to_connections.items(): + readd_connections = [] + while pool.pool and not pool.pool.empty() and connections: + connection = pool.pool.get() + if isinstance(connection, self._connection_class): + connections.remove(connection) + else: + readd_connections.append(connection) + for connection in readd_connections: + pool._put_conn(connection) + + +def reset_patchers(): + yield mock.patch.object(httplib, 'HTTPConnection', _HTTPConnection) + yield mock.patch.object(httplib, 'HTTPSConnection', _HTTPSConnection) + try: + import requests.packages.urllib3.connectionpool as cpool + except ImportError: # pragma: no cover + pass + else: + # unpatch requests v1.x + yield mock.patch.object(cpool, 'VerifiedHTTPSConnection', _VerifiedHTTPSConnection) + yield mock.patch.object(cpool, 'HTTPConnection', _cpoolHTTPConnection) + # unpatch requests v2.x + if hasattr(cpool.HTTPConnectionPool, 'ConnectionCls'): + yield mock.patch.object(cpool.HTTPConnectionPool, 'ConnectionCls', + _cpoolHTTPConnection) + yield mock.patch.object(cpool.HTTPSConnectionPool, 'ConnectionCls', + _cpoolHTTPSConnection) + + if hasattr(cpool, 'HTTPSConnection'): + yield mock.patch.object(cpool, 'HTTPSConnection', _cpoolHTTPSConnection) + + try: + import urllib3.connectionpool as cpool + except ImportError: # pragma: no cover + pass + else: + yield mock.patch.object(cpool, 'VerifiedHTTPSConnection', _VerifiedHTTPSConnection) + yield mock.patch.object(cpool, 'HTTPConnection', _HTTPConnection) + yield mock.patch.object(cpool, 'HTTPSConnection', _HTTPSConnection) + if hasattr(cpool.HTTPConnectionPool, 'ConnectionCls'): + yield mock.patch.object(cpool.HTTPConnectionPool, 'ConnectionCls', _HTTPConnection) + yield mock.patch.object(cpool.HTTPSConnectionPool, 'ConnectionCls', _HTTPSConnection) + + try: + import botocore.vendored.requests.packages.urllib3.connectionpool as cpool + except ImportError: # pragma: no cover + pass + else: + # unpatch requests v1.x + yield mock.patch.object(cpool, 'VerifiedHTTPSConnection', _Boto3VerifiedHTTPSConnection) + yield mock.patch.object(cpool, 'HTTPConnection', _cpoolBoto3HTTPConnection) + # unpatch requests v2.x + if hasattr(cpool.HTTPConnectionPool, 'ConnectionCls'): + yield mock.patch.object(cpool.HTTPConnectionPool, 'ConnectionCls', + _cpoolBoto3HTTPConnection) + yield mock.patch.object(cpool.HTTPSConnectionPool, 'ConnectionCls', + _cpoolBoto3HTTPSConnection) + + if hasattr(cpool, 'HTTPSConnection'): + yield mock.patch.object(cpool, 'HTTPSConnection', _cpoolBoto3HTTPSConnection) + + try: + import httplib2 as cpool + except ImportError: # pragma: no cover + pass + else: + yield mock.patch.object(cpool, 'HTTPConnectionWithTimeout', _HTTPConnectionWithTimeout) + yield mock.patch.object(cpool, 'HTTPSConnectionWithTimeout', _HTTPSConnectionWithTimeout) + yield mock.patch.object(cpool, 'SCHEME_TO_CONNECTION', _SCHEME_TO_CONNECTION) + + try: + import boto.https_connection as cpool + except ImportError: # pragma: no cover + pass + else: + yield mock.patch.object(cpool, 'CertValidatingHTTPSConnection', + _CertValidatingHTTPSConnection) + + try: + import tornado.simple_httpclient as simple + except ImportError: # pragma: no cover + pass + else: + yield mock.patch.object( + simple.SimpleAsyncHTTPClient, + 'fetch_impl', + _SimpleAsyncHTTPClient_fetch_impl, + ) + try: + import tornado.curl_httpclient as curl + except ImportError: # pragma: no cover + pass + else: + yield mock.patch.object( + curl.CurlAsyncHTTPClient, + 'fetch_impl', + _CurlAsyncHTTPClient_fetch_impl, + ) + + +@contextlib.contextmanager +def force_reset(): + with contextlib.ExitStack() as exit_stack: + for patcher in reset_patchers(): + exit_stack.enter_context(patcher) + yield diff --git a/lib/vcr/persist.py b/lib/vcr/persist.py new file mode 100644 index 0000000000..f8b8d2a8c9 --- /dev/null +++ b/lib/vcr/persist.py @@ -0,0 +1,14 @@ +from .persisters.filesystem import FilesystemPersister +from .serialize import serialize, deserialize + + +def load_cassette(cassette_path, serializer): + with open(cassette_path) as f: + cassette_content = f.read() + cassette = deserialize(cassette_content, serializer) + return cassette + + +def save_cassette(cassette_path, cassette_dict, serializer): + data = serialize(cassette_dict, serializer) + FilesystemPersister.write(cassette_path, data) diff --git a/lib/vcr/persisters/__init__.py b/lib/vcr/persisters/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/vcr/persisters/filesystem.py b/lib/vcr/persisters/filesystem.py new file mode 100644 index 0000000000..884d891129 --- /dev/null +++ b/lib/vcr/persisters/filesystem.py @@ -0,0 +1,11 @@ +import os + + +class FilesystemPersister(object): + @classmethod + def write(cls, cassette_path, data): + dirname, filename = os.path.split(cassette_path) + if dirname and not os.path.exists(dirname): + os.makedirs(dirname) + with open(cassette_path, 'w') as f: + f.write(data) diff --git a/lib/vcr/request.py b/lib/vcr/request.py new file mode 100644 index 0000000000..63e451e584 --- /dev/null +++ b/lib/vcr/request.py @@ -0,0 +1,131 @@ +import warnings +from six import BytesIO, text_type +from six.moves.urllib.parse import urlparse, parse_qsl +from .util import CaseInsensitiveDict + + +class Request(object): + """ + VCR's representation of a request. + """ + + def __init__(self, method, uri, body, headers): + self.method = method + self.uri = uri + self._was_file = hasattr(body, 'read') + if self._was_file: + self.body = body.read() + else: + self.body = body + self.headers = headers + + @property + def headers(self): + return self._headers + + @headers.setter + def headers(self, value): + if not isinstance(value, HeadersDict): + value = HeadersDict(value) + self._headers = value + + @property + def body(self): + return BytesIO(self._body) if self._was_file else self._body + + @body.setter + def body(self, value): + if isinstance(value, text_type): + value = value.encode('utf-8') + self._body = value + + def add_header(self, key, value): + warnings.warn("Request.add_header is deprecated. " + "Please assign to request.headers instead.", + DeprecationWarning) + self.headers[key] = value + + @property + def scheme(self): + return urlparse(self.uri).scheme + + @property + def host(self): + return urlparse(self.uri).hostname + + @property + def port(self): + parse_uri = urlparse(self.uri) + port = parse_uri.port + if port is None: + port = {'https': 443, 'http': 80}[parse_uri.scheme] + return port + + @property + def path(self): + return urlparse(self.uri).path + + @property + def query(self): + q = urlparse(self.uri).query + return sorted(parse_qsl(q)) + + # alias for backwards compatibility + @property + def url(self): + return self.uri + + # alias for backwards compatibility + @property + def protocol(self): + return self.scheme + + def __str__(self): + return "".format(self.method, self.uri) + + def __repr__(self): + return self.__str__() + + def _to_dict(self): + return { + 'method': self.method, + 'uri': self.uri, + 'body': self.body, + 'headers': dict(((k, [v]) for k, v in self.headers.items())), + } + + @classmethod + def _from_dict(cls, dct): + return Request(**dct) + + +class HeadersDict(CaseInsensitiveDict): + """ + There is a weird quirk in HTTP. You can send the same header twice. For + this reason, headers are represented by a dict, with lists as the values. + However, it appears that HTTPlib is completely incapable of sending the + same header twice. This puts me in a weird position: I want to be able to + accurately represent HTTP headers in cassettes, but I don't want the extra + step of always having to do [0] in the general case, i.e. + request.headers['key'][0] + + In addition, some servers sometimes send the same header more than once, + and httplib *can* deal with this situation. + + Futhermore, I wanted to keep the request and response cassette format as + similar as possible. + + For this reason, in cassettes I keep a dict with lists as keys, but once + deserialized into VCR, I keep them as plain, naked dicts. + """ + + def __setitem__(self, key, value): + if isinstance(value, (tuple, list)): + value = value[0] + + # Preserve the case from the first time this key was set. + old = self._store.get(key.lower()) + if old: + key = old[0] + + super(HeadersDict, self).__setitem__(key, value) diff --git a/lib/vcr/serialize.py b/lib/vcr/serialize.py new file mode 100644 index 0000000000..a9c04d667f --- /dev/null +++ b/lib/vcr/serialize.py @@ -0,0 +1,63 @@ +from vcr.serializers import compat +from vcr.request import Request +import yaml + +# version 1 cassettes started with VCR 1.0.x. +# Before 1.0.x, there was no versioning. +CASSETTE_FORMAT_VERSION = 1 + +""" +Just a general note on the serialization philosophy here: +I prefer cassettes to be human-readable if possible. Yaml serializes +bytestrings to !!binary, which isn't readable, so I would like to serialize to +strings and from strings, which yaml will encode as utf-8 automatically. +All the internal HTTP stuff expects bytestrings, so this whole serialization +process feels backwards. + +Serializing: bytestring -> string (yaml persists to utf-8) +Deserializing: string (yaml converts from utf-8) -> bytestring +""" + + +def _looks_like_an_old_cassette(data): + return isinstance(data, list) and len(data) and 'request' in data[0] + + +def _warn_about_old_cassette_format(): + raise ValueError( + "Your cassette files were generated in an older version " + "of VCR. Delete your cassettes or run the migration script." + "See http://git.io/mHhLBg for more details." + ) + + +def deserialize(cassette_string, serializer): + try: + data = serializer.deserialize(cassette_string) + # Old cassettes used to use yaml object thingy so I have to + # check for some fairly stupid exceptions here + except (ImportError, yaml.constructor.ConstructorError): + _warn_about_old_cassette_format() + if _looks_like_an_old_cassette(data): + _warn_about_old_cassette_format() + + requests = [Request._from_dict(r['request']) for r in data['interactions']] + responses = [ + compat.convert_to_bytes(r['response']) for r in data['interactions'] + ] + return requests, responses + + +def serialize(cassette_dict, serializer): + interactions = ([{ + 'request': compat.convert_to_unicode(request._to_dict()), + 'response': compat.convert_to_unicode(response), + } for request, response in zip( + cassette_dict['requests'], + cassette_dict['responses'], + )]) + data = { + 'version': CASSETTE_FORMAT_VERSION, + 'interactions': interactions, + } + return serializer.serialize(data) diff --git a/lib/vcr/serializers/__init__.py b/lib/vcr/serializers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/vcr/serializers/compat.py b/lib/vcr/serializers/compat.py new file mode 100644 index 0000000000..8364997529 --- /dev/null +++ b/lib/vcr/serializers/compat.py @@ -0,0 +1,79 @@ +import six + + +def convert_to_bytes(resp): + resp = convert_body_to_bytes(resp) + return resp + + +def convert_to_unicode(resp): + resp = convert_body_to_unicode(resp) + return resp + + +def convert_body_to_bytes(resp): + """ + If the request body is a string, encode it to bytes (for python3 support) + + By default yaml serializes to utf-8 encoded bytestrings. + When this cassette is loaded by python3, it's automatically decoded + into unicode strings. This makes sure that it stays a bytestring, since + that's what all the internal httplib machinery is expecting. + + For more info on py3 yaml: + http://pyyaml.org/wiki/PyYAMLDocumentation#Python3support + """ + try: + if resp['body']['string'] is not None and not isinstance(resp['body']['string'], six.binary_type): + resp['body']['string'] = resp['body']['string'].encode('utf-8') + except (KeyError, TypeError, UnicodeEncodeError): + # The thing we were converting either wasn't a dictionary or didn't + # have the keys we were expecting. Some of the tests just serialize + # and deserialize a string. + + # Also, sometimes the thing actually is binary, so if you can't encode + # it, just give up. + pass + return resp + + +def _convert_string_to_unicode(string): + """ + If the string is bytes, decode it to a string (for python3 support) + """ + result = string + + try: + if string is not None and not isinstance(string, six.text_type): + result = string.decode('utf-8') + except (TypeError, UnicodeDecodeError, AttributeError): + # Sometimes the string actually is binary or StringIO object, + # so if you can't decode it, just give up. + pass + + return result + + +def convert_body_to_unicode(resp): + """ + If the request or responses body is bytes, decode it to a string + (for python3 support) + """ + if type(resp) is not dict: + # Some of the tests just serialize and deserialize a string. + return _convert_string_to_unicode(resp) + else: + body = resp.get('body') + + if body is not None: + try: + body['string'] = _convert_string_to_unicode( + body['string'] + ) + except (KeyError, TypeError, AttributeError): + # The thing we were converting either wasn't a dictionary or + # didn't have the keys we were expecting. + # For example request object has no 'string' key. + resp['body'] = _convert_string_to_unicode(body) + + return resp diff --git a/lib/vcr/serializers/jsonserializer.py b/lib/vcr/serializers/jsonserializer.py new file mode 100644 index 0000000000..3378c27fab --- /dev/null +++ b/lib/vcr/serializers/jsonserializer.py @@ -0,0 +1,29 @@ +try: + import simplejson as json +except ImportError: + import json + + +def deserialize(cassette_string): + return json.loads(cassette_string) + + +def serialize(cassette_dict): + error_message = ( + "Does this HTTP interaction contain binary data? " + "If so, use a different serializer (like the yaml serializer) " + "for this request?" + ) + + try: + return json.dumps(cassette_dict, indent=4) + except UnicodeDecodeError as original: # py2 + raise UnicodeDecodeError( + original.encoding, + b"Error serializing cassette to JSON", + original.start, + original.end, + original.args[-1] + error_message + ) + except TypeError as original: # py3 + raise TypeError(error_message) diff --git a/lib/vcr/serializers/yamlserializer.py b/lib/vcr/serializers/yamlserializer.py new file mode 100644 index 0000000000..0d6afc96c0 --- /dev/null +++ b/lib/vcr/serializers/yamlserializer.py @@ -0,0 +1,15 @@ +import yaml + +# Use the libYAML versions if possible +try: + from yaml import CLoader as Loader, CDumper as Dumper +except ImportError: + from yaml import Loader, Dumper + + +def deserialize(cassette_string): + return yaml.load(cassette_string, Loader=Loader) + + +def serialize(cassette_dict): + return yaml.dump(cassette_dict, Dumper=Dumper) diff --git a/lib/vcr/stubs/__init__.py b/lib/vcr/stubs/__init__.py new file mode 100644 index 0000000000..a703ff4372 --- /dev/null +++ b/lib/vcr/stubs/__init__.py @@ -0,0 +1,346 @@ +'''Stubs for patching HTTP and HTTPS requests''' + +import logging +import six +from six.moves.http_client import ( + HTTPConnection, + HTTPSConnection, + HTTPResponse, +) +from six import BytesIO +from vcr.request import Request +from vcr.errors import CannotOverwriteExistingCassetteException +from . import compat + +log = logging.getLogger(__name__) + + +class VCRFakeSocket(object): + """ + A socket that doesn't do anything! + Used when playing back casssettes, when there + is no actual open socket. + """ + + def close(self): + pass + + def settimeout(self, *args, **kwargs): + pass + + def fileno(self): + """ + This is kinda crappy. requests will watch + this descriptor and make sure it's not closed. + Return file descriptor 0 since that's stdin. + """ + return 0 # wonder how bad this is.... + + +def parse_headers(header_list): + """ + Convert headers from our serialized dict with lists for keys to a + HTTPMessage + """ + header_string = b"" + for key, values in header_list.items(): + for v in values: + header_string += \ + key.encode('utf-8') + b":" + v.encode('utf-8') + b"\r\n" + return compat.get_httpmessage(header_string) + + +def serialize_headers(response): + out = {} + for key, values in compat.get_headers(response.msg): + out.setdefault(key, []) + out[key].extend(values) + return out + + +class VCRHTTPResponse(HTTPResponse): + """ + Stub reponse class that gets returned instead of a HTTPResponse + """ + def __init__(self, recorded_response): + self.recorded_response = recorded_response + self.reason = recorded_response['status']['message'] + self.status = self.code = recorded_response['status']['code'] + self.version = None + self._content = BytesIO(self.recorded_response['body']['string']) + self._closed = False + + headers = self.recorded_response['headers'] + # Since we are loading a response that has already been serialized, our + # response is no longer chunked. That means we don't want any + # libraries trying to process a chunked response. By removing the + # transfer-encoding: chunked header, this should cause the downstream + # libraries to process this as a non-chunked response. + te_key = [h for h in headers.keys() if h.upper() == 'TRANSFER-ENCODING'] + if te_key: + del headers[te_key[0]] + self.headers = self.msg = parse_headers(headers) + + self.length = compat.get_header(self.msg, 'content-length') or None + + @property + def closed(self): + # in python3, I can't change the value of self.closed. So I' + # twiddling self._closed and using this property to shadow the real + # self.closed from the superclas + return self._closed + + def read(self, *args, **kwargs): + return self._content.read(*args, **kwargs) + + def readline(self, *args, **kwargs): + return self._content.readline(*args, **kwargs) + + def close(self): + self._closed = True + return True + + def getcode(self): + return self.status + + def isclosed(self): + return self.closed + + def info(self): + return parse_headers(self.recorded_response['headers']) + + def getheaders(self): + message = parse_headers(self.recorded_response['headers']) + return list(compat.get_header_items(message)) + + def getheader(self, header, default=None): + values = [v for (k, v) in self.getheaders() if k.lower() == header.lower()] + + if values: + return ', '.join(values) + else: + return default + + +class VCRConnection(object): + # A reference to the cassette that's currently being patched in + cassette = None + + def _port_postfix(self): + """ + Returns empty string for the default port and ':port' otherwise + """ + port = self.real_connection.port + default_port = {'https': 443, 'http': 80}[self._protocol] + return ':{0}'.format(port) if port != default_port else '' + + def _uri(self, url): + """Returns request absolute URI""" + uri = "{0}://{1}{2}{3}".format( + self._protocol, + self.real_connection.host, + self._port_postfix(), + url, + ) + return uri + + def _url(self, uri): + """Returns request selector url from absolute URI""" + prefix = "{0}://{1}{2}".format( + self._protocol, + self.real_connection.host, + self._port_postfix(), + ) + return uri.replace(prefix, '', 1) + + def request(self, method, url, body=None, headers=None): + '''Persist the request metadata in self._vcr_request''' + self._vcr_request = Request( + method=method, + uri=self._uri(url), + body=body, + headers=headers or {} + ) + log.debug('Got {0}'.format(self._vcr_request)) + + # Note: The request may not actually be finished at this point, so + # I'm not sending the actual request until getresponse(). This + # allows me to compare the entire length of the response to see if it + # exists in the cassette. + + def putrequest(self, method, url, *args, **kwargs): + """ + httplib gives you more than one way to do it. This is a way + to start building up a request. Usually followed by a bunch + of putheader() calls. + """ + self._vcr_request = Request( + method=method, + uri=self._uri(url), + body="", + headers={} + ) + log.debug('Got {0}'.format(self._vcr_request)) + + def putheader(self, header, *values): + self._vcr_request.headers[header] = values + + def send(self, data): + ''' + This method is called after request(), to add additional data to the + body of the request. So if that happens, let's just append the data + onto the most recent request in the cassette. + ''' + self._vcr_request.body = self._vcr_request.body + data \ + if self._vcr_request.body else data + + def close(self): + # Note: the real connection will only close if it's open, so + # no need to check that here. + self.real_connection.close() + + def endheaders(self, message_body=None): + """ + Normally, this would actually send the request to the server. + We are not sending the request until getting the response, + so bypass this part and just append the message body, if any. + """ + if message_body is not None: + self._vcr_request.body = message_body + + def getresponse(self, _=False, **kwargs): + '''Retrieve the response''' + # Check to see if the cassette has a response for this request. If so, + # then return it + if self.cassette.can_play_response_for(self._vcr_request): + log.info( + "Playing response for {0} from cassette".format( + self._vcr_request + ) + ) + response = self.cassette.play_response(self._vcr_request) + return VCRHTTPResponse(response) + else: + if self.cassette.write_protected and self.cassette.filter_request( + self._vcr_request + ): + raise CannotOverwriteExistingCassetteException( + "No match for the request (%r) was found. " + "Can't overwrite existing cassette (%r) in " + "your current record mode (%r)." + % (self._vcr_request, self.cassette._path, + self.cassette.record_mode) + ) + + # Otherwise, we should send the request, then get the response + # and return it. + + log.info( + "{0} not in cassette, sending to real server".format( + self._vcr_request + ) + ) + # This is imported here to avoid circular import. + # TODO(@IvanMalison): Refactor to allow normal import. + from vcr.patch import force_reset + with force_reset(): + self.real_connection.request( + method=self._vcr_request.method, + url=self._url(self._vcr_request.uri), + body=self._vcr_request.body, + headers=self._vcr_request.headers, + ) + + # get the response + response = self.real_connection.getresponse() + + # put the response into the cassette + response = { + 'status': { + 'code': response.status, + 'message': response.reason + }, + 'headers': serialize_headers(response), + 'body': {'string': response.read()}, + } + self.cassette.append(self._vcr_request, response) + return VCRHTTPResponse(response) + + def set_debuglevel(self, *args, **kwargs): + self.real_connection.set_debuglevel(*args, **kwargs) + + def connect(self, *args, **kwargs): + """ + httplib2 uses this. Connects to the server I'm assuming. + + Only pass to the baseclass if we don't have a recorded response + and are not write-protected. + """ + + if hasattr(self, '_vcr_request') and \ + self.cassette.can_play_response_for(self._vcr_request): + # We already have a response we are going to play, don't + # actually connect + return + + if self.cassette.write_protected: + # Cassette is write-protected, don't actually connect + return + + return self.real_connection.connect(*args, **kwargs) + + @property + def sock(self): + if self.real_connection.sock: + return self.real_connection.sock + return VCRFakeSocket() + + @sock.setter + def sock(self, value): + if self.real_connection.sock: + self.real_connection.sock = value + + def __init__(self, *args, **kwargs): + if six.PY3: + kwargs.pop('strict', None) # apparently this is gone in py3 + + # need to temporarily reset here because the real connection + # inherits from the thing that we are mocking out. Take out + # the reset if you want to see what I mean :) + from vcr.patch import force_reset + with force_reset(): + self.real_connection = self._baseclass(*args, **kwargs) + + def __setattr__(self, name, value): + """ + We need to define this because any attributes that are set on the + VCRConnection need to be propogated to the real connection. + + For example, urllib3 will set certain attributes on the connection, + such as 'ssl_version'. These attributes need to get set on the real + connection to have the correct and expected behavior. + + TODO: Separately setting the attribute on the two instances is not + ideal. We should switch to a proxying implementation. + """ + try: + setattr(self.real_connection, name, value) + except AttributeError: + # raised if real_connection has not been set yet, such as when + # we're setting the real_connection itself for the first time + pass + + super(VCRConnection, self).__setattr__(name, value) + + +class VCRHTTPConnection(VCRConnection): + '''A Mocked class for HTTP requests''' + _baseclass = HTTPConnection + _protocol = 'http' + + +class VCRHTTPSConnection(VCRConnection): + '''A Mocked class for HTTPS requests''' + _baseclass = HTTPSConnection + _protocol = 'https' + is_verified = True diff --git a/lib/vcr/stubs/aiohttp_stubs/__init__.py b/lib/vcr/stubs/aiohttp_stubs/__init__.py new file mode 100644 index 0000000000..5730d3bb35 --- /dev/null +++ b/lib/vcr/stubs/aiohttp_stubs/__init__.py @@ -0,0 +1,100 @@ +'''Stubs for aiohttp HTTP clients''' +from __future__ import absolute_import + +import asyncio +import functools +import json +import urllib + +from aiohttp import ClientResponse, helpers + +from vcr.request import Request + + +class MockClientResponse(ClientResponse): + # TODO: get encoding from header + @asyncio.coroutine + def json(self, *, encoding='utf-8', loads=json.loads): # NOQA: E999 + return loads(self.content.decode(encoding)) + + @asyncio.coroutine + def text(self, encoding='utf-8'): + return self.content.decode(encoding) + + @asyncio.coroutine + def release(self): + pass + + +def vcr_request(cassette, real_request): + @functools.wraps(real_request) + @asyncio.coroutine + def new_request(self, method, url, **kwargs): + headers = kwargs.get('headers') + headers = self._prepare_headers(headers) + data = kwargs.get('data') + params = kwargs.get('params') + + # INFO: Query join logic from + # https://github.com/KeepSafe/aiohttp/blob/b3eeedbc2f515ec2aa6e87ba129524c17b6fe4e3/aiohttp/client_reqrep.py#L167-L188 + scheme, netloc, path, query, fragment = urllib.parse.urlsplit(url) + if not path: + path = '/' + + # NOTICE: Not sure this is applicable here: + # if isinstance(params, collections.Mapping): + # params = list(params.items()) + + if params: + if not isinstance(params, str): + params = urllib.parse.urlencode(params) + if query: + query = '%s&%s' % (query, params) + else: + query = params + + request_path = urllib.parse.urlunsplit(('', '', helpers.requote_uri(path), + query, fragment)) + request_url = urllib.parse.urlunsplit( + (scheme, netloc, request_path, '', '')) + + vcr_request = Request(method, request_url, data, headers) + + if cassette.can_play_response_for(vcr_request): + vcr_response = cassette.play_response(vcr_request) + + response = MockClientResponse(method, vcr_response.get('url')) + response.status = vcr_response['status']['code'] + response.content = vcr_response['body']['string'] + response.reason = vcr_response['status']['message'] + response.headers = vcr_response['headers'] + + response.close() + return response + + if cassette.write_protected and cassette.filter_request(vcr_request): + response = MockClientResponse(method, url) + response.status = 599 + msg = ("No match for the request {!r} was found. Can't overwrite " + "existing cassette {!r} in your current record mode {!r}.") + msg = msg.format(vcr_request, cassette._path, cassette.record_mode) + response.content = msg.encode() + response.close() + return response + + response = yield from real_request(self, method, url, **kwargs) # NOQA: E999 + + vcr_response = { + 'status': { + 'code': response.status, + 'message': response.reason, + }, + 'headers': dict(response.headers), + 'body': {'string': (yield from response.text())}, # NOQA: E999 + 'url': response.url, + } + cassette.append(vcr_request, vcr_response) + + return response + + return new_request diff --git a/lib/vcr/stubs/boto3_stubs.py b/lib/vcr/stubs/boto3_stubs.py new file mode 100644 index 0000000000..93a7bdb394 --- /dev/null +++ b/lib/vcr/stubs/boto3_stubs.py @@ -0,0 +1,15 @@ +'''Stubs for boto3''' + +from botocore.vendored.requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection +from ..stubs import VCRHTTPConnection, VCRHTTPSConnection + +# urllib3 defines its own HTTPConnection classes, which boto3 goes ahead and assumes +# you're using. It includes some polyfills for newer features missing in older pythons. + + +class VCRRequestsHTTPConnection(VCRHTTPConnection, HTTPConnection): + _baseclass = HTTPConnection + + +class VCRRequestsHTTPSConnection(VCRHTTPSConnection, VerifiedHTTPSConnection): + _baseclass = VerifiedHTTPSConnection diff --git a/lib/vcr/stubs/boto_stubs.py b/lib/vcr/stubs/boto_stubs.py new file mode 100644 index 0000000000..af0277ab23 --- /dev/null +++ b/lib/vcr/stubs/boto_stubs.py @@ -0,0 +1,8 @@ +'''Stubs for boto''' + +from boto.https_connection import CertValidatingHTTPSConnection +from ..stubs import VCRHTTPSConnection + + +class VCRCertValidatingHTTPSConnection(VCRHTTPSConnection): + _baseclass = CertValidatingHTTPSConnection diff --git a/lib/vcr/stubs/compat.py b/lib/vcr/stubs/compat.py new file mode 100644 index 0000000000..d640ac4ad0 --- /dev/null +++ b/lib/vcr/stubs/compat.py @@ -0,0 +1,43 @@ +import six +from six import BytesIO +from six.moves.http_client import HTTPMessage +try: + import http.client +except ImportError: + pass + + +""" +The python3 http.client api moved some stuff around, so this is an abstraction +layer that tries to cope with this move. +""" + + +def get_header(message, name): + if six.PY3: + return message.getallmatchingheaders(name) + else: + return message.getheader(name) + + +def get_header_items(message): + for (key, values) in get_headers(message): + for value in values: + yield key, value + + +def get_headers(message): + for key in set(message.keys()): + if six.PY3: + yield key, message.get_all(key) + else: + yield key, message.getheaders(key) + + +def get_httpmessage(headers): + if six.PY3: + return http.client.parse_headers(BytesIO(headers)) + msg = HTTPMessage(BytesIO(headers)) + msg.fp.seek(0) + msg.readheaders() + return msg diff --git a/lib/vcr/stubs/httplib2_stubs.py b/lib/vcr/stubs/httplib2_stubs.py new file mode 100644 index 0000000000..b08f3575d8 --- /dev/null +++ b/lib/vcr/stubs/httplib2_stubs.py @@ -0,0 +1,63 @@ +'''Stubs for httplib2''' + +from httplib2 import HTTPConnectionWithTimeout, HTTPSConnectionWithTimeout +from ..stubs import VCRHTTPConnection, VCRHTTPSConnection + + +class VCRHTTPConnectionWithTimeout(VCRHTTPConnection, + HTTPConnectionWithTimeout): + _baseclass = HTTPConnectionWithTimeout + + def __init__(self, *args, **kwargs): + '''I overrode the init because I need to clean kwargs before calling + HTTPConnection.__init__.''' + + # Delete the keyword arguments that HTTPConnection would not recognize + safe_keys = set( + ('host', 'port', 'strict', 'timeout', 'source_address') + ) + unknown_keys = set(kwargs.keys()) - safe_keys + safe_kwargs = kwargs.copy() + for kw in unknown_keys: + del safe_kwargs[kw] + + self.proxy_info = kwargs.pop('proxy_info', None) + VCRHTTPConnection.__init__(self, *args, **safe_kwargs) + self.sock = self.real_connection.sock + + +class VCRHTTPSConnectionWithTimeout(VCRHTTPSConnection, + HTTPSConnectionWithTimeout): + _baseclass = HTTPSConnectionWithTimeout + + def __init__(self, *args, **kwargs): + + # Delete the keyword arguments that HTTPSConnection would not recognize + safe_keys = set(( + 'host', + 'port', + 'key_file', + 'cert_file', + 'strict', + 'timeout', + 'source_address', + 'ca_certs', + )) + unknown_keys = set(kwargs.keys()) - safe_keys + safe_kwargs = kwargs.copy() + for kw in unknown_keys: + del safe_kwargs[kw] + self.proxy_info = kwargs.pop('proxy_info', None) + if 'ca_certs' not in kwargs or kwargs['ca_certs'] is None: + try: + import httplib2 + self.ca_certs = httplib2.CA_CERTS + except ImportError: + self.ca_certs = None + else: + self.ca_certs = kwargs['ca_certs'] + + self.disable_ssl_certificate_validation = kwargs.pop( + 'disable_ssl_certificate_validation', None) + VCRHTTPSConnection.__init__(self, *args, **safe_kwargs) + self.sock = self.real_connection.sock diff --git a/lib/vcr/stubs/requests_stubs.py b/lib/vcr/stubs/requests_stubs.py new file mode 100644 index 0000000000..8cae533bd1 --- /dev/null +++ b/lib/vcr/stubs/requests_stubs.py @@ -0,0 +1,19 @@ +'''Stubs for requests''' + +try: + from requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection +except ImportError: + from urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection + +from ..stubs import VCRHTTPConnection, VCRHTTPSConnection + +# urllib3 defines its own HTTPConnection classes, which requests goes ahead and assumes +# you're using. It includes some polyfills for newer features missing in older pythons. + + +class VCRRequestsHTTPConnection(VCRHTTPConnection, HTTPConnection): + _baseclass = HTTPConnection + + +class VCRRequestsHTTPSConnection(VCRHTTPSConnection, VerifiedHTTPSConnection): + _baseclass = VerifiedHTTPSConnection diff --git a/lib/vcr/stubs/tornado_stubs.py b/lib/vcr/stubs/tornado_stubs.py new file mode 100644 index 0000000000..b6750650fe --- /dev/null +++ b/lib/vcr/stubs/tornado_stubs.py @@ -0,0 +1,107 @@ +'''Stubs for tornado HTTP clients''' +from __future__ import absolute_import + +import functools +from six import BytesIO + +from tornado import httputil +from tornado.httpclient import HTTPResponse + +from vcr.errors import CannotOverwriteExistingCassetteException +from vcr.request import Request + + +def vcr_fetch_impl(cassette, real_fetch_impl): + + @functools.wraps(real_fetch_impl) + def new_fetch_impl(self, request, callback): + headers = request.headers.copy() + if request.user_agent: + headers.setdefault('User-Agent', request.user_agent) + + # TODO body_producer, header_callback, and streaming_callback are not + # yet supported. + + unsupported_call = ( + getattr(request, 'body_producer', None) is not None or + request.header_callback is not None or + request.streaming_callback is not None + ) + if unsupported_call: + response = HTTPResponse( + request, + 599, + error=Exception( + "The request (%s) uses AsyncHTTPClient functionality " + "that is not yet supported by VCR.py. Please make the " + "request outside a VCR.py context." % repr(request) + ), + request_time=self.io_loop.time() - request.start_time, + ) + return callback(response) + + vcr_request = Request( + request.method, + request.url, + request.body, + headers, + ) + + if cassette.can_play_response_for(vcr_request): + vcr_response = cassette.play_response(vcr_request) + headers = httputil.HTTPHeaders() + + recorded_headers = vcr_response['headers'] + if isinstance(recorded_headers, dict): + recorded_headers = recorded_headers.items() + for k, vs in recorded_headers: + for v in vs: + headers.add(k, v) + response = HTTPResponse( + request, + code=vcr_response['status']['code'], + reason=vcr_response['status']['message'], + headers=headers, + buffer=BytesIO(vcr_response['body']['string']), + effective_url=vcr_response.get('url'), + request_time=self.io_loop.time() - request.start_time, + ) + return callback(response) + else: + if cassette.write_protected and cassette.filter_request( + vcr_request + ): + response = HTTPResponse( + request, + 599, + error=CannotOverwriteExistingCassetteException( + "No match for the request (%r) was found. " + "Can't overwrite existing cassette (%r) in " + "your current record mode (%r)." + % (vcr_request, cassette._path, cassette.record_mode) + ), + request_time=self.io_loop.time() - request.start_time, + ) + return callback(response) + + def new_callback(response): + headers = [ + (k, response.headers.get_list(k)) + for k in response.headers.keys() + ] + + vcr_response = { + 'status': { + 'code': response.code, + 'message': response.reason, + }, + 'headers': headers, + 'body': {'string': response.body}, + 'url': response.effective_url, + } + cassette.append(vcr_request, vcr_response) + return callback(response) + + real_fetch_impl(self, request, new_callback) + + return new_fetch_impl diff --git a/lib/vcr/stubs/urllib3_stubs.py b/lib/vcr/stubs/urllib3_stubs.py new file mode 100644 index 0000000000..dff38d1396 --- /dev/null +++ b/lib/vcr/stubs/urllib3_stubs.py @@ -0,0 +1,15 @@ +'''Stubs for urllib3''' + +from urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection +from ..stubs import VCRHTTPConnection, VCRHTTPSConnection + +# urllib3 defines its own HTTPConnection classes. It includes some polyfills +# for newer features missing in older pythons. + + +class VCRRequestsHTTPConnection(VCRHTTPConnection, HTTPConnection): + _baseclass = HTTPConnection + + +class VCRRequestsHTTPSConnection(VCRHTTPSConnection, VerifiedHTTPSConnection): + _baseclass = VerifiedHTTPSConnection diff --git a/lib/vcr/util.py b/lib/vcr/util.py new file mode 100644 index 0000000000..2e6effbc82 --- /dev/null +++ b/lib/vcr/util.py @@ -0,0 +1,124 @@ +import collections +import types + + +# Shamelessly stolen from https://github.com/kennethreitz/requests/blob/master/requests/structures.py +class CaseInsensitiveDict(collections.MutableMapping): + """ + A case-insensitive ``dict``-like object. + Implements all methods and operations of + ``collections.MutableMapping`` as well as dict's ``copy``. Also + provides ``lower_items``. + All keys are expected to be strings. The structure remembers the + case of the last key to be set, and ``iter(instance)``, + ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()`` + will contain case-sensitive keys. However, querying and contains + testing is case insensitive:: + cid = CaseInsensitiveDict() + cid['Accept'] = 'application/json' + cid['aCCEPT'] == 'application/json' # True + list(cid) == ['Accept'] # True + For example, ``headers['content-encoding']`` will return the + value of a ``'Content-Encoding'`` response header, regardless + of how the header name was originally stored. + If the constructor, ``.update``, or equality comparison + operations are given keys that have equal ``.lower()``s, the + behavior is undefined. + """ + def __init__(self, data=None, **kwargs): + self._store = dict() + if data is None: + data = {} + self.update(data, **kwargs) + + def __setitem__(self, key, value): + # Use the lowercased key for lookups, but store the actual + # key alongside the value. + self._store[key.lower()] = (key, value) + + def __getitem__(self, key): + return self._store[key.lower()][1] + + def __delitem__(self, key): + del self._store[key.lower()] + + def __iter__(self): + return (casedkey for casedkey, mappedvalue in self._store.values()) + + def __len__(self): + return len(self._store) + + def lower_items(self): + """Like iteritems(), but with all lowercase keys.""" + return ( + (lowerkey, keyval[1]) + for (lowerkey, keyval) + in self._store.items() + ) + + def __eq__(self, other): + if isinstance(other, collections.Mapping): + other = CaseInsensitiveDict(other) + else: + return NotImplemented + # Compare insensitively + return dict(self.lower_items()) == dict(other.lower_items()) + + # Copy is required + def copy(self): + return CaseInsensitiveDict(self._store.values()) + + def __repr__(self): + return str(dict(self.items())) + + +def partition_dict(predicate, dictionary): + true_dict = {} + false_dict = {} + for key, value in dictionary.items(): + this_dict = true_dict if predicate(key, value) else false_dict + this_dict[key] = value + return true_dict, false_dict + + +def compose(*functions): + def composed(incoming): + res = incoming + for function in reversed(functions): + if function: + res = function(res) + return res + return composed + + +def read_body(request): + if hasattr(request.body, 'read'): + return request.body.read() + return request.body + + +def auto_decorate( + decorator, + predicate=lambda name, value: isinstance(value, types.FunctionType) +): + def maybe_decorate(attribute, value): + if predicate(attribute, value): + value = decorator(value) + return value + + class DecorateAll(type): + + def __setattr__(cls, attribute, value): + return super(DecorateAll, cls).__setattr__( + attribute, maybe_decorate(attribute, value) + ) + + def __new__(cls, name, bases, attributes_dict): + new_attributes_dict = dict( + (attribute, maybe_decorate(attribute, value)) + for attribute, value in attributes_dict.items() + ) + return super(DecorateAll, cls).__new__( + cls, name, bases, new_attributes_dict + ) + return DecorateAll diff --git a/lib/wrapt/__init__.py b/lib/wrapt/__init__.py new file mode 100644 index 0000000000..6e8e5e9ff3 --- /dev/null +++ b/lib/wrapt/__init__.py @@ -0,0 +1,19 @@ +__version_info__ = ('1', '10', '8') +__version__ = '.'.join(__version_info__) + +from .wrappers import (ObjectProxy, CallableObjectProxy, FunctionWrapper, + BoundFunctionWrapper, WeakFunctionProxy, resolve_path, apply_patch, + wrap_object, wrap_object_attribute, function_wrapper, + wrap_function_wrapper, patch_function_wrapper, + transient_function_wrapper) + +from .decorators import (adapter_factory, AdapterFactory, decorator, + synchronized) + +from .importer import (register_post_import_hook, when_imported, + notify_module_loaded, discover_post_import_hooks) + +try: + from inspect import getcallargs +except ImportError: + from .arguments import getcallargs diff --git a/lib/wrapt/_wrappers.c b/lib/wrapt/_wrappers.c new file mode 100644 index 0000000000..9194f540c4 --- /dev/null +++ b/lib/wrapt/_wrappers.c @@ -0,0 +1,2729 @@ +/* ------------------------------------------------------------------------- */ + +#include "Python.h" + +#include "structmember.h" + +#ifndef PyVarObject_HEAD_INIT +#define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size, +#endif + +/* ------------------------------------------------------------------------- */ + +typedef struct { + PyObject_HEAD + + PyObject *dict; + PyObject *wrapped; + PyObject *weakreflist; +} WraptObjectProxyObject; + +PyTypeObject WraptObjectProxy_Type; +PyTypeObject WraptCallableObjectProxy_Type; + +typedef struct { + WraptObjectProxyObject object_proxy; + + PyObject *instance; + PyObject *wrapper; + PyObject *enabled; + PyObject *binding; + PyObject *parent; +} WraptFunctionWrapperObject; + +PyTypeObject WraptFunctionWrapperBase_Type; +PyTypeObject WraptBoundFunctionWrapper_Type; +PyTypeObject WraptFunctionWrapper_Type; + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_new(PyTypeObject *type, + PyObject *args, PyObject *kwds) +{ + WraptObjectProxyObject *self; + + self = (WraptObjectProxyObject *)type->tp_alloc(type, 0); + + if (!self) + return NULL; + + self->dict = PyDict_New(); + self->wrapped = NULL; + self->weakreflist = NULL; + + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_raw_init(WraptObjectProxyObject *self, + PyObject *wrapped) +{ + static PyObject *module_str = NULL; + static PyObject *doc_str = NULL; + + PyObject *object = NULL; + + Py_INCREF(wrapped); + Py_XDECREF(self->wrapped); + self->wrapped = wrapped; + + if (!module_str) { +#if PY_MAJOR_VERSION >= 3 + module_str = PyUnicode_InternFromString("__module__"); +#else + module_str = PyString_InternFromString("__module__"); +#endif + } + + if (!doc_str) { +#if PY_MAJOR_VERSION >= 3 + doc_str = PyUnicode_InternFromString("__doc__"); +#else + doc_str = PyString_InternFromString("__doc__"); +#endif + } + + object = PyObject_GetAttr(wrapped, module_str); + + if (object) { + if (PyDict_SetItem(self->dict, module_str, object) == -1) { + Py_DECREF(object); + return -1; + } + Py_DECREF(object); + } + else + PyErr_Clear(); + + object = PyObject_GetAttr(wrapped, doc_str); + + if (object) { + if (PyDict_SetItem(self->dict, doc_str, object) == -1) { + Py_DECREF(object); + return -1; + } + Py_DECREF(object); + } + else + PyErr_Clear(); + + return 0; +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_init(WraptObjectProxyObject *self, + PyObject *args, PyObject *kwds) +{ + PyObject *wrapped = NULL; + + static char *kwlist[] = { "wrapped", NULL }; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "O:ObjectProxy", + kwlist, &wrapped)) { + return -1; + } + + return WraptObjectProxy_raw_init(self, wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_traverse(WraptObjectProxyObject *self, + visitproc visit, void *arg) +{ + Py_VISIT(self->dict); + Py_VISIT(self->wrapped); + + return 0; +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_clear(WraptObjectProxyObject *self) +{ + Py_CLEAR(self->dict); + Py_CLEAR(self->wrapped); + + return 0; +} + +/* ------------------------------------------------------------------------- */ + +static void WraptObjectProxy_dealloc(WraptObjectProxyObject *self) +{ + PyObject_GC_UnTrack(self); + + if (self->weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *)self); + + WraptObjectProxy_clear(self); + + Py_TYPE(self)->tp_free(self); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_repr(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromFormat("<%s at %p for %s at %p>", + Py_TYPE(self)->tp_name, self, + Py_TYPE(self->wrapped)->tp_name, self->wrapped); +#else + return PyString_FromFormat("<%s at %p for %s at %p>", + Py_TYPE(self)->tp_name, self, + Py_TYPE(self->wrapped)->tp_name, self->wrapped); +#endif +} + +/* ------------------------------------------------------------------------- */ + +static long WraptObjectProxy_hash(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PyObject_Hash(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_str(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_Str(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_add(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Add(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_subtract(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + + return PyNumber_Subtract(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_multiply(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Multiply(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +#if PY_MAJOR_VERSION < 3 +static PyObject *WraptObjectProxy_divide(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Divide(o1, o2); +} +#endif + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_remainder(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Remainder(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_divmod(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Divmod(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_power(PyObject *o1, PyObject *o2, + PyObject *modulo) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Power(o1, o2, modulo); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_negative(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Negative(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_positive(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Positive(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_absolute(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Absolute(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_bool(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PyObject_IsTrue(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_invert(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Invert(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_lshift(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Lshift(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_rshift(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Rshift(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_and(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_And(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_xor(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Xor(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_or(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_Or(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +#if PY_MAJOR_VERSION < 3 +static PyObject *WraptObjectProxy_int(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Int(self->wrapped); +} +#endif + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_long(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Long(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_float(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Float(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +#if PY_MAJOR_VERSION < 3 +static PyObject *WraptObjectProxy_oct(WraptObjectProxyObject *self) +{ + PyNumberMethods *nb; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if ((nb = self->wrapped->ob_type->tp_as_number) == NULL || + nb->nb_oct == NULL) { + PyErr_SetString(PyExc_TypeError, + "oct() argument can't be converted to oct"); + return NULL; + } + + return (*nb->nb_oct)(self->wrapped); +} +#endif + +/* ------------------------------------------------------------------------- */ + +#if PY_MAJOR_VERSION < 3 +static PyObject *WraptObjectProxy_hex(WraptObjectProxyObject *self) +{ + PyNumberMethods *nb; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if ((nb = self->wrapped->ob_type->tp_as_number) == NULL || + nb->nb_hex == NULL) { + PyErr_SetString(PyExc_TypeError, + "hex() argument can't be converted to hex"); + return NULL; + } + + return (*nb->nb_hex)(self->wrapped); +} +#endif + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_add(WraptObjectProxyObject *self, + PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceAdd(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_subtract( + WraptObjectProxyObject *self, PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceSubtract(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_multiply( + WraptObjectProxyObject *self, PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceMultiply(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +#if PY_MAJOR_VERSION < 3 +static PyObject *WraptObjectProxy_inplace_divide( + WraptObjectProxyObject *self, PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceDivide(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} +#endif + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_remainder( + WraptObjectProxyObject *self, PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceRemainder(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_power(WraptObjectProxyObject *self, + PyObject *other, PyObject *modulo) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlacePower(self->wrapped, other, modulo); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_lshift(WraptObjectProxyObject *self, + PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceLshift(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_rshift(WraptObjectProxyObject *self, + PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceRshift(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_and(WraptObjectProxyObject *self, + PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceAnd(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_xor(WraptObjectProxyObject *self, + PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceXor(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_or(WraptObjectProxyObject *self, + PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceOr(self->wrapped, other); + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_floor_divide(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_FloorDivide(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_true_divide(PyObject *o1, PyObject *o2) +{ + if (!((WraptObjectProxyObject *)o1)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (!((WraptObjectProxyObject *)o2)->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(o1, (PyObject *)&WraptObjectProxy_Type)) + o1 = ((WraptObjectProxyObject *)o1)->wrapped; + + if (PyObject_IsInstance(o2, (PyObject *)&WraptObjectProxy_Type)) + o2 = ((WraptObjectProxyObject *)o2)->wrapped; + + return PyNumber_TrueDivide(o1, o2); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_floor_divide( + WraptObjectProxyObject *self, PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceFloorDivide(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_inplace_true_divide( + WraptObjectProxyObject *self, PyObject *other) +{ + PyObject *object = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + if (PyObject_IsInstance(other, (PyObject *)&WraptObjectProxy_Type)) + other = ((WraptObjectProxyObject *)other)->wrapped; + + object = PyNumber_InPlaceTrueDivide(self->wrapped, other); + + if (!object) + return NULL; + + Py_DECREF(self->wrapped); + self->wrapped = object; + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_index(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyNumber_Index(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static Py_ssize_t WraptObjectProxy_length(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PyObject_Length(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_contains(WraptObjectProxyObject *self, + PyObject *value) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PySequence_Contains(self->wrapped, value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_getitem(WraptObjectProxyObject *self, + PyObject *key) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetItem(self->wrapped, key); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_setitem(WraptObjectProxyObject *self, + PyObject *key, PyObject* value) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + if (value == NULL) + return PyObject_DelItem(self->wrapped, key); + else + return PyObject_SetItem(self->wrapped, key, value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_dir( + WraptObjectProxyObject *self, PyObject *args) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_Dir(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_enter( + WraptObjectProxyObject *self, PyObject *args, PyObject *kwds) +{ + PyObject *method = NULL; + PyObject *result = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + method = PyObject_GetAttrString(self->wrapped, "__enter__"); + + if (!method) + return NULL; + + result = PyObject_Call(method, args, kwds); + + Py_DECREF(method); + + return result; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_exit( + WraptObjectProxyObject *self, PyObject *args, PyObject *kwds) +{ + PyObject *method = NULL; + PyObject *result = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + method = PyObject_GetAttrString(self->wrapped, "__exit__"); + + if (!method) + return NULL; + + result = PyObject_Call(method, args, kwds); + + Py_DECREF(method); + + return result; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_bytes( + WraptObjectProxyObject *self, PyObject *args) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_Bytes(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_reversed( + WraptObjectProxyObject *self, PyObject *args) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_CallFunctionObjArgs((PyObject *)&PyReversed_Type, + self->wrapped, NULL); +} + +/* ------------------------------------------------------------------------- */ + +#if PY_MAJOR_VERSION >= 3 +static PyObject *WraptObjectProxy_round( + WraptObjectProxyObject *self, PyObject *args) +{ + PyObject *module = NULL; + PyObject *dict = NULL; + PyObject *round = NULL; + + PyObject *result = NULL; + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + module = PyImport_ImportModule("builtins"); + + if (!module) + return NULL; + + dict = PyModule_GetDict(module); + round = PyDict_GetItemString(dict, "round"); + + if (!round) { + Py_DECREF(module); + return NULL; + } + + Py_INCREF(round); + Py_DECREF(module); + + result = PyObject_CallFunctionObjArgs(round, self->wrapped, NULL); + + Py_DECREF(round); + + return result; +} +#endif + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_get_name( + WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetAttrString(self->wrapped, "__name__"); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_set_name(WraptObjectProxyObject *self, + PyObject *value) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PyObject_SetAttrString(self->wrapped, "__name__", value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_get_qualname( + WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetAttrString(self->wrapped, "__qualname__"); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_set_qualname(WraptObjectProxyObject *self, + PyObject *value) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PyObject_SetAttrString(self->wrapped, "__qualname__", value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_get_module( + WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetAttrString(self->wrapped, "__module__"); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_set_module(WraptObjectProxyObject *self, + PyObject *value) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + if (PyObject_SetAttrString(self->wrapped, "__module__", value) == -1) + return -1; + + return PyDict_SetItemString(self->dict, "__module__", value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_get_doc( + WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetAttrString(self->wrapped, "__doc__"); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_set_doc(WraptObjectProxyObject *self, + PyObject *value) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + if (PyObject_SetAttrString(self->wrapped, "__doc__", value) == -1) + return -1; + + return PyDict_SetItemString(self->dict, "__doc__", value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_get_class( + WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetAttrString(self->wrapped, "__class__"); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_get_annotations( + WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetAttrString(self->wrapped, "__annotations__"); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_set_annotations(WraptObjectProxyObject *self, + PyObject *value) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PyObject_SetAttrString(self->wrapped, "__annotations__", value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_get_wrapped( + WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + Py_INCREF(self->wrapped); + return self->wrapped; +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_set_wrapped(WraptObjectProxyObject *self, + PyObject *value) +{ + if (!value) { + PyErr_SetString(PyExc_TypeError, "__wrapped__ must be an object"); + return -1; + } + + Py_INCREF(value); + Py_XDECREF(self->wrapped); + + self->wrapped = value; + + return 0; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_getattro( + WraptObjectProxyObject *self, PyObject *name) +{ + PyObject *object = NULL; + PyObject *result = NULL; + + static PyObject *getattr_str = NULL; + + object = PyObject_GenericGetAttr((PyObject *)self, name); + + if (object) + return object; + + PyErr_Clear(); + + if (!getattr_str) { +#if PY_MAJOR_VERSION >= 3 + getattr_str = PyUnicode_InternFromString("__getattr__"); +#else + getattr_str = PyString_InternFromString("__getattr__"); +#endif + } + + object = PyObject_GenericGetAttr((PyObject *)self, getattr_str); + + if (!object) + return NULL; + + result = PyObject_CallFunctionObjArgs(object, name, NULL); + + Py_DECREF(object); + + return result; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_getattr( + WraptObjectProxyObject *self, PyObject *args) +{ + PyObject *name = NULL; + +#if PY_MAJOR_VERSION >= 3 + if (!PyArg_ParseTuple(args, "U:__getattr__", &name)) + return NULL; +#else + if (!PyArg_ParseTuple(args, "S:__getattr__", &name)) + return NULL; +#endif + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetAttr(self->wrapped, name); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptObjectProxy_setattro( + WraptObjectProxyObject *self, PyObject *name, PyObject *value) +{ + static PyObject *self_str = NULL; + static PyObject *wrapped_str = NULL; + static PyObject *startswith_str = NULL; + + PyObject *match = NULL; + + if (!startswith_str) { +#if PY_MAJOR_VERSION >= 3 + startswith_str = PyUnicode_InternFromString("startswith"); +#else + startswith_str = PyString_InternFromString("startswith"); +#endif + } + + if (!self_str) { +#if PY_MAJOR_VERSION >= 3 + self_str = PyUnicode_InternFromString("_self_"); +#else + self_str = PyString_InternFromString("_self_"); +#endif + } + + match = PyObject_CallMethodObjArgs(name, startswith_str, self_str, NULL); + + if (match == Py_True) { + Py_DECREF(match); + + return PyObject_GenericSetAttr((PyObject *)self, name, value); + } + else if (!match) + PyErr_Clear(); + + Py_XDECREF(match); + + if (!wrapped_str) { +#if PY_MAJOR_VERSION >= 3 + wrapped_str = PyUnicode_InternFromString("__wrapped__"); +#else + wrapped_str = PyString_InternFromString("__wrapped__"); +#endif + } + + if (PyObject_HasAttr((PyObject *)Py_TYPE(self), name)) + return PyObject_GenericSetAttr((PyObject *)self, name, value); + + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return -1; + } + + return PyObject_SetAttr(self->wrapped, name, value); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_richcompare(WraptObjectProxyObject *self, + PyObject *other, int opcode) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_RichCompare(self->wrapped, other, opcode); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptObjectProxy_iter(WraptObjectProxyObject *self) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_GetIter(self->wrapped); +} + +/* ------------------------------------------------------------------------- */ + +static PyNumberMethods WraptObjectProxy_as_number = { + (binaryfunc)WraptObjectProxy_add, /*nb_add*/ + (binaryfunc)WraptObjectProxy_subtract, /*nb_subtract*/ + (binaryfunc)WraptObjectProxy_multiply, /*nb_multiply*/ +#if PY_MAJOR_VERSION < 3 + (binaryfunc)WraptObjectProxy_divide, /*nb_divide*/ +#endif + (binaryfunc)WraptObjectProxy_remainder, /*nb_remainder*/ + (binaryfunc)WraptObjectProxy_divmod, /*nb_divmod*/ + (ternaryfunc)WraptObjectProxy_power, /*nb_power*/ + (unaryfunc)WraptObjectProxy_negative, /*nb_negative*/ + (unaryfunc)WraptObjectProxy_positive, /*nb_positive*/ + (unaryfunc)WraptObjectProxy_absolute, /*nb_absolute*/ + (inquiry)WraptObjectProxy_bool, /*nb_nonzero/nb_bool*/ + (unaryfunc)WraptObjectProxy_invert, /*nb_invert*/ + (binaryfunc)WraptObjectProxy_lshift, /*nb_lshift*/ + (binaryfunc)WraptObjectProxy_rshift, /*nb_rshift*/ + (binaryfunc)WraptObjectProxy_and, /*nb_and*/ + (binaryfunc)WraptObjectProxy_xor, /*nb_xor*/ + (binaryfunc)WraptObjectProxy_or, /*nb_or*/ +#if PY_MAJOR_VERSION < 3 + 0, /*nb_coerce*/ +#endif +#if PY_MAJOR_VERSION < 3 + (unaryfunc)WraptObjectProxy_int, /*nb_int*/ + (unaryfunc)WraptObjectProxy_long, /*nb_long*/ +#else + (unaryfunc)WraptObjectProxy_long, /*nb_int*/ + 0, /*nb_long/nb_reserved*/ +#endif + (unaryfunc)WraptObjectProxy_float, /*nb_float*/ +#if PY_MAJOR_VERSION < 3 + (unaryfunc)WraptObjectProxy_oct, /*nb_oct*/ + (unaryfunc)WraptObjectProxy_hex, /*nb_hex*/ +#endif + (binaryfunc)WraptObjectProxy_inplace_add, /*nb_inplace_add*/ + (binaryfunc)WraptObjectProxy_inplace_subtract, /*nb_inplace_subtract*/ + (binaryfunc)WraptObjectProxy_inplace_multiply, /*nb_inplace_multiply*/ +#if PY_MAJOR_VERSION < 3 + (binaryfunc)WraptObjectProxy_inplace_divide, /*nb_inplace_divide*/ +#endif + (binaryfunc)WraptObjectProxy_inplace_remainder, /*nb_inplace_remainder*/ + (ternaryfunc)WraptObjectProxy_inplace_power, /*nb_inplace_power*/ + (binaryfunc)WraptObjectProxy_inplace_lshift, /*nb_inplace_lshift*/ + (binaryfunc)WraptObjectProxy_inplace_rshift, /*nb_inplace_rshift*/ + (binaryfunc)WraptObjectProxy_inplace_and, /*nb_inplace_and*/ + (binaryfunc)WraptObjectProxy_inplace_xor, /*nb_inplace_xor*/ + (binaryfunc)WraptObjectProxy_inplace_or, /*nb_inplace_or*/ + (binaryfunc)WraptObjectProxy_floor_divide, /*nb_floor_divide*/ + (binaryfunc)WraptObjectProxy_true_divide, /*nb_true_divide*/ + (binaryfunc)WraptObjectProxy_inplace_floor_divide, /*nb_inplace_floor_divide*/ + (binaryfunc)WraptObjectProxy_inplace_true_divide, /*nb_inplace_true_divide*/ + (unaryfunc)WraptObjectProxy_index, /*nb_index*/ +}; + +static PySequenceMethods WraptObjectProxy_as_sequence = { + (lenfunc)WraptObjectProxy_length, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + 0, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + (objobjproc)WraptObjectProxy_contains, /* sq_contains */ +}; + +static PyMappingMethods WraptObjectProxy_as_mapping = { + (lenfunc)WraptObjectProxy_length, /*mp_length*/ + (binaryfunc)WraptObjectProxy_getitem, /*mp_subscript*/ + (objobjargproc)WraptObjectProxy_setitem, /*mp_ass_subscript*/ +}; + +static PyMethodDef WraptObjectProxy_methods[] = { + { "__dir__", (PyCFunction)WraptObjectProxy_dir, METH_NOARGS, 0 }, + { "__enter__", (PyCFunction)WraptObjectProxy_enter, + METH_VARARGS | METH_KEYWORDS, 0 }, + { "__exit__", (PyCFunction)WraptObjectProxy_exit, + METH_VARARGS | METH_KEYWORDS, 0 }, + { "__getattr__", (PyCFunction)WraptObjectProxy_getattr, + METH_VARARGS , 0 }, + { "__bytes__", (PyCFunction)WraptObjectProxy_bytes, METH_NOARGS, 0 }, + { "__reversed__", (PyCFunction)WraptObjectProxy_reversed, METH_NOARGS, 0 }, +#if PY_MAJOR_VERSION >= 3 + { "__round__", (PyCFunction)WraptObjectProxy_round, METH_NOARGS, 0 }, +#endif + { NULL, NULL }, +}; + +static PyGetSetDef WraptObjectProxy_getset[] = { + { "__name__", (getter)WraptObjectProxy_get_name, + (setter)WraptObjectProxy_set_name, 0 }, + { "__qualname__", (getter)WraptObjectProxy_get_qualname, + (setter)WraptObjectProxy_set_qualname, 0 }, + { "__module__", (getter)WraptObjectProxy_get_module, + (setter)WraptObjectProxy_set_module, 0 }, + { "__doc__", (getter)WraptObjectProxy_get_doc, + (setter)WraptObjectProxy_set_doc, 0 }, + { "__class__", (getter)WraptObjectProxy_get_class, + NULL, 0 }, + { "__annotations__", (getter)WraptObjectProxy_get_annotations, + (setter)WraptObjectProxy_set_annotations, 0 }, + { "__wrapped__", (getter)WraptObjectProxy_get_wrapped, + (setter)WraptObjectProxy_set_wrapped, 0 }, + { NULL }, +}; + +PyTypeObject WraptObjectProxy_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "ObjectProxy", /*tp_name*/ + sizeof(WraptObjectProxyObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + (destructor)WraptObjectProxy_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + (unaryfunc)WraptObjectProxy_repr, /*tp_repr*/ + &WraptObjectProxy_as_number, /*tp_as_number*/ + &WraptObjectProxy_as_sequence, /*tp_as_sequence*/ + &WraptObjectProxy_as_mapping, /*tp_as_mapping*/ + (hashfunc)WraptObjectProxy_hash, /*tp_hash*/ + 0, /*tp_call*/ + (unaryfunc)WraptObjectProxy_str, /*tp_str*/ + (getattrofunc)WraptObjectProxy_getattro, /*tp_getattro*/ + (setattrofunc)WraptObjectProxy_setattro, /*tp_setattro*/ + 0, /*tp_as_buffer*/ +#if PY_MAJOR_VERSION < 3 + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/ +#else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +#endif + 0, /*tp_doc*/ + (traverseproc)WraptObjectProxy_traverse, /*tp_traverse*/ + (inquiry)WraptObjectProxy_clear, /*tp_clear*/ + (richcmpfunc)WraptObjectProxy_richcompare, /*tp_richcompare*/ + offsetof(WraptObjectProxyObject, weakreflist), /*tp_weaklistoffset*/ + (getiterfunc)WraptObjectProxy_iter, /*tp_iter*/ + 0, /*tp_iternext*/ + WraptObjectProxy_methods, /*tp_methods*/ + 0, /*tp_members*/ + WraptObjectProxy_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + offsetof(WraptObjectProxyObject, dict), /*tp_dictoffset*/ + (initproc)WraptObjectProxy_init, /*tp_init*/ + PyType_GenericAlloc, /*tp_alloc*/ + WraptObjectProxy_new, /*tp_new*/ + PyObject_GC_Del, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptCallableObjectProxy_call( + WraptObjectProxyObject *self, PyObject *args, PyObject *kwds) +{ + if (!self->wrapped) { + PyErr_SetString(PyExc_ValueError, "wrapper has not been initialized"); + return NULL; + } + + return PyObject_Call(self->wrapped, args, kwds); +} + +/* ------------------------------------------------------------------------- */; + +static PyGetSetDef WraptCallableObjectProxy_getset[] = { + { "__module__", (getter)WraptObjectProxy_get_module, + (setter)WraptObjectProxy_set_module, 0 }, + { "__doc__", (getter)WraptObjectProxy_get_doc, + (setter)WraptObjectProxy_set_doc, 0 }, + { NULL }, +}; + +PyTypeObject WraptCallableObjectProxy_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "CallableObjectProxy", /*tp_name*/ + sizeof(WraptObjectProxyObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + (ternaryfunc)WraptCallableObjectProxy_call, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ +#if PY_MAJOR_VERSION < 3 + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/ +#else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ +#endif + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + offsetof(WraptObjectProxyObject, weakreflist), /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + WraptCallableObjectProxy_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + (initproc)WraptObjectProxy_init, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_new(PyTypeObject *type, + PyObject *args, PyObject *kwds) +{ + WraptFunctionWrapperObject *self; + + self = (WraptFunctionWrapperObject *)WraptObjectProxy_new(type, + args, kwds); + + if (!self) + return NULL; + + self->instance = NULL; + self->wrapper = NULL; + self->enabled = NULL; + self->binding = NULL; + self->parent = NULL; + + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static int WraptFunctionWrapperBase_raw_init(WraptFunctionWrapperObject *self, + PyObject *wrapped, PyObject *instance, PyObject *wrapper, + PyObject *enabled, PyObject *binding, PyObject *parent) +{ + int result = 0; + + result = WraptObjectProxy_raw_init((WraptObjectProxyObject *)self, + wrapped); + + if (result == 0) { + Py_INCREF(instance); + Py_XDECREF(self->instance); + self->instance = instance; + + Py_INCREF(wrapper); + Py_XDECREF(self->wrapper); + self->wrapper = wrapper; + + Py_INCREF(enabled); + Py_XDECREF(self->enabled); + self->enabled = enabled; + + Py_INCREF(binding); + Py_XDECREF(self->binding); + self->binding = binding; + + Py_INCREF(parent); + Py_XDECREF(self->parent); + self->parent = parent; + } + + return result; +} + +/* ------------------------------------------------------------------------- */ + +static int WraptFunctionWrapperBase_init(WraptFunctionWrapperObject *self, + PyObject *args, PyObject *kwds) +{ + PyObject *wrapped = NULL; + PyObject *instance = NULL; + PyObject *wrapper = NULL; + PyObject *enabled = Py_None; + PyObject *binding = NULL; + PyObject *parent = Py_None; + + static PyObject *function_str = NULL; + + static char *kwlist[] = { "wrapped", "instance", "wrapper", + "enabled", "binding", "parent", NULL }; + + if (!function_str) { +#if PY_MAJOR_VERSION >= 3 + function_str = PyUnicode_InternFromString("function"); +#else + function_str = PyString_InternFromString("function"); +#endif + } + + if (!PyArg_ParseTupleAndKeywords(args, kwds, + "OOO|OOO:FunctionWrapperBase", kwlist, &wrapped, &instance, + &wrapper, &enabled, &binding, &parent)) { + return -1; + } + + if (!binding) + binding = function_str; + + return WraptFunctionWrapperBase_raw_init(self, wrapped, instance, wrapper, + enabled, binding, parent); +} + +/* ------------------------------------------------------------------------- */ + +static int WraptFunctionWrapperBase_traverse(WraptFunctionWrapperObject *self, + visitproc visit, void *arg) +{ + WraptObjectProxy_traverse((WraptObjectProxyObject *)self, visit, arg); + + Py_VISIT(self->instance); + Py_VISIT(self->wrapper); + Py_VISIT(self->enabled); + Py_VISIT(self->binding); + Py_VISIT(self->parent); + + return 0; +} + +/* ------------------------------------------------------------------------- */ + +static int WraptFunctionWrapperBase_clear(WraptFunctionWrapperObject *self) +{ + WraptObjectProxy_clear((WraptObjectProxyObject *)self); + + Py_CLEAR(self->instance); + Py_CLEAR(self->wrapper); + Py_CLEAR(self->enabled); + Py_CLEAR(self->binding); + Py_CLEAR(self->parent); + + return 0; +} + +/* ------------------------------------------------------------------------- */ + +static void WraptFunctionWrapperBase_dealloc(WraptFunctionWrapperObject *self) +{ + WraptFunctionWrapperBase_clear(self); + + WraptObjectProxy_dealloc((WraptObjectProxyObject *)self); +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_call( + WraptFunctionWrapperObject *self, PyObject *args, PyObject *kwds) +{ + PyObject *param_kwds = NULL; + + PyObject *result = NULL; + + static PyObject *function_str = NULL; + + if (!function_str) { +#if PY_MAJOR_VERSION >= 3 + function_str = PyUnicode_InternFromString("function"); +#else + function_str = PyString_InternFromString("function"); +#endif + } + + if (self->enabled != Py_None) { + if (PyCallable_Check(self->enabled)) { + PyObject *object = NULL; + + object = PyObject_CallFunctionObjArgs(self->enabled, NULL); + + if (!object) + return NULL; + + if (PyObject_Not(object)) { + Py_DECREF(object); + return PyObject_Call(self->object_proxy.wrapped, args, kwds); + } + + Py_DECREF(object); + } + else if (PyObject_Not(self->enabled)) { + return PyObject_Call(self->object_proxy.wrapped, args, kwds); + } + } + + if (!kwds) { + param_kwds = PyDict_New(); + kwds = param_kwds; + } + + if (self->instance == Py_None && (self->binding == function_str || + PyObject_RichCompareBool(self->binding, function_str, + Py_EQ) == 1)) { + + PyObject *instance = NULL; + + instance = PyObject_GetAttrString(self->object_proxy.wrapped, + "__self__"); + + if (instance) { + result = PyObject_CallFunctionObjArgs(self->wrapper, + self->object_proxy.wrapped, instance, args, kwds, NULL); + + Py_XDECREF(param_kwds); + + Py_DECREF(instance); + + return result; + } + else + PyErr_Clear(); + } + + result = PyObject_CallFunctionObjArgs(self->wrapper, + self->object_proxy.wrapped, self->instance, args, kwds, NULL); + + Py_XDECREF(param_kwds); + + return result; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_descr_get( + WraptFunctionWrapperObject *self, PyObject *obj, PyObject *type) +{ + PyObject *bound_type = NULL; + PyObject *descriptor = NULL; + PyObject *result = NULL; + + static PyObject *bound_type_str = NULL; + static PyObject *function_str = NULL; + + if (!bound_type_str) { +#if PY_MAJOR_VERSION >= 3 + bound_type_str = PyUnicode_InternFromString( + "__bound_function_wrapper__"); +#else + bound_type_str = PyString_InternFromString( + "__bound_function_wrapper__"); +#endif + } + + if (!function_str) { +#if PY_MAJOR_VERSION >= 3 + function_str = PyUnicode_InternFromString("function"); +#else + function_str = PyString_InternFromString("function"); +#endif + } + + if (self->parent == Py_None) { +#if PY_MAJOR_VERSION < 3 + if (PyObject_IsInstance(self->object_proxy.wrapped, + (PyObject *)&PyClass_Type) || PyObject_IsInstance( + self->object_proxy.wrapped, (PyObject *)&PyType_Type)) { + Py_INCREF(self); + return (PyObject *)self; + } +#else + if (PyObject_IsInstance(self->object_proxy.wrapped, + (PyObject *)&PyType_Type)) { + Py_INCREF(self); + return (PyObject *)self; + } +#endif + + if (Py_TYPE(self->object_proxy.wrapped)->tp_descr_get == NULL) { + PyErr_Format(PyExc_AttributeError, + "'%s' object has no attribute '__get__'", + Py_TYPE(self->object_proxy.wrapped)->tp_name); + return NULL; + } + + descriptor = (Py_TYPE(self->object_proxy.wrapped)->tp_descr_get)( + self->object_proxy.wrapped, obj, type); + + if (!descriptor) + return NULL; + + if (Py_TYPE(self) != &WraptFunctionWrapper_Type) { + bound_type = PyObject_GenericGetAttr((PyObject *)self, + bound_type_str); + + if (!bound_type) + PyErr_Clear(); + } + + if (obj == NULL) + obj = Py_None; + + result = PyObject_CallFunctionObjArgs(bound_type ? bound_type : + (PyObject *)&WraptBoundFunctionWrapper_Type, descriptor, + obj, self->wrapper, self->enabled, self->binding, + self, NULL); + + Py_XDECREF(bound_type); + Py_DECREF(descriptor); + + return result; + } + + if (self->instance == Py_None && (self->binding == function_str || + PyObject_RichCompareBool(self->binding, function_str, + Py_EQ) == 1)) { + + PyObject *wrapped = NULL; + + static PyObject *wrapped_str = NULL; + + if (!wrapped_str) { +#if PY_MAJOR_VERSION >= 3 + wrapped_str = PyUnicode_InternFromString("__wrapped__"); +#else + wrapped_str = PyString_InternFromString("__wrapped__"); +#endif + } + + wrapped = PyObject_GetAttr(self->parent, wrapped_str); + + if (!wrapped) + return NULL; + + if (Py_TYPE(wrapped)->tp_descr_get == NULL) { + PyErr_Format(PyExc_AttributeError, + "'%s' object has no attribute '__get__'", + Py_TYPE(wrapped)->tp_name); + Py_DECREF(wrapped); + return NULL; + } + + descriptor = (Py_TYPE(wrapped)->tp_descr_get)(wrapped, obj, type); + + Py_DECREF(wrapped); + + if (!descriptor) + return NULL; + + if (Py_TYPE(self->parent) != &WraptFunctionWrapper_Type) { + bound_type = PyObject_GenericGetAttr((PyObject *)self->parent, + bound_type_str); + + if (!bound_type) + PyErr_Clear(); + } + + if (obj == NULL) + obj = Py_None; + + result = PyObject_CallFunctionObjArgs(bound_type ? bound_type : + (PyObject *)&WraptBoundFunctionWrapper_Type, descriptor, + obj, self->wrapper, self->enabled, self->binding, + self->parent, NULL); + + Py_XDECREF(bound_type); + Py_DECREF(descriptor); + + return result; + } + + Py_INCREF(self); + return (PyObject *)self; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_get_self_instance( + WraptFunctionWrapperObject *self, void *closure) +{ + if (!self->instance) { + Py_INCREF(Py_None); + return Py_None; + } + + Py_INCREF(self->instance); + return self->instance; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_get_self_wrapper( + WraptFunctionWrapperObject *self, void *closure) +{ + if (!self->wrapper) { + Py_INCREF(Py_None); + return Py_None; + } + + Py_INCREF(self->wrapper); + return self->wrapper; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_get_self_enabled( + WraptFunctionWrapperObject *self, void *closure) +{ + if (!self->enabled) { + Py_INCREF(Py_None); + return Py_None; + } + + Py_INCREF(self->enabled); + return self->enabled; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_get_self_binding( + WraptFunctionWrapperObject *self, void *closure) +{ + if (!self->binding) { + Py_INCREF(Py_None); + return Py_None; + } + + Py_INCREF(self->binding); + return self->binding; +} + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptFunctionWrapperBase_get_self_parent( + WraptFunctionWrapperObject *self, void *closure) +{ + if (!self->parent) { + Py_INCREF(Py_None); + return Py_None; + } + + Py_INCREF(self->parent); + return self->parent; +} + +/* ------------------------------------------------------------------------- */; + +static PyGetSetDef WraptFunctionWrapperBase_getset[] = { + { "__module__", (getter)WraptObjectProxy_get_module, + (setter)WraptObjectProxy_set_module, 0 }, + { "__doc__", (getter)WraptObjectProxy_get_doc, + (setter)WraptObjectProxy_set_doc, 0 }, + { "_self_instance", (getter)WraptFunctionWrapperBase_get_self_instance, + NULL, 0 }, + { "_self_wrapper", (getter)WraptFunctionWrapperBase_get_self_wrapper, + NULL, 0 }, + { "_self_enabled", (getter)WraptFunctionWrapperBase_get_self_enabled, + NULL, 0 }, + { "_self_binding", (getter)WraptFunctionWrapperBase_get_self_binding, + NULL, 0 }, + { "_self_parent", (getter)WraptFunctionWrapperBase_get_self_parent, + NULL, 0 }, + { NULL }, +}; + +PyTypeObject WraptFunctionWrapperBase_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "_FunctionWrapperBase", /*tp_name*/ + sizeof(WraptFunctionWrapperObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + (destructor)WraptFunctionWrapperBase_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + (ternaryfunc)WraptFunctionWrapperBase_call, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ +#if PY_MAJOR_VERSION < 3 + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/ +#else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +#endif + 0, /*tp_doc*/ + (traverseproc)WraptFunctionWrapperBase_traverse, /*tp_traverse*/ + (inquiry)WraptFunctionWrapperBase_clear, /*tp_clear*/ + 0, /*tp_richcompare*/ + offsetof(WraptObjectProxyObject, weakreflist), /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + WraptFunctionWrapperBase_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + (descrgetfunc)WraptFunctionWrapperBase_descr_get, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + (initproc)WraptFunctionWrapperBase_init, /*tp_init*/ + 0, /*tp_alloc*/ + WraptFunctionWrapperBase_new, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + +/* ------------------------------------------------------------------------- */ + +static PyObject *WraptBoundFunctionWrapper_call( + WraptFunctionWrapperObject *self, PyObject *args, PyObject *kwds) +{ + PyObject *param_args = NULL; + PyObject *param_kwds = NULL; + + PyObject *wrapped = NULL; + PyObject *instance = NULL; + + PyObject *result = NULL; + + static PyObject *function_str = NULL; + + if (self->enabled != Py_None) { + if (PyCallable_Check(self->enabled)) { + PyObject *object = NULL; + + object = PyObject_CallFunctionObjArgs(self->enabled, NULL); + + if (!object) + return NULL; + + if (PyObject_Not(object)) { + Py_DECREF(object); + return PyObject_Call(self->object_proxy.wrapped, args, kwds); + } + + Py_DECREF(object); + } + else if (PyObject_Not(self->enabled)) { + return PyObject_Call(self->object_proxy.wrapped, args, kwds); + } + } + + if (!function_str) { +#if PY_MAJOR_VERSION >= 3 + function_str = PyUnicode_InternFromString("function"); +#else + function_str = PyString_InternFromString("function"); +#endif + } + + /* + * We need to do things different depending on whether we are likely + * wrapping an instance method vs a static method or class method. + */ + + if (self->binding == function_str || PyObject_RichCompareBool( + self->binding, function_str, Py_EQ) == 1) { + + if (self->instance == Py_None) { + /* + * This situation can occur where someone is calling the + * instancemethod via the class type and passing the + * instance as the first argument. We need to shift the args + * before making the call to the wrapper and effectively + * bind the instance to the wrapped function using a partial + * so the wrapper doesn't see anything as being different. + */ + + PyObject *module = NULL; + PyObject *dict = NULL; + PyObject *partial = NULL; + + if (PyTuple_Size(args) == 0) { + PyErr_SetString(PyExc_TypeError, + "missing 1 required positional argument"); + return NULL; + } + + module = PyImport_ImportModule("functools"); + + if (!module) + return NULL; + + dict = PyModule_GetDict(module); + partial = PyDict_GetItemString(dict, "partial"); + + if (!partial) { + Py_DECREF(module); + return NULL; + } + + Py_INCREF(partial); + Py_DECREF(module); + + instance = PyTuple_GetItem(args, 0); + + if (!instance) { + Py_DECREF(partial); + return NULL; + } + + wrapped = PyObject_CallFunctionObjArgs(partial, + self->object_proxy.wrapped, instance, NULL); + + Py_DECREF(partial); + + if (!wrapped) + return NULL; + + param_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args)); + + if (!param_args) { + Py_DECREF(wrapped); + return NULL; + } + + args = param_args; + } + else + instance = self->instance; + + if (!wrapped) { + Py_INCREF(self->object_proxy.wrapped); + wrapped = self->object_proxy.wrapped; + } + + if (!kwds) { + param_kwds = PyDict_New(); + kwds = param_kwds; + } + + result = PyObject_CallFunctionObjArgs(self->wrapper, wrapped, + instance, args, kwds, NULL); + + Py_XDECREF(param_args); + Py_XDECREF(param_kwds); + Py_DECREF(wrapped); + + return result; + } + else { + /* + * As in this case we would be dealing with a classmethod or + * staticmethod, then _self_instance will only tell us whether + * when calling the classmethod or staticmethod they did it via + * an instance of the class it is bound to and not the case + * where done by the class type itself. We thus ignore + * _self_instance and use the __self__ attribute of the bound + * function instead. For a classmethod, this means instance will + * be the class type and for a staticmethod it will be None. + * This is probably the more useful thing we can pass through + * even though we loose knowledge of whether they were called on + * the instance vs the class type, as it reflects what they have + * available in the decoratored function. + */ + + instance = PyObject_GetAttrString(self->object_proxy.wrapped, + "__self__"); + + if (!instance) { + PyErr_Clear(); + Py_INCREF(Py_None); + instance = Py_None; + } + + if (!kwds) { + param_kwds = PyDict_New(); + kwds = param_kwds; + } + + result = PyObject_CallFunctionObjArgs(self->wrapper, + self->object_proxy.wrapped, instance, args, kwds, NULL); + + Py_XDECREF(param_kwds); + + Py_DECREF(instance); + + return result; + } +} + +/* ------------------------------------------------------------------------- */ + +static PyGetSetDef WraptBoundFunctionWrapper_getset[] = { + { "__module__", (getter)WraptObjectProxy_get_module, + (setter)WraptObjectProxy_set_module, 0 }, + { "__doc__", (getter)WraptObjectProxy_get_doc, + (setter)WraptObjectProxy_set_doc, 0 }, + { NULL }, +}; + +PyTypeObject WraptBoundFunctionWrapper_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "BoundFunctionWrapper", /*tp_name*/ + sizeof(WraptFunctionWrapperObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + (ternaryfunc)WraptBoundFunctionWrapper_call, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ +#if PY_MAJOR_VERSION < 3 + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/ +#else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ +#endif + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + offsetof(WraptObjectProxyObject, weakreflist), /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + WraptBoundFunctionWrapper_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + +/* ------------------------------------------------------------------------- */ + +static int WraptFunctionWrapper_init(WraptFunctionWrapperObject *self, + PyObject *args, PyObject *kwds) +{ + PyObject *wrapped = NULL; + PyObject *wrapper = NULL; + PyObject *enabled = Py_None; + PyObject *binding = NULL; + PyObject *instance = NULL; + + static PyObject *classmethod_str = NULL; + static PyObject *staticmethod_str = NULL; + static PyObject *function_str = NULL; + + int result = 0; + + static char *kwlist[] = { "wrapped", "wrapper", "enabled", NULL }; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO|O:FunctionWrapper", + kwlist, &wrapped, &wrapper, &enabled)) { + return -1; + } + + if (!classmethod_str) { +#if PY_MAJOR_VERSION >= 3 + classmethod_str = PyUnicode_InternFromString("classmethod"); +#else + classmethod_str = PyString_InternFromString("classmethod"); +#endif + } + + if (!staticmethod_str) { +#if PY_MAJOR_VERSION >= 3 + staticmethod_str = PyUnicode_InternFromString("staticmethod"); +#else + staticmethod_str = PyString_InternFromString("staticmethod"); +#endif + } + + if (!function_str) { +#if PY_MAJOR_VERSION >= 3 + function_str = PyUnicode_InternFromString("function"); +#else + function_str = PyString_InternFromString("function"); +#endif + } + + if (PyObject_IsInstance(wrapped, (PyObject *)&PyClassMethod_Type)) { + binding = classmethod_str; + } + else if (PyObject_IsInstance(wrapped, (PyObject *)&PyStaticMethod_Type)) { + binding = staticmethod_str; + } + else if ((instance = PyObject_GetAttrString(wrapped, "__self__")) != 0) { +#if PY_MAJOR_VERSION < 3 + if (PyObject_IsInstance(instance, (PyObject *)&PyClass_Type) || + PyObject_IsInstance(instance, (PyObject *)&PyType_Type)) { + binding = classmethod_str; + } +#else + if (PyObject_IsInstance(instance, (PyObject *)&PyType_Type)) { + binding = classmethod_str; + } +#endif + else + binding = function_str; + + Py_DECREF(instance); + } + else { + PyErr_Clear(); + + binding = function_str; + } + + result = WraptFunctionWrapperBase_raw_init(self, wrapped, Py_None, + wrapper, enabled, binding, Py_None); + + return result; +} + +/* ------------------------------------------------------------------------- */; + +static PyGetSetDef WraptFunctionWrapper_getset[] = { + { "__module__", (getter)WraptObjectProxy_get_module, + (setter)WraptObjectProxy_set_module, 0 }, + { "__doc__", (getter)WraptObjectProxy_get_doc, + (setter)WraptObjectProxy_set_doc, 0 }, + { NULL }, +}; + +PyTypeObject WraptFunctionWrapper_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "FunctionWrapper", /*tp_name*/ + sizeof(WraptFunctionWrapperObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ +#if PY_MAJOR_VERSION < 3 + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/ +#else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ +#endif + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + offsetof(WraptObjectProxyObject, weakreflist), /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + WraptFunctionWrapper_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + (initproc)WraptFunctionWrapper_init, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + +/* ------------------------------------------------------------------------- */; + +#if PY_MAJOR_VERSION >= 3 +static struct PyModuleDef moduledef = { + PyModuleDef_HEAD_INIT, + "_wrappers", /* m_name */ + NULL, /* m_doc */ + -1, /* m_size */ + NULL, /* m_methods */ + NULL, /* m_reload */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; +#endif + +static PyObject * +moduleinit(void) +{ + PyObject *module; + +#if PY_MAJOR_VERSION >= 3 + module = PyModule_Create(&moduledef); +#else + module = Py_InitModule3("_wrappers", NULL, NULL); +#endif + + if (module == NULL) + return NULL; + + if (PyType_Ready(&WraptObjectProxy_Type) < 0) + return NULL; + + /* Ensure that inheritence relationships specified. */ + + WraptCallableObjectProxy_Type.tp_base = &WraptObjectProxy_Type; + WraptFunctionWrapperBase_Type.tp_base = &WraptObjectProxy_Type; + WraptBoundFunctionWrapper_Type.tp_base = &WraptFunctionWrapperBase_Type; + WraptFunctionWrapper_Type.tp_base = &WraptFunctionWrapperBase_Type; + + if (PyType_Ready(&WraptCallableObjectProxy_Type) < 0) + return NULL; + if (PyType_Ready(&WraptFunctionWrapperBase_Type) < 0) + return NULL; + if (PyType_Ready(&WraptBoundFunctionWrapper_Type) < 0) + return NULL; + if (PyType_Ready(&WraptFunctionWrapper_Type) < 0) + return NULL; + + Py_INCREF(&WraptObjectProxy_Type); + PyModule_AddObject(module, "ObjectProxy", + (PyObject *)&WraptObjectProxy_Type); + Py_INCREF(&WraptCallableObjectProxy_Type); + PyModule_AddObject(module, "CallableObjectProxy", + (PyObject *)&WraptCallableObjectProxy_Type); + Py_INCREF(&WraptFunctionWrapper_Type); + PyModule_AddObject(module, "FunctionWrapper", + (PyObject *)&WraptFunctionWrapper_Type); + + Py_INCREF(&WraptFunctionWrapperBase_Type); + PyModule_AddObject(module, "_FunctionWrapperBase", + (PyObject *)&WraptFunctionWrapperBase_Type); + Py_INCREF(&WraptBoundFunctionWrapper_Type); + PyModule_AddObject(module, "BoundFunctionWrapper", + (PyObject *)&WraptBoundFunctionWrapper_Type); + + return module; +} + +#if PY_MAJOR_VERSION < 3 +PyMODINIT_FUNC init_wrappers(void) +{ + moduleinit(); +} +#else +PyMODINIT_FUNC PyInit__wrappers(void) +{ + return moduleinit(); +} +#endif + +/* ------------------------------------------------------------------------- */ diff --git a/lib/wrapt/arguments.py b/lib/wrapt/arguments.py new file mode 100644 index 0000000000..f71df2573c --- /dev/null +++ b/lib/wrapt/arguments.py @@ -0,0 +1,95 @@ +# This is a copy of the inspect.getcallargs() function from Python 2.7 +# so we can provide it for use under Python 2.6. As the code in this +# file derives from the Python distribution, it falls under the version +# of the PSF license used for Python 2.7. + +from inspect import getargspec, ismethod + +def getcallargs(func, *positional, **named): + """Get the mapping of arguments to values. + + A dict is returned, with keys the function argument names (including the + names of the * and ** arguments, if any), and values the respective bound + values from 'positional' and 'named'.""" + args, varargs, varkw, defaults = getargspec(func) + f_name = func.__name__ + arg2value = {} + + # The following closures are basically because of tuple parameter unpacking. + assigned_tuple_params = [] + def assign(arg, value): + if isinstance(arg, str): + arg2value[arg] = value + else: + assigned_tuple_params.append(arg) + value = iter(value) + for i, subarg in enumerate(arg): + try: + subvalue = next(value) + except StopIteration: + raise ValueError('need more than %d %s to unpack' % + (i, 'values' if i > 1 else 'value')) + assign(subarg,subvalue) + try: + next(value) + except StopIteration: + pass + else: + raise ValueError('too many values to unpack') + def is_assigned(arg): + if isinstance(arg,str): + return arg in arg2value + return arg in assigned_tuple_params + if ismethod(func) and func.im_self is not None: + # implicit 'self' (or 'cls' for classmethods) argument + positional = (func.im_self,) + positional + num_pos = len(positional) + num_total = num_pos + len(named) + num_args = len(args) + num_defaults = len(defaults) if defaults else 0 + for arg, value in zip(args, positional): + assign(arg, value) + if varargs: + if num_pos > num_args: + assign(varargs, positional[-(num_pos-num_args):]) + else: + assign(varargs, ()) + elif 0 < num_args < num_pos: + raise TypeError('%s() takes %s %d %s (%d given)' % ( + f_name, 'at most' if defaults else 'exactly', num_args, + 'arguments' if num_args > 1 else 'argument', num_total)) + elif num_args == 0 and num_total: + if varkw: + if num_pos: + # XXX: We should use num_pos, but Python also uses num_total: + raise TypeError('%s() takes exactly 0 arguments ' + '(%d given)' % (f_name, num_total)) + else: + raise TypeError('%s() takes no arguments (%d given)' % + (f_name, num_total)) + for arg in args: + if isinstance(arg, str) and arg in named: + if is_assigned(arg): + raise TypeError("%s() got multiple values for keyword " + "argument '%s'" % (f_name, arg)) + else: + assign(arg, named.pop(arg)) + if defaults: # fill in any missing values with the defaults + for arg, value in zip(args[-num_defaults:], defaults): + if not is_assigned(arg): + assign(arg, value) + if varkw: + assign(varkw, named) + elif named: + unexpected = next(iter(named)) + if isinstance(unexpected, unicode): + unexpected = unexpected.encode(sys.getdefaultencoding(), 'replace') + raise TypeError("%s() got an unexpected keyword argument '%s'" % + (f_name, unexpected)) + unassigned = num_args - len([arg for arg in args if is_assigned(arg)]) + if unassigned: + num_required = num_args - num_defaults + raise TypeError('%s() takes %s %d %s (%d given)' % ( + f_name, 'at least' if defaults else 'exactly', num_required, + 'arguments' if num_required > 1 else 'argument', num_total)) + return arg2value diff --git a/lib/wrapt/decorators.py b/lib/wrapt/decorators.py new file mode 100644 index 0000000000..dd6016e76d --- /dev/null +++ b/lib/wrapt/decorators.py @@ -0,0 +1,512 @@ +"""This module implements decorators for implementing other decorators +as well as some commonly used decorators. + +""" + +import sys + +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 + +if PY3: + string_types = str, + + import builtins + exec_ = getattr(builtins, "exec") + del builtins + +else: + string_types = basestring, + + def exec_(_code_, _globs_=None, _locs_=None): + """Execute code in a namespace.""" + if _globs_ is None: + frame = sys._getframe(1) + _globs_ = frame.f_globals + if _locs_ is None: + _locs_ = frame.f_locals + del frame + elif _locs_ is None: + _locs_ = _globs_ + exec("""exec _code_ in _globs_, _locs_""") + +from functools import partial +from inspect import ismethod, isclass, formatargspec +from collections import namedtuple +from threading import Lock, RLock + +try: + from inspect import signature +except ImportError: + pass + +from .wrappers import (FunctionWrapper, BoundFunctionWrapper, ObjectProxy, + CallableObjectProxy) + +# Adapter wrapper for the wrapped function which will overlay certain +# properties from the adapter function onto the wrapped function so that +# functions such as inspect.getargspec(), inspect.getfullargspec(), +# inspect.signature() and inspect.getsource() return the correct results +# one would expect. + +class _AdapterFunctionCode(CallableObjectProxy): + + def __init__(self, wrapped_code, adapter_code): + super(_AdapterFunctionCode, self).__init__(wrapped_code) + self._self_adapter_code = adapter_code + + @property + def co_argcount(self): + return self._self_adapter_code.co_argcount + + @property + def co_code(self): + return self._self_adapter_code.co_code + + @property + def co_flags(self): + return self._self_adapter_code.co_flags + + @property + def co_kwonlyargcount(self): + return self._self_adapter_code.co_kwonlyargcount + + @property + def co_varnames(self): + return self._self_adapter_code.co_varnames + +class _AdapterFunctionSurrogate(CallableObjectProxy): + + def __init__(self, wrapped, adapter): + super(_AdapterFunctionSurrogate, self).__init__(wrapped) + self._self_adapter = adapter + + @property + def __code__(self): + return _AdapterFunctionCode(self.__wrapped__.__code__, + self._self_adapter.__code__) + + @property + def __defaults__(self): + return self._self_adapter.__defaults__ + + @property + def __kwdefaults__(self): + return self._self_adapter.__kwdefaults__ + + @property + def __signature__(self): + if 'signature' not in globals(): + return self._self_adapter.__signature__ + else: + # Can't allow this to fail on Python 3 else it falls + # through to using __wrapped__, but that will be the + # wrong function we want to derive the signature + # from. Thus generate the signature ourselves. + + return signature(self._self_adapter) + + if PY2: + func_code = __code__ + func_defaults = __defaults__ + +class _BoundAdapterWrapper(BoundFunctionWrapper): + + @property + def __func__(self): + return _AdapterFunctionSurrogate(self.__wrapped__.__func__, + self._self_parent._self_adapter) + + if PY2: + im_func = __func__ + +class AdapterWrapper(FunctionWrapper): + + __bound_function_wrapper__ = _BoundAdapterWrapper + + def __init__(self, *args, **kwargs): + adapter = kwargs.pop('adapter') + super(AdapterWrapper, self).__init__(*args, **kwargs) + self._self_surrogate = _AdapterFunctionSurrogate( + self.__wrapped__, adapter) + self._self_adapter = adapter + + @property + def __code__(self): + return self._self_surrogate.__code__ + + @property + def __defaults__(self): + return self._self_surrogate.__defaults__ + + @property + def __kwdefaults__(self): + return self._self_surrogate.__kwdefaults__ + + if PY2: + func_code = __code__ + func_defaults = __defaults__ + + @property + def __signature__(self): + return self._self_surrogate.__signature__ + +class AdapterFactory(object): + def __call__(self, wrapped): + raise NotImplementedError() + +class DelegatedAdapterFactory(AdapterFactory): + def __init__(self, factory): + super(DelegatedAdapterFactory, self).__init__() + self.factory = factory + def __call__(self, wrapped): + return self.factory(wrapped) + +adapter_factory = DelegatedAdapterFactory + +# Decorator for creating other decorators. This decorator and the +# wrappers which they use are designed to properly preserve any name +# attributes, function signatures etc, in addition to the wrappers +# themselves acting like a transparent proxy for the original wrapped +# function so the wrapper is effectively indistinguishable from the +# original wrapped function. + +def decorator(wrapper=None, enabled=None, adapter=None): + # The decorator should be supplied with a single positional argument + # which is the wrapper function to be used to implement the + # decorator. This may be preceded by a step whereby the keyword + # arguments are supplied to customise the behaviour of the + # decorator. The 'adapter' argument is used to optionally denote a + # separate function which is notionally used by an adapter + # decorator. In that case parts of the function '__code__' and + # '__defaults__' attributes are used from the adapter function + # rather than those of the wrapped function. This allows for the + # argument specification from inspect.getargspec() and similar + # functions to be overridden with a prototype for a different + # function than what was wrapped. The 'enabled' argument provides a + # way to enable/disable the use of the decorator. If the type of + # 'enabled' is a boolean, then it is evaluated immediately and the + # wrapper not even applied if it is False. If not a boolean, it will + # be evaluated when the wrapper is called for an unbound wrapper, + # and when binding occurs for a bound wrapper. When being evaluated, + # if 'enabled' is callable it will be called to obtain the value to + # be checked. If False, the wrapper will not be called and instead + # the original wrapped function will be called directly instead. + + if wrapper is not None: + # Helper function for creating wrapper of the appropriate + # time when we need it down below. + + def _build(wrapped, wrapper, enabled=None, adapter=None): + if adapter: + if isinstance(adapter, AdapterFactory): + adapter = adapter(wrapped) + + if not callable(adapter): + ns = {} + if not isinstance(adapter, string_types): + adapter = formatargspec(*adapter) + exec_('def adapter{0}: pass'.format(adapter), ns, ns) + adapter = ns['adapter'] + + return AdapterWrapper(wrapped=wrapped, wrapper=wrapper, + enabled=enabled, adapter=adapter) + + return FunctionWrapper(wrapped=wrapped, wrapper=wrapper, + enabled=enabled) + + # The wrapper has been provided so return the final decorator. + # The decorator is itself one of our function wrappers so we + # can determine when it is applied to functions, instance methods + # or class methods. This allows us to bind the instance or class + # method so the appropriate self or cls attribute is supplied + # when it is finally called. + + def _wrapper(wrapped, instance, args, kwargs): + # We first check for the case where the decorator was applied + # to a class type. + # + # @decorator + # class mydecoratorclass(object): + # def __init__(self, arg=None): + # self.arg = arg + # def __call__(self, wrapped, instance, args, kwargs): + # return wrapped(*args, **kwargs) + # + # @mydecoratorclass(arg=1) + # def function(): + # pass + # + # In this case an instance of the class is to be used as the + # decorator wrapper function. If args was empty at this point, + # then it means that there were optional keyword arguments + # supplied to be used when creating an instance of the class + # to be used as the wrapper function. + + if instance is None and isclass(wrapped) and not args: + # We still need to be passed the target function to be + # wrapped as yet, so we need to return a further function + # to be able to capture it. + + def _capture(target_wrapped): + # Now have the target function to be wrapped and need + # to create an instance of the class which is to act + # as the decorator wrapper function. Before we do that, + # we need to first check that use of the decorator + # hadn't been disabled by a simple boolean. If it was, + # the target function to be wrapped is returned instead. + + _enabled = enabled + if type(_enabled) is bool: + if not _enabled: + return target_wrapped + _enabled = None + + # Now create an instance of the class which is to act + # as the decorator wrapper function. Any arguments had + # to be supplied as keyword only arguments so that is + # all we pass when creating it. + + target_wrapper = wrapped(**kwargs) + + # Finally build the wrapper itself and return it. + + return _build(target_wrapped, target_wrapper, + _enabled, adapter) + + return _capture + + # We should always have the target function to be wrapped at + # this point as the first (and only) value in args. + + target_wrapped = args[0] + + # Need to now check that use of the decorator hadn't been + # disabled by a simple boolean. If it was, then target + # function to be wrapped is returned instead. + + _enabled = enabled + if type(_enabled) is bool: + if not _enabled: + return target_wrapped + _enabled = None + + # We now need to build the wrapper, but there are a couple of + # different cases we need to consider. + + if instance is None: + if isclass(wrapped): + # In this case the decorator was applied to a class + # type but optional keyword arguments were not supplied + # for initialising an instance of the class to be used + # as the decorator wrapper function. + # + # @decorator + # class mydecoratorclass(object): + # def __init__(self, arg=None): + # self.arg = arg + # def __call__(self, wrapped, instance, + # args, kwargs): + # return wrapped(*args, **kwargs) + # + # @mydecoratorclass + # def function(): + # pass + # + # We still need to create an instance of the class to + # be used as the decorator wrapper function, but no + # arguments are pass. + + target_wrapper = wrapped() + + else: + # In this case the decorator was applied to a normal + # function, or possibly a static method of a class. + # + # @decorator + # def mydecoratorfuntion(wrapped, instance, + # args, kwargs): + # return wrapped(*args, **kwargs) + # + # @mydecoratorfunction + # def function(): + # pass + # + # That normal function becomes the decorator wrapper + # function. + + target_wrapper = wrapper + + else: + if isclass(instance): + # In this case the decorator was applied to a class + # method. + # + # class myclass(object): + # @decorator + # @classmethod + # def decoratorclassmethod(cls, wrapped, + # instance, args, kwargs): + # return wrapped(*args, **kwargs) + # + # instance = myclass() + # + # @instance.decoratorclassmethod + # def function(): + # pass + # + # This one is a bit strange because binding was actually + # performed on the wrapper created by our decorator + # factory. We need to apply that binding to the decorator + # wrapper function which which the decorator factory + # was applied to. + + target_wrapper = wrapper.__get__(None, instance) + + else: + # In this case the decorator was applied to an instance + # method. + # + # class myclass(object): + # @decorator + # def decoratorclassmethod(self, wrapped, + # instance, args, kwargs): + # return wrapped(*args, **kwargs) + # + # instance = myclass() + # + # @instance.decoratorclassmethod + # def function(): + # pass + # + # This one is a bit strange because binding was actually + # performed on the wrapper created by our decorator + # factory. We need to apply that binding to the decorator + # wrapper function which which the decorator factory + # was applied to. + + target_wrapper = wrapper.__get__(instance, type(instance)) + + # Finally build the wrapper itself and return it. + + return _build(target_wrapped, target_wrapper, _enabled, adapter) + + # We first return our magic function wrapper here so we can + # determine in what context the decorator factory was used. In + # other words, it is itself a universal decorator. + + return _build(wrapper, _wrapper) + + else: + # The wrapper still has not been provided, so we are just + # collecting the optional keyword arguments. Return the + # decorator again wrapped in a partial using the collected + # arguments. + + return partial(decorator, enabled=enabled, adapter=adapter) + +# Decorator for implementing thread synchronization. It can be used as a +# decorator, in which case the synchronization context is determined by +# what type of function is wrapped, or it can also be used as a context +# manager, where the user needs to supply the correct synchronization +# context. It is also possible to supply an object which appears to be a +# synchronization primitive of some sort, by virtue of having release() +# and acquire() methods. In that case that will be used directly as the +# synchronization primitive without creating a separate lock against the +# derived or supplied context. + +def synchronized(wrapped): + # Determine if being passed an object which is a synchronization + # primitive. We can't check by type for Lock, RLock, Semaphore etc, + # as the means of creating them isn't the type. Therefore use the + # existence of acquire() and release() methods. This is more + # extensible anyway as it allows custom synchronization mechanisms. + + if hasattr(wrapped, 'acquire') and hasattr(wrapped, 'release'): + # We remember what the original lock is and then return a new + # decorator which acceses and locks it. When returning the new + # decorator we wrap it with an object proxy so we can override + # the context manager methods in case it is being used to wrap + # synchronized statements with a 'with' statement. + + lock = wrapped + + @decorator + def _synchronized(wrapped, instance, args, kwargs): + # Execute the wrapped function while the original supplied + # lock is held. + + with lock: + return wrapped(*args, **kwargs) + + class _PartialDecorator(CallableObjectProxy): + + def __enter__(self): + lock.acquire() + return lock + + def __exit__(self, *args): + lock.release() + + return _PartialDecorator(wrapped=_synchronized) + + # Following only apply when the lock is being created automatically + # based on the context of what was supplied. In this case we supply + # a final decorator, but need to use FunctionWrapper directly as we + # want to derive from it to add context manager methods in in case it is + # being used to wrap synchronized statements with a 'with' statement. + + def _synchronized_lock(context): + # Attempt to retrieve the lock for the specific context. + + lock = vars(context).get('_synchronized_lock', None) + + if lock is None: + # There is no existing lock defined for the context we + # are dealing with so we need to create one. This needs + # to be done in a way to guarantee there is only one + # created, even if multiple threads try and create it at + # the same time. We can't always use the setdefault() + # method on the __dict__ for the context. This is the + # case where the context is a class, as __dict__ is + # actually a dictproxy. What we therefore do is use a + # meta lock on this wrapper itself, to control the + # creation and assignment of the lock attribute against + # the context. + + meta_lock = vars(synchronized).setdefault( + '_synchronized_meta_lock', Lock()) + + with meta_lock: + # We need to check again for whether the lock we want + # exists in case two threads were trying to create it + # at the same time and were competing to create the + # meta lock. + + lock = vars(context).get('_synchronized_lock', None) + + if lock is None: + lock = RLock() + setattr(context, '_synchronized_lock', lock) + + return lock + + def _synchronized_wrapper(wrapped, instance, args, kwargs): + # Execute the wrapped function while the lock for the + # desired context is held. If instance is None then the + # wrapped function is used as the context. + + with _synchronized_lock(instance or wrapped): + return wrapped(*args, **kwargs) + + class _FinalDecorator(FunctionWrapper): + + def __enter__(self): + self._self_lock = _synchronized_lock(self.__wrapped__) + self._self_lock.acquire() + return self._self_lock + + def __exit__(self, *args): + self._self_lock.release() + + return _FinalDecorator(wrapped=wrapped, wrapper=_synchronized_wrapper) diff --git a/lib/wrapt/importer.py b/lib/wrapt/importer.py new file mode 100644 index 0000000000..1eca4b6d6a --- /dev/null +++ b/lib/wrapt/importer.py @@ -0,0 +1,228 @@ +"""This module implements a post import hook mechanism styled after what is +described in PEP-369. Note that it doesn't cope with modules being reloaded. + +""" + +import sys +import threading + +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 + +if PY3: + import importlib + string_types = str, +else: + string_types = basestring, + +from .decorators import synchronized + +# The dictionary registering any post import hooks to be triggered once +# the target module has been imported. Once a module has been imported +# and the hooks fired, the list of hooks recorded against the target +# module will be truncacted but the list left in the dictionary. This +# acts as a flag to indicate that the module had already been imported. + +_post_import_hooks = {} +_post_import_hooks_init = False +_post_import_hooks_lock = threading.RLock() + +# Register a new post import hook for the target module name. This +# differs from the PEP-369 implementation in that it also allows the +# hook function to be specified as a string consisting of the name of +# the callback in the form 'module:function'. This will result in a +# proxy callback being registered which will defer loading of the +# specified module containing the callback function until required. + +def _create_import_hook_from_string(name): + def import_hook(module): + module_name, function = name.split(':') + attrs = function.split('.') + __import__(module_name) + callback = sys.modules[module_name] + for attr in attrs: + callback = getattr(callback, attr) + return callback(module) + return import_hook + +@synchronized(_post_import_hooks_lock) +def register_post_import_hook(hook, name): + # Create a deferred import hook if hook is a string name rather than + # a callable function. + + if isinstance(hook, string_types): + hook = _create_import_hook_from_string(hook) + + # Automatically install the import hook finder if it has not already + # been installed. + + global _post_import_hooks_init + + if not _post_import_hooks_init: + _post_import_hooks_init = True + sys.meta_path.insert(0, ImportHookFinder()) + + # Determine if any prior registration of a post import hook for + # the target modules has occurred and act appropriately. + + hooks = _post_import_hooks.get(name, None) + + if hooks is None: + # No prior registration of post import hooks for the target + # module. We need to check whether the module has already been + # imported. If it has we fire the hook immediately and add an + # empty list to the registry to indicate that the module has + # already been imported and hooks have fired. Otherwise add + # the post import hook to the registry. + + module = sys.modules.get(name, None) + + if module is not None: + _post_import_hooks[name] = [] + hook(module) + + else: + _post_import_hooks[name] = [hook] + + elif hooks == []: + # A prior registration of port import hooks for the target + # module was done and the hooks already fired. Fire the hook + # immediately. + + module = sys.modules[name] + hook(module) + + else: + # A prior registration of port import hooks for the target + # module was done but the module has not yet been imported. + + _post_import_hooks[name].append(hook) + +# Register post import hooks defined as package entry points. + +def _create_import_hook_from_entrypoint(entrypoint): + def import_hook(module): + __import__(entrypoint.module_name) + callback = sys.modules[entrypoint.module_name] + for attr in entrypoint.attrs: + callback = getattr(callback, attr) + return callback(module) + return import_hook + +def discover_post_import_hooks(group): + try: + import pkg_resources + except ImportError: + return + + for entrypoint in pkg_resources.iter_entry_points(group=group): + callback = _create_import_hook_from_entrypoint(entrypoint) + register_post_import_hook(callback, entrypoint.name) + +# Indicate that a module has been loaded. Any post import hooks which +# were registered against the target module will be invoked. If an +# exception is raised in any of the post import hooks, that will cause +# the import of the target module to fail. + +@synchronized(_post_import_hooks_lock) +def notify_module_loaded(module): + name = getattr(module, '__name__', None) + hooks = _post_import_hooks.get(name, None) + + if hooks: + _post_import_hooks[name] = [] + + for hook in hooks: + hook(module) + +# A custom module import finder. This intercepts attempts to import +# modules and watches out for attempts to import target modules of +# interest. When a module of interest is imported, then any post import +# hooks which are registered will be invoked. + +class _ImportHookLoader: + + def load_module(self, fullname): + module = sys.modules[fullname] + notify_module_loaded(module) + + return module + +class _ImportHookChainedLoader: + + def __init__(self, loader): + self.loader = loader + + def load_module(self, fullname): + module = self.loader.load_module(fullname) + notify_module_loaded(module) + + return module + +class ImportHookFinder: + + def __init__(self): + self.in_progress = {} + + @synchronized(_post_import_hooks_lock) + def find_module(self, fullname, path=None): + # If the module being imported is not one we have registered + # post import hooks for, we can return immediately. We will + # take no further part in the importing of this module. + + if not fullname in _post_import_hooks: + return None + + # When we are interested in a specific module, we will call back + # into the import system a second time to defer to the import + # finder that is supposed to handle the importing of the module. + # We set an in progress flag for the target module so that on + # the second time through we don't trigger another call back + # into the import system and cause a infinite loop. + + if fullname in self.in_progress: + return None + + self.in_progress[fullname] = True + + # Now call back into the import system again. + + try: + if PY3: + # For Python 3 we need to use find_loader() from + # the importlib module. It doesn't actually + # import the target module and only finds the + # loader. If a loader is found, we need to return + # our own loader which will then in turn call the + # real loader to import the module and invoke the + # post import hooks. + + loader = importlib.find_loader(fullname, path) + + if loader: + return _ImportHookChainedLoader(loader) + + else: + # For Python 2 we don't have much choice but to + # call back in to __import__(). This will + # actually cause the module to be imported. If no + # module could be found then ImportError will be + # raised. Otherwise we return a loader which + # returns the already loaded module and invokes + # the post import hooks. + + __import__(fullname) + + return _ImportHookLoader() + + finally: + del self.in_progress[fullname] + +# Decorator for marking that a function should be called as a post +# import hook when the target module is imported. + +def when_imported(name): + def register(hook): + register_post_import_hook(hook, name) + return hook + return register diff --git a/lib/wrapt/wrappers.py b/lib/wrapt/wrappers.py new file mode 100644 index 0000000000..56fe15b919 --- /dev/null +++ b/lib/wrapt/wrappers.py @@ -0,0 +1,899 @@ +import sys +import functools +import operator +import weakref +import inspect + +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 + +if PY3: + string_types = str, +else: + string_types = basestring, + +def with_metaclass(meta, *bases): + """Create a base class with a metaclass.""" + return meta("NewBase", bases, {}) + +class _ObjectProxyMethods(object): + + # We use properties to override the values of __module__ and + # __doc__. If we add these in ObjectProxy, the derived class + # __dict__ will still be setup to have string variants of these + # attributes and the rules of descriptors means that they appear to + # take precedence over the properties in the base class. To avoid + # that, we copy the properties into the derived class type itself + # via a meta class. In that way the properties will always take + # precedence. + + @property + def __module__(self): + return self.__wrapped__.__module__ + + @__module__.setter + def __module__(self, value): + self.__wrapped__.__module__ = value + + @property + def __doc__(self): + return self.__wrapped__.__doc__ + + @__doc__.setter + def __doc__(self, value): + self.__wrapped__.__doc__ = value + + # We similar use a property for __dict__. We need __dict__ to be + # explicit to ensure that vars() works as expected. + + @property + def __dict__(self): + return self.__wrapped__.__dict__ + + # Need to also propagate the special __weakref__ attribute for case + # where decorating classes which will define this. If do not define + # it and use a function like inspect.getmembers() on a decorator + # class it will fail. This can't be in the derived classes. + + @property + def __weakref__(self): + return self.__wrapped__.__weakref__ + +class _ObjectProxyMetaType(type): + def __new__(cls, name, bases, dictionary): + # Copy our special properties into the class so that they + # always take precedence over attributes of the same name added + # during construction of a derived class. This is to save + # duplicating the implementation for them in all derived classes. + + dictionary.update(vars(_ObjectProxyMethods)) + + return type.__new__(cls, name, bases, dictionary) + +class ObjectProxy(with_metaclass(_ObjectProxyMetaType)): + + __slots__ = '__wrapped__' + + def __init__(self, wrapped): + object.__setattr__(self, '__wrapped__', wrapped) + + # Python 3.2+ has the __qualname__ attribute, but it does not + # allow it to be overridden using a property and it must instead + # be an actual string object instead. + + try: + object.__setattr__(self, '__qualname__', wrapped.__qualname__) + except AttributeError: + pass + + @property + def __name__(self): + return self.__wrapped__.__name__ + + @__name__.setter + def __name__(self, value): + self.__wrapped__.__name__ = value + + @property + def __class__(self): + return self.__wrapped__.__class__ + + @__class__.setter + def __class__(self, value): + self.__wrapped__.__class__ = value + + @property + def __annotations__(self): + return self.__wrapped__.__anotations__ + + @__annotations__.setter + def __annotations__(self, value): + self.__wrapped__.__annotations__ = value + + def __dir__(self): + return dir(self.__wrapped__) + + def __str__(self): + return str(self.__wrapped__) + + if PY3: + def __bytes__(self): + return bytes(self.__wrapped__) + + def __repr__(self): + return '<%s at 0x%x for %s at 0x%x>' % ( + type(self).__name__, id(self), + type(self.__wrapped__).__name__, + id(self.__wrapped__)) + + def __reversed__(self): + return reversed(self.__wrapped__) + + if PY3: + def __round__(self): + return round(self.__wrapped__) + + def __lt__(self, other): + return self.__wrapped__ < other + + def __le__(self, other): + return self.__wrapped__ <= other + + def __eq__(self, other): + return self.__wrapped__ == other + + def __ne__(self, other): + return self.__wrapped__ != other + + def __gt__(self, other): + return self.__wrapped__ > other + + def __ge__(self, other): + return self.__wrapped__ >= other + + def __hash__(self): + return hash(self.__wrapped__) + + def __nonzero__(self): + return bool(self.__wrapped__) + + def __bool__(self): + return bool(self.__wrapped__) + + def __setattr__(self, name, value): + if name.startswith('_self_'): + object.__setattr__(self, name, value) + + elif name == '__wrapped__': + object.__setattr__(self, name, value) + try: + object.__delattr__(self, '__qualname__') + except AttributeError: + pass + try: + object.__setattr__(self, '__qualname__', value.__qualname__) + except AttributeError: + pass + + elif name == '__qualname__': + setattr(self.__wrapped__, name, value) + object.__setattr__(self, name, value) + + elif hasattr(type(self), name): + object.__setattr__(self, name, value) + + else: + setattr(self.__wrapped__, name, value) + + def __getattr__(self, name): + # If we are being to lookup '__wrapped__' then the + # '__init__()' method cannot have been called. + + if name == '__wrapped__': + raise ValueError('wrapper has not been initialised') + + return getattr(self.__wrapped__, name) + + def __delattr__(self, name): + if name.startswith('_self_'): + object.__delattr__(self, name) + + elif name == '__wrapped__': + raise TypeError('__wrapped__ must be an object') + + elif name == '__qualname__': + object.__delattr__(self, name) + delattr(self.__wrapped__, name) + + elif hasattr(type(self), name): + object.__delattr__(self, name) + + else: + delattr(self.__wrapped__, name) + + def __add__(self, other): + return self.__wrapped__ + other + + def __sub__(self, other): + return self.__wrapped__ - other + + def __mul__(self, other): + return self.__wrapped__ * other + + def __div__(self, other): + return operator.div(self.__wrapped__, other) + + def __truediv__(self, other): + return operator.truediv(self.__wrapped__, other) + + def __floordiv__(self, other): + return self.__wrapped__ // other + + def __mod__(self, other): + return self.__wrapped__ % other + + def __divmod__(self, other): + return divmod(self.__wrapped__, other) + + def __pow__(self, other, *args): + return pow(self.__wrapped__, other, *args) + + def __lshift__(self, other): + return self.__wrapped__ << other + + def __rshift__(self, other): + return self.__wrapped__ >> other + + def __and__(self, other): + return self.__wrapped__ & other + + def __xor__(self, other): + return self.__wrapped__ ^ other + + def __or__(self, other): + return self.__wrapped__ | other + + def __radd__(self, other): + return other + self.__wrapped__ + + def __rsub__(self, other): + return other - self.__wrapped__ + + def __rmul__(self, other): + return other * self.__wrapped__ + + def __rdiv__(self, other): + return operator.div(other, self.__wrapped__) + + def __rtruediv__(self, other): + return operator.truediv(other, self.__wrapped__) + + def __rfloordiv__(self, other): + return other // self.__wrapped__ + + def __rmod__(self, other): + return other % self.__wrapped__ + + def __rdivmod__(self, other): + return divmod(other, self.__wrapped__) + + def __rpow__(self, other, *args): + return pow(other, self.__wrapped__, *args) + + def __rlshift__(self, other): + return other << self.__wrapped__ + + def __rrshift__(self, other): + return other >> self.__wrapped__ + + def __rand__(self, other): + return other & self.__wrapped__ + + def __rxor__(self, other): + return other ^ self.__wrapped__ + + def __ror__(self, other): + return other | self.__wrapped__ + + def __iadd__(self, other): + self.__wrapped__ += other + return self + + def __isub__(self, other): + self.__wrapped__ -= other + return self + + def __imul__(self, other): + self.__wrapped__ *= other + return self + + def __idiv__(self, other): + self.__wrapped__ = operator.idiv(self.__wrapped__, other) + return self + + def __itruediv__(self, other): + self.__wrapped__ = operator.itruediv(self.__wrapped__, other) + return self + + def __ifloordiv__(self, other): + self.__wrapped__ //= other + return self + + def __imod__(self, other): + self.__wrapped__ %= other + return self + + def __ipow__(self, other): + self.__wrapped__ **= other + return self + + def __ilshift__(self, other): + self.__wrapped__ <<= other + return self + + def __irshift__(self, other): + self.__wrapped__ >>= other + return self + + def __iand__(self, other): + self.__wrapped__ &= other + return self + + def __ixor__(self, other): + self.__wrapped__ ^= other + return self + + def __ior__(self, other): + self.__wrapped__ |= other + return self + + def __neg__(self): + return -self.__wrapped__ + + def __pos__(self): + return +self.__wrapped__ + + def __abs__(self): + return abs(self.__wrapped__) + + def __invert__(self): + return ~self.__wrapped__ + + def __int__(self): + return int(self.__wrapped__) + + def __long__(self): + return long(self.__wrapped__) + + def __float__(self): + return float(self.__wrapped__) + + def __oct__(self): + return oct(self.__wrapped__) + + def __hex__(self): + return hex(self.__wrapped__) + + def __index__(self): + return operator.index(self.__wrapped__) + + def __len__(self): + return len(self.__wrapped__) + + def __contains__(self, value): + return value in self.__wrapped__ + + def __getitem__(self, key): + return self.__wrapped__[key] + + def __setitem__(self, key, value): + self.__wrapped__[key] = value + + def __delitem__(self, key): + del self.__wrapped__[key] + + def __getslice__(self, i, j): + return self.__wrapped__[i:j] + + def __setslice__(self, i, j, value): + self.__wrapped__[i:j] = value + + def __delslice__(self, i, j): + del self.__wrapped__[i:j] + + def __enter__(self): + return self.__wrapped__.__enter__() + + def __exit__(self, *args, **kwargs): + return self.__wrapped__.__exit__(*args, **kwargs) + + def __iter__(self): + return iter(self.__wrapped__) + +class CallableObjectProxy(ObjectProxy): + + def __call__(self, *args, **kwargs): + return self.__wrapped__(*args, **kwargs) + +class _FunctionWrapperBase(ObjectProxy): + + __slots__ = ('_self_instance', '_self_wrapper', '_self_enabled', + '_self_binding', '_self_parent') + + def __init__(self, wrapped, instance, wrapper, enabled=None, + binding='function', parent=None): + + super(_FunctionWrapperBase, self).__init__(wrapped) + + object.__setattr__(self, '_self_instance', instance) + object.__setattr__(self, '_self_wrapper', wrapper) + object.__setattr__(self, '_self_enabled', enabled) + object.__setattr__(self, '_self_binding', binding) + object.__setattr__(self, '_self_parent', parent) + + def __get__(self, instance, owner): + # This method is actually doing double duty for both unbound and + # bound derived wrapper classes. It should possibly be broken up + # and the distinct functionality moved into the derived classes. + # Can't do that straight away due to some legacy code which is + # relying on it being here in this base class. + # + # The distinguishing attribute which determines whether we are + # being called in an unbound or bound wrapper is the parent + # attribute. If binding has never occured, then the parent will + # be None. + # + # First therefore, is if we are called in an unbound wrapper. In + # this case we perform the binding. + # + # We have one special case to worry about here. This is where we + # are decorating a nested class. In this case the wrapped class + # would not have a __get__() method to call. In that case we + # simply return self. + # + # Note that we otherwise still do binding even if instance is + # None and accessing an unbound instance method from a class. + # This is because we need to be able to later detect that + # specific case as we will need to extract the instance from the + # first argument of those passed in. + + if self._self_parent is None: + if not inspect.isclass(self.__wrapped__): + descriptor = self.__wrapped__.__get__(instance, owner) + + return self.__bound_function_wrapper__(descriptor, instance, + self._self_wrapper, self._self_enabled, + self._self_binding, self) + + return self + + # Now we have the case of binding occuring a second time on what + # was already a bound function. In this case we would usually + # return ourselves again. This mirrors what Python does. + # + # The special case this time is where we were originally bound + # with an instance of None and we were likely an instance + # method. In that case we rebind against the original wrapped + # function from the parent again. + + if self._self_instance is None and self._self_binding == 'function': + descriptor = self._self_parent.__wrapped__.__get__( + instance, owner) + + return self._self_parent.__bound_function_wrapper__( + descriptor, instance, self._self_wrapper, + self._self_enabled, self._self_binding, + self._self_parent) + + return self + + def __call__(self, *args, **kwargs): + # If enabled has been specified, then evaluate it at this point + # and if the wrapper is not to be executed, then simply return + # the bound function rather than a bound wrapper for the bound + # function. When evaluating enabled, if it is callable we call + # it, otherwise we evaluate it as a boolean. + + if self._self_enabled is not None: + if callable(self._self_enabled): + if not self._self_enabled(): + return self.__wrapped__(*args, **kwargs) + elif not self._self_enabled: + return self.__wrapped__(*args, **kwargs) + + # This can occur where initial function wrapper was applied to + # a function that was already bound to an instance. In that case + # we want to extract the instance from the function and use it. + + if self._self_binding == 'function': + if self._self_instance is None: + instance = getattr(self.__wrapped__, '__self__', None) + if instance is not None: + return self._self_wrapper(self.__wrapped__, instance, + args, kwargs) + + # This is generally invoked when the wrapped function is being + # called as a normal function and is not bound to a class as an + # instance method. This is also invoked in the case where the + # wrapped function was a method, but this wrapper was in turn + # wrapped using the staticmethod decorator. + + return self._self_wrapper(self.__wrapped__, self._self_instance, + args, kwargs) + +class BoundFunctionWrapper(_FunctionWrapperBase): + + def __call__(self, *args, **kwargs): + # If enabled has been specified, then evaluate it at this point + # and if the wrapper is not to be executed, then simply return + # the bound function rather than a bound wrapper for the bound + # function. When evaluating enabled, if it is callable we call + # it, otherwise we evaluate it as a boolean. + + if self._self_enabled is not None: + if callable(self._self_enabled): + if not self._self_enabled(): + return self.__wrapped__(*args, **kwargs) + elif not self._self_enabled: + return self.__wrapped__(*args, **kwargs) + + # We need to do things different depending on whether we are + # likely wrapping an instance method vs a static method or class + # method. + + if self._self_binding == 'function': + if self._self_instance is None: + # This situation can occur where someone is calling the + # instancemethod via the class type and passing the instance + # as the first argument. We need to shift the args before + # making the call to the wrapper and effectively bind the + # instance to the wrapped function using a partial so the + # wrapper doesn't see anything as being different. + + if not args: + raise TypeError('missing 1 required positional argument') + + instance, args = args[0], args[1:] + wrapped = functools.partial(self.__wrapped__, instance) + return self._self_wrapper(wrapped, instance, args, kwargs) + + return self._self_wrapper(self.__wrapped__, self._self_instance, + args, kwargs) + + else: + # As in this case we would be dealing with a classmethod or + # staticmethod, then _self_instance will only tell us whether + # when calling the classmethod or staticmethod they did it via an + # instance of the class it is bound to and not the case where + # done by the class type itself. We thus ignore _self_instance + # and use the __self__ attribute of the bound function instead. + # For a classmethod, this means instance will be the class type + # and for a staticmethod it will be None. This is probably the + # more useful thing we can pass through even though we loose + # knowledge of whether they were called on the instance vs the + # class type, as it reflects what they have available in the + # decoratored function. + + instance = getattr(self.__wrapped__, '__self__', None) + + return self._self_wrapper(self.__wrapped__, instance, args, + kwargs) + +class FunctionWrapper(_FunctionWrapperBase): + + __bound_function_wrapper__ = BoundFunctionWrapper + + def __init__(self, wrapped, wrapper, enabled=None): + # What it is we are wrapping here could be anything. We need to + # try and detect specific cases though. In particular, we need + # to detect when we are given something that is a method of a + # class. Further, we need to know when it is likely an instance + # method, as opposed to a class or static method. This can + # become problematic though as there isn't strictly a fool proof + # method of knowing. + # + # The situations we could encounter when wrapping a method are: + # + # 1. The wrapper is being applied as part of a decorator which + # is a part of the class definition. In this case what we are + # given is the raw unbound function, classmethod or staticmethod + # wrapper objects. + # + # The problem here is that we will not know we are being applied + # in the context of the class being set up. This becomes + # important later for the case of an instance method, because in + # that case we just see it as a raw function and can't + # distinguish it from wrapping a normal function outside of + # a class context. + # + # 2. The wrapper is being applied when performing monkey + # patching of the class type afterwards and the method to be + # wrapped was retrieved direct from the __dict__ of the class + # type. This is effectively the same as (1) above. + # + # 3. The wrapper is being applied when performing monkey + # patching of the class type afterwards and the method to be + # wrapped was retrieved from the class type. In this case + # binding will have been performed where the instance against + # which the method is bound will be None at that point. + # + # This case is a problem because we can no longer tell if the + # method was a static method, plus if using Python3, we cannot + # tell if it was an instance method as the concept of an + # unnbound method no longer exists. + # + # 4. The wrapper is being applied when performing monkey + # patching of an instance of a class. In this case binding will + # have been perfomed where the instance was not None. + # + # This case is a problem because we can no longer tell if the + # method was a static method. + # + # Overall, the best we can do is look at the original type of the + # object which was wrapped prior to any binding being done and + # see if it is an instance of classmethod or staticmethod. In + # the case where other decorators are between us and them, if + # they do not propagate the __class__ attribute so that the + # isinstance() checks works, then likely this will do the wrong + # thing where classmethod and staticmethod are used. + # + # Since it is likely to be very rare that anyone even puts + # decorators around classmethod and staticmethod, likelihood of + # that being an issue is very small, so we accept it and suggest + # that those other decorators be fixed. It is also only an issue + # if a decorator wants to actually do things with the arguments. + # + # As to not being able to identify static methods properly, we + # just hope that that isn't something people are going to want + # to wrap, or if they do suggest they do it the correct way by + # ensuring that it is decorated in the class definition itself, + # or patch it in the __dict__ of the class type. + # + # So to get the best outcome we can, whenever we aren't sure what + # it is, we label it as a 'function'. If it was already bound and + # that is rebound later, we assume that it will be an instance + # method and try an cope with the possibility that the 'self' + # argument it being passed as an explicit argument and shuffle + # the arguments around to extract 'self' for use as the instance. + + if isinstance(wrapped, classmethod): + binding = 'classmethod' + + elif isinstance(wrapped, staticmethod): + binding = 'staticmethod' + + elif hasattr(wrapped, '__self__'): + if inspect.isclass(wrapped.__self__): + binding = 'classmethod' + else: + binding = 'function' + + else: + binding = 'function' + + super(FunctionWrapper, self).__init__(wrapped, None, wrapper, + enabled, binding) + +try: + from ._wrappers import (ObjectProxy, CallableObjectProxy, FunctionWrapper, + BoundFunctionWrapper, _FunctionWrapperBase) +except ImportError: + pass + +# Helper functions for applying wrappers to existing functions. + +def resolve_path(module, name): + if isinstance(module, string_types): + __import__(module) + module = sys.modules[module] + + parent = module + + path = name.split('.') + attribute = path[0] + + original = getattr(parent, attribute) + for attribute in path[1:]: + parent = original + + # We can't just always use getattr() because in doing + # that on a class it will cause binding to occur which + # will complicate things later and cause some things not + # to work. For the case of a class we therefore access + # the __dict__ directly. To cope though with the wrong + # class being given to us, or a method being moved into + # a base class, we need to walk the class heirarchy to + # work out exactly which __dict__ the method was defined + # in, as accessing it from __dict__ will fail if it was + # not actually on the class given. Fallback to using + # getattr() if we can't find it. If it truly doesn't + # exist, then that will fail. + + if inspect.isclass(original): + for cls in inspect.getmro(original): + if attribute in vars(original): + original = vars(original)[attribute] + break + else: + original = getattr(original, attribute) + + else: + original = getattr(original, attribute) + + return (parent, attribute, original) + +def apply_patch(parent, attribute, replacement): + setattr(parent, attribute, replacement) + +def wrap_object(module, name, factory, args=(), kwargs={}): + (parent, attribute, original) = resolve_path(module, name) + wrapper = factory(original, *args, **kwargs) + apply_patch(parent, attribute, wrapper) + return wrapper + +# Function for applying a proxy object to an attribute of a class +# instance. The wrapper works by defining an attribute of the same name +# on the class which is a descriptor and which intercepts access to the +# instance attribute. Note that this cannot be used on attributes which +# are themselves defined by a property object. + +class AttributeWrapper(object): + + def __init__(self, attribute, factory, args, kwargs): + self.attribute = attribute + self.factory = factory + self.args = args + self.kwargs = kwargs + + def __get__(self, instance, owner): + value = instance.__dict__[self.attribute] + return self.factory(value, *self.args, **self.kwargs) + + def __set__(self, instance, value): + instance.__dict__[self.attribute] = value + + def __delete__(self, instance): + del instance.__dict__[self.attribute] + +def wrap_object_attribute(module, name, factory, args=(), kwargs={}): + path, attribute = name.rsplit('.', 1) + parent = resolve_path(module, path)[2] + wrapper = AttributeWrapper(attribute, factory, args, kwargs) + apply_patch(parent, attribute, wrapper) + return wrapper + +# Functions for creating a simple decorator using a FunctionWrapper, +# plus short cut functions for applying wrappers to functions. These are +# for use when doing monkey patching. For a more featured way of +# creating decorators see the decorator decorator instead. + +def function_wrapper(wrapper): + def _wrapper(wrapped, instance, args, kwargs): + target_wrapped = args[0] + if instance is None: + target_wrapper = wrapper + elif inspect.isclass(instance): + target_wrapper = wrapper.__get__(None, instance) + else: + target_wrapper = wrapper.__get__(instance, type(instance)) + return FunctionWrapper(target_wrapped, target_wrapper) + return FunctionWrapper(wrapper, _wrapper) + +def wrap_function_wrapper(module, name, wrapper): + return wrap_object(module, name, FunctionWrapper, (wrapper,)) + +def patch_function_wrapper(module, name): + def _wrapper(wrapper): + return wrap_object(module, name, FunctionWrapper, (wrapper,)) + return _wrapper + +def transient_function_wrapper(module, name): + def _decorator(wrapper): + def _wrapper(wrapped, instance, args, kwargs): + target_wrapped = args[0] + if instance is None: + target_wrapper = wrapper + elif inspect.isclass(instance): + target_wrapper = wrapper.__get__(None, instance) + else: + target_wrapper = wrapper.__get__(instance, type(instance)) + def _execute(wrapped, instance, args, kwargs): + (parent, attribute, original) = resolve_path(module, name) + replacement = FunctionWrapper(original, target_wrapper) + setattr(parent, attribute, replacement) + try: + return wrapped(*args, **kwargs) + finally: + setattr(parent, attribute, original) + return FunctionWrapper(target_wrapped, _execute) + return FunctionWrapper(wrapper, _wrapper) + return _decorator + +# A weak function proxy. This will work on instance methods, class +# methods, static methods and regular functions. Special treatment is +# needed for the method types because the bound method is effectively a +# transient object and applying a weak reference to one will immediately +# result in it being destroyed and the weakref callback called. The weak +# reference is therefore applied to the instance the method is bound to +# and the original function. The function is then rebound at the point +# of a call via the weak function proxy. + +def _weak_function_proxy_callback(ref, proxy, callback): + if proxy._self_expired: + return + + proxy._self_expired = True + + # This could raise an exception. We let it propagate back and let + # the weakref.proxy() deal with it, at which point it generally + # prints out a short error message direct to stderr and keeps going. + + if callback is not None: + callback(proxy) + +class WeakFunctionProxy(ObjectProxy): + + __slots__ = ('_self_expired', '_self_instance') + + def __init__(self, wrapped, callback=None): + # We need to determine if the wrapped function is actually a + # bound method. In the case of a bound method, we need to keep a + # reference to the original unbound function and the instance. + # This is necessary because if we hold a reference to the bound + # function, it will be the only reference and given it is a + # temporary object, it will almost immediately expire and + # the weakref callback triggered. So what is done is that we + # hold a reference to the instance and unbound function and + # when called bind the function to the instance once again and + # then call it. Note that we avoid using a nested function for + # the callback here so as not to cause any odd reference cycles. + + _callback = callback and functools.partial( + _weak_function_proxy_callback, proxy=self, + callback=callback) + + self._self_expired = False + + if isinstance(wrapped, _FunctionWrapperBase): + self._self_instance = weakref.ref(wrapped._self_instance, + _callback) + + if wrapped._self_parent is not None: + super(WeakFunctionProxy, self).__init__( + weakref.proxy(wrapped._self_parent, _callback)) + + else: + super(WeakFunctionProxy, self).__init__( + weakref.proxy(wrapped, _callback)) + + return + + try: + self._self_instance = weakref.ref(wrapped.__self__, _callback) + + super(WeakFunctionProxy, self).__init__( + weakref.proxy(wrapped.__func__, _callback)) + + except AttributeError: + self._self_instance = None + + super(WeakFunctionProxy, self).__init__( + weakref.proxy(wrapped, _callback)) + + def __call__(self, *args, **kwargs): + # We perform a boolean check here on the instance and wrapped + # function as that will trigger the reference error prior to + # calling if the reference had expired. + + instance = self._self_instance and self._self_instance() + function = self.__wrapped__ and self.__wrapped__ + + # If the wrapped function was originally a bound function, for + # which we retained a reference to the instance and the unbound + # function we need to rebind the function and then call it. If + # not just called the wrapped function. + + if instance is None: + return self.__wrapped__(*args, **kwargs) + + return function.__get__(instance, type(instance))(*args, **kwargs) diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 507a54b766..08dff25b59 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -30,11 +30,11 @@ def providers(): for provider in providers: # Load provider test config - input_file = os.path.join(__location__, provider.type, provider.name, provider.name + '_test.yml') + input_file = os.path.join(__location__, provider.type, provider.name, provider.name + '_test.yaml') with open(input_file, 'r') as stream: - data = yaml.load(stream) + test_data = yaml.load(stream) # Update provider with test data - provider.data.update(data) + provider.data.update(test_data) return providers diff --git a/tests/providers/test_parser.py b/tests/providers/test_parser.py index 95dd416216..6f400fde83 100644 --- a/tests/providers/test_parser.py +++ b/tests/providers/test_parser.py @@ -2,9 +2,10 @@ """Provider parser tests.""" from __future__ import unicode_literals -import codecs import os +import vcr + __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) @@ -15,16 +16,19 @@ def test_parser_daily(providers, limit=3): for provider in providers: # When - html = codecs.open(os.path.join(__location__, provider.type, provider.name, - provider.name + '_daily.html'), 'r') + html = os.path.join(__location__, provider.type, provider.name, + provider.name + '_daily.yaml') - actual = provider.klass.parse(html.read(), provider.data['daily']['mode']) + with vcr.use_cassette(html) as test: - # Then - for i, result in enumerate(actual): - assert result == provider.data['daily']['data'][i] - if i + 1 == limit: - break + actual = provider.klass.parse(test.responses[0]['body']['string'], + provider.data['daily']['mode']) + + # Then + for i, result in enumerate(actual): + assert result == provider.data['daily']['data'][i] + if i + 1 == limit: + break def test_parser_backlog(providers, limit=2): @@ -33,10 +37,13 @@ def test_parser_backlog(providers, limit=2): for provider in providers: # When - html = codecs.open(os.path.join(__location__, provider.type, provider.name, - provider.name + '_backlog.html'), 'r') + html = os.path.join(__location__, provider.type, provider.name, + provider.name + '_backlog.yaml') + + with vcr.use_cassette(html) as test: - actual = provider.klass.parse(html.read(), provider.data['backlog']['mode']) + actual = provider.klass.parse(test.responses[0]['body']['string'], + provider.data['backlog']['mode']) # Then for i, result in enumerate(actual): diff --git a/tests/providers/test_search.py b/tests/providers/test_search.py new file mode 100644 index 0000000000..62be0b0017 --- /dev/null +++ b/tests/providers/test_search.py @@ -0,0 +1,38 @@ +# coding=utf-8 +"""Provider search tests.""" +from __future__ import unicode_literals + +import os + +from vcr import VCR + + +__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) + + +vcr = VCR(path_transformer=VCR.ensure_suffix('.yaml'), + record_mode='once', + match_on=['method', 'scheme', 'host', 'port', 'path', 'query', 'body'], + cassette_library_dir=__location__) + + +def test_search_backlog(providers): + + # Given + for provider in providers: + + with vcr.use_cassette(os.path.join(provider.type, provider.name, provider.name + '_backlog')): + + search_strings = {provider.data['backlog']['mode']: provider.data['backlog']['search_strings']} + provider.klass.search(search_strings) + + +def test_search_daily(providers): + + # Given + for provider in providers: + + with vcr.use_cassette(os.path.join(provider.type, provider.name, provider.name + '_daily')): + + search_strings = {provider.data['daily']['mode']: provider.data['daily']['search_strings']} + provider.klass.search(search_strings) diff --git a/tests/providers/torrent/extratorrent/extratorrent_backlog.html b/tests/providers/torrent/extratorrent/extratorrent_backlog.html deleted file mode 100644 index d2207196a6..0000000000 --- a/tests/providers/torrent/extratorrent/extratorrent_backlog.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - - - - - - Search for 'Elementary S05E07' torrents - Page 1 - ExtraTorrent.cc The World's Largest BitTorrent System - - - - - - - - - - - - - - - - - - - - - - -
-
ExtraTorrent.cc - The Largest Bittorent SystemLogin   |   Register
-
- - - - - -
-
Latest Articles
Most searched
Hot torrents
First Cams
View Torrent Info: Max Steel 2016 HC HDCAM UnKnOwN
View Torrent Info: Allied 2016 HDCAM x264 AC3 HQMic-CPG
View Torrent Info: Underworld Blood Wars 2016 HDCAM NAKRO
View Torrent Info: Moana 2016 HD-TS XviD AC3-CPG
Hot torrents
XVID DIVX
View Torrent Info: Criticsized.2016.HDRip.XviD.AC3-EVO
View Torrent Info: Stevie.D.2016.HDRip.XviD.AC3-EVO
View Torrent Info: American.Honey.2016.HDRip.XviD.AC3-EVO
View Torrent Info: City.of.Sin.2017.HDRip.XviD.AC3-EVO
Hot torrents
H264 X264
View Torrent Info: American.Honey.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Independence.Day.1996.Extended.BluRay.720p.DTS.AC3.x264-ETRG
View Torrent Info: When.The.Bough.Breaks.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Incarnate.2016.720p.WEBRip.x264.AAC-ETRG
Hot torrents
Television
View Torrent Info: Chance.S01E10.WEB.H264-DEFLATE[ettv]
View Torrent Info: NCIS.S14E10.HDTV.x264-LOL[ettv]
View Torrent Info: Bull.2016.S01E09.HDTV.x264-LOL[ettv]
View Torrent Info: NCIS.New.Orleans.S03E09.HDTV.x264-LOL[ettv]
View Torrent Info: Jijibisha.(2016)-HEVC-Tiny.Rip-x265.AAC.Esubs-400MB-[DDR]
View Torrent Info: Tai Chi Zero (2012) x264 720p BluRay Eng Subs {Dual Audio} [Hindi DD 2.0   Chinese 5.1] Exclusive By DREDD
View Torrent Info: Maalik (2016) HDRIP 1GBRIP x265 AAC Esub [DDR]
View Torrent Info: Born to Defense (1986) DVDRip x264 Eng Subs [Dual Audio] [Hindi 2.0 - English 2.0] Exclusive By -=!Dr.STAR!=-
- -
30s
Chat
To add new messages please Login or Register for FREE
- - - - - -
- - - -
Warning! Protect Yourself from Lawsuits and Fines!
Your IP Address is 87.78.209.173.   Location is Germany
Your IP Address is visible to EVERYONE. Hide your IP ADDRESS with a VPN while torrenting!
ExtraTorrent strongly recommends using Trust.Zone VPN to anonymize your torrenting. It's FREE!
- - -
- - - -
-ExtraTorrent.cc > Search for Torrents -
-

- -

Search for Torrents

- -
- -
-
- - - - - - - - - - - - - -
Search
Category - -
-
-
- - -
Safety Recommendation:   Download Torrents Anonymously!

Your IP Address is 87.78.209.173.   Location is Germany
Torrenting does not guarantee ANONYMITY! Your Internet Provider and Government can track your torrent activity!
ExtraTorrent strongly recommends using Trust.Zone VPN to anonymize your torrenting. Protect yourself with VPN - Save ExtraTorrent!

- - - - -

Search for torrents results: - - RSS: Search 'Elementary S05E07' Torrents - -

-total 6 torrents found -  (watch for "Elementary S05E07" new coming torrents watch for Elementary S05E07 new coming torrents)

- - - - - - -
-   - - Torrents per page: - -
- - - - - - - -
  Sort
Added Size SortS SortL SortHealth
DownloadMagnet linkBrowseEnglish Elementary S05E07 (1080p WEBRip x265 HEVC 10bit AAC 5.1 Qman) [UTR] 10.00 in Elementary, by 21d361.52 MB4914
DownloadMagnet linkBrowseEnglish Elementary.S05E07.1080p.HDTV.x264[state] in Elementary, by 23d434.28 MB21945
DownloadMagnet linkBrowseEnglish Elementary.S05E07.HDTV.XviD-FUM[ettv] in Other, by 23d348.20 MB3514351
DownloadMagnet linkBrowseEnglish Elementary.S05E07.1080p.HDTV.X264-DIMENSION[ettv] 10.00 in Other, by 23d3.69 GB18049
DownloadMagnet linkBrowseEnglish Elementary.S05E07.HDTV.x264-LOL[ettv] 10.00 in Other, by 23d203.37 MB4229302
DownloadMagnet linkBrowseEnglish Elementary.S05E07.720p.HDTV.X264-DIMENSION[ettv] 9.00 in Other, by 23d741.07 MB671151

- - - - - -
-   - - Torrents per page: - -
- - -
-

Recent Searches

planes hindi     zombieland 2 dvdrip jaybob     the wire s04e02 720p     ETTV     game of thrones s02e01 winter is ing hdtv xvid-fqm     dvd     water under the bridge     The Warlords 2007     Luke Cage S01E09 720p     the simpsons se01 720p     the karate kid, part ii 720p     conguring2     software     lil flip carmine     gossip girl s01e03 720p     casting     marvels agent of s.h.i.e.l.d. s04e09     adult     the vampire diaries s05e09 720p     Now You See Me 1     supergirl s02e06 720p     zootopia 720p     sausage party 720p     fear, inc. 720p     movie     the middle s08e07     DDR     elementary s05e07     Westworld     angus 1995 720p web-dl h264-ctrlhd [publichd]     toy story 720p     suicide squad 720p     the conjuring     The Marine REPACK TS XviD TFF[ ]     the lord of the rings - the two towers 720p     anime     wildonesfloride     K-camp ft chris brown lil bit     the legend of korra s03e 720p     the real housewives of atlanta     890 bridge training eur multi5 nds eximius(torrent     south park 1 a 15 temporada dublado     the BFG     SISTER SLEDGE     sex     the middle s08e09 720p     Shawn mendes     music     porn     the 7d     search     the witching 720p     the walking dead     van helsing s01e04 720p     ultimate r&b songs     ETRG     Francesca's Juggies 3     bronchial asthma     game of thrones s02e 720p     zodiac 720p     z nation s01e02 720p     

- -
- - - - - - - - - - - - - - - -
- - -
-
-
- Home - - Browse Torrents - - Upload Torrent - - Stat - - Forum - - FAQ - - Login
- ExtraTorrent.cc is in compliance with copyrights
- BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
- Can't load ExtraTorrent? Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com - extratorrentlive.com
- 2006-2016 ExtraTorrent.cc3 -
- - -
- -
- - - - - - diff --git a/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml b/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml new file mode 100644 index 0000000000..0eed50c2f5 --- /dev/null +++ b/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml @@ -0,0 +1,277 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode 'Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 + Firefox/31.0'] + method: GET + uri: http://extratorrent.cc/search/?search=Arrow+S05E07&x=0&y=0&new=1 + response: + body: {string: "\n\n\n \n \n \n \n \n \n + \ \n \n + \ Search for 'Arrow S05E07' torrents - Page 1 - ExtraTorrent.cc The + World's Largest BitTorrent System\n \n \n + \ \n\n\n\n\n \n\n\n \n\n\n \n\n\n \n\n
\n + \
\"ExtraTorrent.cc Advanced SearchLogin   |   Register
\n + \
\n
Browse Torrents
|Search Cloud|Site Stats
|Community
|FAQ 
\n
\n \n \n \n + \ \n \n
\n + \
Latest Articles
+ \
Most + searched
\"Hot
First Cams
\"View
\"View
\"View
\"View
\"Hot
XVID DIVX
\"View
\"View
\"View
\"View
\"Hot
H264 X264
\"View
\"View
\"View
\"View
\"Hot
Television
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\n \n
30s
Chat
To add new messages please + Login or Register for FREE
\n\n
\n
\n\n\n\n
\n \n\n \n \n\n \n
\n\n\n\n
{\"ct\":\"UAWyjYNPON2EEUgR5m\\/jk\\/M5RTEJZ4nRCQLzMG2p9jl\\/Il6ofVlv4Oa39jiNFA8Ah4UgrmROV4pFG7KvISxR+gWOq8wbEFg6fLhKyJ2\\/iLx0Y1zyamcdCy+s7993U6WEHFNNvvSFYRF9pyItXfDIU8PF9ZZhlPyPtxuecpifT8NXjY45hA8Za5XtXMsQJy4aEhbCZXC2FEEjJ9Lmgq\\/WdrnCN1eerXor1RIksdlwCANPkLe\\/RmYUZQLqXJS1Ke1wOssAw70oWfDKPaxkyaaSOlCSehqhGMJ\\/OU2UpY7FNkmYXrKQddaycVjoKh8MSD2GSASAqXZaYlDkIEjCDU8k52PB+bYIiHf\\/u2k7HA0Q7jqZwpiCl22sjdhzLlhLsRWTU1xyaQg0EaXKl6cuxMVQ06LLIVyBv4PRTWGve9M9dexf3sPJ9GclAVIi9JvXyBjpNxb+erD1EajGZApZhKO5+NxbYndTjRDcaWApXlSJc\\/IkJssM9HTArI1jKJct\\/yZmG1sLSoL1ExGYGtSjYy16hKARNNrts4RhVjkOeVbyvz30pBCrGNdpz0IgTsJQTpL\\/uycLuYDAFrKk6Vx\\/bftp8BQknWYNVT0jErIuf97EOu5ZuBhZRYC5R+TiKggsVTdJzZYbFocP3dirEGupkhzk5F1SxnSoA+dVkFMiZCrSxYN0P8wsFKhf4fkHZdYm7PtZxphcS4ZoP8OkP0hq4F26hLaL5czlIIXI4TqdT1zKVLvFhVhQWftGa25WTKSQlINoxZerdrGeaGXmoNGg9NokzDvM3UXzD+OY2MRGyvf4nhmHiHKNDUjA9Yt2k7zpfDOPIKf\\/jVUM4qKEAqQdwMJZ0tfTnsgnetgT7V+W+0JiCTCB6nbTzOgoTm9EM49vJxaNMAlpbtuIDTcWhTGocWgGkbd1ZzN1Q17GAAM+Zqz0dr3ytiErBXebWBeWPOU6M\\/kZnf5RlTG9qkW6IgVbKE1DhtiuNgIrxXYsVD+DmA5Vbt6tbD7ucjXHMNXzMdE9wYf9GZYKkfceLPEBkFJUHQ3EkBgr7LI0srD6hN3gNZtLI2dUnO2sM0xwT0rVxsugoZIffse\\/00RbsIqmXSbuadvqL2wI2CwBr9DQHSk15mtKtKnBVQ+JYBN3eRuyGa982y7NgS8Bjwbr7IFfhhprP0Jm5Eg+yq59ADL0JBNQdexTz8S8\\/p6bTXwuEJoKKcp1gXsH8ccm7tmKoCWjCcU+TT6D8KuCY\\/fzrwPqnZXDXNwH5SiLsZT6eK3QB2IT2LMoiEI+JuCz9cj+n\\/BuGDVlwaZR5Z\\/bZMXzJ\\/ZRCKIXaIXkzKV+GMu+m+O4f2mhuaA0kvwAeT2TXVVxeFOkcjR0Ei\\/oNHPjH2w1tjJdia1hfsk\\/QdNl+14UPexMeqts2Y2AR0dqwmk41igQG\\/mmGRGZ7VRHVihM9TyizaYU8L2ByC7TnLnlY4FB27Q1ndiRBQbC3C25k4Txyv6m5eFtEzU60Zp2Jt9mzvzfVVT7FIwdt9\\/xwliKEBd7fP\\/gVLjPNxqZszGUtuBtXW9K6saLVNmRusDnCgpbluOouWZ86TeMmJGNU\\/gKbjKi53DqAnl\\/pOAnDZunzZIOH3HMRv8IdgfLGysjwPHsWxzxtP\\/pv15zHe0QxGRbgbrJg6sBABaSBFroyA5\\/2BK0sqUQ\\/e3TvFZUP5A1JJO82SEWugFMZ1Yzc1g71dKtww4bt8njH8YNKrBlL2A12Ugsl933qrbpw41\\/odxNnCPpfhmaZwx1VsAquLXga4LhAMKZxuC+mLAesieb9wxHvJR25IcifEKnUGSz9uv1z9mBT+6IbTRRaWioY9ZkxOECjhTaFi8B+S4D2jBiX+n2qXbG6ZrBCWm8I\\/l0uQv7qotqO1vmzOf7W1by1U5VSh0vQg90\\/RDfCfYRru7WTRhCYSLmmVozmHmYlP7xhxFO6nglLhM1imglLlBPvU47xyLvfilIEpasJtbFL9aJRZ7dC1u8SxOE2JtAy9wWEx\\/JnXse73ZhVh6Qfqcgz+jzDS8oASVJFWbLlyf6nHfU35TEMkKDtuZQRCK71+w5rl2iG1Fonn\\/uAzZYOwEClKX+ERMeZElFIn0Wj\\/yFljPOd2lzODKt5eZsgragMJgRXvNxEhRAkMHwur0K8Gc0BGzbXJEhYM2eeKd5LLvwito\\/r07FQsJyWkUE1+0GQ3Wm6pr4iy7Hy409glML9ldJ4Sc+VYtY4auvI2OHljRKiPcTOYIpWELSEaSVRpg\\/ITyRTGaVoq0Z\\/ZRmoL2NpBHNdk95DbjUv0B6SWdaFTEz3z8bXJqgqLKblGrmF5K5f4tcOgwBOQ2XDHYyMHdo+qFs0AsHNH6QpO+uoLLewrwXNq9QRBQg+ISVTi47dwbL03tE9ODoNui8+9T+JMb7Xc0ILK+krY2zzIxOKe8jbuuT0XZUbbiiB8\\/WS7fTtchK\\/vjyIes1UYE3P28yR4m9Wbay7CCs4LFMLYHnBXVTHXs4PCfN\\/6NW+yAOwsKIx6w9j2dkMDV0uYOs7CxbpMBwbJB6qKMPWh+jmw+kQ87GMIgz5iaqqId617327o4Si+bvWFwI35DTyd0uCy0b1tq7OIA\\/CIdba\\/\\/M7QRNatK41Yr35e6oUiI+3IZtb\\/twr5VN5KTXhluqjgmTYovTCIwDPcNLxldQT5iAPMb4TZTlFYKMjPAKLMtqlo\\/eyVltf719TxZJk6Ff9I8Mjc5b\\/nlWLQY\\/mixX3UN\\/IswlhuL0vjyurBEu2oK2RUdWGBIodPHHc9CYJMeaR3yAE\\/x+3MwgLDLKPS8NyH31Boqsf2CRb6oaadM2\\/C4EhzAcidZltTmwbbWj9GqtTlA0lg\\/lxqqrpaNfg6fdr0hwyRF8V\\/y3t4Q4WqBCb5jDToGAzec5F0Y4+1syajNqtAFn24unBqfv79TYVgyNqYOpuM\\/xbICi7EMOJa5QAVG8cZmkPxVuFZYLj7QBxGyWDj6CfhieMRHXkMcFXbz7h9G37j1G4kk+tFQuqnBiou+QBUJeObh8oSgQcJFvdBHisy4PdSOaNVkyPU03uqC0RRnkRGOb9HeQxu1\\/jgQAO4nSaqVdQbQdqwBcAchnQ9ke9xi+7W4yA9VtH7dfqZbEPqYTffe92GbEjrMz2hhK2kwS94XLFMPS4R50AQw6aaBampNCfzakB4KJlxD86Q5I+R1neGLM6uj72XfCUcE4D9qk8cDkwytrfAaps0M5XNHleetTLSX6Y+l40H+zXFAvAcACdLAyYULIjUwKDYW0U\\/sBqCbxV\\/x3661mC1\\/tJfillHDtc81geBbAPrmrCnuQLqnGjJI++SF72AK1WTF6K6MJMHtgNRTpLgt+RUMrgrGknXUixmuXMPRHzluhpzVmLxMhO7\\/zu7piyRdiJagPDT3tlnsZqx\\/gkMYMFzXNren4iEQn3MY3\\/0mifWPu74L5FxcPJFu566bBcTMDkiT2ZcUtD3WSF3hrv+CX14nOsvwgeikPCP\\/phcAXp5AcH5BJnpCAQr+xN\\/musqWVnWpfWDsyHpRfJ8yiSLlfgVKKY3MndhNFmedBCrb5uOApWAov20jNSAAbF3h1QNTepdHq7uL1NKB4erc02G2bvjca1vDKWNHbLHUSzvT0rFty9sZU9FYJXqXFJBvWYGZnZ2lwWePQMkbvO5uFhO8uUBotK2DQ+GxyXR5I3J08WmTR31usHyGtuK6iMiET1XJzyTe6KPmuwtbjtLjpFXQiUFBpFQo3oruiyUOxx0r\\/G16g12hYvZs3OON3PrBoIPZSY3KWe0HqbJvUhD+W0qVuSaEARIwmtV8Scdq6oaILnsZiCyQGoS93S4OnwghAtMFlf2l0Iwonf72QyLL5o\\/mtZ\\/nbjBJx\\/XYMA+kK\\/ZOUxgF28\\/8IiHKFO9akuOJKH1i4rv8DSg6c26ad6ajT5udgbQtq5hWWElhXhaE0JtnKTImqD5BsEubAyq5Fd5Q4UUGao2VNHod4UMcboZDoyQgao+K8e3rw\\/ZSUuqaXWqP+78uauOIPNk1XdL0uQ4qjsNQk6qmhvHd5x7G6TKt6sW+Pn3AqXt2FQsqUNJVI9LPh96gowUgH6UI41wRq7\\/h1itc+ztQm14\\/Uy4d+Z0pXdrv0ipGyvxTiHXnapwbZSqup7yCdMAE3Wjm3hZ9yRou79EZUPW6jVw0Y8rY3McaK3i\\/2uQBRdhxsjZ9iAbdAXcZJ2XRjqJKxUAzWqZHWVkIajkKvxFIywyfQi2e1Mb8SZ1kym3wrYC\\/I0XQlaBZJRPOwP7FmYoX6bjgajGqn9uVyBegVPe6hOze4M98q1omrt+s3K4dVl4rbZxiiX60L3OULqWQpFV\\/WbnY+QejTxKhZPlJlTAPazJOimADRx5VIclmpa1RLDXrVfcygftxCsDoNUlfSnw+s92Rfwt2wzCzqBUkFdy2dT3wEUf+MjKCIwZf9nirMK2FQtsyzBk3NwopZo1qRcDUdK3\\/Rb2Navy2V59CFJXv8IS5xaR\\/2E9gxbayIFfO\\/JrySKBFLlsp6u2kTL+hpS2pf1fMQemCz5dWJCa68HoDkKd40zRs1M57weMDP7HimstaNm\\/RQ5iVWD\\/GEZOPw5Hk3ZWkUVRpurg6jAlxrFQCg6owCsnWrX4IDXfNgLsmTd8IlBFshW236MU9nVDcGXuI+urqg1\\/zucPflM+dNndSLllIKrbtC8n5Whj7WRWr4ywTQy3hZZGBKjFKKkXbvTpGLsKIVCC4P9Ex+OGi+6\\/UM03P3YJdQRJ64jSWw6J9iWhOe2\\/R7VgZ8b14LaRgg+FsqYXtGINzBTB8ZS0KaLC5JYBTyrzlwGYBV2dfNXSEBXeMJOB\\/RGpJJOwG3+LOTiTkzw8nsQKfKBxgrBTT20t6F42cbP\\/vdUAj3W25EoGOdQXohN+VyU61r2yDj0EUvK8\\/1qdVb9y9Bs2nEoZ4EHrdTWz1VwfxssyF1To8J91QTxNAIqwx0mZMFss2nJ3bwfTJT634ShVvgpy9MpkwOELKHs4nU4JfXv\\/9V4BHiqA985eiP7OrQbNhrw4f9JvD\\/5mem60Prj9eCocpeqkrhvSoMtFuMHfNVW3Fv9uYvMAJG6bkln9ozqhk5X2hY+ftxc3Dr14P42dTcd0zI5DxoqN6OKiAuykiBq8FmMwVKJom3GejknSWe03+iUx+tVQ0pMCm93TjR0UnI\\/yfXeKcy1ODR6N4C104udbCvqsjcGNuuvFk8DUjk00t4m\\/UNl3Uzx71Hyh3ZrU08SW01RIvG2alvJ5wZ4rL7wjgpyxpj3RcQkdI2kV1DqeD3e+bcfD7GupXI4fHo98onDws5MACvC\\/hkgLZH1E26gtfmYvySp11UMapm0KRrvc1jDt1LyDmvkKZXdHrJ2xHfp2QngRwsXCj6A6KiFBGz5bULm7KyBE0lucTZlVqZSSYCs4e\\/cuHBwT4By1iA6Q6ejzoVZz+6BfWmoniI03OmoJ2CozEdxTDqgEnHw+inRPWB4q9qRun9UmQSHePORg\\/JChsMF0JB5l+a7oW71uXdunjYPofXY5gZzc0A5XS3uGMKfejHzM9BSLQahknbRHRDaRj52K4Zf4hYoOFWDRl4arvpZbtEG4ONgPu5pgYQNP3NNpkjsLokfXVnafLjUvDsKKVw4B+QN2WwUmXQ7a7wZxNWw+d26wztGLspfT+oEYWWBP1ZMg7D8SfirkLmRj2ATlvDBuaSGuBoJ1I1i+NiSY0oxWQiW2mvKoYW+TuTPd9VY9aH5qyBGdjFJ+5wFYNXBK92E8VadYrOi5ANmMEnRLSOjKzpKLc8BFzs9DCxzqr1sW\\/scsiMyBJw7O61m1vIn2YG+dJTiM\\/Fjeas+cpsqWaYMHYzSAEy0J83kzi\\/rKwfagBrFyn1UGrsEu7jtbjbpKZ6\\/PAlwYVHlJBBhBmwYShR\\/FzFfnXACUyW+ZX2njjqWU0ziw\\/f3aBCvxncSaA5jRfmNfFAlRuAH9SnkB43PFAgUtiF1774yY3pAeNO22K1+ti3HSm1wgFE4lcj\\/XhFlXgqdZE277GBOPB4\\/RXWgdONmubPfUJ8S6p7tPwzU7GyOJnY6tHyzupenWOwlpyo3aDSVpXHlFw9qK3lfBJNCfkIyzcxLlupAxh7QzYARhHbYVr8PhHMF6Km9OyMwo6fY\\/A+dKWv2\\/21QwMzP0KIxavsssgMsn+FmApsKsS6cDwNa5LvjlzDOADlbd0PhLOMKQWOnSVNoXU4XPpCoUheyqJOXPNJndVuATbCtRUV5A5DYSp4tv0jU9NnPWDHEMjeQpl58PwMNKPx3B43\\/0rmZKdLd32W5lCkZSqgtVZQVLdccSvlKEi0TQ104tnboYchzsQ6YOObNaFAidI+OXFATLmQOM3qb8zidIO3fS1Geobx0BqNsY8KsUdNty0t9XbAKP3cD8q\\/RdhnfKAesKUHUwyx3iJbN5KfcnsUEHB1zOS2N4LoH3kELN7TQuwOdWO1JB8U+L8rAoJ2dED\\/IEZ8L7CYljY\\/nsTAJ4Xa7wbPe6yiw71LraC\\/ssK6iSvnnVIIC2+r7pY4GFDbLIzyjeo3p8caJcwlwrNtIDIfFQ7PV2xl29IzX2eOX7vfj8C8xqTbah1UVd2H0ZIiwOhmBdbFspwH52o\\/ycrKvJo8SO\\/gl1uTiWVEzmzCqf6QVejbdyxZkbhR+K571Mk0AOMxsQjXgF2Xeb81B4KLmLkbEZ4\\/mbHErSojdN0tF+rkcnCHLUSKVR48FxQq81uyG4W41dOg6v02KL+wtPhV+teFIWKCgdnhNDkQOBv61\\/U\\/sfhTiutpo24yocAN6rZ\\/VhSIVrMSMU\\/zDbOWX2jwlzmkTGZRGU1EmX7DokqyRCZF8NRedN1AFh6kXNomjKObKkqfpJWO4ClpcobI8NKpT9s\\/dbH4D3VDDLFBZwDI7T2M+veMzifqRA3hJBKywwKiG6+\\/hMyDPbGvwTz\\/4BpR4WoT7itzSDgDUYmFg57SyXgPxRbQIZKkDzEsQ4IOoekOoEO+xgGqJY7ADYrZr12wtpWqeYTn1IBVuGM4RAvzl0fIJiHMKKl45hE0vibSEXuWqpoQehJ3mWI157MvMfBJhhjIZzBYD30DTAsDe+Vk3v12oKLwOprnrGCUSpYuPeVLBCyLjUVC\\/ofBXt619PSKvArikBzvmnFzku+u9UZ+zAVUvFfGPuGrkATPl8bfx9wO60LgiHA5Q3yzRwJ0XyVx0SowzfhtayEY2+TdfD+JQRsrXW8WTEl4G0Wk2bCyH8prFlH9sr0Z32H\\/LGHQGa\\/pJWXuwl3460UyY6aN8mMRm0dHYlqphNSkjoiync\\/\\/tAXcF3kTH9auJ1myAr+CBoaZqxE55JMmTxmi79oW8zs8Pa1xi6tIy+5xNjP3WY94KX73SQCmlzayS6D99tyu2U3GIhNyGYW8ywX8w\\/wRm7Wzimsseb8JJizavWsXzMZYU7TxXohEBnMkUJVJiz4eJhoSkZ9jekUIbLkuLBSp+VS1lvG2jk6KVIoFJF0xNo1quG9mE7ys7kq6krGWM3VDkE0nbqtuPyC4YM2KlFby7XfYJBOW9C9hFvjZrRxBj6jGw0NwPVyYlcoKb\\/GmxfMMFV63+Gvjjnyyo\\/nRsHsyt2+EckxiXEsS6ba9isjaE49d57Z3kHc2FPTbreaRDt9zSMxQnNCe7Y46LUq9zMmJ22qtlpVOGzMEH5b9qYJmRJ+NMi0pK4AEHRuHqQcavcOfvNPpEEwS6PUNYToTTHqa6zWPWgMi3myhadfFT0poogD6b\\/rcMZjzoqZJYi41YpPRAtxJFbFltKwTz5S72LxisVnoQRKE+Vcpqc+LeskVdLFS8fqqcBS2vlGXcYSRVjANa1TUjZDNPlIdyBkOSwiypLpQHasAo1vLwhjBadj7trZrs6nNmCRTSxhg1NAyAsHkly9Ouj1Bqop1cfeW9QRJ+u8vhEyWPHDUZtB383gQAh8QIIAxAihs1sLeqRTPvorlsFLc8o+JsTXzzlFP8LT1OViL\\/JG66WQyYlcjvCIbV52D5\\/hvlrCiwIuV53iN6K\\/jylccRBM6mDHPGihiSyugyK8OmYrXwFyZ+bRbJOCEcw+LFKvm4QbzPiiz2CgAPbao1z6CryXk4FjLRVlDOhtgW49AvpMTgsCUY5rbEDT2jPMSYiMffdizY5Q6BYymCoiuv9SSf6+nrjuhUvRO\\/AFVPC4ns8YbglCv7d\\/6houflEpb5Oma4UFLgy1udoXWuG6cKm7YTsOV8EAh\\/OVXFRiWB7caohR7wadMUZmzOVl+XbJ19zX4IZNfdVkZ\\/32KOQzdNn\\/FbfPvtubun7he++3GIZLLmTXwgExpgdiJaAnbeywvpMGnFe+ywM9vz14pHEUFzujZ2a9I8K3cySIpJT8uR17qSi7+g7b61RKx2MfdPuvOF8\\/vpHlkxxQZllm9tmQrwqXiDs6+JiGhSty8jO4Rwu\\/BhkdVsjUhiMrHiEjWogmrSDsr4DsNyEcABzTf0Cg3Tl\\/6FRPaWzpXQgGwI1iyq\\/INn5HyIhJ73zO\\/Jh2q9\\/2dAPAIOFN5xKmw3XRMi5GoAY1vBoLomun6m8jIHhjVuTull9pma35yF\\/U+MwW44oZ1nalYtFqPEeJKbsnfHkCUskMLpXHiK13JfxHkKJn8YQDrxLA\\/Vef00P10dEy1IWQmj1OMBODmJwEVyp4XXiuGqjWRzlQ51GaRtGqBVt8rq\\/CLwtGsLt9luTcDs3M1FE7dmCdC7os39oKl6IUSaVMU9GxnicOragM\\/Dnhsp0Qvk7Lw5BfxFLaF2Xp20WXX1jED1LMaJOHmBc\\/Kdv+yzpYCD7Z46xDIGx9DKplbqsffGW\\/u2ciIReXZ4MYwhiTnr69ZjTz8eFrgEmBOMBw\\/vA1INUUh8zQDcmbKMZxBttSX6gp5T5i1gEgU+fcXceW6crPRPIFspnctcmn3qBR0fjCCMnmtlAEjdiUU2rg1XZgvcnx7qBecwuxmQ9PlSSYE1c6vv7BCatl1+eHxixJRYK35bvGV+8nR+6Y2XgwaXn3F0h9VQvCOP8psJz2ytrerCP\\/L3JLQAgm1Yivy\\/8xrbj1hmKoB+xCDGyTjqfZik+szIQZS5Z+3PBG2yVokDltzGhHIO5qWt7aIDLcuqxyow7iRPrg0ecRGrVCUHFK7IdZsGq0fukwQxbLoe2wf0QG9Q8gmx3OjwIobxmOfNcn0LInHDquCoYjbVD27iW+fQat9HbXe2fcE8YpAIhxXWWJBEl0gfUSI1jKwydxyepxNJDwfctE15K65VQPxpOch4wUSTboPGUiFO8LcYNDs0r\\/5Lzj4ri+rHkBSVQHWqdV6BNvSJ0mEg8XmOtev\\/cWQZ1+80Lq+RopnXOvTy3qugH7fp62W94zBO8tEifVJfM0Rn++FWRFogbo6NFFJRzSasGxoDBJI3Gv\\/qfBRbFn1DMlVeETmQUo\\/ClszmvsNKGs8Hp4WhFgL8FtdZqdBmJ\\/1t3n8CooFo\\/nGP4dXCF8IMvIOfkbkiw\\/eNP2jdskNwg6NpRcwCgoKBKCeWEwa6dwg6gFKjIOEX3010hvM7ynGNEnS+z67n9qTiQUzrSKay8zsRxsvIFVTwSyOIJczUV3yvkQ7x69KzeOSaAERzFvsXid9IXyg+\\/VC+31qG2nq0E5NHGnqxctMnF7HV2ZtwtKd96i3gx6TX8AGFneCoBjcGrVZ2CZmv+6t+Y0bXzHsvEsfyznMO4tr3VLwNCxG9lsla\\/p8D9ZIze3ZxNcL\\/Vh+zD4+LaCs9TyR1E+DE4Pxa0M\\/wvRF3sheDWofMBrlkksQnF+2r7nAnI6D1sPc6xqOy39rfhGR+b8pELDENmoLi5lrVgjlhDZzq6s5ixT+zqcOODrLxqxNsdUnRXoCsq5xTOitJ+6upQOZGpceg9X5LM1n\\/Y1si+tvH5gkBeT\\/Qj+JKfFlK48lc\\/2mD29CrBbX0HgMnweVs0dNSi6MW6poNuKuxt6NDUQzodjiwrhPYMDgM+2ISt91FeZGqjKYbWHQtzB49DUAhiTDRiGAXV1z3ewIHjwdFjEUEqSfJYehTchckCrw5idYwkW31S2UtH+GYASIHeKncdA0qNWu6V\\/t5N+PVmyZ4NdFVNbistwnBEID5cFGnAdWfs56BZfJQk1ti1lnYtD2ucBGg8AtQFzt55vE+XsLDczcwZ+PjA3cG9C6q2g7xD6CppgdAOQzS\\/lOYYG2wZgAu1Vpekg06LLkqFi1CQiL8vGwEAjv5vD40pXj8QS+Vu0dv0auKtVOrm3jzOV\\/zh9CV6FMLvGPUyYmaUoz26NHdP9Oqc4Z8eXfllWz8zGWMf5pvoQONfwwgm3A6PrsHWDVkflj1GSJlCKrzb98IqvyrFJigDRiPLC2M8SCPMgdqbn2\\/ET+WNytuIKAGYg2cDqE5pFMh\\/D9cx3vJGYnv+v8AL\\/itADHilny0dZb9b7OsRtmBXDjDNmUeKoTnYwNPlUYMH5qmvvodLSgvRrwf7RaqM9B7oxqDkdIRqdwBUtzzOkSFI7qEDtG1kOy1ZfBmZjCmL5Nb9F1xdMNE8WGaVVg0WseINC2RLxTWAkCWjyNO7Bp\\/c\\/nPGK2reWLxJh1RlV4gSHs8aFdSg\\/RSuUIip8o7D3xCL4kxkOcv8a67+73XiyDw7FfUoABblBdaVBBAP\\/blbRege4xAoEDikvbKeeWTFnxy4YfwNw\\/4IJMAg1k3rBi9SOD1A3aDl8OGjf2B9HA59WzyFKgRepyJ+iSW+aHEMvg+rplaV7H5k+2q5tOFY2\\/Ixol098XDMnUhYBCc6cYCu9Ra8YdkNizmqbrBLEo3s+uNlR87V1YI62QTrAbLlbpMp\\/K6b0tR7kdYEgfOSa9PcTqJMtNvokMa+KiRLGIBD\\/46GdbZ6ui4EOBTjq8fV6ydT7gDh\\/7eZ3uZaErGnyNctNzGBg+igs71g5o7vx71BLfEcYN\\/vDlPa4g72BPNgICmPDq75FhkC+bMv0ZW0QMoC817o7nDl5dQMSAU2lTDYyZ4GDAmDnYiK8c1WWLXqQNEg49FCo3El2Z5imi79eW9GweQYUgGa8WDov1DwcJl3VtNhpCDROCRUVMvqwiXdiFceZJ+Qkqv50l8NC3BJX+7yq4bDZYXTnbxlWs2Q6CoVqPT8ZvRnQP\\/IH6q1AOFzwdHp3T\\/1dehe6H0JjEvrrjfNKcWKjdWwouYWsPUpNTyeYrZC5PCiA+3a+31wvbXkQT2rVI8uc6gqlj5BH\\/2vYBKkrbzP1J6oWG8Rwn1Qd+OzjeCVlq5BDEv17cIzUSBFDG7aL1CeAoEeKPVhxdiLhNVc73dQ\\/j3Po+oZiPHgXfjcgzTCF3zcA2VRR8O9yD3DGlHhbvh55sQ\\/E6VqmjtqEEBkENLFe+0U3aqAHL4juzciizgiA6XURYGBZVB4CqrMcxKbu\\/MFnMl8uysDJouLzR+G3jKRPxyXxeN6r+kaXhwbm912tpXz3gytkbNbICzaolNmJk2\\/w\\/SMsefZQpqv8UNOUkCtqcjKTIZCZpSnRamOuVTo6POQEVlaLnI1bnNK+IsSrHHzB5exW5NZuzox4ApdiM\\/siOXakbRpxMaQOva0JObEdanBtOmRr40vSWaG\\/ip5F+ng0vP7T5EyPVkGaMSGlnjmTm9Ny+YFHGy2ILt6wagLL04T8LkPUvhfVzEnHSJVE3HJ7AsdqZ5w8UkAjrdL7JrmSA6SvBHfRR2s1Vpy1dHp6opugUFo\\/xnuDpPhUWNE6LdO5tsv5qrtB6Pun1Hx4g4H2ZIlXBlxemg9yoUCy2jbs8IcTGddTHBtx8Q6Th9dT2iB53rcW6PoqieXZmR+kvIYIeiPuSiTC1geLHAF9fIPNPN5LGLHW3u6Dt2A2oZdtMcpzQ1kteE5ICyc7qJSpoo4jnaymTq\\/sFOZXw9kg2jlNuW+vDoYU6itjKQ+a4qgBSvSi1tYfNfWUzvAwW9m7+EO+478jYyucsJ91CTYHSpxwUUk3WZJpMzZF\\/i2m769RhxSP6s0BuYH+ApGO6n53GG4v0v3FCm0jkU8Zi4vbgrWQJpSrye5cE9+y9\\/jttqY29PERMIGK9WEi0RkJH2fPWtBtISxzyZoIaEuwbQOMQ3f3h+\\/Oi4llABPsINyjW1XCl28UW9vHSAvY9MZhaiDjoRgmL9416Dk7WqmjVtMPmKTnC30V\\/\\/hy7dgq75qDnHhBwjOK9PAonBS2ceWAXT64oHSgpBz3SMBzpCD\\/Uejm2rHL+FSfpe3Ftrwudth97\\/ue8DE\\/M2qNVSz1IhtrIVlfhPnLnNk4Yznn35bHkaIfI6HcZVQmfi0e425W2RO8oA+qksVZp18vP6frozuEKwRDnck6qTM41DYYfXQI3X6p0hpJ4ymXewtHprbusNGe4PmJpAURATjI\\/9cBXMmKNQyXF4rn47kHPebvelgCNTviKYizG0FkmL+PuVtKWS58eDIDCxc6zWN9EA0VxVTq6ifiaHvtktitFSyOzhwd97eC9JArqXFmn9l2XNpq6fuyum2xttKA\\/87rjLfudq8x9ZnfYPlVx2hu8zckKSjGE0BDaNKUXcQ+o+8DduvNKdvIhHQUGON+nXtr\\/nvhHgK1kHjJ8DxbAb6ffyPTFpfjMTN0KJB\\/nlXRr5eM1kN5LjKTn\\/2egETfDZbytfsa7F5GN\\/QrEksirDPodbUpmsfKNDKuga8QsAj+gxL2MZfZxrgXbFkpewHyMvo+h1YG5XFhs6MGTPIk1dmP+S5vB6p5DT\\/RlnmTK1hujheacvkJGZZIE7YHJn1sSvJfM2aCJ7y5XJZsmrrVizdjjDtY63Qp59azaERW2uzCXVLCAvR9A\\/ZuXzMuxwUaQ52C+jo0uxPx2EtRY5DYaqa+n7UeIpJ9GhOdSwr6FO2coRMga2uaeKH9vzAVa7mbkrkZfFEAzvF50vMITkgWkR+Lkly41bjggx8ZesZga55dgLOSf\\/s4A5HlMuPO2ImFyMmmZBsFske2\\/xO21Cv6+x55HX1OXD2LKWU6hyYVMuJWE\\/Sb+KM+Lg2AGSjvWd2V5q5dP82CHAbdChv5Wm4m+IHGpU3a4zHrS191sY8e7XkROXzfUHYAIG2ybfv2KKxp0UfdevAPisaLC7X3j9p3QcvXEO8RooDTQB7IxziSYQpU0Ku4Zyq7Wc9X3RAjdv51UtIMvihiX\\/vQSu1f6rKJ40ptZbTiKg0mrjnPukW2+AMHUKQKNyjFuC5RF9\\/epaI0nqXaXlSJ2kh1WPUBmiuyojdI99Kw2uEPIQrFjQCzC8GfLA3Mr6GJgP1jGkIWjg\\/cXW15RY0+XVoTKgFY7tfCnGw7sA0z26BEGLUO71qlQe21xnBbyMEFeswL6mfvw8lKcydxZVYyTAeEyPGVXJOEkdbMHZBRBTob+08LPZ8pquto4A+xsOAKBnFXmPCyYKcwlct\\/ctIzTAFoLwR1vNt863eisrQyZi45WzxJhBnakW3DINaOIdJxqXx9KVcZ9cXiTBt+zA2XqQ2Yr0RYRMpigyofxbce0qMNZ2pvDWs6rtvVeLGNX6pNdJiILzw6vVThtsxa8jMl6SXvdOAYgJbZnqaaf1yGEu1IDPYL\\/hi+WSdJ4ao6wZgtTrvUD71pn9lB1D5GkX0a4YOOOZsRM8qLkWZjOonJNGV8AAwRABV742wfTEZL0OXASjt1Stk4bW9D7ic7tJ5h+JOj9qknyJnQ1Ga0KaFe4mDyn3iczQMVGULcYA09iwL263v98wIi3u7ngX7DH4Vv\\/IbjMtLfE0EscCHudibBvJlzQnPtFSbN9c0ul15ZHSUQ8uueDZhnr0aW8lObkMOoFFHjoqNYY1psllL1irwKWzNxJZX1QlhLujNIPSVjrTqmYCld9vKTTw+AVCsFoumJv2ESGLkAq+cfx8csu1I0FnhxhnMHbTDUowm22RirRSc8AY1ElmvfkWNwsHcxiXNx5j7AI7jkEK7ZPOeWaXRmd+g8wrjwgOyC1G98FtxvFFbvC0xnsuQbxh6p0sr602jPfUT1n0QsoTUJ7iBzMyvW5mG4nAmXuuWsKsLJPN3oUodihbAe\\/WNo3WD4Divw8ADPMZO8DocsAMjpJNaVVgVU4n9jKu4O4XtZRvdQ4ii6S0ZWTz3K8UJxk9GA6sLXPQoSOGppSZwrsVJEDDGDpP61v\\/2EIcOEE5\\/ZMdYLbRRO7\\/JsiqcosyVzwyPZcsZ1+CZu\\/yZqOWtlWUHw+vhE2f8b1xqmFS4f1IKltNVRFl+KM\\/5WwShAPZUX5RWUguCqQ27ay2Xh7744l23NuAbmUpftugT7hCtDlmXyM5wHVQC+gqoLyAO1LD5yo95jq9oR2HRN\\/WAv5urgNQAl3r\\/dN4LHPyZGE+M48Olc+X6Z8x4\\/qlU4ttrPtHp7UDhEYO1pD3QyzYzl4gHgjSjCbp\\/6ygN7OkZYlULGP5SuOGPWI++lWOThMKTyBm7X5ySZhf7abPq4crH0HViZaFRKoxza1B2iVLlARE7xP9saQau5Nwt0WYv9mzR3UXhKNVxuVqQnVmRm9+Iq4AvqB1Tg\\/fNRdw\\/AP2DLmcdlf+h1dqAmMYUosp2pYgNZ14ysbz6++2tuHgk\\/CKTxQCyBLJRusUTN9jlXpkmTf3VwJ7ayMt2Dgs\\/ExPTXfCYZdo3fCtfs4ugr6nz3Os+uOH20q7DsW9+DgL\\/K2Hfk\\/RUfwfgY+bA3Csg\\/av\\/cEuwcmJOdWBwBsICXmjEuQnmIJ5wdkL60csY0ucgfRsJSL4Y5BCw9ot7jUSk0H13tRyWDDDRbVBOlB9QDGXB6EKxZIosIFdHCFDcYdX1gYOGVghoWRb3H2nUBFpA+t7CmSTlL+6OzpVxm5oPUhT0+ROf84kMMtOZmPnOe5DwcKMY66pdepdKUVJIqg504cyx41NLu4id3Bz8gEzpdeOrCdJq5eOC58fb5Aro75UMLUHnj7Q3IQjCSO5eOx3wDqoHF3lXU1m8AIyuB3Dp2WBgjVwC4rCWQLAUDb5nE6ZklFzaiQwv2yKlGybF7XFPnMhlusAnl9+kdZvbK6NYjOYIQKh+JUSmKnxos\\/5Cio7RrEjZwsEBYYdGc+KfQl9ynYhuRuC9pnjYBxOWuEQPZpnRbGQtSTVCPN9AN9J5vbFUGn5NXslisTwF4Z3MSG+SPzwsdZtRshFm3vlTFPzX5UmMlHHCCCYVnej0qgUBOqMrjKFT8cTBxLlEILjS18YRN4K0MkdS8dZR3s2WZyFdnfxJNE2vDRDOO78XaoTgcDayKuKhP21ABAHuNF1K+kIRPCrTG3GCnt6sH6U\\/xhCON4zgAm+GZTfQfF4AJvWuVn+C9svd+Bos7UKZy+ojUKvxTe\\/+kQn1seb\\/iasSnD7Voq+xluByX8qKyz3aKa8YmWgZAV6SYzBm3H0tOWmGWiX\\/0\\/KxY9vMx+597Uqm57C6zaAVMY4\\/2\\/uW5PM5jkIpABOQsZFwf4mtNVBmPYaVdGxB4YOAg0WvUf6zThtFCwuTmpD8AJ2EFz+M9a3M9VLwWmlwTt7BA9Cb5VSVFo0CjtdFIbqnfQRwmq67UKiWXl\\/Nj1Ph1r9oy2UmxMe8lV4ZpHMC1+JcAskGSlaodc49CsUhD33xJ3bRxUuNgyTdxqFazmAi+VihWgWvK4Th626328L7tYDfkjHXpUaBzjtLw6gJsiATXdmRikEapKmmFvdDhl6ED6t8r35mhu9VgnGN4qOTV9FUPE5VtkFykkgBDDSrzgnysjq3h\\/xoPtFx9u\\/FxlOxInRYByuj4SunIZrp+p4q0Jt\\/etCoLcayAldSIVO9yYWSffbbzeoRsDWdqkU3+P9wX+sfZNrWqMkOeQzCFeo8tU6pbgyGP7Pq4C4T0iXEaoPAnm\\/gbitVFDg1WVR8R6TQVY4Qm5tCsq7eJnJk6fA7eSnnXAiqYjAr\\/auvgk1oGvuqsIfKLmhBugR2qcQK2IF4f9c3xtmJqh5k\\/8zhNCKKnhWxNgA2SdycuoX8\\/LaggtavZICdZxuoCeR9WQVGoq37QbpJSVEg+Lgv1MxyGceiXVokh\\/OxLoGB848Mz0m3u8jNxda3ZLJjsLmcgLnEZVgJ7hSONk3uXIBb1EPe52auHaAXFhshBl8kkOGLcwMe0zaVk4O2bI4KPMkcFpztmlmq3tKtzt9wVH3NfugR\\/XhzsuLX2YyfdT5gq1SGRuNJ3ZgcvCVUdvzFwQavB4tCmXF2zo5IpUzNfL\\/GV+fn2L1XGHtClUpZowc1c2BGNyn+nDT\\/OhD59EbHYEvHqvx4sBHCbXb9E7RRooW5GXSeb5xcdkpgvtmkxS96oPozbfZYkDNKIE8PDVahOO1hPOjpFJmgHH0DvsXcTARQrYkbakXeWyx86\\/e\\/gl9JXCCUyFETgrh0YQBu18b1UaMW2Y7B+9dlMjEAiE+wainXNF9v+uJqoQtGVwMgKfhUjVw+KylMsMvzvXISA6pJKAq+EbJujBcArPhq6tOkTkVwKTSXuQvBcne4tf4YB5rWxnRd2Eci0nZ\\/iRQfKEG5e8KMrHRGb134z7j34Z+vVoPU1v40z5yIGIwgd0ZuR8yE\\/Tqr7oxrGlivYaVUWuU9tks48Evz+c0SYhK7yhgfRWV33qpyb3zqVbY4EBJ2qjTEfy9tk46F2WPXBMbMw\\/z76Io+aJd60A7sA8PTk9loPxZFG4VjYDjE+Q8HYqKG\\/zLLIJ\\/VSxdWpRdd96kV5vIoKW4c44fdDAAw7XR0VXKnJFJW5fbJhp8szzr89sdicngUCAWWRq1LyfdPcyRL6HI5bLLvlQvC1+C9w3zZ9DoEFmsGMTskdQy5reLWgn68vrdf3CKPw4rzyn7AsUVJbwpUNBCQ\\/Q2xNIrw0Mpvuyx5NJmi4LX564iQb6RDhZgnpbCnlJTx\\/+pzOOw1+BcPXtwXHcaASuTL861qjwPwjZMMTCxaAfzUMI32fCuSX3OnDxRiJYl8qogRIFT2TVi36liKUEETBpbw+e82HgjTGluGUMVDh7xtxQ1CJjMmygLRQaDWIVtemUEXay0nLrUN7Z17\\/t31FpE3NEoZpIyirVXX6fSGaPeeVzithrpzau+xl07lg2eCIWDmHVnGSTPfvBl4LnbigYRswsDyaEPevK4qEP5TOJBgPupk6M\\/ecvMPMRBTKvXSoi9MIPv8g2Xyf+GVrQ5enaDx9pAzfLsUCoSqHWBnPXWcevnADABZ7IUq6OyVNspyeNKkgKq0NYUPXmuuPb4eBt0+id5zZXje9xazRW5tlcsXE0PTtV5qbtKEHQ3E2EhQajoOn45IETYp8lASIWyHLhbEdslOgGN9F\\/jxlBGJAOCNUjoXkCiC7U90p3dlLHwFUnf3eZRonpVVJlNKvZgwAYp6KK8aWZm7eRFC8qHg0w8CCloEZocRyFlSXpoLUHQo060Xew+m\\/BXQR2i7pHK3DLOWwHSSWbSrDRN+RMg2IXPqR9XVqgcTFnHrKfa4VGoGyxwJGm\\/kT30smYdxCoF3Uge4jHkxXO+G0U5KE\\/aTEp6isg1TvX+4xUwEojWfu9zgpCPT67GdB+2StDZjPnNBQE6jTPgRY70nGu+8CHM\\/WL1TMNu68frlHkrF1Lk3L8R9fPB1dW1wrsjbTMXiQZzn1OrPES1v1CH6lUmGASla823MDRZi7dlnF0z7zQrNu+a8zFxUSexSow90Vn\\/HQq6jWjiDz\\/FcZT7e1eHxNW+NDDzcp25U9cmg0IAbAN0d0ZO5rVeu+vwLVFdTUfuSzYYv3YNbovxZPj+5D9SLpSMs7PmnpUyDF286\\/t4zEgox94RzmmmPA0eyjxjKGSCYX131oY1uCUdXxVAGjoQ4YaU2zzUq6Ba1YvKpapBW2zEIuK58X9gEXoRtOqcthjW1GFxULx5L+ck4sG\\/CK520B5fIiCznu4CasrD+txPYf6FdUZndyNnhTv1u4grqDIpFWuu+vKtqPJC+dZGhHKcMft2y13qoVds11KSCNt31uaigcYkwM2LcDFjfzReafNPerv8mb0hjBrE+JQuyrJ+WVMmwc8w5JKkY43sQVhVz3udRodYmSLdnHWoINImkmzcGntSRrXw4+P2K5zIKbdXMZ0zukuELDVa9vJOErzkfw5sOpOEvxL9wS5tfwExpGwDxViG67GAzTsRUk\\/2qleuEZJsKD\\/9svDfBCpXaP4JfcR5ZUKkKtFbVbtBZvUFGVVWc6k8UKIeiOf9AFe3+pX4UN0GbKPGBH2Lg0Ttub837+1jNqQjl5Y\\/8\\/72ZreucpWolieHSdSB+4VpJEg2Dl2pEzvNVGHpOwS6sWSFIl+zUXrO+hjvwC+o4Xo0vXuwjmIvrm5hdKI0+FCzCWjbnIrCL2lJQsHXY2GOQ+TU8M2GpQWvV6oyRgF0XQR0GHdMogI9aH++PzbjQQg1WY9Gk4MMecAfIKeIgf6kEf\\/PR63YHweK\\/WyxxIyQhZ1NTN1MQV7kbMhB8PHEe\\/U9SatQQcw48VNBdw\\/m2x6WWhYQTokBDa\\/p\\/h1tYsYfYsYTldSqPlJdWccyhrij+uVJBBRh33pxlKo7dKjNBqqjblMxoVFxOQqigjKta00QVEGbNlgboYWBwsudM3Yts2XmSQn\\/weVyTPwXTDcms9n\\/34KZYwQDzzBY5F0KHNWjscOGEWFzNeq6g0c8xeCG4pSB0wRnzdYMJS2lY9ZunW0KHoumFFUTn0nkCuma35H+7yq2qmKD5dP7FRja01HMfjQeim80LToQGWNImW0JguZVMM8uMiY59BEzqEgf+VrYbt7eSPiJWDShHI0SyoOQCyg0iPuJIc4hTWNdYeHA1djL0\\/JOWdH0JfQ6NOqoEIViRzsNar01vaPlS5Tai\\/z4+3OS4GBQd8bhbcC2Q69xyPSgLaXqiZ+4LLBvf257Y0C40LwXuhG+Ucgqoq2B3mcbrIz7MxSfJ+7StNwrBVRLqKjEQ5VlZkqpevCOAi4cCnHPQdFNr7Rhd7BnpvybMEsKB7bCB0kcAqeS32ewaEmdPsA4Ks3dA0bIQdCQt\\/dnWVBDaSp4pZ05aco\\/egGdbg2BIdu\\/wssAa5ijff72\\/7edazmFwb29UxIgPR7siDD7lmhQ1YWwHDwGya6WfY3O12t3u9W6WikSUh1acV0+k8vChyv6S1YacD1Z7pgP9VItFhFqeETKDDqSyyI48dRFXlMSqpjRvmsBFBaizmCnv7yraj7szD6JnrWXsl7CwMolc\\/dFxMeog9bRFFUdgPsDl45C\\/LjMq9m8c4A0VAnVXoZeXq0W9yLdu85md6nvzak+ty67cqSu7UQn8Bynw8lnq+vueISbo5OSMDSGzA9Jt1xaxJabvGJITVYHz+k8g\\/lgGBqZvGSqqFWV9+mnVZTgM4NDsae6DLCx\\/oT2lWyLpK6KyMlVhPtmLXjkyyG\\/Q1EcpllgA89mogVgsnLrNmGxNnJh8pmvSEOKySdqTLyyOuE3mSuxOPJNxgdp+MDD0napD149CLgnepKe+MzyuQmLDEqVfPt3Nx6\\/Xs7Q4YUnF2Wkui9LvedY1MKpliE34lBlhwkWRuB7B7a9LwpvwAUZereubhywIZazFbXdNaZFi7HLgSx3Uo4yiyFKUA7cVIpg6YEC6HC9rrUGtsC95ghbFBevzH7lXAxFx16kDK8Mq7+PtychI66ev+OWGmOOPmSg7oMRwsJ+GCJoRpFGSegpXgtvnvC4aMlF+eUzu7eQAZxlzsbLV9+FEoaAGHfxjELm5MycZQxhLxADWrxXCxfnqGFHHWrYBFNhntRNL92dm6hDqRvWLcOY0lEu+o+JZCpjydsbmuHvQ\\/7VNwLz6+B+1CrwlJXOBMjdL1EgQ8Ova0d0pP6jBwO+48t0c25OktbmMkf+\\/IzFC+y3Z7S0yD\\/CLvJF1ZX6vTwPb9C53MbMWO0rzfFee9AuWiEprgQ4fJlb1wsENl7jYYO4IK9tVG7v0ZRoupfn0+kLUWNT4QQu5Bq2oMhEZIRjB1vn57yrm+kWnr1ge\\/Z8\\/sQ9xHuk+fxvg\\/phy5WJv0wMuQrQ3k3uWI5Eo3uoiOzZNzefDKNpLtis1q0uYoo7ouf4RI76xHhed1sh8XTqDAHZwtzyKoEc28Z7YQ8yCKawO2tSiwM+uLwlgKhasiRCAXbK2nl9iym2ytbvsqcy8oJLgejyK\\/nmDM9jAAWEbYmVzUgxpzqD5d6gL7ShnR9i8ANeiq7ixZdwD5xUllpqvdgZd8PQH2vVOj1NsdSwvcpPhPe2k\\/V\\/\\/sY+fz5GtCWReNXbcnEB6bRfjUYB22X7R7R4i6YKZ1Nv+UyNWzGv+3oKkX8fWeZ8hECUQ5S5ZushR0c4axgAIcGDzoedaE\\/mdmTh9aTqtEuMS0KSx5mWXRzNtOEdKq0iuSjkH08EPw8mCwuIvjfI+X\\/7T1PVEcr7BR4a8KXaSbwxbEhH2nLcR8F8wFzce32QO3aaSY13Ux8w3\\/uiBjzfxTuvhWqZepu5q4W7sTk4r9ErUaCkJxfaBlxeCdDad9PxDzhTz8ooqMlP8khT9KzOwBtWzq9a02skUFwQv76Fr2bQpDWgHnapPqtqxGJctvEYDr53uc3Lyn0\\/XFmadNYchGdg8SivaSwgQWsrmGMMoo4CXAHazJKpIvGBYaf4ZUDEotHN6Gd7XjrREtLQCUXPqys5QkSYVdKgdt1Orffvm\\/UMcLnooHw2lqllOIgZV+bh8uYGXeP63K+bnZmOFvPvbHvmUzJPSitYv4Mam7nKZB7WOJfiu1ROgq81B+joKFe6YJeQ8IKmKA+qxbvngqQc6UG+yTn5MtFklcxr82h7xgyT3WpfCfC\\/riVTrMLnBPasvLBRLD0FgceUpafD410rJJgNSjxMaL53mn88CqO8N21XvafairQ\\/nUaz1ALt5HicpzTSIUnMmLXLXqMJEe4aoE43BAgMM+WXGVobnmbaD6\\/JdpNfwRiksDaV2x1VbmlNIR4Hi\\/fam77Tg12AeuR9MYeOG7ujWOLEpDFEnYAxVwlbne4Yt2ug1vnHgTort0Ebm4IgRvD9ndb1YpLcR0dGA9cbmblEf2WUKMrpWgxUg9Bp+GN3qpOIeExRrG1c1j9JAhWaWON8cvu3ROXDo\\/e0ofOKxtPH3sIlR1PxZPBHCPjYD8\\/OG09wVKAblFIH49zTIoesNR6dejoTTD8Xy1Tzi6OmopFi8PMXgl2NNmCcTmx6TELgebpJFO96l3m3Ab7qc0iyIVEdhpJ3DMLha7nI+9EDNKhEVjTe2q\\/saEKddA2Vl4XQJt3zv4uVVs47COm6ZzAp0m2f38PVtbGLWzDpdPvwUi50YOymdIrLToyyzv\\/S1xB5ohIZyNENqY57hIeFAhQd8XQQ+IPiMFuImq2ZP0fN2evYuLfnKgq1BwylNpgwV+jRbYvBrb+cJhW8SLcdamiImpIpjoBSY662yzoCXHwUWcKpARn6Ql2YyarQyJy45PW08hzBJfT0IOrv3\\/n7I4pLMugDvrtUFCn4yjuvHz5o74b3onigV2sNpoYiAjyJzz2ymbtXmdYQ4pIiArxzmC31LDpqBqLfGvg\\/Nh5mW9soFQ3g+qIzZVkHYaSCmylyn9ukWa87XlC3dasQLYczo7NGAv1sKC7v1ZA+KrJAUTzMF6nxHw7igKPntwDMNVc0gYt9uYDlIWotUDXZTBq5sv2ObrhBT2+u2WE6EuHku5snEb94ivDMoPkQ+jcMKNSHi4Vrj00DShe7IrCFKtSjrX3Y3yf6OInZrmFvM3Vh0UseQPZ2FBYYwfBjTZxKD6o9pRVeoJTykKBef9YxBSQDLWQNU13j50kx6xBqPo0H37Ubco6aJhP3gE+CDepKrxgMLlATIhTXclkE+Jt8ICrOtNvCTYfl3kdzhfJbyO8mZ6EITrgfv+PNbEILU8hHacxDSlOY1RITMJ6URZYVXOR1OhfN9OYSrnDDo+ZOWJvS6mykG2vtNji1i9f\\/e5oOmjcSFRX3RT7tlvEhiBd5Ixcw1Wy\\/0w5HpTOrimV9bYyxqXrzzdxnrtF73+b\\/9cxZ3YO3pNFZO6+Q1oNcmwrohEc2r0TFlVgypcNlYl9xLajTlFZHo8biCsFS8yrFeuP6UHrCqJ5FSR\\/3m5s+M2jB6g+4dF02F6oiSq9tWDgtZi2FtCc5UyVW9NUC0j1aIIwUY+ZG6Z2wuAoCGiHZ\\/b+mqThVwPffxAehrA3rIq43zNi7u3eSPWsU4fmWO3V8AYsSd8zM4L\\/BtUMpTH27gWp0laQ6t0bb1wTouAG13qzBiXIPBeSerW0sl3nocYkNN+tbR922ByWdauozysOTkfsfar34C6QIAa3\\/E+TEw3auA+Wg\\/N1Y+tyETjtSJWQUnDlhjc74x75zqJs2M+mYkcw4XeI6vRItg8Uhst6Z1OE3yeIFCAElc3pDQIk9+FMfDUva\\/uTcQbDQiybjYMErAdwMSx83plodd+rlfPnQMfOywD2XyEbXJcRavycdKTIcQW5+PVqUuo0lP6jsBdbxG6YDTZTn\\/UIMz4DQMyZ2lJgpKc+DE71FV3wvrLsyseGXp8IPhyvNm+5f5szMLVX4mMttMHG0kRz++eVS1A6S80VwrHZLCPv8A4XfGIOuwJzipdV0wDJTcG\\/+QiHlFZKfRTQ5zbOl5i1w\\/T8Nn+fd7Y9r8Vzr\\/d20Ja832T\\/VrHiUqC9eJI0YMziGSo8TBZh0MOEWCJfEbUR+iip4cBWs+wkUWYlrGpOdL5zENVmXlKZE1mebzLapO2WDgc2NBbqmRbFK1UtFlDkq2epS9WpeKi7lhPnfnSW8St\\/OA0o5mqDTVv6LVoHnHz\\/SR+rzs8skZUfL3ZH8ztfTr9iUKNYLy+LkFZbrRzoaQWLTxxV1V65XalcvOpuR5nGV7vSV9dmG0v++dzO5DbyrcATsE3HG+Cpiz3FjJT0VuKXoFJP3+1n0W3VXtvEqLsHdYqjtSvi4zQQ5QSU\\/9wwUCCL\\/FqADvZO9PBiEQZfpfEQA+HDP+WzA\\/2y0axJfbxQppGDkWz8m9V9utPbZF4GABICut2UKz2rxeHZ5+epKAN4nNr2utrqmuNJd2XcRalgG5FQ6R+hQ78pk8VI3c4dVZh3oAO16YZ8NTMikTtGDvsWC6Klbem6JCU6JL7OM8S26UT2o5md1gixklBMDxnk5xvFyDac\\/jG0sE1yhFaqYnCu3Qz7QQLGk8EYoT3q\\/pgaYGk3dUvJO0l2iGvQNaeciPaWRsxDNB4surmzUDxYoXcUDMEzMv7x4w4zrwUUHSGkJSxu2idZi0nMTGteYLXuJxqAd7Cak5dvUxVUKmcfwysm08ntvRa4GqwfmWArq9rmJtxSfDB9bhpX2zclPJL\\/+TglapNuHzLoBCc+2xBD9g7btspyEoCIvCqBfvDK64IHIFTOjogAA4WIyEBsRshUiFeWli5UUNxDSeoWXLsCcmF0gl\\/QXqCnA0ZMI\\/RK5CWaurdKe4bttU0I9px+CIhMq6tt\\/bdXrRohlppi6bycDgVlp18Ylk6xRkNYGfdkvQeNPaNz018QAd86AKWGxJjIzLBYd5YdAqeQqzTGpHztGD\\/F7J+VVnmMCPHuoR5zA4iXaqHJY4i2CjdrDcZ78Bbw1LklxEqLFhAfhUEg8rd3QnFM8ykQvhyRPoIo+grm8TGgG19XgIEtvrx87zquWpcmbVWMnFtDBvIHkVCf1pm4yYTzvPSoPIYagcG9ZY00FLbfTJ\\/r6hcMq9Wb21rUTYAVU4l5iWoF6RGFQcDlm32dUnmOxSXqElNezaMPr1DUx5acR8IbKqJLF2Xd\\/OtCLv\\/979nSRy9QSiq4ZVP6kebf0+z4IMRA3wMJHSPqfrU2x5IqUpjK71YPm+Q8mNc84oTXUBILT9Q6bcQrRhVuTPOyyaqUd0nnMQh02xkjlZgSwsPsrkiV9p5xTKayPIR9iJ3wFdveugXwMUGWA51TWXV1MWm+XeOh+Lk7HQYVY8cp98e8e2QFX\\/Oj1z13lJ\\/m1B9ceiJLWrFQ\\/H7t1oJf4bQdG2PihJaPHhT8eg8zIPiPdv8iAzetGtFT1KpJ\\/iL4kCWe5v5oFUFJIQ5mJPBpCrgPQA9g+duEo7OazfaRvqXfENQCTRb1Zk8RR\\/1PolPP\\/m7NEnv1sTQaD97N4BeTA5n0sWmm1NgTw9wiPVGfBMAcqJJnt0shtF0XlRNjtJMYd9+cxHFFj3mi\\/iIfb6MnIZc62\\/XbA2WXpuRVD1fbAS6E4SGgSaZq0R7ODpFXUgV4jfigAX7ZQPsy13Zo0rjukaPf3kmcs1zBgP+2C9C1LYxnReQUfaAmqwhkLqjBiOm30qmF4jQVGhmger433CXYtENq7gbNzGcM8A0diBGZ\\/tBC3bhVFKORMdFDXYhQYBZIGYMOCGAchTWzuDs0IbG82GZDvGvPYvvpmH0VxTj+yRAXzuOARUQL13elFBqpIMaquOAH+g\\/ihpF1FOgw\\/+KPhtp\\/YSjvdpwoWJEvH6oF8e\\/yYBBsqaptQBv1bn0hDGVnFkylRm3TQPWF+GXiQ4gDsBzEdcJbVie83o2VofCeoQlhTj71wjfJCm\\/Bc0++rIyTqFRXcJpoeTNs2fX6rBzPbjfuBeGWW8IQm2r15jqUmrUi60hEJfLGJJYmyV6lP9tFv0TNoUiXfd3+GHNb3Oye1s8mo6n4USfnEVIj20VljJ6\\/llQR6kq8WyoyWZh7Jr+TKPGHr760w1OU9pbKFP\\/yD+JISLRBuf1JrKffkxSzVsudxdLbaIWOMFX\\/beZ0pyVYQJlzls6zveJIOkmu5aRCZy5oJI64sGj3Gw4dwmvhaizL\\/O3cfU9D1EpNS+yj3QvnkyWqBzJBBZhZMSqOc+eNh8w92Dgy9FFwHNPL8L\\/KuzioIlG5huv4JrvuJWw68MbIGeC\\/pKYYP2svZZXQ+4YSHxKxYi1649TT2kIzUvZ3DZLHkhGcCr185ncAdPamm0BbAF7hm66CcUF1\\/z5GBM6cXxh2cTxOF\\/4TqrMeo7Ku0foy\\/9cSZjEhyR7DvJytWdrr8w8tzYj6BKtUgGH4MzTT\\/DHoWBITjAMm5Iua7pCS\\/cGX8hLcyjbyQb1HsUrPvJBIE7mAspvFjpiE2UnM7YsSjCtlfMAAGbgfzD6dWZjWy+0z+iHyWUJUpZQ1eGgkW7VVi0\\/yD9B\\/Nlxcox7UtzQufwz\\/x8X5B0UnEl\\/31hVxVbReTw3kS2leYRo2BG\\/CZGYs+gqvJRE647N56CchWA8WIjSPKfaOW2vYOYUJ+A82TWLD0iM11To7mEPj7QNSXZE0pTAbF8QhrilUbuwarArnjErHcCvZmHcatEqr6ItYO+M66PwbLKJ2sX4WSW7+5qVBR2Ar2FU7pJ6jVG\\/G5lVf47aE6WQtaFyca6jX9aLHWT39qala1HgUUhV+rMWa6G7l0rxe67bR6fEApC6RLfH5UJ68mwyHPizSDr6+18iNOZk+7ZCTV+ZXPPHL6B3HroAdDH6+9QlzIj5Q17+IbUN7HRN5BGDE15GXVsFRg6ieXnsx6AoVyOvciKGEaFPnuDha\\/3LzTIv89yFgIQ6mY6zC79TfCzmKcFBxy2REw6a3UWoUoAsTEQa9R+oXh1SloZ2zXChhIJT8gHTIWo0YGhqmYe5Q+SjcwbdDKli3RcsuDHu33sYmc45T0TlPlPNkpCc9VQoPidDAa1OwIl7yne6RMPHOpMv82SLVk5XzrOvxUzZG3Uj6hV4GF06WFDiwy0NKBMTYdVErPGL7zM\\/yD6YH8UjqPw4Lf2+1V5SePXj7aNW9CnDbTueJDaoxUcV0SBSvn0lhD16OuPV\\/4fSkvkOnswoq0mkLuV+A5euq7f2BaSMkynKAhy44TAbClpNMqCWMCvwzCgJ9WQDTBubo7\\/MUPTrML9KJp9pjvzJnN24ye1MOCzjj8ZxP1PM3xIuFr8oDin\\/qGMiKvd9nMtlQIeHWD7xz7uhNcMZSpOR8Msr7tzxgJvzmFVnoBF\\/8ews7XpPqOmcq\\/o1SrQQP29DBE0yj99n2IXbjdFjxNlPdpIXSh7hD9+ebkxOL6v48fzHwT7Tl6xEnIm9JuzzsQEVtkhoJBClG0fVxRglqY5CYh9Myv6Y9tjV0t1WfcUTGp8\\/OrLqFw156ilmqj1beX87avIces2QTGwDt12Gr8T0NQZre6qCznvNI7R85Ug6DoaS\\/ZYZ4iy0uDzDWGujBS9K37FJZhrijrDdi4GS5ZLk1t5O1pjTqPhavb19jUlhneKrBqxHyvqppaOUHDNvrkAmEv0kcmSz\\/X5HKdaHRzeibOQ3HD6oWnzZU\\/4B8Cxftk7vZ8hd2319v9hscwwAsdu9qLZQ34Qfl3i7VjkqD4tma\\/a6w38pzN3H+qpNmCU+gkFXOmcbOW+GQfBRUBWc9acao94Q2z3pWkawTacuEaD9024m028wa9kmrKLI03lPgB1QmjmjROJJ93K\\/rLV0S5VlYejlCtjrqH7Q\\/\\/OVaDfehQa9WWTQfBVk4Gf8H\\/C4AgT78n+dkrzuxYPlPoQ7XEgqEQltudWn57cPd7v50fJ2NMBYjl62dXYaARBOGKvKRmSbRhDPqKaqt\\/gKildUmtXQ8Sq06TVECeKVHIjYEFnLqlxFvFcx7fAWdWAVXisjicx0cqCgSJA9MH9LH9lx+wbMsPKREsjSfFNfCmnMdbR+Rd4AdvBJQmeaU6UkHhf8Et1QWA7cV9dB516aaUNE2+7Wh0bkP6jdYrajJdJyh+n1ugJShIT8s5GMuytBgCgH\\/9EkYC5XbRwL5bDpgss5rQuP8JBg9RApDambg2tPRt0fTzgLvj4\\/KuMuVLGOIhZiPPJfoc6gpWWw2fPMF7Le39OmwDZTELkuLVrp3EcOCp7oAsVi4v4S1LEXED1YR5fHPzro25vHffwaixX1ws9du7i+mfz6v4iMpPSvr4NOzDED+S\\/P5D7PyIewZxBh98SM9MF50o90DPS8Cpn70t\\/vOJj1uK7qqIjtMfluUff2m1+4H+2HmxeyD5Tn3e6ZVppzBLp0i9USpc2J0aYRIh0eIEmGMZG8Z0EkXadcbnZettp8Dz3IDjQx21gcHPaQJHML5c+vFnCwn91ZHWBB8V01VUg4\\/dOBw\\/xIaVE4u3dh1XpO2iY8+\\/\\/CHnI5894ot35sPU3LvO3orwTVWfxCEPDC1S6abtzr27dSxnw\\/5+Q9NVjVSBM2V9N+wIe0nc14hrAVve2HAFmwdk8n+07vpIU7rj50s39gBxkRzgWGtkfNNnp408jIrSpTRGCukC0ogGAYIY2p\\/MAtAL\\/5uCq8M2oRJaWlistl72\\/VE1xDLyV724VzvJqGWwCfMtEGRutMxFgqeIY7RtBH1l2P4gI58Vhygw4JWTFGXzMiuRds7ZXD\\/nCLkrI7tAkS+ZX\\/rdXCJ+teDEeDr4dLynQklxCpJkldGr2YtdMBNFnlWRkKgK5Xbtn56+tc2MNHaAth3oZCNbLNNJHjCEu2kAuv\\/Xp3zpaYX1pRF1NSoFL6+8HiJw7D6tCHBXzlsVaLWHVETROHPb0spQIL4IAbuXL\\/pSMwPFdI+X9iiMdOGc8Dh+OsVCvtJwYZ\\/Hio2HKPglfqIgNG3z3\\/rVl4Udjo6QWiZWU9W49\\/D\\/8gdpPA5qIwrL50xTbLO3ykVj+1zUG2BKqnyNKQsD1E5yVWoSH1PQaFNLwR0jCKIedQ1oRsBry4HzTM8ofRy\\/nUUVbAkFGFhpqS6VGUSVw+gvfutuhi4fjmoZ5B7avpztxAdkKUsRe\\/svSxK0RHiQwHICRaXYM8DyhuP1rabHI+bZ\\/4lgvgzrLl7I\\/+4EBDodtFAuw6Vmk50rJpIneE1H5hNWx740BGSmGo9RznadDML5TA4PLcR8VCjul1nrpYoRQMHtJeTYpmoJGi24YwqtUK2NCoOsN1uNe4sqpJ16dX5owNSJBhCrP6Y0LXpIpksbQXL6P5MKbSA+CV\\/0Y9rzH1Is+\\/D1KCvYTilnDD5+MltyctM0MPkCRrlV3ZvlG59n8Jnh6r80jlXt66aD0cNH1jvKaQigDc2taaj2FctpxHEVBfdJPmjaEiwy5WzM6H+Sve96ezRv2MEmzHRLvTSgH2tahabKNchRBk6rKPnvfnEMBR35qGjXinGnz9HLnZ7YP3jPJV5Wrse77hsYtFPY1spEvuGcg7V+Kfbx690oLH6mfWgNNSqe8Iy9zopP\\/RPV9UVO4GRkxjzNHvdAdNFjP8chnRbcndd0P7Zt+zEU4mgOm\\/WCEii1zZYNhBicAhJf1yTthuCUE0uMqJt6if4PMGA2pEaMFNFeMcGuA+wz4d2asahUKgGxXSjr41bLf+YUp+aGDy3hvy7ueYUCEt0tHG+etb4jvqFPzqYeT4nx4MtPQlb0vEewA9243alGEvtS\\/xBmRBpfT0Ad1HgKYw3Cp3c+0NpEA0hi0psq82\\/0DrgAXYWGMAxSNv1RqbLGBz4QJP5U\\/JqHOHG5wphpI8D92jlG+BUxN2amPSL07evmPtR2bVNtEnirf74CDSzXxQ18XZWq8llL42NyN3wyTvCgXBeLsF4zazQfbnbc6xMbmy3CGotzu4AXncxwHHU2gRoVDdt67TNrXSI91wubk7C\\/YsFcEI\\/CPDEQHPZEez2na5BphR8ESx60lVCiCpDkuld2ClS5VGdJNSuhHOe2jbX0GE7DXV+jkDwS1eeixgRUtjZPfVkxzWlpHUWvc9u3B9pIfBlY5Cx\\/VnGQfvHjBW8uBUdk0m2CXNvAsRslF09EnRDf0RrF\\/EB7lFv543LBn2iYq5CzkwnFohT6CeEm9ktd1AoQ1KflaR7PLLTp0Bza1NJJyyc0UAB\\/4Nzyknqc6kRPaIObtWLOOQfa5gJNwZsrjCw0IVdUmk1tULqywYIbcRIWoS3EgISGEqbEQLUaiPfSOXYeGaP+I6KjiSksGE67YrkNEsDgofDKGq8\\/nE7ZRkWeeCRCBiWFOXKcCKFwPDKbJ7JHcdw8gGppl5LF5vm8h\\/aojomiIncWH8OxY5TgaM6OxBGcolx05RL7tNLffoBf01rBiU\\/NEKbHIMR9AugIfsjrUl2vXjP4uPLeCNrv73Jei+78pKy0kakojeG1x2sOcgxibckQiXo9IQeWt+b0mGpTBGzVxRQqW1Dzkt2Ub2IL1MH2KUq1YAwy8SR55omOiat0ziLPe8yI5ACgTTAg6dWwtYRo4BYeKYozvq6VBBJ0MY7X6rlC8S47C02X+\\/SEQLrqD12v1TCB7dIvGuLEHeYXR6EZR+vyXSao\\/An3rMuy9syqXbPwgOQapzK8fIsI7pUPCK+6USIJV3j9xXdct8EeUl9HGZfMxRS6FSNBpHkn+tAWJ+SagcG+qohkxdCWs5IqAy+y4VyyGrvSTuq0HiNTpxa9DTWZm1g2Nk7iPhOqhdNSF\\/YPf4nl5IWFH2aUhEHdpL9iJRtuMKo8vlG5Buaxxa2llUGfuuK+wJfQGIg2dL9NvpJQwrCrzaXCkanzerGBH92K6QjoeRibbNRNrlXSzkricyVUJM1VtE0OeGF\\/ln2W3r1EXbuHnlwScTQV9jpu36KYYw6hEOsid6GGkXUYEtNXJUYPTyMYbQUsfETPVqCdl6oSAx0RJI6dVKdNfRhlSwDG8FL+rUynwxoRaKLZuxzKokujNkA1pcYZXlo3DdebokNLtvsarbc8NdP1eKahtVOnGKbr1V2ZMHTW8TCdupHXPxAXPtcXO1SOFoqXji3G2Tb1ts+7UfTcQYBosQxcigo\\/s01FpgTwtQoLEfWt4TlOtMCwBl9nElrrkIKdEpy9Lk0Dlb1HGTV7SnHKl\\/LVhakC3VgeM4DKvn95+JFnnMvwORjNB\\/x8RDKgA0Te4tfaov9DY94xfdf1n+fj7VRezRfDZ9bBfJQSGKigoSStMThs6wsIlyD+6KxKIzGPeDAtCuUJi8xpXQ0c6DKV8M\\/6ANQt8m2RYYA\\/stx42PSD8MxEuuPYlRA6Fcr9\\/gMSEaJ5O67xW1eOfcwLJfRlmD\\/GAu+W7kQBUihfemP+4\\/yE8Xu1jakQmgaa5ez2VTnLhL77sYvifAZlxwoS2thyacvwEoahjtchuULR1M6Wii0U6ghFP\\/eRjRn\\/GXw1eSRz0yTjz5fY9oF2XsWpiLr4GhwUhPUlUgC7MN9O1I2Xvexu+jMSphNQaSiABznCn+9CKzFde3sJhmbFYtit5PTEHywj4E5u7GqhHYrlFJeXjmSCwX9L5htssQluEYyCtzRFKpOua7w9CAhKA\\/QwGd8vIlHSCn64Y93Zir2ZuqrnbthViDgJt+ezNrcF+3GdCwkJ5Z2Q1O4P\\/zlvcoEhZhuP6GilB4EfPCnC65N12KOvLi\\/r0ravyAoWFBGfoawJ9bM0kGGfWJDDv\\/KfFChUEkmDX6jOGZA8B1EJ4V4Z3i5RNkK9f7Z7rWoQkUJ2QczyCIHcOETGZJ+Rst4ztuDSdHOLBtO77aHYV2jMJmhsjFQ37JH3tgHzcHayK62JZSWEL8BzEw9+4LPARm3NzjKtpPAbJf3R9wJ2PBvPmcLljA0pGi5IfgIwfKquoDiYlw7AAIKDNt8MFflc7l0Q9fMWZZAzuqPcif2FcpId3\\/xv2exz+RBSTyhHCS1ROpoiUUoBY8LVjx3XL8hmH5Z7\\/l2u3TPnPx74fpwCFswapEiAiafvXFt0XegBwHvTNK96Tkll7Mgx5nPoS1MwuKwQj3Tr4CifDoEQeN4Kdkjsxn6pHrCmWx\\/DHj0HaxcbQe57pfljEdGqNelWIS6aQHb0aAFdXRZuqM64SVAIfgkwT5x2w2avLRnnfvai5eiBzgCnHP\\/2SepoHYYCAOJQzi+4xzSyDzkyCp3rYcdd8l4L8QhclRLpzglcYb+ZS10qUpnhhmpKFLErucyB\\/AxnawV38svjm8Igk7gyTzlqYsOBcFtr7GHcWFfj4XHEabW8T+xxFU1HbDpZ7Fcnv3quAB+0Zdr3U\\/akVJLekeen8\\/0XCV7rgmSO8+WxPAK1qjwlQcLgeOgrkoGJWgwETIEZzyKIt0WASz35yPyg6A4bDV0qtBm32VycAmqs\\/WKjBx27Gxh0li7bX7awlJ1laTy87B1fmtv2vhX0ceNfJHggjd06bJLQbJnVc9YfkHXOLM\\/JS9+3qSeLVOXSSxjXvhUPqJH4Y2itn1riSR1SU1ef7Xy6dOqe15DipSX6zc15BujVQMuPL5u1hMfxg\\/ZwLhG8jCt4PQin8vbH8CyQjoo4T9UZOZmGt458n2\\/s7xtejAAEpGnrl2gr8EPusyvqPK6NfnAllteZQFPls3XfFciVGs3HDRKmGciQx3z85WhrvNDEP0nAtlGohHSpNEeKTZ0fTltggeqNiF6cmsAVBXZq07va0FIKzgm6QV1LGXY68C\\/pCrOFolEbmmL7d2w2lkL+Rs2I0aJzuA7FAJL0un83TQhloAgYhow1qzASH9KxWLLhjNR00P+NDL+M+JMFgHyXt760gEwTu+IaDMbmhpEUHHm9dpBK\\/mlBFDrgj58HyZHRy2boZekC+TzzT3quF+FHCikUXDluZQIkGFcta3EBOIUtitM0Ah5F4vIWya4GfHwjhV6aAgOgUc9ewxF\\/24TnfnzFeLYAwNFq7ZyOpeqQYAJXayTtuHaMDF9QhgGI\\/TuOdj53G4HRFIcHQ9PufsaQ5LYcienlbb9MBTlmFjcOTN5nkJg\\/IugqFFJUJSeOkrjZM1PNCxaXsUo8Jqfy63WVOzf2ji\\/ECBhKBbSH4arudHHLwxK\\/zNdc8uig5I9QYdURB\\/9VJ87LyTlpfjujmdqnof9wHFw2dMkpv5aW9GWWyXgLxhft5J+z2mJINmD1RY88M4\\/zeTj61pVMZFYTAJxTSzSyXOV9+iZ72P3CH704S+LfBkM7RXuZoZmepq+ESHE4TP2RxYrLknDH5KXJ3+KQ7rfNgBcgar4UNSSGuUj5hMNymJ5cLv8qGaIJHSupDT1eqiMFo\\/BUsNz1GcQkFSH3A2hf8n+p4RG7ZohXnyYj2\\/VpaOIZsw7ZsmLAFarpPduXouiVN29S5OOZZtrjP2PzJUphldC12ZPRpROSZZiox6xsi2onwtuy\\/3knBVmF\\/Yyw+ypoWCYMv\\/CA6v8Q0ji7z6hptyeum8po45uko3Sg\\/twheto4\\/+bdBO7QvIqy3T7cZw1OD2Ft25Wlj1yrcfrFvuUrA5fkax1\\/rtih7PgdlWt5JT5GoJ0KBmg239XZarQ1n\\/wq+9gggBPi\\/Cqw9pZ+E82V1o98eIeap7VcLaWdy22fz88okgTDIFinAK2PSQcZ224hFaKAMZkqkMoPX412mlZGW2dSoUSYVyDSnWxymcUMWipwKfS8TP2lu+A1i\\/C\\/K+9Na1xxF\\/qi4mKY2so4ozB0+V9MtLF0OAJzP+02wrLq2h1itKevhWiaJxCSe6VexBVFCPkq2Y\\/5gHhn0V5p7YaabRP5JQ9Xf6zbjRQYzW+krWMNlK\\/IDSSS4UD\\/PxlOC766nwy4BsTS+I6TCdZkbW\\/hhLiGlxkfmPNMvX7sN+iU3VmAhU6\\/1nzAQAQEhBkuttZsVeyowt3fEfxNQBWq8QrdKOWaTj4uTsbXDj\\/lEIgusR+rCawR4c25hbCWGfQQv1XukbDvImrgQ1Dm1HHJkcuKv+4Mg04m7eIR+ITh5LMpSJgNhmeTwThTGMzanyQD9kaHAQTO78Kmm947gkIHhmUFopGwSHhBHihovZYr0PzFzntm2JuJbk6YVIT90aMzOumnCGOS0BdeWLh8dsiuV35lOP8q5AmhhDTAffTWOQGnotcs3pklKoQNuKbzDFMPwfSBkKAdfEcnkOOSS5ruMxZIs4sfDGx0nc0kh9SM\\/dS7REBIK4DOhH5HcbRDCyU8ZFszzqG5vIml7+fFAnfLbVk7woJz2IFUzFgpXNKX1Sw5r6PKZiCxtWIl5Et0SPV45zd82GMGYKLtHcuae12RKbyZ0CgecPskfq\\/hBP7JCbCGBA648TQRhf3BNf2N0m5lbJot9BmQDY84uB1OJnGIXD31h1bstdCqRJqQy\\/gPnK2kCm693BrFfsXWWSUY9jbTcs6glt5vY3VP2NcGZeB5vzpAQ\\/0BDa6aWqq1CvTnfOJPEnxl0vJ67RUnSMuTf3MFGYx4m3oRs9c5MkeGAY\\/qSZmz5bs8mnOrPLcN9qQgE4ibn5MGlClASPcNIeK5ym\\/j789W\\/ft0HYq6VvtCwHzOyLD\\/AjDhQmuezmkuoG6Kwv267G5a62oRh5FTrR0tdG5NCdhhyYJzOqNeAH3sgjMKFtjfvy\\/sQ\\/v5ZQGzbqyfBq\\/WhfekddFIoaeRnhCu3L6MV9DUEYlM6wshYllynfcFShn29Xn4VsfgpTAf+iaSEg9POZwjCswFq2sM4DIeE80EMZ+G9Of8FnQKkwLI4ttemLMKX3zXRyQWh\\/jFay2yxhH2LJ3LN7JwUH3XFU\\/r3+QLPflv7zV0KiyeMSG+dduEdIWTkkAfuU\\/5qPmUdBtZ1WxMDdCQCho6r1VeqxhuQ1aG8HiacPaThLUktwJVIWkRRbfq6Ii6Lo8jKduGp9BTnCJRnQnYlar\\/n4ScfBE0AhzT5H56v+QYteC1gwGT4ryIGOCH6XNw2igNnwH6zdMa+bL4UuqAfKngQR0OP4BeFgLdaqt0cng7dUZOS4VWy9L7AeI2FHxye7tiuI8yQ95SFjK4k6ubbMMtI0KntbLor5oq+CoxAoQoBFGwCmlgfMvgUtNZ3D49QkIt5KFURJxyspqqRvrvqYNC426CtuoHP\\/2lwU78+S23fGuVXufyzEIaKRGAYaCmb7kJZ54NhwtLAzSnDu7MF7EI9OaiAYxkx9lv6oaPLjDsTNOmfWpSz611JTAbHuep8PES5vxn0zjtjoFv+TbON8C4weXn7ywwGI3MrbxbtlFGVZNoyGD6t12hvr+A6HOYk1OIRdx4D8Vkomyngvs2dnlnJT61MFo\\/fSNGf0chh6oLnHOdtyppVEKgsaFfvu37QJPlCm5zDlJShzTD9RKXAtbSa7VMcImpL1eo\\/IWpUaNoHYszDxTMxqxmOQUZy5Zvbjp6dO5BFRH3h78xgRkudzK50gf\\/1dMc2SiV4iQeZj\\/IVCpkN9RhBQbBXwqOut4CxuhgeYhxD1wnrFsoW6thbox9Swxijikin6aFXGyKCnJAom+LCvjPWu+UabyiQqXRFZ74dp0CQYQn75seRFPKTnd07D1KB5EQG12rhCAMpv9i65dx1cxIRgEipZ86REa17TnmiEpWSLbOYA7FAXH0Ze2W9wQrr5wBj96SgpdCWBYJ3mi\\/F+6QiEFzufnPNSmYxa0dxHIJ0291A2nsXOiMlhEywQrqEdQUzrxQn2KMwadzGau++pgUfViWXiMv1kCoqLD\\/8k0VdbepWwiwUQgE\\/gRSmov6p5Btqqi2pDKlRg4Jhu+F10KET+iw7Ff8fVFCP6HuVSuoGzoIfDtt\\/inzE9ED5p0sAUag3AmNkFaC2FYBxRTTgedV74JQ3l1ZHVsLpf3iWLPjxnzu6HAzg05tCktJZhANf06TGwSqusZv+jI8m69b0CjH+g3OhfS9KGZwnhA7HkQWCKRd4fbMgp0\\/OBNg7ZawF0Bl0a2+a2SpA8O+avlCbbs6g6k8h4VDFkqR1yVZbcRxrMvl511NlJyf9uFYVX\\/tGD7wGLrzT5VDRJuYTGy6qckNx0k8pDXW5Y5U9SQfcs0BHEFZfA5n1qBaOWDH6eoxa\\/CjMcVzPMYRkHYypfSmOCC6I6xNyFMuSxzd9Pct\\/+VGvo2c+1pJPQlga+kCmuHczGDHryBvK\\/GVMDWlzMmQFDkUfsZteXGf4eBbZLDL4m0FoVLm0y37ZtlRRN+zRvycjHmGt+F4oIDW13ZQRgP58sHO2+omjGT1xNQeB15O5Zpn4uo+lTRibhn1co8MdcqdFxm0w7xbhhrVLGEwL1TPT5FcoBKzrG5hxTKl8kOS4hEpPUon28pTYxuYLRgpkT88qopHUjxTjbSQS8sTPX+gfoDcsEmRoD9xwDzFdqIOpPzVJuul2Yl18LX+D2VADY25y1Tdedhe\\/kh+IUP76uvzAR0B9QR\\/\\/bIj3vG9zvqls7yFXLndQkqqfZFMCYPgv1FU08SmUs85ULsKk731FL6yvqKAaW\\/lSbmqojMg7angLuxTgRemfmqxstTJGZAjAJRdjOyuGKaTmtscNE4V8Ombiq5RpFY4VzOxZovZ08iJg9geQ9drnFCexL\\/C\\/450Ftrws1d+rLPW5fkpEevoGa\\/BhTryYB5nCuMu4Fqm7dP\\/7n8J0COlosLCK+AUPY+Q7JxmvO2gU4YWRD0FG67umHCNE9DByLVM1JXDEQnv+9E5YiSkVksP7wIhO9SK7LXV85QCOGV\\/QBIIv8M0IcJ2duseWQwTmGfrGBHSZBVFehSqkfH0MZboRn5V7xpQ4sOrl93nfuioo2vZNOK1kS96Nfb6\\/5sW53tvdHsR3FZcaEFvkh\\/vhf8NpwzDkJqNjBT8gtqeuZdzB0vACoKh7VxyxTDKZweKSLzYVFJ7b40uBsqyR0U4+W912oKrtWzAZPAU9Cd+pnxtlehtY8L8VigxyYqIvfn7phAvW4HWbDgijniFOjY8grHcbn5OERoKNprnSp+DFbT7HxlQixcjZ3onG1Kld0QJZydqbkW7BMo054eSwr7iYPCduBsKDaKGnXDzsd8xA5wF0DVE0JCdXxyieicDWRRAqUJi5ZhTDCZzrUQkLgw6WAj\\/yUx5CkHFRbMSxnEEXDTA6FVCmMj6abYqwTE0gYpjXrAlFfxJLHURCCss5xO3Q0n5\\/oG9sjTs46V+xTBcQro45JK+YnEFI64l3O+Q5+h+VHFa2C8xvyfTBqVmeCR+DAE1TMLTbPdbQGPiviaA35u++2hEui\\/EJnsWITZj2V8PEIf8xssbEl5kkaA52IP41erJc+04d2PYeYO+UHra0rsoxmZf7XwjLuhT6mznMzAy+9s3vHqicWzPqd0RAokOL12JFMsRPpcmM7eWL8qXI1id+lnSyDn5lGN2Yn6fqangPC\\/58gB4Hh3eW35XI2keNkPvgdm0kIvz9sPDb7Y04hsZyk3shsJZ2+Ormh\\/QTL9bPnaxqwWeNU9tUmZqw61+JXINkhk9jeBc30mz28tS42HB2C\\/7iSVpWnx2qF1LF6NIq\\/tL4VUhM8Nimaxb7GVyxD3QTtg3FObgarbNmum0Fr68R+gS+Xht5KjqGFA+zDji+CtxQoHAM6eVAI+OFEokrION\\/TZnvWN2K7vtu4435RPceoykuOW\\/LZ0zczI01T0hQNfwH5xsEKptV0Dy8VP1OXUzsEfoakTVZfnGLsROt\\/a5A7PngDCBy6SZzMa2aocU\\/He3bFlp6o8xt\\/x1WZMeNGfN6xKhDFDjXN1RxhFAV7esRcIvaNfBCTHm6eZR4YnV8sunI9X0uo1xR6AW6PIS3mRmzdPD+7BeeERE\\/gS6Tq4fsr1KTsrABxc\\/OaTmZZv0SR4SgteTMNZ8tI+iC4xrSuJ2iRa6pnqUzDC6fFcGZTH6bbAvhUP3V8bPw0+55bJ3gpQ1glCi6ncSGdrYIBg+YUICEHcuLR78dNx0kK2yQvWT34PDtIhEPi4eJTcCHMHnL3nauZSwt6rLcCVx+Yrr0imcIXLQ60YnU4GQlufXjmIyFZDekgoWIiOLTRMoOFeSD5Xg6jfChSlSf8yUpbNlNxPnxLfhJOvG4BMTFdVB5M8NxjOGzFvAM\\/DWnbN2vaU3+iGj\\/fjwVc+EFKMS3ZTiHtUZ7a0s3SzUbXU0AOWl1nw7xXy0ziGSQcaJ2urSJVx6a+W4mmaE2RkoObOVtWvNHSvtSsAvrMwQVFY9fJg3ysY9ReG30LQA2rHEXHRLqZx2VHN2HCY+qbaHgdTRjFMit1tdiAOMhLjVcjg818uwR8KJq8VtSdY0fYG9\\/CRgEmzhOJMFRdm+LDg\\/nJoud55yYMyNXCsV259hF26Sbhpa6s9DNsfPsMjHndEQWLloOdW\\/YyMcZYUUsOB+FFQ4CPw1koVKBAc\\/XXBkX3cIKdB2oucD9Eoh4sdkdebZ3x\\/H\\/iZSzK9DSXyu99gVt0XqhBQfClq7XwBgoth6vs8dRzXsGzNDF6bqym0pRTacv80aE7rg\\/WGtvor6LAmDWSdkZPqjRRiWY7qgKbhLtg402e2t48lnpNZaO8QpEJm3aLH8oRE\\/mHr2bBXsHgP4gIYnCH7LqPp5RPN0ZlhmQPfRMjRxp3o59fi8gxm9LM9Vaf+24KMi2H6Wh9E2sp6uyIGcbaHOl9KyjjmCfmDNdY+XNQDgUzPLs9w61hC8HauHlgGb6YgJo\\/ifv+jL0LlzZaw1aNpHVn8BC+j5PC\\/lv7y3tsJ4Yo8P8OYeL3IAq0M2dYItX15XjUfZCT78sLSDp4LXL\\/VBfOcrj+BQHzW\\/LLDKmLvnCcyd+ihywFrfk1LgOJ1mWu+XMDXpLa\\/mFi\\/xN2cgMBFZMgC8GZkAtNtk4iYakY0\\/3mcxIkpVFzc0sodZew4pxWwN1tF+Abyc3j+V4xtA6oFAcN9vARXLWJW5\\/h4hjH8yFty+WRCX7NFrj6THgRipoUQG9zMtBmzzgaHTawTqGYpO8UCN5Y1b0WZZfWh4bG5BGpjAbC0RzJO0aym8coJkenH1p1+gehiW9uDbTESGaCdZA5aGH\\/S4p+XCUMqQrWV+TxZDJqEvj1\\/np5BXhqJwAUuE1PGzB3faauJCLONugTE2ycfxkzqxMJjpSXAHbVLZ6r8pfufVr32\\/NtNlcmqg1AZZ84uPAWut8kxnpNCZjc3cJHrY+Ikc6S+qdQwYaCKjr8ZM4V+8OHvz8NEwL94YZjjEutqEDEJ5zRUYX43DWjAazEXQLPeGdz3s83OKeghztt9RCBwvzWlCAiwEvoVWTsckIHgIri+jQrBDP9YE9ZI0UhICPiGLC7y82io9cIouoAluRLj3wztVjRLuhv43pjeGUavaXEeyQG10CJ5CWhQoaVKsYSLKY4LhePrYEX1wYpIpG7lsQn3EF3j7cLha2HEWKVOtrgORF4Ddb81nCAndQOULC3SNNcrRbfO0gUyz8icIc+lEyjcIgBH0OZwwsQnAe+WE2qLOwiTaSZS4JZL+tqK7FZ58yj2ibklGetyUfk1l0bMXPQ5dDQfC2dY9hbgAKL6c74w+yjSyR2wSSC73aqiJ5m48R8Jz2G3+nkkslA5D8poPwP8K0cXVuxOiYIqkzWahj8Bf45axBzUSiNElBc1bbGXecZoOEdiT+m4xJb5pR9oPlYheGzkdZnjRMgAWOu8MBGfHXYZUzLkgfR20T3FsG5\\/l3XZBI8ZE5uH6nieAeN5AJIO5YdGeHI1mjgNuBREiit5Z5IPbbLGoUw1dx0DDf6Y7qmnPitmMU1KYhJeKZLMRVPZgu6\\/FlnBfM7IAcp4f0fIXiCVfZuLDR3ryYLhNunj+jQ5xyMsblZka8l6hvjZkRXtoR\\/Wae9eWsPsig8JA0JMIdbr1WLSXpglI4JjACDf\\/XRsTuu4+LeUpvJW2aLWi\\/2tCoG0B08wF9\\/Hn1aOxkiLRZ7mUOlBcYlzSxqugeNIZmr\\/qtQ2si2x3QPkVsavZnrryo6hS1OlK5ElfY1DXjdVfYDEx7uJwW4qE23uh5oiLlSzw0Ro6x2+pmyTbPcZhhx0jfXpAIw2AACCuE8uhWfORwpKekKHjijqnrcyL6PcylOc0xnQvtMWrq+bFpN9hi8FqZ59mKIX3gNrkKKKFYJlU4LRJyAwHwvotO+y5UFomy+XDFO+uSuPC0BIuhnABe6AlwII+uEQsuHDTFWo\\/EIJ5KnBWbfEWt7SD8z9tOz4ZHy3UlE84ImByf1DMgWomYTchS+SkCrTi95dbo+K4iaashotrEkDTKmFuGwOrosxo5NkICH6jYAhGcSBnbKT3aN1G7csDxHarQsPfREp\\/CRq441IJyUAp\\/vKJJ6xApP2oa9nqS+lVSoyI5HZTgjaORCYmWPQxF5wkuISmjREBrZx1sfgNxNQ71Lahag\\/jCbW7wq9\\/ZzCqo+tBWsVUrNxSqHSfQbjBkHoYdKukfMAcuBgP\\/n1BJnMIE2TBV8Kgpue7XR6S5CqV3R4vDjuAPW6w0AqxDgPNzV3QWdycJc3Rg8oJbTfwSZpMraiQ0ZRwYh\\/lUr2mqZuJEK8iPEfLuibOYHl8AFhm6sxzyAWHgIIznHVDjgPaJEnDsaq4ddXsJoMUNzYQZXCfEznIfM54Fe50rYrz\\/1Apv3KbN\\/reMThta4FDdILdUp7IFcUPbdDZU1zZaxRoASBeXwtT1gaGBjj8\\/VpQ0RRRMz1S7o\\/dVjOe\\/RiZdTz4Qst4jxaP+rcd7rFBBQxFKBXJENaCo\\/7hWnweLZVewhjkiEiHK6AGu8M1q9zXd4p5DpdAKswm9iSFD4Gedvh8Iu\\/9SPmx0b+Y3imj7j5H5Uq4xpm2S2FUd26V7PLyD2MKth+irCoUFE5qSMyQA9SUiUMuWSgcjTrrXrBqSpff1yyYz6nXNDUvamf6w7bR1\\/R3btl07Nf9AcKDmUrBm2HwsAh5jtVfA5\\/CsC0ZIq7tYGyWzLu8qJEnqE7sBDjypgpWPH1Kj0+6jhMWn2Q9GrB+BSMkO2BkViOp4qU5f\\/4UPKpwdZWJzXlz0CDuZ5N4cL01JZGBHUVRDM+LzwtrCAZ6qkUgGtNrWSzN+tBUduYCrwz\\/k0VlIaeU5HcB6R6KxJ7S8tOLr0V1RTRqYmfAa4RYUXYrxwIBTdqBgeCnLntN7Gtrmfico7HocUxNAMmWgKObIu5H\\/DmIYtdyTd3eAFLTIOHL\\/sKa7zYU8T2ku1cByBT4+K0TKStjBtcEeSo2lw4dpMCknIaGFNResv7Aac1Be33H3VA13rEbpbv9PVWbXDO6d5ETz\\/+mDZfC8OA+8dfiE\\/VSoS8wXz+nCnrv8pw6itPz2Rxf7p8UOIxq4BYh\\/rwSp8HNPKzR007oWbthgv6X8yofOVpH8KHQy89n7AfTSvus9T\\/QQKAZ9iyGbCVp4wqwZOD02w\\/5Is5WSmA1FO5CDsrhxv5M6QC2phg4rCugwho6h3uvoL4sveNnnsHJ9vU9eTbtRfmhLh4v5jkecntRIIG65A9CXjoCGzVMueEalLdkEgDJ7DTLpwEfI8yMGfJwOJI\\/+gaZfBRs9Dabg\\/CmF7Rbbm\\/Zju28\\/1dhdEut7mxBVxpD4CsqGNc3SC9URQdc8YMa1H7vWft5RCBldEtM\\/l9Y2xVjQpCtwkak81HXu0Vdhvwdu02AtbAT53+HNvPsl9E\\/dkK7ExcuLMatpLNrq0FZtjhy9KFT9rbKPIEQVpklXh0Q3BhSwOX8M+3rfMTGdq2I8Lut48uKWFuFOD6wVuQVxDMRPCYQvHOsQaLcH\\/UX3PY2gaCkGLgs\\/eAtGLJC72wyui2Kw2yjYWNhYUA9MPcc0lWIe2Q\\/gvFvphpgZkJPtoNs4NkXEWB\\/APDy3ptWCPKy9sEtrvjcHRhvTQIy2ZASvh+FpwPcfig50NzupXUxXmA7sM+B0U\\/AH+kE3T42wMY8VNtJ95mkXI7ieNzt9A5QRNrGQpgUY+v1dIzME+GYXC5rr1zCG20o813CtDQyT+a+MlOlt5jAyzF34vQO8oBg4KiD2L1SIpOsJ7Cv9dIEgcJlP4GzIX3nQvD1Z2HS\\/i2e9UrCk3gXWiMamNux4udg3rNr0g9EJCIC0mlN62OO0bzK7X6rjSwDopO3YwP\\/\\/Uthl\\/Whu0FOLtf5KAZlLG4NhQvGRKc9RC55J+czt6I3HC6ITJqHScd5T8wvbG0lAOrD5SM5XwjAtwPfX1BtXWwADadGu3Qvt1QF\\/izBUPThBb5LHJjFplmI8EuRDjJk8i+\\/WsN4i\\/WMHw9+bQSu4ycr\\/mg3eqB6bOVIaXuPW0h5yxNlyBxXPM0Rb79NzJhCm5WO+k8C4PcHbwvGqITgrE2+oFLo9Jig\\/ILiV5eSWU87lD7tkx9O6MxGkry0GOM0MDSKU3fkGWUo34JwTJa3jZ8VkiTOm0AxgdbPnQw3aMzGHfYspQp37sUCRzpAymjlW+QUVcv1SOldNzHiYMwegzyu9D5I34n24k46821QhO\\/9xFb9WtE8u+b1c7NuxRCBKC9SIAuVUHF8PAhmZN7RWzfsYyfpVdzVD9\\/7jjPrBoVbuMQ37JzotQZXeoPOp4S6Wf2Ws3ZBAuFSpdEz8+ghreYRBEJJZl0TNczL5c2eRVGLj0LvwubjjCr5vg6qAeH5K2SMmC6Cz2UtR1ZIko5tJsnL\\/yNA1KlTzbcLAQSWtGgyi6RQFJ1qrNhMgkgoxTtv9lL3YguEVBiylN00a27jkBb4F0b8Zrea7GYGjD+Ryqf\\/XKR7YFKSPn+\\/1MReQw7Rb0XKrSEp0bj\\/WtCaiZJ9AjoMxyv57q6deWupechHAzc+M7uIF8VPsd7c3tr3DIffsbAVLRmAodE8IRVi2SOcGhYMcVB0XQbio+htNP64uz6XXlx8P91t0MMPxPx3NPGs8tdrzw86kSLgkqBH125+6FMyUeb3WdbzoyF11BQg3pTvl5rKDNiM5SVsOYt+OVH8Mi8aVzlQd+g4uqbGels1+DzP8X9rQRsv\\/rGl2NNa7W1vpCswMFQaKd4+LVk2BeXGz9tFACRdQs9dLqopA\\/eOzJEeG\\/gYKbgvIMuDc+Km6WPl9MdzlXyfb3bjJh0EW3oroaudc0ID0DFt4FMaV4W8+krhslw7c1NKNVCHg2+1n5ibXwEdytNY4neWDi2fQbGDVDMxiSRO4c5wI1mmx19Oj4ovhTOSA19OxHItDj1DX5Aq148lFVCMAiwyQixGJ7aG6syeeid6dkH62dgPqbXGNxMraZHsKdZqFQDZKHfSbu\\/lqNuAo79R7kvDDfJn0Eyjkaqah+a7l\\/qH8bR4O5YQSkWqY982r5\\/m\\/2hzfqE5rLjfV6a1DjRAk9UrhisLBwHXad5B3GuiZRZo5d7BGRXnxaXphYOO12BSZXjscbyWLN0pFs1eub1K5Lu0zdN1mYy4at2bti7qDpwBtRRth9nU6hu06DsUUE2K7fIRjI6S2k8SQfs4A1D8PuclswiH6l2FNmynNINWFa32n95xooJkSnciGsXXsPHyqZ8zRFOle7yzDpP1X32MJ9Q9jXK+cpYYquLaxPBbKpa9\\/bPhpmB9dQ6LzcREJ\\/fsPxkiWRZfCnNSj3cdK4ks6yXQhYnfxrFfqGK3OINY1k8kR5kqyMHNIaFUiDcyxJMEdDEZe6nOgCS2JFrtCDNlCKGcEabLuCSsk5pWyF193rEDR3chz4WxuwaXWV7hfgHFJIuNFJ6GFikPg7daVLitRcZjEWiGyfzy6L3zq22Z4DkGLx34EZBdNK1M31jRCm+jmrBP98LUEqnIrFbWhckrLDUC61qUB0e7sp\\/v483Z0J7t+7OW9exFlwZKUCjCscPlhtGDZmb9bsLhP0J88Logp9aL6PrC\\/VHJZ6n3K+VUtJlri9DnGgmm15jz2qb8Qo01dCvdGNAsnjI\\/CKwis7PfgJkAnNULLey23FskwPRLq0KRzRPnYMcUG+IQfSNLYXgmNkSalPkQ4BTW4gwUFVenZyNgOGEK8EwJHe3p7tU59S2507MOPcNRYsqxC56jwia94hwrGoCHfaFzTflBsmtuzB\\/M9n7b\\/0DoIgY5VXfcR0zR3ETy4OGRiM8JndzV\\/\\/jQxVCHpEGjaPmkDMq2Uo3\\/qE\\/eMS4YciVardJzvCMbPtFL+nRb6ZMGZZqXl9bSnQip8wMnXjgT5B4oYBUfIvmxUWM8STwgvK6S7PkeTZeqeG5x\\/zgq60NAP9WaNmI2LVRfPGUhusGzkjYP\\/EiFUIe8Hxh6AW51ddo6uGuPpzt8UoPlRIVobfehLSVnDWhenrcCfcL6VbxEnCl\\/CJxJ7xhSx2ghdJdKl3Oir+NcSpoPjBn3BYvCrPEbFiq6+pf4ZpRvHynaVvT9TOVCKysackhtfQqmpei5iuFdMtsBzfmkJEqyTW5INZZ3jlyxp46UTEifXRXBToM6JtD\\/VB7o5g3wVhrYPGDXNkI9uIil6TvA5DhZvvz4nxiMZiltZtcdlD\\/\\/L0btbXBgt652+sPRrQiF57Iejun2cxm4SUWIwUF3sOsAY4Ki0vjdpwFfGZJ4lxjyFejAP6Vkurl26pxO29ODwFujP8gDCs0vTFwD1lKHea6ysXXjcmdQ3xGEEMZSO9r4\\/B0RCAstpy9mQLNtb0wSX9YGiWsLBCJ9\\/ZQzODd6biF\\/LZBhBaTmjwoKbYrZl80uHzJDhllCyrbIH6yIFpQYswyK7bjN32Z3TcydD9g1bAtpJWbQtvi0WNQ\\/WcYjHUA20oEwFTeUQAuHLFqyBKWnfafvGvtJlZfBsu0nvo8ienKPI+FwlanzJwA38ASONXNpFXS1\\/LL4O\\/+kM\\/1MaDRHNlAFazCfRLzLHmOrkScUoQuw7XoQWd4Qa6gISv277uqc3qrz34t+blbqevZluy\\/rY1mQRw\\/\\/LFI8S0bSDydW91tMCDJ+b8LCVpfrH00f2PTgyKKNOf4PWbbwdUam72ftMKs8nahtQAoXSWr\\/5tedPb00QX5HjljhWRvCfjTa0GC4UkVXCMfKLrIpLLBuSCGlFyc+4Ir5MWNuTluKCg66nTEpVAuP4VohvAFGugVvrL5MNsfK\\/3K++waOz0gpzBG\\/rmCeg+OFvGFP\\/3fFiPCAlVgrR571txn8gtNGo\\/9wUSfPw495+6DCg3Z\\/W3K6qSKZVyOW0CnGvZ7iQ3eZAch46yJYlj9cwEmDAyA3qP+aK4V5OBiygJ9sPXmqktQ0LA4AdClF5olc4nFndw1V6B+nxddKKQuvcs8XYafiNn65ZHptqJG5Qr+vcJ\\/7FehH0wnKzNBAJBmyLJwrT\\/JMactWbKz519h3phsYGNrtGjj1C6oHEM4LxqTFt2aznk2kcjZYETsOfchQTDd62LCXq4xkczhGYgF\\/5HUVg\\/5AsRTofCwc4TiELQrgaZOJD634Z8NpcHx+DIrCSMlR+f7biPrPmFbjihUmhSFEpJFTMnG8knVUoHFXgUrskGNQ0reZJ2md5+hYr\\/TK2dqdNKKCSnkZ1D0BRO6AvMupg5lVbUGw3TiaK97WNVoWxI+Yn3nSN2435Of\\/kN4QIGtgGmYMXIi4s0+mLuzNqknhB0FBOghemdxIIOd+eoZrOfFwNaW9xYiWDA8LpLJ849LTSxcq+fHQ9wrrBuvnorYB+XbbOhXIftagmXAdGDfiiGhmONNoh+q\\/i4MrbFWjpBUdUah9wfznrg1L9By6E1rocanvSplEWBOsdjEfEQ4owznIvMT3SFSw76dOGlF2cYDsjgY7tfx0RNrrzgAeXYJ26wQckPOioQS4Cbt3oi4oYOWDI50A2hdpvFkUyT7\\/MbBcvQcDPI4Zmb9a\\/d\\/VeUnOu4OF+\\/Krll3BMkXj48P7LU5h6suOwy6+06nDCobzeqM5I0mpNChh8G8FG6OT+UCCVFjXMMaIIx+Jupy4ldCqLEhCQOx0dn1tEADDBkod8Nzr8F9uRMd5vXjO58MFPvJ45Va9Jyv9sEbZFN3i411y2VidqvsAd3hk6on5TPdqDsqH2JVEotoR\\/kFVnmDftYujcCepMeLjbj+CDQs8\\/uIOQ3N4VIVKrQKIhUVEN+pyDtyW+dlU67Jm3xdU\\/HA9tVmjsg5ilFJGh3fTIuRak8vy6ULiuOWpLIWk\\/h64RFngtVdNZft96HBMcEhf7FM9\\/ndN1ZWv0CwD96fz9E8W2w2sR30\\/IVa1Stvom663qUj3L81bZ77BvGC3BZyqJyPQ2TToCXbWCAihScCEoyQKTmhXKRaehuxxS2\\/WPGCaL6fe6+IHRoJO6\\/ionEk\\/H8zM52dvXxcRdTaYB5I2TCqLbmHiMba5idWAeRjI\\/M2mJfcyJEmOuyvEfNh7MjB73e8aq9L+U+Oek8tVS154dYuC8hqH7RA8XIaF6GTtYc1uobvcAlLZGr8sLekHg3rTsw3M3LYOCicmYzEpkH6IUJ2FICC2MkXPfrTdB2k8FeihO7jrudsFcrbeR2+NzS1WZM9hDpDFzX\\/ubdNfrcHA+LmTIUGl33nvkKUnH1mSIWI8OQ24QV10YsTyabrmSV0As91OKYuAbDZvYuvUJTiZwR3abSldjzqbd75rXjz7Hp9Xua\\/wpti0xPR\\/67qsIyDR\\/aKh1g+JKQnv0O3Gy0RKyP\\/PsR8FigW2M0d88d3tgjAatapSvEp7\\/vyxHFRtaOw2rknmnwmFuEupZ6Zy\\/EcvpHsJalvhWyr5JSHJIKZoHuZGCa0mmM0tVqKw\\/1UReGD8yb3Dqvyyh6Y2LE53PYos6xk1WCM15AsLz27Xu\\/m2vihNxFIQ1bUjDq2O4iXbEWCkCkUH+AEvUw+zFZQ4R\\/1eWrzAe8w0DhbyZ54Z2\\/nLSYmcjYPvn0VZ7WzqZuVWyyPjE20CTRFVMOnj7Cy7eb3eyO94KN7ngVQukXIvczrFpFX0BDQ7zrqQ0Ub27H6kXpa0H8FM6fHjHb2QhLTU9VLVEFKT95EqyKFW4BlUsYPwpEAaEkuksPLtLPdmdGZGW7J75sbx5R6YdY7d4dr1Gr0frD46XmARI1aUOc3OQeYschDg3yps4NgIlOSx6u0oIWk21Y0t1QjicV+jQiBAqhNMEbfoxwpw9rcR47C2qSeru7\\/Nyz4bSC4kY7FB1GTtCdpZ6exRk1OORo2mizroBGAhKXzvp4EPWB8JhxjFevIzg0\\/sRjXypnBaA0MWDfPha0dqhla8VURSOl1Ktfs6CQ7Qr\\/ag3kD03kGB0dk8T5qCnwx5j4l48JgBpLWHabRQ2RnR6+2mPzcBf4xTnb+O4VRJlzGTlEl49\\/DKu976MjHQ0DGWwLYmOm3Ng5iz+yhrOxCVwZQnVsu\\/ezVW+YTnUScNtl65\\/7caImQvmtwPKkg6juG+vrGeNUZKyTWYqR8Uh6LNksFFKbY9TCu6yXw7Nrbp3EmycLrrydtgnLYhUA9JoOoODOSU8fYdvUnymx+26FsumnZak04Rb8aR3d6VqkE+NiXKWyooUptt455aIkYPfjGC5N6WB\\/dbPCxx84CUsNIU24F9y2YkBSBofa8xS0bfoxlNW5bou+XsoU2+e2M5HPlJ+dOJsRa34wDS5H9cR9WuDHDj0V0ksTwVC7avlFIjJz7LNXtyEHnx3EP2lUKJpJwDhw5VFeXf+xrylzi\\/dMrq13gybQcvyfGibsAgB0aDhwuX1gwUD25IiZ8iaL2t+6GxsDSLwD2J64MPR0LAhoUVLFtuMFC8V\\/EEvl\\/8ekn3avXX0CcqsSrhcqvWUXLr+HME5\\/IUVZ7QeZQvhcg0oWAIj5XzM\\/p0AD7b0Jemt1Me1\\/\\/zP4hp2kAVmerh+rE+67fI7\\/5KY0GZesADqbND4oN9rWxSYXDIAUF6kzLvkDJweFtPLKyK7CYhfNJUs39LMAqDzdTbr5KC61QQZUVyX4ngarav7F+S9lpSwg0pLi9qDJDatQBeIWQVnJbg1ubrhioIRrWwdvr0IFMFM\\/h4+PjYn4SdELGj8i42XxPR1QUh39CshE\\/O4LOdFrlDIr9DTB2MCtJRJ3PW1uztKza8y7leelCaqpwVVH7PfmmtJyTRqXQHA7npYluA4+MUQ0097qcP9iLiImXPLQ5gYeqfb7IyNY7YGLPwNUVHQxw7gpcKu8WN7+21dUL\\/cqSmFRu20Y9dqQM3qtisx185l4vYFd7HcwyW199T1z2TgNea6xVh3JwrSYaA4DbJC6bOftaU1BZ+EzrpO\\/P\\/1gHjLKc2vs7XrYX97KAdTHKgYKae2em4EL96y7HIkSOts\\/+aiTL16bQJsiPeD0l63PwTHyxUgxOSlsDa3e9Yw+ODxQUSfMyQnFGixav0x83FdLVulFWamdMrnd0nTIld9lvGNzA1yuGnzKQP63FBcbpdl9wCQaOlm\\/pD4Y+KJ+ZYa2JEi+QfFLUfKVqcyRLCP+mZKCWaN8UJjNexGcNekDeYQTYEJ7dTfFuxgQUlQNDQfozyjaVSSBGTpcgY\\/fzVQDaZj4WFqUHTaXOuYlGeIpwwwVOEVZC423Mbzuf5qJe7lqe8Tx0ZuoKcwrKXCHC9FPuDM7L2CCXs+tNOD4qJXgh9UZKkE1DqbMUZJLl5cOZla708Xez0Y83TtAIJIfKxL+wyWR628CFwEvQ36dcRuhS1OpV864GmwwqFxIKSeBttgIVicabQWwgDbqyCN0QXGMQCWdshOhLnRZi2Aq7ayqaXs\\/9nI11DPKvUUOUrkk6qv49muZI5GOKKMZAxA\\/FfMgaqzNavDNsKIIQx0LuElkOL1zmhwnNXFzpxP5bhjUK5C53Ou30ghKTcwfbKveUd0xEf7Vy1frK4xeSBT9t+V01n0FCT04GfR9VCV6eojUVqpRtbso5Wuv1OtJkL0\\/\\/8eqpJ+Ozmo8fERAtGu\\/IsDkHqCKwF6JJMqGwKh38\\/eEnNcIH9XRb2iW7vdfXBLciUQQIZ6G17G5OUP7LL+3lddf4xh1YETKlglIfOizyQTmGmTc2iT\\/mnQh9MqlSCgPe0KhssZt7zkkI1WyCgtMY+gubSTSvjKIy9mchQnp2jsZ\\/RyASEH1\\/njgEthClo6tsSLnIuvvBT12oG9T5ZCm0zeDLRKl57pp9fa3GNmHBogSY9U2JK4gnxlNdewdZAfS931ggRtcPd6JrDXjjsCRPUtnl6aDa+e859QXLQG2R\\/tbU5s3JDhMUipYpcArFtNR+p6jltTlLfy4yQNTrb2TAc28U0FdqiN0HQjlaPMfGioMmbbYeojNFokY7QdBrSS+dNU2LMzKbubBQn8VnahhLVLTJOw1\\/DOgkvjJMOcgrg36UJnoCdCTk1eL2iPVRuKGtEOWhvurQPaJeVVgbZFOtPEBGOHdkdL9dSfyKal6OrO30G4hvgd0KRZ47MXbyKUJAnnuPpQezGFjeoLUpDs+1xLkMb1k3GAOqRViLCAjoFMAB6my7GFfHoVXJiJPiINcaYec3kXq\\/eh0YwSlTHXMcTPUmYaW9S0vztmgblPIbgAiru6AQgvZySxxZPfplcz7CFuzN0h61bX51KTF0vrKfOrQJvpErEwjksYGt8Zl1Gr4a2GOYYEio+JGQ0pB9U1PwtlyQ0vQfq9Rp\\/sgyAxTNDhQTZwvvYV75G7QwUx8p\\/zk5kkFzkuc84Y5iUy4oIv0pPidz7KeW7BJzRkxL+z+uAbwjIKa1nx+1\\/kfCGNwvZDLjt4AnvHhu81oejc3f9MycWR3R6zZAqGbNeubwQ1itrajwHkWuDA4IBzd9Tf8r+miRpk0XCBDPtSoXwvVfRFgSTeAYYMjZHo9WkNiwih6lQCzosF44nyxFreJ7Ks4pzQJPdc83bWChQiE9PdDCrQeuEngphxTJsLBSfNKb4yqeEv5gw1aRkEW6hBuX+ELqimNCN7kwrwxMzWn\\/mfB1wtA5q2CY09md6xhMAE\\/9EMCX1Fz7GiWcC6w\\/h2sioKgYeH0RYRqoTkXxrHKFKG0B0USUhivOFnJPRTVRKMRUwWuOUZr7LBTSXOxneU6oRz9gXaQPTtJ3u5uqwYTcpxFJevN46jxukHDvFKje2+pYCTG8QGI\\/+t48n5tGC2jTlxAVdxdqA\\/YpK8iknsYUFYbi5zylg83fQPbpn9O8JwXp2XJev5G6rCGsuWtPkixHli22nHprXSsvJVqmuCwSMLOPN71IkEVlmXh8VR7EqythKAYDm1x78WIowLk9tG\\/PYs\\/azU6NA77yPNRXikg\\/6dBcmHG7SXgkolN4CWPudzC2onFD7lWk4V\\/fWxM4jDfMhi6Ry+XVWOCCcFNHLlPinLUOj87VTdfEMFIChzYf1Y\\/EL9TZlhlHuOXK519aK19XqeKhwm3IJs1Xjztl2yydvpNUSCfV1hqsR48S68xVC9QC27jt+M7l3YfrZEwT7JBOYF2zhluBuud2PRYLkUm8I5PyfBSQGpfv4FPTaF6DiARMC337AOmiuc4cAi8MR\\/zKD4Vz8pvD1ntV4d8MMmkLAx2OKlFIuob1txAhvzXSDgdKZTCm0unIqMKWRuy+6kVlRx5a50jT7Kc5qbxERVNZVhUtYW0XAo\\/Vp4HKU4+XxHpx3XugWo5TGFqT8rkVpTtd3WE592SmpVNlOvOFIy8Jx9fLvZjeaw0AxknxqDT8YVZ6ClNxuG3em+31pcrBuK1oqDfvYVq4Y465WOaQ+\\/FVnPDoE+ZDkKjozJ\\/M0l3iwxzqCJWoB3JCaJzwMrPfE5Y0iFlXGh3JuUSoaJaMqHcJ\\/2qRE7ydpeFEA2UcWeANOjsP3ijFjycXsdyaazGuiNXkKSedJKpF654fPfAJ+u6s7mM7KvLZ\\/phmXb3flZ3MPm9dPoS8LEW1Ic2e4ltMEf38ZNZ\\/d\\/0LRuEqCF1kjOguYQE7Mi8L65eojprhd+lhJA+u39bePG1BnTWa8wWw8PfzOocifbmxeZM25CNybWhI3UrM0w5o0hFOUqUWrgHgSC2zVF42dytYAVzArZnBLlFXCusY94d9f3L8nibFVXhknhimrjqcBM\\/ORCaBcbbRdPsduKVP4Fr1nPgDOu3xAd7PtnS29FeK5swtWGvTmm8tpBMMLnc2UIjtIUzKdW3SWuDiwJ+tuPSwx4m+rHNPxamVzR\\/aRp\\/57Sj67dPWw\\/D2z8ZEGZ9KYNuL7gvnjuIeZRBYnVGpQt4DVL7b1DkrA0dmsUfX\\/gyC7u\\/R0KUQF3UxRV7Q3bNXPivit51XVJvWSuSk74tNI3Je600Xc6Zp9LnqnVkSRV4D3Tl7krWg6UiDOeS0NE0r9C547c490VZUQ+4wqOHA6T4rWAnYeFp5E6EnBvnklTn3UpR9poV3GWlR\\/If\\/L\\/2WvF9FQkmSM3k8D6g+UjhHBMrtsjz5StPioRHs73QjcAzKrhfzFHdEL\\/I561jFfs9EqgZCr\\/MAN\\/8s56+PZay7KS\\/WcC3NQ0\\/JzHfwGkJNqZV8aiv+C6HZwtzXCicuohy\\/wUjjjaHOE0gf77b3Y4UONpRTeiC+h4\\/M0WCZsKBQbNOJTduAFbjioAzWG74bf+Clt4e1LNStS5jfdn3jPaZseW5EVqUXRSmwNEDCaYpwKBxwhQoaCOTgUY5N9ydtQ1zS4Pmd6M2d2YzxTCDFVRnQyOV0fAuQrGgY5Cx400S2FRd5Mbpj77q7rnuTvNbls9a9WfIS9zSIuoReGzNNf\\/A\\/sFSh3H3FlN6UfHHJHtElIP9OubiiWr7M2OP4DTn0HkLhDRR9wz5gUqu3xYHFe3HkIUyw2R6GNduSkBB9Q0NJa9nZCM5mZv3Zr8PIfEKmEUcuqUiUR6GnNUpHVIYDERTn7iyteLp2IhXOxHQstuwFfTore1B\\/1Dq4oKp\\/2vSBuVChdVM5RKkGjePnX90WIh69v5i0KHoMGnCg9q\\/zDtlg37x+oIYO5AP681JBHEYLPwv0PjYaGozra5uK1aiSFOCE2P0fUHOk0cexUxXhEFzaysRJoAvmwBiAiIYH1eI0wDJdOQVn6xyAtiD8\\/aq+OVgi3OoWbYbhIuL\\/dkoYsxn4uXADpCSmaUj02ZXdgZWI3PaR2HJpc7sxsTAs8R13YZCGrj8bWayBnyiMxA1Lr06XCq9GF\\/zKpthnOYwHfxrW7gLJlmgpRW8DWRljnTOO33AqyMiRabWMTHIHhOuwKLmhGi01cbW0IIvcqCYol2B7xHVeMMzrl2YbTHTPvVJOGLgnJSsVWvpTsUmvq4b7CZQsc39HR0l0zE2XdlI\\/XgZabEazd\\/RqeHL4BqTtVuml1dSWtwOGimQqXpUndoJSaNkYHKX\\/EcHjyRz8Rbu1sJ97hVWKCBxGjk4HAYwrElKT9XrJK97JWDw+cv7osq+GM2Qe8AkBOn4wjqjii8HP60gu1iTv9qyA6mNP8TNuDzMn6jM6dRT0T6xdLNHfxORAbjggBt5jP5QDu2zuxe35gDgASk067Ow5Q+\\/Q\\/wUFKN3MXyyA6SufnChnZnceB5SuLml8wEe1E3rypjAhtFClU1dUEahFiKkNHKQd0ht0b5kpsjDnsPwm1RRr9pPjkJOISN5pvsRmKRhkkfawsS4kYdVqwqiaYNU3mEhlFKViDkUVvIhhbGspAlwfstnjM\\/pdv+PYbBKD4C+zqjCFm\\/f\\/zCZGEBJidgmQlbTWNRLVepk0seW7VgBwZz3dq2pYYxfFjjWTM7HXx4gdchFik0MtR5cgvoV6CrDT5PYa6Z6my3xvN3GJnDIuEjKp1pvFYGwlUrbXHA0pTvoopvRh6iohjZhU9xqKnWFI83q\\/enN0CoygmqisbM5hgabovhftc4CPmztL2ut8PqTnONt1SWwAx0CWMaGSTetMPHDaSFR9BT7q00D8nH6fMIXVaFNY0DxcT5UxMpXdTwAiAAf7Tio2o6RXRhvZUdtMDUtlinZrg7N1YWiv9yGUn171PKrn3KxVrHdQ9fDx4tiCtW4W+QPsl9MpwlHecjC0yzWGhVHumzEb6\\/TebzK+JORBGDhx+PUM6qAVGkyZbjRRHnVZRby9b9RvmkngL\\/75yQYcgC2o474ARwHqD\\/I7H3c0R69Hjc07v1J0esxS9oYc2+d050ApN2ri3iIDD4ox9hI\\/5DUExzDgJywsx1XASYlOskvtndDZVK4dIoyemwsNlvSUnj60yUGmlnrtUCTm+zu737SDSDtvg5ErVKFJZzWTlgmYakcX3t3jNDqRqNJ0Qs38POmfeN353LGNQgBzswTD8\\/jDvC5Uwi2Fx0\\/z+AVJdacPVNr3Kom7a6KooVZiI62laSbbxXBpv7wmBZ86r3e4MaMSYeKhYyF5OXJZ+31IhqOOfJyxiDmHKC8vMl1oV1zz2SnzF75LNPC9I8d1AbnA1QhMfRTo01cStkozJSEqD5y0IWXo49JhhV6OXnZkyO80DUbvPhyZarF3nKC7278sBmJ5yj1xxLGCnGl9Wpr91KFatDQogfxQlLiz3Z\\/ciLbDwoQzneE0Fym\\/zHq5s00OnoFtyvh9MY5gBFMbkYSRkC8\\/dZsidXoCaS9WAmPJ8DD1RyK+cqvES3Z7RLWhDJD+tBBDRCmUHtmEckyfU8LYC1dxQgohFn9bSuMqnhXAWARz67YYVD9h3y5Ctcowy\\/G+NlAkWE+l4k\\/HxAoQxkpyVBZmvyAi9tKpr1aMWRmDknljssUZNPVDVAKqDhTqo64K1IRv9DPhPFLk7iADB8RtP8J6yAj2cdousQagOLDw3pef1hH0Ht5oQIl0IcyHZplrpz2F9hTpA\\/ORRTvJffkhKtMiSbW9pgRCTfN8OoCT2QfXSSIY3+zaYBkH4aNrzKo2ZV9gZ1Xf7LyWXsTkDcKJ+D\\/07OKd14H2oW9GsgCRsz8PSf1oZyUMGpT0GnY6aI624lZFouaS99MnzAEJvnzFYUfDyKUelIeeDcRfzXquRX34IO\\/1nCoS+uqhwdXB+0LYVe\\/g26P9ozSljTQRd8WuRYfwsYw30UbKAtG14KxLP1LXQGEADtjJHiT2K9WXACFi\\/l9UKcf6BV6T+3w31y8b6N6uveRIdC5N3vVXtXvlC47Bf1aOi8fwZNMXg\\/41s5Ie5Yz+Zvwc1\\/zBiC+D23teI3MTf6Plc9HLkb+9oATv7hOPp\\/yJjtZTqrpKfB79w4kRB8OUDJFxTrRWTDpjxYXwjwvxnaCfxf8WsnPow8eK0slWOwGB8qYJh53PvOCkGY3HHq+GPz3\\/rI\\/aCmdHhgxg78UTo1nnhruA9a\\/Aq2Qo5+ELmYefwMwP91KfxmgoMPDOJ60Ku0Wxq8NqqLBlRczGRDSbDcVWyXhqtIbXqK6L9LpJpa1\\/4IUeQcaSmCmfxrk9Aj1BT\\/XIu3QhplTJvynkGi5lDI0VW8ZiGp1BruHK0I\\/Rb9hYv4ua7gf330wddMohw4iTB7ctuTfNYDitUHP2+RuCbW\\/wlYvLKyqJqsWBTm0QB8ZIw1N+aL9OxeShbvnUTWH5jbwX1HJ9JPvMpnnbl6wTSp9a5ASwpaQZ8lN2mBVtfjdKEiPlmvsPnpHJt2rig1\\/UnEGlngHoE0LGgfUfuczfprhSTsZF\\/A7EAzNVOhQdPTbdR+qUR3D+sGYhejdL\\/1xUHkpOtJQj8QFq0JLx9XLoiNW7BrbubqehnISHd5KVhOygOTRLG6x4KpRSvf41DdyUvSEwUX6dZv62nBP\\/6SOzdUcdQHstmD5+RwvZtlE2zoukcNYtjVgK+Z7+hthQIKVj7d4EN1+6i8QsYpCC\\/kmJBfMPHnhGtxoIs9f8LYCiZ9vLCui7KQXQKYILBayoBao8lhPpcCMjxg5NOiItw+QIaMhORLgAQxbPyZQtoXFIcyiBmvgRQ8T2UlZPtS0z8CZJtIEsqcGR4kpK7bcnqBgfggBbspokO1wbmY7MdL2qpd4j77xl22Q0p1K8fU3GIcWVg7tmDKLUaHpmf6XsQ4t0gEoUeoHOKgWGR6\\/FaVkIO1XWcjIFlXr6NH7QJJahPhQfaHRQMEREmFvR96EM4+u7tlEaO982nU0q7VtzVIGfUuCZS2YiN4c7NCjexiXbu+GeK1jF\\/ahBt2896yPbJE6bt0JwpsCRt0mNoVIflCEDFwE9EtZuffc8hhpmXNyVamh3dXz8zDfmRupAoMqkEgZrgdvIJZPGU8SFRMjL7BLJi1W7y7J8C9wwnElGK5+nI50c3UI0Pxao2OO7Nevc3yjx4h8byEFf90ToI7mEcPnedcd4VpXARgjj8QsQ8zZ4cNoUvRjgQPf7k\\/GGi4bIX+5V2wr8xIPxmUohesK8mT8r3KqGS64wRzPFBVqYxUq3ZAx+iJ7dAQwALW2qYHE9z6iR26xQlJK149+WlCiGKnOhdf2+Xnq9tjZrWHUbckOc\\/F+bmkCQ8xdHGXdh+qhFk3xKfAKWHHWE9o\\/YOg+KZ2f05yORAKA6OVKdXzAicqkvBM+RGJqu4VnBnSdlXgv3oCl2911dFqUI2fBOQ6Dp0f9\\/6\\/Ce44gTBB7ZIJoUU6Z88S3UYmZA3RXCiapZziM\\/CYjFDdSAkbQb+gzaVt+A3elTUvLgiONmtVedEppGmKbrDZ\\/nJpgIv8iJyORJD9Lv\\/4HA\\/iExLsa0qBvL8zjzuWEgIEH5vytaOUdaQUb+Aw3woKlH4DEztGTFcAVUuSa5W+RIKRUCrtLHPyUVruARto79fuPdKYnV6M30rO9JlcVmQDv1EtWzWjYP5nFEk7FWjefskB7tsWNmsq6bm6fznpkGTq9FiFaHCDwGc86RhkXgh9ze1Oh9ryweC9WLThyy1\\/8uZyoq9iTzePawqenCak4hOm0aZw6Y96lErTvc7raPuCrM7uqcOjmiwaX1wNTTArTpkDZhkc55JD7Rt9M78wwmXq4hHhzUFE8nj3TusT1ytuGOWJ1VNeHjLsWgGxFtDDGHpa4OgHypt5jz9jwqlxeddEhfWzRLK6sPSNS0\\/p6av8PhHspyQiQJ3qqd7VPbblWH7lmQOCNF1rzrWZpcSaJas4jMz5QS9R1\\/kJOpkxnxUX8\\/QMgFkCjRoqu00vHF\\/CfVQiqr\\/rhE9L+Hpk1g1LXDVDdxNuy3Q\\/uwr+EEqKF8mzLFJxkX1jDPxO\\/JJJPkrv90tBZumxv9KUI3718lg3ktEYXC\\/hC+zqmliLrSxr8siwqU\\/F4wDoLohQc3Yb1gi4FaKUCS1VmkFky9KTFCXGgHy0WHc6tguJghEmDem7a5DUX3YWHdh7a1nKynu5yQoYTVY\\/fPV8uv+tyOOKDxksfZYf+uxVQVaKmr1T+gJ\\/VEBKPtCNvUD8s\\/7mCdrSdEOubOcvTBXBqEhnvpwN1nkx+0MV6aFp2\\/KTEhiqb4Ql3yeuXALxFqr3kRvIsxZ1NO0F+bs2tvMcgjaYmmGhc3ZpFRPeokeFfVhYmQlFuM8DTgthqWqUHjgK7pewWLEjIrzfXMBJLLygP+HGmhrvwvzHvBogj9eww1ry4pekdDTqKEbM178i1hPlJM6N7YjCzxpMqly\\/uXIoO8DkP2ylWCsB6mrIEuVqombq2SfgrP7mouDa0mlkrWsdicN3sk6TKDUDZ0XWM9p5a18a3yVYl3vqX3ZuNQRHW9v5zO7ZtEPpYDT6TnjDlJGlwNfM0MzxekTZ15\\/lRMg0GWKe4klWsO4sXhNsETN2\\/41yXp8LT5s5Npc5GfbJH8TKYv\\/CKpnRmCZCeh0MkSHmtHE7VPhooVauIkFa6ZMDsoYpEFO5hujdoNAG7FIVg4ROgCv\\/+0N8FccZfuFaYzs3vniIUkuVDteAnuNGCjOc2k5pLUnkluqh1sm5OkI2t8wUCNF1Kzl2arI\\/PQQjlr4dvDvE\\/0KGDkDTY1faNVxs35nXb4uuRgzotNQN3WAutx3wPrsj\\/NZfBu0enKCxR04M5izpO\\/h+tjbEZ2TDWIn\\/Reg+VotEnKeicQdYGdK3eP3y4ENPwStafx78G0xsM3Kaf0oX6s6Rci+At\\/Tvy7GvPycpmdb9swYMZXNH4F\\/qGp9+\\/ceCzShbNAixD+0F+ykXAb80e\\/DHbLG1N0J2GTQ+MEcAN29OmChv2G4S19cjea5+Us92PxaK0gzWx\\/mkz7BYocVCJXuwd4gW6O0l755OuRtUOsejtdsx7dvl6kTD\\/m23tSJZiUXTUNUO3glSmmz2tJhIvVZ1su0OjhJ5l4oNGZLiNs+IpX1HObBqCL\\/85II+BIU5xRILtQnBTfJqm2xiPV5Opz2LmBgxdJfy7J2M1UuVi1Q9Sg6nii8QJ9Y\\/q9VqTGzbJGHa\\/wXiPtXimAdwX257hHfw5iinBAhVumCbL9bhwDgrZobJyBaMLPhPsaeIME3sa4M\\/jOTp6e4Np66gpURfCzqPXEjXSkCpqMXS3cmhT\\/MFwHNNdT64Xw\\/37mhO00\\/3G7JYXdO3xUmnei9+WwY4\\/BCraqEvCmgnh7f+Q2CuGRuDEbc\\/mqfi450u5z+oyjBn993xukx5IaXLQ4yQJr5r\\/xfJibMdmS4XVgyGDuHhHT7kz4Sv3Pp2B3BMDqDE8S2pjl4lWmBT74vc4v2A7Ojb+4tL2CvPc0wcxjbpuku3pt6JfCLkcWVCQ9NDkffDH5Hr2KtQACb8X6IS3VVkQkXMUPoKKx+pzAdT3SmDtascYGvWrGNpwE9hjDn53MoohyODaxu+Gi\\/T5VK7BuB9mC5ICSfANCZN5s4\\/mOS5XtnrTchNBvrAab+idEXdVJkxMmYC18bjNRMvtfmX3ZxG1ISb1LNZ8VFym\\/+FK\\/oYaTlzorx\\/AWEIC4R9MkE0YpeAfB0CxpcPZn6r2dfaneap5zyMm6GAT7sm7Nypp0w+OiDIH0QtYZ0MCIudpngEUmV3mGaWVHLow3sweBEJU9qFxFN8verV1R\\/fq9O\\/TPLfZObM2RU+YPNRUaQsQzde0V89zh6KaKRVFMe10wrnvG5J6XU\\/J38Pqfrd+8qVC8m6Q2qGN3iROpdguMo77YZhxamrOs\\/s4SOK3vrTZqCIsYp6tMkhrKLqMxs2Bj0D\\/n35u4vZ9uvW8hW4+KGsGC6mc1GyoyVMRJAwZve+DG+9wGR1HwBge2GvJrWLStV3qDaqiw79iKTWMQvzUDSOUkgVGoifNhvoJgnvy0Sl8LnRXnSREN0kl9d2NPc98cVtreHa8+7xh\\/exWZs74Ods4VDMMOznH5V8D+n3Du0lT8xByxU9JqTpMe+NI5nY57RyaPdI3fK+NS+vxaJFqCInlYXuluEQWJrzZKVLxqpzFYoZEzjh6XUu6rw0xu+qPthjzc5r9uvxJyWF4NqBX\\/DUgPqmKYYDMFZBSb9u\\/4h\\/2ZkPOufrqAVW3ZhcgUprevcuz6SswEVEbokTwk+uwESdD814J07dfjrrH9sTOYJhcY0ZRQQ0C+DFO7xMhpWG4ynPqEUNcX02bq3g8Oh5kAZ4n4QBUmK1FNdLZ6SN3ueldg9rgikgeTXaIqHdj0PjZRfeJLPp4MhIT8oZUhlPsX8LsmRVGCeZE\\/08rcKPO2bRLKjghFvdTWpB0MCX9EWQ4QZUW\\/o\\/vAKQ2YH4Pl+rxDQi7+9ihBfXPd3TmkdylqZN49PBTit\\/MzY5J9G6hNmuwI1blKJ70Df9lg3lZmCvbPcQFIBcEYFiTSzPglk59MX4YuOnG7uZdiYYQ4dk6oFWrTgDHcqPEHjXP79JocrVP3O\\/MVlqMm1+Gf8NpoQf+lWMB9TLN86WijbcN8\\/5LJHurdI0p4Diz9kIXh5MmkpazvxkgPeCHaWd\\/6hZiK5paL8zzeRlJB06whxacaOufsiZB+taAExAEIivwyew6AYCTu0qX141L95q+09fJQInEIiyHcrA8Xmbd2G+ocyN7m3+77cAOXFY\\/UpK2SGSv6hOMlsDYSeXcL3JI+7uBGwBrfVNKPMgDsEW074m\\/g76jPu42it4JlRbYjS1zoQdfLPkc\\/E\\/dRzGOM3iMn+Lq\\/FI08BZ1qHB5ogmp8ZNY+\\/L9B6OuEux0KsTGF9WlzJtBOqbyJpwr6Ej63FfzIXX2\\/dakuI1dZkb\\/GblwbbujG7fv5NFee\\/5KUJ2T2spdhglF11Q43ZTnoy33ddSBARw7TFHFuZ3776IliqGCdrKNCR5u2p6IK\\/OFtsp\\/QOElJ0l11Fcz9IP0aYEI1N3dCXNnh1UMGMsPd3H2H19LXr50IOldTKRc4T5vEaZO138fLW\\/VGcYENiXYZDkhTeedjNQvS8rPdyt\\/ckOAGPkOf3nr5LPAWw7GLRbwxTyxAncPaUetCuY1LDso3korbEuUeVZc\\/xHv9r\\/4LKO0R1L+rHyucePbCvNNYIXY5o\\/yq\\/5hYWP6RQ+c8gvOSr++BZmK7Ue6vYjO9GsHTzgUtQD+3JrCLS3JK+o6izOYjkAu0BC+lqee115Nc2M0w44og1d16F\\/2sR5eq8RDSxELxksAykTYJGzGZ80FUP8ZAdYqboRSfq977T4KX\\/RZWKKDx9umF16H4ey22BAoR8iEWkgx6Mt4pnJbc3P8HYOwlfNRXLhvY3BNqiloLeGOFDfhcBtZq7vpi8glB\\/WJUr1lqoFiySpVSzRe0dFUgTD9Efq8cbzxx8JGX9x9mVrsZG58bIMYG2K8O3Z7EVgf29RzoneILuMD9IWFSH114EoravykpgXpGFbtM6Sw12E8\\/XFVMDnzkKo2pnpPs4+\\/MWor7zNvo452zpgTpq1EpzdjKYIaBiq57e01bscMZwBeqLi\\/S7MfrI4SRJtV4GZZ8W7exGl3ulw4zaJeh6aDlWH0z6MBibjzd6NTu4MATEbJPZJ5aiTCSmclwZV0IXNTb2PfvqhPmMedxNtqyS9T78z05aGvfdXgWpdnq1zQvKRbiFWoFK2e5\\/DGRz5+LbzKTSipgRYM9u8mmChX89tC9ApAbxARytpy61sEFKWglgjhIKJK2GxMPpgo03Rm0l2pUPAw5gTvSq\\/sZWs8Zm8BzAgzeZir45aHAnO+f2L5RMgTfuTG9w3rYnbQt5w1T6C9x523FK86oGuekIJf55rhGEoY3DMzw7Hw8bkNaiEW6lBLjg2t6ho\\/kNbjU+9MQjRFmjo74m6wApRX2WfduPSwCKh\\/iu02s2nBMGaS4Cl0qqWeCrB5znQ9EoJQWzkjJhL\\/KjSwYWxYjK6mZNC3FHuQvQDezVYso\\/XRKNs30dWPgbOW8C1ZzqUBl7zAkbJcfdjSoajz4svypPXfhP9vRgTGPG2UnEvFxWhUeyuW5pf1CtyrreT9d4Y0GqdkNGz8rs\\/MNSZyCq669rrow4VEmT5OKvIyeaUx1B32HXcjuprSaD4m3iu8D8KH8PE5yN9KKCBrVqQZpYSIuqEHQCE6EpxrdH\\/dlCxeOmOjF64SsnDzaAqvx8lTXvqCvFNVHJdgNDcgl+KbnBXCyYWwLjao\\/t5KnBCQcDWG82BhKIsvQ3Q1Om0DPLkQ9kK45iTtU92q4o+EBQpav9rLI0LO8HRhz1mmUKBx\\/RkXPNaGEJNbD+3hWulWUO7KgUeeBFoM+ncXw6iRrUbBqa3mX4EB1GJtg9UoYyY3Ep3Z97xxlehczi3+rLl7r6unV3wfQSgwZaJDISyrFIHTltg\\/rOndieeSCEjQNDmc2DNK3NbbD2bv57lXfizJVKNL0RFPnzLaAmF9mLMihTqkP+bg1fHiRtdz0gmLDj3oCBqlgwBcp9IAxOZcxOaNoqB9oCDGfBva4HaNWC78AVqJXvfWN2t6Hvf3d5UtzfNW08MU0u0+mjUxMDyi0036L\\/cY9plN6yUnbU62v9dmr3UkbTvX1dYX+I5m0nKkk6Z4RUXEhR7frZHe3znsIq5QZFppdNgYqfBpCKfJZSO728o1bvnSsdexqGQQTgz6O52pzZ0CEjveLd\\/ID2O9ZwfkIktiZc+otAOdMfjhyIKQTWRIMb4h7xg3M2gFMtD\\/8Cyf76E5lzzZGw1Cays9EzQViYpQyK+ILO7Kmk03ZWrlzq5gfldlOq0CD5QGcvM1mIC\\/nDOuqiPgg0PqPnUx0Q4tbeSRp7h1ywPwGBcPv9b5ZbSXlVzHc9uDvKSYau5nJOSmBI0GJ\\/XfntlVSvUPP0XJUdwKrJGYKVXHrZfp\\/9X8kBGZaVOpXPe9lXFiMWjor37Cx10g3YmUzckFOSE+a\\/EjR2ZROVSVbnJvrLqi6Wh1B1EH0iO\\/yK\\/WmN9PJpDVv0dNZvSphZVtmRHuWhPPNSQ6JqmFFPVk++4F4IziNUjpKf\\/C7tiF3+Cyk6q3rD5mBeBtuXwWFgNiXrKF3qdOBQSjEEWfqlx984zqhqetcE6NCcmpNaPhm0Zufm+OH6iOvJswFk33h5LgVtyAadugC+zJdA+dxRUZP4RwxLYnwFonI4Jr6GrhRKLrpft8+ehhhLHpmoOIB8hjKDr6J4WFqP13VxHAVXvpAPPw6PU0xR7xEa8ctGaQk7o6t5Jc7LUr95QTh71jPpnOwRXSxQQ+EzzM5Ij4P5dTMTirs+Hz0AH\\/AcZSREvWAzD1arzK5wCm3VeJGQaS8jbZPWwMoRup\\/9swIyO1lJ0gw\\/v6L4\\/A0zrFp+9mJdhrHlP+9r7sO1PN+QJNzEMuwsX2k7wP1oQQU0RfI7rdbsXsacNGYKrhx9TvKBoxTEcemvxjvPPCrOemKZamHivhu6\\/+M\\/NKbUAaVJRkZQR1rxioidqbkP3pYDqVhCyrZ8p9vi9j0vjnF4mwR07QNB8OPvmwQuzIUkneAEs6IVQVGnaeAW2P+FIkgLQJn\\/donVR1zax+TyWyLGsXI1iaGV5Q+IZRnXJ3EvmJIuFRna65lzTe2g5QCKOABvIivxNe+DI2213MudFmWDTIJOpZdtmA4wEVMGB67XPac+pwfgkNu9jlZPGogwJwVbXVE5qXb8HKLK8GYo5\\/ktw6KlRJpxnulGN14MVyE\\/RUA\\/PtZuZo59PWmFrCoTCVtReIci8SrMpjVAsacebPBC+5cbZ2QWfo5hzT1ZrC9Q460T3y4s1I2cDTCTBudjLm0QU8f8UQ7TgwKH+3VteSU2sJIEgRwOO4n8Pwqq7hxwxQoQKTvsng2mqur5Pd4IrTvqMjcTlP2sq2j5Ei0mkLzzKczQs65F1DrMZghFK1tJG2v\\/AVY5\\/f62s5bAgSNWks7L0IsTRonpymRrtQBw1FErfTF2YsgqoO5rHkXKXgILqN5+B1XaNYL5wuCB3DlQoR9XynJPY4twUi2mMsDk2TmtjFl2V350ZRp3qj9snqAz8vELayUdhCcaCSFmcVFUuNRh88RrzmgxlTpqCvHlhLAnmraCoprFfjbNTrQhNHz9avdAJjSz6fMghJvLdxeoiGxo08VbWvH0RfAy26BVUeDZs+moypctth6YSLe77jknO83lsVVsSvTqK1NfjLEz4lGDW4nHto77dCzW0x5N7HEAHuzG23hz3zryWhhNbZeK5Y5\\/zzvhLpwO6XsfvjE1u9OGVRj4reciw0bbeIq4GYyC2JIAGOYxHjp++88Au5\\/bBtDqEpCEMClqkUk6bChw83R8C5jx3jtc7vIeNjbQsD+ypwllEmhu7EKym5G2PxQLjEcJPwphw5WDkDtrJgdQOFd7OTdEOVndH9P3uGnaVQQEzjePw7of+deC9QiOFW\\/pCoDG2l+rC3DbOrs3Ak+4hj5FZT\\/aAVMbbW2p0L4mKOHSo\\/ZYKMHmYYoJmh5QjpKFqLARKb8N0mo8Gy0x25RmQ7aJ7c7sslgw87pGb2VZisv8Z9SVeRnpaEB4eiw5ywOV4gJfAYQP\\/kuhGsXFFwm8aUr26qqrMuMW7eS\\/kKhQw6KvFJWiu\\/z9OxbPOGqAflnUAm5ertK+1lZl1cYWPC0htdwH4Zi+dPqagq46uuwgW5SUkv2wQlNhpDpHYsyP6FJT0Xw5+NvzqmSbd1PCQw2RbB3eIJu6AR\\/Ki4ggRIxpePGLAHEkRmiPrF9537P1gpxI\\/ied4FJX0YoLf88QUtChZIH08PC+pQp4xsWCqSWcIZxXjZafPUeduptBu111OCuKchMLTodpf6l1Qp8aRdbxVr7EiaIpQwjN4k1GMg2QjK2IGVF2Heq2KPotyeIni7Td\\/VBtOsMIDODANwEqiMYHhqjH+hu9zihOD7h\\/eb4fUF9wlpwq0VEyHXNUmTfFgKquI5l+iSX880fEWzs8wGr+3Qe7CFN5XpPLLv6Gx\\/3B8+G8aU9+eaQTWrGAJO4qad74WZuN2LQKQ9h+8Mtk7Yd0mr7ZkzD20j2UlWJZHmYEQ4iO4gkSyzOLyRr1BwAK5w89oQQDBzneUmdTykcYomviL0\\/l03n\\/Q9P4UWRS+soXvAT5NQWRjBmQvHG5iguXbMbfQzw+pCEEtSM\\/IZOwGKpzH+gJwL0RJeGgNisiRaLf3VbfOAhBBOSgU5UJ+fBaV\\/M0W0c6sFg+B4pqoB3eIkIo3ogMNkW76nk08aXtPu7VestqEv+xwafqgw4XOon2uBpnOwy6G5yGEus94pPt1TGplWwWPw+1\\/KzJSj5hOGZdU7Cr7lL9JLAn2MuQmmWDM1WPg1jl0b9VUxjlcyYrh79kCBG0PxZzlpCPu+n6bMZqjsOY2IpE0MW6J5JCdSv1x5tOfZAHj7RxX8S6AD+2V2fidOSe3\\/ybZ4T+iWB4JtoFMydASjlKDufa6TUUV4OFaxQ3Nxw1Nu8sG\\/WpVySTgmYgPEHvZqav79Zm183kMoNwCQIwfWWBBkFcVFKpgSLCc2ikZLgwGZshCo9YfoEi5yNWDnwsVHmw\\/DRntE5YODqfrnyO+A6zZSM9ZBg\\/EM496UbIbZ73iPyX776pRIlNle\\/JGDSO9C98Y9MOM2TMC8YAks05Dyg2aOFVX2sWGrPT2c9TLY49bWeioMMKGOHJNOeRUc93MIPFDSwp8S9YpXGxfkgk8XaruAQ8\\/VfY5BmIpwt0WPPraClXIFA2d0VabkW7ccEE03BNe5OaMWTxrRRUiAivRAu2QhgcYjxyD0vc4ROgYPAtTLZhRE9SvI30oWB9+wKjgtVnKETkMuFIshaX7GNpWjm1+8bj6rIup2w7wtbL9gVx\\/lSzcWemyY0xe0yBOkvAAVX88xqUjwRHYx80GT6o02v19yjuOC60sACpSB\\/L9FRg0PtTsmqLVZBZ1QYSMzcFLvZojJ32Yl8xAKRT+xBumiSULTfQR7wF0kiRnOV3ixXe29o1im\\/\\/YMezdcrqHohTi+yPHVQXncbOjYdFeMQPjU0NgpFpk97pOYFR3I0fZgj7THVeE0ryLlHcLsHP6kAoe8wUAX85R0Awlhp\\/YzJpnfdWYXc3+lYz7GD+VGQclt1lvvlrYHrQEz6vgIZi0Iviv35PU966uqfo4IaHMzA52E1w13xkZvDo4n1vvxgmQNqR1F\\/97XnXgHEMDYS0duD5uhyW4gGrmCX4Djoai2RFMd7e6qKqTmTBYUmKknD2Ptm6RYrhVhkweJJgAFEHbow+Iqep042lLo+dU7DKbZnJ+0HuN1Pw6a7cKYiiYuG+aWFDCKzTdKr6BSe9ii0dGTGaBtJw8Ilt6XTETU0f9Dz87pZvuyKtMz2O77hvwxDeFBx7vyTyJsGK737PLnYvBBrZDEzLTaO+I5RihhHN8+bi\\/MiUHgyEig892fJN4+ivkookRl55K5G3MYuLvu\\/AuGN4n22t3rHN6AIOARsGFY+8aG6QLJ9WS2rEKT7G8cwjkQT+I914VDJHtkYlD\\/H9nl2B7Xdhb0QgbLf1Qo+E5\\/AdPlfcjWsOIhhtqUWijoJSqrBDPVNvIEkbWyq2DIte+S7S4jGs7WYGe8Y01AVIxuaTOOroJYlUtZhpNEho5YvQu2DfREN\\/P0AxjAe8VvyGFKE3MCDaGWyubEgbwm87RzLud8H6XiKUhHT38GcK4NnyUglNjj6NnG5L3D\\/DQH5b9WpoLqBWtRbkdIEpynw5et\\/izKu\\/XyEcDF7Dj\\/0k1Cx4fNVuGRku0Z\\/qHQAIOBJwo6Y5Ifwjm5wyUGIMJvvZgnE6h+uSBkJv3ixaIWhDzvH+8D57OUUYJ29290pAGzB9FB5mhJEcF2NgyqvGaY\\/E4wj4mArlcHOT1xmAEFVtUZxTeBGGFBb0BxLg1G9XodU9r\\/7XYgF7tn\\/z\\/bW+GUXrM\\/CQcZls1GaIlEDOsFtEJbqsLak6MMiKQ\\/OK\\/Zovu500rsQL7D9jucAj2GtncTocrnMQfg1Yj0tUnxBWO28ZTCZ4JyRkLE8wxagEF4O\\/cei2VhvyR0q2tl+uuxraaXvQTmg4FlK\\/ACLMP8csJIWYeHrHmSt75FMWlbrGOohXUVuLVojJDGNf9h7xpV\\/avE7+iANV9qoRQu\\/Etxx+62UoA7h7TTXLeB4f0yBbg3QA7Pdr7A9WogOhszjUH5KdeM+lYswMaNq4yh1By0iY4GkjbzrrdJEoOm06iZfspAaRag+PNrizje3Q9vtPvvdGHidEqRWeRytFiUa+eRZ1JJHEMQSpJTB\\/RPgBJUpm\\/fdhU3SFld2husJ7X76GOINPpU5ELdyO7u48qIOmlrSTjaK4zt8jLqYvbzi3HkK6vLS21a9rKxxgog3r0H+xCv6xgtLXJQF0iEsMrKMlzDiyMOrhduaAU3UlTXXQWRCTnR15xx0FPif6bOQ4hH2ii\\/cgxkPEB5kP0ZB93mpaBub8QCqA8rdAADaRgNgTvSWPAAeov6SDBv91x8x8AhVlhz9fiilJxaKV8yckn1N55dGvnwUCt1P3J95YjkLFiNTVavpxFbnvDvAjCRaujspf560Q0e02FAOePUryv+\\/yLNygMAKoCDPaQrF767PRUN5thVZ\\/a7cDXRclW40JI0jsH6SW5KmJfTYTCqcv\\/y9uq\\/yy0eNWIklpz5Xd4ya7B6rmJ7NZs88HM\\/00BgszyrME0VBIkvVvXX4cEuIrajrJjeeuQaeKftIqJLNpnGNg\\/lOqUDvJUV+xJe9qVUmPQpC5CyctjiKS7\\/07iGE0zaaBCH0coW9fPHSZ4jFuEnygA07vgmNjMQPpI7lRzNr3Rtsu\\/8JBBLJyNbjdJA01OUbGxK0uO5TTHPqwlndkGCqsmox2gvkgxDxmi5\\/3fMIBI\\/X7ESkxwdEb0mtOtmEm+USPqNU3Z5Ax0XOyugbCNON5cgxX2LVczBbkad\\/EmuUenDyAorRr1IDT3CAYGC62HKlgoyTPPMcZPEgVqfcfuh8qKcoUGXaGIQeVEeMkC6\\/kE1e4PLlR7Vx7gXEfoHitHY8CVmGnq66g6+65z+BWMq\\/9h6A812C8wJ72v\\/CZj2wb9tmvklcadUVJXR8br5pJDRy4SUy8aqhejk75den3gWVQD+cNSOofwPuIqoyQjjGirpa2zJBT3Q4ptfK2s7mhbE2jnjxZ8zNorxeSsoN\\/w1YjxQS1rPjzT2EMovAfeQaRCYjDsoZiA6mvB9vCyQYGRKsjn2ZrpSMJf934gVkk9GJ1LwGOnbzt\\/FxkHP+OWYVbCPbHd2D+uOiVQWgQIFNeblbrZpYRhh8vxfoPpzQwZP+Gbb9X88mqlymWrAlTU4apNht4ZRrxAhSpYlwumyioNaugivC1usRFF0YmMIFG\\/rSc6qjTKH+2t02xfdxN42FYxLYiL\\/O7SSvvHisW1Bjy2IgTVRta7ygKHE4aToHgAzPL7q6QILV\\/YCWqDSBKnE3quSRCXGnCNCNTMrYoYscJKy7J0myicpIotTiy+u8e6kwlln1CvzDJh7IWYLKZZKGU2Vqs4ute51eN9CMjsSAsm3xcHEqgpTdC\\/MqWh\\/sj\\/vVfyyol6QTA4OAMg2zw9oGbiyeth9N+NrXX\\/sYb4GCTGPao8QA0UKQcdbqRqAKgS96H2OB1462Wgdyd9Hmi1qiJtj6yY88\\/ZnyiTeO8T3RKo+PkVcXhbhE9oKOij3Y\\/rU\\/JkQQliXjbGDeyl5ZRDU4YLT5X3CsDG3upalP85\\/HmzDib1BCW4zK8Ol1JP6CH1yLmmBYRc2pva\\/RgTo7qA2c8hIOVCOT4ppqph5Tq4yIExtYe4JDm+g8DUIcBnvwWRAZV7pUNfRHVBiCAroNJl7AzNagngJO8xagC41zm7w1daXpUf1TU1k5pgjVV5N3ildZ9nUi2YsZIwSfvQIuY2yu6oL0yfDZU233zTZy1NYMun1nuOhK0YawffO3JQ+495hUfU4l7AWh2Sk\\/5MetBI2kz11+F0F8mzv+KuSDJXOkJgZny7OeQ1\\/oZrI5VkPocvR79n2fH5ajJ90wjkoRNdV9jime1A8LmakaJO4owu4IRU+VFmb9HrIauXHg6WDzj5F5B3ccE5ffgTLsxae8sJWTXvPRWAuKlURIw187033MvjzWcu9lyEejwaEgSerwlLlnOZZwB83\\/ocu6c2bKrlv7iKqOBxvxkOtGI6H1MfwpXQPw3R1+RF3drMt1XwJeLrJcZb9MIkZejOw1r8vz7aK2zeo2\\/ozs51Vabvx2\\/ynRc3oGbFn1nuODW2ZbQE6IIu\\/8QlfqVs9XCTmkDGdaKOsNaKKM2BArDTTqc5k9qyr1eIoTSVbEviFAr0DY\\/GTTjQNyqr3nW4eiLrwIyM\\/\\/VaO+yK0o+Fbrojo+j8hvqFQL8cM\\/oOvtsdeW2KPC1atKR6\\/hXaNikguCzCMQpyhz\\/SbPFce8Z0jkKT9+v8Iz\\/qY3jRly2nazCkQJElLyBR+mr39NnMC3e27hQv\\/+0bBJ3H+2udt5VKQHFrYG2catfCBH0KIk1vS7Ap4vmICV+TSR5t2Zp9aSPkdT05tCeTpUfpcwSMY+ZHDvtQoeFJsSnH66klinUxCCdxUBq7tJk3KFMd1021p70vwx1w\\/Y\\/7MiuWP2Pq5ic9m05Dpq95IkKdvCjh7ZtFJZar9cnODpldYEfy8HZb2PyOKLU5VcI7um8MhaJrDArsHq74TgTdx0IABehajCPyt2KraqTgdpURy4bQ2XTRssee8Asz3vzF4v4hzu+lIqvRjU8PJkMQzKzqfh2FtF7BDO7hB6ET3yehz+utuwRl3WgIn9pZgIssgvWcaBGWQB9IhcqQbtsUTzAYP1lE+5wbyuH5kY3tkNtQd0c5dEjl\\/3UEQlNC4AFUCkr7sEq0I7zTriGC3\\/3ykxv9vmf\\/DI6UeLt0iGR0N6uqO+su0sQSISfYKbGr5thqd\\/ptedBConi9OfhfmoeCa4cN44wd0CgNe5W15ELMlL6Js1OqO9JlKifuPt1q+tsl4kpiTS6SiPrnQjSlmBEiKoxAq7GhSfAojWM7TiCYLEKvTVxDqJSmLDd9Ai0RHkTmuzWrzH8SMKKRNg0ZwO87NfQDOc28nHDMAWwABU\\/nLA\\/\\/aX54uAPqB1VelJTo4ECvLKReJue7kJxawb3Vh3dK0ln5MdxOmZphgWI7VLvgJgda8TZDr3SRBqRP4GK9+Rw8EERI3RZQxMIW2CZEP8kdHQzaQAGSfkmTseFjQD\\/tffa2Aw+DWMyYsSRdLWobLezTH\\/gxDo6fPoKL\\/8raGBg9fbWg2PASRnKpWQZ4ApaRtVGEdG87jgCyBW0QDZ+QxeEsBW5bimH1HPdq\\/iJPZNj8gMS2w7jboG2Kw5FEYe27G3BjYhIOFxVUkx6zOtZx3OGqAtwakrkkja87EIQYj5BVho1+fbAXIimchRvmtsxhb2oP60P3z\\/qCI9cONZtEzbzAnxLFXTy5nyPadecwyXh\\/36KDTSEJ5LAgH3kLGvuPw9+wK6OaiJ96smKbTuAqVDjUJozMMZzS3qXwL+RISP3TOzJSNFQdGMU2ClxkRfQSe8nwLet88IFCo62cAXDlbjp\\/BDYklsQV1EF0eorPWyavNtMvWiVpKh9KNZ4QcgC8DEw9sD+cYD1xyH\\/Y8wrCaew3sSopHakMJ825x0ZTeRz7xAOyE+BcLUrQaQKuCWJXbXX8lNrwio\\/h14\\/TYDt5m2AZAs8F6uar9\\/+g94xidhxp9b612gWrnfmC8mW2lr2xPSBhPtmR0le98k3fbyrzD14ryQ\\/QvTTGN122seSeQheun0r+7oaPyNrw9wix2cz83sp0m\\/m8R53VgcSXvxWllDboQrqn5daeTMN1NGBk1NHWSEszmXqavf4EaR5tQdkUVJFLSfTdygbiCvVhY66Qx4ZlWGnniaxckZQNoJpbEPH84EK5d6RDa7uvOlgIF3n\\/q96bey5F5dNtvY2wuvA252VS7iEScL633lZcGUxSnODnaoJHGBG8QHvffiUnoMe+F8CdxQqGkrSz0l2EaYxJLJatvPKLhKwTGqOZCGkg56avH8eBROjO13Ht\\/V0BQ32lbv9axgpkDCi4qHRwcWYhPsclXsQzYDHZYZPVKcxlOw\\/9tU+wUXwWWmHLDOEEgI+6qPIDiafQGlD8xqs9ycpmapMweJJe9PSCYx8rpWj17qtr6jNHYU6u5wCLLPY0pF65DeIHdiuf7O7++cKhEGHkxvY\\/3DhD1vV56L4+YAK7y6zHKu95xMYlRcO6fr4kf\\/uyipxavE\\/RVm5ugy6Mwg4N+lOzYed0A4vIeDyBU9aenY1k4Ql4tjz1ivZMSm1rTkWHgFSdgwbn\\/4HuvcsvFOHiCKokmMvnfqQYIGGgryauFTOlVjArUpvbU81q8OooU6pYWRyXhLgAdimVK6TrEfaY2opzrnShMiupcEwMOM4NAWp8VKbXB4cJ\\/g2XAvPJ2dLVT+lrjgAmC\\/GFHZfjLqLSZJDl6qCrBbRlyzBVElxU89RYaILx1Zrm01WKH6Pfz5w1yQHRzzfErhgoh4VoEzVd\\/Fnbl1LVVbg8UlWpz9y6zZRblynq7cB0DIb0rHjv7ASz4csc+lXavcd3pbo0qPDNkpZH0edkYFYRxduavtHuQAzceg6Ua7tCKP\\/dwy023wR45Iok99HEjKimtnQEKtQQswfpWynpxlFZ3s\\/3QxASx2gKLoDeDOGhyI9Vx4KP9J80ajsRQbDePD4ATAZKM0vGlLKPi6TQbxHsKQwkwuEwdxZDVpOJt\\/JlzQUwwfpUr06qB27JNUqYF\\/YmUUrUg6Fb9mLB5IgNJEJ\\/70+R8C1+MjN16JpD3cmj1zuRCR9izAuV4lRJv3Z6RUuLWSCNOF0P2Zuo5CQu9PwbpPK7N9EX4fPMbWBP4d84ccYWYxE+lYKw2jVfyht3tpBrmmAHnePSrt4l\\/9nvaki3P3tED2m2LjFcw5Xti8gsBjAMbxWiw\\/2lqRWiLLu63IEr+nKBFpkgqgnjVZqYDlHg6pyZvTdKoVnU3empBhvzFqoPPaDSg6nKzD9OA5n+aYpzhoke3wtjq\\/pX39QrMdCylJcPtUfm5IEj+DZz\\/\\/lsRf0oF6+aXU\\/RrIaaqZG5QmFVOgwjCMJlx9YhzX7+RNzRXMt+378dL9KcZVxSIaOMaCDALD4JXu50h4mLj5gjvzw2DK0kTsDhMzFkYili\\/+bb3swVgQAu8wh7rU2PVLr9992jcszE+gmbTsyBCRdqH\\/B3ZLn+jh3\\/jCkkx8NP6o8c2ybFfZ9+72K6GjA349ThtvP9kylYHT2P5332dS8m54EnT22peqe7fTqUgdC7P220I7qR82A1GHzd7jx6EIsqbkgxHMUlrKGBPnfji97dAJ9R\\/Hwo\\/1ToI8x1XAiht8tBXjLNupp3j4Di7FggTbUlHQrjJTPOvaJVrIPQBn7l83vKd9likObVfRENR6PzHixGCHcyKYiW8dM5697Ng\\/mcd+PDJgINVOs3s33gjiBqx89WU0PiGUFt1UFZzkOcFzoMS79geYWnWyZZ2\\/cTgCEE3Shw0GeQQ4DBD7B05VGveUbTasyK6NOSRucYpRtCtlSIbmx4I4Qup3uLhRFXDoiSg9HhgDDVyQI2wR2fzPvf5KuzUrCNs7ojVQKhH3Fui26UIrQNxW4n01GyvAqbFmN2ofA69pgQwTQBRGX2RLuxxRiHl1Pcs4A6CC66c405WdQ9YcN1yHteFL1n8Q+LbWN8TRUkTA4PTxnnqHp4tjsmLYHFtOh+pn2wI+RJdvqVKG22dLDEQfFxHGAxsmOKQs4gVoUTY67ouuP3fFYNu6qeSogdhwWzZ2y27lcEn4B4jX4qt9blNLaQJKL0cO7URffPJd\\/EsTJwShujcK8QWUPy6T7+\\/h+X0sa7lrCPODnXUdSK+GPtl\\/1KGiPkul5AkaULoWP92qBI5tyFDMNgjGtLFcobDbRH+fYiC3mcY2DYHMZGmMXX8ci2cPPJEwziQebFlf2Dq0eh0vdsmLY6YmSTKTKf759fUffkvQa8HbJee7aMG5ARI\\/IVQBnQLmrEOPVzA5h4tVL13JFWJUyDvcBz7YmMkxeusQV7afJmi3fdCAGdi7lUjRJq6cACqRYFEJldUYK8\\/ZdXadl3p70FGTO8fFWUnwDc5w1eqhbyby6KZQUf6U7A4bckKX15GXvahvk1agO+9hr31+Tsi3UdanYEK0ihjmwx3SYjNeNV2IYngQ5sRirQWEjSiuO8hMh4PlGHecpkHinW2jF6LH1vc9xx7Bon2v8yDLxIKPrOJJ2HcmLL\\/8YJyHwH4pISBW2bqYIILB49lxVeXhNl\\/3CMz+PE2SQdhs63CTFQYZhojETA0gvt+l9H+kkxBe5Xa+q\\/i+NJIfaXnXJZho7gitkB1kcs9G5olSFa3s9gjOXdrL6p8OnWMNVbSTim7KlvcVqzQZQ+CuxdkMP9RlWRFq1VQESEHi9FWXUQ8esBVsTg3GjvjO9D82VYJWcyhDbhbG5ifS4X+HNqn2SqUYnanong+mP5p3cj1MSW9PyNFateDt7zZCNUgS98SDVn9m2zEcokpV3MTldLO4KUyIElLn6Wt9Tx5LeoQ1WPPX\\/DzhRtyV5uQqBQuqq6OkCw5DLpIkJH8MboMPeCn+flaCCLjymZkc6N40xnBaMmsa3YS7sqZ5WI5n+4exqWdfXMRhHPRvyJB6FMIGFymvz3wQH\\/H7\\/bh+P4tn5mb\\/eAYpw8EBKFe0HEPKkjaj95s8RH8KwD+7zfXWT5ccY9kQFCM20VccrfHAYRQuTB6CpJGjJRAaG\\/gjJW\\/Fjhw95BAs5ZNyob3DAyFWEvTj9jh+SZ81szFJQWy0syjZ0FAbYDIWHnckgqDeMbjBJTq8\\/n+zvgJ3s4mm5s9zbV5asbKtZW1nZhud1FxxXtrjQ5a6fj\\/YaM4n0YcwEKhkNhMHrJ\\/+RyVDw\\/A4MOToo8P4wTRQx4ciQ5NkoVdlT+jtTh7hDWIyKU4hfWU2Q3cYBxxWcMaR9ofL4J252ItgflNzqvC1fyyjX+\\/bMGsTETYfcckQaxCpUoQHCIzJ2XVcLMc8YZnrdE9wubV498jRzD4KEO\\/H+XMxfZfk4LjlGlTD3uwo\\/C2MMT+fpb2mM\\/2AQKAOZ1MhUTg2x44j0Xx9oUmRl5GjayZEoLjRB6zCLobvysNHOKqxqPqt3lS5whrnhmh+PHajqs8P\\/zdMtYSfVSMmuGMvbbsAW5Yd3tV3XgIuDYiPjoA\\/jZDqopEWyVUI9cX0BSY6kidd5tQxKwHb6mDtGQw+xJxzhkDgfOH3hEadE2apyTx4gW7WzayRwW3+a29bg\\/FBd6oq1mKKSTghRuatGEqtUThB63uSBqR6vGw4ljVwQUNNnDJZnG8FYN8b4+IMyMJ5iNwbHxCLXeGH7M5po5gZ\\/oBINRdHKYb3sfBZANCrK5sMyrfvmlOWleNgTIg3nnXcOZ5FBa+osq07benoz0FBll6pbR3biiIdvdVI7bb71Q1q0308mhbJSfo+zPXvBoNGNX63azRIIh07P+09OkC1CzQZaZgI99XvIQ4jcpkS\\/ZxEZ8\\/N6aQhVEeVd4rHcGtEVYpmNeqHlUOpFmgvLcxqkuDQ+3cTG3CxsXzAEBlEkLT5D2Oltzn+6W7duphrF7nHXiEo7Aw+HYbkb0PcLgW9GFvhHPL1TmHJoXS7qX5t\\/bRfQatOmAOpvIaSyrYMpI21Wl6nE6oAoxVo8LR+DsJaJPnLIAKPY9BNqcK8iiyxM0PdwY4rULT4yDmcttMwlDLV9FLEmCbr+P3aceFX6W23A9qfTtJJqwZKafW7r2JTRQx8v\\/d1ZAWtvNYlrlVlpPT43nloAjRCfgDVVqNPyN+m7E\\/\\/OL5qHOBDpofQUms08vZQv9P7Amiymur8T18rN11JqKUompDjMGV2YZ3dhWW8W3EuLSUaEULfKbMtGAEtLprVu6\\/KWDnBjAQpLWuN8op1TlbUKv8eEGWY50WJoRsNaE6HNXZcyq4uI8e+\\/r4XRx7cGvmbBnplv\\/o\\/3mDJ8jkO7iDwh7zA9XC5wzJiheNyvTbd4e0w47vjzZk5HKmq7oRRx+TKyYLWq2L48SAqADA=\",\"iv\":\"8b2c0d3615c5113170b7914103950c42\",\"s\":\"8e57120b1ae8b20b\"}
\n\n + \ \n \n\n \n\n \n\t \t\n \t \n \t \n \t \n\n + \ \n \n\n
\n\n\n
\n + \
\n
\n Home -\n Browse Torrents -\n Upload Torrent -\n Stat -\n Forum -\n FAQ -\n Login
\n ExtraTorrent.cc is in compliance with copyrights
\n BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
\n Can't load ExtraTorrent? + Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com + - extratorrentlive.com
\n 2006-2016 + ExtraTorrent.cc3\n
\n\n\n
\n\n
\n\n\n\n\n\n\n"} + headers: + cache-control: ['no-cache, must-revalidate'] + cf-ray: [311ae97b15e41a9f-DUS] + connection: [keep-alive] + content-type: [text/html] + date: ['Thu, 15 Dec 2016 15:26:06 GMT'] + pragma: [no-cache] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d4024e7898143641717ebe6fe088111571481815566; expires=Fri, + 15-Dec-17 15:26:06 GMT; path=/; domain=.extratorrent.cc; HttpOnly'] + vary: [Accept-Encoding] + x-powered-by: [PHP/5.3.8] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/extratorrent/extratorrent_daily.html b/tests/providers/torrent/extratorrent/extratorrent_daily.html deleted file mode 100644 index c75ee27c7d..0000000000 --- a/tests/providers/torrent/extratorrent/extratorrent_daily.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - - - - - - List of today added TV torrents - ExtraTorrent.cc The World's Largest BitTorrent System - - - - - - - - - - - - - - - - - - - - - - -
-
ExtraTorrent.cc - The Largest Bittorent SystemLogin   |   Register
-
- - - - - -
-
Latest Articles
Most searched
Hot torrents
First Cams
View Torrent Info: Max Steel 2016 HC HDCAM UnKnOwN
View Torrent Info: Allied 2016 HDCAM x264 AC3 HQMic-CPG
View Torrent Info: Underworld Blood Wars 2016 HDCAM NAKRO
View Torrent Info: Moana 2016 HD-TS XviD AC3-CPG
Hot torrents
XVID DIVX
View Torrent Info: Criticsized.2016.HDRip.XviD.AC3-EVO
View Torrent Info: Stevie.D.2016.HDRip.XviD.AC3-EVO
View Torrent Info: American.Honey.2016.HDRip.XviD.AC3-EVO
View Torrent Info: City.of.Sin.2017.HDRip.XviD.AC3-EVO
Hot torrents
H264 X264
View Torrent Info: American.Honey.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Independence.Day.1996.Extended.BluRay.720p.DTS.AC3.x264-ETRG
View Torrent Info: When.The.Bough.Breaks.2016.720p.BRRip.x264.AAC-ETRG
View Torrent Info: Incarnate.2016.720p.WEBRip.x264.AAC-ETRG
Hot torrents
Television
View Torrent Info: Chance.S01E10.WEB.H264-DEFLATE[ettv]
View Torrent Info: NCIS.S14E10.HDTV.x264-LOL[ettv]
View Torrent Info: Bull.2016.S01E09.HDTV.x264-LOL[ettv]
View Torrent Info: NCIS.New.Orleans.S03E09.HDTV.x264-LOL[ettv]
View Torrent Info: Jijibisha.(2016)-HEVC-Tiny.Rip-x265.AAC.Esubs-400MB-[DDR]
View Torrent Info: Tai Chi Zero (2012) x264 720p BluRay Eng Subs {Dual Audio} [Hindi DD 2.0   Chinese 5.1] Exclusive By DREDD
View Torrent Info: Maalik (2016) HDRIP 1GBRIP x265 AAC Esub [DDR]
View Torrent Info: Born to Defense (1986) DVDRip x264 Eng Subs [Dual Audio] [Hindi 2.0 - English 2.0] Exclusive By -=!Dr.STAR!=-
- -
30s
Chat
To add new messages please Login or Register for FREE
- - - - - -
- - - -
Warning! Stop Government from Tracking Your Torrenting!
Your IP Address is 87.78.209.232.   Location is Germany
Your Internet Provider and Government can track your internet activity! Hide your IP and LOCATION with a VPN
ExtraTorrent strongly recommends using Trust.Zone VPN to anonymize your torrenting. It's FREE!
- - -
- - - - - - -
- - ExtraTorrent.cc > - - Today Torrents > All Today TV Torrents - -
- -
- - - - - - -
-

- All Today TV Torrents (169 torrents) - - RSS: All Today TV Torrents - -

-
- - - - - -
- See also: - - Newly Most Popular Torrents
- Yesterday Torrents -
-
- -
- - - - - - -
- 1 2 3 4 > >>>
-
- Torrents per page: - -
- - - -
Browse TV Torrents TV torrents RSS Sort
Added Size SortS SortL SortHealth
DownloadMagnet linkEnglish Carson.Daly.2016.12.13.Simone.Biles.HDTV.x264-CROOKS[ettv] in Other, by 27m189.46 MB------
DownloadMagnet linkEnglish Jimmy.Kimmel.2016.12.13.Rami.Malek.HDTV.x264-CROOKS[ettv] in Other, by 41m422.72 MB------
DownloadMagnet linkEnglish The.Weekly.With.Charlie.Pickering.2016.12.14.Yearly.Special.360p.LDTV.ABC.AU.WEBRIP.[MPup] in Other, by 43m231.50 MB25
DownloadMagnet linkEnglish The.Royal.Variety.Performance.2016.12.13.EN.SUB.WEBRIP.[MPup] in UK, by 47m1.29 GB------
DownloadMagnet linkEnglish Dance Moms S07E03 Return of The Rotten Apples 1080p WEB-DL AAC2.0 H.264-LAZY in Other, by 1h1.53 GB281
DownloadMagnet linkEnglish The 11th Hour with Brian Williams 2016 12 13 720p WEBRip x264-LM in Other, by 1h453.63 MB2231
DownloadMagnet linkEnglish The Last Word with Lawrence ODonnell 2016 12 13 720p WEBRip x264-LM in Other, by 1h840.11 MB1331
DownloadMagnet linkEnglish The Rachel Maddow Show 2016 12 13 720p WEBRip x264-LM in Other, by 1h839.20 MB33128
DownloadMagnet linkEnglish All In with Chris Hayes 2016 12 13 720p WEBRip x264-LM in Other, by 1h848.51 MB1771
DownloadMagnet linkEnglish The Voice US S11E27 Grand Finale Results HDTV x264-PWE[state] in The Voice, by 1h644.29 MB37952
DownloadMagnet linkEnglish Muslims.Like.Us.Complete.BBC.Series.1.EN.SUB.MPEG4.x264.WEBRIP.[MPup] | s01e01 | s01e02 | in UK, by 1h1.98 GB------
DownloadMagnet linkEnglish Conan.2016.12.13.Chris.Pratt.HDTV.x264-CROOKS[ettv] in Other, by 2h283.09 MB266235
DownloadMagnet linkEnglish WWII.Hell.Under.The.Sea.S01E01-E02.HDTV.x264-PLUTONiUM - [SRIGGA] in Other, by 2h567.51 MB167182
DownloadMagnet linkEnglish VICE.News.Tonight.2016.12.13.1080p.HBO.WEBRip.H.264-monkee - [SRIGGA] in Other, by 2h225.98 MB135136
DownloadMagnet linkEnglish James.Corden.2016.12.13.Jennifer.Lawrence.HDTV.x264-CROOKS[ettv] in Other, by 3h565.81 MB377231
DownloadMagnet linkEnglish Shooter S01E01-E04 720p WEBRip 1.3GB - MkvCage in Other, by 3h1.37 GB18208
DownloadMagnet linkEnglish Car.SOS.S01E07.Triumph.of.the.Stag.1080P.HDTV.x264-skorpion.mp4 in National Geographic, by 3h1.48 GB------
DownloadMagnet linkEnglish Man with a Plan S01E07 720p HDTV 160MB - MkvCage in Other, by 3h162.06 MB------
DownloadMagnet linkEnglish Opening.Shot.2016.12.14.The.End.of.the.Line.360p.LDTV.WEBRIP.[MPup] in Other, by 3h102.22 MB58
DownloadMagnet linkEnglish Rillington.Place.Complete.Series.1.EN.SUB.MPEG4.x264.WEBRIP.[MPup] | s01e01 | s01e02 | s01e03 | in UK, by 3h2.91 GB1517
DownloadMagnet linkDark Angel Season S01 Widescreen DVD x265 10bit AAC 2.0 in Other, by 4h6.97 GB223
DownloadMagnet linkEnglish Stephen.Colbert.2016.12.13.Mark.Wahlberg.HDTV.x264-SORNY[ettv] in Other, by 4h389.19 MB1092548
DownloadMagnet linkEnglish Seth.Meyers.2016.12.13.Bernie.Sanders.720p.HDTV.x264-BRISK[PRiME] in Other, by 4h1.30 GB164254
DownloadMagnet linkEnglish Years.of.Living.Dangerously.S02E07.HDTV.x264-CROOKS[ettv] in Other, by 5h311.33 MB------
DownloadMagnet linkEnglish Geordie Shore S13E08 WEBRip x264-RBB[state] in Geordie Shore, by 5h265.97 MB1740847
DownloadMagnet linkEnglish How I Met Your Mother S06e01-24 [Mux - 1080p - H264 - Ita Ac3 Eng Ac3 5.1 - Sub Ita Eng] WEB-DLMux by Fratposa - Complete Season in How I Met Your Mother, by 5h20.51 GB------
DownloadMagnet linkEnglish House.of.Bryan.S01E10.HDTV.x264-BRISK[PRiME] in Other, by 6h163.74 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E12.720p.HDTV.x264-BRISK[PRiME] in Other, by 6h610.41 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E11.720p.HDTV.x264-BRISK[PRiME] in Other, by 6h623.63 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E10.720p.HDTV.x264-BRISK[PRiME] in Other, by 6h579.17 MB------
DownloadMagnet linkEnglish House.of.Bryan.S01E12.HDTV.x264-BRISK[PRiME] in Other, by 6h177.68 MB13777
DownloadMagnet linkEnglish House.of.Bryan.S01E11.HDTV.x264-BRISK[PRiME] in Other, by 6h180.21 MB------
DownloadMagnet linkEnglish Fuller House Season 2 - Ep 1-13 720p in Other, by 6h8.90 GB1107
DownloadMagnet linkEnglish Chance.S01E08.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.44 MB------
DownloadMagnet linkEnglish Chance.S01E07.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.20 MB------
DownloadMagnet linkEnglish Chance.S01E06.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.64 MB------
DownloadMagnet linkEnglish Chance.S01E05.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.49 MB------
DownloadMagnet linkEnglish Chance.S01E04.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.38 MB------
DownloadMagnet linkEnglish Chance.S01E03.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.21 MB------
DownloadMagnet linkEnglish Chance.S01E02.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.15 MB------
DownloadMagnet linkEnglish Chance.S01E01.720p.WEB.DL.x264.[ExYu-Subs HC] in Other, by 6h648.97 MB------
DownloadMagnet linkEnglish Shooter.S01E04.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.04 MB4036
DownloadMagnet linkEnglish Shooter.S01E03.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.14 MB------
DownloadMagnet linkEnglish Shooter.S01E02.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.29 MB------
DownloadMagnet linkEnglish Shooter.S01E01.1080p.WEBRip.x264.[ExYu-Subs HC] in Other, by 6h649.34 MB------
DownloadMagnet linkEnglish The.Curse.of.Oak.Island.S04E05.Bullseye.720p.WEB-DL.x264-FUM[ettv] 10.00 in Other, by 6h1.23 GB15793410
DownloadMagnet linkEnglish Dr.Phil.Show.2016.12.13.HDTV.x264.mp4 10.00 in Other, by 7h216.67 MB4113
DownloadMagnet linkEnglish Johnny Carson 1981.12.10 Jack Lemmon; Walter Matthau [Tdot] in Other, by 7h382.14 MB2974
DownloadMagnet linkEnglish TMZ.on.TV.2016.12.13.SDTV.x264.mp4 in Other, by 7h184.44 MB2736
DownloadMagnet linkEnglish Geordie Shore S13E08 1080P WEB-DL AAC2 0 H 264 in Geordie Shore, by 7h1.53 GB241193

- - - - - -
- 1 2 3 4 > >>>
-
- Torrents per page: - -
- - - - - - - - - - - - - - - -
- - -
-
-
- Home - - Browse Torrents - - Upload Torrent - - Stat - - Forum - - FAQ - - Login
- ExtraTorrent.cc is in compliance with copyrights
- BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
- Can't load ExtraTorrent? Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com - extratorrentlive.com
- 2006-2016 ExtraTorrent.cc4 -
- - -
- -
- - - - - - diff --git a/tests/providers/torrent/extratorrent/extratorrent_daily.yaml b/tests/providers/torrent/extratorrent/extratorrent_daily.yaml new file mode 100644 index 0000000000..afadaf43dc --- /dev/null +++ b/tests/providers/torrent/extratorrent/extratorrent_daily.yaml @@ -0,0 +1,270 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d4024e7898143641717ebe6fe088111571481815566] + User-Agent: [!!python/unicode 'Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 + Firefox/31.0'] + method: GET + uri: http://extratorrent.cc/view/today/TV.html + response: + body: {string: "\n\n\n \n \n \n \n \n \n \n \n List of today added TV torrents + - ExtraTorrent.cc The World's Largest BitTorrent System\n \n \n \n\n\n\n\n \n\n\n \n\n\n \n\n\n \n\n
\n + \
\"ExtraTorrent.cc Advanced SearchLogin   |   Register
\n + \
\n
Browse Torrents
|Search Cloud|Site Stats
|Community
|FAQ 
\n
\n \n \n \n + \ \n \n
\n + \
Latest Articles
+ \
Most + searched
\"Hot
First Cams
\"View
\"View
\"View
\"View
\"Hot
XVID DIVX
\"View
\"View
\"View
\"View
\"Hot
H264 X264
\"View
\"View
\"View
\"View
\"Hot
Television
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\n \n
30s
Chat
To add new messages please + Login or Register for FREE
\n\n
\n
\n\n\n\n
\n \n\n \n \n\n \n
\n\n\n\n
{\"ct\":\"fm48SsEHhqhXNanAxWwwbjk70SnA0VUB\\/rRHZk3jh1UGj\\/bC2hbu\\/GJnxrlZSbzVuofzAlbxM1U8zJnrV6QYeQjL4pomhP5wycY2A5jvZb\\/M5OsJoyAlYOtWlP7QADbDj7z6ktd9mMU4Dp1nF53gTkoGnNXBjEUrmFAU83zZYf\\/Hz6j6tkHzAom4n7i7CWqM6u18z9l5ifypckPVod2fiL1FizF391iQ7dwjy59tebak+\\/bcVBEjlG3ltyMgmrSHOAsSOTpHrDUvLXu2SrqfiPfR6OQdJd9DYR4v+AbXrO5znEL\\/GWctAU3MmAlN3tXySqTMD\\/QwUBu+V8AmIscAGQLecAz1UUOYXaO7PM9MIx+trYHZnnpPf73GOgfFVSB7mtIu5OGZeBoLtnwZzYTBAIfCQZ521h\\/AkJnoNVKrl7OICNgTshQQd4dkXIodZ1oJ4IVCuu2KfKMIkS01Tp2TqWjY26LLYSnjP+xUJEwaWES+10iSarCooW167pAHabq2jgidlro7HLpNcfRIjbp248P+HOuHXm5hTNMykp1OkIN3SXUGlH2FdIWwjmZGqGBBlJmqZAbQ1NkAzsPznAAwrLPmds5lu6ub+LRjYKIFRcFKRdhUSMOsWGfIFdrt184uxKywD4piBv3WKtmqTNfpNnN38DZFgm07X9ExLkHHu5G1yCJ+5OtUaYlDkzszlJMGmH8+Fd77QGrInWtB2vtenrGUQmP1+OC7FqlULjcGRfFTWZStV15v2nHyYJ4K7xuO7MCURgJ4fL\\/tyivx\\/uUZxivfOfqmB7\\/p+\\/EljRnikyqtTWqyURQC5bZUiNlSkd57Q4IORe4DWLEmUo\\/Bg3Z2GsaLYDKRSpcFcBZTAFW6MCmwNYxPci0zb0PNpksL+dolnDK17HuMSi+elMeg54F6vxroLCx0\\/B7BhssASyoytyYaVLKNajLb+T5hkLLbqsfKV8S1iwBmoB3VoMKTLSexjEZmx9b1WzbbhkEY3OCFU4XDKkbIa7dh\\/AoS2TZ6d08RgPh6vBmlyRkmWSpqoZ1a+U\\/IcSYM2BugBdR+79baw5F+q7+lETeEPB\\/LT+jTfYwUSzL1PnVJN8laf03LJJizA5b1x2ErqfwejrXLrQwQamFQra8O8L2PsAs6rXjJ6ZlY8upRlB7w26C8aNLbfqw7woStoREtbyODIMR\\/lwi3KIDg7IkwkgtWa9gRrBN6on1NxLxKiNKdaokBvao438HFOMvnxf48casqDUZF34BLxJYDHgrG9RebXyDRc4DWJQZC1kTR7eLhOxcp\\/yQPDYYhJGKARtITprOvIO8iaLNZfk8DZQtdjvRw3gfrzifeekP\\/3Orrq0T9hfTqBbbCY+BtLQmPAvAeR2+Wfrr21vJM2De2pUgVY7OWon7SSutXyvi9arfeiUKwJqS\\/R6E7Y4FMjuJhAtB+MyWUhL5csAIFWY94o0rAkZ+sfZQSk9nc67QJBKIAkZvt6FUKnuhk6J2l6s5NiUZKFFt2\\/A839g\\/st0BQk0yLzs4dSCbTVT1zA52wUGrgDG1CuGfKRCsN\\/LAoC\\/Wr5sOljemZQ36JWkLlQ6JKUlrPw3egqP6D2x000iiNYcu70x5IyDwG+Qo6KA0U0bnGLDN3lvaE+gQZ3ArjfZvZt3oxcV01CDVINmUh6c2TS3tXdgQ1pl3Ap0hNtMIOvCKGSUCCFyqOCzvT8K53JsDI0pkGf\\/zQzLPFW9P5bXlFZYSfU1Pe0EDRCq0980+iGr8F414SCzRw6pI1Sub3FdCsSldEHOjqfkpOe3jWDtTuhpaUYyUoaEp5A4QyAR8MjO0X41zEEtqbBS99\\/xcso2VFggi2QNR\\/8YpaokzQ25jkhJzwmsAgpz4pTOYr5aXf+Kuq4F5bg9nmY1ierRpz1Vku+1GeybirYogkWpGoHRbu08uBPeoLT8sYV29w\\/TsFcj4NO30Sin5ypp4+DM3zgHBrexbNbbqkd92eQqDOEwATyUfp3hFjLqo8n6aumMrusEZ7Db3myg7ioTzp8ACRLpi6uIuwQMMjZ25LVGOXUjpmtJGsQQ79dMKPDm11NTR1ufGTR08K+yBZ2XfbhHiQq3MJ6a6LxhQv81OMH\\/FDX3e7za7pDeQz8QB\\/QWtTsdZrgkqfCuzRGJyfbwu5JfU9Y0sIvd+JVI4DOh0VOp8j7wu4seW69o0\\/G4TFKutASW\\/nJC2IxXSYmBKhMHebuVC\\/wkSfgm7xsMLUkqq1jNm3bQWOtwDjFKa7JsaU3tzD7Cu\\/vzPgW\\/cQuOrYG5bEsrBDtpYbuAir5ZAOo3lmNeR5auupfMdEehOYK3D2Kz39GMcrnYJl2u9NS6veaoSVRellQUf1BVTeFbdyLW5Y++432nhU4yP78y7pxa0aoZwvWzUwyKlgUt+uPWlCPyblDWaoP0x5hoYJPOpg+x8N3BFcxRGpescM+70Yy1vUQcDtFUppE\\/m3+4AMzHxaGiPYR05qgvvUhEcIEe09Arukazhdx5j3BA0ETsL8LGHkBJZqleZGDE+diDKLINKQNKypFSfTPaxmgX\\/rNi8CsRbsqRQr99vhQkS4KSZDp2ml3nZm73tdWbWDCH5R8GF7ly3Sv+AmUOaqdMuovxthsKGJgmC30yP1AWjQ1+A1UpkEWsGmxoHOZUX0ESCSNNjfbyVE+os+6ibgZLOhPb5kwWazyDa+NyA1GGQnApRKV1vUwTq4k6HKlP+tW1wc8OLwOKhvlO3O7tG1uTMerPCMoVY+TMfsHen404wwoH9mk8nMuY6JsS5RQhH3FNTe1jcfkMCxmDcgo4i88bR2dE14gLwnnU7SZxXr3rpyOuPwp4vhesGecs8U3AoQb8htNoZdoi1Q+HMzXacm1+0vau5AICkvrcz\\/wEK37abXkGkPnEoBKpjpqvmxmTWOts1nsxqRxm0TUnlJuqOTzp1ZYRSbf9hOXHdxwTY8MjU6RYmsTp+GjFs4FxLCtrZ0vy7J+X2exCbutUUnt\\/CgQ5w9PbS8phUboLMBxWBvMLSdO8c8EZzoQj\\/oEDGHnG4bx7VYwEdRXFTaXxryBXZTykhA9q8aaG\\/dn+z5rjdkziwG0f887\\/qlBoRIc97xHGIyKjs2ndqkJ8CmQyZbFAkJgpMxsikKEaTV8cOHfnjtpGFvVqBjjjPeA2oAXL\\/kGUcPUfKT3A+vcdPClhIsWmjVLsiwwcPcGZiut2vpqgnokJkXonkkjlMtZgmQVxXJ0Mfr1dO0sKk9EsrqTiSwzzB7kyFir9\\/EFJBL0jRaTchZCbnm33rx5dfnLajNWFYnu+Mn1AAnXh49DpSVXY\\/NKifo1JTvgWpRKvkkEUsnWutDGhDvDUoGC90vDGoCvi8qBVTtyQ0T777EKEUPbV5r2zL\\/vvmskXAgcD\\/nCvDuiCV0vx2CBMrFGg67WHRKj4UGGwO4i42qBvfk+wfSi1JGkwAujvfyJcyyZxQnMDYjVibuhgx4gF4d880DTjiaIHJYw\\/zCRvzLYuHPYo8DlQTFuSK\\/KRWenTqJ3xPiX5kVbAtRsKMKbCtRdo+MX0qFutEvAaen6IR5rgmJr0kVoHaA2DWvlvR6VzZxibjVbyP\\/5EmaWU48C+hnyNzQe3Ve6OO0zg5QCy9FoaZgBEzlYAkY3\\/iuirp2p85TD4\\/W\\/AL66j0C9agujGXaxm7NRhiqiD5g8PSYItBhZLlgvS8TH87OyxGRc3FAEjvVsbS8+cxe+D+llNipc\\/WGWCCVbw+XQp82RDSLQvQxxiMsMg8iUkY998ji7aOrRCQ42bNv45XRoyGgO7bP0xvi\\/h8eTw8SPHQl4cdYTcXiIop1ZnA3RyUKcu3xHfmm0PGoO95gwJAOkQA1JY0BBwDW1hddcetGluALyVWb20jnXjK0RT6T8j2YmbZ4LJfTn4GEyexXhflniIX\\/nqZqBl4yPiEQJ9TTqbJcMkUGvVq7PFM9u55I+zTv5kcBfh6Iv+L4BewXTiJiM8nDM39hDwf\\/znOA6dtX+TKQ9STcV4ExsquNddSnwCZZNavFWZoAJZRy2lPSrVSLm6cZrCrJ7oEGlRTk2mmk6fSME+yhmAdWqPi522A8bPFD7s6ef7ZePh4azDfOIRf+90t1FkFgZhOwLmTFiBY5p0WMcMKFxr7J1VpXpWVa3Lmy8yJc+esbf9kkaIZ9YdRcfAj76AoQpmudPD6MBXeSKJqVKbqgo\\/DIpP3QzFuSJQyT8n9fYSe\\/RP5GtXtgLEv7j4NNp\\/GGk6VQgdxvh7xrqZs0ERUaFXTpjvKUtqDVtgHmZULAbwXfogtAMMrVEHd7w3kkXBBOoLCVkY3jF4WifN7D4NFL7dAd5EebJ+iLXnNxOPtXUERRwNn8yuPSXYajF+v2EzTzxVkaMxJCK3VquvZLPshtFKO1YMlz6vwQFJZPEQr7RNroAfJRxbrMqGq2+1mhm4qJchXRPH8WCc\\/Bh8e477KqS0ikamUzdWATJUe1hBR\\/VgGmE617TGcg8Dd2DlRiEKlCN6HQftOCyF0yFNl79t5X53J3AOUYyAcOLJj5TlCAIMVt93NF27PPk5oPyOsNfwG8I6mLB3pXNbIV3yMlZhunfmySFvsEIAfjNCbPvNay8+kB\\/6vfyT38btbzeUiL5zFsyYzaZG1kCkXyUJgT2qhjV+WxsmKWdf793PV48l0Kz7NpgbojkgARJEtQT93lrpITRuFsOH3ACVfdd56v5QyI6MpNhXD\\/Mm7i7pVA2NfufskKfqqxD6YZnlLs6cYo9RnGDaMjInc2l6\\/CnQgztWz\\/19+JfidXqB1YGEPliiigdTfFpsYKR9rvKi6KEeRU23ZjXw5\\/h51qq6JKtQRsq6jMpVHQNm1AFy05HiHYnSmBOJLstmQ3Yx9YGhRDlDN0gItoKVSj+x0QS5EuamGYR2jDyRaE2CzIL+4WBz+9huLQuoMETcEIGacNfu6EWTqzfzziMUrLkFZbdkhr4s40Um3KVBiYPDJQzN8llL+hT2F208E+Ke\\/9h6AIB7L4BK4KWq0tO9iIiKkQWN3dCDhQVKcUGjbCWpTlg922sgup3uo6hI+lPQKY5tPVlvzhR0GZRZXWFHHre4omUEvy7WoHxlWxoU5z5ppSayZMFnOj+UmeGlHh3XWb02+aRzNOPve5Ghy7bdcaYx430Z3FXW3aGxPvKdFjHn5YK\\/zQg2w55U3zfxPwSrl+aeUAznc5cGfrx4L\\/aiQtku20SdwXT6yTob05yTNGgMsao4BLB\\/S0P4IdKojXj4Vjzqhz5JGt519P1y5gAJzf5GgGcHdI99JeDT\\/aQH002xo80GUTcDqqaGVU6zKexAeWUvmrNcbr+KNBoT3+3xmi+cLu6q31vnQQRz52vnKGbqFd014uoxufPn9iKH2tGI9Dn\\/aCqsBGbBoQeDJ9uwIi2IOHNzkEFriDhCcusRpNJcfM3GFpykub3b2xG9uZiRJD7XUGvoeOzKWgohU59K8FSKmUhkJHF2nZi1C2I0Ukv1ZQsmbyDYfQpMyfEmYXU+Ke2FPHTphXrMVXmdBmPPwC05tXljbC+vQ7Yu0opbmU9Y0fju6x\\/qqulY2chnyEvH4ChjOHQHsXzd9vdSp7Sp15jebK9zrBbWvL1aCVa8AlFrKf0bxoYratviAuxxW4E8jz\\/E0vXMdyVUY39Ym8LkHwD1sI7\\/3ImW8tg4qjEjL+Q13JB8L5DSeEbUK36W4Oq5pPTU0UQvmxYvPivh4pga6Ync\\/S9gFYIm5h0NmPP7HlErwEUbu2iF\\/JTmJf4+r1VES4xOUH7DVZoVbqR9IGtlokeKtCirWRVKA8bsfyIDI1eFO6uv9IwNMN8VXLhCUhTyf5LZKr8Uqs0WhD6kiohb4TArnOqDU9RApcVcKlycU\\/pCSvNg6MmmYvd\\/RT71EzoYYACtg0XQNuTGdPa2fyjvrDXHlbBWzEcK2mN4\\/lvv4E7Ed9Ymr+hkU6UDu1ZmBt0sTi7KlVwToILKu8JSdf4g\\/NdGgvMdkT0Q+0ZFfLo1COBraNSZ\\/POj3\\/P7Qa12l9\\/KUNrNAb9NRDHQIcruxm5friiDpNB0WQwf3EowLvhqrkIGOGWEOVxazuQ7MGGTyTqeLKRQTBVFjgu2QncYztGrkrYE6+Tfcuztb6vlN34BEiqtpkGDyMtrUtJ1WRsRmok5SUpvaQnFRdK4mX12eOdlzV4zicxbbdDr69Sl9uDBKUpLBSVCsP5EOyd2GWraIdwPCvlsvP6A\\/mW\\/lhjFGIbmEkgpWcJUcvAfkkV5RkM5dSNQG9DelA6jRIPjUOuTzu42b+4o99ak6FOPONkU9o\\/+4rt+uGyJWNW6+TQWqdxhLsf7MtRHUE\\/jqEx2m2XPPq1uscHJeVdcwu9F7Liv\\/DT7\\/\\/NEVN1G4twhhD2FcHuCs1+vBPc369TIJOFMUaiAXlz6UPVLwM3d1yPH4bnYPZa76oEKHJprXfVWZ\\/mRWR+nYx7qPNxi7nYedWHGOPzFmpcFTwuI3N9imt3hRUvSZsF9RperchR6LOcbUTswW\\/+6OeIDUNFAtUV457kFNIo4TY1OCphzjFrDJJ0vLBVG7jw5GeTajP0n6VmA88kCUPPLHTl23C31L6fj6YPY528VZY2vq4htxNzC+2ZxoyCkERHg4V04quFhxsvCi\\/7oHCYZIP51PKx5w7Dftlx9W5eZ1R5Ja7dwaJ\\/KRsTd9njGvQ5AVubyA1pvPrdLQbl8vqdYF1LfNP\\/Dk9zHbjnSVDyjoRPJNssaT\\/pFiCOEVnEPB1tzCRVGswEHghQ45PSg+Yzs82aRYdYT\\/abaAhSiTYEIhdw2vj8SkhBaNKKLrnrp3fg4H3MBGZfCitLaC+X1R+ABj9gZ7XnBkC3zPNUVfbgejV1KBweTYG2XlHu2Mrf0s78jCkPkmKm83GFJvHKLZvzcIOn1zuldKNx\\/oa8PPeZmz+pdpAv6B0bqSrkizkNXGqfdPUW6E\\/MpG+mxIqFQwguIvQ9Yitb3472oj206WZ5EiSYyicYZusTGnH1d4hQhUtu7uatsg75HSzCfYz5nn5tm7X9AK01WyBil5KaG7gumGRCFoVtP3jvztAuZXW1OciH+5TSmbjUNdHXp\\/IZhb+FIvdHcoHVPusowCFmOql\\/7zU4tUHPtBMQJDrSzokhOMcINDVxQTEhw93cXTRPJsVj4Ck8kRiQvMcxEHtAgo16tZ0kZad2nQizbjHCb97zgN5pD8pDm+KC8TgAyYZvr0EwbgwPCw2oCDAp5sLJjzdTJEPGqkmQIApEmlSXKavs73VyjYrMdaUboiFrcBwGP3o2KSqrk9+dH1g6x0G7KhBEDDePaJorEngKH\\/62LgerYanZFPN990tRjwwvt5dCywIiT\\/fGLKxgH+eQ\\/rCbLhbAsw5KfVUWsRgEQHUa3RMXCLDqQ5p8ZWKAegKCnH9JfGnR+AVdVWk+pcHnSZRXntLie\\/6RCZV\\/I8j3QS0ciV7TKqaFLKU2CfLr2Pz7M6NZMz6gkpth+l\\/ZeHINw\\/G2c8BXG\\/95eRIJlvWbAvvedceqzZABh9RGVUBPGcdP9pmn+gdCotKr0Gqig6xFadze1ft3owbd9quHxGDcmbZTR5wbMP5mhq2enLxEhRrHeehlAQnQiLZutEr2a+mkEDLHCvJ5Lz\\/zqbnbyK2ETNnDKT9pZ7LGFpw5PiyIbhJWi0G4gSUUbQe++qM5wVYIIGFWyf7cp4pwoCP7Cis+KpnjQ+y4V2EMjfG\\/PlnUVKFiKl3csSqrGQzJfqXJB42IDEDzivplarPTvzYWr4jumWq5ow4rtImowieXtEhVlvrBCZZL8KsyNngoeZ\\/klO6Y62oL9IjYyHd81AkPEE4CU7UF9Uv7EqaF2m9UMJfaGjj5L1+W+USko0L3Ouex1lIN+TIE9p4JoioB8Q3vEJlMCjKWIDgX1jZZU+EjQbqYHC3BaUfPrtKDB8kx2mckrmg\\/abL99D\\/kHBD45fQnO4C6u8smHceyrExAIcZi0E98swiIJcfXUUCCvRqTvjpE5utRLEKjtBLbd52KjThPTjd2N8JFavALi0vxaigdte9HO1krxsi5p2gfEVfhwCT62thW64K4A4YbODqUgawJLkpeDNCfz2X3o0WeIYbawAPnshJ+6+eQXvuidkgF1j40uudU3mG8Ill1hxL13SyWcDCRI3bP9rrsdew99PeiobeKfi7onbsatOdejZGiarfszXC5EM1HG3GFjLCr73tKSxug0g\\/Qej5q9liFWA+U0Bi3Kf0UrMS0m7TFYRtMRWn1GLpDjf+DybH0Dz9iLoaKz+u2JLfB7oxMQlOKPiCmdSa962kQSjQMOma4GRVv0GnCDxsAuf83VVG+sqg1ABNvMpk6eY9MNKDK7B2BTAOwDualldpRzmSK93Jo3fSfxmaYKYA6o6Mzi0iavK4fJhH1in0uQBNzbQ+JhygS8hoiw5bpgPIrBFZs3pSN2imPRpjCXZEXVtk+Q19uJULbskvjynUxFl2aSqUn23uPHI5469hMxrePVKFfNN\\/mf7ojWKsfPhcB0sBUYxJVSwJojtM06yTqYdVabjQ9Upiwmxfuf8itj8RkGj9xnGfnjp\\/MZLqt1fcjcanTmEuUEbgy5Oo36HMo4lremVZigRI6y1ECz+IWuJel2TrF\\/UQiRiNAgktgfyT+HI4iaHxhm3pffAtFm5r6PPXVTi2pBuBkQe29r52Oxl6QdTrSAE7OdqKEdtQDTGO42zIywaWw45IOmzLh2d\\/AWIVqLThcKA0v1mNlKLdVhWS9L60lcEIjBAy\\/KKINp489h78CmvsCkhITKf7UsaOOgtMhPGkk6sqV8BTwfMR8n5kVRfTz+df\\/gftGmww2LW87lCmQuBfRQ2fx\\/jyZeir63mVSBvfNAJBp3UeT\\/1+je9aGo+cndsx5G9AVBLBtCi6LUHAO5lj6JAAiavMCt1\\/sCXIJz0WMGzBfYQ0eHUU6zjHwiNCQ4xz7ZnwFaIGj1g1H7ejmgGFFXbFc4U4qj2aBeNMMbHuRAkMoj696tLkkKkhQaC6DZIVxQCrnlpFnUFmtRsJvKOEOeEnc3dLEVcA8lpRXkA6U\\/3aPXFdBC7M1KV86gbpr5OWdCmNfscM3T7b1ttvS0aGlSkxYaRLvtn7aIS4x927Ew\\/qp+k8nBsIU3Zkv3pD39RDnPGtlhLx3ActojgoQPgnNF7LvRGx3W9WwAM0VkmLjAnksBQwgQ8PgI2rSexeog5BXbbLXckVSN6pFF6iiPi10X28NJrbkmwX6SfVdAiQY823jFoVdCC8QyEz\\/EPe0NXHjRyGQELlouTHax5XXiKez+5PrRuCE\\/hpr2jkmWQe\\/zTkekT+FSlTCmvBQ1CQWHydU2JtAymT\\/5FeBc9BVYDSCIKJzwfns\\/o4jTlNtgNPgXAFxmxL2ADJgL62J7gUXu969G6o\\/OxGq5g\\/huilXFOi5RnKZgPuAz7f4F1zReAqPY7FWqH+rJpX036+QZ3dKk1hME0u+\\/GWjhedmwoCzB88zKboKYu8Y2Jk09nr22a33a6MNfiW4h\\/HlegK4Kz0urH+VCS9SFehCR9URG+POxqRplK0pAu4kXVOzl9hJwEZRqMFIaPaTU\\/syjaOYKYPQH\\/J9Jtdp28ryl\\/eGg4dTBR+XOppOS0aYl4pYicMrzLZi7MfYyQfecZfn33vnINeKiBpU4MREWr1zly7CjVQfm3VzLimsYmAI4t2ehl9abvNSeLf8\\/l1+k9kMNmDppVfdCDJ5X+3vchgKYBlhD64O+uABNkdduUYJynawTXs5Y5OZhb252Fq5O\\/FmqDNBq\\/+C3TtwWrjoLg7dElRJ4fMEqPo0LXC+5A2d4F9bnWoOaUrSb6o7TrWkYJoNAc0X1LI1i2+gTBy8bFEwuR3rLZhYh8dZjiqyNowe1Os6TvzV+sI3+VtHonB6ELFEbErDsi55i\\/FSm4Ih8wcpeIdy+rbOEHBcRoC+6zl625LG4x5YRtinqsU5ZpzjGBmLzRGdDbgXmcXe\\/xdTWjd1iNIrhkbnH9vd8prla5ovRwQg4VLgTW+ycf8GtTI1P7WybB4TyWFQ1Wej8peV+3JxYrT7ZY8f+gwe0rmde0U12WM2Voj5WmuXbAY9tTgNi11KhJgJdqGqN5m9BITHr+koFxrzPRSLwICYWoT+a9ZjZ9Hp+xnRXlertCkyN79UsPBFWbvFN1mtTwTmMYtZzgmrB2OtD8tyA2Z+uOChCeeqvE2kw9GxXOArvTS6sYjvQyS2ULyOix5Pwrecn5vURzhNtDKRb5JKHTmRJn+d22G2+QaaavexNij7I7J7wfOIl3qQIRjfOU6rNsxWjeaeSHQjpWHBZbeChjc0t6XiqIz60J1JVEa4nXXKQ7bztYBLwocTbybdWhZDz9eENdK1TWgxhiCqgOcN+DviTs0TqGu7mLhRFgcXzPB+F19ctPGinLGwYPqp1dQKI1lfe7YJO9WW86CnkFFdrKBYc1sEDJzcQ7uL7GhZmd+qeUJjVUrji4MIIiaF623PWWzwUWepAwFYYW5KpGf9+GBQmR\\/8BQtnpMlYthccIfK2jqLNyXzq7sVD1uQFRIfh9+nObuN\\/1XlEO9DJZceR7GdRFc5c+MJklgdf2Svc5INZt2CwMivNpsD8w1ihwRY8vYMQoaQ+9t6tlXvUIozz\\/ox0PHlTAu8t\\/tL68FaMzU+MVc8lQ9W5mVEQOEmxFEeKol1QwY7D2xze\\/8Ge0k8sCcWJGZGw0pqQiH5p4xu3mlelkX0DLGh6tLGyZHJqARCUqfkulSZV3KFbAsjtFGdB0unhgexOm3bkHpxF94EFKEnqk\\/mX16IXTOEVS1PqOtm1sjY8iWQ7I20sIlm35Z58wwyWEYIVyVQPbee6tQZrR7A31s3rbOZu4GQk0sxC1\\/NxSuqZECi2v3UssyNcVyxLQorVOPdFVihVEF9TYqqWbwd67beiCHJfHtB6IrF8oYlFsFfJhsHFMZIzO1+nOU04HImLMhwp1asM9zMXf6+8kqgQZFmehj9rXsZOYHk9X+02QWNRSMNuvXQJgupk9IDrUpIGXl2e13nglx8A9ve5nzNNnoPEcQK5HV+4sGIPAjSItNuTLAmlSfe7duLKdrVL4p1xJVrx4lgh6PX+ZMIPjwvWhrKi9isSWYLos3Kg94tY+9mlD9xeG2bmPXHDKCO7wvPkuQ16D1jPWnzJ69AMv1LilD9z7B8HJykMOUHlUS5EtKF\\/yES6XwcEaGwRS84AcmFitBXtaVsSDA85zxuhcE1qkYWJxm\\/BqZgnlfE8lXnEXgxsMr15bpSwReyOhtOyYbsN4Zjdb1g5yULh2MW5XSKBzTtKQ8R17+0htGrdxeRWZHPw0GFryUihdXHpkECCryyLEtKOiArpo8ENtCi9Wauf5wz1osnFqmya3WPIuPqj8UU5llm1XnEGtObKrKRPbM4W0QuyCstyATkr56wAFjNAyPKL2cbvcYtn9AAhIdn1McA0MHH6Z9j1tvzqiT+e5Fz1tAiEBv\\/sjCFOth7fpiDZpNXSZ0wHnmhRwCOb+9m2nTa1ufEz4FPCjzjRf4PuffICTuQyKctot2EC9ms+OtTdiGyFzcU69vza0Wx8Q3FdG9qpSAQdM1dS4M4tTJYdgeLCq+lS+RKiHXJ8e3qV7dm0xxr0LMfzgLFuMTPuQ+Q44WTDIV5ysZ1JKlYJw3+F1ofMkygltZfE+9LLEzOlkuV7p2kLteGDogVSjJwp7nNXsO9uNojYF5F8MJAAy3S0GMUm7OPyPvydTzPnkMAPj1De1UaBGXXzRO3fHkxgrpaDDUEQK66MO7udXuSvXjXEP3+miHzw7H2KIMOoTtqmXkRBu8wqqErlUuvhXvaEe2qGjgWwy4EF0ZMd6NE3QUIw24v2fDwCdB2Ytyy\\/GhacYc9zsEMB7qjoh9qoqDIL2ENPRB0cg4VLMGjmGhuUn4N\\/UmvjC8tkgxRwRxU1TgxMz8TXmZAj5Fg0nL4yUMwLYQvV2E3YyMWSCRcf+O5I1ZMuttV+lL1e0KGKkmjNgeN+e2OkF9fby4twQoq9tbZts\\/icBphPDG7TzhafmI9UmWXHatPfWaiWEi0NfyDrFjLXswPJhIBUzfVD+71lhNJDkzOW9GAp6DK+3gh1WH\\/47aQMPmKkjtp8+z5BBUh+B4osbHRrS1w7t1ZBk9IIIl9jNUIXelXbP7qfHudsMG1G\\/zxfXwJDn3khqS5Tt\\/a2vaQzv+OTeQgI1LrVsT2ubVj+Ckq0AHUrV30\\/XWei2Sh0bEdhg+YSgFWSnWau2w\\/vZKefTEZIOtUKvOpOqaubu7hZMndNrhqIyK1DSqYNiOpDD2fEtlMe3pCan4pYnhxpBSv1NLq4Fu2lUw8f1a7zl73cMWv8+CSl1P7WVqKJ0fwvtGue7+qP7DPqy+pePQ0zBaVtwNQ9gXU1kk55Sa+sq93ImU\\/AwRNq2m0UzyIEdsRFOWlICrYk7KTpplSZpywr9KL5VQPcEkp1ECjV3P6TftecAyYOCBbJtQnR76VMBIXy8uuuwejAXh3640DZscl0rvJ9NLKsKNIf1MloUZjaFu2qDiXmt1TyB9Klxqi56lau9CS+FA6oik5A5s23N+v8oP\\/wM9n72yCDTVV3TtJ+LHoChX8fUIykhSnmLHJQAi7UoG2Gz4O8RUgKf4YN6wKo0VFDM7oXgTlzCAUWSvzYsOyVBaepOT+LwRLiKVT\\/iajhTrn0YxIM3EgaTxG9d6q80auhR\\/bvkq5Rss2ykSQ65LgJtIEmUF1Hr1ToWY4o2FLwIlaUp+pUXY\\/jSDwe78w+EnV6NPw7eL1xVpzUjmR8vpQ\\/VoFejNVsIYqx5bNEA+NtiDhT78Kq8y\\/TJV4djP18\\/9OVsOmtcIjN2DrqNDjqC4OPB6fniH9sKJs35hKdltm8XuXCUJbQ9F3hLj0OP87W\\/KvhYk2XlikUJsciDN\\/25vXNkywug4u7YSNb\\/IH4kKw9ojq5Q4gblm0udusu2rjn3+3pTg1w3442phaIszNB2h8nohPIz54e4wEN9dvq5gZypSI2UUmUjYREy1EqKw0n5TlxwkiMlWr0yhjwzulIxuMJ+j9buetFmD21IXJcBoPP+RRNLoIpxfWYcSNZKnT\\/iR5YMdDUM6rMHmnIpS4KBiErjIaLTlJIZR+L5eBD\\/EX2mZgB+4v19MZ4qr2asCOr4zdnyaurhZwVIb8AHePMq6iMzMSG3WUZYADseO9MvDJRxgRJQFpkSvUgFhGK8l6l3r7S3enL9Rpy\\/ooSBMJWkRtIF4Zf\\/Lq9a2MWNfihfDbyMwq2PrhH5QNvqyGK1eMXcHKZIiICdp2vtlWEEDC\\/6mn3c0a69aekof8PyNtI\\/zhH91TDscQZzNb9Fe3QKXkzN1PY6CIlv5PxdjodtqqPYJRGtecD1XQkB7acCUvXw8WagnoMJXDz9h3GsDHKAgeIibSgpwwc0xUGtUwfGRvmVmrqwWt\\/Df57GIqQQzef9xrWMx+QHnMbM6Wrk0Boa1POXp6T8UgrXlB9KWKvOk0EGMv4B3ohz7GZzYqyUGqWL0teAMahYD0Y5KeTsJsf0Rq6jKANjzA3ZoKgx5aYQmvzOkbCLNqLwT30uF1p9dyPjl+qc2Ndl8E9KWzBMIyZI3HJLE1m29NnosTKEsgjzNn9AXVQliSqb2ojiVS1vrglmfpyKrPdwaMrR83pP6Tlz7YF1kYF\\/lraEMqJmQn5yP34FSIb9x+X7R4KHNyjSFYBMp\\/troVpYc8ZWREBJApuqNck0zVyGCJpEqKW26mdPJexwoc1ECPU7CLqk9ctoisaWavXXboeBZjwvtsV5YRKA\\/aZ5XVz+GA5Edc27ryhgfNqIju50xuEUFo1OgYQKnFOx8+M\\/MB2e2k+cDrkIjUWG7NHzSXG5oN+H9oau00C84HC8WMmSdybb9sg813CbgNoQVG\\/97quIlyB93lD+JlE5+UQeoovLmDZfVrlcaK+l3G9zvMnKxWhJJC0YN5xaaUF1k03M4POlWOHP6IhVE6NmFaheIUKhqKki0+bUO12L6hA455x\\/bjJsTiLDcKETfmwvaE3ReweyKJ\\/xr0cCEXI\\/WMAtEAveycrsDqzG6zLj1LUEOY9Q+facf0ZVxJtSE1t2alsqNIR12YEAaO5QrcMGeHuqFjaCun\\/KxH3Axyze93ihc4EPLvPbX14HovbgjBx2olVdtg86IbHMhcexX8bM7mjb2NMTIJUCeeTGZQqvnlcPRp5WBQK7JIptxRzlq\\/0vB\\/1WxAxXhFN+WqH0U+x23MIFwol8GO9\\/+xViY4GHjfzr5tMEBGRFI2G7NqPk6C2aDeSmlOsl11A2xmJGMY3088DUF1pDMUJpAai+U7vt0vX59jl4ODdlkJi73dqwnKE\\/ycRxgx65LZ\\/9Wc+MJ8syMRraUFqkLH8pIr0ZD7unXzBU0ZH0LS+5xOqVuxlvNlRGj+yKha\\/1XeFmz5\\/QbnVg23o6u9uCcQ1HJUiHlMVTgfE0GMu8AaQz5FMnavNRYkRlNWS7c4j+kgzh6\\/bOPE4aQbAAS95NnP4otMg+u4r+HcZg54yEW1\\/7JFOOltntMSAsY7Mgx3VkC07uk149Sb7YXjeX6cuoSiYrlQC2\\/0Rbj9beb3Gm9V3\\/0omzcR7J5OIYg3BD8adezP6kgp5nYh3aI9+ahqxs6I84DXs2KUZVD0XQfbsCwMDiZdIa0Rdw4bA9xLA+2wU527fwjdS4MstANloklX75vwYSElXr93MdFQp0TL3NoeD+VWBtxqyrLAe1XYRPzOq4hgXmuaau1EUOYjMSCrRcFXaOqudj7rc\\/8p+5PQebzEwfpsjF8npM8mZWl4csULnGe\\/cIDSQMfFKwHWn71NKjCUqVnIws+pu8ZKytKRWZA489312vL5s9xiWGAbJeRWgCzfTywwroglyd\\/0PrLMmNBXYpH3CNbvuWjlrfKFnMN45TdOhp3cIzpmkNos0p5hIMjejwuib5eq\\/FhrNySNyvLQgqkbc8bThxCW7+wPgq9HAPm5L1o+paDRyTB45c92lOEp9foiZU+rbgPlCHEjxaKSBIN\\/miJpo9IiUHIOrYPXZhNYSt8rnXbtdOFDb8yr0AoWw2Vnet2xqvUgwZz6gLqm4D16jZwQ1nNx\\/sZCKrTeoy1s8RsMuxeXT5IPHlftvDJP4vXa5XG+QqMiQoOyK\\/Ar262bjZNsDDwryOUERkJi40HgOSCqJ5hCAzY3LvLCKfMsILOKupWIOZObOl5P+hgkJdKyvWUxkWx3sbYq98r+369AOt\\/a0Mtumta8Og+XjIe0WztS3Ikts1saYyfuCrZwjqCgbuB\\/F2egbNle\\/s4ObygorWqDyLk6WEcF8bDbbK+eRz1g1gXTjbYarcq97kyuRDBQt\\/oqU57K+b+jwxpdYrY+60qFOQIFPtJWbEImtULzvaQ656OrDqMRiyFYvXGjG8aJw9w9SLWTORImFxtBuXdQ33175kHXR+KeMRMKML2zf84QEhC1eIUKoq6\\/x5T0xHEB0S\\/4K8YXEUL9BwZOTtY8NyXLdXk2V\\/zsTe+WmfZmq2r4DhPG+\\/YYs+Coerdb+wlCICJrNzEV2bJdVONDMjOHohJxPd1tgZa9rimQr7nIteWT6Eg2dWRKrxvbEl+wReV7RxBdSl\\/ZSU\\/aTZDTsG0Ed+UgMuet391I1OXOnMp6cxcOxb3wgLAwsTA\\/T4bEjx\\/M\\/Fcbeqq\\/82KtriQ70WH82UboYilMVUGPpsVEnxnnPI6o1jOP1lXBB5COAt70zjwvj7UHw33lIpPjinXnYZB742SXTuOW16s56LMlUQHmcXwVfwR3+jPDtP2nxY\\/3JZO4uckFmiZtKQWt0oFoa3NXWXEoT6wAsfXBMBrIuxw1T1Dd6HAaPUR5ZiZhZWlp3kHFVhpaA2mum4avCcDcydsLXI0quw9c458l7YOsBtIINwX7hoNIAyu\\/DxRDQEQwiKXvanM0aAa6YG7N4nZNb1cmhiy3hLRnb5SVZRQJxe61ewO\\/\\/rQkGIWwXmIL21mI7ds8WvJwuOzzzuJe8GijMSRJSli9H+ZydS7Ve7RYrPZUHCFMZQs9MdVIqUzla8eYnbK4TiOBNJK4cPHOJgGt6cKfb3l96VjoWoaXqYG6U49dNUbkEDUBvK40B2KToiZJjdcK3\\/OffSPq6I16iZ8Oc8df0OQSfwByxFygIzcXmEsct2pdkW4\\/znD5LwAge8C49td8Z3wzYlMxrvYYQpPlcpaVhElJ5u\\/PPX5ks1Z6vhQX3c56Hc+uRQ7sR0PMIVIZnP5C4srqEyCytmSRyAywZNvy+ZWRbg8JTAuazG7C9CmuiLqykR8VPayyorOm\\/ei9CiZHq\\/rDgHhDszh52uQmapEya1kdT8VAl2hMmIO27+Afc2lNYaIK5tZSbN0uhQ7zKepsd0sM7IuALnLz+ze1ww3eo6J+UmMkpsdZCAX6vdWDHCRDLLDjzxGQ46N55sB1PgI6d1huFHdWrvN6fL4q0nVp7+KtTTF\\/+z+tvJsXqVfw206fxyYNzn\\/zRcLe1qdPqS9FLZqXRooqXvlhAxe1Ux7DXVEHKJiPkLpg3DpdVc0Vvo3x559RTuXLbLBQkill5Gw5qdc\\/GwrycHhMfLsSjK2VbQzrLS57dJmxSQO5rWRsAUpYtc9UQ0vqANcGqfSiF5ndjymhwCOAeoi6MMP1kibNbkYGa3OGrgxjQdWRIkWPMRpPJpDqPU4ncES+cMKvHOpmufDPK9GyjBUPbSn0dg9Z+WMZMuTqxy8ctEdv5hJ\\/em1XhyuZApMuKTkINUIdsfnBp\\/4j6Ita8WPdy04\\/3FmT898F2GVZmTyKm2TSdb0fE\\/lMj1P\\/1lgEcestqtg9oJLBKD2wiHzGi\\/AZl1U+gC9wazEO8WSyC79RH1mbVxbRA6XDa39t\\/4QKeFA6k0m+6Q6ixex\\/Q4hzxaZoEQP+VyF+cRbyPjfpCkMi9Ht1o\\/lt88Z5y9IMOWKVUBM\\/P8OP11wfhnNV4VvB\\/XLrWuInGVm0acbN+htcR\\/cJ+zaAKkpRdadV+5DJ8oNWFWbeM64j+1J71B7RatTKGNsl5fybOaFc16kRLUK8SMGRFfIzzcWEXi4SYJSTIGeeUxUn6cgXgcHa4MIrCl1fIq9DWQJMR79lFzpP7u9s829yjv4i6bzESUv4mxDMqKSql\\/hMf7DmazzM3dqYcFzhUNfGMNEwL1XJQq38izIHrkg7n7esgXOwTDwmbMvRC\\/vVDSPWKDCiRX\\/9KdfYHD+YYG82zp7ZHm+w4U9iF4efxdzA2BuFpTq5vpw+QIbkAZVw19xKDZjjYZQZjuAFmTl7Uw2KPvHyDHk4q7lp1LQ7HiXbNeBW83PnQRwbTrbFUCYd\\/UqX2Y+VwwqZ1RBIkxqYOCPWMjjTF1hSBk4vOjdWVnyC2Q15bU0vgYQYZS7LGRq6ACv5MztAk3D8eJGuAFuX4PZvUk9bgVuRLK12gPsapfzZCNf+idrmM17\\/b2QguEkzu\\/GZvo+Y\\/mZKL+hsoijDh+5eoKfB4CPJ3PbeuhaEyReU54iiIS8VQdUUHMisBQ41s8311F8TLP0PwBaLkj4LY8dSgFQwfMAwo9Vdu8YOFyKJ9TpKosFqH\\/63Ptdbqq7oL05pVWx0jEysRI7avtn5AQ+oC7NmzsGzJMRG392Ef4z6Io9qjmcPlvtiu8SAZhiVUay6VgaKaCQdcFMMeJDB4DnJJfcgF9lQSSp70UGjU4IlIi3YImMgsiYvFCWx\\/KvEADpxmBd0tuhGKVI7iQ4A9pX99K2pKh8K8F\\/2Hxjwr4i5iSexc3Afi5UdSVuNd1aHEo\\/VZDFDU6uHECy5mr11MP+j0wC3FX7PPD122w63atYjq1iV8XdVGBAX8rf9mF3EcUkq6Ky4aoP902JSdIgrC\\/Yu8l9fzzJ9jS4ZODP19RFMOHe9\\/Tu8Va3bTW6fYzp7MdJ\\/QcKkd4nnI4oNUag7MLlbA4AYYKSHs6fG2ZRUViMJnWl2PmqJOMdAUKJ\\/uPWKO0RPhlhIIMnO3EU87ILP+z9IrZwjUqVLPRW2IID0+LMSGclpItJKMMeaDYM3sm2tNIM0iEdsN7F1TkbcjHje3FTT7rq8CzI9tjqAOzZOnObIBQSKT4xTvTc\\/m9hZlsb9BwC7mN+s+LIZvZT3XfdgX05Ke7A4TAi8XrPLdt1UclJuVruCaAkVOJsBYRQudl5xwLYi8iQwgofu5NdFBxvboImTTLl+aTQMb1BHHl1\\/+enjUtK3afpED8wrJKtKVulqzKqyU2NtszmHJD0F18QIhuBvd6NsokKjaNR5JKbjQAAJ9VsaMvNgZTN3fvkIQVrafZj\\/FifgnA4t\\/0OvR6HXfSNziUWbmPaD6oRRF40brV0MzS6TbAueImvS5sHm9rva9HzlHpzlpTkUscQDE+3aReJDEfOdMCSv1\\/pS1DkIamPs5CJCdNz42vqZxaRs5fW\\/1U3q2VakadS8GTvdEZK+m26OmxfC8EtSbrKn1jY4f6Nk3X2GpuCjjJ2ywZOU8yS3oNezhrh6S0OGsOMXUwYwnnShBRApTkFcV3mtNMn8988SNdHiY1voE9hW3DjK\\/WXDfvqqsEnJltqgeHgnRnu2L65gp6QNnGt1PyxVfymVIj\\/lez\\/AMkTVhJu9JoN8PdKQuGVeGrdU3hLOAScJ\\/abGTBhFFihj\\/19+3Ovfff\\/oSd\\/DEJQL3BZbxGtt9nd4OfzWv171KngwczwzcnK5WVmrklMXTMINBQ2UQIjbfD0Tg4xjfQga1ZcvaigSU6XFCJjxUir8tscrjwnwKyc7LFLVEm0TBNLRARQ7BeCJJwNNTPIV3xi7DzvM8s5IPSHTKDtud3nGu3Ogst1UqmaCPCkX1AipC+4S8zrf+Klp2EROrbge8zivDNg+ZVKrwhldvx5ONNtzjAIiralbA9Fl+dEU4FEU+bjizj8XVhFAwF32vvGz+ctoDQvWwmSub\\/3NpSaB7q72H6gvdbPFvdE0x3DFsBzYjTx97eeaa5rDSfUo5AnCNQG9p8eQ0m4aiKMBoV7LvOIJOQvehFSysSrtNdDFhV5q06DHz1j2mW89TXXoRDxLjPf9mhKZPhtBLsKs\\/Kf+1a+BdUhkMlGnFvkA2IebDz0ag2E+jp1BxxbSAz2mg+DMilNaFdiq1sGOD+ZOGdZ\\/TenRnDh3\\/i6i\\/3iSjqgcAsWl5BHijq+JULkv6Wh0LbACCeLmKYEmeBgLDfcrMxrFVk5yZuOIHIguY6kUOqp\\/VBB4gwlMR+c4JogRm5cZX63LzggqFdErHI32WgXcZ7UUfYkf9kOa4Zzv6rqUFU6e\\/BrFFDBfp08UUHT4497DJf4pn0\\/ADVyC006wiYRfwHGjJl3qZHAyXhyA4MOyNQRl845TjQRmRJRmFQyXJqR8\\/Jk4E7AbPVJY90oEMUHAjw344Bn5pXveMCn9fHV1jJ6K55NHsA6YiGyNPRu0yp8la2juXLcAxYbZD8FDbFz6fT82VaEn9hoYOhdyKYjtNnGlw8le4g2IHWkFxUV7TyP0x5DZmwQpWpjXLNVz+RlpxlolirBjoQckKHJFxGlkATLWZKcVv8lLFkl+7eP7XdjGokwyCKuOMVVk0grxisIcgZiUkP93UhT\\/zoX7iwZg4k13ZmD2GIjm71CiRZ6gYR3i51rOSoKdDZ1uZkER5rCwDnPw4SgkMnt4oerntJtffb6ksIRZAcwEM8KZQqlhZXWVGFiUgY7WUeVkwVcd5jsjfk4FYIsWMVOiOhEZnIyPhceAPtD8PKF2AsZEW69aiHnQ8kQOepujUGZozEJZhkPUFT354wN1LmV8xwq8liwfQhUyIKas7eW9LA2iidtzFK\\/KaSjuMqZ9pAGNXh7LoMmWE\\/YSn9Qv3Ht6SCYcNAtC2Drx9z5WQyQtEaFmgvq7MvLUU6DMoSvQG6H3j5dAWIFepk\\/7U1QQ6jq7ub1AVyRdXAnLmf8Ycml1WisF8Nyg+AnVVlFwVJR5u21Ruk0c9Um+Yh42lUsKe34a2DVySMAp7NriK+0jVcQnA72slP54UTr02SZiy1kDC7Y4gdZB9im6LkYHGpEDwFFYiIqsMgygq1vdqt\\/k150siAS\\/9Z4mGLTnl3u21ldyNxZ+ru3\\/o3hb9SJ45bs2n2mRgiAX+Cj5Uq8z9sTyIMSCjYrwns1IxCm2JN6nwxp39mwHyPu4RC7XUTjK4O4djtgiR4K4bUYldgO6GZjxNOE4XgHFRXUwLePlwP4P3yao77mEYiKbn4qxmmTWXzGnKhiD\\/cQ1SvZbdp1pwZnZRMLuRc+QFBWlKwUYi3obHRc518ks\\/FleT7Nmwcplgjn8OfpW4Z8U3MHCEFErrgFPElDTflaSfnwPqw\\/pj\\/Xj\\/dubtyych+2Hr+KOI8yOSJuWl31OmdHsLTLvy1S0UpPAX8bZlUPjYFZj+2yPAfE8EaCwP+kUBrJpGa\\/bAtdsgQGqLdsp2An7LnLMYLEmhPdMGynLcmW5XteQ1d+1Wf1Ssv0vMVy2B\\/4t67k1120Q0XjzrTPbbOp+luq3gN4B32NHZ5MSxAjHQdCJ2BzV9wGzxQ0RDBkPqyNa243fkcW\\/o5TfZCA5R8LW8VdkW5MKRv6DiCTN+SeCTo+j12hm6YSBYaYR1bL4AEzr7bd+y7xBmPjHhUmBEaB\\/bDiNlLkFnAtlvE8idmGOT0CTzhWdmkj+sLUsOxAdjC7RX+O0nIUsBslxtg43cyeQ2EmwLh0CjG1yXJuqO4zvPsWQfBrimco8y4vCzqHsLRdJb4DGN5w82LRBfn\\/XOCMNlF3OiH2CwnoVBNqTLGf92RvSACSMYU2k3DPNZcXTp\\/k11DE20mtMteKi46s8KE6NGxLi1h4tP6pbbpQ+SIL9b4xD7iZAGzJKGkPUWT2aASiIzH0YakIO562sOMGTmwSwVx7\\/EiEyXJafVU9X4ZO0IKQZuuEiym1ArMfFavQ4A6VEH3SbFEh\\/dsCu7w5vxSBECJLQ+jwwjNOhEogOpQDOGfhpI2\\/ZM5lzmEbX5VSqkJOT4\\/CFNmkHiXXXV0WKH6m1qaRN4xDkzJFrZIBMW+37bfxwKqJ4lpefw3x1rSECKDqReSDHrVlML1dP16wgXaUXP3iVkc39xrn8G4e8PoKhKvHhvk3rxUHTMWq8bzEpxdg4r\\/ttcd+cZ9yd0ZuoS0s1ro+3RGh2vtl024YjuXTrbkwNDQlbiPGTOegpg23XlkfyLhsQGdAZ7nihQnQdGbJciSrYpQ8SNJeKxwr9d6kDWBZve0NzJN0o+lfg4iY\\/+HPZpIUzfR+GelGfePQukFtDiyI2tiWfRLOOlSInPrd3ofh80RYP84fNWrFu3AFn2HILpgrvrq39aGTyEk8NB2QI2Sy1UikX\\/itvK29FWPDnvUsCKLsMikGXmP7aH\\/9vqZbIEYpLbfnqh0cUgG5bMxmwo7RrzqVbfhaBgIIzORxf9rDvo3yOURXOnB5Dg90OQ44TTI2sNUMMzXN9ibap6s2g0MNCeVzWDiuqcv1MZSyGM5l4GiCO4mAYfXQtUo07G79+FNBAQHttjfTg+FdlmQy+8twu+UMtPP+4s4sH+SF2rTnvZfUHR32QhTGe+iXRr5fmKdppxSUknfVCu75hRKNvDtUgVrGlgOCRoiF8ViSJL+aj0AVxAaukmI2ajSQph\\/VV5wGdnpDh8OTPF3NaAVCGZS3ZjWiAwxOl3UCKRl2hzQHVh7\\/DdmV6iJO4I3lU+IKTnSu1oNtHIl2a268K\\/3ABnkRABezgTNPfPlpUC7WJgRKP1XHvusaOxnTFeOqvDCkKY5+vnT3n8kLWbdTGBNFBWJEnOF2GPI0C6EZWB+YvJ6Ya+INJp0g+ZflthxaujN0m57DPuOywOqu2Pf3qFt4jGJQ1QpXl4Pb2Hoy0HbUEiVZTVTOdOlIIfAb+d1nzjm16TIQRqtYcQiflAuTNevJUzhJ+rH3qMnVtZ+0bFvy2cPjgHgY4b8Kpp3Isi0N4gDsdggJ0KDjVfOooYv27\\/NrtE\\/dxrBkV3e6PvgJGJeR6S2XM1DfW70ciC9NRCs2zlfx0fss1HxL4adh8AQ99GeGMqvRgiY1\\/C7ZBZIZpZciN8CS3UxphQFtc4lxDiIVvsWtRyq8snIChBeQNxDiq4Vlxs0nLfoISjYOpsTiuX5GN+zhcBTuPxjnHnL1uYHPubnI\\/N\\/e0Xm11qB+ahbVC6kAZjhNBpSeqMZU3+h\\/2QG+tpMo+v2Vbm+K1hlouSNdvZFk4P5JQzjSPK\\/JNAxSoFippg7cBV04+KyTTlogykzejQQcN97QfXkdMIdK08K2UcHi\\/Fxu7nAoAEzQ0dpuF+8BEY+CwDvJfBKqTxYKh5h\\/hClqzSqm7RZ71+b6J4SJ4EnwceRGRDChiCLR7TR6AxTz62ZimgvGV\\/WFIIde4MM8ORgzc3AOhSQrRidBa0aq1dJEPkoW7YNe1Rfu8ZLfAYbYtTx6360L3Cgub5qnLt3izHa7rtB6Vo2ApQINGQoUf84KsVIudsNImDSURrZAyBmQiZMZ\\/OwaHYy6SUgji7KqXVJ+NWLC3dNwqCcJiZlKDJttZgWwYXuO8AN0jIFTJMY4drx14syAlcZm8SK9jIVIoAYSGtDWS3GPQefvnwjMeEK8uRGX3XqIIu3xd6frstM9qDUrv1TEdNHa9Gu9tFQqicmy3hhO3x6FIbWcymZwBpCLFJ8FQednKGOPY81YqBBUDbY4XmJzy6y0eWiwZiVkRVtu7YqXTXZ0V\\/CIIT7Qx6Asv4afW260e78ywcdcCbx7eAUmvcsExMuwanYwFuds1wlen4mmyLQcq1cqwBd045ZzKQk5xQZ5t5Sv18yydZOMlF+tKDy6z2wD86C\\/4qnw1DK68sAtM+t2VKdYkd8zU1Ai0fO6GTrkPTsWwV4ZNfPh6fjfcI6iOhWbPgL4GCi3j3DJkX2rJv13ofrpYo+zBvv1lzSLcfIjQTuHhR+RFfX9ngH1Q2mcsYDjcdImXscVvb4QElMAGd+h4txpHuxxoAph8e8wQETFaFmyYdowXs4VLBTxjCnOnmHWaxoesDbvghCr\\/UZO03RBQ0+XJnEJuZIH+Jh4LQPjcBu9ZM\\/4wDr4KlQ9Kp3XHStqOfzuXTdrR4svhZTT2l8AH9MyMPZ7d8mBR\\/vVcZuEPkM6VwSrMgbj+1Pn9RL45hM5BdgxjQPyZivynIbCbi6HU1EHigJ12pnH5sReHk\\/fcOwXmHdfIsPdoHodyiOGOpiBQ4ZhM7DImORUnojBvXO0utLlPg0WHfP3Jh4m7oCgJe29d4c2VvdANe+D1+FBejLLAWT1ZNrPlFl2vZNPdJ0aR6JfZIqw\\/Vv1Cq8yNyrej80fEBvYViTkLLq13DHjqLkvOpAy3yS5HjDSIWitWF3gtr5gHTPX1dNKs7ZiXCnKcFQiVrOCXk1xLNC02FegG6EJQES\\/jBn56jzhZ0POyvj6PqLUiXrWSCRh2PtR4ekcOCGF8W40KxoJTtVS2EMEBLE5WW5MHWW11J9ak5MJQp2J0G3t7NKoSkUCPN7ZIjFpJPmE5ZYtvXyBirCTS5UiF8ixreiW4R0rhEOlqLRGtJUAEibAHc7lgrPecqrAiqalz1xA7ZOHop+\\/zmnAwBGg5Zs49BjQUyMlDKjM\\/cl7uTLw4fzb7e27Tr6gf9uXh22+AgVhYomeIYknKu0eq8M5yFTevBQ6HELb0VhvIF4PMZ61QZawEWPKS2u2K5DYqtHIiTpcTtXqsw1mVDtp0xMD1ibb7AuuasjBF3hc1YzQg\\/Of+qK34KIWHHu2lVsHRuHcxJb6qRzJ2bBux3RTwF5pEiHyCKb4FjrtWKyWnKoiiaJ\\/w2DUcGbRDIZFN4RHf5t+n4YOUn9A\\/KrVyBsTbtsacUzRg4xROFuHjZZVKEx9aWDBGkPe6qS2EP18Dk8Px4uzztkixyE84irb2KaytfwNi8xQv70tVkFVHVkHdbzSpjaVPKGsQ\\/9aqlnsRdcJnOgUDKvBEWgYT9LQloyzUrhyNq3oaD0SQLxIXMbjcXpbQCCeaiunTzl0N5ST0U+\\/o4R+ISDq+v95vBC938FAIZPI6jrHMnmtRcP81SukeiMZWB6IFMG2okDoEY\\/xc9pt\\/h8QHNWVaqacyvHdToW2pYT4jndFIve2lJiMbs6Pa2PQjh2cKldFr2CDM8T9RFRoIjK0fSMV5FG1gYhtEGJNqO\\/avwWyx32w2rF7s6vDSTb8ikQo8V3yVmuno5EwcIid7Gjri7POotsyLxbtIzOEIg5Wvob+rYlOX5PYvnR1TgLMliIXd2oLyR0+Nh0Qa\\/aSBGsKJmtZeFmIWyDkChR\\/huIP+kwyQzbyFI2LsmqypwGrvI5kBeN79My0RSa+MCk6tHysnV59\\/4vy8Wb5mvPxO0yN1yh4KZBEopiApK6kIy4p4tGhjGAzl2p62I2rTufrHgO3fNVfZNDA5QRb6a5pCvz5QlNMzAX4QE8+PUN5c3ODrliUOGWmqWwXF2meuEICY9cxFH32usmsghRWErDo7CMWSFVn3tch8TBZz+y1Gklg21+I2kGRdUo6fXGMTetRp5fLuBzoG4CZt9ldhOLVRt2E8w2LKTVyau6w9PfPW3rF\\/u5+W4HvpmGijG4nRSG76I9DN5t7XKnarM174rDIvUTYLkjJdzW5TVZu\\/BaHf2chrcTR1MtxrOinxg4zdAyNvlp8QOGGYbe6w18V2maiyGJwHrLHVklqA+ka7v8fye3BbhRbtmCztF+WIHpUNfbSSy4rpJ0JwBlZPQZMusElLib789zRHzWLKE7ao3\\/Ybet+acikf\\/o5LqHqgE1r2hSxjD+N9ccnDJYGa+MOd3GyLo2exD0TA5ZGEDKsuHvaM2SeLbGWtNu81k4fasqOAtudOV467df94nYzDGwEu24ehoL0E8WgHXrTql+DMlQXssYZtEPXvH6\\/MMCLidzC5tObNwX1oXz1O4zF+quKlwMXQxOMgXvtu7IxVxaYsB0mmmoBi4K5HHIROyUwfXTHY7+tyubX8JJI5QjAZb5PAax16KBw4oRJMWQ47LvYm9u28HhLd9zcY5Y\\/MWfxXQUOm+ntqR2Z7DKOPatpYtnMzzbSZZvkDSJ\\/slfqFuBX33EWq8lMnwUwClump+edVVEr1XaBHmd43wzIPeN7VxFmu\\/3t2Las9csN8MDLSpP336C1KWWCOHEcPzQ1JRD+NPYPDEX823MoDEoVX21gcBvzpSJcq6\\/cQSw09ZUqVgAyoaLqtpbzG6HcEpgd\\/baDG7hlQyH7LLyhlWbNEPKmJgHblbHTepiDqrm4dc2QjLwwkWa\\/AnXm3Xt1vtEpRpf3nF9lxg0MmTHvk77nPDXyIx5xRz9GGrHkIMiUtghKQjAuohSYSMqeDHRC5G5ZFORFtkGmWZzcGI\\/sCWH1RJI7i9ZtQVRBhvcSYSs3eM7aafoqtDT6H5BCIImIUnFQHPA2gsq\\/JmryxFRq5SnNeK2fjN5N+hyCwzhxKDBYDBQ9vGmCpxwhQD14LFa9NS0TGEr55oiSqXFMwlrgHSP5q90QC6c\\/A0HJ7jK4BsqFpoegc9ItDMdpd\\/FJK2bX2hzsQCewu0\\/l82Lvkj81ciXwLzeyWjbPicg8uzlgWYWetwgeuiEYvZPSRwHvtrKYld19aq6EFyP6c\\/oVDVNp0qYF\\/5gnGFLGKlHyl951lWwMAyuGWxpPWabU\\/yJC8GTA8Hm0RzRfvE1Chv2rGJPIm7y5UER5x0ChSdwnxhL+CZaSoh\\/jXNq8yQh\\/Oiq0ZA32rNxUfYukh9s9kf7RHFV3lDUeCtd4ZMVKu2EQOgIfMBnFBC5WNZrFtPZxGGHz5yv99+aQ2WpqWBiANJn6VTbJQnlME\\/BC\\/TKNK4KQasKNyqhVS11JCPpdT5Rs6+fj3Q5B2GTEQcHjzbdxvkHOFM9NEjF9y63kcMrL88JGkVH6SiDiCHA1HuS52gAeyi\\/O3RdkowMvQN7Zs\\/KhORSZGhKLnZrhvgzkGNmbjaCPdwniMUppMAsm2wgn1nPamay3q3Os\\/\\/5MK4FjWYCjtB54OMUkc1HAZwq9VSt0lJ3E1H5skjIr2c3QmFA4VQVeFHJ83X6lJmC1Fs5vYKEo0NafsBChzyHG+44F\\/yW7WHJvAE87GJGah6HdIzG1B6VYGt10vn05hXBZM4Iw5NBkFslPWldrs33FgR4O+GU1xhnqIQD6mXwGZjTs3qhOin3FPQfqAF3jAZKytnhfIqR4mAbTAhR82vNZ4Ka1CW1uXTT3JD6deHyIMwkE8yj50yKCLxLTnsQnoDeMrnZLMT\\/qyWv4o20zgFKJ29qEUhImIBjYkPpZalk8TZllRAkW\\/UXvZ518A+OsfzBjeXWJU6Hq+3vmnVjNWMe9+sYRWQsWauJCly2hh2YoqRD6A3ls67Vo0sOS8EzY9oDAHN+fAjGAhTrWQ6q+Mcn1T34+zL5XmE73pJZD1ievutjdXGk8XYPOdEhObGsw2S9VCTWXPyRbKDSuCxRZGlfG9evVU6TR0batFDRdmteNexQ9o9IkzTt0M2hnI7KCw\\/vXNu1McBrt40+hWBG5tzFbTS29eM0vgyAD6O92mTf\\/0jS2A9+biViK3V5CgMRt4i2+K3K1IE0hyhKCjiN1TDcdqIF2FnleiK\\/2FVUQbWU9WIIV4vxBC+xTLSv5EJpvUicBybVhv3SN+TaXD0RrGu\\/UvYvCcOTsdV5WCZaG6YsjLdsnaRYejFxyHTTnnM\\/0yQ\\/TWjsUZBL6mhlTPoUDFjpizNc23FFLv5H2CpKReu\\/hySS28YUBHjUia6UtVJ8PO2O+BJUiZHdfIOaGkejGvPi6w0zNiIHzxDXpRNHYNk+MKW0RkAF\\/Zodvn7jR1fnIcbwO1jo1HHkARhkvwv6W4TR8UFdwq9JQUw0gy1Y0wqA9SjH08kz1yIwbc9dmSdpYblSVWojDxaDQHox2k4irx0iOoHSNEP88MeGkLuo5Dt7Ae8KbUUn0xeG2ecF02KlvsoXU2jTCV1tzI3mURS4516S3I6I2c5SsbQ2BdOVBLGVFgU7sM24nDSQ4GNECKGgwBrem86ioEhtf\\/u5IpvVJD4qHrou37HE8zumuhKq863GXDBWidR85ElzaQTiXhx6+PZ4USMrf4tANQIxngwDT6WePQcFe2eUYaFQymLpEKeM3uIqyiE2\\/Ll1RvNnIunFP14euNdZMnuzX7VxdMDqC798xhc\\/NkS+dp7FiUZKXR7JNt2sy95jaejRcYk\\/+9SztGgkQ4f3aK4tDF6o\\/T+ntnJrHYYHKPk9+fDW5GcsfDULjMeYIQfF915+9mTIulXwb0juuFIT3PAHSk27h9hPHS3Jg+M7RXK7SuB1ERLlp\\/jEAiiLMNVJF3XQD\\/Fs+wjKeGM2HlL\\/9XO7WHq2ipiqG5eY4ZKJ2TDu7qMVcDIodjAU1QCxmRiWJsxBhi+sg6ZlfxbpRQ32awSraHMnN+4EdmOgO9xdbHQSGsfGbH0SgTFfCuFlsvBNStzm7erjETjRSe4BAuRMODl\\/y1nMFj79OuoOyJYCUfGIkpdRnVOX8q3364FkmYMiyER7+VxfOkboeVRpNSTSq2xWal2L5V5+CKxv25Pl5TeanvzfLM1UVmMUKBCMolxee8vNiGXUcEO53Zy3IVR7MiGwbwwAC75pLws0lqbKofCq4QreESlxjd6c\\/xue9Bkn47mQo27rFAJ9H2Ed\\/1AP29bstj8cgyy0of\\/FgAhaFC7d9j5QTJRTNVQqJHR3JJCbbCTbiGFVUQBVpwZs5FQxD6n29phgxGu+g0Tl2TsupG3w2EgYbMIZV9pVe3k\\/YDp6uUBznFIL\\/lN15CTGLYUfRt9W8nt+ea8D+L0K87Yt\\/srErC9zxzAu0mW23dsm+fdFuACcOBypnpDT\\/sxT7RHRVGlQS39xKYqUBWK9A2GGB9NKm3n\\/TWJIqmxRTrIgWlGgIZllS7j2PtcXpLrylhyULwTbA\\/0Lng5vQFDQUjlPCBUGLQ8jQXZk39RYBzuSKXTlICCwVlbc9ADBGaPukL+3HX4Ww8jZizfjzzBzXXXdFcpk5bSyGCBI91QkLcja08YGFFf\\/20HLTw0IXQIlej0zO0JzfkYaqaPOE2d08hwtniy1lM7966gAHc92y1R4lNjI61KMGEmZ2ojKCjFiMNC3dt9JH2\\/CmB3Kr34p2eBNNPH4tJn1QEt4y\\/mkPFLpSbkR2P5mfl5lEDnL0EU6Eh+mD2jzPqF7qg93+nukWeUdyu0YfeqBrxK0mA6eFu0eyCNqboQBFPoCqDP+3+UkP14xxPzxqYCZTMVI5nDmgWJSP6WJd6cVesLzYnRBDr8Lua7j1gJjm+5Sh6NZid9GOsB0d+EkiCJyzKpCjegPEAkDqWvQwH7V\\/TZGot\\/1s9LG\\/eaWZGNBeg4HuloUV75LcdCLwCxIkUgCTyjSx6mP+nn6pD\\/RlOwDyYFsu1XxbOK\\/5kRfhsy\\/zhch5Ih+0w8sFn4izTe2hWJMANa84AzWWXYwQXCqXjLcbEDtW4VBFXqdRR\\/5Klr+4m8DSHSQv8V1tIqoMQYX6l6vpEb4uj\\/Q1XGrgKY\\/7VT9pu45I5DgccvAq4DS4YwS97W0LWyyJnKiBWg5kJLBkJhRqMZjKRUPoyi+IILdigOmZflakIo7NtbxrJJj0s97KlhScB9ZWt99nGNj8Ve2q69aGnfRboOa23YJV3n8TboleMSA7WF\\/bcVZq7HQfAl9eWGJY\\/GdSF\\/kBNYMuCrxUZXeWaqkOpAxOIPSSXzFgaM3fw1s19vMOuw\\/eUS6r3OtWR2TdgVr4ONm2ZH3YYb1CJu22DxEYi9VaE1vhDeK37i+2SPFCBmjVQz\\/XLRmCHy\\/zeGVY4ooNNi2NgZz3+MFyYbfrNTK4H49GOvwCbboIdbL1IPjsHVaAKfcZCeVgwXLf2PwnRFYFCgvh0yVzuqSb5YKZJ7PAmE3QEkSmdAWdOMqb6yjLv0avIDg1L2ip0IhrvZXQi6eS7b\\/YByy0OD61pUtTXyICxsaLh1dczGepyfs+4sw6TnMpf9SWuGl8gOLz4sTFShTnj1MgMhvZZSdNumI7ciEACgIku+Q+t2AVx6XPt0KcmWbAxK65arWgKIua6Zq7acQb9i\\/dc6mEm7Zh61meEC4KFoIg1qgWZYkCRFkUCVPEBWWz92BnM6oEa9USX1rAqMbbuH3tGauNFbtHridZ7TlPSEmjOqe7mlbrCb5420krhulYrTVK6ov3eR+zRwHqJ34HJ\\/D2Pux0wxIVpA0WffctWHjRJBcWrK7xlkvcxxHGJP1zWqYGBhkJK9kydvvvz2f+z1hL6AsT7lrxWDkpY5J+TihkyZdAHWPCm3GTsr+KvsCBs0I47i41sDdUZcfzBX8+36qyxAttG2Bd8HhEWpP8Lfsm0epsHrVCbsa1rBDXZGX+a+L0rET6RaFksDkhJmmTEv1yV2OezYhK22\\/bt5glNrWcvqwOAuEkfvn5wHWcYPMr6pgVKsD2B1wGy\\/w3bX+4VELELO7OfamMl4LlYfOSu2V5Kf3Y3R\\/Zr4YqM2FNZpxm7fEIUiuPrcfo5oL9IX7Qv9Y\\/wXsklPqzxdWqOiPxa+bbXcCcK+9FnEvhK52498PYL82b54n2KupEnQVtAa4eu92irJEocuDjvTiq+0wxYLHouEOpH0\\/Yxw0Y7S8dGqR24mxdyTsGdunC81f2PI2zUsez8ZJmnJWq9V8bVSXUZgn2zb4fJtjJTCQPXvvaTgI6\\/CKzQjpI2cZODAF\\/H4aPe9TUUrsWYvIEi8PwU3bv2dCXgBlnC33xK0CGhVvrdU1GGFtuOlntoS\\/\\/kvCSUysgKEojnHqk1hbntYE90jyAmEQrxLsKxv7Md\\/lmDVJ\\/cu7Igc7fhnuzWUeDHVoOlaJi177aX6YtMjLgPtLeYjnspvUxNnvRMmFbQKa1VFxGbzAfgVikyxFw6TYxwBpOnHE4Bed5hHhikSbUNjiLJhDyhuCP7ktK6V\\/9K9T70q3HbGBEq7jc2Hs3qLIdoVflY69yUn9OK+LjttW4mql+g3RbaVYmd5Urd+ZPdbcKvKVsbcKfH8A5D1GxpWpVbnT2K6KSEofZE93g5ldTUkiCPEWuZxgoCmxsbJb8wswrrMLQG\\/1CgSRtc5C2jO5raucB7uRB3u2+48oJiq0\\/iirZSfXk8BJI9QlAdTDAdTybAvc2NNHAomJhSd7ECdr3dbo9YDjqns\\/SeIgKRjAndzS7QQ5QnN9Fb0SKkIesO\\/m7ZQKEHWNEZXomCpMeGiZ\\/WHGuLUsRuZ5XHgiqYgYnJ7hInOWimpgdXZr7sCHB0LFpBYeu1115A6An7I1dWUcczP216h8tnfVC9v+1b3eFcqcLu\\/A+sNH0nS0frNqlaY\\/s0wNlJv4vNSx8TOSohpkZINwnJAdll\\/eAFd\\/TeLIrcrezB2PnTaM9Hn3BBR9GnliYpt1cOZgKHmmOQOq7h+ZW7TarRePvp2LzZ28Du+kIg9UiMSc6sIDZ1\\/tb70zNTpxpU0uGPOPwAmzv+vqcYuxsOJbE5sXE230sqozdaUs4Ps2Z3iWBPTrsf8HLZvZOLXlDzjkOXHF8LxvbKKv9o7QXzjMj8otb9PseXmAA9r9scKTrYASKFPDem\\/ZedVruKp1gO9mXkjEKhv908l31A+MAjjcM6ModK2iFZz4DJYFHhWY9+avUuJA0gVR49I6v+Nv87tr9JjqTCTAs+PI+0jsRY0bMMOZbFiuZauoV9VNryZX8kckyL\\/jAnHiirQW\\/jqG+ukzud7T3QYA87KUC5NXaXg\\/AaBRQJZZkcz1sdmlC32tHjIIhHiog8\\/4VVvCFO5wn7btXalSDIWxZThyIDjbQbfCtHbz5yqxzfVyw\\/yAMvioVyK52xOiVskHmcQ9HTszqomEG\\/YCE\\/yW3qYS4IsXVha5jKfG65z\\/stBjWxlBR+5jFafs3xbvPrcX2qeQ3GGPFHl92cT\\/9A21t1BOyxzmjC0Jxz7L4crQ+v8\\/QKWUzoOTNON6Ut\\/GTLaSdq4QicPtJjRhVvh+McGaRuC8sFPtKLN8qH0e9c0\\/CzvWKqHOgYNo\\/0v7vhCmu4mMFLDypqvlQys988G\\/VgZlRNVA1xA+DLWZNJtbtycpS8EGeO25SxXv8d4C+tmOSchHuGeZtoAM3FEnPiQcMR\\/TVsRKpAMC9trqX9pSLKxt9mG+Qyp3XIg10klcJZ5Gf5vzpWXRpJiGnn0dTyArKqMgFPQcnf2uguwN+LqS29zTR0DwIVS6lYfZ8V7nNxoLC0\\/jwxgreDGaOHYdeh64yq8bDHcO0PDAzUuT2tph+Suc1qon0dYlavsPsE558FwO4RAyoKkXjF1mFGSXG9Cv0fGjp25c3E\\/FMMkrHbXjVusDNb20yNNkp0AzNlJC8XWrBW0cQKQKssu7Eoh+q9N0ToQMI+Q9NsXdr6uUJRKnIXvLajCahDQCbPhCYEs\\/DPYX0sEElTSQx7\\/1UcxCRheI+4IXzB4xKlXKp3TAifXTTdK4ky5hbbFL1tcKBM\\/BMLL9zWewH9kDFJKKLBC0PQ\\/CjJNUSyCr8SNF6eorDzY2CxuyCynRrYn1z\\/RJg\\/5KuJ4bx0LnJiFiLJEh8P\\/IQ+AAI2IOjJx65j8tMRDwRf7UWGI0mXbDzGQmv4fiHpNBdgZR5xvNkodPc\\/pQ2t0EZzkm97YgIfEser0G+m1nyF0AWviK4sajClcLApdvzr1+kyiR3GoCH9OD1tbOlyYXpEiaSgGZ3clm2KgAi0nuOmk4phYt835Od+rVGI1F9QMiHJxhKeEFYE22ozUR\\/4OdzlHUMqZBh3aUpitXSdEJk\\/eq7ETgwCNpMStVM6629AKTzzKWi13qUifstejI53yb+UizTBBXpWcMVPyuhjMccKkx1Rv1K2FRIh0kcOUGRQI3azFSLPRUljMXzfvxvSrroFPFlH9AVI8x\\/gSBjKOCgvdlGykeIS0rrk\\/hRq1tSVzpjl9RMyV2eFLPyxSX5drILZjz9exqSdvE+VEJRToEJKm1YvvTdsD17QV+0sAzke4aKrkC5nlw7wYzIgNbaxHWLXhcFSD1\\/KHt\\/UT2JV38LY1JvMBSkTZq20bgpMkUaknkXgJR3AtCqb8EPx4dkfaWAXjrXAW1Zyxj2uLUd4mPBVyFenctad6PHo1CYW9Vt31pbOM5N8R+XVOQOmwxAAGiWC7GhIMDz7U3KRCOx9c6X6BhCcdRbXurTc5xbNwm9QDwSF9yA8lQQTL4+s1BrWJ0SbTSrNzC2t4UZq3jtwjB9EGY9TeK8VcKfXncvbx2zK3cejt+7322wqMI70cn8f34resSsZV31OI7gviR2pGsNd1y3Cw2Ep\\/ikL0R5ELxSTl5dJPZcYGcr34ZyTzI\\/J3w7G+AWB60OgkWyXy6irgjDLS\\/XMrIEVjbOFmeb+gg7TDdPYmcgexFYbsQIIE6narI7ANn6z+fJ4zbOw3X5fkQx98H7iDrgqbun3ntzAsQLKZK8iJpgTzJDbPN50o\\/QlGGnOtiru8R\\/92FW17ksN0TiTiBVRgrcngeWuYU3DFySMn\\/TOjPxkm\\/KjUJlikbRb6kods35WNT2x8GwgEb8E0CMRqHuhdpYKFEusJ2Z+UbvQsQ391Ql1jqJEDF3aiimiUO5vOBEUc+hrMphcJrRR0n2ojQJOH5\\/uBiYURpN\\/Xs9qCOf1ZbFEC1K63vDHsklkCYT26qYho0USWQTjIe1gLM6QQ\\/+eyL8U3jikta+G094VOWHK6Lu7znwlpTD+DK704XhI6hw7aWB2wsNh86Bo7gVthtYdfmaC\\/uN6+6fkNvIkUXZQ9kBUnBohRAdk5NZ+gqqhaD1ddURpERfslBw1y7EEJXYc\\/fsJBY8WlkcySZVEMIySjxr20RkO+hQw0Ei5NOnVJWpjMfJfK\\/SbdO0iGqdx2Et3Guy\\/iV5Y72vAfJcdBGCF012Z7zHhxXXxknkyHQaJrkkTP3Ei2dFvD5a6fHbzp8HxpYAReaCcmdBl9kyRIRnfqElg7Xib9K9L+ddVqKVloQeGKytnvmw+LM42VHTZAazwsT6UiFC9wWlYDv5W6xgcwf74qQdodFCZ+LDc+RBU8VF0srD2lROMbzqcRbU6dr2dLu\\/T1\\/vuNibIQMNZcKXTZpcrvXDJgNzrTw8BdfTuw8PK18uAUfC1H45fZWMXVgAOO9K9K1QeleW2JwFJWzB1jNE\\/e8bsEaHa8oY5i9pVcDDJkuKgPj\\/dS\\/oFmzYP5cUyX3DjU3crE\\/ivPPsYMm7uiE2qQKhpFutsYh4FUxgFOAAz40RCUMjXNTXyHKYB2lbVTfHMqYWt2A337Dpin4wJB7yKffZ4AQ1b\\/tW\\/+Bcf84iFpzHD0v43EcOInB6bnrsIR\\/i+VYswLol0mHGdw2XCsyJtTorClp0Uj2SXxRhRipI5RZiZRKP8ZSOwjqXeop0j4TZr2S1PFrbNrLHvXRmA3orgnJMxhu8y5ivGDYHlCuE0Xh2TZp+MaQHVuuvuKmZOLr0QrnUFUg1TuEL0fe5QGuSQS3fAn8MX9n9Ec42TA0W2EmNSJqx43hXBXoHHpUVrkJhVXRWchqO5XfTplZh7GqjivSfoqJqWTSrQC6b+q+zjx+4Ku9LLbNpbi77fYS\\/Vr5CVnZJM1cl\\/SF7nGSSN81Xs5NdjIWl4K4d\\/YzHYVoDNsFS1UHPgNHk3AW1c2GCfKXZn3997euZB9MExImHumE8m6+PchCVmQ7WubiAIgn66qmKiPXQJCO4v0X3PvfIrFHz\\/KmHsmU8vB8Mdt0iBC5o0U5SdvvKZIL1lSsMOftsfUd3rxX7ugPjkGXWrB\\/Y\\/or0I3+wr8PoQJpgdghWK05TZMv0lwlwa7\\/T2yJL3q9fkDe\\/OVCR+TIn1l\\/YZYsYGN4U0OP8l2YyhcPZUd12AWwVyR2BGM\\/n8NpJxFBLMPERMSQ\\/Up1xLkgm0aK4HWbTWKbtFPDDX+FUelAw6oQvrGtfajDxmgOwcCi0L+9zX2I4gCCuOMmlEestGk3eLwjVfFeaFHftA4AwDYgRvJy9SUmha3RCxqS5JQng\\/DuqCN4HwpQIwx3VFDm4R3H7o1wyr1SIBCh5YI+aQtnb+lKkul4yb+SKsPPgCaRcegNWHJsVQRzv09p\\/I6az9RWq5xZTXAgGH73psvQGlQYR0\\/EPw+UHDT89rTdplHePXU\\/8lekfUCkPn1VGoBqGidw6tuBpYYHmWxvAaxMwTO5\\/Vd\\/aWJIRJs2\\/Mwou6qSHfoWp9iuCjENWkdKGzpC6McjJ3S4qvRgaBJ\\/FjqRYRnsKXLLjC1J9hyHyBC4k04LqXQvFscyCX7BbOHLi0+EP68lm4xRjKsPqGNn4josGX3ZcCYK9wRSAqhDnGEfj5QlHXkr9o\\/LmVXDqGZeGxcj0LxrWplqqF4PDEiZceQfZgoz3sccdWoEPdLWPOo0cgl1ihh88hGapzuzMHinEMb0MzPYAcH8HWHnLhFFwVVLIeaCpHXc5P26gya8vQiG+9BiGzVxqIkz6o616Am8ruVJplByHhnSoFTuJmQSCxlI2hXXHD4iKJGbuykT2BCW8bI\\/L8PYPU5CjBy8KTgJDmOXfcxC7Q3oVJ4k3j+jQuj6KljySvAubWbkbvR8Rzx\\/\\/J12e2VZVi6IvmnDaPxgQSrVcFK6\\/ZQ9G2xh6SRCsUcx8tAGKbrZMWipsfdhldxvpFvF0erQhHVfrj\\/zZTmRTLqNeBJgVxwyn7f+nF2rYzob\\/Bn73msy6\\/oxC2UXAJ28DP3DV7JKXHXl2GuiCGSAadhaTTk5ApnDJgn50tGCxBuwY+qZ4bakjKpIujtPc+ATB+2dlXA4WJFaFw\\/bJVxYhTDy3mohm+48h2+5JB1IfgQTgKIAymUORTexCXrVV6I8Hx1ffzm6OAv1bSIoJw0uc7aMxpBxdcdEQhBKimrehxiuDXeNqnJzDUXf+Bau7SIXs8hIRowwl2a7S0WFfImDGDfEndhTZucXDYW52KxjZ+toh\\/KpjagiDUGF\\/mjumRf8Xgl8DIfI2srMIRrNLZxSK+h3lHbPjXn+zLzhAqA7QTNhm8359kB\\/NJd6KjTzwUd3Zg\\/BLDAkfV0It7Oh6ytG+BQ7tygvVN+a78XliLSsaH8IA74ueyFVQd3+uhRZ9jX9AtRt5jwp1AIVZuokyrfAnsd0OSagec6wMXbe7xtQoW2WMMaLyHroWNZ4dr7yuQzha3Ymbo8LASx\\/5XkNMzcW3y+2SxIPt\\/ZQ942A\\/KkighhHttHRkst2D8gG4aX6F46VaBlOfsZlFDX8XTaBNSJBwHhkDXo8vgjn12qDoKTJYhyiRN12QEPrGYO\\/Q5f7QyEn5O7i3vqu4o4E8cobxmQ8TunW7CLVxhdL9DOZbURPDlT\\/ikp996pX8wTs52hCgxkfPsdhs5it5m+ipz+Qe8uCehzBFaAzqqNGIyS+CQ96bv4lHt0FW2sggI6XvMDSrPpe2l7t8D2eOz0hfLWvlX60kcUGhEJ5u+DeZC0Ad5FpQZWtqoCkvHQOquD0gCkbZP6+Pn9SUOJ4SZdVYvomwghMC6efQrj8+8k1N6dzITwNVAz\\/3g8ykzb4+EhYpBtF+dzaEAfRNYl2G4kdNHjzFLaS1h15EKFPiIp67zUIcfg1DWB3y5qkX\\/hccaatkml4\\/y8mUuwH8rm8P5kvBT1wblIJ5I13BhVdLEiyxFI+CbwX9NYAY82rp8i03qlyKvOO4kFj3fd7iyeR01zE0XuDX3I1nbgKXQM7+u5oF3ZBdyQw0gsZETwnjNOWG6E9EQqTEGcLreICVt8esYaI13vi+kd+0auxVwXrIPca0hlzPK1qhBb1Um5wxvmje+qQkBYgYJDGNLn+5qdH7POmHfR7u3Vs5oqFUfG3\\/T1qHfIP95UjT5++rhCHm5S9NJWU2LAxDteN\\/KuMmWWIKdUtEIMbHzBBpn5RYV1Bw68yMj31U5Flkpg1tpE8yxmUM3cNwj1aNkHkqkv\\/td4piL2jgQs9cMvcAP4DMSZydwTSoDUP5CeoMWO5UjvkNbneX1QR1FYKk+qeRqlf6FcSwQBFfhyafmVslinuUGs4hC4RDnnaADeG8KOHV1SHQ\\/gL9Xxk\\/DnYNf9QbBQ5dWlGAwjrOfIIov49TRTmlc0bLMpUVXd1+\\/spjpjmsYkgIzSIV0H8tpPiWQ6SyKo1sfkOzgYwViJCAw0McWwpeaI6RIAMbDX6RU0t4UqlosekhfOgLVrnnUamTY9Yk5Vo\\/NBVf4ySb+zw54vcKC4uQbKJrwgY\\/qoPHczl\\/XC0BplXwz3XgxRMpHAP2GVZLwkdSSCi9Qxt4HHNt50I8MpWFDOywExicwGVdigMlCsOX4WlQW2l0ckOtcW1dJUilJ6RaabFMtEfd\\/hDdqjitnbUdlrcMaPkrpTOgJt+TVGbS9wWVTAe\\/mPLQx8G1Lhw+rHR6Tf3\\/H7mkURsloGGYYOEOFAgYPeiYvQwq6S5Kp5kxeGjtvpV7VGZ6OJJbWUpi6yq3HGlrW9kp66XfZ1cfb3MZp49gdVKn37wM45JmC1zBRBkY2FNS4lPdHpk6VUGtG5iFL5NLzDtrOOnXBbhEQGJTY0U6LjThqF2AxJlSeAHntu2uh9QWC\\/SzDCTg7NY\\/ZlP\\/1xSZc3lSMkN\\/EHuojiqqHa\\/Ggfz3DAVWovVCFQ\\/LrnjzZ0Rn5CWW+7PfNNy3+Jef5tb+HGK4g\\/OSy2lMrbHi6m0q5gxGjAjSXve8ISvPov6jBD415DHZgdsYhjGvBe4aNWa2uaNC8EhwgAefouiu1nJ1+AW9RZ16Rb0GjbwbfVIEkCwxnlZfucsTGJfvt15fSn5yPXn5vFLQP8bBLGhNZbKtGvkJU3ZztiDjQg0jtz3NgT826QTo3PcFEJiSJPGdyGWiDnXNZlqLiZDS8OBS4TTZ2M9b+kCPnLZA+aWK9LTVGE1\\/DZpA1rXhr+t6Q+j4n97Sa3xO6yd3NDuSVyVGty08hLjQmFRO1T7PP4NFGcu1gT5beykkDmKez+tU9pbWPjIS131dsPDGrd0r5NLtEG8apnq25\\/xc0vcY1XxAxVqiCSUglirOtCj5LBCBoQYH55xAMw607kIgL0P7+3EuPjRBm8BM7\\/RFuhwFFzVquUFzdO9iL0YdTYkqhBHOYEDbf5j62R5t0htTypEfouXLzcUBDJR6E8EfuwxwDMoqOZ7T1f\\/wxp3Qhycqn8vgFKINEP7EsOcYGL2MTLV6mtWrX8mpT1sq0LO7wxAFOZnvVTAZ4Lqbd5bBtYbqG+ESRJnkuAkzTx6HmKEjeHbvG0XmZbKogy7L3lLIaCXtEd8zMNud4meANnYpINWHlRSYn1rlH66ntSBcTBjlRFPTf3PTkOOYydNE5ISGoHhdOSuDmB6i\\/C+G1DIYet\\/wOMuDeF2MfW\\/UGpLjIjLeic\\/NQ6Lu04dzNEK\\/+HJ82EgcJUzS8DIV16ILYIl5eDCOBPVYYVwy7AKEObVmIUGHiPMM5DjiG2\\/h1o7Zvhz5yXsdykhCCpjRfL4IYpJPk4oySinpXB+fABWOlCDpxLEwrW+7Cif7SFLm2Azsuqa8pxmGGEvLKjs11gz64EIVfOaDV6Ko4ThZkMugy2KyPSJaOtjQELTivvwb8zkX58yPyyltw5av7WxOZSTp5juEHWRGJ\\/WDd1sWWpGQhjWftrQAoYFeNTMx1s0Jaq\\/+v0czdBp3Aow\\/mQa8OuaiSN4jKAWnE6jQ2JwgeKgGmWST4EEoVOmKwiMxauTS3RQbu0hnBOaQR7FinCI30RaJ8NzfwBojkv7IcGrBc+vcQfT8vUNuuBFtdcFDHbM4zeGgX9aGmJV80zbQtXaR6q5FnhK5psdUm6EXD5lPPm28eyVjPToo8u\\/f4KvUEDfjV3mQo596u85Pit3zj87XMKUMO3mLPdauKUnUlteZSL2nbMGIaUOtniTcoiRd28DF\\/KcUvG3bHIDRtF6rVxa7jmOwu2ZzJFjrCf0R4282DEofkJbyNvPkhsHdsyL8A\\/IooDLppI8kNly03CJOZ5qw\\/OtSPB+kwJe56ge73dy94xc0O\\/grPCoC+7nh8VpuVl80lEuO8ekANwR7gAKFYYjjJsMij0DSmbdAtYpKzLpM3WmJSvXqf8sb5ZfDbT+ji7EHrxSbQkSdAGbELhBPiokjgy5g2cRsAd7FCbbpFKVOvapkCDfy5NRP3gMPz86e5i\\/FUS2zZjNA1wQd8A8IlJ4q4rD2rpKIIPNJ\\/XRSLhPgUCBqYeCiLGdPU6YQEn\\/pYZ3gkxKA73JD4dJspLlSKIw20YTcqWsGr16xfmkvZ4vn7wsJCoeH2hgBQOTVoiNpkle1UhfzztpcVTnnLhGGYUNYxJSKSHQzMvIqJ+8Xu2sjXEus6VUSMsT5HWMjo5IuUXdsuTvZ1sPdzNlrdDr4JJrISnBFvwkU9YBHcxbQVvshTF7jK4A81BIpb3c0g2pgqPX+mZ1HQe3T8oy\\/OB\\/RWbmqBJAEd4Z\\/hPKJ44oV\\/gILJV7Q+jqJDL+s5xF4TUUmFf3mbQFXXbv5SlQudoaSDN78f\\/47y0ZXgAE22oIF8GtX+E3qnYNIzl\\/2FveG7zLbap58xbKYY18bn7Rb+olme+\\/q8ECC9oJuWvd6AaAXHyh\\/m9v3ZLDMwKi7bSe6ApjuQQulsLZqdlLn\\/2v\\/K7Vv2KQXJSx\\/5F9q8TBABpK\\/Hqp8QfSjaoyXJvdclysDLXnJaR+UPEAdkUZo2mev7A8ZzRtcaUGwyF0JqYN+QMadzkNJcHAn7P3KnM9ivS365tDmBYSawYbAksC+yM\\/5c9ve8Iqk+ib2rnyWIYrhhGYIsOKLkrOFtaJXAiPH791xJ4MZqbbu2gWzO6ZzMh7VwLgS7INkPnhbT\\/RhcVCmoNiuMxghU\\/t7q3UcD3HYdNkepOPIJKep32eCmkTR7hj1peGW1TuM4zi+D8O8DhzlxPIat64YJhKIT7ON0mD3+jwiYyjOHDBOzCvllfLYpl\\/Sa943YvHO9NdLSrPNorjG8Cjkb5sx85WABYg2NmVQBP9xzTsbLRgL\\/asC59RELhmRu36429BGmShXNg\\/yHiKT\\/9+hl8toRQpfgzKCbfx3Z013fkWCxpvRVCl\\/VXxzqfkcRUkgfEZmkQskctWZVAPm9hiAU+GHE8hS8LuOaPWEJgNyQKFd3RCLGKs0ZJgHzlZdwERt6tneHidrRjbeT8TAmjKIiSmpZ5VfKKy9LljmHWYhaE2gXMk7DwH\\/6yokB0FnMPwGeZ7yzFuYi3BGSVE8rqrFcYszUy0MO4ljYuwiR2Hik7ImzAtTTmHQjsfOCnPx0hHCwU66oCBB17VvlJgyDRqbGpDhKMfUw4PHUoKHy7fvshSigbTEmt3Vp6heoFCm7TIENN6ExF1cT4EKsEoJ\\/0BUa4h83XZ6Lmh4XRPx3iKqQRR7KUNUJpsN7DB66VlNzIaRmzkC1ytN0\\/Z0uq8+lcJiLnO\\/v4+yIvQMC5RX3kzjI79Ut0l4ts\\/45X2LcoctLer4r125cxLHr\\/rio1ODgKl\\/fwCu7TVBsgmcq9v+mDNFj6dwsQis5xNKXnAxDaqqWgsx0Kzv1KgAKIx9ytma3d3EE+IkXL\\/T\\/i2p4NqAhNWR8IQ7AXMlAzncNktK3odbI6zaSokUhRj9wsCaX13PDKjXqBNlNv+39e\\/AiuTSJ3z0wv8OuBYWeJawMVvnPVsK8Y2yIacE\\/6Z6FnNG2Rd075VJSdo+zIMJMlsO7s8aoXutZnW5z\\/cncbEaF1jVGFsrPuRPnHyepHGvMLbZRpzkSfMiDC5yyNTIA7D\\/vGUXoEYBW4aBpupYlL9VrAXsSz9Xd27AdvoNI1607EnTqhqW0SLluHGRV4EOnofVPRZeLGehEKMoxjuQvHDEgfz+xtaLwveZDOU1VoOjtehHyPYzm70Kxe6GXfjfYleIwAnVYHctUHLHuNHa8i84lFg\\/LOXQJtCDPwiXRQNg6jBHZ9x6g2mze5fVKcmxqG\\/YpCfbz91KqDcBLwH3T416omp5oyCL+AsE3RodLMU3pBlsBAVB6BJurJdaZvUa1U4wXc1gzgfptS7ULHuNZpuTnRm1UQLunrEGtGOkUuxs6N2Ai+9VRaXOyQaEsUrNT8F7N9UvYCW5nU\\/Bkj9q3Fmt19b+7J\\/KMj6PiGtes9xbrO2c\\/36iy2RQnFyRjM\\/TLXVHOtXVyjnCTUiEvfBUKGx4lU6JW6HOmFbi+15\\/uuDkHr1atJY1s9rM1mzx9utCRbPo\\/YjP65SK9HjyKRroQsgVqVaO+ewuzIo1iXpkp2+al\\/b+nfCwjZBnstTzyvC3ef6lfU7cB3237Cs1e2bKuRufAaPXrx2zyWHI8an2b\\/pjnjaeLy7LJwc8DC5Iky\\/45BcRMzQ0sdE3ZPy5Z3RfqZF6T4pD8czFWI8vzjgfd4VfESndZsH5RnovIojtuo8rRmrVR+DrX9MzAtw0OEhygWO2aLVjTv8sam1IyZ4T65I5OYYO0klJ\\/KBU2kNIl0kxv3no7vRmoy2m0507TJFcZ1opwWnayd47leqi5b8F9kbCVSrVZiJUXvnUqPNAeekPkyDwpWgGAjayOLmPuEAZaP6ZcOanPcl7biEQp04UrvigKiL3lTCLX6xXruHe05ZJbbtNUcQbiGfHzHLTnGYM4nC0XATVn7wfsCkYeeRO\\/pqQ8smVgWS53n4IgElJS3AZbjcM24+tQoFgt9X7tKcZOhAK4RPP2izefxWiemt7l2\\/MNxUTFLdpLJVS39\\/CWpCH54lDI8NluvzRpphgPU+6NqZ1K4dYkXcMASo2DQ8JJY1aA5Kg52nTTGsFFZXNQgw4Bt6jImJ6zHwKtOQhF6gyOjcJNpilxgLzKPyTWI\\/D7fIjv\\/hRCx8oeEtgShc8ULhe2VgoXIbP5czhi3nHLCCaNCxbOhJQI85EU+\\/oOj\\/tutbZAnGIGShwDGiA+2YeTt3AJ2YUkHDqn1qPElT5jg3aRwNlmV31F3fmok0FSeS5jFpWyJP3ZbtrJT6NnAtAAsO2rUK9Vy3ihKzvXg3VVWLh4W\\/B2s+A7xixRkWe9NbfJ7oHXavByWKmsgYv3fwsvCRYenIbCDmkIrfV4oynlurbaKC+MJKCs7yjpc2hIEiny6SeeVR3nasQZEirp4cnmr9H76b6GzE4AiySMS7\\/fOWT5oQSLJhnHtxPeuIq2DPIF7c3\\/LJ9yTNL54aVGP+lCQe18d5RRjkJLgkZ4+BikOcbNv8huTagkjpl\\/uwdhEyStk6dAcCVq17if5klHN890kAApDjJcoH9YxLxtrLAsX43TTGPOcFjsEIDRjUHZRRCaJutzSL\\/hdixQL7dAIS27nBOcBU6UKHqTbZ6A0bSTdWkZ1P3Dy8342p\\/DzGiDdbLtswX9qwX6mK0Jf4K5BwzJez978KGq5R05C0IE2kSYDvGdG9XIT5R7FE6aQavdSajixJwpnUnQNDT8SCTGDv40Xt\\/k6QUNwwWhRcIdcXafu3l24RPuj2adV5ySIsNXAofoBaN0\\/2NBeDVXd4FhyUg2lyZANVyVRyQk+rZnFWLGGuYrUFLfM7\\/c66UA6EM\\/rALNnP4fKuD\\/Ob1ZXSo5ZASSpECXW9qR2gYhTP2sA1kU8SATCMlvOD4bChc2+dPJIfs9GoZuXbuojpAU0soTSfQzT0PZRF6IjPJ054pCSL3uiEIVp7TUlNKaEXK3OhzYQSCKGqHoxKMvT\\/7UZrluVMCWa9sgNowsPF6HTl6H6kuPBaaqZ5QufC3TBk\\/exCn0mPboHIMV1Ch+H4XhVZyKcBoL4Yujtb\\/\\/E64zcfDAn6fRBZ9HPaTG0YbeGMBtvHcO4rfMul0EvlE\\/mXB1qmwPusb1SdHrTzA5CtN3BTqutJtk0D4HJD595fikkKDmFjhRxK\\/wLuRvFkEHDz\\/R3uri8+iVsXMixljic6j6L95trcHm0mHvXgDb89aWLunYHtAXpc8tdgb\\/kZIVAsV+sHs8fAHrh8fLpPosWPkw2LFAnm+bt\\/fWb06VkcZ9oi68YLob7SjmQXTTmXeqmdDhSIZDZKHb6qCEVyLgm7TfGpFuh6sgikrue6ATuURxtJa1qCHqNc+8ErY+z84fOe\\/H96YGkyoGKJVTVgiaHgHLrp9OlYyMacHM57Q7YQZweqspittsMuJ8N1WCXsLaYj5IH9h6IGsyxHKj02AazDugt\\/Kkev\\/mMP2T1FklgdhyYRyvjC8oJc8yWAGkLhLB4UmaNKxbkoB8fe00MTAtQWHh0KE5iynvdJnn1oYrwaQZT6kUAf\\/6Pqcvd90S\\/yLW+03bqqwygZKmKLivNbdJcbFmfIu7caQQ06eCYIARbOzQAjtyWPFmmaBnKJF13ifkc84UXJhjKgw4\\/6K64bM1\\/jFXMd7kNv8bgQddTEk9pRft4mmlpTAAhZjxEVSsGeSGv1qe5whR0B\\/4Qo3xxT1yoFJrEuug+hn84FSH0\\/aTsJ4WqTQdYsdtLE0KL2wKjjJYNSBmt8F9CJhCnyFOhe59rb+7LRjgT0FZ4g24nkhJTC0AFjGotIRf+NAbugg010a8FtlHunVoLyxp9wyMcElGAIumvH33mjkRe7J2jC5KFvcNRcxtBiQ\\/ho9oTlGO6GTiRu9QdJe5S2ahXQ1vbmnSdzd9bNYUIGNU4gK7OD230k9YROdHdH7ShbYX6nNQ8WQMfs3\\/i8pJmZf2GA2N+CRXIVpUKLjQvLkXQ8PI2YwRZXh69uQRyD4rgQcS\\/Yr4\\/3CZiz8xMQctTauf0W0bXJNB6eZ29O54mlxC7irVqi0hJ2W0O2w94iXij8Fj50gyz2XNNCQ6uomkRGYjguuAjAiq6mvhKZANEV3v1N24KVLNzgdGOtxz2gtE+LJLffuZztdDQocElaKNEgQcm2OiWCy2kQZPcC5dNW9IY5SlOrB3\\/IXIB\\/DnpIfP6v4bdUrdHO5IaQYGJ6FF4f7GaLBYGSTnRdtFwKOuzlRllKJUceqRXrM0P4FNb6BU5uHDzk+WKend\\/cflv+w5n9WuSxhtKCvMzDeGyJq\\/3VSGKta3fjd0OdNmhhg\\/BrStOruIsTOUBpl1sjLOOybIuUf5j47AhPEF7DyPTgYTKy8g+np00cbdhIQW2YG4wRc9b2z719afxgwi6Qf9V54b3aMBzWL0quS43aqxdYjKa\\/seriBlwuImV3FydqsVHw9hMua83IePooj4ccO1Ew34JR\\/XaH9y2YiG0Cq8Y6uBL0vuSJD6qTJm0XlAQt+1w\\/uawjAy\\/+hgpMJWVHlHFN3lNsZIKfKPTBbXDs1IBCwWXDz676s377BDtBF1FX4rSCPg8xa6PjDGAZPwk8j0K6PMXI1E2SpPz3cBxUnsypOrY4RixmnnUFLPAqgF\\/V1Bmneq3kJHQWJneC0jIXe4WwYwU8Ii6qP4oE8OWbwqKmu0o3zidAeTsj8UHcBZU4\\/2h\\/HaH03pJSwPNy1so67FaGZQ3rjAwPT\\/9Az1kNqZxMOMCHw+OhmMWuZhu567cLNvav3RpKiKNaFdqtrL1EYC5ufuCvTB0SAqX8YxSw8fpuOG9WwAtt3+u4YFLnoR55bRuNQrnkHonMuI+diEWENtiWbOsQHatvfmBnBRuv4yOHk1S2yEMAbQm3Xx6eU7p0r3SGqsi1ocuF7fEXCqf1ff0JaDQlskfrAh6vZ1lB1kJms9kbh+IYcgnRx+N8Yu8txCcxtfCt9zkla99\\/1lHSM0ay87X\\/T0dThc3wMroW5TuMqFtzSLPBMfmxzAcFySx0LDkQRVjsjBEFZgLSkcmqZQ8bIoeSLUdDgWzo42C+3gZiMqo0AL9YPllSYd7lEN2GhsndGDbrC3dnopikg3ANBn3KgDu+Gm0RgNMAeNAacNNQm5ATJ78+UWrI+MLxDhmsmL3OjS4HgtEEztiCQ\\/4bJEN5bFDrcL69gSruwosZYI4ScQIRI9luBD1sA5pibnbEEXB0hglePnoi8kTMw38MmoxDfwN57TE+bAJnIoDjKWkcbG49TA3+3kzl6E8XyPTGX5z5cX\\/GSXWBqQUqVcO7vjwqawU\\/NmtAitvLk4iZfZxpSr8ealP8BnPbTDb\\/uKAGkbZ6anGpbSXrP3gMcJ+klMqSxojEwFwvRniSlrP2tEmjm9Mt8DmHip8zWSSlxXB8r80CtOV2qgX893tl+Cq9QdUays+wBLX0khXiNmsrF5yQML3qt6tnkLqJmaP1sk6M+NNqdY7GH0\\/05T3HjP9trJuE\\/HxD+mtvzYq\\/RL\\/WvEkNGwoZ17FjH5ffNA55347XQQYRoJcRI+06bvcYurDd3F3vEfV3o6c\\/8CHkhEevy2Q0b2m+9yXRVo88kGMJfCNRF\\/MtBAUAmJnF\\/efAGO6e5YVz\\/W5COOk2tiTz3nU6GFdR\\/bLrrvr9Qfg\\/YxoHcylT+b7hssz3YBVHP4U\\/LKRiVh66Qct0CjgXYJjvqIhMh8QRpSioT39a0\\/eoLnY2\\/h2fsca5zmMseOXHgXCg6BwK\\/1DWf27+RedFZpek99tRKYwoAFkBixQ7brwmGqZuFXAOkyBJD1oX9htjVt495NPKaT3ncBrWRN\\/HAlYedS9NCTOkY+fHxM\\/XJTSAYFS0Tbc4vJZMPOmXt821Uc9GWuOus5F2r+78xzcYsqFQQMI8jdZTp38ASkt2N5JNGBGehN+Vp8jbLcpGSlclLDkP9cy2t+un9grEsfjQUoZsyYw+lw+f3EKriLg1iRQrylyUoIEpgV8LEgy9wYe8y6+0+RbuSorB4UExbMk\\/L8b6HSFDdIPtKpUi8Xhzd0nD0oZgT7TSxJRnQpLyqOKlHQdvvAbVhTBhyLfCVRQuiG0pNrfuzUKLNEBOWzgtVt7avg8ZX10+zT2p2WPzddOboeqBXGi5a2UNmIz5IocGFTDCSRvbTYrzzjrtF8GNmxsf\\/JKTfUj+VhVaInMzQv\\/Js3FEUW0pGNQhZB9+\\/Sn2MVtMopjAaedi6ZgmPATnILVdM\\/Divc9mh6Kpf3lsV8mReIO\\/bhQlNDRtQtmfL14A+drkbFIn678FsmJjDdsAOvT\\/85czelhxYeMYW\\/SRB8hDXKSTeUgPVssmSGI+AT+WrtEgeTC99hAMtDWxQ\\/iTsA38WXxQpoky3jBSoro5tm2E1d1Vr66NBnyEiMAqVGrzLKmZKWiwXlgmzqGxwgDz7boOdDgnfp2501NP0FQq0slAF0mK1wNnXP91wjzZ7FgUL2boqTwjr\\/blsskZJNTeXjTIi0W5yVNIMPJVijpMRK5sOPP0be5kq2v7pCsh+TajtWxt8Xvkajc\\/GWiKUkYoRvblODHqUEOJ5flA+nVavvUvBCcgs\\/4sz8WhhWVnSfTlyOlJZRr6WbT2fnpM3mWCURkIL8XFq243O1wMxJRFdhr2YkKLFmPaAAMMpI5pVvVSMUtCjV0mpDAUEYty9KahD\\/Hhdfwv7ft+s4Kx0fVDEKAufYfl+a1PucePtYwxNWWLXnIpbt5Kp\\/\\/QSCBz+vjGxVJMVCUBb2RLSeP8UT1WrJPjtEULijdcrLg5cIJZi8QP5Cs1nDMDrkpoAJFLYvZHmXBlqNXkHJXun3uGfpLUKTZFrkrh+ZiGb9VS5CiaWYYI3wDrMV9yPJWNV\\/xiPb5er+rZol3crHw3zTdyhthbIHdb9cTKDAOqM2SQY9rogukjnaClqjU5DSLkbGbWKHQqs1UsNlpLfSDJgHv7TN27Fhoo1dM4lUATlx26B\\/NUNGkVFXWI1fg3DH78q8sRVGWG\\/3Nw8Il\\/l3jJS8gfvv\\/169tcuhcEsSjCllljn0a0Utiz1hYgVr93N8YdWTXTXNi1+xwEDkHRziJcQAm4uNCxYvYYB1S4HfNHl93cUpOi97DHup3OTOrJwZyJzdwkzfVQGPHCAVEXeIV5HMZoxXcsLBf\\/UZjPHjEDSooQqYU1tfuiSfl9TdO4UqIYsYo8sI54qTFHpuJdJffTgL84yg\\/QxLVFmaZow781MGiosv8jyUfqx5ulboQ1mFUnvacS8V3Qh5z37tKugvPkWsejKTvobJCSjXzPMzhspcJJZENmbLaO2K96tWIoiuQzN1v4SGL7i8\\/ypYVmENkjyvybf2NAcrinwTKBvizoVN\\/NDuoGGO7fmdcFRYNvzdwGJTuUN\\/FEcfbSwhFn1Drq9qlsPNon+ZUfwoUTgVdXJM4R9fPfF31Fr0IjetzIU4iH2UzNHTOmltTE6xltALM0fUAyVLHNdBmiZaTQ7bJmWsiRrXDBnv3TnKWJ8mf3xprjohNg8vcVJq63wvG9voCMpDn7wUkGF2IaLF\\/nfibSMXHGW+A59swvXbtNJGefOmm5Sq0rnQA7793mr7byqiYACRkAWUiuUrzdM1ZSGcU7PQ0yZ+NtjCCOpYjTRbW7laCzBNxQojjaVMT7ZywDFDU0HMcSPKdXkSDkdN8vrslNOf+iN81Baj7SwcaJt4UZJeHT50RVPUrie86aDGZYY8hqsgtcjU8e82VI6NGjUDv\\/ChC0HZYpe9odJdjjsj9aSYtIDOEVCE3DYhn\\/J4ERnvrkSzgDQ5XXu5HFyb1eGNsItoHkyBlj8Xq\\/mWVti0\\/0FbRsT69xSUKbvm9dsEBKcE31SvCdCFxDTySgD6ghLPIhcfcVSMFKLEhGcJ8IG3ionHGLgHf3bl5VdkoXlFh3e4sRGm6MGCHjQlpc\\/+ce8Z7b6lgLJtPY+Vhkvs9K7QQtKe+rtOXUx4sscNMp3OLB4h8Mvzl2iD\\/2m6ABeDrLjUnIFuqJyI1z3fc4QK0Fvep13PI\\/4M7UAUYfr2CjXaNd8oXEsRGXco7BRtscY1d1kvtcGSoSWNivi4ASuChnZjOi61OflnWLTf1tqpnzBGoILulUXGi5MH487GPsu8CcpaNKb\\/I2OUWcO3VczfuOy+lkXmZy4axJ\\/\\/BR0qKr9LNtXRl+lRD\\/hb2LHP3dNBz9XoWnV1iPmzmVuSFaUZaJpK8xwaz6X2zO2EgqFp5+uYtc1HXuotwNgeFsRh1zqNXxnRjh4uP3MJvW14saCXWLj0NDVql673OVJDUScd4b1wrttHiQeNlH3uh44BbCwKRUxEz0zXFvBO3cdmEaauIDDvieYsAYx6vQ6HEJsZKEIMUnR6bSoAcbVMXLFiW36oM7z98u6bZV\\/MQk3\\/K6yGOBVeaSmSWheH2Gez39ddOQQ\\/fdk2rlfnl13hyMLDM+oOfJ31VhI6zJ0GS9DDWUynMTWHju2oR\\/0VfCg2stOH\\/27REtdSP7mk0n862dmzHYA06rizoqCcGWv7jKZppkTKJoVu+frJdwxVTU8F5O+jP8zmT2a0cPPWYtVdyJlY5mMjFc+S4Lu4XsMeTPtMpTv5jNAR482+gC9BP6Axp31EQ2R2HCQsFLR2rBUIo5JEUv2keg+yljOYPTSHMyCuhvA9ECaHdvYOYFYSR6fHt+4LGuXB8Tqofti4KckZp6YAf9QfSSToqbYw2WA0YOK3D0kYjcAc5+CKRqN238L7FTzJgu5ECP0DrkzAGU7nQofmbv3TdRIus+p0rLWOxrNWSnOCNOIj\\/YjA7y2TpeCNKuEX5TilArEgDR09oyOLhDaYHYJ4XAlqTK8VE1dApE53yJMBEXEJu6zH2fvTILHlWaOLsL\\/V+10HxyAVVk2xALGcEn\\/STpv0h6zK4jAxQRgA6SIjO9MNI6PE7GC+t6FbEspqrYU56ikWokE0D3tIgeoIwrGga8xt7uZ4FibcjKIg4\\/\\/IUhD4qDRgrTkMGX9Fo9a5CCzzECDFHvRiAVxbOY2tCOWBI49TergkS213EZvr04nQErOPWp2gLc+d4W7\\/I13Ak7a7cAVkMo\\/pLeElbmUzTwv4ezH7WnQmyofWLazyzSKd4eFqyRtL7\\/Vwi1Kz63ywwcCdYMgdvF+0gpVdZtSoRxez2sNLYO6i5lGhIhm03M0tqPULs9T6o2vore5XfNH2erIKGHPl5m2dSJqbGiGobobGPmf7i7NYk4y6WIRCZfcG3vtEtJCMPrJI0mmp1qms+YWeuoVu2JRfAVPviCAQLwGKf31LRO0Ai6htSDuZMTh6fm7B+vSkW\\/bMK9Lzha8XS3mp0U93NaA9C1b3k4Sfl0SArk9KV0Y8LTMN8g+0R4Japo6qzM6fUJKBTxIan4Nt0GyzQbg04jmQse8+\\/cJVYNr0uKTvrrPXeqBTDonL853RXbc3odI\\/pqA5stnNvxgCc+JFXgUTZc8wQVv0aBkQgFO7Mq4o0gdG22nJmpHKggkgJuXpLJB19kRIb8aLTOR3g2LCXPBOeil9iDaDxxA+NHjfuYefi3Uq\\/hTFD\\/5q8WtiCmQ8dBlAN+RLISvXFOi91BWbyMGAHfigz4oxD2RYHx8MDwb8USWlBSb4sn9I7E8gEfgW3qysdybD8KlUqSL+ZSza4\\/LR9OAzf6S96QFZMLalNbdgoOBSWiQk2Qf8RZsbDphsT2thPS8baUjdxDGMwQdz7yye4BEAzhVcVu9PbalKsu1R+I0sicq4j6mvLA8v4CJ4W6O5g8b\\/N\\/+MpSl1c3ydTD+KiNAt55sB57Le7eDEZZq9\\/V+PJumoPWclrmu89795BH5wfedH9LoaB6Au4rAdyE3FNEoMGqghnLTV08IE+SyJOXDuzLqbEBwMs7ZC75U3aJXKGtumr9rB006GoFEDH0D\\/or575szEoitdzOlCajvZkhKhvFGhkWb48FSWo\\/ZyGXBWtf0KAP\\/zqvts8CxOlMPSznOPjeBrPXpEcZQ47+5HdC78redqCbn1Sm2uZh\\/\\/ZRIaZmoSAEiQD7vUkO2Vq1sp+\\/v6+co3Lrl3qMaw3hXGjVig4i4tPiEPLb4yO6umbMuyxomPyPrNCdt49LWKe2+B2qUxNhGttqunTQaihe2N07ryFL9K+aYKyWV+ey\\/vKOjSBHhb34D8t9HB9YmgiklBR03sco1ZZrmEy+Ub0NWph2NCPJBAuapPuCeSgBjwSyfg4OG7OWCpwml8ovSsnHbAZUT9N+tVtGcOX92XwTePlVpCo0R0RNrQvPTbA+29fnNtiw1fOyPkfgQqOIc2aawg0MFZqstb3Y40b+JzxJhYOtZaAnap7YRwhNVlTGOjX0clmwNzvithhpMqR7DQLPYmg1k\\/6cIahh0TESLnRbxQxw0srgJbP7w2+UmhPAcpF1snab3HyERsCsGK68r3hlGraguSsIbcErOGNcBFw8JEN58UJxYpTUXBcQ5AigKG2AO3rH+Zseudlhfp3AOl0LexpYkfSsD0hCWL0f97iVb7WbQW44wLuMzDzDqXxVZSZ88LFbQRr2hJfzyaxeKrsPPCyjj+DYaBGWJv1hh5jm1Oajho9fiDWJXGOsCHo4\\/wyHgi77ivb+rcGWK29js3pBPHdjbak2+lsTfn1bwjfSD\\/loamilmYaesb4\\/N65Bixj2nLsKt+ZBjlieV+hZ5KQoRNrCzaz1KdTKe11hOF3H7KXAviWzRPvJmJnln5jFE59G8eRxEBwouYb1u3Dfru2JQg35w9ZQJFg0z\\/QLhfY\\/WiliW22fhT5opOmqJX7jFIUyKGazeZ801lrVlOwhJ6tcaV+o\\/3UJ\\/nMOseHNBlBIE7cxA8\\/UU6SjTKUPpXOtHdZzHXqj5GtF6N4nMsuHD03QEEF8uOPEMcEQPukRuz2Gzl\\/K7JkX6t\\/ouGg4vvFcaRMmFK+0isRBOzfcihPHti1VC3aqkQ3sx3EUk6W0TpMCdbCaXGKE2BeYy+YXgxrh2g\\/riDnqaOpXF5gxbm1tD0dDBPCky09llQIuBwdtgnQTjsHgElmiKyre2qOlhfjYECScRJ3PvqXrQZmU9qh8tXC80LqBB5H1Sq\\/6tiYNl3jRCP+1TQHlwth0gZT1qAl4ZyO\\/nCUKEj4WSC7H9aVjkRnX98lbqBxIhjS5SmLkkT369\\/yknMEAipLVFqGxNo6Ogl\\/OD1oC3TyNjRemfeKTyRE2mV0h9Dl80hsPJzoJ+Oh5QRodgj4lKda+4CjRNpiWGn7XL4VsgV3iAbt1ABzApqJThGWl+VndXpFqNdWPcgyZ7+cY7X9EOYt7NB2YZU5y7ZaNQH5m8qTnZ7DHEDaBfAKz1G3IsG3kH\\/LGG5Ph+\\/PN4oaJH4DaV2vWXAEiAYPUdK8cmtowzO+7W6y5WIlEfurejIe6Dse+UMfty2LZzX1\\/R9hVmHqUEK+6acHyJMEBymFwa1Rp5NLDJ3PhegklNCAVUBKIXAnAFUWbgcClLdvLWUfjjcoRrkbgk9hry9F+A2Y+yuMgWvsK7SrZLvXtaQIafRfoClZAnAd8Dpt2aLkic8qjgdRALkbREYrEIUmqK\\/HRquZHUw+9pal0rZq2+TATH0hdIs1Iod156bsgvfDP\\/EJeYDTFJuW5QlVXAaB5A2x3v\\/fmdxxKg3SGl\\/nCbRzf\\/2oO43h+QC6T1ZM1E8Ub\\/H618fwexl+crhEa3h7\\/3veEE9a0a+0jcRD3+Dc3JvQyV6TH1c3QPZta0NtLreIcwP8E9gOHQ77Ne0PXKx6mv\\/6WPmm9u50xKNmD0qNGeLCd3bxXl+JDi2OmX12mK9merpi4OTyUI5PzRKq52NnT2ZbYWH0niJk1kzOKtX8p7XpaTj3tJQtkY5TUiYR0mw8Op+VUfEgcfDTAERpYy5k9tJmS1ETcuMgd0wpg7EVMRWmuMzaTL3hIzd9bH7pNeRkd5UBgO5co8ZCeiBly5qk04AfTwY0iYavccSp\\/OLL24QBHHy8GyQQMjnqkicC1UagVnTbNORMmSYtYSm525RmT8C3ibppTuKFAdBlK13pSc6PfAsnOMxEiEQuIIrPymSayOSHllJeKZyL\\/LBGVpCelffiEN3Rn2xlbFJSWLCIiKitwZc6\\/grJds\\/OIntSAEMISNmvpDa2zQt8MP9C8RSHBY5F2pnZ\\/P2CBI64d1MgSphaeQyAybmtnCZl7BZBSHC2\\/RUgaIqYN4+YdOGzcPPG3rRQIF935UAWf73OZFAM5gtsw1E2+m3G64wxX4zoQ1kLSOCGOCniy5TboT2LM7+CG8wO+5czN8HKEmBRSLsGvCdM63xXmbseQbC6I\\/723Tuoe5xcSXNZ86v9lMkciFLDu8JmYna1KUWVZdMGlPGtr7\\/Cz6VOKnTXDLDLZ8ZnHViPrKemNlFjauWlKbesNj3ixNopaeGRoYAF7vcWZ7kX1GSeHEryMF24nV8Hc2D4ckbYraygAzKYeW3i0kRdTdXnRm\\/PsQFw+mmMK\\/Hb1r3d7WQ3yPlafVG4ENDZdksXlMbn8I1Cs3jAkYduFV7wD5IFnvxN9UsymIU3krXUez3MLqnXTmkou602clONmU5FVfwryo\\/q4d7tPrvrw7fiPeCzcE3VnOdWyRLg2oIVO67HH4Neex9arks38CaOTg0jEXJyN4lDHiuEUJBk2NZrgh5mgGlNQnbD4z0LBsVvXlkSlAZnaARalbGbwP1IDAec1uAKqVBvW4iTq8Ytqz76p8ulYohyNbBsBEJZaWxeT6Trv4wYSyE55vidWc8llF54EVM5yuvLLF\\/fSI3gfuPKObmPRFNqzJJeiwFJnrwafgDSMX5\\/n4wAm+6ro7ZDFPIY559B6KXao2aVw5p51OT2GDBZuMnWKRtHOyqfFI3wjkFFXDS7IfA8IZkN3OE5L8RW8Q7utwhrM+SDlqGxJDdKCd\\/JRSk8EA2b6r35CxVMxVTDUDaCj0dzbOryOZn9TTVfABeWl7oZFONDM\\/1YJsDGpDA+1tkV8qukrAZ5Awpvs393x9p1tPlN7xIA04m3OlmRrLVPCwJdhS+NKbRynuEBzo1MJ7AYAS3R9BqlCpvKNIOWKn4EG1PIaeyK3bw+x2B1OcwwW906WEWfhEisQx4VG858wVBYNUWI3NsYZT0QEF9Nc\\/elXeVggwIduBcAdlICKnSVvwI1UUJrdWhIk0\\/j81rNzQfRH\\/ijxZOEgpahH3RindYFCIgEyibHI6z2ezvDVrpyeQLwFe6ZLClMqlWT0mmkGriHPJ1XOZUixJmbbq4+EzX4K6LAGtChC4ffmIVqxIEvppCwAidmQLMv8zU7MOXRD6YGcsCYfjhjWunOnc8Gdj\\/a26qu+zlQKshbK5b6tQ6Xe5QEL0hlsl2AolgkGbf+sN4dFe\\/x4ThRqvdLR22GeC1mkswpF0Io8IZnQeiSe\\/lIjIzLxIY\\/dEw8PNc3VjAazNFfqzPhPYFBI\\/8bfTYjtQ00ZfiY3AE5bA9R5m8pvVWSqzQISIqjpvfMKnzqYgmG8Vm7VVnL2A3NlGuYs+noyqcS8kOskaJ56fVoQ1K5XxzFVyTqvkGYUqYY0R7x7yspc2Jg19K3XE5kI8oVV1Axk6oVI70qb4xyJHbT\\/SVo7vQrL15NzT\\/A1+O41OVqemZyw9T72Js1op6tmu7T+rbngEY5LCVgpCZvcxSAybF+zklzBEW29lex80zhEARq4dlsEArRrgPUi\\/1oWQ7AXhT7\\/7N6ZoDVE1iIOHmPUC0jPbRrcR9rFf+tZFf0JY0\\/5ZgvH8HdfHUZ7O99YSE8qJq3RVW\\/E3GmORpUTSFe\\/Mwxx8DwWGG13PAAnN23hjiDkghBELDm6irfuwMdn\\/U2i6KQZSWLhzZcWH+zKsStQ1S1uWZTDHXQJjINdP1Qa0OkEtAR54Q1bcmAUkmj3Ey6Caa3fzKwjRkEprLuAjv8XKnMX\\/d04W1aSd0wz5pSKRZS4RN4eAsd8Vr454lIgLBCcnVm12OhQFqTyko5sJ0oAfIh6om81C61kOg9Rq9lGc\\/5EVb+Y3t+VwdR\\/YC6pcoc4TGRfN14uyqX26rZX\\/kfQTVaNjsZNx77DX3s++TsK2zu3gLUpUVHzOjm4M9ZDHYr0doqxmXnBeEIqrRCZRroQWZmxzrtwEWBubPoQ47CqiRsv1GIcILzOkKHUaaMkPEu8beSsJVA8xS0RpWe4KMLSEarI+l9CyPjMKyFnlgMI\\/PED0uwbm1Zq\\/qN9BeWxvF5a815PApBFa6OvoalJPmQONGcwYZ\\/1umQCGmlc\\/MRISYxcVjEdDXMMLEzxGon8+46mKcAwv3+ziEyMrjXDh7D2fYfjbbbF5mcLJTZ0sv4YlDJ2CjCJ8gtBwntRLlprzkD\\/DEqdOO9ZSq\\/9whYl\\/HIbBK9TAiKOFpN0KROxPBZwYwI7z9kkh0y\\/o8OngSSD0+36DAbZJWrTAJQ8QyXO1W2QLwTGGSDaPz\\/1zruP0qULD8ReEYafrufQzDH5b6r6kfRLTew9l4gP0TIe5YhuwwJVtymzwuVpjyjt6yw+pSwuZTi4tGWvBuAPBBwSIhn991fqAoM\\/qO4wEViwCh29AfrA22tyZcqHpDp\\/j8LbObcMLUAp3iz3fuCTvn5+4rCinIchYNr2hbiuSD4LwU9\\/empe7X24smhz5GKfUBTyaLL0sh7ds3S+wRoKnxywBcS13uvPvu00z0a2ZF1rd3LvqFUUNAw+e1ejahDRL1ssxGWnAovaDHejbrvl8eONeNrFcpu5x94kJOMaeSzKwDE7JDAMfwK1Dp+VFlD8fHesXLZg3VpLF8\\/neo\\/YGAovYCPgq22Urycmpc1aUD3J3459HNItwyxY7bxViGyb1X3QrFYf9v7BKw59mrc7ioCfZMoQ0P\\/k\\/GSjcCE3EUSaEglJN3oQqhoZBJvZ+kmEr+f3zLD76TW98MCDGxtyG9Eco\\/M9gm\\/7TRaXt3uRXwqUX3n1uObP8wSm5VsCkzh1ThqtigPJMhRTU1xrId1L7HxpDusqRG6vMdtrAR4BDBruvOH0HvbV5kOWHdTKb+9WJnK0rPDO7iRH\\/V8WPdD44voMujfmRHw+f2uZ1g\\/i11PR\\/1cc3A1cPofLba9Hg4jIvqcqXyClmFTDQxc6vpJI77TAr+M7VTbO3p7tTAGck+lpsDwIC4rGo6yCUqffVQeDFoXVrJYm2o2e+ey4fLWU3p9zpI\\/hfW4HQn5+v\\/hetNwIz2aVOlIiGOMtIcH7fT292h16dodO12oGU6TeLmHMl9RGLYu6860uU7VRdZO1yxvvHiRKdGsmguBlBgfxeuieYBsaTfu1ygvpKqE9enl9xdoC8IqI+czkHxvncEV9sCikPqqhPs5vTGUUi6yjKNnoG5O3n5H3anGDlNrnzKYildPJOeko8GBu8CXSe9b7IBa3NPFcTsSJ1pGosr7qdqW+zBLRfQp7uF\\/skXgZJTHonDhjz4QmwfWB\\/fmx29jhr2y1WZkmZYU83Q7am60NyzcAkCWjUvuQhzismn8az8kpGjZ0KweUub6Cwc\\/QEKTHrHc\\/4hhUc6qDrQHz2ZwAIV2RRl6OIin8Vm3jQ9mO9lFKH87sZ5fXvZTu2r8uZG5QRSv0XxXqjyf\\/I\\/eaYW0JQm6t4oNzYVVfxl4uqad3b0i8mGCYAhQaOstXrIdNVmYXb+QP4\\/6aDyU36G\\/gphz5is5bZO+wb9us60oKFw5fG3CO85FJrv33xYFVZDW81XmSx2aNWZFZApnF3rTjSpeK0Xw0+8WAbgmtddc49pJb+UZPbZ96oFYzSZ4KYjEHO64wfurGaWD4LTYE9nya9tqn1OEcSE05qfDrRpgs2WOR3zp6P8V6IUgdFNh\\/ipz2aUJqqUFpUlibgOMtCtWspUMRvHh4+DHnof3QEPqAHJFdJoy\\/0mDCRfaXi+Q5j8ukNulANJ7bOxNHRnEtdrm3lP1v4ObcVAZE1fUsEnm6H2HGNFZf0vUwNsyWZEtJDUrVyqcKoMEHvVGptD0H6dMdtJu5HBnvkIkWwra8\\/Gv08zel45zczFEM2DH5hd7vzpbjD+cNN8r9ppABFdntm324KS+JSYgtk7KGBgiSL9XJ0JS8Qgp18z66X01DXXtXJC7R04wlrBeg+OURzYEXl1N1LLmuGKaXiyxrCmKMTlDbagGaupkleOlW8rPoBDe1wzBE7ulSgdFu\\/sNYcoA0aS\\/+tqUjWuNwFZNEL3ffyqxpMW2Ip\\/vJwqW9HkOlHSSfCNz2+ECqP5XkcHAApepE+NK7VeGinHJEK2C6SeWBN5zEHQQdA+rBQ4aoiKlBtGAmlPuMsNn2htfGle9p9WynKd3rJNrALL+DRBz3J3NaZnMo9jcK\\/BI7pHmDnIhRHO1QZ9zTe6fBgEwJoBmWp+95E+474zBIwaFeGBDijwR1lah4GIiDm0bFz6wA3a2fi0GqMBRS0LYWRTqASDJvHi0tT5HwfvVhGnc\\/6u0rJIYqo0stChBJeT4Qv3OA0TuZqEX3fg+y8E6JRsYB74xYWO8zOWWA6KuvkCgWITK4bTzF693AYf84n8y5f8pf+yJMTxxEJ3WQ6EXen1d0h71FNTKrbMEl86p6AMzc6mAyXScCtqRn0ixlR7dNEcQxvlrf6dqzuOVZ0yvI+PNi3bsE2qRRANE1HEmq17F40IHF64NH84KgT15UBhLWiXMKs\\/re9wO\\/OT48SabPkE2zn01aXego+TQJbtNCUtrj67vMsOgB5IGn5gUI4jKrOkKsVI0OTc9GobcA\\/OlK6uOns\\/Ka+R3RuwEC5c0xZ6wcsN+Q4gQVlOaRpVRPVhh1iyR0mQViQTBUCDO\\/tETVnkzgRNb3G2tkaOM4MPTc94Z67lpCwbuUcFkITTRbPdHs8KyGi4ZPXrWjtdwZDlK4+3NXb5OFnVFOBsbasDUJiz2WDVSU\\/BZNXzkdd8lgzT3bQIcV8CtqXuuSmKe7+cWHjqDTJVqkWrPnR6bFovEsWmCPzDU4xXJC2ZNeexwkpqucSu75IZmQcDghV2ciNtvgzGttEAKKxxay0LGHPvO7QQ5cpAkgpXP3rhKBmNrN6+rsXbM\\/q9+sfXGE636wvwF2jhk++lQRy1dNX8oBxL9WG+rfSzQrkan+tyGbZSFyGjKQ\\/LygSYPP6QzhPuMN+ALynxAdBIljrcNIFEjsEjQUYU7GW\\/d66OmwlcSfwGR8BdZ4gNTPzPl9HTIEDHES8OP6ycak7pl043sQlJk03+x6mnadbZXsPNvrsMHLAs2Ri8PerN5qKKjTB6skf4xcp1PA9gqd+WI5OkBQoyW\\/Nm4cTqiUsbgOLGeFEoeB+hjOEAV9mKGivHr7\\/qdjC42vnrYHpBGKfb8pBrQjiincTMI8Fvs0vX8VQMQB6jToUe1i5i2tDga7KttXLCzQTvA7AuazxV4fiz9mGXiNUQXMHySYV19bU+HCHreCzvcE7cLdqbr6dVLjJu2L1E+PWjt\\/Bj5l0VdaBpZbLtB2AxzVInoturiz0S+Y7q0QUG4wOC9Wlor6LuMjp6AYnmzqW4DDDLL3uIR9\\/LLAFhxREC+PRoIj5KGuzFnEWgi8GlxAmcmcCQDLGVnEydF\\/3q2t17h0IZCOyex5Ves9uogBmB1s9IFNMYqFEubxmY9oNHvl\\/1ytemSVb3ovsyz4SphooOzBanxTzSFvAr2\\/uS+w0ZLaUc\\/A4mYu0SrKzjeOL7wFWTl1OuZCE+nxES7ZdbDvvUSuxeRpDAv\\/Ox7PwgTgxFRQ6y+dcc5m83Ml8gfh\\/TppSTGJS3KkzYy+tBrc+ul1ZBJ0hW4AOmvITB5aXk5KInHcRaMg\\/Q7oIkIj0rjOjZjQuAAwzqI7XRQdf7kDWbBi6SXlMKxbTlSrPqdUC6W9yeXtDMC4MJSlgQ7hKD9KyyBQqVPoH4ByHERP7mf5\\/18bhWCF4X1baBLO03+GUYlI\\/7yq\\/nUxpmJQ0TaVZqYKVS9tKz97+ou6vX3h4MaBVIin4Kuc+knXOqPWX05qcgd5sQ0w+J4fm4Rq\\/V5jycXpQ3HMlTP3HnaY3zWvqsfrPu8dnuDVBx+CgBrE1HTFv6ju\\/SXrFiHnnXnaeDxb6qofEfM6jakkMckYEaF3s7zhc54U8g1QrgEa2mhwb5pR5ImnjNHP4dGVSm3MOnnIcDaHGbZnqvy4dpXRgeaCbI47Z7gOP0h4Bv+EEic7s4AR0ePVq7SSNBSOLnXi5k5WPK4JQob3bOSXjOEDbZh546Bqv\\/m6xLm3TB5g17JomXRP5z6D+yJi2HCKNiXsKVWzTe3j8ppfFdxHIE4nJ3dOogWWHYpVjOzSnL8IeIc9o6mDM6crkn7RUetFs9SPq5ds6UXFJsyTbME5\\/HbPRL6MA\\/l469ITwrG7DpaaQj1X4f0Z4139wTTCQq3gK4NDg+i8xxCrUeKZKz20SpvR8l7adyntWGvk0n+r0CXGtHYsoXvkEJMkpfIQiVZOSKlJgPJj8xTqnU7CEz08hkMyV41XX3ThxZdx\\/X1WJ1Mi5MfP70Kzm0cwoxyxVSKi\\/b3GO93Y1Hz7NDx\\/72BAv1jNjwLj3mBb0o3uVFzTXP9ddq+ipIquZ62QekM67TYrCJiJdv4FjML+TSDeuL0i5vCr8LL3gHQtjpe9lDwa5T0Wzq0wJ4Ny1nWR5nrwSi4yCv9UcIuJBYsaHLv\\/AH1in3lv6jBtMCw\\/0unkfanueiZYZaLJJS9CvtJga0TzJDMwflaI3yk7gYw2VsVmYbpPPEZLDTli56cQ9VMEYvSn1YiKQE9plaeP4IdVMXrnT2g1e9jIU2OH\\/4V1GTvE0qRmOKo+AFOFUovF3LRdR0ZWNNI3GuUkrxlyz0\\/66LtK0jxVapQ+RDFZRCTgV\\/TpMwO3zb4VG53GgKlK\\/rVisfTa341fCZy8pKhTO600FGjsLrSUcvQ9rsVBG05frQ0wvb\\/\\/7RjhIgMNvQ3JAKV\\/h2rCkv9vLEwPH074+brfbWw7NmsA7gG5l1ikOciJsVmxDEf\\/todUFWWzVm\\/dEoTCYYKiL1KvOT6RQ86ot87dk3Y9KFCB6BsJfKtcDEzy4blBc8n7NVGkQlOYDuIY8lNin7fKvKmukVuTDmvhI7Lirs2FWrkFQOx1L8MOq61MYZDDYf0Ekxv6FW2C6nz55Sn9AzJj2LvwgP9vMFFNCPpf8BUAnrrAA0WA1LghJrzRWKyz+5bncSGRMzLOs5Y\\/yVqwwgR4z4xvczg42rrX0mhOguF10D\\/TVLNwmFTgned+JQaNo9eeg1SZD8ZQxHx6RW7pXVSUTRwOR8HbyHlxyjuByl3Pw57HP6ur\\/KnaaDzMO7Q\\/VvsvI0XX7hfQybJU7LoXjtET0e4Q6J8lUWuEq+kqoSaJQ4GUU7gs3YJ8vsQASQmeUg+UKHhXR90zHfOX2q5cPV7tc28mAcRn9z5TXLHy3WYTFlkj\\/GXpvMlBgv4ikFWFxyHFmobmie5rIE2\\/7udGvlMatWql8FpR146uBJ+auFiyXOI8mEzvJK7ncsQGniXQdCAnuC2iwqCMICsC8gxgCysxyvuKcn8XErKGyPzEkz3E+P1Om36\\/yvYFl5xBrr7I6cBtdVJZZKRKGVcpE368xoRigBObOBhMHAmxS9R9mG79QlSV3Q6JHH6IwH\\/WwlBHAADEpP9MrKkDrzf1KkcvVlp5Y5ZY+pXhElLkyBaUjCoi+mMPNTqXB\\/TCakieej5tF+WKpm6W9y452RB9tObz+1EwW\\/fJrDii9OkLdwCH7JU0DEFQc1Psie8I5b4x7RtS+rszpJGgsY5g8IHYNwnyyoVN\\/lYfxdKISYq\\/AP2gSYb5D5QReh4qgAyDrIQYqCIwDA11u8Ffs4CGfv1ba2380z11fh09smCpOujmvJeUrvybmWqcaIsTfCLYPovmIPiRTLIaiexl6euaZYbU1YXduXwMELquZ7UMt0gOtugpscVdtk+IJ2KWOrLsjIiayY292DLg3vVKNvfC\\/7Cb0HGv\\/GlIA1+emZxe0fmY9ucKs70Qvml+aU2YdYsE+8\\/TsnXzpMqgy6Krrc5XeFufKNuuX8eqV2VCT1ybpXUd3yELsS9TbmS69RPpcxIEGzeJ8\\/WeN8kCrjx0hbcHd1pMNVH27w\\/OfW8lNdgvI0JVk0\\/fMiNnoVrtqrsR9JVWUbcvqKBU8Mv398iSuu58S6hyoHPy64y8vxX388FREMIGjoGbYdiwNy8jctU4Cm6\\/wxHWnvJoqQ\\/PwPyV4d\\/NI+rh2QFvOgn1pEUHJ79RRaR+aJXgy9xkXezBXNqepGkQDQ1gAm+C6Otjf8dJ7ZGXa9TJy2vwHqtEmO3XECWbiyU\\/IGrCKs+RBNDHLLGKSXj7mY1+8syFNGJaa3+8Duwdlg+ZWM4K14pmsvNwNeafzKVKMmt51ubUqobvDh04xm8toDU5vr5RbMYtl7zPp0IlWIqyyJiH7pRsTNlaegkTUcCEsPNXmTiQzcNSu2eHU90PQUPQp5ZFvZFr7J8dPyHr7Dr+n195ke5IP+P8xm0V8eUy53QnRF+I+W69Dwn0HiU4kfl29GVIcphZg\\/tlRXJTSST9bEmDxzfXbk75uqWdt1ujLZQuwWgwfeA0+5mRvdyo7ZCibYM8lK8blNoDlVIOSNjffqfwRdUlKPWWZaJ6ILV\\/vVXFKj2tk0HLA4V71B37VBgTG1A5N61OYavu2PndUDu\\/S9y1uK0DvMIdJgG\\/GxwsvYXq79K2v3p4isJWdV9oNgpOw2spKUj1POGSa02hkKetVg43vnWdgkU44z6cZaCOrvKjidMJhFNPg2KCUAzfppHT1M7jIVBF1ai28enIKoIoqbUm03Zbe81iIhpJloPIxWq+Rjgomu+xV5zBh95Kdly7b7GDP1VBU3BP16hMOCCtZBShPOYwAgHnyfi14IsDGIw3tshJYspU7\\/iTwFQiACR0Uqg0njFQQ3dmPvLhFfLfTol+jo9YQ98bvijMYCbEsPODhQlXXme6PEVYZLRFIE9EGHW4bugezC94aXV52ct0n9ke34WJ9ROPnGEipxp0HHWhbSbFcndEcgNbXlX0STWgofcuxwqiyJVYaYjd0zb\\/DkruJCK0GrB0SQmrnbE\\/GeT6zm6BkDuWCiPXIG6tZiK2BbTU4EI+OQfEjy9GACC4J850ho6d4P8yFFGC8CE5YyhskjxA3g\\/M4l6gNxIhVlqmjNM7IR8GP\\/sf1Kb+oa3qoOCkAFs7cG8na8VVS\\/3EYPnPLTUIvy3SiLwjkZGu86O\\/UH9nmQrX2bLNowp6mhVZ40E2mKji9OiwCry7SSkTahD\\/imlU5TeZcCdhNyATv4\\/5KhpTdS9CitR\\/77B8fmV+9HvGFfoHVIeUwA+ikDO+XUKqb3hgeZVY8Bdw9hb+D3WFdcbaBpB0Gd69NINrrt1tFNB81O7LjnRevlYvKmT4JTOl0U1QlTktnNPDltqxsSn4+KBZv5EOMaKLUuImazOhT4MPYZHTrKB7XHQuv\\/na67Nla2CPpw+iG4Woz+0mZrsnhiHa2X6wBBRhJLYeZyPHUPBKT2re8fWTtiJk74mulAfrF+6PGEenJLRg4QSHxYOPT1N1eNYPUrs\\/\\/hgfRovGSCouG00RyS\\/UV8PrzsabfmlDKePD46O1UX5h+77IrLSeuLriyIitqUtTxwlUwpmvZKpo8oaYrZt1AJw\\/37fs6KF+9is6ppw+SVJ6zL3oQToHMckT3Ywe1b9muB6weFd1rQL14Xs0mg71yDbucu27VE9+Q5SLCGZ383sQfwJJwohdwzCrm2Xhx7YLVkFEPiCy\\/UIPuRv9fBSPKu6oyHMj7PnqOL1RcX30qreMLP9FNJas3QOCDvZUHkIUD9\\/Q52RnhFgpgxDU1M464SN+FUGbwV3WwLHo39C1kcfQl5llqrbvPyx4yOB4GepVCC6tAhLGNjf7gqf1avYApDaq8iu8KA+Wvc9aL16dUYg+aj5jCPV23BTZtADkTlitDsiHEHwJjDFrp4ZafLkkQANhrIb15kitgZa4fvFP5ucD\\/dYU6RUd7rSLg5hLK35f5HqijNYK0ObOY2ZjLynWADLcKSnZqOGxcJ5bHgx9R210Rd8Nu4uMd8T7zcZ7Ts0KAH6mLZ\\/FlKwp8wbWUYXJAx\\/pFE\\/Lr12KditfbvCZzODymkEGpvSz+\\/T7s5adxk20IufS3lYZmq8NdiQOujK+2tzjZT3r8ROgoiIqeoKunPTIN1uTteF9RmdHuyXlVw\\/isabGwCtZ4DNNlhuqwizfe+3IccGKbIPCYYVbF5JVtNgzuWiEMtcwKoFgEN7PR1UqYTODc\\/Dc\\/yWuDbCjVgDtbgNn7IL2EiW\\/Y2ChRtHwtoGRG0UwgadW37Mw1\\/AQRe3OjWKSVns6iDmBib70mOanLkZWgjZM8CP\\/qTxpsnkpw9aFIvTQTgLE7YftNjEqOPyyhzzNwRcjbvDvKPIbcgZDIH88T2YAtMYIJ3JWwUw5pkBSIMMIuGHIjedBMQBp5d4vKVmJjo814eu0+i8Q7P0e9MOhoURI8ASZeloQNaWoI0th8kGZk4zbnvLUEYsPHN8f45WZ+XllE7LjB4Muuv0+e81it2rj7IbyM4Azg+hiL3wRUiQGyRleZaVO1Bf7HOyqjdA2L7zYzilfoIFxzRhdAZysAbchnyUv6KNZI33JR78OoS0fRQVc6M8nbwaX1H7h73cFi5e7N5hbdqokTs3\\/XAHxHwMI5RN9b6bKIQAhyAD8X0qKmqOKzw2g8nxaF\\/K\\/Y76GT8Y32I6K9TcnJ37dmRdLjQVDASkcwhU\\/WYYdAKdRP+POCvbCkuzmF6fxPo7pwJ2dSLQxpT0lmVVyxUbHmmqQmSYP2o6Kdkh7jFQFny0YFEt0d7hDv4LJsBPp0BqHXTEv7lsM3vFguYE\\/6AQERkED0xsQsPgInyIz2tyhcHECxlSwvsgKPSRxGarLh3qF1BO7s1W5BJRPE40cbaqOVoVbdrlWHlSYWmqtXwnuSkxMMgvg8WoFljg0lEWSMHfSxNeImMD4uAVaDhyXi3dN1fdEQqBO2FVFPKEYK5u2+i6wlgaxwlVVKbioZdqLTgeAfgA4VoRggid4WdwMtpsWpL\\/rjOMz8S\\/V\\/\\/ae9KcZWuufI\\/YD7E0mXibo7dwJSCPCU5euZ065mdaWRAshF0dTUytCcDffVbZPtmUqlWa6RGfUEWeGVTtAh2aR+Km3a6vUx5Hot27mirXDCME5xVnvaLziNMtlmHjP2A5eKrt8sBATNnFCbe1FKxCPsUXW5Ea9uz9jzPCeWNDdckGQ8HePQ0En4BIv\\/egeB7orLGc4nRYoDO780Wqun4Mnv8phTBdsOTpE482c+7feKD7XCjtO2OxlTpXhPBSQ3JS5J1XnuICVqdiNZGEIa0pIxjV6dD4H0oNKm3PMl5nqEuiTsaUjelqQ9113wMpJ2nEs1fzmWhLuzWydeY6qgI7D4KSqdC8BHateNNNm\\/FGkxUYlStPAScvkgaKlzei0jcuJf6JWnKQ9MWt4BxG+lizxOdnWZLw91jbfQ4XZIUe102WV0XvdlcKDNVyNjgPrhQsO6SI2i+Oc\\/NrNBoByGUePsU\\/zfZUnyG8krY9PMmpp\\/xAw4vn3Dbr0gYg4s8G8cm4lXptK87KIDDgavnfBTvljpuu8\\/dlzjrIoR+riGjLYczWj9TjZeBCPCgVTXmDuxrFj6z8SF9PrFcPyH9X6q8qRG6496Wer8hoXVCedtcHLimUZRNOZ2XFTBoYEOb4l9BR3nJi9kRG8SmXtxWgy5MzVpCtPnbgfoiJ1OkW7SpyEMwdUyVVP7Ey\\/6UivTpotQCpe\\/2T4InEu6txAtAe896UQbyXSE0AlzTrsLK3EO\\/jZ8PGrmiiOx7dCzWcWkMdIObQrZYoC9dKJMzn\\/TTfS4YwKZa2F5GVMbx7rvJpmqCTw0F1SGpyN5WBrLsk1xa742mffFPJgh1ULhQKXjU7qpsDDYGqS6DT\\/gtFBgJXf7wgFWoeN4+aoIcw1p633aB9Se713+AWoIIBn0o9szqimYvvIo8H\\/igLIu6NssFdbu6VWeGdRubLUZA8t79exegZ1PRBZdI0FMCruSUTjHKY9LplccMEKlFCK09u\\/UqF7CDPp2dAwOfHEpX8a32+57S3t8bAcd3ob61B0v99ePkaeeQWpEDDyYkBgGUgW6h4YGNUh9eyCJJkMIZLH621mSelJSSsjCAcK3+mhtjkyFitnyc2pD97vqGfhUdnt+oP3G8Lwh7T+4vqr9eyoSp69O1oaSPmq2HQNQxbf\\/e4wUsMAKTUMELiHmhEUFtRBObKdNLAuo5xtUrTMx5apC\\/N3hyui4viD4EFWSYBSCsXXHV+gdL\\/xF9gMC97izFhgVMK8xB4wMyHnOfFiTz2WSIVEGR1scc7qRyHOFeCleWAUSQE+QyFGmT8DVXToXyAxW\\/PNCAqm+2Cflg32lANj1frq2A66jYoTxFiCo2gyPmsj8wYj4sP3ZDgUkj84FWJhuho7jqT3\\/AwwEh1uRV3Km\\/gf6Z+DmoR5RsMsMLTVaD8P4sXNST2QIEVc837Xh\\/ebtQ9EvUHjhehzdF+q6qIbgWR651fWQkYXIgAkS61GOedCZjT5u3sdFXx5EwLL8\\/9+6lqKFhprHsGTfEC2a+NvukljPo3Km\\/Yr7pA+4uNZgleL8+1E2RUM3MW\\/nPGh21hE8HK8LTRepD9B5fAWDwot+4vm7znm5T+WN+OYvI1Q7eeu063mv7JZR9L2ouUklxVwLxfZ1oUlgfPi0a59C7Onc8ugOwyEVTAlLClCPUwGKdDgzLW4ofqJVG0fULOvni\\/q\\/7P+SHjrCWVWXIHNaRD87S2DIgqtIIgFI9aT7loFxYtrHueL3ZUoMECZcQmww91a+QqF\\/DBTZ3MGXHy+7iw3DrkrVSc77jYmtZw9Tem4iCp93H6i3dGIwzrhTn5yoeImOWbiNOpi\\/fBt3Ij9zP+KFt6OEViukMN81GA68D3GC6jqtIGpmxlb8FFP0cowKZ5li8iuxFLwffMd\\/bjrC0JNEjSuEL24c0XiWwOt88ixC5A721isIWUvNH0J6vjdPX2xcpvRX1LJI2ubu5jxK6plIEc1IAPPD3gqGlVUXZnx8UBfZpOz3uZk3WifszBOxduCKEN01Uh2bckyGO49avd9Dg7IANslzl32WovEei0rFQX2K09buUC00ojqji8heROl5szYBFXgGhGK+3p1i1KXNtzALomJ5esdKc\\/882QU1rrHj6HoQxG3pnkxotX32BJ0had1e4c4uhhZtfdJpYaTswd6bNopR4PlDdvVSvlkvcgiDhCO+G5zK+zfivLCa8zkmL1Y8BM7bWq0L0U57f1LSdr79oA5pitISe6t\\/YpjKsOsJjKUqyUQBuiGFEQAN\\/FND\\/8oaMgReDvRTb0xNn1ohQdZxkeckrqiOlsV7Lb2kKsdX9ONkkPL44yOBI5fb52dPOoPSXKHT42KM\\/kUFXZL6tv7w7Ltmmk868Wj1qKGU1rG58fV9SVIPnn1deAJDafuTTTbFheHCMg1LCKdQJC3QIQnV1oa8bNU9hlX06m6WyRn6lACmi3sQHAJqp9StBryPtzYQSO6G3FGI9UCYY+qJq564THSQKPoNnKhkVZ+LD0nHCZ1Mck8TYX40USnE1z21rg1yKx982Y9djngApHjALReyVmzrQttenDRjNtk5Zp7OghAgJnHS4zdYGRNvXEbiwBPw2apAeoX3louUWwez3aMdOm+7iBh9ZAoQzbrTI3FSpEMzTc2VpbtBNe0DWnTx6g5pB2TPjPStqKh1w8I7L8bQB5mW6tX7rUT7YJ2ZSKHyPZJULZQ1Et9yj0gHWTNkiuCwvWMjPCQCyg+DoGQN4m1CKvnBPgD0UYEI4N9+G1PB3Ph3bIIt+idSCnnPrt3fkabD41SBz85cjNzCiZj8plbq+vjwwnapyhIUFriGu3oh9bU6+2VGEKRyxlDFj6W8dw1FugHTvdVVr2IdZmCeL5Q900rB4\\/2U5SuE9Z6SdCwxB24\\/rLT0MDxM7hoXLBWt5Xnb9Y6dtwovu+lTInloAscwR6wM8iin3J8hNMXXTmxGK6qtTHcNdhxH0UZcF9vuZR7N+fsWUUDOHeZXZ\\/E1qylfiRQtNwck7v9EVmfgn14O5mI9wskhuIUDYI793cVtsLSAheYrHpLv4txep69YZjq7KaFdzfnZjcCZx+fqRTgIROVjdNg\\/cQIMJnTBJcNKweiRF2hB7oilNSFQk4NH6YkdVin8C0RtLxcE9OriJgia4Cke0DhbTnhRvlZY2lPnpFqbtNxUxB\\/JaDlrtZdehStiv4R96f+4PKwbDsZ6\\/y6FUvD6wSsRVazwH+jY+UTy7sEmH2OdXvuby8Yf97xKw56TTeV6UgPK9ULi1P9cFweAFS\\/lHZRiZZIVPBS3+5lhX2WjcY6HVFPY+88jnx6DKSnNm0tMd\\/TIBvTV1Eh6lC\\/LJZNzDX1LHh5qGv1U8fnG5F1h9J9EIgqZyDGJXAL5WYjCDBaIfNxaZ5wHNkCZNwA7w3LUVBqSu6MqpQDSw9v5K5\\/dQW7YB1ZwTaDabrB4k9I3nKiCcj\\/L6DBEPEln6KY3XUe7PwZYcfsmFayQGyeqqPvhStCHpc0IaD9YoEFIUAoyXTitn0jdr9laIfgHdfgaW1yPuMW96PtHarXuxrbWXKqRLFak2sB+jTDZJST9skji87trjlyenCazoZYg1GbKaFTq0FXo3C64l5ll+dyZ24kswdBQ7Pk8qOd52c1qNiRIjt3B1NV5d3\\/GkkDlI+oCy8Y0WE6i+eHRSBWBKWnVEOLoDYg\\/N1drxLJwkOw5\\/dnsdzkVQW+w4caf9\\/TDkTNLDDP9AO6AxarJuRpHlGI0e5AYgfwRgjdbeylp4jWw573vhVjbYLRyoCotIkZODdCgXdxV2H9ldNv9PVWLQxrpi5\\/oMyJL7ItvEduRjGafy5w3GiOm+7Bo700wg5zfa\\/YkIiljUk0h5Drb2gCSVehxfkdaKOSF9jZhSQsv\\/8O9ftUsIS1aQWROkrhsFXEgf2YTNstLTmycVy1Sbj5CSvLLbP0LOYtWsFbakNE2z\\/GeN+B0Hjti+FtnQTAi3toR5\\/meRjHYhl1IpiflJWvkznQ1BAeINscPHnhzc3LC\\/DwK\\/wts6XM1TCJgD71FUucJcWH+1njNhDbFggHUymisv4HQJ7LCDVbS09hC9vLF8pkDza4c\\/G71nms9hriz5NVB9hfFOnSZk0rFOTXrd35qgHUtuXZHt1ZMMhRr47iti0smDMkL94FiPhAGEA2Uh2DAcdS0fbjl2BEL0K7NXZqN+Vrxz+Hgf7p5TL+9+WrqGRmlkPjvnyC0A9wD3LSAj3vN8KtUTR9zC1C8FHzoycOceVsWiR8OJyNHQ7M\\/j+dn7hhkTHx8Eb6hIcvd0zeNdlbUBvgaDt3s+xRCRoPn8UyMnuY5gSl61UKvTQQYGUcZ35rtxqOy5R9uKqdwXIiSafVByBt9+LWjpUO59QKbP\\/lt7\\/x2a+7jEWZRa5lgxJ58DHiKOz6QWBl\\/BkdlFTfnEa9PI\\/JUpomobqZnWEFBTLBQtW5yIw62bAahaX2E3wTd6+0ZcXjVKU5aUcy9lG8AI2otpIzxAI3Ls9R500QDfoRMDP822yO9xFilOI9JX6sQiFXuKDjUbFTQKxYrnYaWqlb4RhWzZaUNebAWZKH43pH2OTUNuM0EXRgln\\/w6A8XDJsx881IQQtXHbN7sIwb3aVA7eINrgmb41K6VpneGmO2zZRRq+tTDjv6VHmsgIVHP84\\/pXpNn3nnJkY3MNMaKBtGKd\\/96gxpF1jyOOM6Lu\\/26AJWZxbsR\\/8VlwL2eKrOJqgpUlRoYVJKJDn5IKps166Xr3zxXo3xsQPU+LHlpbbNIxtyxgL7bJZEvc9R9h6gt4MM\\/qK3lpiZm98fMmeKhW37XYfEfnkyxxls3s2HLdutcNTD2RG\\/jweY4lQu4oB9fvqrFrn5j5V84hz7QoXT4aYNfcmVSXoOA4zXJQzW7wPzdVAR9jBTeMNjzW5RZGIvhHv110qkKo54OwpmcDKDJZv41wTzvt5e2sh51jUCTb1g0incz8DKCREYTruJ97xcDK3piWwMapOAdrhTB\\/99w\\/TgfksTMqHjr+CJAzRy81ABJyLO\\/4ajphxUPbWsSQH6YVpK0H9IS3ndkYuWmT6mDfQb\\/d5aR6usCcmfAati5n9WMwECIsl4nZgnFgJM94FDChrzgSELqxKzViRp\\/Q\\/CZ\\/9nIs5ixf18JWx+7oGXMLkWm2nULqwGyjaA\\/z3303lhEtZLDAOYWD\\/ccdONgtErtp63LZBJvONttkw2WQRT808njgjAkAth1yxHK1MtoI2qT9039o6FMBjZGFhL1ajqbiH8\\/RqZKxbMn9pPOzeWjU7nvdMVmCT94MIP3Re63V5J0OXlJNMHFfUxqUKJWfnX+SOgq4XOdzSHzko1f5Dn54eQJYWDIwKRIv3Tm9FNjCJ0ua+8Y52qA4JYmp9VeylhAZkSwKfk2oT\\/aE2W9Mf9R+x0tC9K+ZARg\\/5DjdZNMyOkgS\\/d27SDkNW\\/oWKw+RajOWtuucUC+d+nxY8XBwlJcH7JWgvvkcwyIL9CdjhOTy52tG1tLktCjQtVDso54RN4TVOyLToB3aKsWmA5r7jciDe4ceImls\\/dRODORflUEQZmV1KGCHVKctTptPJR7\\/zyzlNl2F80K5My26dR+Z0L5ESI8a6cYsIM3r1SO9mIOBbIkE3Evaf4q5vXxQNq4Lt2tP9vHDiQXQqjY2SncnCpREqrT2RQzuT2uZ\\/iJHlPzWQyRQljttUtfUWVyshwSxKo0w3DpY+4ARWqCekLMt+TG5DW4f8UKrVR6w5HyHYg+yAui6OO6g8mKuorHUFnGFkOgiNYHy1sRpzjGWe6\\/z5Wq3xNsdYtvDqO5SD4APulI27mnzMTpeBf6FWCvaq3lWfIxp75C6AstpUjsSNqYgznrEUkLyJvRA99Ls11LHu4RtwQSvzXCiXRoqe95klPb25Q5I6yYOtbvJBzN\\/2OLM54MycKSAuZmviTqRqZT12dqaR8Fr\\/WCb4R+Wd1sDSydgVsvRFlbSHhziUy6+7vt8vQIBmw4ordqXyf8gWyjlbi3blS3kEWH1ZPsAqOIcq8acs6F9uFR9HAOwMcW2d\\/bfHGksgUxbHQA3SAyVHt2q98Wtr0pkqi15CYonUsbjONIcqH38ZoXjil5V1RdAMNV3VlrUYoXXDSRN9NQn21kyLHFnbg3vY1GHZ\\/zirEoV7klGA6MCvEpIEefN9f3AQZtxAB2VhvWSUiKu19XmVA8OrVw\\/zSCtaDmM3u20IX+wJQEwujlEGRsL2KqlkKHw39606wmf2tmnV\\/I69FvWMQ+hBxaEeyT4n1tAstoCA9Ud3oYHwYTYVb1Lj4GY0JqC5iIGOk36bc3qt2teE3X0Hrvj7ZcSzFnko9661wmTMgt5l8mb2MRCVbK\\/hmueV4SJjo66DQFXGLhuDElWpJCAe7Ttna4wzVVitPe5zVhbK7CazRWQTG6ckCv1hz0vnd7Az4tcfUofsjpqm2v6FUFTSVHPA3bznwfcvN\\/\\/8Kyj\\/uuF32+Zfn4mCAd+iAxphFkZtFo1tHmTDzUrK\\/FS\\/ORfeIqVRu9+fnCUMHqsb9Cof\\/LUL3oJle7kGC\\/CUFLEQbPAk7Pbn9M7tYWXKRNFDU9LMDZkiNfDAErmUk3sM+GgBtXR2xOarbcoEgca6fJffacPvNrhSwB\\/mIpLqc67AMovXkOhm3LkSeyCOl+rLCvoIr3PhVx8OXYeflXFhhUw\\/2I4C\\/1eUtgndjjKWQMzBoyG6gF\\/WMftlaJCsBoNy4JxXYhurC8LaF+guDmh86qsqmuPr6YKtYhNRrYW9iXizEvz59hQ6ieCDCpIGFBhlK+\\/3NNih4ePqo97bExfq\\/l42Idi5js34IHbc\\/yXRLDBnFuH5QdCkemsOv\\/XOMF830cZ1OgfH1QiW+O1Kr7ixN+UkztFO5UiukeE0ZIa6buEkx7Z2YcAsZvhRqakiD0CUPjeLnZhAnkH4cGK\\/Wccd8vw6Lqcu71TuR2hWzp\\/gN6DGGS9U0\\/6Z250H1lZZOVexDg1Tpq1YRs1EEyH360ORqlDv6z4mkVGJrjVF4dZXwJAe1OIjtjLvQoHeDK3776lVocmY58g1bg2e5PGgEqKniHPAppHg3nJ58\\/I9nIByJ6NDgToma+tKIuTTmEvvYIRuUNMVBQEDI9ldtKYDjKvbCcjzwHmIlPPGfxnmvQnwEpyV18QdL6+guMuYaZ3SdMbp8DF59chUK2U+YuNrBD2bupMHtY83t30uLOk39ewRQ25FDIfCm7oFXIzkoke0HIMPGHRpBVmEdnn6T5nperQP9gFGFAxFiiypIW4kwQ4YeFxN7vSzUhSWBcVOk6ioaXVfRz1laO2fgITnHZVl3mGb5aPv\\/LOevub3eTLIsWMCoC2W8Bzlgc+yehscQkaiqs1idsMF\\/pdDFuqaqR\\/XX0BGoVvfLNuxat0tBQcDtHkY\\/kxY5KPipKUYvHgQzMpWfNfdhX0hhnubRXoSQMdkhG92RBlFfX\\/o7YtE8jswwiGDMOn+q5sOnBzcwScF9G5n6mQpvFeKCxdPw048cUoHK2wcM6ZmmyxvIUO9q\\/Xp6NrPAUuEpCV30Kdj\\/SP7w+EC9O\\/t1p6mMcQl81u4tfxGFIxuBcT6MnV0ce6fR1SIR\\/zbiqxdFZ1rBQOR30cDVCGqZMhrgplbu82lWrmlrRrl4+DhUDcGknnfwY9w2wotRxG+SGvWvqwZfNGvvwBebSDTHtzatknHQLPzZtzp1J\\/e2lkPZuGSUcPHWRaXI22YQqb+XgPungGzyEIqF9OA7Jnxd4yqq7wrZkoOOWaKHrinZHIs6gGFJVqjjb+2dQMfFj0LCrEWfYcq3MXbMmklhHxDQZhGAxvhyhPwxk2z8ncBZNYfh9m0RuFdFrGUq\\/nv2OzZVn51bCng2QLa9pbJ32avT3q9IVGYcbIBoruGdQwXYfn8LkHJTgyKFufqeFaEJPCg5qS3fVqZQ2ec8V4od9DoB8BvzWaeXbG8PzkLawvilURVm+h0NzD7OXw6w88aHkuo3+OSnuSwBwqzkgdcmx0QuKPmlSuQCd74cts4E\\/viLS4rxRpATl+5HxLHZKXUt64gqwvSeAXD30EsPMA4qVMam+TbK7XfxCnBMGzBLNGbeHSGAuwjc46m6FFUiqI88g8KnHQFSVqsrbA8pXS+25ZMBQXxO1RxIa2nVUWP9dHUEZRse8jOAYTvwr9ffznz1aRi4\\/+UD0ZSJgng1ftswu+XOWmFBRZDyBM8hKweeXIEuaf2e7USPTAMn\\/utKaGSZ15BbkM4o7X4ZSxLgazzBH+myADhB2pIy8n4pcZ3mNuAsFUmWzLNzYZVmX6m+f5o3oyw43gMBGDMWqJ4M\\/krdJK7wJ1u\\/W5bugNERpB6mLtnbA6wIYCic18z0IzCGctzJMzqRxRtWTOvQFj4lLEilA8BMCu6Ho6oBHGzdeARXNq0eJcjSm9e8uxaUUVI03Viq5vbp12hehMuBgPsRRN279ZjT61Bxeu\\/NgYN4mgMSKYA2ez3nPoQSSN\\/dmXbrrgMU1cWeACSwyKmShed7CkbmIdzpMLuU2FIUubSPUQS6mvEE5PYL5ep9EVbQJjUTGq9cCbSjDWcpdQiV3Xlalm4Dyfwq9onsJT4qFtR4dDPOeLw9C7Yd6xoPeL+uGg2bk1v+1bl0esPz+v+KjROZ0ZJ7nPLKgcow6n7Qa++tAM15LQgRuMAfZZ7TQT1+GbRB5EMciW6Ap57wZ7QIo+6d4nA3f97CZy1yL9+fNTy\\/w3xeK0mh4p5sH\\/3JhH8j3UC4PDEY1f1WwW5aqu+zYTdV3O5JtkRckoNJyWrZVEnN8WnHIWs0H+7Akv8aqybDs3EfjFpeF2luVpazjHoE+xJeL+cs8XAD2zamKCcxj3duTYHT06Cu8IfKWIgVwmIgAx\\/5Bg09xrwRAnxIDNIHlrTpSwUUISkxOA2iV5\\/7BqBxi37MhqKdVzBurJWQoWDOJwPsoxX3xUtNURMPR\\/YvapzONc+bDYc7flHdYFFhu6epCQaVA8j85wQ\\/DaJtFwH00GHUmBtVJsT\\/d83VNTROXuNEwe8wgcGffGCfltGWsm7h9wlUYD2wZ\\/F\\/b7L+wToxf69VSSj7xVIevKEqksPFJeFtvguM3CCGsQh+\\/P72jpvD734DilvurM6wKu01jv9DHuVYdoqVnwy1PqZuSIEBLbrMG+Ix2NoNOjgDfV108BpNw6fjTmIYeVTkqCnbQwQ\\/gFY\\/8LOTKR5ypRfYYX\\/eVhiu5FW5\\/hyB4jMdcvWuzeXnQCjEufk6tXsjbOwzvvp9zuG89YBWhD9JRtWeHVGs15AiiOCskabgwxrh1rMIIUCsUtSmPyraNBmVKoyLKA8ClmJSjIrU7J4W9cZUz6lvjK2UEUsP1S\\/zQprQ\\/f1QZIaxRXx8umq9adDxw\\/irTQyYz96U5\\/q6p+ITA0\\/IQDqvqjUOd\\/uh+xNsNsC7TaU8abU8X9GfiZSh5e81qflWQQc4NsbX9nHoeIL3UrjjMzlhU7gSB8UTxH54Lk\\/2K01UZE4oJOGB3ZiXm5DhHpSr8rwmVbbWrWZimP4a7U2vIuhejIG1h7nPdtUEQsNNkReEo2ZWEkvb\\/a3CPdjxQ1oeDCzRMS9dsFkahAo0fHNgdx8oBmLJWKNu2LdF7I8xm5zjDAeiH7vBHe9+kvzgQ42yLR1gxmsoEuRgsi1jsTJQ9gM5OaPGL9aJ6WB3rv3qImK76JsbVdc2yXkNfRgbwDCBE7B14aT4h0i9SihiHnOSxr+2xeTHagUY1yVFOj4\\/8PO08ZY384twpqP1D8Z8b9nvPLcmvD9eMY\\/orM1F1aP\\/191f9ysAPVKnnyNiDYK\\/yhLWOPU9ZV8S+HWPoSrkMYNeZ19A9iPlTDDaIggkO1kBfK4h+hTDEBxjBtPdMWMENChH4xHfEld8cFQ4rYt9kZXHQYML2aTB3qkI+dp0HLiMKcnhMGBddYbtXay8ziEQPOxKlEMEnTm\\/PyOtmjRIZQjr0I8U08ET7EAxcyiFu4Y+84O\\/lVrjJK9nv1i0bwbk30QmXj+aAgoz2LdnzH2W0vysPC97PBdiZPbtFC6tG+BBQhKCy7mxrM\\/98m1n8zWBTaOND5XLEE+71lUFRwgcMB75BhgY8AQHZp0DOLkXA8UVAfC7zEnR4okY3a4KKQzNK4Yd63aQiDFMwnn4BnBvlTXvRlSPQV97h2TrD2QnRAb5w2E1Om\\/aPCPeygyx0XQ\\/mN+INwv2\\/Entgfh6wgAJzZ0gyu8yIB7DgbL6U8BpSekJph9cXZGSjwetbCvJqLJMcCTbNQgZRpSlQGLaQMZ3x4lBpBmYwVWrFpw6izY6eEaeAqy67IxjSoeVaOAUB9OkpNUkHkXO0YEOjWnmevGdy2+4Y\\/nVvY\\/udSaRIZd0nziNxMdAJ5oyGtKvrAkV5aV40tzbgEFMDbVCGNVRi4bQ7ZHul3M0XYz4hbtKB5UHNb\\/7ZNSQUGGqhzAZnKrdU3Vpq5K0hJzkC2b2+uyxScBwMJ4kwoJwerCfLKGBe0K5lGltfLdwIWMxbSQ5lbldh92rL8b36tSRgXv9PKDiemT1Jj5l1xpDZ3phQoOWd0q\\/82XrIOnQPt4ENYZFV\\/tT1ULKElbGYoON3ulYkhhu5jlEr02A4NnPvu5Z1\\/vKRMB2HoiOc9xCTh40NMz8ZtZxGIxNKKpSWOTP9WMv336AQhld7l2ti0O9uASRFpmhrm8CODbnSrEo3I4tyQorV0UCm+aPnNWDNyEVyGFPxeF+e6npGVizW+KRQqEuPdwZan6tVZSkuNhmnjp9hVN1XS9tnzqJozT\\/t6wZHOFr7IL+aDUICOEUTnyKNCqi5vnVjIYjQJS0O9VZFwvLvA2z9N139iBemB6s3+j01JO0xJLkz8V7sCGS0E4KLtJeZtNllZvAh54Bj0kyqxkSYj+MrzqMGpaB88jiy0Wr4DydV0LV6WYu4qrG8Hee1fqOBZNvuHjo+8mtvtCJHJP4MSHbAsw2CxTJ5LzE1usYPlggXgs6IZhS0kzxo8BWJjoB2n+dlwbgxrOhhkHHqJZDeHP\\/g6KQWiw8UWj7FoIMXFlFWsOeuYTGoYBVWwc16MBqu98rX3nLUwCrMvstcCNFt5lG5mmVDcZs\\/1M2mayIpeOCZbSSBUrZeIynttvxBNUB4A6aOnd4SbfAInoAxn\\/1gFruBHsBm33PuEaBZ\\/zCYUZxz5RASak5fWjQwP3ykHRk5YNnLrDxzCoZjlpkeO2HRcH1\\/zUy07zKZABFDiHX3J7BI9qlxxZ5ipxS99YBMQbv5AcaWAjzR0oH6sAG61DhpAgmO8u93S92vMNJttbqHzFQsLScyWzhPqlBB0sNV+tJpaI9V4hUUW0jT8CpIR0MxMg9Ca0DJ\\/fuS4EZqRHh1NDTm+6lEuu6\\/4mChEWyIJkKRcmKkJk94BcsC3mYYhuvtvvswefk329CxRAEXE1tzTAELjyh4iWMOBv27SpL5Kn0Usj3qxSRMiq6oRhqJefd6V0DiEkDTUT3o5dyvDv0A8MuXrNKVxc2kKNbx0X2q3hfRe7e0fagtHyT2l6\\/Lr0N4kyYbPVbAJsbIsg\\/bWZli22y1RUeKPLGy7AkXw8kLGjBBI3AXIxCtlvctTlbDyUqiwFHsiXCe9CWNl2TjBxEyqfdB8bvhlhN0uU1YaDjSFloHm\\/sF+mUhRCZ3VyZXYnOyyU96c\\/Z3CVSXbL\\/XTDUb+ZddxmOxdvgAFYM6osjEzqgHEN9rUaYoIrYpXJpzw9s0gPct8dgjCSzp\\/wt1ssHsAWLLJeoe0MspLXnWVEjpfS0FHzZ9G7lCzDzoW9b24JfAgANiBhTB5H0mw11sdKRf3aGzFiYNZ9Jh\\/X5OZKAReWzDBw5bNLHDK5FgZZESJTK9mTOkn\\/nRRKtpO\\/go+JdtGXXItT8cxpfE5RnkVJvS9NfbbxkJpToyHVD1oG6eHnKXybm9cw4ry\\/GzBxM13pT2IaRHdYj+RlehtlAncEJ\\/Lpl4HoXF7xExSbUmCnbmti0ZbhuzgOYEH9Ms17fAZdms6rqS03KqBXTGf+258Y9SI2DAPjZreV5zFlAVVPHmgH1O7RkhbVUhZbqel0CVGh6Z9V8uEVCEsWrrtvpDjhUXw5plCq2ZC304WyT4CXjR24yqblqcDuA3SQvfloUKFw+IZRqDw2VZpFTjSzlQkcPAPlsIxo2qlHAFW\\/gZgDm+Wv0sxY7e1cN1G\\/ZQKqg1Aa5nGFnmAY5O1GWgt+WZaNJ06yvS1kTSgst71fL3eaNth+XKRvgSd9Vt1KmCTGGFtcZyc7\\/NruZ6N0wDb85vUsnIMJ+nnFkTWgP9wHYW2AYfrwZL6SiKxsuqqmPFD1mnuRLn+48JDjmIvmGn02Cs79BJHJ37Z0Styhg9wkhA26GbypfRRBsi4zSCSdnzGXg+Wjvba745ievCKqTu+fdQIPpjqFto4zzFfGc932SN0aWTAabTCR8siSkacDTLw6AAO+gq8jy3GtOW5JNrqYgdzR\\/cqmrgLbHbTqnMEOdr27kcp5mJoMWVD+TYfaGhyaWAol9huEWh3S7XoVUKbUPr2dGmqiKw+2usXMr0sMwwPpUmgssqeV2azlMmPhP8zS3gFQf\\/Yn0T99SxYQdE2Rqa16hXoHQHB9\\/FGPqCNGAJ\\/lL9nxt8ppj3RLkndrbrGcJjRgDIxcnf+kLANdRc92vXIsERVXIu94ItnrXzcwIOZAQ41OGHNGBHgJJX1xdgQS8MOyZTGtlDIrG7GaZkpm+mSRCQxDsP7gsz60ir8TZhr2IzmuxPqiOitoK8WUJMts1MyLx1aorw83vfqqcIJxrdqlp+RaESjS3K6hXeI2ggl86SxRGGRFoPSi\\/U8gTft5oH48HFESYeq0SBSGIapu3wE1E8yoCigEkAs2kp86NZ9taJx4JdUxFFjUThU5tJoVB9BfwLyr2C7JkIrj9Wfbfudrf5QfrtNvc\\/oWUexN7yI8pAD9m4z04w0DCEfOdxJ\\/0bNc6SbitlBJEY5um\\/f94EiW02wZNLglH9ui666O8gUqOjz2z6Wu90U7fUze273LbVZJlwIs6XEpHRj\\/oAbD8s4knkECtWKfC4aEmNRLjIuP5YQxzoNrku6MY3OFxMHX1XreCIFDyDD3lV08GmYZUjndP8GWD4R0aveUZSXLV0HSEib8bSG0WujRiLz+AHbFA1d9fJE7ioAvzahnGHqfVx0EjM+9slRoRLOWQKi2wk0pyhTZbiZGQAOmhPe\\/N2BZsfuvVBnqFbxto4+cf3oywod+idetKfhD\\/3w82czTG2iieKcPTqU8CtmJuNsse8FXFLOMPcdALcpIFbJvP\\/+TuE0XbIwFsK++jQhgXslRDQ6Om\\/aLTQfL58LHB9B6qMYG5yzjcTuA80fgrA4OBfaxXt7u8ufE+CK\\/AD0LokJfvoid\\/VCtjA2+6dq1xQjah4pquyGH2yec4E9VG1SPhpQino2R0pE9GHXQaw2RWsBDo5ii7AYeoOsiN8\\/4wE9qR2cy6\\/+aQaMuZlMuYwsz2GkGZ02z1415K2GA4j8phiCAbhSs5Fou15wllWm6nLNdSjFyKS9tfK+Blx7Pfiq910vZaTSgxcvRLZ6rDnwZcEPtwrrwqQTBZYfZ6fckvPRxMZHnxMgoqO4Jn7h+f8KMbg1Rsglfd8bA0YF9hEsyQDIceGY8+mkthO41EBFGdcrZ2VQdYozsdMmVgmNS\\/td81rMK34AlZNPwwONYl1PW2kSPvlu15ZNv4F3MFrgogm8JsUslG2H8Pp1G7FvqQgrUEOZu1s31dc3gwMBZq0ORDVrf5GsPjYCrrxErU7IBygcXOWnOI+HTo5pr\\/l+GOfH+aQ4cJNs+40K1LMnJwJ7ZGgQ52DB5tonfuiH5uF5hWdVr6O7KwhXpJBvRefYol0iHkzAb2Vhi\\/L1AdmV7wO8VUkIc7Cu3ruPpEgES6dj60roVxi+3GchvtUXhaQCk260UEEnZeXp6ozU9mUaWZW1UK1zPmO+Md6aOGXIOpDmzfIzBT7x2wsvX7XOvgs9vp3HTK3IdP2rePBdVKYWZRexakMx9PfLLPrcxio1Bmui9oiIg0RMOO7QpGUt0dPOO0\\/VIaSu9RG2QcdhdJBA+Auyt6KFzvb1XJuUTYd4zFBnoSMUS5m2TUKXWvE909DJfueWhqTAVGsgPTuD0gGjNKvPrAu4OA0Cz1U8l5wPIstVjXanJCgRqEh3FBb6XvdNLLsWJ2SExiFpGnvrtO1SQZYLh3WMNheQUAoBKSD3FecaF2lSnE6NmOFdjkzenpLexSMgRgToqZrZSfv7ZKPadcCccMe8zHbDffkNhT\\/tegXKOfMogjlbueuiHRrKIR9W6wZ5prABUkjyceR4JF93QDHPu0pBCs1Po3Iya0pu52JYyqBKsHtjvjRx0Rkazv7kZyppJmFcBsGP1sBno8o\\/bgYA5ABh1zlaZVAQ0jFhro\\/cuAnvuP0EJBPJRxM86xTNw1Tn52SGzTAZvZcoA+MjCi2ckNRJ1KjL7cSh02r2I\\/OV3z3VfRkLFF5Q+DmOKB\\/3hn\\/ps8CD06E54lSzXAro+hy0s7sPQPtlSc3ZUZpNafQ2upIjRKPFnH7SzcjvhCPDirmzdxZsvWUrrWK\\/dzvzBxxT4ijOn3xSIS\\/fFAIGq3stpmiCEBIjpuVcOszCHHENfpXg8gtF2W0GBkO6+TJDOkDPEjcKiIwcx8LI8cqwLPLhey0QWJX25kKL67biOY4fqysaIBGLb05sWPaeXNACqvIC7InkzBX8\\/GHSwnOLC\\/er2\\/xtCtGAIon2e7XMf0XGnM70yU6RRLZe4HCP\\/X25FJ3bjZ1UnBXVo26d60HnUNHME6OeCT2p\\/LG70nmYZH9eKtxTuJmKu\\/r2HFDtItfajkm2jJz8hQJ2vE81ZrhFkjZuLMC1SCZY9edYqDontKRNkbPzn2F6qDyfhxg7zoH1+hgCGH8u1c3JqHH7ESZWseJV87OUg3Pug5zHQOWyaeaffSr9ldl684bTlkwbFQdoUIQbNHLQI+wxDRJGqsVa9WFWr20BOx6TvZpEnPaUZ35kcdJQE7RlI2aU02604vf2i3OmtdnwUNrkA+pR6UQmvd9\\/\\/APKlq5YVZFWwwdXZvfcXsxFRBxZ78\\/m+LxHpnYcson4pwMKx6VBSajenCLMiRnr2hc3Rd+lEk1GgipelWLF4A4vR6Kppp+0L\\/yxJrulW6UHqtJyyaUO6bWFPAh9TjG2\\/ChD49lWKjwtxHDdU\\/g19VdUkQuFuBnyATgp16UrPLl1oowydW+y8XxNqtTm\\/oDeDrYbSu2rl7v1+JsCELJB2YSFjfd6PygW1dBJdyfeNRSw2V0lRtOzi0EboVNhmTiEG9uuwPUB5JcXxIZu4+o7luqm+VWiuKbOEcVKntjM1XzA3AF3+3F7ARWAmaMobW9SK7l6hPSMpgHGA4i+iOLEFaM77CkpY9PMx2RpfCrSqYn3nXB06p9HAzzYS9SyXqukwZsyJcyAUcl4LknKNwRcKvRfeyFD8lRAAUb3cKeDI27EwmSAgdK2VUq5jtLzvfAhshPPOHL7ROrtzKmpT6qOJikty42NvsM9blOzwEaQNu5fZJJ4UYNMH3b8af+qUkxHaqh1nbN3WRYNnglpvF3EP0WsCR88ifw84SXmuZdZ\\/oquNUQ5a0w+8kABFye5+7SyOhi4Geo4T9u1vLRWMPyg8R8xKiK4zJL3Mat\\/dnipV0XQYkvXD0Fniesf1ky6E7Mqy9x4y3q2ePVMrUgy1JGvG74kWQF7T7Mv61GAJkfG5Yq\\/IqY5s6qTnvtgcwiRZRxMyUZ0lKQozLPDMMlNwuiD8gjo618E6otaix+ZJUsK1YRXNM3SE6ys5u\\/hPl9W9BRU\\/57+2\\/8MThOAUj7gUJ8OUKm8Twuil4rgSW2e40BvzLYDUU6u1lb8aOTkLM4JYL3X8D795DMRtgQO3qMmnrC\\/70CZwi4X5jV5064uKhT7wORTbmuOAm9yPwUXrNAgJF5vrn6koaHercVI78u93Ks87eAjYw7egLp0eTHv+X9lxu8bCR\\/m4+6KoRLruao3T6+jKcdfcIxUHoigG0fLfdT7ZTBUeuZQ\\/SFds\\/Raj+DqyLVHdFRlieZZ4dRa\\/GLfExeRB2z5cRKmmpi9uLzXI1153dQYaCVZy0FUVg4Yx\\/M3w\\/9ih3Itab+DYMyZEnhxSftDkaPropiOF\\/F8LhWecjJrSFJ0HHuiu2NjcOfckSdM8S08qK4Kljy5JO8xMPJzc31i69ykWadtw+WsRt3NHMtL6bO9HB1VOKsIpop7zyu\\/EU4LgH3Bz+K4GlATIbHLRiWMbyyas+mLyarBRATTPZRX7bzsxOm4Sa74Zd3MuGH0fG7HoCAmYJ4PtfW1HTeuyFI3OK8Ad2x1tgotBeH5Pe5F8yp0J21bRJZ6MWziXNwTB7hVKIYhdhuWGjGuxXhnPG8PdCC\\/WilPC+\\/9fSOLPGy5ptvfpQV4ok0\\/h6ep7MNPhGpCXuhvr9lB+VW7Mx2SMZvjLANhFnEoBfGg5a+6bjZVJ+nE\\/W0Gf4kUzqQ\\/zdHxJu0H3xKjLl6AqHGIlEzgNiqxPEN5sLfZEZ3RPm49TsWPKRuw+VdhXbb2lXcTmY\\/3gwXEh5mo85ezLJI44zCuC8yxmOB2QW2OlOSy4HpDH5Y1RqdgsoBCxAx4Y0hO4kiJvYcZ8zpr\\/nmFEfplyNhyK2iPunTdjlUobhJz+wxcbhrs0CCOzlLxVgqz5ta1E856eUE4ys8UXGEWly63VBh6dovM2Z2mFtXSum0oVMPkZc81qgAwrX57p3QStpvA9NsowSl0LsX0Y7sRh7AKdSlwWqTzzyzsVal\\/IYh6wDfDQXYVi+1dAIphbFFi5ltJ4Bbpv5UNuKyL29I14+E\\/YzUF59vQlqT0oM6YkKh22a1YwQgtHA7DmMt1t9W6pp4VQ24WqGSNTXTrOlZK\\/Ka0FJoanDXx+UaNmMaXI\\/ftOHnFsP+FHUUnKSln1xSCfUJQfUT5zuGkYCsh2SIcrwHw2OHWHtfU1bcXyADY84QXNvLXLgClqcacvXMD9ivzWWH4CeITKDnG16uUahbfmI56nVQynKvb6XoZ8FTCoeAcNpUEJ8GCSt2nllL49\\/Bh4kOD3vMKLkOcHOBugoFqW81Zc4fAmsolMP6O\\/fghyp0h49\\/74mavvyrTtvi7\\/rJLg1J8q9BypJn5tytypV1KweWTGqvEqVIVKJejuhx\\/oxp0kpVul8Fq9l8v6\\/MapInNiYN1cJ+0QYhyBHTiSn7yi4A3yynaGT5gTDmK03KSHOJIV1yaRGXrGMbLr7H42Nq0ZpJ3tQUY7KzbCmFGaN5RCg5SFZcqeHiHCjJn3ZR+0EYlNZj\\/u1Hc14mF2Rypqmed2jtCM5slXilE2gQxGtCMR+gS1yNuVESo4L+ecmN3K\\/e\\/OKAJ1IX7msZ5wXfZ1z3K8F\\/pqBFrlPu7sBD9m+YVs98jLN8pCJxVElJttS4Kvu20I6FrMjyvv2dqVVIyuxPKQ+\\/Sd6IEAGKYyPTk8U9KIK7mx9CwJWuijEXKCKH5fTPqR3Z7taZWsLd8CtNQDKrYlwqJ10vkNLzSnUzfGJKIUdNrC80mPWlthN3pYXtVVExDrjxEKGu5ljicU5N9Hhgw0kE2xKS25bQvOLXFuNMtptf6I52py+rwprgcSDUqzGYWTqFdiiz8IHLh8k0SYAJxEwNbfa42mEiZ43KOE+rUFM52mPhzsyrEI6l4CWIenJjhMBYFMcZddsXvHE8\\/g\\/SrcYypZRs5EnMznGf5W9jEeeMuGE\\/JsxcEsUprsmi+BErUvT0EhXr6VQpK\\/Y\\/f\\/HvhrnmTmpGHU2SFsJXgx+LlsLrWM5aA0OK24Ii2eqoqwgcnz1fvLTr8HfhIqy+td+9\\/7eedv6UHwoKJ+IYuxiCwBJdqx1l3t1TNj63\\/zsYidKOyos12EB\\/MwSqI3TPfCFqifY9wYbGV5+SxFNQflUwn+4pCjS\\/+wPPYF\\/aXhtvBNkbUgfsJuJ909KmZ5sCVwBtNhu4qQ+fXOtEeEFGgcv+1DJVy0p5QeryDGqjnXo7hxkiFiu9dwMlP1AR8h0HdMQw3Q5moDaLWuFGicnPx+t8iQE5C55EFwdMN1zdypnHNENx6ymzY3rYJSV343RkuomsqV3b2MoZYW1RnKsQDubXxq5XatRUYC0yvaOV+Api02pCtRSZ7F14ispC0JX5BxYGK3z9KjtZFUhjIbatwynuyS0CrrA4MiGnorgukjwx5Un8nI3H9l9wYwBAx1sJSUSi4quvM2AqAfTAlB+k5ZkVsZ5LB5wSu4vJq0MapGDmd6\\/lrrJzcOFffitjr8nCM+k2BBOv2RWjeHwbBukz4\\/t9A4Vxv8FIYai4aaWkZPvU35DBpCKxp+LfXER2U9iCr6f84zX+qH8wUqqaVgGwbBqSMR1GJz2OSJz9YhbHKC2JGDQJ9\\/zoYFg2jbUmQIrUqX8vuQt4kD1q\\/BaAhmOA+\\/b\\/bUJF+yMRglF1wix0XXXjRGDc3M4V9uhiF9LEJrRzEI3toAOot1mhEbAIIegpPBbUeWBoeYl58MM+P4GESfYd0ktY0pIM01SGZ0hCbagTp8ry8DjE3lwDJxaU66w6TGmx\\/7Hyebo3rDSk\\/PViGTuNIOmif0+idmAYmeot1cv0fj2EP2YKeB7fVg+Zsqwm1QWI79dwuaJLeESwg8NMzF5g2b4Ln6YCJt2PphFEGiDgFCX6gQs\\/554M1kbic11UrDYxNuUzc+7k9wixFz+VHJF5SAQeHe2xFD9pm\\/JAA4CxEnPXzkPfOu3ZftU6Oy21+MUyTJ4MnjwHIcayE0MZ\\/aL1NU7lCJOtxdsvXsshmgTjC+0zYr5kWV+ItaI7TZEVTDo4u92YrlN7\\/yinivHw+ujgy9gsMPWpQGcdoQ+vltmeO7gk5PSpTVZopBMztpSaRcT+8W69R4+UkMlwwMay8v8lAk+MfQ8unOAxIzhYUcqQTlV6HGs8wxMGu4MuQBfKt3Btc4I3DoBTlPKhiL9TbcnfgYnIVWaWZ9ralyi2EwpYYsin8EXlWYB6b\\/nadxj6bQoAW3hrvPX5ltgds1i3aGqAFsvOjeDxRY9jVGYqUNV6E2mdEqiJD+wmVhIrRlfPshu8vTB9\\/4Unw5XC9MytriRjyKByq+B7eTshGm8AgOSlYslA2oert9CJFoDXyPQmCuIRqanV7WbiMrln5+PrhtnZ1OD2FUJQYvr+F0n7jZutA0V89odZTv7GYKbaM8i8FYQv6\\/MZDmfJq98NTK87sd38hf0vooE8\\/1SPukapawvjANZdgrIu1KBdC7dn7tK1ZxvYnLIBTUjwgQdY5uZKkF2HkfUgjcWwu3\\/UwJfEh7wDzmax\\/2hs4CiIXNzK+LAKRql7NvKiffunrzg\\/EbVPKck9o+vTKl82k9vNvn\\/uinYAZESVK6MuN8bnxVvY9INk7fvn2k42ljoNiMjahIYKlmFNB4pLHMihgnx6adR0w6Ss\\/veJnn61Qf9kKx6ZqiHJnexhQW1thvOeD12sSf+go5LDdmNOQKGpcECw5Jr0k\\/PFI2PV2NIjJVzg0sxM+itLt+gWgL3BK4+ktZ9MNm1YdZdDQJlEvyWtUrFGX3S7aprmQJe4IwFL0IJCw\\/Rny2h+kNGSCkIkLswe\\/lXvV0OAJMrdRyOxgSxPebfy0FdNmokVD\\/akSwZtciP2g91\\/R9QsAZFSTV5riSBjDMFaF4n6nqTdyTurMAbhTEiQ5D3Jz5fN5dJs7i0E4CdrDFXFU3HbdPt7qmTRh402HtyOS6n+sP0SqygxoVeASS88n7WPyVe62rBczNc8PpZKLdGPwc6NMob48I\\/7ULlhe1lGahldimr4M0I+TbyUjaJoI0eWNYXeu4xVvQK8PO4qQf0F5KBumDqP01OCVdx2VGo3YCt+fqJUNSlDfeXrUTT1VnXSQoF6HJd3J1E0bMQsvNKbns9ieDdzCvvFG2b0VswGa76ZM6fev4+T0YP5VnbnxXvu8IOrkd8MEw+gopr9UdHytNgq3vXr5lN9ezGkjk34UBxzbrBVm93UTZBsU9Id6Wgy2YTQpwWR4VmrLUJiiED\\/59UTepYwMzi7Zo96xaZ4s0ZlF5D+s6GQH88RF1c05qCuar85cLhkvkyhvXtIJQAIBWo3M4rGyjQPCU0Bi\\/Mh761oFppRLDwzXTmDLdoseqp0zT35BjjHZl8p6D7S\\/unVRF2Mbh5y3gH2Uo85GnF5bQylv3crjWSmNm1bJP2fijF6uT+sDYsdF2Q1axm19RydIR4VOXuX+983ugyNqBedu0XHofgJmCDqMsyxqSBdjqUVtGUjrWM3FL3QfvMJWeCqj1Ab\\/r8n+vM0eyZHkog+WlG\\/AU5DFqZiXjXE33g\\/JDTDD6yN3C3m6OiZYfm21tHCZrAn6fVYxHxNofxJ7OEsNesXRPwdUrGN6bl1Vl1STHQNVV8MhrTpWoiUFsAl9NQlUj3XG8xSiL3Pl0tzYz4x5zexJrdVG9DLi66OzNnE8wXHhcCxsoL0MPh935FE3hRlr2t3SUuIXvlFUcPCXEa4+uwbq+2H0EwVdl23CM5S5\\/1nEiwUODYMhbTaQ9lD82DicMLGz6Uwa90OeofEmowtmQWbVjVUqDMv24gyj8qoDu7y8W7GCbrJR7VGc73lPOJf\\/1qe1\\/i91kzrARP4XZnfNFeYOud6XyXlo8EWAWjgDGxXhSm4Rj1OxtOdie64ikYtieR68FQSI5fOK27OaRkmZmmCR74l+uBNUlpM7rXbi1rwoRE1FGkUKna5tVBE\\/yqJ1iGpUYKnL8JzjiWGOCqRXvX4HC9xKiCSLG513B1VeCyGOmbwUsOs1mvdu3cvUcY423KBiFx3z1FLEhPK6yu0Mjq9aTl+Z67jRJE7nV8R4fIUX4r2uMBYOcDMg26n3Zo+qgAL3D2ldNw+iy+kAILte6prrSMFuWXreG+ASh9QMKnJs96dXA2\\/uOI1hDcKL5RY+yJWOCGvulg8rvhF54FDxGkJ8iJDsh6+zjfkSXgtJoDcy9yQuq6LM2ncIwtJmZcb5XMz16H9pWvLvZvEA8VwDTxBmxg\\/euY5YF\\/1wa6UGjTA81RI0xDUMGcFxNqV57szOf3UQFieYt4bbqfoJOY41VF\\/sGTg9vtM4bQfozzn4KeH9qKYfgWscfUF897aam5Ej1OYn6LXsATQc5aEi1DkT9CgrCIz8k1Tnbnan1V+5zukGhbUzoIdc+XkmJ65XF2gL6zQWciJg6tfuC2i2ROtKZRHtgnRrvMG9auFIU0qQOM4F6hhi2jt62FSVYlsPtVmlcWYpKD7v67B7246+APFHtlFyxHp3bjdt6H5rgI+9BFTz+hzNJMIlGM\\/oPUQ+7jOsIQWpl3Wgv+oB7a37vTnqiu+iBbYz469pdi56f1tT3J0Jl6eiYBudyVfJPQgWOdRfYsPx0lhHtkX6sJQy+5qpRVYb1QUia6bkIVgxGntiEvmRNJCNI7VerwtcjN1PwtdkWH935wNoZq2US13K3\\/HSMH7M9MWa+cdWiJ0aE3fMLNlYM+i+HBT\\/FYtQToTrZKT11wcV+2YiGixRUsQTFsoQkTlcTxHt0G+TJd4g2gEEJRf+tpscNw6MKbWK\\/nR8wcA6as1kNWwMH9a3vAhlccdsMQi0pF0bl7PoKDSmTkrhfRoHJ9e+wmCLYkTaz+rDhKG7GjSyWTYrS2OTS46d2lQ6A6b+3OSDbnkndwAz7iAoHmYkWawT5AaORtyEZgbopOwRfhnNX9lHNedhdybImf2GQCICpvQx5Bcm9dnwm0ldZ4CoerpmInAH6b1QDPqu46n87GWm\\/ypafabNG9FCv6T2N+uZCePl7XE1YEcRvAAEyMimHqakoZlVcjr+TCpXPqcPUYMzHCigETMBnHFesqhoQ86rSJCi4ji1DztdAeQW0zoUd5YcAFDIoxS8GfPRmZPccRqkfhg3uiMYeE3SiADzGISd3KcVvJokLtRIKcY6iruOLHh5cWgOfOOp7Ex\\/14WztBpV+Mhd7kFZ4Jmk9J\\/vhybzCbqf3P21xSYT7G4P8HrfCOCYh+KqEOwM8jCivuSmvwezwgRhYPGuceswWnhmQ0cHYBrn4VmvGtwPfJjdeWgds+awiTjRysSWzJz\\/Z4i8FArcUOyIdAX\\/UWwUoFDBcYJWoO142idf5k9GOAt6J0j1LTDe1jS29xN+a7xwU5nc9YRAKkL+QOtB9Oddq+6z6iDaeEqd0mSWHMp+iDhdMb5FmxyqLvLbkc3AZyeIpPw27Eah+WygbsPG66qGX9tXW3D+qVDezoqjKQifMzz1Yjp\\/hETdq3wll5KiT93Ghy6GVhkr6tVg9QXf+edbuGLOB\\/Mwn\\/Ng8Qbxr+BHIZ2vQPCjHTEEWJMB9fo9ORGO1awrctPEDaj4Ks7o\\/rTmSKWy8vfO7U1UGCkUvr6cGC+P1f7PuELvFnJtLHXUnq3ldMO4O+f3GwR7t5cz3rqpXktXOmSXr35Ey9N8iQ6KDUoU\\/Dv6pFYObtLukwfd8nBNJjlzkpQBP2v46NTC\\/J3kTA4kipV3LGRR4PUxgILol\\/cazzO5KBiQbrkZ4rA9X97nAM\\/OgU4\\/8X5dxbQ5dkMOMkQOXks2yFfo9gWEvKHR46oVVzZDXldvnZ2ZXobTiwKAmHJHPWN7Cq1kIPxxEkWBJKLLugPVtIATsdkaedr6Tg9VT9ph7nWA451QJI5K+ItJQCiKpDPYsqyVn2JtMid2mH0ZFF6TyICuKLd4IgmVcj91FaYYdcSR\\/yFi6QPWrl62JODzVRJh+tjVjgIeBPrefipE0904UYX7eCEzYrWfMqVJiXqUmLTJmOzEXH1DSvrXT9rraoVLgEvXCUyq0x8XpFoup2Cjj69SAIM1msASYsTLDNKWnz\\/pKMD9STp3VD19x7N1xIIxekFK\\/tN\\/yrNdm5TRRVAi\\/rzDlOoE3trg7373232RQ1dir1lHZTo4o3V4q0x+7UVMZ6VVYf92hslODNWVPcFC2UAha6MO99MTwRcoQZq3DFwGOmkVzn5+RP8G7+2BEwYe1eqXagNz4d\\/JJcde4rzRKJduAVsbWcdh6cggHcA3wn9Fi9sRMDugxTK0rJZrziJhnnH7rDonD6mDlfuAX1qflkz2QVNwNFTIhgbNYJ7oD1E3b7GctSTM7IqhMRfkDpjEgmHlqchchBfA3uyb0mWeaJIRoBJd+NVqlbYOq6jwEmX9RSNjPFXcjmX0bv8lcngcoWWZwpVQmNiMrqrzCQ93fye8hBjzpLxqXBwvRIWeHCeNtn7tCgXTBV\\/A2WpRWfhs+hkjYrm9Eyuw+p+YPK9lpu65v5z2miu149PB8gq4E3YKL9wVjEK637eLulWbQCCrY4AsF2eCUWtPGGO31i2RhBPeTntUCx+d\\/ohOx6TBwVbSURqnyNYCu0coEY\\/tSWWT9\\/uzjoL91FtCVOm3VXd78R8DawV1BRC1p02vbvW9C4mfpKJb2Zxvn+wMAEJSyGFpxb\\/fBUkdpODxJLS0P6XTqfz7PQGkFQ04VnzvQXjO7hvZPPfDmAwISycC4le3llOHuko4V\\/2Ze7MhMc6F0fn4I7kcjGGUpjq7UxdpvAG\\/mnru2d8IYQT798lqTJ0rHqlknf3qztzzqUtKFvIJ2vXsg3plAHr0ocerLUe1F1hJ97c5mQL9yE89RPSTSNY0Q0L9jfKkFYRTxu5l\\/Ch3eOZORNpzkJLYpHVAK8xtYgXeSgqF289ThJQfQ5k6VkZyImzYrp2n2BciaPCOwKbP6upOFRU8wnU9f7vyznDmhkJNuLt5ai9zIB\\/3gwxpxt9z9xJyhJN8vmrOfNHRh48WQEiKlR6Z+XjUZVYTF6SnBVNS6NlDoT99s9mFfpzZ9RORh6f5JKOHO69fX7DC+v84dVO\\/RBBxWB5oExhxcKJBRrbEMTJKu9k+V\\/XTwXyUsuxNM7TGemfWBdmoSOEy3VbANtxq1ggYzf65XAefSr+zHg+tmqA2Mjgw6jT9EN1o3JIPWDs6nb3UzarcliB\\/EyZWyoA+x5XiPr1mt\\/XtCJRXhKolKyS\\/NXd0dI9zKyvt+Aug7ebH2UNrfX7LhhfJRyey5pxsFAaQkcggu1RdXbYn6Sygr5ZHljSLZmFlcJGzIU1dAtCyopmNiCWWZwBJsi\\/bmymw4K\\/liSQ\\/e79C6ulXWFeVl13+0x+UFySzMdF5EYqJ9da0kPDd\\/VYHsC+g6Jl67AY4WyloLG6r3Ib2LdhTOfU2rMuNwpvYTogHMHQ1m8WyVLklh\\/2tMZsPqj9p8w38qwsgqAHDXajVc53JYqvQAbMr6OcZPJzsfmpanrS5oj1Ry4D9jtPQnKrBt820MANbdctjHBDPZpV7+CHEOownpVsS0RloD7+BmRSFQcYzFb5VJLea1\\/GVhGEKefjOfP+Dak73ZOQCVbcdzcJ2jdEnw9aZSbAZx1WgI1LLcW53Z6gr979Y8I2TIiX7KKiC+cm84Ex+Tbp36dLHrVPA3nA6OuctCQgtd6cAQlSDUS2KfFZXwt8PEOiwL9paA3OlOnZWa8aDHTOiao9sGob4DebOfoHzvGiaks5uLzN3bpFdoiWDnaOxDLyspsCH8rxJULp1KRTR0OcMW8R05rfqCbxDtu2r22KOv8XSS3gbprNcVAscYPPvRx6Rg+1wMfJu6cvOWxM6m1EopbAVQWCyc7o3Yhqod6TUJY3OPRBG8vGXBl0VG\\/otdO\\/MkZbkbq2iolE7oLWbZQMj7I\\/cmHa7gM46p+UVN3ijeKWIbVRPic0+IHArQUCRzx0+QMkogYh578cU+hUQtjTEuniRTxe+6rN7xrU1tMo\\/w3V1wIsHrds4PLvIG5Cqop76WnzSdHN\\/2H1eXsUHssK8sJ+g24wE31kwJgum75JpatJa5JWoKWJUllw5D8QitwpMZEgn3foIFv54x+CbkZpSQo6fd916y1LkgFzuCsH9yFs6nVQ85P1YujtUQnKKsf2RF0WHAH2XeqGxKRf1Jw9vGQ1jCjW9kDB6wemmDPOfXcK+aqwIx8\\/iH1sCGCJCgoUUqjUPnxLdFr77tkbhSDQmD79ViKIggYoueD5sHpilQS1dBjfA7j8et6dVwbG1GwGfyX17rPnl81akfdGU6qCMTqaTJBtq3BU3dfbb9mfNMLdZYA6HM0IulNe+1ZtJX0JOkeg0uUm6oPK7SqYSRuFxxBut1D2WF\\/qNVXaTUwSnpZe2IoiO60mAk1ccy3uWNC53jSAzMzVxqdyGapEHtM67n1UhV1ANMm\\/IaSdCnchDSnlHnI2QqsOSwiHMkEdWegnQl8odxTuQyfU4WG3fLjCCj734oYivE5oRXK1dogN+ZUQTrkz8k8qK7rdfk9\\/vszqm0D67UfwhCsIEZBOq037O3I8pa0YbUA5k3CpMjdQdWEgvHmtgh3FxuNWV40wkTiEJuOJLCIdvIgkycbrOODwpVLI2hwGynTvjfunBymUes1UdwQ9x788+AJeTHsFK3o9spc050Aok7PyAjlI4u7ryeOZQMBdeXIPdyKW5HOdsKrduNvZ6mrgz+\\/ua3+If\\/dCqSsmWJws4K4fojHDqG8Ykz0AMO14HIhqeVbJU4Q2hnTWJCXuvX3X\\/VMbb8Ok7rvAd7Z61D+4c1ZzlESeji+RRyEKpHZj6sTfYSdnlrCATuzVajmS7XTUlXHUZZM7VG8O3TYGSvVWYlLorwhvF9X1RU8jQ3aJXUGxDBxaEUaxg\\/MZVvQNKHNv2J+JtHv0I7Qw7toxXpReidVPBrXr68XIpx\\/hAKcmuxIaHdBq90yFVdDCqIg5SimZxWPCce1xO9b93JP+4O6oFGaxCqbfaXxd5FNjSeVR2\\/5kWZY3lrwVWl+rQB+raPDleLzEX0x35S+JTokLjhq4cXif7WbQwsXbvSMQtz1Sh68CkqJRpROFk7BXDwa2seDcu5HyTmJq0W+kTeKSmNH0J5yHu0mL5+FNXnUPV8W1RV+f0WWpoAjYSvBu\\/rzEtIQVSD3ICLlhq7Qgmdxzz7G22PyQWONeAs+fzS\\/JJLWRgoCnXhGhCzlc87SeugYNhYVqtJlRqCKUV0LPHJ+ecduDDZ3nWkB5DvQSNoNk3fg8GFkzIc9+G6c85rHj8nHoAxi1HQHhQP4SowoCnTcbF52T\\/0WbpBpKuaJZHYpT569Ad3r7ksZiNwvaZ9UeoQlDQAyxxjzm+swEZyhnex0606APGEUXVdBqMvx4W9pum0pUWjsMdp14hVAJ0GxqRT0LZ7akMqD+3HCH\\/H23MBADmxUV\\/SLXNubGyxraV8Z6Gb1Qe\\/8KJA\\/owMZKJHzmI48nXLLU1dHWcXWdHS1aXfv+XbOAbA5IPHkwtHWn+kHe1pQbwMX+cipqPzWZzsjUcqnlpd7WGZLPzp9t1LXSRFbJ6mJtmAS8QZ\\/DxywCSXgRzwNoIT3M37W+TytpRKVrsseWuLo0d6EiC8Eykz8MQUNX3b6iT61zTu1Huw\\/EIO4woObgfO7TKFeDZo7q7CZj1DHAtwIzaCKIooxnSBw7dq\\/qa2zlBhuqYeaxj6HP9q74FZ5qOD6oVC+bUtHDfPVYqmWtsMsp5EJ\\/HtdMJ6SMOYkJDLSkJdVkk2trkK8IzZyUAnMuiCwLRtYzo+B\\/A6j5YX5ca5w693e\\/1Pm47JSRJEXPHED\\/f0ryta7qKfEkBrqwV0KKtl57unhvpElmCVhQ6Qp53gcoG3WbO2GPyhq8e95pTLaDrT88AMNKt6wThjU5\\/D7ooHtTbTfYBs8CVfKaVkS5YdFpdDTWN6Fh8wYxU40WUwUKcRtfNXVwausSkLN1BBTB4DqwQL1xAeYtJMGrx12VcmWSO0NneYxTJAp18KL439HCr2zvOPg2aFSjVQ5yI+sFsjtZb9Sxkhqqg99RWQKi\\/TVpEZAz0kIpfZ5LeGGDcCxKbJ1pQ1Pjd9fHHBad1gvFrF4ovi0fb74sAfNBHvYzSB8134\\/B32VYSTiZAWqfEdvCnwsCqNhngtrlyczceHqqFyNJuUhD8JM0p2YnCE\\/uRjl7HjHNNs7gLf0gRYwUp5iBlF3z4qcqX1+25sqdXuFA4n26YBQBSmaABpjxAAwwWajHbvX4\\/IJokOpgQl\\/nvjRqWy6i1Mxb0ASgEcMahLSZSitR7Lmfgcsw1LuR03j1gVHCct4OfAwRWPn24zZkF4TILws8DvqMUW270NwUJh6W414\\/g+nEM8Nh36+gAm79Vnr+iebEE48YDuf9bpAa7VRpoOVTwuq\\/m46mnwtObZF05EHt3PzG+NEdO2z9mdNsnMiwR\\/tDFp4BZxIvuaGXi0jX\\/oRZzbQ5WqMUJdNerusejtvNjZrdldncp\\/X162YsN4AYbVJr3\\/osec9HxSyZjaZXkEGgbwJlodAdoBN0qnJuk0jBCV712jJwvSs8Fi7F74+yUv1RO7dUbkUd2xqGLIAUwrk4lZIZe06sXqMEkkI+JQODOh2LngFf3BoNglH6VskdDDTcTfk992vPxiUE50fP3jMy\\/hI7f4i2gJ2FsTNWMLLwqN9YfEw4ucyItsxAHp5hCyKSWIkoda1MxSwCXCa1wYkqNy3xH+K6G7RP41pfMXlkfS7fzDjv0pXr80D30+jKXGvkSAwJHciSGeOZ+QggCaMd6TL+aAkf4cTwuM7kSSR+5EllwdkOS\\/9OpYAX0jLjfJbALLGWHocy+lmc+wtd2bgGE+lhawDNXX5XYbYTiBDxYoMrizRmhr0BeXnxyzj1PERYn+Tsu8KCOW0rh\\/rGmLLn8\\/sgq7CtY92TFX\\/3Sz9gi30S0Uo\\/Wu0HZIXiYDGS+U1CBF7vH51P0OUYUb4LaTahuTnDTuJ2dO2S4+FKCMVl20uEO7Ln4W1vPSCQyZVTEwsuBDYANRCSdDlnIML3oxVnQsaHnMacUEX2KiV\\/TND8DZduYA8mO53Bu6zkmH4gJ2ZBXnoOTsHtaSNkOUPDS6xDlseDUbUAjg52jPaN64g4O3bOAANWB5ltso4isCNMDUra+nnuHBZhGeBF6AQKum\\/+ppXjTNgPvBuHmNoT03Lf2z17I0jbXFAM7qXbf0b3oH2sL0AEAXY\\/A9I1w73IyL5WACGDny0PbiVkCwy+qtXnvXKEmDtvT4O9vu\\/zFWGUjD8HD27RTw6nqJCWZKJPGOGXaopk3LsaDhmIDCfBiC4fLF9oT0XWzcerGm6BPHV6ddb9yzRMf+OBXoc\\/7s4f35ZgaWccouGPdWRCEc9sp4B5I6Xce7hU19YeekmXkt16OtNt\\/JnhvXYhOqq019pwhiVW2WQ\\/0Fg2Ilwk6Zbm0EN7j8T4d0lfMuUC4IYekkCghxCV6kzpMgz23v5YQG+X0r0jvv190RK61nSOiFX8TMv+CKxK6mzmYTB4qz\\/WH5Wy4\\/s6Xgt36BfRskK29vgDropbfTDFCtTFp9i+vtGd8EEBTZPxZJYL+dULg8cN9bV2c3bPAGfYbsQgoGklqoXSLpDh0sSm1iiuCr1CCwkktubarnMHRwJCex8rFLEqeD2P3ytUulaiik4Nmk5RprP0do+pDZuWQl+wxpyChII1C1GKjWFouFkeJA7bX810gHpMNZCASQjXJsa61NSpJA6evNXYbdm\\/59vzbIE+vs6pUx705Q47QMuJC5Av\\/yjgS5GA83EpAu1cKiEYpQNdwpkc68UJmXW8Uth8wYuG08NGCa7XVLM1qFcT4gTS6eChU4A81E9KFFEdMaKZlbsOB5EAaFO4IVTiTmVyej+uVkvTRLht6Qy3y7FrtlhlZfYjYjmvPWOPPdpGD1XxxDdXqEheOa6lvFL7UBO75JfcEFZcGM\\/s69QtmR2RK7ikDhPuHGGfo3OXNR4RwWl4hyc4DHscE\\/uJNI\\/iiU7BVQhH2f6QFte44FZSmobkmJqIwDjwjCy9DNqn3y8BclQw2A7MweNcFRJykxcVS\\/ShUn1wUmj7FR2xSu6KAcCmahWGI19W3qtEARN4jR3a3LuGwuXXS1yn+Gyonm9uvug89quzvwIsIF2msmPUWUBRoduKe2lRmgipOK9uys+y2Kt+Usb8U5x5CJ0FFtBniO+g10v+WC+j3XhctruMMS4DeAxD+1t1ZEE+84IVEyMrmiUU8NusFMH02xUgzVhbzwIGHFv6LM8uCccX6yGe8w4YCP5FuBClKwAnVlqdZcEtXrkDuGFMAjASyqY68BgLd63xiH6sn136SUo8nUJIdpavFjCtxwTjtsuVMOtpYtLeBYOaO9teIofly5Za\\/XGlU3XE0VJOii9EnW1X+NpbF8OGfBppfiNMcd2zpjcNoAYd9mKWfMwn0q8c0+iDUu9AqLwLDO71XkMWrpxq46tII0wkQgJA80j3Q6lIf51yq7YVlIT37iJTFYBOD9LAEgIfxp7fdTcagQGlpHBkrpspJOWZBBc5cdlhVdpltbEPL1jGWZfl2SRA+j7HfQnJiI3w4llBdqehy27y3uO4i+E\\/+U7AVJiauiO\\/nDC2yzNbGdZVi3XNnGrNe9a+zJPB9nK2ERsrlW5iBeqQJJU87RZsvBsQd1SXYgq9silh3LBTHjdImUEQDWpqRMXq4\\/nCA9Wy31nkqFNX1KlOm0AeDQ81Hq57Ux9QwldjsPT\\/KCPdEKbQmj+MKfcy0ukw\\/xlnKugwJvKHMjW+BFEWSGQOU8\\/9vK3e2KXZS0voLGtO0dF9L4gUVYweKWaVwct8tmLwgis8u7ER02+LsrsbMgQnWxGth1eL0mkpa1Pj4+XrwNpAvko+u0tk\\/fpaTnniZAI69YziDvz8SFmDUZRHl3uyKdHo9arfqm7XQ6hMM+v0nQHVZB8uFcYts6T2rjYN6g0Y2RG0cVJE3wQSrt5gAa1P2eD5NEwQ7aWQ5b0\\/1CzYvbcReJwxR5NnoCOiGdEuHFGN7F08bgMTZ2i4Ypn31Vr00ycfwsfUN7ZQUsaGWwm5sIqcseNO60cJbzrvMVSuotW9pxCKCwjcgstWd++\\/7ZlZH7wvbwyxFz6qjha0E5nJziYe8wiyrLKe7f8opuXP3Cqwyl57eO\\/\\/JO4194WwbFua02+kzPTKcvfRdRuLfASQWk1ffyQxmSeOAb6McOGUpD+hYqxh\\/ZGYlAw49mNeHzZ5ZBj\\/pfendDD1TNSI5MAd5eXPc98kLWX3ZNPRfxQloZhsFmBE+xitVoJ3W2TrUIdLZX9Yoryl5OJYwVHQMJhKK+\\/5L9mAq8Q0V+4htRLgCh7dEboOkkvpFJBU0UEDEMJ8DlfjvQU\\/UdL93zNmJGOfEZ9WUyTQdnun8Vk3ViSBtkFs3trARqS4j0+jvnthhzSvLya\\/oL01ED57\\/KqIP9dSZiGqaOthrIMx+WDqTwunzTcOHLvENmj6Rk31GqAnK+1bBu78sJ6kUpRv2VCVACEfLSSAgdIRVepl0Hk2Jcwfv59A\\/eteWvLIdL0P2ZGZ0Ie0E0j8dJa8iD+s6nq9BO6QUHCyUjK2Rj80mNP9gNLvwUQYgSx1OVLLE4NFZYG7EmBgaOmI+nx3kS9YYTth9mnIPrpffRyc3r+kAs0WbaphTUiRGR87kA3rCbXD4qpIWh08k7p5SqkpZyjQRyRUGmNa1Bx01ANLibca5NIGLaJJJXNt\\/sIQjWEYYhRTuoVSDG3nmNdPOiDwYmyYO1GscxA2nMTocCp2XnqopOdDtdVAZtU1ZlRwGX36\\/ZLdUSemx7stCneCpfU5PSkglxmUnJw9Ko0bvdHpUL\\/Cz\\/gl\\/+19aGai2jJGWSuOiODAtMA1VFqAMwyuyN+Pe8bU43hHQqkpIUbIGVpA8MHaFp2lVTZgiJu+Z71NHBDR5JXiiCUinNWPq7TgWXei0hGnLbcLfhqGip7hf8+k4kHDBPrmbcKq6jQO8wGnwT2ULtyNRqHtbv63P5Q8zIKq+Ubow9zJHOr+9oYCJSCbwkzDDsi3PnoWobChUnvCwrWj7eavT\\/\\/XBhRAL\\/Ek78ooITI89G0GD62fTIfdHel54nk\\/OgoUdlJREew3Hsyg63rWPf5Pmv\\/8l0emgf6Fxb+obANWN+7sFa\\/2CcJ+f5B6LnevG85UgeObGLKmlRey8nrloZ8y22vYGwPjWIwLIVnoRMwORuLiWlMIJcPt0uxJwSlCv0MCTUV+fIcYz25sdIXTKMkya5eNSyQlg5yf4GROURwfq4qaiG8HJMJwsnJkYQ8XTq6xF6eqlrcWA0+og1YK+QvgZ79tCnCRdLJRXRt0W5DL39Yz\\/n10eK1IWt0zc3Lgq6JVB+OG\\/wGBFPYvNOa8FXeNKPaWFqbKxfmvltvXEnZh9F8W8EG2Kl8mquln32KviyByZr6ZbCsq9De3+Sezb+HrGe1CAw88sh2tpmykkgL5lEYwBSVQh18mMdoZl\\/7NPm5c78RebU0f0Lgj9viqAQURF\\/f+XCtFWTTwFViVmt64kkGL0lH4IyXx0Xgm3iRu6R+YMOVSE38ATnh1u29xCMSXsW6q4i8+R8BjQUVSJ8E5jDP8wDbLW\\/oa5wp\\/u1QIVxXL86XR68IYh60DsI5MCK\\/oymxG0qRgiFon3LNt\\/VnjDYG32dN7tD+mr6nIFVU0vhU4Jb5X91Am9sccLEXFkRhfco\\/rVT+p6\\/OPf\\/fUfNxh7X+pt+vUBarg5K3X25gIcMJdoYGRWBuvk89os1X60N4SROf+69hyeIFwdT0gPDxaJrtiSYoRWmHt\\/zXD\\/3uVYH\\/AnG2FREF3k4B4b3XV\\/It+woQZ74WA9zd\\/eV4q++3hNsTwyFTsooU8RTFCWMIxeQUR+HXCLZ\\/np6uKoT+N+gJ4G\\/D\\/me4F9QvZslteGFO2BAiWuX2TAJ70Ho3Q\\/3PyiawvbDETlU81A9n5zdIWadgXWVlfWDr4lDJCED31W4DRjRa0V2hw7jUBmvGkdM4pLhMF7aqWmOV6R\\/eYXCmkJWpRj7D1mthnz31D0AcPOrOpFejcP29vEWbI6yU9rC3QzsI0qBgCtCidB4e62l2UiPUDDHN57KEmjDqw0HpTkB3EFS9YOXb1sjYtvJS8xeNaZEev78e0kFaIWsNWT7+FF18hDESoUMOAHbQmBh+UsrKXBZwrNe0mnFMmlKVWVRdkYMsvMeYHaPt6spKqyCG+Rw9oKu6jdGFjTMOTrw4FFwt+1KNL53NzAPeqx59KkS\\/dPJ2XTFLtzJ4sGaBol\\/Dp0fZo6nNfMGJ89zarcqg0rE2cdIvFLbXFLyPpbQdVUpf9DXSSEEEsEPancdOrJMsaIk8fkRZq2+HR9HnV7cGppVHJWaVU2RZx+ia1fh0JJSbrSi1Yex7gEKKiV7ypRqHirJ4eV0bRyKvnPuRdeSAhL2SxgNAX0BJ8bJscjJvQecadrEI1C8rHdPJfT\\/rHkrsoCbrZ1oUSCpbeMI1cNrOhQrnCvZTcEWEBAQW3anabnHHLUIveHI9iC49YPG6CFiNhIB3u4DkPbCZDADdZ4Qre4wPh9yGmQ9uszTsXW8W8OZEnwsm14pL6h4MxMcM7zZjMVdBUhl1H+U8hVtibjWuoamNoj1IzQ7\\/3iO1Mwg68aboZvao0QAyhZmB3fBsNB7Jz9vjZGpw9uRdsNnLfb0M0VnmI2sHiayjHUNldnR1N8T395+hFieuJX\\/j0puFnM3soZvYDZi9srW07g8QSHBPd2YnZOsaF\\/ra3wVytHArvmIDkCuroigAapg5P9l3WQGdwuiwjkTZes4qyAocbbNZpYkUaxNlK+jS25S3ERNY4STVrlje8Giy\\/hB5iP7a1shBqoRgrbrZ3Ya3UjAQ\\/h4oqUbP2jGni6vfBsWM0swiJmdd4AyMZZkjuOjOK2P6mXiKdPGwg9ViYZGjCWKz7ae7yPAKSCUeBW7ncKVl\\/hzFWCwboffgScHPN4Ex9uxA601MCF4gFiH8AIT\\/Y1bY76Q2k\\/fSolZXLv\\/HmUsMNkyBXYxJvzvimNe0KHGO+vuJgMWdfxGEdWw6TdbpuhYgTNtBO7UxMyC9Jd\\/reN0fvnWEWzk3wtbJ\\/5XCOCHHTB9tKhL6CwT96Xnlt\\/wT+Zngb3Kod2iMV+v0Q\\/1cK8A7gQR4qRyu0w4WkSLear9qBT9ZRfHCw7zUYuuIYltfIWejccCv3cxKfwNtmusfHBmIFbD\\/7TzzFAyO1\\/4Zt3dW7w7PVcaAib24lnEWGIc\\/0\\/qf9Lcgga5CtPJxto1rh2tuftx468rzfWz\\/vMBUSz4lgknn8Cv3ov+LbLGjiMGXHDKzgEc845F9weIyBfJw\\/HepJfICWSZ3x5ZgOh+Zy2mhnJA1pkb7sDUR9SsTRiVUGyzpS+PmtqZG\\/hdrLuDPu91AiK1IuqIIiFjuIBvRfOa+6nSltAUQfFLM9kQoMkyy0B48rbZ76iLf8Bp9jw10dl78yphfS6qUGGa30GKDU3vT7UieMmfBdf05SC+uLubcG5PLqcAJuSUqIm4ddKVkSY5aHIiaNBsXiHA2bd8VTFS10XenSCAabERD4uNyvWndvXHTwMCqDfpcBKjMh5Jh+ACvCVjOeIJwf\\/8nFAyb9\\/v9pcnWURyGoQSNWje8KMIgV5EonfRhnEL+vBeBxk3Cv1OD4wtSKmAZ9tmVZoQ9CGPPoX7fmw8oj3c0F\\/4DrKFIN6grhYaaiGXT1lG8pTHnJjGI9Edp1wwrZM7rdW25dhu38OuyLsjNLhaJAaqtjIkU2PHCESKec7OrV91KFgg8tJ49MiFx9i39xn2fUKZUwEpYT5m2ov9ss2WssEthCNXxmDqUHUP4YlIJdks41qV89bY+geddVeFWdyORkRd+ve1YwKHmEt3NZzPJvH\\/QaKj6Pl3iwDcGIz5cabVr903WJa9V9Gx\\/NncglLrfsYSO3HJJectyv\\/oj4TNcnM4nzvq7ubNsQkj66\\/6SFaE0kq6Xiy++1gM9DlZbe9ISncyz6jfECyToRU7F6TXEd5sXW4lLEQxbpDfnTIS4CGGZJ9+vPEyPSWdx1s3eAU+zQqPYS+aAdCsh76s0u8sbsQq88lNo+JUl6ygzNcmTnifX39y1+ZckvKktnt6AoC7eKCCKNvP0qNzs\\/ZL6ASet\\/C+0NKSAxnDNutDr\\/Y7xeLefihgLOqh1WmH7HYHJvw25leUBlvaIjQuP8P05rcFw+WKNcECVu8SrcfFg1fBEdYzAhm9perBy6U1D8zY\\/o1uD7oQdTHHcW1pYiSziXeHf2MbU35PzfailfGD+vrPkd83hzhaJK9bWBfe6ZAUom2lnBfgCl7C6z04dpDf29PyqaKJI5PcEF2Cd68f9ebssEqJnUGKKAn2cSG58UJlAhfPN5cq5xDDwg9NqROXCeNwSPw0n7oJ\\/AdUrGoHGZ66O+69YWj0eASUwiS7vyMCiQNH+Uo+gnzWzZ6LZ2lLNTBlZNSmmEkv+EI+9+IHFxu3eK1Onh8TRwXlfLZ3XlpU0oWANefEPRaaAB9qSLQBKRxMZdIKkzirSE+hRU6Jx8yMc7qikSPFyksKvlAxbuR8SvoYrJxljA5sEfcjm3J0dHpuicBESdygubCs2NfcZGlYBScC\\/KKAia4pmk\\/4zolvt8anFQEE3+Xz4++UPMPIldIiRN5boh62qPgQJc\\/B9XZC3I984T7yyGY1gyH24+UWy5bgRl76E6UXp4KVg5C0lHvGWns8glAUrKnFgIVIbECvzDdogIZ1yNFu1it0gmPoGAztjUruL\\/3ByTEapjRNAH+arBicDz5irczUMU9e75xZ6kDAmeVCWGOhQBQllH2cf2GnCDskICNDZoaF5utrpQa+H1cqxZ1v5hlFnNI1\\/O+7+Z3QGkVnjdBFJ5gsPFpoAyccfjf58kJfUf5ZtRfa4o5\\/2jSZIT2yxkOGAUmls1bRBLr6tSBT5IMvypfyuilKFN2dj4+2wMy0Mw\\/RTNTk1zxMBlR3IJhSM4NiXQAYCqhf0mSvcsg3FbZTahOPEO+wbYGFzvxkt2ch9HpheJuNPw\\/G7Eja1r9DzLF\\/tGPP96H1rCSFiG8zUh4kIbrfYyTEjtBRGcPl5H0HCnzZt6qgDDCdSTZwvf1AU55H31UzXppUyjC\\/Vtw2C+UQakIVLeunoUYX62puxvF\\/7vlj8nOkIpnim+A\\/4wvOB5XHx6RhWWPVNYN3hePAJ4Jd0Mdq9C7QLBFLWnFIUWXWMZwrVUUE1U+yvbfRiuyOp6O3NQLupsNtB9Gg9M9Q61C+tewN1PFqP+6IIjHwSmnAYftWYY1PT5W8kltWQOrO+9uGkw6GnsFMQJuLzTfHUh6kc6nZPdkU3maPNZZGHYH+IXgZwTj++zOFw4K\\/69dVaDQwhCIzVvJucayFdowjNxPLnJAHHomLTAEoMml\\/08LPvf7srrpP3xn6Y8VJTffHpClX42z4qVaXt6q56KG+BEE0KaPFCLxwoTtkYof48xMMWjYU8nfUAclWcJQZIvdEcF7m+6Rvtb6KP2fYiZjafX4kdlupaMeFuFDOt9KhBCsmcU+Rq+pWjQzFtspdh0od0qdopYDFqqHUjweRJbFFIv9aGYI9fnCynoWi5uQ\\/10ocKIEh2qA6VSrOWjQgSAMvamjNP38h27oZDL8FH\\/3HrgJ50iMviCaj75QYJEyVS9EAQUe\\/YxbBn\\/o2QEh9fYsBvW1etldXtVPJHo6Ot88uIxGfkUzc1VHnW0O16DP2v9Ijskbkz6StY6CDSP3Y8v\\/V3tsEncM8dtxpDjrt2i0jwITabHZQWsSveZoR4InUMfWav\\/cEIAhf0h7R+jLsqVMjalfdVk8mTL7S6eIpbindKJ6kaG8EjkJBBoMokyV32c6zMdYy4e\\/MJPsHxHbGBFEEUvXHpOSz67iEk9CvLDRd5sF1Nm0LIE2QQp6lWS\\/J4xrgN1fFugo5IKUF90XpI1lAzxNAlvfRvPuYRLa1kXJYuMHekWw3acFK+Lizktki0tmHPKNHzmN+cJSJ\\/K9SDdf4XfgKQL+lU\\/wjl\\/OF3KnExNQ9PnN7ax+6PzPBgFNXTX21YxnHu7krNn4qqBhcRYOyGmxHubd8ft\\/xk4xjvQcR8b0dMJddGu7\\/Wf50mezIM1PAQhKtSSIFVbTLrsnbH17weqiGppWrVOMBvYOWGZKfPFQATzbhK3IPm9l\\/f++QuacUB+YHgAUD4xSAi+u5DT1sDOdqo7D7jMzupEb82bsEgsu4er8sn+l78cLFwKyvrBvgwuJljFLUiVJ3IuM0aodFBaIq08zCK05A+CebvABPBPWFc8fD9zg73KlGS8jkXshuCyFQUPnjAiyNUK688gQjaNXfOPwTOIpqXcsmJNuhyFKgmXFPxUZDjUFm+roHNUt2yXUnxgCEGsLqAaNyNfMRNeQdA+g3ANJDXEVMZOMYLgpPYiXrD5wQi3qILAMYhocyMTs6dC6CpV5ScG+rK71nkd8xvQdIxL9\\/3HD6fEfYe7XOete8aYu75kG0N+mlRSaaCCj7qq47ac0GgWlN29Qo8Sr7Q8HYkk4ccrX419w\\/IExaGmz6eKM7XZ6hHkaP7jjBDSL6j+QJy1cacZROLiq+vAo0qu3mOD7lioCxkNOnKLVKnRGjC1d7Gi54m2L0bQJ0Z14ptA4JeERRXXTjnSnqxPkwVMc3yPhUwuV0O\\/P7vDYUl+bO+fE0DQXF8y4xH9bZLTWlGqccZsCy6BxZA7rXxlm0Qb6PXhvFMiBM5QcyHUpgujhzN0HFtlRcx3ottovAeqDtCOhl0z2wa3Ewf07ltMTBNQ2oF1IVVDv8Tj2Efiz\\/2XfOGBb\\/Qa9XiCbPiVF1TiPl+U6v2MuztXykU+\\/IHdd5+SGW9+piWgFIwvM2keberQDcHfjEIGWCIPNMatbOCQoclIZknorjcCLBlPj3DmVyAToe+NSAaf46yfV15dzJ19kZnrbI\\/2u8ikA5sVHmAa2Q8bAEs19VhWIB9YakoKpdIdvu5gzMh\\/HkAnyhdLpSkZyz6jxUzywAshAIIfDUOApdTMWcWFKymbmShJjinSFEopOlGpZ4l3RVdbO2opyjw9mJ54Fh1\\/X2k9L157men24J9bbMm6HCxXHS7t9jp88OjramHU4VKRAr7MyoqA\\/gRJruZQAwB0HPFEoPz\\/jtS\\/7gU4bvwXgjPEgrIGaZHMvmfqUv3EDXcUuRCwjWLeQQOzmVi4ZA0n50qWn+9zx15kbe3\\/o7imGqLnGlnhJI\\/hcGanPmP9M9c5SajJqw3VHIZpyNqwGVmdEkUfm630Xykd5tCaCm9sac72OfFPHM\\/0oAxRTz57Y8DnIIfw7eHrjAdiQxDGiTYceFoIsjdOrBfe1E\\/BL65bIpJVhaWz3v9EjzSKzDsmW5Ylr9Te632FM9RSAPK48GOkjDpefbM7eCiKVryiPYofAzgYtLe2i5eLUonQ5qJMJfNdKltcu9baEKLuXT21AbuRpLc5SDU0hdiGb\\/GVRyD+QrsbYsej28uUT8\\/6\\/fVBjWWSlw0iXB8ErOlaxSdFyztJElcMS6zUQlCc\\/eMtaZlY+ZIIYAtoVTTFHwVFnwV1HqI1VX6ZA7lD3HR2ud3ycUV6ulM\\/cb+IHSKWRvZ\\/yFCqgEAkJPWZzhFxQexkxx0SDOrPsKrZkYvY0l7dDYcBju4rtpYNbmZgxSU4IRfUf+Oug2vGn8sQb8fZzRtoeJTxTP5YbrKLI8T8\\/TLmEXjJrGGYssLVek3TreNJdjIndxxe0M9b7BdTCO+lPWuCkCRj1Rdh\\/PKXFv0Pq5epSo5NFRlpJProx7vCb\\/HeQLxs2930qoJ5uh1Ia+EWBlNgpiINSx7h\\/TWgHeCY9dmpgISe0mBlCJQZASf0rKwgG40vaPubggVTe5YL1ksdGNIaWqC59A61FoxVnHL+X1i1rDOQ8v86DnkGqVoFIRmo9ZivwpeWQEU09YW97W9OSiUJ0h+I1bvXzeaIo+6fqucoC8QFYh2qConyvACATGAM3Smjf8sUXXKrVGPJ6YHKNLAtwH5OpH4TmLBfdjwDjjZWofLY4V\\/oqJd5DWEo12uVsw5Az9UYqTjVUvi4kRD2bHDrznJBPf8RtBwVdOFHYdWbkhMNeQ3rOg47GzeA9eC9M+81M+n2sfpL5hFwtQ4\\/QLKF7F+m1LTP+IXKeTcmpWL97rSpIve515o9rVaGfgR584Sh9NF48ZHJEAtQQVqwC64izVMANzvQa\\/ttLySVF58S1CHWVXObbiRcDj1FAnzwsB3NRQaKERdd9Rne6wGfAvkE0mgmHtc98m2Le8y2Xllvyvj8Ed1p+GzoXMrECIrNGw50vzQHi7cBP\\/46CMd6JAiLwhzpjCTfqcrxa8ZWIj3azwa9HSiTDHJ9NFV4Uy2WwaEIUWSHX8+43BmnU7NC4IJCXU8bl9ztbdX3xk+ONtow2bfHJP0NEvl9cJLGYPahdrNmq\\/053aF8b7u3xR5l94iHPn\\/cK5SHXGlXepaZ8AnGV47R7SRGLuq4OpIk3TC48cc1+EZrvOmNv7MLsD\\/WILj8BoKTxvfedOPau5Y9rD\\/kP0piZiS2MAVZrh30Bp55CbAKULMJuOhtWulLqFNmEt+\\/dJOTUm+0LSkiK0KlxYeb4\\/BYR7G5ImKRdZ7EWUXK5US56+xmifhyytDRhFeGsN4Q22+QyleCn173wfpEfFmxHcPGXltaJvNTCJOQMneWY9IDL+wWV0eeD0BsRjUE8pqojfLvUqv8IuGiNlxacH1Q4IRrtaQcC4XgMlYvW0fTkTyMzItA5zLt+fjFZ5wDxMlnUsr97a\\/vgLYSfHrIBhyU06p5ou8hN0IYWNPjJC3tpo6K7UFox+wuUFYbHD4blZ5GTVLxKiwFDsEwCKUjWxaBb+V1WZPXz0YlhslDadQedW6OVrbgBeoUigKMmRA5eUnwRF13EnO561U8vjtGrfuBc9jh2c74XptONA999Fs8aCqcMQpvLLevT\\/9GgqUsyCO4vftSsEYxKbYRfvHikB2jZ2tNvXiF\\/3uLYEISN\\/d8hu2yV+77KfXsyuk1LWIZfllojueXCb4bxsL61ehfprD72FNBC3CBt4mqpG5duG\\/Cm3qIZeCq32xoplh8hBnS\\/PlmB\\/+lroNlyufMwvcdNd5P4EgkrW850WMAa+HxpZowwi4h7lYh5Ne0PcsUUP1BW0Do\\/\\/3C1J5Y5GqR8qxPyaZrOQTTUZxbhTvqL2eQh5jEUd9\\/TeAG5XolcfPNKbwrhzIqle8apkcpoB9WQayE1vi+aLy1+ZEqEICO66vngYNIOjkYj9H8h\\/\\/8rVgyFZDyi9wnMZxnzOJnGsi8cWwzvOlp6GBALmP3gDFs44YgDz4H5kBR5HTHEGclAmiaw\\/uw8+Z2VUwYw3QqVizJ7sYn6EY9gzLOIK4tdX8vi3c0P0noZVJwF\\/TJI6pyQvJVgYISsbZXplr9Cy+0b3OU3jyI89NpZZZ4NIOWkZHFgJcQXUcJVbGjV4g0MSvEGFiPqwRTvTPM1VOHQEl9yALyz\\/LlnV4T2nW5fYpBMNT10PLNL\\/\\/T\\/Uo+a6Re3fesytaET33K1t9KM8nJZk6hJ0CNA73LZBSNLImxJDXyw\\/z9ViKsoMADX33V1ACcx1JRBWmDJWqg9amt38n\\/C1XOpQXoDUHonRGx8inRixsYxjRvAvvToQXwushRlhFhFJTkgvmzYzhJlC9MG42Yw1BOlh4b0FpaDJt1A6CcxTnNp2nBv9R\\/iPIbzx+MpbmpPf1bYUua62cwggsAOOp18H8Ig9oUdltLu8tIN39jnB5pO28257a42PdZuzPbbaH\\/5hDPET0a\\/HKi7jr2MgFzyK2Qx7EbrkMXc8R2O99aIfURv10lbO6jmEyHO6PgXDM\\/1GpgwxGTg08vMbQTvWpaEUjWTk8rZJ\\/G4VBAcBGa4zhu1IoHmQyMP1ULq\\/\\/IZCo1bEgyHRTOadADiZZ4ZpXevRaXxSf32lT8VPXkXOQPqaLp24f4Mj8FpkYXv2I+hUmaozs4NBz3NslzYOREa87GGn4kxKbxYZNJLF3urLmFKOPKXatyTaNGyra\\/GVLaX2alLws29nKl5sFD9Exa8TJ89UTP6W50rwQ01R\\/nYXQU8TZ7iF4oaxOjxNUzd3pA2sSwQz55lwBxyypB\\/Hvy2R+\\/8jXBINcyjhTGP8fLT+Spp\\/BFmJ8hiQq05nctmDMypvbzq1hfcfqP4EtMoln1i9aCJ3WrFrJ8uddDzAgV9clu+AMGNI6k\\/+hpWa9FaO1PJmNC51k5N02jkAATT65wGqbwRR11lS2dAKLrknvt3Qq5mP1RO0v+Xk5S5kWoP18Jrn7EG59F8olc8f7gbEdWD0kkI6FITRDmP9h+TW88AL9k5WJsNjYw5vB6pvWsXPXweEpf8VkcQHmeCVcL982YBRl7k8g103G97RtdRB1Pkfexu6gz94lxK3LxjEu3MY4Bo7IHssrFNA6myd5nb50DxUdX6KuBTN2MhA32Gw2pmm08aadFay+\\/LpXlvR6+QWUmzHoryXuJzBEOX1VxdI5EsqVGgyrtiE6Vb\\/\\/nUnxRZLDyNvsPkLu1gUURFWaBGCLmgX5h8ROCnso4o7oBbgxT8CcynP0uxM5Sp4eP\\/ABearXwtfh70Zzv10yCM1Ww4HIvhE68p0DEfgfWLNCwhaZ8ONOKGImeJEC+nEE7o+wBqYeM8irFFgm6no+NpfzIEWjvWBPkiAdMFz3FScwkEJr7L3\\/4PcPAHp3JIS2cDN0Z\\/yBwwGw4lnt9U\\/HfKpdyZ70H+kayLw0m4EQPavnpUZwi0HQ6AgOMRh\\/4GHcfILKng4uutRkwXS92DJEXX1J5imju7xPvWrU+MDlTbF4cxWDb3qBXYyjEOy4AaJkzlhFR7078b2NEPan5lONoLwJvwiMGNxLecAHT53Nw7LgSBjjQFguMjlkHk3FxPlKIyw24\\/6l9SzcVaFSzib1w4TdLSmzjPWIWCHswhKU963a30h4kysHG3iOYR2mhBy1PD1z55APh\\/Iz0ejzWP9UNbb0cyXTpzjbs3kdL87zLyNXiunADFtY5Y53knEuD0Yva2VX8Xg4Y3\\/EakbCWadX1TEMuEvdKeCkN1SC02YwUSpdKl3foSysbzrFtgv4jc+gbDu2TX8\\/+lK5Q7byJxUZ35h2xuAoCkIqV0gLRIyTQOxRC93PVklMFvChhi\\/Seo\\/mv\\/a+bgvxNp\\/alGqCPHYPe\\/N2GIM\\/UPafvJo35xab58opdXlFxM0Heg6TtHAhtWaGr7S4h\\/WBHbXHhWmKrK4uB\\/F9WZJd7Wcw+BfZqQcKBGZi7iJ0wTwlB3FowWP9HJAhj\\/mIPEqL\\/wImtcpuoxNmyp7xFgHl9CeEC88clkjPtoF6Z7FJKM4y20cEDG1ilAeQAwqf4krjpTbRQcZsnPPIuRwc\\/T1lTWRE8j2+\\/F\\/u4LXsKwa5GnaTmDN371Au5Bpm6CQOPfRHOQma8zmTsvfmtumt30YAmrGjpJCRroZW17EAN2AkbUXR2M7DiYf+deIBqss3r7+swZL\\/KuiD9lJiD4qwQtY6iBDdY8SxFR6Zl7YQ9BDiLLLM4zA+5OkNJqgYk7+RZvv78YK2XQYf\\/+n3CRo1nshEHksTMD0mZvX5VBlBIdqNAfO3AxBs8qgipAv\\/4uwbKZXWYsxnaIuVIU7Q5X8j5cgVbz1dsxWiDqyDOpUeqzuBSJffFJYxwzacuUf0ilcAI1uR2Li3RK1EQ+fgsUw6fZzb7WiS\\/lI0zCr3BFxNBhv9qJ11y9Ljuo\\/YEkEjRNSAZADJbEtcMtlcsN9aDz1oFpoUCW0tO0HnMFNrUw9PLwVKyNqXheabSGeZZLQo11WTOGHakjFRMa46481Zgc72yKgba9eXUoh1oPklXHEaQikqfThIcU6IGSIjavDvMBWLkn2aXPX8yrbwTovkXHNhfNmBr3KU9otkmdqgWO9M7gVjskFhZBsNgrZZC4MzcEepISMIWpBwn3Eay+EM\\/V7Z7CuZcPeC6m\\/L16VbSDb6VND75Z9W6w9uWRWE78tgvBj1AwhG8SejBgXWlkL+4WfyqP\\/NfasIqdBXilKYPOCBo4wEvhWuh2+ljh5nO7uGsu6XBp2iQubZWK4ZwlyjufC+T2REU5g0SNmKJXdc6VkvsFbO5xkMu8ueSp43wy6Oz6qNI9Q2oaT1VBETImCbI8YnbgPBmbXdlQlnYfvUK8sKRypIjbGmYJPV\\/9sVwZcyB4n\\/Y+yMFnLY\\/6v29pKAfNqQpDMXUGDDWeoQunRWVBErShleJGX28BtxY0ga3MMzdNBm7e2WcBQeFP5XWjrKb3rSXVgP5s2XBiAJ9CW7tjy0WkCBUNbqAs2WLPWMmR3KGbiEXBWNhBcjPBhKC0ffMKbpxUZSZ\\/G4D04+UrVw\\/tvf0u188TvxIsyocpT7S+cVhbIQBU01CIuBN6Bks6\\/rBRa0lQxoDP+6H5W4RrbWPaVpQALwBeLu\\/iBjnkE1AtRiscnUTHkfQRjSX\\/++NgjchimD2Bn9jPT62LyM\\/ypx9t9DeeXKbANCwuLs17jaN3Iqdeb+rCep6FiWfzSDvTSeWdkElUgDZR\\/RFdSzptWuRHpXkDxgoeqrmYfCPQDC6uts96qSQrhXGPKlqZGpFWT6fs7lfjqGdG58FxCRP29W9D5QjXC3JqQL0BnzE8nlFbjUd+xkmpy9g4Wltf0+U9oMU5X7zXHQre9APd86QHoGjL2HKLVZdlwLu\\/8ejvoBKPGdUZQGklBIggg7iimR54IjRHbTbwc9c6spLzTMf+PX46OxDjHGYBVuHIKcUmxSEhRKulXiScSDzg+H1vZvwsKn9zdLw2rVjM8hbx8SfCvkUcbH4UFzP2u+tequF4OADLGJwVjao4PWg9aWpiYb\\/jjaZomcYMj5f3l8\\/ZBXclTM6kngVPZVK2kbfxr\\/VjVFGARkkxAIhb2qv7vWzNyFyPuhoK4iefvHkGx6zQXcqjBVsg+dA9yaMaiGEx\\/lamslqkw3QW5TwWWyJRFn8aFQyoDKyFTiySnUx9Idgv2y0fJ8Mlzb5S8QYjuY4x\\/FygWZBndTOZHgQT3LRXjcycGB31DdCFHWaUEKy4B4xv9Ivzwowtbat5wYkS7pgBl5m\\/4pB\\/wrQ9LP7AOW+fnm9dOdF+Ox\\/mcVb9erCXlpl27DtgMaq9vbiTVMHhHWrQctRbgiQPEptioudFxV+5YLNkbALlEyWhZNw11NaTwJ2fmpiz72ZITYfc6VIMNG0fvZUGfS+goDpfHc0yumxhZpYUYZpG9velA+qhGzS2ZPhCyYtEMr\\/SrKPa4+OsWC5Cw8lLk\\/Vo6v0GnihezF9dpM16fyZNZU6PongMw\\/C0N85fxsg3xtrvAcqKEYWpv33qSLyqWNjMKgdTwRZWNqa4DfnWAgpbs54\\/kYRTag+ZSM9Z4OshOErAV3yFw8ehFADogSGv2bT+ZraT1AZ8j65XDVRHabeSKjGp\\/RUTdR7XUEHh8kVCceY4xvGX\\/uhYDKl3v50lgtVAhKl3oVq7RjMb17+VVrOyR2qPYcWBSo09aa4MjJN37CytYqkykhoZmQejt6jgyZH1Xc3SqYdg09yf1i96qyJrBUM4eymdXRzNRJ42zFFGAwMGaqUUrG9fL6FrJeqYF5HhY3a0k5ngd9P0vDCi7Lbf4xq7vdbsuudq5RInYi5kZTuG382\\/wqM49BU+0fybHwSkUxUM6tzBF72hY9sUF39ABXU2Xr8RSn5723XA\\/iKgaOQg7C98cqLIUZCMhpmjTCfYgPFU\\/5DCF54u80qHpIr\\/1kLXL5l+zkYJPJMokN30SEt7VpnMQsibNLb8D0XhK2egVGH4pYSD74QPWtyj0E1bBEhW6mRLXywQ\\/JjwXvYJ6NHHaGsWHZG7eZ1l0fro1yW26QUpI2NHuhh6eykaw06Q5bOterCzL0\\/SFcAIdsRyd9ZEugC+rnQChTbMQDOUekvJyJ6mZ6Qil2UZt0T0nEZb9FmIKSuE4KcDGAWQWuDXRTzWZHas2RZubXQJXsbzDAiJHznf1OxSDG7eq941xqu2li6BWbhTc\\/968AGDdCsRPKEaCoiECpojH+e\\/3M4HBKZLUNKjH9L7UE5xx+mM0Vr2Mj18VxuwmRbIvL+8ri4zoXgqnsKNEqRKo0R5xkfp\\/qjVdZSxy8XwSNurVJqNvaRilKxn2j0oaa\\/RjqD0l58N\\/NnrKXC8oyxdK44K2psYLrDDujKEnAX5bie4zC8P8vlZND+0aNZtuUNWRHlZHab11ADhxAo\\/gOYiz9Zpu\\/4jNoYeuvSluhnTqA6lx2o1kb1dlkgvtC1fOlMjo\\/oVpleDT1NYm8Ew8OeR5HMixahx7qYxWeD0sEptSAJYJLCJ2\\/lqPRQLjeAOL9Odar\\/hS5WE5oOs5pwOBrY1opc9lC3tACpTOBli3Kewat9tklSptfJKtZsDyPHF6KrcPP\\/caWFyRL9U1GyM62JXNhobHNH+2vYdUbWDQ7FEaiUF22AYwLr4gAdfynsOvq2UGwG2IqCjnqa7nCEnk4yE0ZuX0WW2eX9Zaqi6NCPA6xFkOpiL9x+E5E05OaB4r+uZ88iKo7jYt6GdYEjb7n1ro95duwLKVf9OfzIDGYOqkuAddE1y2l87kLBcw4zDrIXWx718fqc97KZ5pNxP8HFMk9yqX15fFwpQV\\/qFlu1N0UIddqLYj5Kui1RxFbpYSUMk8EjB6x2Dis7jBByTfvXCnm4dLEL+x0nN6yk0lxBWHnCaCL0u217aCIO44Rt6uTDTYj\\/D\\/67bHU+dCzN1LufixzgoGopRWKH2z5otyoj+7Fw1FtGlWJPa5bg3qkL057uyUl6SVr\\/7bxmB+YxaF597HFbuMqiHRNjCpz3gyASACT625CSFbMRYoPdSgWfo+0HrrHX3Rk9K3LZLR1JYr79B9rsxZ4ctzrVUkKnGg6bYcxjMAwLsaCNwHZu+YcuB\\/haszG9Zzy6vUS6NkSTwGP0FNXLW9D\\/dzYjFHqv+9+ykwEU\\/\\/T81Iv1e32sRJTcGOe1Vq8iyUtG40wdcym4l08QFcFvpwKd0WkTCRnL\\/l3e0S9gUSYVMpodWiGE\\/c9zvFq\\/0H3CuQGMcOWcQB++wXXl1al2ECyr3HhNVrhCckfqNImDi2gKvO1nv\\/I0F9sUeQopJKbQwZHQLUbnnobrfbxYep8VCy8ZS7QgKJhKBqCinMO4PU49OV2gO1xjFCIhtsMYgJV5GxwZ28EOlavY66Hlm1G0s00yQiafyJJNMm0khGQemJFmFW\\/iRoGeDSwvqqx3CdHT3SUm9Ek1crdjTZDMauspL3Jt5o6kw8FYujNsQD2GZRbMLCXPkKOLtRcNufPSccZjI2HJeT0eiHb1tB3exJwh84sGR3NX0iIpEeBhvi2HARykInaHWVKE1v429XnStpl7+3LDa\\/ZRMFQLV3yMfYnMdiA5e1v6iZkG9gtcpcaWPfQQt5FhpiwsQ6bdnUSaT7SFDNwRW8EqdrZ5ymDgUY7MRsHOHSGA0GuPJjNo+ayb3QeocZWzeaSgGu27AB5O2Yown0MAHNpmf4bgzG52HGO8SazyXNdTjJ+cd6NN\\/4o8eaUjCkZY4fT57mGBWWuw5YWvC0KaSGL2e2Hc\\/j7F8esUOzNv1EVv5UWdH6SzOWvF9sjLHDhMdmpgesijF9wEv5yiUaBQ6\\/vrPR35ry9KcylNxl1yq1dui2M+TQ+gI7HdR73fRbJsHXcW0\\/m8emsGxbF34oR9vs8BzavH2Q6bZWe3eFt4B8qnKMXb\\/h5n\\/FhEpR3+Duf3VxuSZS8Zaqk1WIsj1dM8eTznZ52yEsMoRUFihClZoy97h432Mrgk6UeC4O5PXF1\\/mbh+uRh2gyPd7iRerDs3R0xF+fowGq1huw2+UXHETq3Jjqi\\/yCw9Bv34Q3fKFCQkOAzj003tWElVeeE7\\/Gx8SgDTF769nTxpLnpkZWvTkrP8v2Bqat95CyfJHEiRbt0mtr9cPGuneG+c1APwn\\/GuTAlPFjh5hdHMPh8xkSxLfk7z0kaa20ji\\/WlOOJrH5ZWCShuHB0kkMQtvXMO1G6HHB6awH7eyZdHUC6gniCySFB8h5dgu+um3dlAZxu04wR\\/Ct6SdqBTF53EqwCGShPCY8DMQ0XZpvjzeARA46P0ffAiX6T0g2\\/yurkk4AV1rtm3EWTg7jBvrb06KgARdsxFhalXIp6afH9x2OdCQV1J+q58j+4p1TpfU5dNuF1rLLoIU421USyq\\/hXSbSttd695XgAi+Yy6+wknKYYdLNL\\/D4AJmsnuCHqB0l+T2qUCXKSfCtEpbGo5T1LgRuqt4dL98gqFmy+x+uz5OsmCaIXSkZ43JT60dfd6zfi9jSDOwhWiZhPLyayRNrzH41+fbv4+jQYzvudavkz3JV48I0h9YEEjNhM8Uf7neTzo1bNcb1zoZHIbB4+VyTwYC9306yrZWuMk19zt+h4ffeXhdi0O1B0FkJ8ncQ\\/DOQjc3kjod7LA4iLnUL4rwd2P786omWKWaAom7mCrTwAImXaMu+Bp1osVMxx5PrbT+sdjZ+now7Y9vbRj1\\/ydJGczzpYETVxGdBH2exmNAFjyGcOxq9Ls7o5zMTV6KLjmpBGkjhcDc7qKFSIAbiicmHKrJifgDapNalnVdWdOuYxlnH\\/\\/tXtlCIus1hXpVlcpd0XdIKfU4E1VNs6t2jzWve7oyAfZ6eUG9vLV4FNNG+P9WxVBlCGa0l1V54L07Vz6GltIPYniwT2tbqYGxmyqbndQ7eqVP9mQBEP2xMVTJt6Pk6H9J+Z0BMVJ8yygcRWRG+RYLtOnbPxLr90foc9a+ud4Al3Ha\\/gWkbm\\/lu5qoxC8PaD2Zq6IE75NuXsy+xuWXco3Ebu\\/NvhMgUfy3NmFyctEdyRw4qgGeOjPg\\/yVx08e6QzyYpyNowZ2I1e\\/EubToLyuFcdeIxq5DdzJBFnYmYuh3AUPHrZIFKVCWWVGUeZwZmALiEB8lB+MVEE3CWsETmIntr5txD8KNpqM4PENTCUoMY6DKnjO2PWQMQL6OGmb0twAcAaNkfpM9V6v4wUz5GRed9dd4wnFmWSms54PRuaHS3mTOSOn\\/nW5ep1wiDIAt\\/AcfYCX4rWqZrIeYnxSxE7OVasPcnwKXO\\/2+KXYaMTH5BWbdTI82grlFrspZRMfDEZoDw7ZW+lvnBAs0Zl\\/EuZhjrRveLfliySE4x3DXl9U2WQwGJaMCBQ3cXadiWXj57qpCm6OZUgHltyJ8S8W1yaayWqkNE\\/QLIxqFzcZbokJI2IHbw9KJbeUXrwnpBWdTNhV1\\/zxwpkdWHGRQJ98tlcNp\\/0w8P\\/cKmG\\/8r3\\/cyuj\\/mV1iviPpibva5XmmEw9F6b5JYjFGg7MU1omUz3efiaF2TqAlETYouF9NnwnuDDlgPkz938+HLcSLKndKM9fte+\\/KNVofi3r++FN5A9AwzA0CwqCaXJxdNE1B\\/IbAHcW0iGOMA4RWm\\/Ytcw9NLlU32FPe7ThQ74D4PPrWQYmdbE\\/gGZbdJUyoCvlQBINODOKKdxF3wH8D5+0CQm9xcJStT\\/rD\\/87FkWWWC9NRriLtZoqkLZg4aRNptpAmwqu\\/khRwh\\/E7tlS5g+lilD+Fe8DkAAYh\\/h6WNqmJYjmg9pj1oqxAHQ\\/Pz1G4jUwKyOmRxrFc1iTOj2gvSTOD9XLYhY3SiIPVUyPfSivfclPpjaMErTScRu4Sn\\/FpSQ+w0C2kdN25pf2HB+ljDSdmrj\\/6n9Inia0rXg4c6HFn8\\/AoBo41VtOuuY7t\\/cDneueKAaOqVrYd6kyjz9v1Ne5KTP3+in2ncBgsH6FH+C6E+bP5d2DmcJmMbrZn+wLmZF3xaBHC5Z4SBbbMsynfkyUZGjLiBqZgnSwkXW1by\\/KjNomPJcGQF39UGa2z2aPNOijolm9dOGAJV1lvQX7X2sr81aThnRN7\\/T1SlOzRyyfN8\\/W1il+VFv\\/6PSRDuu8M2auOFp0uU8vwhUcYBZC32w++PlQfK1GDCIotk5XkOfmhm5T1\\/qCuiu67aHEZRZsoYP8IYJb9TT9fb8HGhyTjWZdPKQdeYmhLrv\\/8FbfXFvjPAdFIbXLJJ+mjMgpjuqyWtJGIVd8BEkIJJ140eAM\\/smxAifk2ZnAwZVP4\\/l\\/uFvZbz0CEaQA\\/muC5vHd7y7X8K+y7I03mXUf2sdXQ18Lluow+hfbS5pMzj0ZT4ZZ6UOI7PL\\/h1kdHSqY633IaGW+EzGTxG6iny6y53vH3WDC4jaWThWw0Bd4NT6JFL0y50RQDQl8g8L2Wb064WCYorBL2pQJoVEBgHpYEQRFpAM4qc4vFIITIQU+0rA\\/d1ojbr8eLUthfDWKnmtl82jTBjqhSSeF2IiScX\\/wgNFdWE8k18vuScJ4CTAvt1kcF5cAlIY7oiczl+Hm5S8pHZLe3\\/JR\\/hJ062F2VsodXTanWmNn2+wOds3kxmU4d7f4S6RW1E9E24omFoZ85YJEWHgrDmE6fTHXAnQBLgFTASRPkXMTOt3fFblWpVgNY2BHM9sKj664cEzMBSkGJNd7Ri0V9aVBKmrzlL9KhlEXKPGT1Uy\\/e5cUSgl\\/xzlHNDJf2PLLcbx7jrnKbvKtwD7pZptNvyW2ZXRqV7IOVYBTYIZLakDe69GzlJuG9yLX45oBIvH7S\\/g57o\\/Ol2sbClCkvp4nH7P7DyjSGQ5teX5uOFTp+foe8NKpXgp1oIGq7AWD9V58zUWovVpyEfkQFGzTMEWoF8lqm79E2zJJ0C92TpCfvnmbu4M+ha2fnK2jcKYpCNtdSvbvuRDo+jUHBwfcfzsycGG6wZ8qYCxafWbJ9OkudV2eziVAPCeUxuSVg040X0p06xbz+A3z2X6cigR5eDmSoev1HDwM7HBRpHPDrMp4B\\/5HrAl3eDXU18pgrGVUkUgpyw\\/eVOap8194UcCHtE3Nw3ZRHYoodWaweUhOD9XlhiGPDnNIypbAxshAZc41M3JRXEu\\/Px1+rIA7uW+2WV1nw5UOHLwDnbCb9+w\\/QHd\\/X6shRvfdJ+0HUnJy7zcCi0t4USW7rmXeQrtNzfDexd0X0E4DObDBcYKrCmrbA7udIPYT5G2CBN6sHxPsBwrr0i+ZtC+9axKd4hHn0jCrHaDClpHbInhx9KCAZzhZqtv2CIDTA2EghSbAx4ZAygDd2bnSesjQ09e8aJst9gdJrT1uzZAL9cRT7PhzWQFKJbiiDFKqW9as0XxYxXsXnmvTrulLDeOENjhoZst4GiMRt8zVdqjzKAn0UNZRadOC5hy4b9QVNX9V50Za82zRVZwS0sUHYwWcrDMiq6ff9b301dXBGK4WjV\\/dRsNXjv3F\\/LK\\/vN\\/Z0JdYPO6q6yW4pnkdj79h0uwjm7TGC\\/MAbo9Sk80ybpk8O02svQGBuhIsw5ppuSjVTw+XO\\/clEReqOBOap9lmMeCYCJvO718xX6S3Cif++WeRynHGCsLG2rUva+uxdzxEhkP7TtJixBbzLXTgrALnad6+5WBYT9fZKDMKyhON9naclCRE1o67HWdkyCjBG1PP5hDJiUAA+2fbCltsG9tVWGPfXcZ9Wof5Fpt\\/8MpSSwG2R6mJNY1qcZ3Q2bYbfJS90Vh1PKGLFUD50nje3mqUYPLNMz9HKAxhIbVyMqn4MvfJMy2xyJ6h\\/Hli3qTByWlcjL4l8UWv2eEXHVVOmbLnKbukuKRkXMjhRsQQx0pmb21WUfXPHVeI2nVXOKjKVB6cDuEzehkQd2\\/uHICFe+NHp5rgig2cRLhPIgNpazqzbyKXNvR7O4C9rasit82q9H8sGROFADt5xpZz5ryJjWmj534y5OpX0vRntMhpYW63QXZPzzWaRaeYr5nIZQafZdnUdlOcEtBzEoxHBaft87BHtVD1wG3W\\/3D4rEhHcoLsjduSXexGM4+DHouf+5cib4BGH1\\/Y6vPow6911DZ+4OO0sPGAS2+gA79I58DmMmaaAxmJ5Kb2G5IToC9tdPX59fLUnpik58ZosUGE7Sm8xf5fStJpb1vIc+XI+vxpTDx6EIMqIce7NvXINQHsWiza3vwBNvUuggtyWx4GQf6yGv4GZescwmgni7a7RuLelQl7OnVdfey7f6hExGlnA2oB3YR7uS9HLrzl0uVbhKoJf0LmNHt9uXy25FnigS8CzFfpNBieI\\/3gbL5A8fRcLO5gXOZlYFYvqm0GZbdp2atTLheYZnLxyWQpW7vrieX5f\\/sq5Mc6dt2DlI6uAc61IQ6nMnvuZctzgW0zefM8LWSqAQRmA6wCiJx+C9786z7wvlpUcqPNv0nz42fvAzgYZTM1S5IG2TbSqCEPoWSeZqKgYpQ1jYoriaz+KkiSfJo0\\/ZyObl\\/MsTk8u4NLQueDFiiOLiU7yb3X9lPRz86gyvKUQ0xmMiiFC2xSscSgssTkTgxsS3yN9r3v4H0PcOEumDqv9fJ2LONhEqBUsvviK7cNyhD19EJDdW9sBeDgoYfFH7Up9uszkRPq+wqdXsPJH9OVlRVcvzB7vXO5K8TGP9ruh4Sw4tzAIKmRQEgFngut+LPn0Frj04lQPJsOR0jPHKBGQuDQsGiFN6xXv3BEUrs9zDx0A4H43IoyyLqz5CqxkeQDQbkZbXF+aMSvQlhNSlOAv\\/WFxrUdmJJwtx+23M+f2089oaaGFBKqe1PrB9kHOYHyZKY5ClIvGyq5NRXvYXEVljc0D1zjlYzBzqVT\\/z1sgtJdN72IAeR2PpoNa4k\\/iq7p8mHSfuUSKemPhDpjLideIJOX6Se9kdvpSQRRj\\/6HOc7MyVeAwHeIxmj8H7tR+sGZiIeX\\/6BvLoYW38U+qAbEkp3+3TSN2tUjn0PTd22UMi\\/VPn\\/tRbPDX4BRS6+EKKCTsBRaDeScqB0\\/AUnJmpc+1kW28I8fkUdBF+2YU1vF6jXib67iwxJWUwf+8zpiOp2rMuOgH+dg4eJpy1XAouw4Q7eq6L3TPZIPNo2HB7lPxKnjvyB5OHKAbNRkPnZldNJT3CCI2jUFkygNRI3rqKhYAH8LputOsIsPHlt9kYGiShw3lHGFT9igqeAqv4uBm9Rj61A34l05fR4Qknk6bdFs2BufMS4zpw1mmQ5qfelAO507+vplbaSig6+A8GzLw2mMtqQ9MiDq1phajblKP4Rpv7rDtR8jI2oYniMGfx4I0qIWNgmYJkla7mDyYHbdXu\\/nYtOwWrwIvO1Qf9eYKbMY+Fin6ELmh9UnesZvQ3QIZzRJCnqSEEVG3GoJEE2\\/8ER4wH6OLJJCculuz3KqTnQiH6QPa+Eh4D1f6wUFVwiAUQsadX8npyPHqBbD4OY2O1vxbxH3KE6jvwdKxDzV5LnCMfaf\\/QJqyQ4sLKtBIvlfPxopZw25nksgGz67i7DReZ9KxwYCByyKRY\\/YM\\/zX1cWeqdFtl\\/7C+3riuFntkKlwbB6Wol6LDersK6aS7KJYiXeO4OuqlcJNeF1dHUffPPN9I1+AGwCXJy2noaYc60SW+g2CPrd06xaNl4D5gOcqxpUaPXj4NxeBOZgTfWTp8WfnZFO9O8qGqR8SmWpFgC1w7tBVUeEKVoBOnfO\\/0gL88tFarv\\/76u7Jo2cWpSsejDh\\/ss6\\/K3y96JiA\\/Nbk1nOJeboekYVf3ztOLu60wgNJVqgSAEuVUdfp+AsGBCq8ne5cUmDbfo58IXAvqKbd\\/Il2tPOFFOCVTIGObV02V0BrQqlFIKeqtzDZ6pp4NNZ0ck\\/r\\/UgQu5qIHPyygxNyy5gTX4qM8WeyAz7mjNr3mA7kKFpjq\\/OYO7S6Nq2kleQevUb8qjAE7O4BGHEv75paLVLAx88Cb6LGehlB4LL081WdhwiDIxCuXRNv2qCtRF5BLdtjmDPg2NGk5tLhd3WX2\\/TtOeSWrqpY0wdZ5tF0uNqHmckfmD0V+ztWsmBTdAxM6rsWOAyWvRC2QQ0hz1D8WOGgow9v2V9RK5XNW6TkfjTu19yWHpRu1zVwAxD5MaOomvYynrgJsYglQ69vQW9E\\/6Gs8f5TB\\/ALXlKke\\/evxOvZQs\\/Mm79V8ntmWw7OYSSZhgqKboD2TRhS3+zToPqulOOvvjb6\\/SB2XFCYGJMyknylatiVJb3AUdiHz2mj8mguhNhPverz6zfUauAZ326cM9jbsYqCVbQTZ3iJbyujqwDZnwqUJ62w8pBaJAo2fi9iQgaRsSqhvFyE2fQuFYPGsG6lkUJh7LTMry1TCvc+5ZP5UGjB+vjbyKaohRSeCYXwDFbwHVeDb4z7aMim5QhumhESRopY\\/14FyutgHtwsTNBhDcMN\\/eajAFAcTfJJ5+kzbuv2MtNtHvY5LdYBaCgalZemw3lstxbSO0KfOoAZ1vzDyzPS4zLgm4NrCBI5CEgX2Z6GUPhvCNoZ4MRS7IxCJ8MKMG\\/Z0WxxtrqI2MHqwEGy+iG3K7rT+s7vFzFtxx+FfO+VkwGs9T68N5CGr7UBReBqEuIqLdeMz5yvppCN4uvcNwyYD8mTYfNLzh0ceZE\\/Oc1NVUFgZ1k17p66FSxkDqDvfyy\\/v1UcI1wf44rGzyD\\/M4W9e7vYRtrKOv34JqOaXQur\\/ZTGUddV87KljvnoPIWt\\/Yxfg2jnHYYcJ9PNBEcaZF\\/3lUQhxZ9GBr6jTFD9v2omE3vyLYlOK9lf4P5WPYV8HNwLHWsX1iZpB+Yg\\/zJ6fqophBbfr8gIrLZyC1iiJFDe6\\/\\/IiDqu2+LZJHm\\/iQen0cktFVhpJbibNrBTptOLs7WMjogYJAPnDnu0a\\/\\/+Yn\\/QrD\\/Xg+NayNkR7Yyt3W7mRkoMpjA1d0uqKyvGcz\\/TxS5BJQbUzF6T1MuxeM9z+yaIOtK6j6C60DkyqIEtdJhpcBstO8SVqdub8ZehEyQdjgC0swgfii19ctIxJHj+muIJvuto0rhJcM6giexrafd4H0GJiP7aSDnONaFlw2YRUgWPK25cOgNC0MVbqpTNtlPsAhABqvNzL5AAUsqVNP5XhJanY2fIBZjfHsyO9+v91E53AFZyqOWLdJjUpilETDFhvDYGCcL5z90+SUUUriMhww5Y+cEfkSL2LSe3+5yXFTl+yHhDhm3GRZMsFIrvxjSG9nuPymJsG30+nyC\\/\\/BoI1OIFImqAMBTyzhHcPGpNY\\/Fz1F86IrQHfGoqjMUBv\\/sLdxkhkL4yQXlTJPIaoFxmz06e4ea6ph9UnvD2ea3i43oPnIfu97Y\\/KBtaDI908hky2Q6A5sxWvoouZYpha9N0QdkN8PvGxX1x2WPwcBNXxCqFSgqkSDiZPMOAZL23F4sltF3gBsHAG1QOX0XIzBJVS099HnZs7NWCpeowe32+urjcAXmP5sFkPQPskYUuANGlZZ2wZ6VVhKQAI6DZ\\/c+a1FyH7lkbugO47I2AczSJtpHTCcHVFtVIZomKaYU6y0bY9\\/lsID11nHLt95dBV\\/THOWVzZxWsDPobBbrclBt1VtylFq3x7IiKdQU6r8gfg++iW0mRcQTGxUFIVZqTyNgaURzznuWGBAJe6ERj19aBYwoOLv4i+ojKUAUmAYpnO7+Vd0Qpy38fZhX4Xxw9AOQcEeVIjxm5aXpEmn908zBHYA7X1nLVxT3b8IX9sJeh22jofp8rS5bKLszP8q0haxm5AXcxW+6zei2vUQ\\/DowwPdljmK9nOf4MRLVuziVMMVjeusz1LN2lY\\/octaf2lxRB1M2nxeLBjhuwYzuwgWSOWi+FOb2OaFyyGGZKtUxf9qe4E63U7kIUbf86qmaa9wRvYcoci2dXug+08p+0tfU6kkHagk\\/Not6DS2W+brjka2pZtdPa5QddPTAPmihUYtLTgadkULpw5tu4+4Q09WV\\/YIYs9Fd6o+CW\\/4wBryub0V+eR6DEDGwaU5vHkTGme1T1QnMS8SGJJ8WlX5eWyS8KkSj5Zejqxttbtj9nPf780wz6L3VlrSa+ErMfWWFfNbLqVPwqJAdGLsxr+WaTxX0xbVk4oinRNDYAXOxtw04ovRePiJYlXh+khfOI82EoBJLjoM81C6xHTgzpD7XB\\/Mrem4068lhFf5W7r0EVVZxhuawc3AUZka6J708XwCWdYqrNLiB+GDM6vjkjMNGo8uyjvvg0AIN3G+E3qxS1vqFyzhj8Bxok3pxNgV8wjTF5XRZ6usZp5c695y7eUP7lU2dHej58\\/gOzEeVH00vBBhgtgvDKqCVEQMdVh6CFhRFgC9IjbY0Ec8DB5n4NhJGlPhyajM7ZzYhecpussonrkbW9Mryk0qfiLFjCwYUq+H1VIVaHqzOW7kfbxgjv1zUjjormK5ddR68xv2grKvO0zMu00c8Hc9e+J4dSJqU9xIBiwReMyeGI6Qa8xPyGv4SZ2IR9ydahWSSkBwUG5Q+fjjRYSSexhpQBl+y2pVnHK1+vI6XN6DS7rrBny+p1mADVba3gkuZCVyxIUiBwh62\\/\\/RfRsBeCDTA1jdBkC9OLqUagj2DWlVzPbKiA6Ef1RdQS50lc3fVtbqeAyYxRSsGRwOcLoLMKtxRw83M\\/TqExj7BsBX9qBQebF3JAZkKr\\/qEF9pZfM21O6Lw+jDQUuBkI6DX2lnuhEc\\/hrY+hzSeBAtexwMH0RMXuHprS3y4WlYMYJo86KMEuyMXAEzgpPo2l\\/CRvUkHkee2TozmrGxWfSU7aCF67s+nCJ2QZoTQeWi1JFx\\/qsGzMpQhkT+b4f2Dz6wHVmSZO69ax\\/qZScYbPMbFH2d86GWnGRLeK0gDnPzFiopKSVFZFDFu5jJYhl3+pmiXRLgXWApftabPoA79Zh+jwYckeovhQmYAf4cGfRzKis4\\/k+6Q7+wQFRBEFA8+HFSkCBo6f5zmJgjHk3oAt0ba9C23BCJ57dal7t1UQqZBrEZIlc\\/0vRnXhTo6Lz+PbAGyk+TeCCYki5fgUeGUzxZb2JMYsq2EsLA1rJM45czewxrTOhaZvMO1EXWeQbTk9h\\/mMUjr1BHohHQrciEdo+NWq9fMYM9IixZ7aJZKVOS7ChncAZ8d5HLvGJKsWwMgsTWL+rNNnMWytCvsgWo3mNV\\/OLO+UrSYwCJ\\/vGAEy31JQKRr3Dw0TYUa0qjvkSJWES10BaotXe6YZDPE2e8pEd\\/8VoAjpgOC5iHM6n3GfzhtTu79NpC4lcJzc6HRUxYZVoIVTR0hSRRNv+98zS9qz1+e52pkDWaBchRZmX+UvHxAiWNEpDaCnWH6Ut0iWFFx7vCSEuoHZ5CcZI4zo7965uHMF7tVXkW6UBVulf17V+1T\\/pSI9nDg1vrq+fF7BVNGsDdpph8lJh1nvr\\/AlqPx6+tCw645bobLDXxrRBwJyrlQeV2mIOLqaYS0bs2vUPShq5S+mygoB908QfMwP5mfVvr1XQ4Cl4oVVKctHgrfvKIQDOtxXAjJe2DpL7ksbKGUiulcBb09WcK52nuQB1NtLHbC4WoVMMUsbtBMJYAFSCptkRycvRS47A4OexgJZ0flvhghfm+Xv+TmhExeWcNQRd4sQeskdd0b6\\/F\\/9KHtH5DS+\\/DVm8X84u0KxuVmkp0aOib2SUEdseROuGRb6ud+2NoobOfcE0Ex8GqKVfS4ARbsCLtziAB6c+wM\\/xDWUZ7zQWmFE1pn7Bn1uAbBX\\/wqUfuB2UxF9CI4oBoxgaZlhfYFDF+ERBiGMp3NuopkSlcxvrTwMqaIjCUZ\\/OnAuKiCNTn4ouVwEm9mBJGhV4VfIVzbsP76Kf7vpeEfqYRiFIWViZ9kW1NwHFyjs9W9PcBFzIS\\/gKk6HT\\/CHQedzROFecy9Na4BcqZ4Rlp9uH+24yzB7Yye3OcNSlg0kMJN+6Bwz5x1Ah\\/JSa1i4RfjbB3Yf4GslK4lpNiW1xTFZKg8RmGU81Dic0TkqZ5GvVOTca\\/hgnBLbm\\/fE2e9CFcsKW3CJDXO6a0ptw798bIaD6us3ayOUkGgyAvhM73b+cu\\/JN2IKf7X3wvxWY7rF3kWVbC0YWGQc2OvD6qUwP+P3EmMIKi62vso8M\\/dC3uYby31UbM5aL\\/KxbYtJzNx6KRFwly4bKTYD02lR7tDuSSAMmBULSmKDHbSbWI904Tmk+WEapGaCAG7ipSPFlAdRFbqWJLszwh6ByghC9lRe5KvV9mrda6LXJIa3aEUPmgYPZFdcXh6sr4ieFE+JUeeLHSu\\/lXYYHd7WMGeTCvelWc7B2nnv1cGoTynqGfG1WMWQ4\\/PYyjxqf+k+iI0kKGdA5zX3C9u3EfZmK7DU+OLXvgWCCIIGYUoY+jMVAj+rAXyUPKGsKA8umPmmvr7f0Rf5pqwWzOOfpn\\/PusUA10bB18dfw5id4dNxNkRnCADlJTRWLxJ2ZpcvD0CcTKi532Mkls75pwfCv4LCkW9dB4GTHprzNoTpNDXqahCCXQ\\/vJOgpwrmTCK5K94xsYfvRALcFRcVp\\/etZPf0rav3kmPZuTcm0XDfogoe1W9lZQnSBzsYF9H55gHzdv7jG\\/xZQmWMmA9wdLspx0R3HHs0HBieuH2Yj9gjsN11iReMr\\/HGANVSnI0bzN2d4CgX2XIoEEgRiYG2IASoI+mMw+hNxqCH4GfxmCwBKR59Iu2EPsdK\\/6THJipu+swv7uipHxKtfKfZnMOPv7brONIxjbo3idBy6SNtEZriXga0ZHCBb6uMazsmykwzcAspy660cdEFMy21pId2on14Ikcd2CBreol27K7fBhR82myKI166BrefJZqJrL58VViYBbprDlAjFT5Nfkz4+Ba6axo6kcbu52ViiYad6PnWOqZl2QpKqn6Sn6cPloWxbIFQP7PmdcAxsShR4HYCSzrSXbpTjMmcNMIapnR0K8Q4fNm1pB045IxWvkO4dO5rJkc5LQ3b7CKfGzVHvUfePIaI3RFyrqHcRcjLozi6Q5WU6\\/gLalnQPnBNc4eUJeT561QUseI9KC+yAUYSq3vCKDrDKJEFC\\/\\/+0SXgvqcKvFm3SQM4SZ53usuBvwPlNA+oMPV9YIntwVmfkE0rsTsb5nW5qdWNdZi5OdD\\/oSciYxmTnfQCdyA2mxRH4EZUi9WB+tY4S93RSL4dlg9jBEGnso5rW1h3nuBJRdUL+9jGqLyBrq8hCM\\/hzt+yOt+vF4s2HAjByGZMwZNlskk1ffCtkaDoqyaKn1Rf9Tunk7nQ5mkzmz9G9eGqo7gcLs7hAqbwTcluNaPBVnWw2mi9IrW5rufOzyotGCMFTTViTeNq8swTdyX62T\\/QqYq81WgMR0HX3aBOAAARw\\/B1gnA2drWJnsUqM2zPwvOGi8AH1EAMJZ1TyL9\\/tKwkwWacUB\\/hCf+1QX0JkmWH2Su3gg8YYWJgmUy8EZTbW7Lcy\\/zyUJFJxVKV+A64Yh1TO\\/PI5QFmqkA6d0NipgdB2ooygdMU98OxQ7x26fsaUJPQyHmhDRQORJbD+3+HespIRBXEtX9loSkbcIPuI9idXRgLO+LaPLu1Y32TarsmMR3Q7zBzZPUVwys2NQ4nm8RVwlCJLFZc7Wksr4plM6\\/5fBlRYQAi6bJUcGu443m+zxeMVRnlFvfA7Lc6OrfHJFFgxcriL9DGe4p69e9LRnPrnyz9f0hLle2w0YkkRrqIVbJ0FzVS8RvaR800Aydn3ITj8nLsIF8ZHkL+58xgV+Xs4haSi8woJlLHFv5yJ1uxtavJlcPPaQyJf5i1Sdue83GbAA8i62dXTQxo8YKfQ2oBichNF7nNRx07wGf\\/MAgT\\/WKjrglzHGbNkDFOQ6zj\\/ttRlkAyytEFWXKbvGuAeNzrTTWFkW6kRbIdFMFe3BnF1PvmVwV0XV9rStF0axZsV6C\\/gyE1\\/PwSlYOERnXldWGmiGu9dH6OoWdrqu6d2zPJ1mur6tSfKjPzHUF0LW2gMiS987sw0ODA4iMJYeLlgDWcAiEmwydqOEx1XJL80RsOeoPNMnPfeEDsjW+oztfASUxSbU4n9qCVNS3CzoBWGAOJ4FIUNcdrxKrdQ3o6c4MxiGaf6t4hsjfWV8ve\\/ecD9rWwz6tLcdD06HgIoy6EPkrhzwgVBkMUZMukEeHbPcDhSjPxcLgcPPl6taclR9SBr\\/t3n2861pS6K36Xl4lwWCvWyMUWgcRENejxQ5kq5xUNm\\/hx50PivYPdQkltxARwcbp0FePEM7yGAAzbloTeGwNUnvKwhqziU+X3Qzcspoq4PlfZqtVFPr97+l\\/4+1iMl5jzVOKp4qfwipa8zg8a\\/07C6opXOzjlW2VlAqnTj4za\\/fKShYD2Ad6mGpBBJzIVPVV98LijUvrzsstvsAeqGBqWC\\/FcNRXZpq9VQtraaZ6d\\/KpLuVul0PcHjAOjFIxnaxqP36ewH5lw07iQ4xOPro+kWB0HVcW9bPrCQO51JJUjnA6Lk2XwspVghMNnX0cetrN1F6Wl+BwjozcjwtaU9ou6aqqV0c9A3Aqrc03svrC3HyaXtqjsxkPcwibBlAOjjGrSBw6C85fRns6L0ZNSJKgp0+Oy41khCAXu6rh+ezi6KAOXasqoT23xovwOjiSjNwbHXudjVpwLsZ+rHT\\/e56gIpVgsJ+zdD6m7KM02Zd15k1yPlta2oARPT8Vu3ycSUuH\\/oJpooY8Ge6VYc9TLsdzBrZjuVGNeGcZ+\\/UF+xhlL7dPg9rzCGXKipNXf5PoZErOp1GES4+P7hch5nunz5TLbaAUIitqeuTyBtIPOv5PF\\/KLlGWlNGQ\\/BkS\\/pQkqwnuR+MuRnIYPWwoc5frGMApT4gSrLB7rE7JH1Q+N55+lU2bold+Blq6Ltvn5uHiHgII9O+d5X5Og+Wmy7jw1xa1AK6t0xoHktTl4LYPDAO4mBbF6UvobwioXlfblWm6SXZnyE\\/UaH\\/71k\\/WAaVG8JUimn3bJPugccWJUKGQKWb50LewLmI3q8L+7FK76kdJ+tsOCYA2QJlTYbv4S1CgbWPFyph6M9VsjfV4utzZti43A0qc40zfNmdsYj4NDsCvgCYa6zNjMQQktjwpUJQuXUgdgBEEoJkwtlYO2gacXjCYBbcEiNYXpYk7oUemo47876FRSPUqkITD\\/Q8m0oN0jz3SuYYM8MhRmGFTXtrQ9DpT\\/Ge+AvrvCg1E2zTZ\\/t1YAhh1SZPZKNnrJSk1Mk0Ebs4SkjQ0TPSZe7TZGFktLKM0NP60+CaWcy4wiZgh5gV+Jb+C8oV\\/2F92r5CplTk\\/mT\\/XUhnK+sxI3Z1ymkp6HctqRBQsudqaczZqDiuJ8bZHV5X\\/8bMIUtbiwqlj91dVIVyczuYhrKr2K7N\\/LpZw7miCiKawkf71t1km6f2UPkj4kxpdBtZirfeugUHE9o5cMk1CAa9DwL4ZsWbx0vzItK6oG635Dyv6Xx3\\/c2y+umL+HbulaoXkblehLBjlzPtCIDfSLCeXAUnHz3xH7HRy2G\\/JSZxopHZdhAXu1yOgIpm7m0qPPmoODRgfn65ZVftt+Z37s+MVQLc9nAdoTkqMsHhlTJE13uhEgnuKIXc\\/TTDVwbceAg2UvqUL2CO4lSiNIrAuHyXdiRqc7t+pd2+NJuXAUHsoLFs\\/cJTptEm0O7H6qRcINjcyTM3oUWcxrr5GuKbmY3I7yiPsSLeUYvKno5\\/Gwx5GxQoIKlu6huw3xhJM2UxjUUInfRQUPutkQRtkcvaYgN\\/xj4INimy1t8rQqMhKdnqI3XJCcg2ieno5+hxtWe6E7mdPOlxzbcfC6kGp5QEXSPi8JaZpeaJepE5Tq042Ssnbu4Qtp2xcgPWxgdZrhpTttHs5Z2PuiSfztIU13W0grw0UzF\\/STpmCXKkPBrRVLJEcLjQ\\/dCQcdhD2j70d5PaB7RnbOu\\/Ka9m11touSaOXNvlI7p83qlgDoVQkRPv1y2H2ayG8r7y7pknuy\\/4X7a26u15UyzoCmMzARBTGNmcz41fORLFUC0dRckE6wiyrvjorEWTKk\\/OTZqjia\\/em+nodG1Nfbj96XwxuqoHEo6P0TWeCDcHlpuJQUv9h2dJCtc8H3lQZiN+F0GMLnCPC7AoPXUQdrp75LWHS1gjZ5us1x1DdbWDyswADUSq5oeXafmEF+gJV0JtPw4UpdJfkzMTW75DRR6EZhxMUkqOLuA5FUho6UPgj25aaeRgZidbWtRVSwPmyg7VpSfg9wSp2Ajfht51TySrfrvTGNLbmD4x4Q+P0qdWgg8wUowsME5nRpK\\/0JjYXGiJiHqXJNDQ+\\/kkBenYnxppVgNTQVSmtZhwCieRPtAoGV053GV731Gw8wlS7I+YicrQalE8vhH1EiMTe2XL6HZ8oAnwvcsyqZSX1ec4dCwZchkqwMQ7sw6RONfFvfMxWS5UjSo0oS+s8wmX9iVs9LrftRAby4rtRFqxm4D2MEaIDTGJaQuh2ct5wy+g3WC6KgQ8xUybt2W8DHDtyM76zXrIUZSpRCqKynwqVSH2M1cnYpmcFh39\\/hZBgYojheWE5FWAF0m5xpySsAdZKgg4YHs00MCkel7EcymsKHLPXWkMRa8LOCMY43s64JLkXH177J+zX2GrbHksRu9GBgxl6rSR4wxzQhYmmye8m1ECH8WRcYU2TO2g4RvAZTl71U4dySeAf50gXnAMK025PsIdeRYWx1ZEa8Tp3c7VFUyceYmsXwYqL2K4ceDqzEmirQ\\/p\\/ovhp4z8cnmyrY1Ys3iMgDjJBt8Q9h\\/usxfO6FiIXPMiFa1taY9jsloJgshQpG8X5enz8mSeA3MWBefg+3FZC09N13vFprIay+pP5PjEA2rMJXxhPyJw5r\\/NfVWUzMTu4izL2Q7IzUIYP1IycdDapjmBg0peOhOl83haZRvGrEKbhqBeZ7nvh2C21GA9ppdg1kTEhrwG6uRiN4wev82OT3K4eGij6Mwfm76NaKpQoXQzYhPw7z6ap3jvlr\\/0uJ5dJVcy1WH3Rcud4Ivys1BVi2niE5GnqZxVYPLH1TLxdLwY81NQHU\\/NGGer05AiqWU5dlyMnQhHXrp3qpifPpn0ygps6NZLGN2iyega+1nGDx517Ipr1nX8l3WdoDSfva3REcaGfwPoSUt\\/O4pqLifZrsYWrKns9519uWD9A\\/gljTnzyA6tHf+ufOfbkBV8THwBJm1+qHGDa9yQOOgpKa5JAra+zEAJogcqEiKFxyvfPsmzvZ5YrNPCy12CVk2q57csb16BVd3dBhh8GSY1PL4A8Nq45nKHmWf3pZCehPKZ1JSmYJAmSFnTTT+voZ2fQ9cf8e+3BPfwieL0tl5hdXcpifQDvRk1GVUglJ7lUozDwfVb51lclFWW3Y7LrOWbn9Xyw7ii66A8U\\/moER4oh1sHAzW2LFDsdaZwJHoWxqL6mhVPF9thNOkl06g+GpMh2Z9VelkkHGCS7qh4\\/tYJsaOM\\/P1TFv+r9bP+6\\/KqQmtsebM7kPM9pFQlO2Boo51GA9wZkj2ZsydjcQCv+7cgWVubiZ0QRnssyU+ln1Nrvv1+0ltNnnrNz0l4+kKNOZmd0Xm76q9fbD2Bj5ytsT55PqpK76NJmAMuAwCrjyquq1dK2Esj5EVpcAZ5QPXzOEEW2i+TcmhJO7jrf5hD6jieGWiuEoBMAC6+LiLyTaPn536H3yXn371awaenTktd0ucV6DTRgnsVrcOWOjfZxSqs8+gnAXTQGTPqNgFU67pommT\\/0aWhmwubLQxvnHhgO8JSLQzhGZtXPo43QkaVfIOT8TxFPn+PXF8h16yHMZASEYHegFBLwW2LByfBKQSO23J+m5eJtRlsTYChd+If0opyrW9JXWyo4uNzjXxekxSYAb7uUOpkx7khgg5vw94tzzRRr+hTkXNgSnG6W4QhIr1i2KGe0XiTXpdL91Qx\\/03Q+xD\\/aaBymxxGmfuvufD4GC78pIgMFWW75x0egrB8EbyVCEa7qam6HfyxByXEH9pVUxReWZApFrrp2HVZdU3a79RYfmrtRL0M34IK6bOLoXGhvkCWSFUtLmXg0D7P8lKOLklzoZyZlmK2Wy16twkOo3lKQ6+57mO8PvcFcIzBwyAn\\/GyCIMKQw9c2u+ZgmvxkZrucBiWU53vX8DGeYD+Wt1sT+Bz4bH7jxEstkCPj3yU8u6upHedh0Io4LGuljBsxA6\\/mahpPLTynxyT+E4Tp3iKgSJOk8ANwY9gU2izspfomvxPdjXVZUuhIura8GWhGXi4CuRMYyJczNbIvYQ8yIUZIV\\/hbf19HZ9+y3WfCjPYzU2dZJ7rQaD+lLPGt57HqBS\\/Ff5TGWK1oXFAIHSwsa08CJ4TDmDF23NnCGV+nCxxEH8fRyveL+PTwPfBmqqN0Vh5Xjd8i6ZSH\\/Zhp6TPPhUoP2m0dfPN3ZwI5++ulaBWnFNKLBaozEsC95AWXVnG\\/peEZqWwaJnT\\/k\\/AGbT6FWTbxzPhqgzfjvV3qfcQzAodBGS7Y5M\\/SdxZSLcSiGEWCyk4SYvTZ40YdkdQIf87ytGKuARw55fHMLdlE6mo4OABBAJ8grs5k\\/TUVEWYiRVGoJgWje4iWX8S8gPkuKoF5CIUCLzma+O7wHhWjal2r5DLGuQ6I5nUxJIVW\\/EFZEanirbzOzEZmRYPLipScQzFtTuUg\\/0Gsm1L+6Hywb94pysBkChW4F9x8CxX\\/QmuuKwGavGzWf2uWbPTELeU\\/RmXGgrllkTuqfXxvA3py825vTxq43B0T3n7L6E2l5EqRMG7n0DQwLHkms7YOKWutSYGQFpnewzcUAJXcyV81HEzJ4GECbCc2o\\/0gH1WmEGhMJYKL\\/xVyVqrkkoeo2MR0NmPozYnb5+H6UbZ9hcH92wiDg1mS8cya7gkCkq9jdL6zpKIhdlYlTpYrJfsyzt5Gbvcbg7U\\/aX5an2BmP8KeNQI6Ng5BsQ5hTTt9KkV\\/FvxWs\\/VLCLue4\\/wIVVi+SOZGUNANMUBSoIdoofp5ZhT44Y4a8r\\/ubNZIlb2QaV6FTL2Jqr+Tsk6DH4QX\\/Ep56thY9NV2tA8fLzFhuHzFyIDEgCNsc+fivtXOgGFgFtjYGRZ8TPuleYypu5HIQ91lSN9b15wnmi5oi7I+HNpugBkSnTciVPZTtMhHIWL1bckgGUUDrKGeE+VBRFS6kdVRvMTNXJRGlCyFkwY3qzdIXM7oAJ1IqvWB0PoSfzIfY1aZmcZMlGe3SZEBnk8C9SUHezQ6LBO\\/0jdS0isW+fjboljv\\/7Xe90lmNWf6Zvr6sH8yGF338Dwgg4nYd1386l9WP1cJLyr2o\\/i+aRsspdRlLvdQ9eIg1zYDEGmHVZDTLmHniOLf\\/B9zs0o\\/b+F7E\\/wGclak4wV7iPcND2Ni6JdlHTUleEvoXbxJqxCnEbZv\\/bY2jSJQlPwoBDcsm6lZ5wDSxcjcztvBA82qwGTcUwwbSa5E4D+UjdcDeGPH\\/\\/kRbPQoM\\/UqRDXPAAPzXjzHdynN4\\/pOqKQVBwHrTQ2TDKu\\/tCT3ZxRul1EN3B\\/nP6o7ncaOtJWfRcFmSwz1Gg2iPIYa6e5n8oJzrIJrat0SHwuRjxNnXFFl04i6\\/2qQAQ46Rmwps1MSoYc5R26cpn7ESv28bozvqX9DKhWasadmOOBWT27IIEDSaIxa8efSa1oo7PgCY\\/eJGgczYffdqb0c\\/vGOTVcFnFh9bcRFFPID+JtwWmD\\/X\\/bng0EMiBQOzqERg5ZAx9Odg0JBDf9+a2R0FU\\/4wgIw0kNnwGP06DNhJ0MBGXfXb5CKKfHWBF+SFbeL8GdGTgwSnUT4Z5bWjoQAsei4YHR0qfmlC0Dy5vc+xvH6Jw8s+wvGAse4Y14WPwEkLuadVqvwLV4hqN75ZsCXryrhUMtWBwGy8ce3FjsRol9lf3x28tLZaNeYBxI4pVgk2PO8UDgsU2QgJvqxwCW3NwgpE7RTJbvQNciCNdVeSbDw6BtvWNtRCy3hDfj833KbFSwdvX+iNzAYz0xzs61E4k3ZvTIXe6dFvkBUeNQIWSMS5vc6\\/i6pLUVPQx8OLTXIYF70Tl+4RFzSc26+MR7PGh7Ys592getlDc30stYbzhzpEAzU2bJ8A5Kn4KNk1ZkdAdzCDo8xkhMrNbwE+cxVERsVnChRT6fGKJZItnNw6bhfUk+AgUM\\/irMYP3I7sleX8K5TlZaefXgn8N9v2SIgBXfIFq8GPOi+nyr7NvyWTllosVGTZ52ERK21QTr6EWmWVt2nGkyXUbN\\/u7HGhke2UqWbE4Q6XaZlo55PUL8HyX\\/z2k1taS30x1zwGL+pWVbM5ZC+kDSeRnyUfJ6Q1ikMSMfqBUdA8wtCz4jCQio7Q03zBpE5eqCyln\\/mzun1YkI\\/MSbVtWjHfEMeP\\/qLSFEB8Utz4Q4ZLQpNQeqt6zgn9aOiXQWhRlpnBGfNtwjdNrUHtYHqRULHXeGW7yMRn5mXlgs9Y6crPy1SbZHW094M8QndbzyPlsa3EOmh2Woj6TIWHuhpWJDi2AC921Ios88hL+XgTPjwFEsee2ToTb1CphRATRt4hIEZAs26mxJklBvEqfSOOMHcgNT7hzRj8rvyYJ0o5ZYw6qgTWBLB\\/WSgv771HamFEj1du+tZG8UfXZ\\/zIyqRiWD31HGjNHz0WLkDVR16V8wvjwUoc+\\/MNhHyd8xqMCELmaQtxkEYBd0\\/A1IsTSDevJ\\/zEY9uUvLlKJc5\\/2GBbBZakLmaAqp1LmwRxh\\/StFx1AmIqxwbMegl0tIEc53kV3i3w3mSTKPSWXb\\/6oYWkVCIIlg3j9HJKYkfrWCAWN73z77pSZ2lQBVCPTLg3smrvVe4m3WhOc9rGfF4TSxLeegvxA2++oAeuEX0m8NgQkHJiI8NCulyrY7P++WjyBeMKtBYoSn3FbQL2+fc8C\\/v76LtYQwVqLuWqySm9G1SzC+aUic4EDlwdqnCApreKrSRg5bDQsxMDd16xEqu5zvJVfnLHxqSFFJsqjyuygmGEYTNjFsQfGkHZFYmfivrx6rrgvu2mZGQ3fnZJ4hhJn7d67HE0Mz801fYEuRXnyfH7Q5kbuqKpmoT73Zpi4K+KYf+Y3vvEjt4Yrvlk7b\\/0gshX+484pedsR1Zx7OVZDmrL1OWQqZv8k6vJ6edPeQuNr+0Ig+qdr6PfT5z\\/fle5NOtQsnltyREkkZj8DqguJAnKkJdiDun+qrHJvdVYosqDNj6PIhdHzpE8EHEafNRjiMxB3EBZM1k57lEAmwVdsy7K0mNztxUK8pVpCFtovVIWLap9vy76ZHaf\\/aOR59emiHXBy\\/E2HIHoWgaNPDcbT2mahZqXp5dM3Ng3Idyrak4UvLMrZgWsNjxJq6hBhbau3utJpR8Sr7a7M6jvgmtFNpKcMtFUFgz9hfLKDKrzk4nzREFuDv4VQdV1k9Tmq8atPYVqkFZit2t2net\\/jXKXXqwbY4IbPZROQs8TtJoQlzkOcbTDrXOjmCq3JliLse5o4tsd5V6R0oRQP8RugOpGCcuORfESXalnoRgB3ix7zx7n0TOqTsBIeN2FtHzWzr7Eb54tgapc0ejMdV4y2c+QQdLVtZdL1KQPXg\\/l+b0s+ErM1ijWAMQI6KXMa4QiRFW9x4lQalFqCpz5VV5r6DPKx9h\\/LqBGeSjIpWLvK+5pJTnswcxSlI6Z\\/4xXbgxYd\\/dzYMyfcVVio1kM8mJbr9gfE\\/jA6Yg\\/Zk3dpcCi3V4iNbceCCetCvpwd0eI9YcZHlmH5PAi06A1PRlg0hyQtRPKH\\/6K+HVMDDJeasE07T1Onaj9+Pj7UiQg+w9YapMFCMt9IwSwRzd75EXQWcUQxCj+brGW54vw9bV6Pm8Flh0UPzk0x48C5VfHipb4kF2evxJ5\\/iHAw8ajWOn0T3JsMRG\\/x7OR54K\\/W82PFGogVkorp+Fhd60N8cQVP+rjb4UTdGj9yYDLnGm+8fh8gG+HMKRkY16Y1nL24ENskWZVoqAGtaBKnxEgkogN8D7mzmnX3klIfeqKI0LubaiaDIrhkpHRivcdg+GfeXII8436VMczz4IZEpW5SS8L4qU6EKDlGeirGU4oqbSiQBsajesjwf3cjkiE+2YKsUKRJV2Xv0LUqCykEYH3eZ3JaYFP\\/SC4CeIcsWzve4nU0H4o0ljo6irI9Q403FAjLleFoihkeCIifLsq6BK\\/r1NniYEbfOEIRYv0XA5GgKMuisa0wU+o1YrT38nG9uIhGYBkSIZnF1A3canmAMjAUhgELKnTF2HFeAe\\/mya+0onUdbtEnEBLm0K+QXSDFYW83kcrsbbASJPUCTK60V0mZKhLXcN7drBcMFiPASxUWyILCN4CrkJ6ZBSt5RhlgiFGwss+QYqPqNGI+SlOAXlnSXruI\\/aJHtXUrPp+uz4+qvInfnMK61ZUvLXFtkgsLLZUa+dqkF0By+uKawoLcGMe2qLq1GA+O2N3U2wOOGQP+JcIzFyekikINiH7u5Fqn6SO4gal4FqbHNguesxoB8pOVyq\\/uYG\\/zzPpkyZSEn7qwT4IL9YaNtaFcXgq3K1TjX8g7kSDs113yjKm4yx9TlqN7Y+\\/RX16RE64Mx0X+AkJLeNdaCMPv8CxTxflrgpbiROVsCwo4iyJY7Oebn2wtNZKNPjkLscBb8N+RFW5dSx3Ri0OD2G6osm61ugqyzoFurGxx\\/axqQNi2EmPRTwlZDsVFG12eq8kFs13H1srzN+bW4\\/bqJTKaj3GuWw3VVEXI3x5L3lVO6VH+vbu5KoPOBR6+fu6+TeFY7YKjJUJDsg8dR2jFRcXy3Khz2o7djGGCyilEeyv1JMtGguWUSSH\\/Wpzld0hTzcGX8eQLeHRhZCFwrOw53b32CgCkEn3q6yyDsLWyJWIjdVC1d8KJTVQmBEaiyek1bjW3rb5YyyNLLPYMHbb37KhRh7s4ARUxd5Q4iEIS7e\\/siDYZA3iwcAaiOL2aiCvqFmu4MYH5NhnVALfm\\/AKX2nEYPig7SFAe\\/GUSb77oXpGRJuIZBCLp3+7\\/8y4FrlvgefFmWn29jGWvgvBn14ZzWFzOCthYKPh7wadmKKawhAvGDTX7ZmLqjG99qDIEJBCe7nl6OTPoHTQnyhHlHYhjTta85B4lbJQSY8hcnNsdehdXvX2XhI7x24+\\/rLxouhEOWp8IqB8t5OQOY0\\/cFGHeEm1\\/wWKMDoJnfYbKByZdi3qIfSRYbuWDIZ5YyfFUJMMCP3YeAqs4znq3PYFxSuDmMXkkZbpWetB2BuOWvRbdV0wpbQzKqGRxLz1LAGYX7OkpCFIJU0B\\/J1TwpfevmSQ6\\/8vVfU0NE9GZ00OVbHxjSKVFO+oJBZgWY37PojKqpZsxqKgBGn3djTWqvT6OAgCD\\/QsjP36yZdtska96Fi7aRc7gF5o+e95MBMDm4pKec7r0Cvk9wd2pMJfE2d+V8ZyRrHmb3R7q4Y3apG+vMlszip4P2vTjhM0+oLzCyHN6L1KA99Rm6uD6XjN2vScVG18CzQ\\/JGUH+VeN21EhQQMZSSBSjXOpzIccAQbq6SNpi2YBGhUD9nZBMXoIWCQ6r0g0HK75WtDu9g74GNkXK7iWW5bcSD5CnAur0inOnPUpjg6KS5RbaaIlqdnE0Xq6+eicyx6lSLVFG2x8qJcI3\\/9AtgQ+KJbgXXgIMzEnBen3tz\\/X56VkpCqsiWVD\\/FPH+i05HPyUkBNeM49btZoaGPIBxhUzQEhhS8kLs9eaextRufER7tQ6xidDCqg\\/eDjChAP+0MtvHjUXUfDLv\\/Z\\/roKQr\\/L51LzKmK5bx1U3pOWTu9TchKYNg5U+CfJHutZAVq8of\\/4Pf9Csv1OAcJcCGHwY8L5+6OZXamQ7pc8MvQtgX+qnOtjqKxcfuwLq\\/GcfX6Sad7yio6nobPRy5zcaOFZeFGcyXFuDM5UgkLoZ9mVKCuWCJEf4ztjHla03SkYhFRNjlHz5WQvaopvkoXcbmOBiaswGgM77rXchrBmW\\/eEZI0jufqmxdX6npQHKwjoyXCIk9KImf\\/AH\\/zQSnX2Y4jpvhENWZq0Esxs3Cog8wwcNhNTzam9cD5KBU7edAjiQ5FljTsiGeEfL4e3DbED94EiSKdBxm2yO2gd5UWPy4T4OIo+mN2qM6gpjW9pJTg5IyEmsxvvgxTarTRe3hugBVaxCBCUtNit0Y8hPeUb1MkGQ27SzNlGGx5I1EHfjigG7EyVRLZ\\/ihPEpa2c9sV+vsj3w1SfQ930tWoWpB2CzdfqOiIkL5geyrbGDNNsoU9j+NcGc5dRd6HJl8dLEWEPwX3bLSDY9cvoLq\\/gWG3fT12+vwjWDndcWpyYNJBRxIumGr0B0bMP4C1m7sP5v6KaqSgQhW4WoWKwqNMBX02qA1SWfgRIFCOVqrznrK3VfmiSm7ahN0E\\/b4Hh59E2ZYGvlmC9RmOyos1XwN2RaafsAfeKcwfMKpd0XRouE1HAUxwNO8op7Kqlvep7oPxmZU3+OgP6yHRZgm6+I71TA5g9BI0hcYRkqJMV+Yt4N\\/RIE0gRarREY\\/SXUAEvqgdsmdJ0t89kod4ehwTIkgOKG3v47d6iQNK+liVcNY+VeEBnntaj6O8vldGJrQv7oErzYsNvMHjVtJWMK4tFCLeq6qbwSTP8Y5uvykraTXu59lD1U80gxf6kfkbgkAplsIvTIypBX\\/7JOGrrvPT2tX7XHpT9yAL2ERwkESQmYjCLZ4e5WHag6Pp1YPqu52h52BpgosdaxnX0LMGQ2LnGuvumNsmIr8pHcr4CSIXdZNcBYJZnMw+FHnm41Ppm8qCcnSqGKvWOAeFl9znxUXnhWgBbqhPtCBx1BGOS\\/BljP2y9JYc\\/PdOV9jb9zFT8eKHN3ADW03FEm3J2TsFzQN0iz0wS7l6wmEF2yrM19SNgamqfzeI2Iw3DvZ1Vij77I50iuJCw8d4df89kZqrTN5TOl64sMJJ0WjSxIwJEIIaGjsz1l2ezxITYk8di0BxOl5MzuUrC\\/spwKsV3A2shRNl\\/qoBJRkamzbhKlKEycbbrhrmRVtTGZebt9DqSzsxJ6Qq7YDrnXFzQ8kTibsugNWvJL4vTLz\\/yVZeGLHyWeB17R\\/S1xTKwWwgP4W5Vy6ItLHtuZdM0mKwsr86DpDjTB6Ejf7BcahPSPmySmEUnRO0dPhv97dXy0nEu\\/THl6v+AvV\\/5HLFT4\\/hRNKoGsvogeZeeJLLefpb31dvugMNzaIg7uYBbyQSmSopt3p3EUQzB3aRJhLbZs2\\/c8XeEm7195ZG5j1SP0KwjFq1+csf92K4q4Z\\/\\/ma6JTIHakBNJjicUfbxPRIs8QO3zfJwdkXFttfJ9LyNshzr5GmhD6HdzISmPZRbHJ7ufG6saY3OxP3C0ybUpACCOBCrK5bm6TX64h93hyZVxz2I69WyshQW88llbGBvTBSc0ipvgAP\\/v\\/JLZ1xCoQX\\/CICzSprpvbJaNo4wBH2XKu3WaM53ydgKv4ffktNAFYVRPPAgMLpDvrfNZlN4tInv+BSYg1SJf6duPzX5N\\/lsst7rm4FflVi2Ms9LFWYFXK0MIARfPNRi2BfBaq0F53w9IsbpQy9AHXOkWQcM3GVMw8DfATnjQWthipR9+9Bqwwqc1Z4CKgWLAEkievWqdcLPaZZuE3xXQlEajanfQE2+jem+gdFaTLIZuFsSehImb3LQwK9IUiUKZ95aicuwBq0YLEXoZeezn1AIhvOuJq2vTU9Xb8VkIbv6mKixtX+IzdYc0BOBBmfFdOqPdbIEyzUuIFa5eHDx3alR2En4Pwefqc2fLmXYpw1U8\\/SZDXHYsANM0lX5FpO+yLfwvgCR9rGWGcZSbKz093SpVLkfBcYwZfCPWBPkm9spjK86G5jDDX1poOBDHR3u8CJ0clxKHzZSSb7AiuhmMVwxIlHtHrfWq7NTpetexTLEaT1v9mkLNFsw3I73E81k8WCcIQ6Bi+stjqCXN+\\/GuF5BzY4Go8aGXt4dhzitnhMeKaE6CGL+AtmFbKs0TCgBB6BnCbR6m5hq32B+7KhHwOAmSWgpsS19CsrtLTWHW9RJhXd81TYd7FZ1FytgBNkxd8j8iT1keOA4LCOjdY7XA36LSwQd5VMzpTrR\\/ZfHNl6ay2luu4h5Ybyxz1p0Gh+2JOkIacXEkdsYuC01VBF345AfVCegecpyoIlXZrfwne0VQguKDM2TrGcoWV+VugJWHyvfxxjc7ATO2AkDZHJznXlHF6hBsWJov7qzIkpZDXZw4ZaDx3DnoKfnSxSsDhC+ewDAYkWhMxJWflq+0Pi5NhpYMZPegcQ3\\/egtxCDy436lxZfXms99JI88qa4gQiRc9EBN8iyY9TsubaaGMIpo14tBgdw8ifiBGf4vX+WhQPQvTakVxSv9hYb+KU2z15KMhA9NJCV5VeelC4rJBiOyfDPJqYmijYyuVoAduzNKjRLOPAvBt\\/agFbsbL6qwZ1PzmTUo7itQjKvljwhP+B0eRupFpyMKb7ELxElN9EnEkddfwOto5dx14nb+Ug+ON3C37tSV\\/GrdGFPwScwiwzQr681dR3ijQw7msuA7tFbPyKWc1MYtgYU293uXdbptwdHFtKKmkbUm3KvVrucPEBuaSRgrsW49jKBTl+HFgVYcV\\/11UYwR9jiItHGRwtwdwWxz1UBGiQdKddYF5a6XbWTo1oHIOnY7tBt80+CJUYoitPhSCI66Kub\\/qsxl\\/7nc7FCSJP4rq5v4Q8l9DYdmc5NDXiHHC4vkM2S9zfE8N\\/CbLWdEtN3NqnyKJ8C75HNis9aCQD6XRsDAFtf+NlxbEcLhBJkdgRsyDJXWC31a+Hm9TwdzELh8G4EYz8P4HuskfWQ7uKXak3Mgs8yU3zScxX2O0Cvm6IsQzmnpiP5f0bG6L5CMMhhXPYN8kzhLSrTmqfUztiC5FS7Mk9KQc0hjaQoTHSY3qBILXSlIrMQeYktq2El7UCHe1nQn2\\/+u3ujw5292E1v02Lt\\/2LbSf1eCKubV3menBIzedQClBSPzcFmyHSeMQHd7vVBbhec7adEBvkdBvxaMxBWioj3GtEZQPRXVtWnNymWv0hklksLBB1Kkpp9RYYGRS8GsFiLwB6WI0MqMkyOX2iNnH6VO5MlKLPadGAR+LahTg+tAUGWrTIwK+ZtYZzrEGy7uxhWV5euL8tU+yieU84HY81kirii8wYDgkajwl7YKkee7VKySjKi2ytc14+DXAddK5dJAUg0EMNch3\\/1rk4jsQBFSdcjzsH4+TQh6TU7mJyakobS3XNFZweMfJJVgSkhUpt6ABBMWLu2eRD3c9HhX67TF2COF4WDV3ZN6SPsDGBOhrYHFKq1dCHbNrKC+S+apGcc1zdrktJElKSoTVtb75cwee2IvoxTex\\/GX8Cr3zJ7T+svtOMGowc6fBHifMbc4UuyFpd+c7OT60RHib5mbiIQ+ibas+3Q5JuNvljHiG6xxn+JwgYM805Ww7wlgzlOEtZAlRwrtpZmysBb91ToSWTUKIEaufGStwEalyqjT51L5mzwAXtNQBFomatTEAOdUoROptX4YH\\/cSWYU0nyE7vPH7I3jylpTjmekFVfCGJm9P1joCRh4nirHfiBNNxRKb8zmHp\\/t8fp3BTZUd1b+qLuMa3+jbYDXw0C4zb7BNxSJWk7pr20UGKWV4dRWOcTqd8Qo3JX3Tb94+BqF3nzOrEAV4aIHpScAVJXjILGwt4gWwGg82eXLxDIC1fGPqveKzJ\\/h8C5lbO6QnEOz+Bs2RqxStUAppUjIKooghRI34QZNydx5XTSCvsWlu+xJQK5f8SAeZGzeZFkN0APq030y4BFP3oFIEnr9gMsVGfN\\/cQfQXo4uQzsr64fDx5pLAjo5OnX6NO2q0mISgZzv0I7dnPIrApH009b0sAcePjMmKZWCn3J3D9Abx46v70e7NankaY+wqPGIZBN4UqhKh2EBZYsWaq9bCrY0Blhc295v2aUzgf7rQRR8DjK\\/Cq99LaKhmq4g11OvRjB+ioE0lC5XGP0KcUai46ZcVXx5vragI2hXlmPxrB9aL8e70X8ir78rDN7qFxKgSgIaqSMOwl8TFPwDB7QSAQKDXTxwn1n8+IzCEWqaoW8OxQr+gymaYlkXNxxBrJjL5n0fRxGVbpKc18wPelwb9BNFg2WGkqkitOMW3duhyoIpHTfnQv2vFuJs7NkPkscbAmH4mjzZ2Wbkc9BLb+I22WHUfnsuDbg+Q0rrhjKl9Nda+P\\/uP5CtF5HGyxe5z5KuAlUS2U8MUAZ23Iarr\\/v7+TKPyG+WL14f8q0NWzizmr+IXYb6foDzvGdG\\/6N+YogC1l2nvP399ixG5f0yzGviIN6Ixdw3WGUxEFodxthXDcz0g\\/vzetwBYboM3ZnHW01pXxz1TYZ27rjEJ6SQaJgyKBME7bDZvZBkmfzs\\/s1tuERprs8cwQTyW5RiM9WMn3ySYUd7G+\\/r6OgrdRB2dZ9RhOqF9MdypN8mB\\/8DkGtni37s319b7NNpEPsXkwydDtvVXvJ+jCg+rsnI\\/ZHfx3ZlNrZN\\/7Mpfaf7YykE4Ag41WIZADqxMvRuRRjNxRV7oZGMylNhofjFMHMvbNLWWN2ts4qmSlmZr6dVb1cg7XoPvdV+GjJbqKpp68z4NWHJg6TUjYjB8pRzbKH\\/dABEhDVv8mzNdr4zyXeBt1nsHTB1kp\\/pGFRgFt6cG5iee8IWmDylbeV1ZBPQNmsQffWyKrxzETGrDNKlZlCGsfcWHsal8eofs29qKxvO1De0VbTa9ul9oIWqECco7NGbxY+cwYk0\\/SvKM3spalPeeChHaWZjq4g3im2UGViWYcPHi2qyaba0J8o5cTCKnKla7DnpKDED4PaFKL8gQcibRbBj9OnsM5okH9e03snUEZYtbd0jeEJkrq12hALVkjhc2jPCeIH+qREv+ypRVL2VmHzqCGHcNs54uwQw9JUCou9f3B+znv6KMUjZxQS9GNXVKLXw69pHOhgJ9Q6k\\/UIemTeNys6VmpNH41RhmKHn+xKdmAirUMjQOjBNjKzr7C80KzKFf8V6TWzACl4NSLV3FaqQevw18CIdxj0Eiv1\\/JeVcGNv5sr47i8ju7zKKZLip6YsFm6pnpKnvshFzR3gRZuvCM5FvsqMzZaNhWpgyanNU+j4hwLDf6uLEjmwnZ6D+HTiBl86CRe6gE6YLrmDnvKnNwHUM8nycbXcs6PovsRgNs3JXmWsMBAkzh1HFYQBFPSC5ydAVy971xItP6KFroM9uu3sO4MNMK8r2UqzLIn5b5PzikSTZCdeyaZ\\/DcakktfLRN1N0j6KFuVDH5UGfWLZUwjo5SfOgMw4XlTaZa6RA9qIZvKS4IF1foJkoi9KXOn6ce9KHfYSoWE8R8qmVyTYHa\\/Ob\\/AVBo3VWEg3NEXZgWiF3fpWM6PFur174bOCsHegsWtAkXqDJ\\/NvOJs7TT97tYVrm7kPTLnT+wetYVIkFbnX3nnJP07X9IVas6j5u4yzDTt3HP1Y+qhppWnlEyMuyPRm\\/TwozyP70hXSyOrLqQoVvyCNyIRZnQRAD0GQ3lRP5i0+IurOQdz3LNu9z\\/yvWFnCzcln1OoaAt76mYda3OPzaEZCDooK183+LMT4RRvCJpKWoZf42ea+LgPsOboaS+eT9g3WBD+uGZEo\\/0bpE6TvjfcLSZ4s7SaDiS\\/WbKtkQNrwp9UCrJHt6K2frmlK930M1B8EB3ZyponywfQP2zT93ziw4vu9e\\/4fc9IJ\\/Nknc+kO0PEX\\/R7qnLH\\/XskEc5KlQ3\\/CkTGgGQ1eCiVAQfNhDLIipDIK5d7WBsKfystUki9gZ25knB+PYBX0LO4wVTNemyQzO9v7TvaLMnkdT+g0M8QJ3I8COebPA7ns3d3dmOgIAEgX1RaPJik08m2DDWefSuqlNeaoQNgueTbm+fDGw2BGtpD\\/dImiKD2BtNS7HvjScPOcUPAfEx4TntD1E8d\\/EYbGe9zEQC8Vq80AmvadjwOrukpc3l\\/rdODqjuICvOPT+O6E\\/J3yVMYWPCPbTS7i\\/S\\/Ml+TRWP+0uO8O4YTpmedc5u82jNTo23PEmNrSC7yGPvPGVQ4\\/IykcRItPzfquRwdyNzG+kBOT3V1thzbq8jE0AUVxSgpujuedyDWhbNGbgoSfg1CfwqHjXRpOIy61QimCTpthGcldra\\/FvY9vVbA5SHd0TdBmqv2uAKnvGBZyUg2OEaVY1gGIvORck1ZZMvo56a5YmclcUzFaJEHKccnDF42Wgj\\/ITkU+sh+Yi1yF8Qp4FSI+Lvw7hi1ciripqNkzBW6qVDaxxKO0qCdSQMCD4+mNG+URTe948G\\/hglKV4K1S0Zfbwaxnx0NH8b32NUxmnj1Arz+3oxC4IDU1uBZqRDrqWgGmfA23p9XFKVSNPfSRZHY8r3a0h6pwdynltSeUudIQP60qlnyLYrEi6aMI+Dxt2jSVXjPIJmd445djfEpJ6xCAWFcaAl7Ik+yq8wW46Az58m\\/gGZsCR3gvvZ0smqRraJaj7t9Q2a5C+tIIkmaTZwf5R8O292fvcKxSKFAogZYhFhNe5NdpYMzyUnq1UWCAcSfjolXiADgYimzopFPQS5eripMY4qYOMMEIlJOXQfntl\\/OaDK5Zk8MT+kciHNBCo1CMnIReejHdjC49GX5QbRbMmraJxhI7vBpZv\\/zA3zuwt6RAa0G+lLOQCqRoWBGKc5WGegpnDEFYmPhLGjXdddRR9QRDMd0yTLI92zmIb9FrhcEvqPbPsiTD+mIXbKE7rfk6CJ3HaE4IK6ugFLWKnqbXB\\/HZuws3Y\\/IrXWkxddVs0LZfP8pnDqZrmryLanZw4Clcu0joq8tztdGB+NKyj54RmYpPgKQLZfWH9rgP6xVK3LK2GtwC\\/vXquuOwZMOThU9JQ4B4bOgDS3VWxAvwMOkNfM3WfA6PsO5raV+hsLLW38bf7qrpkdl5mDSZNYIKVjY2bgC\\/NBZoiUtkhH06lbIC0WQXEJVODJg\\/xjMvMPU7XrWfkSjpoh09\\/ZkOI1aZArxJJzFoeUkderwM0dGeQpVBOw9bmXnAOVet2FSqOvNK3iGt4SO+mJv9Eel+grmmWxSSB5lGIDDZ0WCXGQHo084TlJMVHI6zXNFRsqcLcWt45UQupiqWdHzYU3O+2HVMMzis+cLzwvXJi4TOWaYjuxXf2OVXY6PW\\/K9wDh05VTZBpeWbrUWS8RAJX6O4tgoAyhqtyNKq3SkBIUg6mcRnOTZjthVyiYe\\/X9clu8Q5zT9I7w3pe4OOWrqBe5zkdeGJIIhassqfG403Fk+wMHLSZ+jnuIXFtRuMj3uf4mJqA8vf0dXOrlCZK2GqkqtMGrlDw60+vuAzSzU3hf\\/ZyYCS7BcbRo3Tpe8LyByrU+MUUenHVER3KXHIpLGH+G1R5FlqRV4D5m3s4SVarPSH2eNoc45FyeH6Y0gmWZqUS7TywK9crw\\/jSzxCFh3QTkaizTF0wGfEg3k5E3eniWWlw03AqSTJhhUY3ue4eIakLJCntyb+vMcfl2KwhbHWyBLDi5Ejsjo3JacIqGuZp1Q2XkrApp5tt6ZWYOeO0khrVsgsbkegXhftIsXTPdlBCZOkTJWsOk551UIo7B7bfIH9TrHVuCAKlS\\/OHMd6p3TNsQfDbaat1OyR7gr+fgIMS6LucdDXTRBPYfBJRf9AaChQDLYoZdglQ6HYh46SxQKxdUmGkIRxl2zgu9xxBPA1q2r1bFlBiSfrGlTMTsiG4A\\/WvOQFXZg+fF4tEqHWtpW3pykJlbYsidGBzlNZMl0j9P6ZGpxjD4AQ1EdOGEz9Vgp8vitL8Wp2MI15jHuJ45VdAcIdD8vdk0AEehTPPsjbEIlRD8HKrufrBTGWs+QaH\\/3vnYRqzvhrEzlBpt9uai9FLKgA2bPTFHrKqu8SoyomLzvWqjNEEtu71B8BdFRuO+BeFeTzZKUCFTgaVK7HgSLZf5CfAD8D2p0o8xw9cpezUdILeUVGmTkw82iKVg7aWFV5pgImip\\/z0+PrkXeQc9lnqfZSXlA6vS\\/mc4EVgzBu5LjhLoBjU5cNkyCKbDhcqz3HLtA8Su4S\\/T\\/\\/849PlOYAebFMELcxxXhl8xMHz34iInbrAljH7OIJLiBs\\/1xOuq+zowgGZ3DSojkMmy3\\/ZUJUPopog0px3UYZuraKHv7sy6l1Qm7N\\/6mFKnxHJ9Le1rsYe3HHcmzanDql5qb65+unkCuPzcm7dPpdrGf8cyFMlcBTfPpq7oshbjF0teWQwcdrmfUYZ8I99bbTkVVB7d7VLFMsXIUmasf9H2MRRWmTQEgmjf\\/J1\\/3ap9rXWDg8wcsyrUGAvLfFXD6JW1wRxntIH2Pf+z9uvC0X0dTa5LCw4c03op3o4qJs16zp6sy\\/73SjntadlvkIAek9RPaT6Bw4ZPNF43TJlIg\\/BCfPI1NDMhIHzpNpG1qJYghi5IwurZkyG4d0MZJRDsgSyJArD7O+H59ods0Q6Qof9GBLr+4ztZP3RcQcMdCaPSqka34bIfV1VaIqB1f5JT5\\/TT0MEl0+O+t7F4HxKib3D0NbIr3sb7aryJxxE8S1+r8O5NPx43\\/MaEEv9lLEPONUI2Ovmy3cO4M1\\/SFmkc1\\/v8uRw1FTYbFeSX\\/4o7+8TxvBZRNzoY03696GG2YhJoHbb6Twy2KBNLqg47AA21aNk1IeNFC7sqmxqsany0EMXvTXKWscWi5IVZ023VHnSK2AcwBFly4P1uToPPGImz6PYW2wfdR+9oz8zQBCOkDaEjV70QqOVfQfaCvVf+hLRc5kU8gLvd4wUK8Nl2QPSB0u8KJdRWAe+CIL+KaZh9RrFPgoWRv3NAHygNzRlZ0oE9iAnU+MRo\\/Sd6lwP0ZMuljhZPQ36w7eEBCVm05WhKJOYqLYgNH0MzWsp0542WfmpWvanyMwh6WLRvKa4ozBcabKa7oJE8NtBw+JdobJwwWRimFN2auRd3Ynp5PXU3FK7+nZ0C3TWFEeA8ttWyyNmUXsJTkZhIrGMUIastg6Kl3h4bzfmWUNptLOhFqupy7XRShD3ufK7ajZ5GChatVogfZ1Miysjx2i8W+UlRpvhGOJ\\/Ebvg9Gj5f6f4OgMzM4m9XuHmOd9+9kBCD8vt4iNBqUgy2x29FRST0iOm3hlGGMccv\\/znBtJ5KiJ\\/aJSo4ThM\\/dWd8JFw6xEU5Vk+XEZ674+IZegd3HSEVzDmZwgk80FBG+q1jldGTxKh4pfnIysSHqkvwmIkUKcslMrGaUC+v3nxHJRk+gU8MxjFXooa3E5lxtLzzkpkphTJeIvflnCsmml4\\/zkaiv1KjLYCEbHkzkNIbGRczHXPOTE\\/qmsjDDLuDktB\\/0v8MEx+7Pef6vXf1IDH0tmpisEZFR4oIdn4uOnaDoPUnYif+PZ9gha\\/dfK383pA3fYt1OJlC6awWsbxI7iWV+Dm0NiDuhMFjDVLhYn79jTecvG2lN2ZyGAiCQEJf0GuPcFaLzCmBEMUOW0dbdgO7otJHQcOsbdeh6cVvjuHSqOQvYHKtoIgjbrl45WI7MEkyFzWN31cT9sBzMf2ypPMwCMHJOvrVpPajXA+wKTIojFHCFvOxjTkfNtU\\/7c7uSxx3VU92nIsN4ud3ZCpLM5IsVqFYVGaVPevElcF7e\\/mKuymxx0KoHz3a54K7NFd1QJOaT+M8e24DCDaX6uZoS4CYnqXAwhkq5Rsv2w0KPTbNOz38\\/HsyFSlLjj271387Dz2KcYaZ4msbPPk+5PUfCSynlhMw\\/WQJMIgNLZLaM0yCIYdSg1dEIFqQtp2k5i4MXe98pV\\/ZFHYAwq62wH5hSvjhZCCB5ljEtycxBJnDLB+BKdoT+EdMNxJGfS4vcCXNVowpUa2jrVd3eyZL7+6D472FR\\/yGQZ\\/j30HdsdPN7hqhmesPEhtPvNJzeLOnn0fcppeS\\/b5jKkX1bcfp0ASI08ngdLvYPQTSkku2TEhQp8cQued4bDsFEwCTyj39nB5xz+bdHzYhyCMfNj+eg5r6dIBc\\/xyqkITAv5fqh\\/YTHAS3kUcKdalzCJUTGZB4FnPwZA+6\\/yXfzo7breDhaCHgMVWYfAMVed2R0aT9AW2s5jGeCLqWkOT8gkRqRBAy8gKC6XL6ruWAMTQGVPQ6pLZWvXdz9WeOO31cVDGX7o+AHHTpYQBhdHmA3l0ZmDfWZQaP3Z04IXkfWJm3H7CichRIJjzKuz2jdaCVM4B5WkKj3+vFU4eAdZCahrvlc4aRAromtWjOmZu\\/7p2xMHUbRxZx9cg0qPeOzc7zT74FfYdc1fW1MVkAHDdwrgsan77NuTVsRJxD+x\\/71Xvy2aOFN96ANB5\\/3bPuB7AIS5mRPvQ+MRuPgn0ieA4V0o4OoS0LiAQ8nUoc7iDmK1ZUx9oIeIKaIfF1Uo8TudmPb3IXPfBC5pklqKY0x1OboJiLOQjB2BM22KJC0TIAg1JGTDp30MLLd42eRizm+lYLvoUhAeHhKHRNRjVXBkydRZGfID7+ze8pKriTkM4pQSJ2V08lmQAyslInY+6pyZvsTEoUPXRrQyVyghM3m1dxwL6bSKLjD6JJKrQEaoJ+phE4fm\\/ACggrQPSF1ick22D6DugYH520+Zq+hylZSjbK\\/bKoYlNr9RNtlAb1vnbCr0djILOKmneOObaad3VkMgBQeRWBk21xYXX5F5vNnJcTztgbgj7Y6Svc77jSR6p6D4ELQkrgbIf4bubhfEEsOwPXDciUdJXZab2bfI\\/DOkoXrNBkId1EIeZVfU82Ora0yK2fVNiCZID+dPE06Qc09qM7DVrMbccqPSmmObKTxa1vQItFmke2+aKZkwvJAPBMcQqxHwetdvSjV+yxRTR1IQXAUkqPW+rRJg7kBZU4vB4DLiBChYlZHu9ITI6USMrTR4V6XyG+ln08nloHaOm+d426PAlNjRUcZMKOfrQKnpQ6oFqA4xfvES6wU37rMFbik7KpVy5ohBbzq3kEc\\/uDTam8K83kRTN5KIgoMnJMITDOwGqaxJMKecmTfX9Fubbb5AjQVW8CHi2NxkvKdDdt0\\/Ptv\\/+4MdPOjIrmFY8iwHoCUTmoze9mK437Htv8XLVXQeLKK3kLJJIboYDN46el7e2NdaSSERLuizxlHasyqFtmY\\/WpjEC3cZL\\/r3emOgXqEISlRiF6w0MkzL8Cu3E0PHrTsDEwtnrLBjQz+VhN6wkcpM7aro9\\/6t+dsqqzJrV5jejZq6m7pMr2EI1KFT4EYETEgJg6kuqygv4yD1Qwq2FN\\/ViEmxwbZKLjP3V\\/N2ogsKG8+\\/2XIPd0a1ITgLARH\\/H\\/7D9ptqFvXNfVEUV37rzen4f5lFvki7SveMJCY11k0Uih0dv46QRUWtLJh9\\/XNi5vTsHifb0LTdQYnoFJ+2EHT0TCxw1VWxoS9Gx+z2hMRhdhzCamWbCXMgITB06eALJD9pVA6UptKYgZvUhfJGVbOgDT1h0TjH3LBuub\\/WUCU2U1MrljX4hL68Grhqbedg8u5UgcLFfJr\\/4kSpweuFK2HBB5aqnQPtQhPFM59YqIBXmQdrycH\\/tGiLh7eDkNTVLnXOxoTeLkqJTHKWt60YIiPrV8sIRiPhlJO1ObEvZ4ST\\/4TcibGzAAR24LisFEyyWuhCydr51tqXQc43Puru\\/F\\/xc5173vCqVyli45\\/fQx3DM7JETP4ZIiT8rihNWLHKRkZngJnks7K5sR6eXHxYW1nhFD6gYEGLGhum4T5oO6GgB3Mhym5cyITN6t+TbqcSb4nXPyPNh8+QyKyUu+fzxJWDNMiwQy7JISE7l+G6MdPft3ICXjFcgv+zSp4insGQLzbDiy0jlhDIDQr3y56IsgCOI\\/e5w+d7PRR80k9BCh837tpzW33fqh\\/++vEneeOfevTTlyju93x1d9gZC1WxmP80PaH93URpJrH0QSWLeEgx3LXxcGxtt4pXOBrGMzXCq0Z1nw2ObmnZ5XIPt3GRIcQCCOEc\\/7qrLkwauGxI0qbfhoiSr+eIXQB2+c0yvB2q33NIjlRlGEmiYmayXp5dcBZVMU+f6Hk9JgH2Dzy538umuplCdJGgEcp9kT6110iOcWqNomJcrNq3DXO1RG1tRm+nfhtCUIfdlAXDxe2IbP2ejvMX+TBX57lrWyIuP8257BoUNXAyhF4s7G67Wl2MmF5OMKijFSXO+qyEeFgHuz\\/CXmDi42IsCLlKB3VkYpblDTqx\\/c0gey0gqQE7E6R+gZ8rQHuI6ctDDjXdLKOVaSQKntXqpRGVqBYpIo6ItSGxQbgkOksZXAS7r10f6FGdAUcuVogaiX2rfIYpdHbtJyivaKPnqz6ljC9Se3\\/riGK2dKI4QgJ0AJVHGmVO1SEBbc07ZwsbFD07+IQQGNc6LGsmRFLEpe6+YbV0TsB1Ao3YKdBRvar9lN8bAbovZa8ntnOKfq+dL7MAvWoWEx\\/kliMuYJaCvD2NAHWn0mg1TjAnvC2q5p4sPIOPe8NfbD5a82D0jFPqOBwTOAlVpJUVxrYwq4j+T1rvsc0K+iWam9hIP157lNusJ0jhuK0ejYOTktPUBmXMfz7w0xdnlIKqoqslL9FF5OXUTx\\/1kNHqUEvI4A0AW9mO+SUBmNbDGAlc1glBW6GjCRuHkiYSl5djLwjlCZJ1EZ9kFS7HIlkYB4+\\/HcZUTovhC2yGjbzxPr0EFX\\/JxtexwuXG5TCR1+d1CmQeWoyZTGZrH5LOddi4ZTyXcY2PH5EClEBvI76BMPrI1hywNCwPTd\\/MCzolCR+e2Cj9bMlTq84Pa8ppZ5NVm70clSmIub8RoPDsxz4WFFzgFy56ekEaYfS5nAFVbhm+pru0Xktp9Qj5k01Mx3hkg503JiQvKELbqOWqrIL3utBg4P9P\\/5gxVSBPoue9aljrPlPMpvShYJ5gE8LuhyuK6fOcu9+MHElO4yqCOGzvMTpth7pDYcJFwyUobThLAhtEJCe61KOuUv\\/AZ2AbZE4uARvHezCDpSFc3B9qrSWBWd8iIs3gSo6M0FLMwG180VnsZknsv\\/lDedCgv6nr+OAmlxXPCPbDbWGkUTzyBtlZ1fyOVDkiSnt4VtBtB93qIT0ZOGLOxAR722EUKVWD6hnavayVEevUVdOFFbXRH\\/8b2zIod0n+TEnQjMpbXYBoX\\/nP8gfavsfbBKu7mpdZ9tJF0c89k3yz1te46y1vV+T64\\/W0CMqB2F0wNVx+S+ExXL0UQ7tTDG+mMvyBj+NrldDl8SSkVKeld2AS5Ha1lIy10Hf\\/Tn0ecsDMKeT1mPje7P6A3TwUYkXQ6fQZ\\/dTFZeA+\\/L2XOT5UOocvTTI5aFV6poq2sOdf7xZH0pRiexNf+VFroOe4yz4KF0jMr3zLxiEIlUmZAhTcdQQpW\\/buMcDK1lYYYhZXc+7H+bJSM5nBVYvNYFSMvjfTgVhMIO3KjyzNwobxiihSWiACuv5dU7dj3TC+uWk8N\\/mP9DxVuSXS9x+DfAl5oUXZQWa2V6RxMuzIm30fb81MVQRPlZuFQqL\\/qwDegv9Go2006ROz+SAEmShq5rWIxTnKXvvvFy93v\\/b7VwtGzr1cXwWM0pwhSofEFMDqfGL6sJkyTBb46CZkHnbTgsjBFCmi\\/NJJ2XJfNTi7mT0rgNWZUI1cbVLcb7tON37YH7nlnIVvDoNHSZ8h2\\/UeyPEikx8gnEF5M0yiBKVM+IQDHqIfimA4vDlrPqaqcNRAgoB\\/z4WXeXeSSjxkZ3e8Jskl+GkJcwgGyk6MguUYhfCfpr8AGdLnR36ir0HSuKt\\/KrOJIjHpA\\/J\\/7cTz8zI\\/kEo0jO1CbsG\\/B\\/k+o\\/rkg3ZzCO\\/OK7ByHK89ozpMfT5RuxULNChoIzbflqr+z1i4d\\/GXyCzziuyl9feHQMnIid80\\/rh2AtY0CqY5gAJ3TzPoTPB1Udqvmt95BCzZgnPkGkMH6vBEOdjJ6xvhjsrdcGtcCHrOKCTDUxZG\\/c1AhAPzPCAXTvNpK3vrWtsv3QFVPcW0w5ujIE+xFZSVpngEWIhs00N14Bi+puQ+0QIuok6wtzY\\/U1wRCsvoHRSoY75WqZ8\\/pkpwILe569gnZzd2WCOmftvAdZM1zG5TRedodIYNoo65D6ItCtYLNuPTbKVivEcdF+SM5AV+PyJAKpKm6UD\\/zC5x2tP6O28alu9hMJlQUyyZc2+4wYrAtGxV0MQY6k9K45R9zOO2moEEmae7fHB\\/q9ueKEWfTrdLIGfpL9dt7wLxXOjZ4ewcSH4WhAciTbLkWUfgn1OZUknBr7ooyYTspk+FJ3zMjFGoSlJmaM5jyWR3QDgtzZjb5+IYw2A6Y0G2jncEbZCpJppm1Ga+7ViacJl9stSIXJDx0dETTzVz9mb7knTmdjc9VqWAxr22+RPTq7k1lEqvjW2lvHpsTc0wNGxo0d1C\\/E8qCv6AyTE3z5CacQylr3+H5WcMY87U9toEL5VP+jzFPgU3gJ2gnUM0g247XuF\\/yNO2hVTHLJXhIluo3c+dC9n5GMRmfKVRv0kII+5AP1uEED3IWryI0MQ025ygrIwcDfIWPeiHI9XBBcQVWEtZodyjeyj0tNP\\/fQvs7+9nD+exSibY8Z5UsCLzjfTlzy\\/qpx7D7L9rTKGOD56rYz1ebj38VFq8eonsGX3uylZX05PIgAiA1qckk85Jgb2+Yaz1AdX14b7IQcNlofxMALSiZVvXJ3NgjTShrJTspmsL5ER1M63cQdofR8+UqETbIrDDatgOcupv3rOYQMCOr7wA8llTMZoV7Jpi6WUfh76CWHQ63sCAa9NdjDJclPZzalH76ORMTPgWuPZbtETnkfdngVOtKLJOGpjBX26eDs5NR\\/PJno3GTRYfKxuL93ULcNdnpv+gfjgbwe2r6UN06P+AD5mO\\/oK7tV1XVBJDbm3Pkbr4o\\/shY2HUrw+sh\\/YsMfWq7CU1ORTF6xXKjsQKEBHBIUt7B1MAIKmjl59kdsSaXKMBlFJ\\/9n4f2rlBrBqvUjC1tCHOaX13d49Jog4+AHbRBDOmk3DXYRu6ej+7Qxbu3SppVmANAF4vr3JJ4IEUHKTK5CREVR338zzpB829N4XQJ3fR7Z5n4u35eTYMjkTi4sMKwQVBos41AMQonS+Jm+uot9DI8AnkESmJOjFMSrz4yJisE3CPtD4lPWuGFIlBuDqdxLYvmcULQGopIcMpZucGU1YwnQaCfvcuQxhDMG7FNnyFsf7WDcc0fQ\\/21lHg6Vctns3CBnmbXn9+mc0QlAVXEiDgOtUuD6Ivs3zW7K0hvfWNhV\\/YSuaY\\/f8UpCYLmljpKGoZi4l2o\\/nO0HcJ3Z1cqkNKH+qCqS3iOY853ATRP\\/j+iPF0TJBpsckQePdIOX8Uwd3ns942M3uZ7CGJjUwFoP4SuxGApRHbWNqn1Gizt8dM\\/V+z5JUges0sN4CN+SlubPYQLDuIFULTwbX+9GXdnuR+wnVR41HkDdStZfbf2VpNFPgc92V1DT+Lpi9bEniBA04ArmhEazrQXqJy5N6jVqNSR42RANji5UmHlRzUSQu52ixAb+gsFc5Gun+d\\/FOTiBDcCINVJdIA1B9kgdV8AEvgyPuo0k55TTL2+Bb5Osc+D4o0X\\/5JC3NkinVQaJK0V0lmazfIMGYCYwagGxmlM7APR2bUrtCvbBXHXjGS9CYrX5EpAI3KWgP0bYvRhS8qPuFekh9kuzSvoLjnZ2irt\\/pfotvAMPyzSGEBjTwqQJg8gxriXB6Mfv3VQ54UJeQN1BJkqIK4lqB8jgUoeOm8Fa7VOw8sneAANoLxhe6ex+w54Wg53z450tCg7ceR9BW3DL1DcSoY0B53MOhG\\/oEywwnSyZLFFLYkHyRSJr0bfvkPAiZw6yiNbJxlPBo0Hz2sUmq2WelKw\\/7U3t2PMIDTic5dsMRIzTXjifRH9LlOuOPAzg5ZJjRmXG3b3hXzS5ahXoja8MKTYm\\/mQKgyhwmSNgeHpKuGIAdhGFM+JL09CkT3Ps8Bc8FdQxAndDdAve0b5uKNg28pGMzWxTZsCgQh6TlIQbrTiuqWCo8++yZg0X8++jkipIRgcexguAAQbRC\\/8mrF9iPE\\/uwT0C4ltr3UjPywr8jgsgq9MRf0ScM4gsEPx\\/XKid\\/wrMbmScLFNFw+NXZp6Vpz32D68qPwz3kTCGIXwNwHdsoOmX4jj8HDkAW6ODaHSJvXM8t4I32ukT0bVT4rLpw3pPtg2T4WaBQfKDbDiIImEzp+TeqOkuV+B\\/zz32OyuY1wHa8VwIEwbViv5E9XQvy7kvm\\/joiE0i3e6hp1D0gmjMuhQVOEBuq0z71bGncasudY3rGND8vgQozBaFA+B+z0g3lI+yuJkn7f1jYXuCNzyYkTAoOWD8vWO+YAAYpArDd2VSNPu6EJdLRdglrMyAzeQwQVisM\\/JBUgFNkWAyk6A4dG45wxxhhis6WoOcvvaTf6oPcVXdnYIdV9PSpeHbtCBTQ3vauFwnU3kLREscbqre8W7Y\\/4xpXkiq0lXYvYnTXsFYU2nrpb+B1BxP\\/QVt9WToJj9ILNU+PQU9sc21oIPYm8seK+wllKwjgKVvAxSeYbuEyTza6ds+3KXwR6HggLVR447Kzsgd\\/dxZMA66KcXsMHGcuTUHyBgpBGJHW\\/APaUsfdIdhKvPe5OghGePUggvlt9jpAsEclq25+yPeJNd2TmGodGMsjEqrecfmRorrRDDV+jtqujKCtaSGNzOCeu8qJ5C9xhl5LC0bdAWiZzDJuHo5GD6O6N\\/BYwBL8jLECY8g93JEGXVgFY7SM7i61gVj3toFogsqF2Fwb0zNZqA6IKMBmcV02DvtxV6hkcIHrh2AGD1pJxL7o5LOtU5lK6Ifhov2ct4ZoZVcQVB5\\/1\\/Fcrgqt9IC9uvbQfU1Gwy4hAUcX2vzOeC+RiO+oV4dYf+KPJF1NKkc4UWY4NMwKJGJ+8HvKiWH\\/Y2\\/BShv7\\/n6+WM7qZfszU7nZ+hOXcttZszn\\/hztA4seFBvhBhcV0YsQGh6T5f4M3cdaDHqnj1Mfh0OOz9NWBw0H\\/XPvBg8ApFJ9Zcx\\/QH70vq9ZKP+FhQdfO1I68Wxy9Q\\/Kjy2suWsXwwfz3AsBgDBVSIhQgTB9iWUpRN46TqVr2v4jQ4A6xw11EboOKEuiB9GE2WeC3GX1ioGbfkeGPSATKneGGROHPrcbZ0kRw\\/CyQkdc4QUK+SfMxjne\\/ltjZrUh1knxNTl49N4o4OVzc6B8Ar06cS8z4JhbLp1kAoXlv9rgsWd4vdLxVnGOovRvk5ULyV9tKqg5gHCmEGUX3\\/R4UOu6FYpwAIAiSDRiWgC62V1xF\\/wOqFH3LdFfLaBHEIzWN33UWw8MmN16mEKPV6wXd7Aq\\/xvNwMgXEMBEUx33sFWbLkjwJjOB6oQu69AJfLNz0LclnKdfQWORD+0hKGEXT8QMxHQHK7ZGydxwTwLfCoCqKuuQiV4mMZ6tzblVKsuEC8YHTswo8uv+k017lzc2zmVv4wJacXGsEZO0usBGov+D9yJ2spt6rPPYZVIS7iO+RIwoHa42g66R4H\\/9oLUCEebZRaX18B0jkaxs+t6E\\/he0lb9HD3dEcqjQZtcBuNTy\\/ykhqSADhuntZ\\/YcgtOk77ie\\/QuqOphEmrRD0wrd73Nm32vaGtWu42wTSUxgwxqvJGfvrC2hNTIG28Q==\",\"iv\":\"11c06c0ea8d77af320685bb5bb1c4f19\",\"s\":\"326d9bfd7ae434d8\"}
\n\n + \ \n \n\n \n\n \n\t \t\n \t \n \t \n \t \n\n + \ \n \n\n
\n\n\n
\n + \
\n
\n Home -\n Browse Torrents -\n Upload Torrent -\n Stat -\n Forum -\n FAQ -\n Login
\n ExtraTorrent.cc is in compliance with copyrights
\n BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
\n Can't load ExtraTorrent? + Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com + - extratorrentlive.com
\n 2006-2016 + ExtraTorrent.cc1\n
\n\n\n
\n\n
\n\n\n\n\n\n\n"} + headers: + cf-ray: [311ae97f86981a9f-DUS] + connection: [keep-alive] + content-type: [text/html] + date: ['Thu, 15 Dec 2016 15:26:09 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + x-powered-by: [PHP/5.3.29] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/extratorrent/extratorrent_test.yml b/tests/providers/torrent/extratorrent/extratorrent_test.yaml similarity index 90% rename from tests/providers/torrent/extratorrent/extratorrent_test.yml rename to tests/providers/torrent/extratorrent/extratorrent_test.yaml index 2e457a923b..024358f185 100644 --- a/tests/providers/torrent/extratorrent/extratorrent_test.yml +++ b/tests/providers/torrent/extratorrent/extratorrent_test.yaml @@ -1,7 +1,6 @@ daily: - date: 2016-12-14 - url: http://extratorrent.cc/view/today/TV.html mode: RSS + search_strings: [''] data: - seeders: 1 pubdate: @@ -28,9 +27,8 @@ daily: size: 242745344 backlog: - date: 2016-12-14 - url: http://extratorrent.cc/search/?y=0&new=1&search=Elementary+S05E07&x=0 mode: Episode + search_strings: ['Arrow S05E07'] data: - seeders: 49 pubdate: From 20b53a6d41c95d1571cc2d12e181bc6cee1f2567 Mon Sep 17 00:00:00 2001 From: Dario Date: Mon, 10 Apr 2017 19:49:16 +0200 Subject: [PATCH 03/25] Rebased, fixed tests, added tests for zooqle and thepiratebay --- tests/providers/conftest.py | 8 +- tests/providers/test_search.py | 38 -- .../extratorrent/extratorrent_backlog.yaml | 311 +++----------- .../extratorrent/extratorrent_daily.yaml | 393 ++++++------------ .../extratorrent/extratorrent_test.yaml | 66 ++- .../thepiratebay/thepiratebay_backlog.yaml | 239 +++++++++++ .../thepiratebay/thepiratebay_daily.yaml | 262 ++++++++++++ .../thepiratebay/thepiratebay_test.yaml | 39 ++ .../torrent/zooqle/zooqle_backlog.yaml | 313 ++++++++++++++ .../torrent/zooqle/zooqle_daily.yaml | 333 +++++++++++++++ .../providers/torrent/zooqle/zooqle_test.yaml | 39 ++ 11 files changed, 1447 insertions(+), 594 deletions(-) delete mode 100644 tests/providers/test_search.py create mode 100644 tests/providers/torrent/thepiratebay/thepiratebay_backlog.yaml create mode 100644 tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml create mode 100644 tests/providers/torrent/thepiratebay/thepiratebay_test.yaml create mode 100644 tests/providers/torrent/zooqle/zooqle_backlog.yaml create mode 100644 tests/providers/torrent/zooqle/zooqle_daily.yaml create mode 100644 tests/providers/torrent/zooqle/zooqle_test.yaml diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 08dff25b59..1d9157638d 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import extratorrent +from medusa.providers.torrent import extratorrent, thepiratebay, zooqle import pytest @@ -14,18 +14,18 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -__providers__ = (extratorrent,) + +PROVIDERS = (extratorrent, thepiratebay, zooqle) @pytest.fixture(scope='session') def providers(): - Provider = namedtuple('Provider', 'name type klass data') providers = [Provider(name=provider.__name__.rpartition('.')[2], type=provider.__name__.split('.', 3)[2], klass=provider.__dict__.get('provider'), data={}) - for provider in __providers__] + for provider in PROVIDERS] for provider in providers: diff --git a/tests/providers/test_search.py b/tests/providers/test_search.py deleted file mode 100644 index 62be0b0017..0000000000 --- a/tests/providers/test_search.py +++ /dev/null @@ -1,38 +0,0 @@ -# coding=utf-8 -"""Provider search tests.""" -from __future__ import unicode_literals - -import os - -from vcr import VCR - - -__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) - - -vcr = VCR(path_transformer=VCR.ensure_suffix('.yaml'), - record_mode='once', - match_on=['method', 'scheme', 'host', 'port', 'path', 'query', 'body'], - cassette_library_dir=__location__) - - -def test_search_backlog(providers): - - # Given - for provider in providers: - - with vcr.use_cassette(os.path.join(provider.type, provider.name, provider.name + '_backlog')): - - search_strings = {provider.data['backlog']['mode']: provider.data['backlog']['search_strings']} - provider.klass.search(search_strings) - - -def test_search_daily(providers): - - # Given - for provider in providers: - - with vcr.use_cassette(os.path.join(provider.type, provider.name, provider.name + '_daily')): - - search_strings = {provider.data['daily']['mode']: provider.data['daily']['search_strings']} - provider.klass.search(search_strings) diff --git a/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml b/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml index 0eed50c2f5..6de4661a45 100644 --- a/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml +++ b/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml @@ -5,272 +5,63 @@ interactions: Accept: ['*/*'] Accept-Encoding: ['gzip,deflate'] Connection: [keep-alive] - User-Agent: [!!python/unicode 'Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 - Firefox/31.0'] + Cookie: [__cfduid=df1a78dc19ee55bafe740661147c48bc41491834487] + User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 + (KHTML, like Gecko) Chrome/35.0.2117.157 Safari/537.36'] method: GET - uri: http://extratorrent.cc/search/?search=Arrow+S05E07&x=0&y=0&new=1 + uri: http://extra.to/rss.xml?search=Arrow+S05E07&cid=8&type=search response: - body: {string: "\n\n\n \n \n \n \n \n \n - \ \n \n - \ Search for 'Arrow S05E07' torrents - Page 1 - ExtraTorrent.cc The - World's Largest BitTorrent System\n \n \n - \ \n\n\n\n\n \n\n\n \n\n\n \n\n\n \n\n
\n - \
\"ExtraTorrent.cc Advanced SearchLogin   |   Register
\n - \
\n
Browse Torrents
|Search Cloud|Site Stats
|Community
|FAQ 
\n
\n \n \n \n - \ \n \n
\n - \
Latest Articles
- \
Most - searched
\"Hot
First Cams
\"View
\"View
\"View
\"View
\"Hot
XVID DIVX
\"View
\"View
\"View
\"View
\"Hot
H264 X264
\"View
\"View
\"View
\"View
\"Hot
Television
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\n \n
30s
Chat
To add new messages please - Login or Register for FREE
\n\n
\n
\n\n\n\n
\n \n\n \n \n\n \n
\n\n\n\n
{\"ct\":\"UAWyjYNPON2EEUgR5m\\/jk\\/M5RTEJZ4nRCQLzMG2p9jl\\/Il6ofVlv4Oa39jiNFA8Ah4UgrmROV4pFG7KvISxR+gWOq8wbEFg6fLhKyJ2\\/iLx0Y1zyamcdCy+s7993U6WEHFNNvvSFYRF9pyItXfDIU8PF9ZZhlPyPtxuecpifT8NXjY45hA8Za5XtXMsQJy4aEhbCZXC2FEEjJ9Lmgq\\/WdrnCN1eerXor1RIksdlwCANPkLe\\/RmYUZQLqXJS1Ke1wOssAw70oWfDKPaxkyaaSOlCSehqhGMJ\\/OU2UpY7FNkmYXrKQddaycVjoKh8MSD2GSASAqXZaYlDkIEjCDU8k52PB+bYIiHf\\/u2k7HA0Q7jqZwpiCl22sjdhzLlhLsRWTU1xyaQg0EaXKl6cuxMVQ06LLIVyBv4PRTWGve9M9dexf3sPJ9GclAVIi9JvXyBjpNxb+erD1EajGZApZhKO5+NxbYndTjRDcaWApXlSJc\\/IkJssM9HTArI1jKJct\\/yZmG1sLSoL1ExGYGtSjYy16hKARNNrts4RhVjkOeVbyvz30pBCrGNdpz0IgTsJQTpL\\/uycLuYDAFrKk6Vx\\/bftp8BQknWYNVT0jErIuf97EOu5ZuBhZRYC5R+TiKggsVTdJzZYbFocP3dirEGupkhzk5F1SxnSoA+dVkFMiZCrSxYN0P8wsFKhf4fkHZdYm7PtZxphcS4ZoP8OkP0hq4F26hLaL5czlIIXI4TqdT1zKVLvFhVhQWftGa25WTKSQlINoxZerdrGeaGXmoNGg9NokzDvM3UXzD+OY2MRGyvf4nhmHiHKNDUjA9Yt2k7zpfDOPIKf\\/jVUM4qKEAqQdwMJZ0tfTnsgnetgT7V+W+0JiCTCB6nbTzOgoTm9EM49vJxaNMAlpbtuIDTcWhTGocWgGkbd1ZzN1Q17GAAM+Zqz0dr3ytiErBXebWBeWPOU6M\\/kZnf5RlTG9qkW6IgVbKE1DhtiuNgIrxXYsVD+DmA5Vbt6tbD7ucjXHMNXzMdE9wYf9GZYKkfceLPEBkFJUHQ3EkBgr7LI0srD6hN3gNZtLI2dUnO2sM0xwT0rVxsugoZIffse\\/00RbsIqmXSbuadvqL2wI2CwBr9DQHSk15mtKtKnBVQ+JYBN3eRuyGa982y7NgS8Bjwbr7IFfhhprP0Jm5Eg+yq59ADL0JBNQdexTz8S8\\/p6bTXwuEJoKKcp1gXsH8ccm7tmKoCWjCcU+TT6D8KuCY\\/fzrwPqnZXDXNwH5SiLsZT6eK3QB2IT2LMoiEI+JuCz9cj+n\\/BuGDVlwaZR5Z\\/bZMXzJ\\/ZRCKIXaIXkzKV+GMu+m+O4f2mhuaA0kvwAeT2TXVVxeFOkcjR0Ei\\/oNHPjH2w1tjJdia1hfsk\\/QdNl+14UPexMeqts2Y2AR0dqwmk41igQG\\/mmGRGZ7VRHVihM9TyizaYU8L2ByC7TnLnlY4FB27Q1ndiRBQbC3C25k4Txyv6m5eFtEzU60Zp2Jt9mzvzfVVT7FIwdt9\\/xwliKEBd7fP\\/gVLjPNxqZszGUtuBtXW9K6saLVNmRusDnCgpbluOouWZ86TeMmJGNU\\/gKbjKi53DqAnl\\/pOAnDZunzZIOH3HMRv8IdgfLGysjwPHsWxzxtP\\/pv15zHe0QxGRbgbrJg6sBABaSBFroyA5\\/2BK0sqUQ\\/e3TvFZUP5A1JJO82SEWugFMZ1Yzc1g71dKtww4bt8njH8YNKrBlL2A12Ugsl933qrbpw41\\/odxNnCPpfhmaZwx1VsAquLXga4LhAMKZxuC+mLAesieb9wxHvJR25IcifEKnUGSz9uv1z9mBT+6IbTRRaWioY9ZkxOECjhTaFi8B+S4D2jBiX+n2qXbG6ZrBCWm8I\\/l0uQv7qotqO1vmzOf7W1by1U5VSh0vQg90\\/RDfCfYRru7WTRhCYSLmmVozmHmYlP7xhxFO6nglLhM1imglLlBPvU47xyLvfilIEpasJtbFL9aJRZ7dC1u8SxOE2JtAy9wWEx\\/JnXse73ZhVh6Qfqcgz+jzDS8oASVJFWbLlyf6nHfU35TEMkKDtuZQRCK71+w5rl2iG1Fonn\\/uAzZYOwEClKX+ERMeZElFIn0Wj\\/yFljPOd2lzODKt5eZsgragMJgRXvNxEhRAkMHwur0K8Gc0BGzbXJEhYM2eeKd5LLvwito\\/r07FQsJyWkUE1+0GQ3Wm6pr4iy7Hy409glML9ldJ4Sc+VYtY4auvI2OHljRKiPcTOYIpWELSEaSVRpg\\/ITyRTGaVoq0Z\\/ZRmoL2NpBHNdk95DbjUv0B6SWdaFTEz3z8bXJqgqLKblGrmF5K5f4tcOgwBOQ2XDHYyMHdo+qFs0AsHNH6QpO+uoLLewrwXNq9QRBQg+ISVTi47dwbL03tE9ODoNui8+9T+JMb7Xc0ILK+krY2zzIxOKe8jbuuT0XZUbbiiB8\\/WS7fTtchK\\/vjyIes1UYE3P28yR4m9Wbay7CCs4LFMLYHnBXVTHXs4PCfN\\/6NW+yAOwsKIx6w9j2dkMDV0uYOs7CxbpMBwbJB6qKMPWh+jmw+kQ87GMIgz5iaqqId617327o4Si+bvWFwI35DTyd0uCy0b1tq7OIA\\/CIdba\\/\\/M7QRNatK41Yr35e6oUiI+3IZtb\\/twr5VN5KTXhluqjgmTYovTCIwDPcNLxldQT5iAPMb4TZTlFYKMjPAKLMtqlo\\/eyVltf719TxZJk6Ff9I8Mjc5b\\/nlWLQY\\/mixX3UN\\/IswlhuL0vjyurBEu2oK2RUdWGBIodPHHc9CYJMeaR3yAE\\/x+3MwgLDLKPS8NyH31Boqsf2CRb6oaadM2\\/C4EhzAcidZltTmwbbWj9GqtTlA0lg\\/lxqqrpaNfg6fdr0hwyRF8V\\/y3t4Q4WqBCb5jDToGAzec5F0Y4+1syajNqtAFn24unBqfv79TYVgyNqYOpuM\\/xbICi7EMOJa5QAVG8cZmkPxVuFZYLj7QBxGyWDj6CfhieMRHXkMcFXbz7h9G37j1G4kk+tFQuqnBiou+QBUJeObh8oSgQcJFvdBHisy4PdSOaNVkyPU03uqC0RRnkRGOb9HeQxu1\\/jgQAO4nSaqVdQbQdqwBcAchnQ9ke9xi+7W4yA9VtH7dfqZbEPqYTffe92GbEjrMz2hhK2kwS94XLFMPS4R50AQw6aaBampNCfzakB4KJlxD86Q5I+R1neGLM6uj72XfCUcE4D9qk8cDkwytrfAaps0M5XNHleetTLSX6Y+l40H+zXFAvAcACdLAyYULIjUwKDYW0U\\/sBqCbxV\\/x3661mC1\\/tJfillHDtc81geBbAPrmrCnuQLqnGjJI++SF72AK1WTF6K6MJMHtgNRTpLgt+RUMrgrGknXUixmuXMPRHzluhpzVmLxMhO7\\/zu7piyRdiJagPDT3tlnsZqx\\/gkMYMFzXNren4iEQn3MY3\\/0mifWPu74L5FxcPJFu566bBcTMDkiT2ZcUtD3WSF3hrv+CX14nOsvwgeikPCP\\/phcAXp5AcH5BJnpCAQr+xN\\/musqWVnWpfWDsyHpRfJ8yiSLlfgVKKY3MndhNFmedBCrb5uOApWAov20jNSAAbF3h1QNTepdHq7uL1NKB4erc02G2bvjca1vDKWNHbLHUSzvT0rFty9sZU9FYJXqXFJBvWYGZnZ2lwWePQMkbvO5uFhO8uUBotK2DQ+GxyXR5I3J08WmTR31usHyGtuK6iMiET1XJzyTe6KPmuwtbjtLjpFXQiUFBpFQo3oruiyUOxx0r\\/G16g12hYvZs3OON3PrBoIPZSY3KWe0HqbJvUhD+W0qVuSaEARIwmtV8Scdq6oaILnsZiCyQGoS93S4OnwghAtMFlf2l0Iwonf72QyLL5o\\/mtZ\\/nbjBJx\\/XYMA+kK\\/ZOUxgF28\\/8IiHKFO9akuOJKH1i4rv8DSg6c26ad6ajT5udgbQtq5hWWElhXhaE0JtnKTImqD5BsEubAyq5Fd5Q4UUGao2VNHod4UMcboZDoyQgao+K8e3rw\\/ZSUuqaXWqP+78uauOIPNk1XdL0uQ4qjsNQk6qmhvHd5x7G6TKt6sW+Pn3AqXt2FQsqUNJVI9LPh96gowUgH6UI41wRq7\\/h1itc+ztQm14\\/Uy4d+Z0pXdrv0ipGyvxTiHXnapwbZSqup7yCdMAE3Wjm3hZ9yRou79EZUPW6jVw0Y8rY3McaK3i\\/2uQBRdhxsjZ9iAbdAXcZJ2XRjqJKxUAzWqZHWVkIajkKvxFIywyfQi2e1Mb8SZ1kym3wrYC\\/I0XQlaBZJRPOwP7FmYoX6bjgajGqn9uVyBegVPe6hOze4M98q1omrt+s3K4dVl4rbZxiiX60L3OULqWQpFV\\/WbnY+QejTxKhZPlJlTAPazJOimADRx5VIclmpa1RLDXrVfcygftxCsDoNUlfSnw+s92Rfwt2wzCzqBUkFdy2dT3wEUf+MjKCIwZf9nirMK2FQtsyzBk3NwopZo1qRcDUdK3\\/Rb2Navy2V59CFJXv8IS5xaR\\/2E9gxbayIFfO\\/JrySKBFLlsp6u2kTL+hpS2pf1fMQemCz5dWJCa68HoDkKd40zRs1M57weMDP7HimstaNm\\/RQ5iVWD\\/GEZOPw5Hk3ZWkUVRpurg6jAlxrFQCg6owCsnWrX4IDXfNgLsmTd8IlBFshW236MU9nVDcGXuI+urqg1\\/zucPflM+dNndSLllIKrbtC8n5Whj7WRWr4ywTQy3hZZGBKjFKKkXbvTpGLsKIVCC4P9Ex+OGi+6\\/UM03P3YJdQRJ64jSWw6J9iWhOe2\\/R7VgZ8b14LaRgg+FsqYXtGINzBTB8ZS0KaLC5JYBTyrzlwGYBV2dfNXSEBXeMJOB\\/RGpJJOwG3+LOTiTkzw8nsQKfKBxgrBTT20t6F42cbP\\/vdUAj3W25EoGOdQXohN+VyU61r2yDj0EUvK8\\/1qdVb9y9Bs2nEoZ4EHrdTWz1VwfxssyF1To8J91QTxNAIqwx0mZMFss2nJ3bwfTJT634ShVvgpy9MpkwOELKHs4nU4JfXv\\/9V4BHiqA985eiP7OrQbNhrw4f9JvD\\/5mem60Prj9eCocpeqkrhvSoMtFuMHfNVW3Fv9uYvMAJG6bkln9ozqhk5X2hY+ftxc3Dr14P42dTcd0zI5DxoqN6OKiAuykiBq8FmMwVKJom3GejknSWe03+iUx+tVQ0pMCm93TjR0UnI\\/yfXeKcy1ODR6N4C104udbCvqsjcGNuuvFk8DUjk00t4m\\/UNl3Uzx71Hyh3ZrU08SW01RIvG2alvJ5wZ4rL7wjgpyxpj3RcQkdI2kV1DqeD3e+bcfD7GupXI4fHo98onDws5MACvC\\/hkgLZH1E26gtfmYvySp11UMapm0KRrvc1jDt1LyDmvkKZXdHrJ2xHfp2QngRwsXCj6A6KiFBGz5bULm7KyBE0lucTZlVqZSSYCs4e\\/cuHBwT4By1iA6Q6ejzoVZz+6BfWmoniI03OmoJ2CozEdxTDqgEnHw+inRPWB4q9qRun9UmQSHePORg\\/JChsMF0JB5l+a7oW71uXdunjYPofXY5gZzc0A5XS3uGMKfejHzM9BSLQahknbRHRDaRj52K4Zf4hYoOFWDRl4arvpZbtEG4ONgPu5pgYQNP3NNpkjsLokfXVnafLjUvDsKKVw4B+QN2WwUmXQ7a7wZxNWw+d26wztGLspfT+oEYWWBP1ZMg7D8SfirkLmRj2ATlvDBuaSGuBoJ1I1i+NiSY0oxWQiW2mvKoYW+TuTPd9VY9aH5qyBGdjFJ+5wFYNXBK92E8VadYrOi5ANmMEnRLSOjKzpKLc8BFzs9DCxzqr1sW\\/scsiMyBJw7O61m1vIn2YG+dJTiM\\/Fjeas+cpsqWaYMHYzSAEy0J83kzi\\/rKwfagBrFyn1UGrsEu7jtbjbpKZ6\\/PAlwYVHlJBBhBmwYShR\\/FzFfnXACUyW+ZX2njjqWU0ziw\\/f3aBCvxncSaA5jRfmNfFAlRuAH9SnkB43PFAgUtiF1774yY3pAeNO22K1+ti3HSm1wgFE4lcj\\/XhFlXgqdZE277GBOPB4\\/RXWgdONmubPfUJ8S6p7tPwzU7GyOJnY6tHyzupenWOwlpyo3aDSVpXHlFw9qK3lfBJNCfkIyzcxLlupAxh7QzYARhHbYVr8PhHMF6Km9OyMwo6fY\\/A+dKWv2\\/21QwMzP0KIxavsssgMsn+FmApsKsS6cDwNa5LvjlzDOADlbd0PhLOMKQWOnSVNoXU4XPpCoUheyqJOXPNJndVuATbCtRUV5A5DYSp4tv0jU9NnPWDHEMjeQpl58PwMNKPx3B43\\/0rmZKdLd32W5lCkZSqgtVZQVLdccSvlKEi0TQ104tnboYchzsQ6YOObNaFAidI+OXFATLmQOM3qb8zidIO3fS1Geobx0BqNsY8KsUdNty0t9XbAKP3cD8q\\/RdhnfKAesKUHUwyx3iJbN5KfcnsUEHB1zOS2N4LoH3kELN7TQuwOdWO1JB8U+L8rAoJ2dED\\/IEZ8L7CYljY\\/nsTAJ4Xa7wbPe6yiw71LraC\\/ssK6iSvnnVIIC2+r7pY4GFDbLIzyjeo3p8caJcwlwrNtIDIfFQ7PV2xl29IzX2eOX7vfj8C8xqTbah1UVd2H0ZIiwOhmBdbFspwH52o\\/ycrKvJo8SO\\/gl1uTiWVEzmzCqf6QVejbdyxZkbhR+K571Mk0AOMxsQjXgF2Xeb81B4KLmLkbEZ4\\/mbHErSojdN0tF+rkcnCHLUSKVR48FxQq81uyG4W41dOg6v02KL+wtPhV+teFIWKCgdnhNDkQOBv61\\/U\\/sfhTiutpo24yocAN6rZ\\/VhSIVrMSMU\\/zDbOWX2jwlzmkTGZRGU1EmX7DokqyRCZF8NRedN1AFh6kXNomjKObKkqfpJWO4ClpcobI8NKpT9s\\/dbH4D3VDDLFBZwDI7T2M+veMzifqRA3hJBKywwKiG6+\\/hMyDPbGvwTz\\/4BpR4WoT7itzSDgDUYmFg57SyXgPxRbQIZKkDzEsQ4IOoekOoEO+xgGqJY7ADYrZr12wtpWqeYTn1IBVuGM4RAvzl0fIJiHMKKl45hE0vibSEXuWqpoQehJ3mWI157MvMfBJhhjIZzBYD30DTAsDe+Vk3v12oKLwOprnrGCUSpYuPeVLBCyLjUVC\\/ofBXt619PSKvArikBzvmnFzku+u9UZ+zAVUvFfGPuGrkATPl8bfx9wO60LgiHA5Q3yzRwJ0XyVx0SowzfhtayEY2+TdfD+JQRsrXW8WTEl4G0Wk2bCyH8prFlH9sr0Z32H\\/LGHQGa\\/pJWXuwl3460UyY6aN8mMRm0dHYlqphNSkjoiync\\/\\/tAXcF3kTH9auJ1myAr+CBoaZqxE55JMmTxmi79oW8zs8Pa1xi6tIy+5xNjP3WY94KX73SQCmlzayS6D99tyu2U3GIhNyGYW8ywX8w\\/wRm7Wzimsseb8JJizavWsXzMZYU7TxXohEBnMkUJVJiz4eJhoSkZ9jekUIbLkuLBSp+VS1lvG2jk6KVIoFJF0xNo1quG9mE7ys7kq6krGWM3VDkE0nbqtuPyC4YM2KlFby7XfYJBOW9C9hFvjZrRxBj6jGw0NwPVyYlcoKb\\/GmxfMMFV63+Gvjjnyyo\\/nRsHsyt2+EckxiXEsS6ba9isjaE49d57Z3kHc2FPTbreaRDt9zSMxQnNCe7Y46LUq9zMmJ22qtlpVOGzMEH5b9qYJmRJ+NMi0pK4AEHRuHqQcavcOfvNPpEEwS6PUNYToTTHqa6zWPWgMi3myhadfFT0poogD6b\\/rcMZjzoqZJYi41YpPRAtxJFbFltKwTz5S72LxisVnoQRKE+Vcpqc+LeskVdLFS8fqqcBS2vlGXcYSRVjANa1TUjZDNPlIdyBkOSwiypLpQHasAo1vLwhjBadj7trZrs6nNmCRTSxhg1NAyAsHkly9Ouj1Bqop1cfeW9QRJ+u8vhEyWPHDUZtB383gQAh8QIIAxAihs1sLeqRTPvorlsFLc8o+JsTXzzlFP8LT1OViL\\/JG66WQyYlcjvCIbV52D5\\/hvlrCiwIuV53iN6K\\/jylccRBM6mDHPGihiSyugyK8OmYrXwFyZ+bRbJOCEcw+LFKvm4QbzPiiz2CgAPbao1z6CryXk4FjLRVlDOhtgW49AvpMTgsCUY5rbEDT2jPMSYiMffdizY5Q6BYymCoiuv9SSf6+nrjuhUvRO\\/AFVPC4ns8YbglCv7d\\/6houflEpb5Oma4UFLgy1udoXWuG6cKm7YTsOV8EAh\\/OVXFRiWB7caohR7wadMUZmzOVl+XbJ19zX4IZNfdVkZ\\/32KOQzdNn\\/FbfPvtubun7he++3GIZLLmTXwgExpgdiJaAnbeywvpMGnFe+ywM9vz14pHEUFzujZ2a9I8K3cySIpJT8uR17qSi7+g7b61RKx2MfdPuvOF8\\/vpHlkxxQZllm9tmQrwqXiDs6+JiGhSty8jO4Rwu\\/BhkdVsjUhiMrHiEjWogmrSDsr4DsNyEcABzTf0Cg3Tl\\/6FRPaWzpXQgGwI1iyq\\/INn5HyIhJ73zO\\/Jh2q9\\/2dAPAIOFN5xKmw3XRMi5GoAY1vBoLomun6m8jIHhjVuTull9pma35yF\\/U+MwW44oZ1nalYtFqPEeJKbsnfHkCUskMLpXHiK13JfxHkKJn8YQDrxLA\\/Vef00P10dEy1IWQmj1OMBODmJwEVyp4XXiuGqjWRzlQ51GaRtGqBVt8rq\\/CLwtGsLt9luTcDs3M1FE7dmCdC7os39oKl6IUSaVMU9GxnicOragM\\/Dnhsp0Qvk7Lw5BfxFLaF2Xp20WXX1jED1LMaJOHmBc\\/Kdv+yzpYCD7Z46xDIGx9DKplbqsffGW\\/u2ciIReXZ4MYwhiTnr69ZjTz8eFrgEmBOMBw\\/vA1INUUh8zQDcmbKMZxBttSX6gp5T5i1gEgU+fcXceW6crPRPIFspnctcmn3qBR0fjCCMnmtlAEjdiUU2rg1XZgvcnx7qBecwuxmQ9PlSSYE1c6vv7BCatl1+eHxixJRYK35bvGV+8nR+6Y2XgwaXn3F0h9VQvCOP8psJz2ytrerCP\\/L3JLQAgm1Yivy\\/8xrbj1hmKoB+xCDGyTjqfZik+szIQZS5Z+3PBG2yVokDltzGhHIO5qWt7aIDLcuqxyow7iRPrg0ecRGrVCUHFK7IdZsGq0fukwQxbLoe2wf0QG9Q8gmx3OjwIobxmOfNcn0LInHDquCoYjbVD27iW+fQat9HbXe2fcE8YpAIhxXWWJBEl0gfUSI1jKwydxyepxNJDwfctE15K65VQPxpOch4wUSTboPGUiFO8LcYNDs0r\\/5Lzj4ri+rHkBSVQHWqdV6BNvSJ0mEg8XmOtev\\/cWQZ1+80Lq+RopnXOvTy3qugH7fp62W94zBO8tEifVJfM0Rn++FWRFogbo6NFFJRzSasGxoDBJI3Gv\\/qfBRbFn1DMlVeETmQUo\\/ClszmvsNKGs8Hp4WhFgL8FtdZqdBmJ\\/1t3n8CooFo\\/nGP4dXCF8IMvIOfkbkiw\\/eNP2jdskNwg6NpRcwCgoKBKCeWEwa6dwg6gFKjIOEX3010hvM7ynGNEnS+z67n9qTiQUzrSKay8zsRxsvIFVTwSyOIJczUV3yvkQ7x69KzeOSaAERzFvsXid9IXyg+\\/VC+31qG2nq0E5NHGnqxctMnF7HV2ZtwtKd96i3gx6TX8AGFneCoBjcGrVZ2CZmv+6t+Y0bXzHsvEsfyznMO4tr3VLwNCxG9lsla\\/p8D9ZIze3ZxNcL\\/Vh+zD4+LaCs9TyR1E+DE4Pxa0M\\/wvRF3sheDWofMBrlkksQnF+2r7nAnI6D1sPc6xqOy39rfhGR+b8pELDENmoLi5lrVgjlhDZzq6s5ixT+zqcOODrLxqxNsdUnRXoCsq5xTOitJ+6upQOZGpceg9X5LM1n\\/Y1si+tvH5gkBeT\\/Qj+JKfFlK48lc\\/2mD29CrBbX0HgMnweVs0dNSi6MW6poNuKuxt6NDUQzodjiwrhPYMDgM+2ISt91FeZGqjKYbWHQtzB49DUAhiTDRiGAXV1z3ewIHjwdFjEUEqSfJYehTchckCrw5idYwkW31S2UtH+GYASIHeKncdA0qNWu6V\\/t5N+PVmyZ4NdFVNbistwnBEID5cFGnAdWfs56BZfJQk1ti1lnYtD2ucBGg8AtQFzt55vE+XsLDczcwZ+PjA3cG9C6q2g7xD6CppgdAOQzS\\/lOYYG2wZgAu1Vpekg06LLkqFi1CQiL8vGwEAjv5vD40pXj8QS+Vu0dv0auKtVOrm3jzOV\\/zh9CV6FMLvGPUyYmaUoz26NHdP9Oqc4Z8eXfllWz8zGWMf5pvoQONfwwgm3A6PrsHWDVkflj1GSJlCKrzb98IqvyrFJigDRiPLC2M8SCPMgdqbn2\\/ET+WNytuIKAGYg2cDqE5pFMh\\/D9cx3vJGYnv+v8AL\\/itADHilny0dZb9b7OsRtmBXDjDNmUeKoTnYwNPlUYMH5qmvvodLSgvRrwf7RaqM9B7oxqDkdIRqdwBUtzzOkSFI7qEDtG1kOy1ZfBmZjCmL5Nb9F1xdMNE8WGaVVg0WseINC2RLxTWAkCWjyNO7Bp\\/c\\/nPGK2reWLxJh1RlV4gSHs8aFdSg\\/RSuUIip8o7D3xCL4kxkOcv8a67+73XiyDw7FfUoABblBdaVBBAP\\/blbRege4xAoEDikvbKeeWTFnxy4YfwNw\\/4IJMAg1k3rBi9SOD1A3aDl8OGjf2B9HA59WzyFKgRepyJ+iSW+aHEMvg+rplaV7H5k+2q5tOFY2\\/Ixol098XDMnUhYBCc6cYCu9Ra8YdkNizmqbrBLEo3s+uNlR87V1YI62QTrAbLlbpMp\\/K6b0tR7kdYEgfOSa9PcTqJMtNvokMa+KiRLGIBD\\/46GdbZ6ui4EOBTjq8fV6ydT7gDh\\/7eZ3uZaErGnyNctNzGBg+igs71g5o7vx71BLfEcYN\\/vDlPa4g72BPNgICmPDq75FhkC+bMv0ZW0QMoC817o7nDl5dQMSAU2lTDYyZ4GDAmDnYiK8c1WWLXqQNEg49FCo3El2Z5imi79eW9GweQYUgGa8WDov1DwcJl3VtNhpCDROCRUVMvqwiXdiFceZJ+Qkqv50l8NC3BJX+7yq4bDZYXTnbxlWs2Q6CoVqPT8ZvRnQP\\/IH6q1AOFzwdHp3T\\/1dehe6H0JjEvrrjfNKcWKjdWwouYWsPUpNTyeYrZC5PCiA+3a+31wvbXkQT2rVI8uc6gqlj5BH\\/2vYBKkrbzP1J6oWG8Rwn1Qd+OzjeCVlq5BDEv17cIzUSBFDG7aL1CeAoEeKPVhxdiLhNVc73dQ\\/j3Po+oZiPHgXfjcgzTCF3zcA2VRR8O9yD3DGlHhbvh55sQ\\/E6VqmjtqEEBkENLFe+0U3aqAHL4juzciizgiA6XURYGBZVB4CqrMcxKbu\\/MFnMl8uysDJouLzR+G3jKRPxyXxeN6r+kaXhwbm912tpXz3gytkbNbICzaolNmJk2\\/w\\/SMsefZQpqv8UNOUkCtqcjKTIZCZpSnRamOuVTo6POQEVlaLnI1bnNK+IsSrHHzB5exW5NZuzox4ApdiM\\/siOXakbRpxMaQOva0JObEdanBtOmRr40vSWaG\\/ip5F+ng0vP7T5EyPVkGaMSGlnjmTm9Ny+YFHGy2ILt6wagLL04T8LkPUvhfVzEnHSJVE3HJ7AsdqZ5w8UkAjrdL7JrmSA6SvBHfRR2s1Vpy1dHp6opugUFo\\/xnuDpPhUWNE6LdO5tsv5qrtB6Pun1Hx4g4H2ZIlXBlxemg9yoUCy2jbs8IcTGddTHBtx8Q6Th9dT2iB53rcW6PoqieXZmR+kvIYIeiPuSiTC1geLHAF9fIPNPN5LGLHW3u6Dt2A2oZdtMcpzQ1kteE5ICyc7qJSpoo4jnaymTq\\/sFOZXw9kg2jlNuW+vDoYU6itjKQ+a4qgBSvSi1tYfNfWUzvAwW9m7+EO+478jYyucsJ91CTYHSpxwUUk3WZJpMzZF\\/i2m769RhxSP6s0BuYH+ApGO6n53GG4v0v3FCm0jkU8Zi4vbgrWQJpSrye5cE9+y9\\/jttqY29PERMIGK9WEi0RkJH2fPWtBtISxzyZoIaEuwbQOMQ3f3h+\\/Oi4llABPsINyjW1XCl28UW9vHSAvY9MZhaiDjoRgmL9416Dk7WqmjVtMPmKTnC30V\\/\\/hy7dgq75qDnHhBwjOK9PAonBS2ceWAXT64oHSgpBz3SMBzpCD\\/Uejm2rHL+FSfpe3Ftrwudth97\\/ue8DE\\/M2qNVSz1IhtrIVlfhPnLnNk4Yznn35bHkaIfI6HcZVQmfi0e425W2RO8oA+qksVZp18vP6frozuEKwRDnck6qTM41DYYfXQI3X6p0hpJ4ymXewtHprbusNGe4PmJpAURATjI\\/9cBXMmKNQyXF4rn47kHPebvelgCNTviKYizG0FkmL+PuVtKWS58eDIDCxc6zWN9EA0VxVTq6ifiaHvtktitFSyOzhwd97eC9JArqXFmn9l2XNpq6fuyum2xttKA\\/87rjLfudq8x9ZnfYPlVx2hu8zckKSjGE0BDaNKUXcQ+o+8DduvNKdvIhHQUGON+nXtr\\/nvhHgK1kHjJ8DxbAb6ffyPTFpfjMTN0KJB\\/nlXRr5eM1kN5LjKTn\\/2egETfDZbytfsa7F5GN\\/QrEksirDPodbUpmsfKNDKuga8QsAj+gxL2MZfZxrgXbFkpewHyMvo+h1YG5XFhs6MGTPIk1dmP+S5vB6p5DT\\/RlnmTK1hujheacvkJGZZIE7YHJn1sSvJfM2aCJ7y5XJZsmrrVizdjjDtY63Qp59azaERW2uzCXVLCAvR9A\\/ZuXzMuxwUaQ52C+jo0uxPx2EtRY5DYaqa+n7UeIpJ9GhOdSwr6FO2coRMga2uaeKH9vzAVa7mbkrkZfFEAzvF50vMITkgWkR+Lkly41bjggx8ZesZga55dgLOSf\\/s4A5HlMuPO2ImFyMmmZBsFske2\\/xO21Cv6+x55HX1OXD2LKWU6hyYVMuJWE\\/Sb+KM+Lg2AGSjvWd2V5q5dP82CHAbdChv5Wm4m+IHGpU3a4zHrS191sY8e7XkROXzfUHYAIG2ybfv2KKxp0UfdevAPisaLC7X3j9p3QcvXEO8RooDTQB7IxziSYQpU0Ku4Zyq7Wc9X3RAjdv51UtIMvihiX\\/vQSu1f6rKJ40ptZbTiKg0mrjnPukW2+AMHUKQKNyjFuC5RF9\\/epaI0nqXaXlSJ2kh1WPUBmiuyojdI99Kw2uEPIQrFjQCzC8GfLA3Mr6GJgP1jGkIWjg\\/cXW15RY0+XVoTKgFY7tfCnGw7sA0z26BEGLUO71qlQe21xnBbyMEFeswL6mfvw8lKcydxZVYyTAeEyPGVXJOEkdbMHZBRBTob+08LPZ8pquto4A+xsOAKBnFXmPCyYKcwlct\\/ctIzTAFoLwR1vNt863eisrQyZi45WzxJhBnakW3DINaOIdJxqXx9KVcZ9cXiTBt+zA2XqQ2Yr0RYRMpigyofxbce0qMNZ2pvDWs6rtvVeLGNX6pNdJiILzw6vVThtsxa8jMl6SXvdOAYgJbZnqaaf1yGEu1IDPYL\\/hi+WSdJ4ao6wZgtTrvUD71pn9lB1D5GkX0a4YOOOZsRM8qLkWZjOonJNGV8AAwRABV742wfTEZL0OXASjt1Stk4bW9D7ic7tJ5h+JOj9qknyJnQ1Ga0KaFe4mDyn3iczQMVGULcYA09iwL263v98wIi3u7ngX7DH4Vv\\/IbjMtLfE0EscCHudibBvJlzQnPtFSbN9c0ul15ZHSUQ8uueDZhnr0aW8lObkMOoFFHjoqNYY1psllL1irwKWzNxJZX1QlhLujNIPSVjrTqmYCld9vKTTw+AVCsFoumJv2ESGLkAq+cfx8csu1I0FnhxhnMHbTDUowm22RirRSc8AY1ElmvfkWNwsHcxiXNx5j7AI7jkEK7ZPOeWaXRmd+g8wrjwgOyC1G98FtxvFFbvC0xnsuQbxh6p0sr602jPfUT1n0QsoTUJ7iBzMyvW5mG4nAmXuuWsKsLJPN3oUodihbAe\\/WNo3WD4Divw8ADPMZO8DocsAMjpJNaVVgVU4n9jKu4O4XtZRvdQ4ii6S0ZWTz3K8UJxk9GA6sLXPQoSOGppSZwrsVJEDDGDpP61v\\/2EIcOEE5\\/ZMdYLbRRO7\\/JsiqcosyVzwyPZcsZ1+CZu\\/yZqOWtlWUHw+vhE2f8b1xqmFS4f1IKltNVRFl+KM\\/5WwShAPZUX5RWUguCqQ27ay2Xh7744l23NuAbmUpftugT7hCtDlmXyM5wHVQC+gqoLyAO1LD5yo95jq9oR2HRN\\/WAv5urgNQAl3r\\/dN4LHPyZGE+M48Olc+X6Z8x4\\/qlU4ttrPtHp7UDhEYO1pD3QyzYzl4gHgjSjCbp\\/6ygN7OkZYlULGP5SuOGPWI++lWOThMKTyBm7X5ySZhf7abPq4crH0HViZaFRKoxza1B2iVLlARE7xP9saQau5Nwt0WYv9mzR3UXhKNVxuVqQnVmRm9+Iq4AvqB1Tg\\/fNRdw\\/AP2DLmcdlf+h1dqAmMYUosp2pYgNZ14ysbz6++2tuHgk\\/CKTxQCyBLJRusUTN9jlXpkmTf3VwJ7ayMt2Dgs\\/ExPTXfCYZdo3fCtfs4ugr6nz3Os+uOH20q7DsW9+DgL\\/K2Hfk\\/RUfwfgY+bA3Csg\\/av\\/cEuwcmJOdWBwBsICXmjEuQnmIJ5wdkL60csY0ucgfRsJSL4Y5BCw9ot7jUSk0H13tRyWDDDRbVBOlB9QDGXB6EKxZIosIFdHCFDcYdX1gYOGVghoWRb3H2nUBFpA+t7CmSTlL+6OzpVxm5oPUhT0+ROf84kMMtOZmPnOe5DwcKMY66pdepdKUVJIqg504cyx41NLu4id3Bz8gEzpdeOrCdJq5eOC58fb5Aro75UMLUHnj7Q3IQjCSO5eOx3wDqoHF3lXU1m8AIyuB3Dp2WBgjVwC4rCWQLAUDb5nE6ZklFzaiQwv2yKlGybF7XFPnMhlusAnl9+kdZvbK6NYjOYIQKh+JUSmKnxos\\/5Cio7RrEjZwsEBYYdGc+KfQl9ynYhuRuC9pnjYBxOWuEQPZpnRbGQtSTVCPN9AN9J5vbFUGn5NXslisTwF4Z3MSG+SPzwsdZtRshFm3vlTFPzX5UmMlHHCCCYVnej0qgUBOqMrjKFT8cTBxLlEILjS18YRN4K0MkdS8dZR3s2WZyFdnfxJNE2vDRDOO78XaoTgcDayKuKhP21ABAHuNF1K+kIRPCrTG3GCnt6sH6U\\/xhCON4zgAm+GZTfQfF4AJvWuVn+C9svd+Bos7UKZy+ojUKvxTe\\/+kQn1seb\\/iasSnD7Voq+xluByX8qKyz3aKa8YmWgZAV6SYzBm3H0tOWmGWiX\\/0\\/KxY9vMx+597Uqm57C6zaAVMY4\\/2\\/uW5PM5jkIpABOQsZFwf4mtNVBmPYaVdGxB4YOAg0WvUf6zThtFCwuTmpD8AJ2EFz+M9a3M9VLwWmlwTt7BA9Cb5VSVFo0CjtdFIbqnfQRwmq67UKiWXl\\/Nj1Ph1r9oy2UmxMe8lV4ZpHMC1+JcAskGSlaodc49CsUhD33xJ3bRxUuNgyTdxqFazmAi+VihWgWvK4Th626328L7tYDfkjHXpUaBzjtLw6gJsiATXdmRikEapKmmFvdDhl6ED6t8r35mhu9VgnGN4qOTV9FUPE5VtkFykkgBDDSrzgnysjq3h\\/xoPtFx9u\\/FxlOxInRYByuj4SunIZrp+p4q0Jt\\/etCoLcayAldSIVO9yYWSffbbzeoRsDWdqkU3+P9wX+sfZNrWqMkOeQzCFeo8tU6pbgyGP7Pq4C4T0iXEaoPAnm\\/gbitVFDg1WVR8R6TQVY4Qm5tCsq7eJnJk6fA7eSnnXAiqYjAr\\/auvgk1oGvuqsIfKLmhBugR2qcQK2IF4f9c3xtmJqh5k\\/8zhNCKKnhWxNgA2SdycuoX8\\/LaggtavZICdZxuoCeR9WQVGoq37QbpJSVEg+Lgv1MxyGceiXVokh\\/OxLoGB848Mz0m3u8jNxda3ZLJjsLmcgLnEZVgJ7hSONk3uXIBb1EPe52auHaAXFhshBl8kkOGLcwMe0zaVk4O2bI4KPMkcFpztmlmq3tKtzt9wVH3NfugR\\/XhzsuLX2YyfdT5gq1SGRuNJ3ZgcvCVUdvzFwQavB4tCmXF2zo5IpUzNfL\\/GV+fn2L1XGHtClUpZowc1c2BGNyn+nDT\\/OhD59EbHYEvHqvx4sBHCbXb9E7RRooW5GXSeb5xcdkpgvtmkxS96oPozbfZYkDNKIE8PDVahOO1hPOjpFJmgHH0DvsXcTARQrYkbakXeWyx86\\/e\\/gl9JXCCUyFETgrh0YQBu18b1UaMW2Y7B+9dlMjEAiE+wainXNF9v+uJqoQtGVwMgKfhUjVw+KylMsMvzvXISA6pJKAq+EbJujBcArPhq6tOkTkVwKTSXuQvBcne4tf4YB5rWxnRd2Eci0nZ\\/iRQfKEG5e8KMrHRGb134z7j34Z+vVoPU1v40z5yIGIwgd0ZuR8yE\\/Tqr7oxrGlivYaVUWuU9tks48Evz+c0SYhK7yhgfRWV33qpyb3zqVbY4EBJ2qjTEfy9tk46F2WPXBMbMw\\/z76Io+aJd60A7sA8PTk9loPxZFG4VjYDjE+Q8HYqKG\\/zLLIJ\\/VSxdWpRdd96kV5vIoKW4c44fdDAAw7XR0VXKnJFJW5fbJhp8szzr89sdicngUCAWWRq1LyfdPcyRL6HI5bLLvlQvC1+C9w3zZ9DoEFmsGMTskdQy5reLWgn68vrdf3CKPw4rzyn7AsUVJbwpUNBCQ\\/Q2xNIrw0Mpvuyx5NJmi4LX564iQb6RDhZgnpbCnlJTx\\/+pzOOw1+BcPXtwXHcaASuTL861qjwPwjZMMTCxaAfzUMI32fCuSX3OnDxRiJYl8qogRIFT2TVi36liKUEETBpbw+e82HgjTGluGUMVDh7xtxQ1CJjMmygLRQaDWIVtemUEXay0nLrUN7Z17\\/t31FpE3NEoZpIyirVXX6fSGaPeeVzithrpzau+xl07lg2eCIWDmHVnGSTPfvBl4LnbigYRswsDyaEPevK4qEP5TOJBgPupk6M\\/ecvMPMRBTKvXSoi9MIPv8g2Xyf+GVrQ5enaDx9pAzfLsUCoSqHWBnPXWcevnADABZ7IUq6OyVNspyeNKkgKq0NYUPXmuuPb4eBt0+id5zZXje9xazRW5tlcsXE0PTtV5qbtKEHQ3E2EhQajoOn45IETYp8lASIWyHLhbEdslOgGN9F\\/jxlBGJAOCNUjoXkCiC7U90p3dlLHwFUnf3eZRonpVVJlNKvZgwAYp6KK8aWZm7eRFC8qHg0w8CCloEZocRyFlSXpoLUHQo060Xew+m\\/BXQR2i7pHK3DLOWwHSSWbSrDRN+RMg2IXPqR9XVqgcTFnHrKfa4VGoGyxwJGm\\/kT30smYdxCoF3Uge4jHkxXO+G0U5KE\\/aTEp6isg1TvX+4xUwEojWfu9zgpCPT67GdB+2StDZjPnNBQE6jTPgRY70nGu+8CHM\\/WL1TMNu68frlHkrF1Lk3L8R9fPB1dW1wrsjbTMXiQZzn1OrPES1v1CH6lUmGASla823MDRZi7dlnF0z7zQrNu+a8zFxUSexSow90Vn\\/HQq6jWjiDz\\/FcZT7e1eHxNW+NDDzcp25U9cmg0IAbAN0d0ZO5rVeu+vwLVFdTUfuSzYYv3YNbovxZPj+5D9SLpSMs7PmnpUyDF286\\/t4zEgox94RzmmmPA0eyjxjKGSCYX131oY1uCUdXxVAGjoQ4YaU2zzUq6Ba1YvKpapBW2zEIuK58X9gEXoRtOqcthjW1GFxULx5L+ck4sG\\/CK520B5fIiCznu4CasrD+txPYf6FdUZndyNnhTv1u4grqDIpFWuu+vKtqPJC+dZGhHKcMft2y13qoVds11KSCNt31uaigcYkwM2LcDFjfzReafNPerv8mb0hjBrE+JQuyrJ+WVMmwc8w5JKkY43sQVhVz3udRodYmSLdnHWoINImkmzcGntSRrXw4+P2K5zIKbdXMZ0zukuELDVa9vJOErzkfw5sOpOEvxL9wS5tfwExpGwDxViG67GAzTsRUk\\/2qleuEZJsKD\\/9svDfBCpXaP4JfcR5ZUKkKtFbVbtBZvUFGVVWc6k8UKIeiOf9AFe3+pX4UN0GbKPGBH2Lg0Ttub837+1jNqQjl5Y\\/8\\/72ZreucpWolieHSdSB+4VpJEg2Dl2pEzvNVGHpOwS6sWSFIl+zUXrO+hjvwC+o4Xo0vXuwjmIvrm5hdKI0+FCzCWjbnIrCL2lJQsHXY2GOQ+TU8M2GpQWvV6oyRgF0XQR0GHdMogI9aH++PzbjQQg1WY9Gk4MMecAfIKeIgf6kEf\\/PR63YHweK\\/WyxxIyQhZ1NTN1MQV7kbMhB8PHEe\\/U9SatQQcw48VNBdw\\/m2x6WWhYQTokBDa\\/p\\/h1tYsYfYsYTldSqPlJdWccyhrij+uVJBBRh33pxlKo7dKjNBqqjblMxoVFxOQqigjKta00QVEGbNlgboYWBwsudM3Yts2XmSQn\\/weVyTPwXTDcms9n\\/34KZYwQDzzBY5F0KHNWjscOGEWFzNeq6g0c8xeCG4pSB0wRnzdYMJS2lY9ZunW0KHoumFFUTn0nkCuma35H+7yq2qmKD5dP7FRja01HMfjQeim80LToQGWNImW0JguZVMM8uMiY59BEzqEgf+VrYbt7eSPiJWDShHI0SyoOQCyg0iPuJIc4hTWNdYeHA1djL0\\/JOWdH0JfQ6NOqoEIViRzsNar01vaPlS5Tai\\/z4+3OS4GBQd8bhbcC2Q69xyPSgLaXqiZ+4LLBvf257Y0C40LwXuhG+Ucgqoq2B3mcbrIz7MxSfJ+7StNwrBVRLqKjEQ5VlZkqpevCOAi4cCnHPQdFNr7Rhd7BnpvybMEsKB7bCB0kcAqeS32ewaEmdPsA4Ks3dA0bIQdCQt\\/dnWVBDaSp4pZ05aco\\/egGdbg2BIdu\\/wssAa5ijff72\\/7edazmFwb29UxIgPR7siDD7lmhQ1YWwHDwGya6WfY3O12t3u9W6WikSUh1acV0+k8vChyv6S1YacD1Z7pgP9VItFhFqeETKDDqSyyI48dRFXlMSqpjRvmsBFBaizmCnv7yraj7szD6JnrWXsl7CwMolc\\/dFxMeog9bRFFUdgPsDl45C\\/LjMq9m8c4A0VAnVXoZeXq0W9yLdu85md6nvzak+ty67cqSu7UQn8Bynw8lnq+vueISbo5OSMDSGzA9Jt1xaxJabvGJITVYHz+k8g\\/lgGBqZvGSqqFWV9+mnVZTgM4NDsae6DLCx\\/oT2lWyLpK6KyMlVhPtmLXjkyyG\\/Q1EcpllgA89mogVgsnLrNmGxNnJh8pmvSEOKySdqTLyyOuE3mSuxOPJNxgdp+MDD0napD149CLgnepKe+MzyuQmLDEqVfPt3Nx6\\/Xs7Q4YUnF2Wkui9LvedY1MKpliE34lBlhwkWRuB7B7a9LwpvwAUZereubhywIZazFbXdNaZFi7HLgSx3Uo4yiyFKUA7cVIpg6YEC6HC9rrUGtsC95ghbFBevzH7lXAxFx16kDK8Mq7+PtychI66ev+OWGmOOPmSg7oMRwsJ+GCJoRpFGSegpXgtvnvC4aMlF+eUzu7eQAZxlzsbLV9+FEoaAGHfxjELm5MycZQxhLxADWrxXCxfnqGFHHWrYBFNhntRNL92dm6hDqRvWLcOY0lEu+o+JZCpjydsbmuHvQ\\/7VNwLz6+B+1CrwlJXOBMjdL1EgQ8Ova0d0pP6jBwO+48t0c25OktbmMkf+\\/IzFC+y3Z7S0yD\\/CLvJF1ZX6vTwPb9C53MbMWO0rzfFee9AuWiEprgQ4fJlb1wsENl7jYYO4IK9tVG7v0ZRoupfn0+kLUWNT4QQu5Bq2oMhEZIRjB1vn57yrm+kWnr1ge\\/Z8\\/sQ9xHuk+fxvg\\/phy5WJv0wMuQrQ3k3uWI5Eo3uoiOzZNzefDKNpLtis1q0uYoo7ouf4RI76xHhed1sh8XTqDAHZwtzyKoEc28Z7YQ8yCKawO2tSiwM+uLwlgKhasiRCAXbK2nl9iym2ytbvsqcy8oJLgejyK\\/nmDM9jAAWEbYmVzUgxpzqD5d6gL7ShnR9i8ANeiq7ixZdwD5xUllpqvdgZd8PQH2vVOj1NsdSwvcpPhPe2k\\/V\\/\\/sY+fz5GtCWReNXbcnEB6bRfjUYB22X7R7R4i6YKZ1Nv+UyNWzGv+3oKkX8fWeZ8hECUQ5S5ZushR0c4axgAIcGDzoedaE\\/mdmTh9aTqtEuMS0KSx5mWXRzNtOEdKq0iuSjkH08EPw8mCwuIvjfI+X\\/7T1PVEcr7BR4a8KXaSbwxbEhH2nLcR8F8wFzce32QO3aaSY13Ux8w3\\/uiBjzfxTuvhWqZepu5q4W7sTk4r9ErUaCkJxfaBlxeCdDad9PxDzhTz8ooqMlP8khT9KzOwBtWzq9a02skUFwQv76Fr2bQpDWgHnapPqtqxGJctvEYDr53uc3Lyn0\\/XFmadNYchGdg8SivaSwgQWsrmGMMoo4CXAHazJKpIvGBYaf4ZUDEotHN6Gd7XjrREtLQCUXPqys5QkSYVdKgdt1Orffvm\\/UMcLnooHw2lqllOIgZV+bh8uYGXeP63K+bnZmOFvPvbHvmUzJPSitYv4Mam7nKZB7WOJfiu1ROgq81B+joKFe6YJeQ8IKmKA+qxbvngqQc6UG+yTn5MtFklcxr82h7xgyT3WpfCfC\\/riVTrMLnBPasvLBRLD0FgceUpafD410rJJgNSjxMaL53mn88CqO8N21XvafairQ\\/nUaz1ALt5HicpzTSIUnMmLXLXqMJEe4aoE43BAgMM+WXGVobnmbaD6\\/JdpNfwRiksDaV2x1VbmlNIR4Hi\\/fam77Tg12AeuR9MYeOG7ujWOLEpDFEnYAxVwlbne4Yt2ug1vnHgTort0Ebm4IgRvD9ndb1YpLcR0dGA9cbmblEf2WUKMrpWgxUg9Bp+GN3qpOIeExRrG1c1j9JAhWaWON8cvu3ROXDo\\/e0ofOKxtPH3sIlR1PxZPBHCPjYD8\\/OG09wVKAblFIH49zTIoesNR6dejoTTD8Xy1Tzi6OmopFi8PMXgl2NNmCcTmx6TELgebpJFO96l3m3Ab7qc0iyIVEdhpJ3DMLha7nI+9EDNKhEVjTe2q\\/saEKddA2Vl4XQJt3zv4uVVs47COm6ZzAp0m2f38PVtbGLWzDpdPvwUi50YOymdIrLToyyzv\\/S1xB5ohIZyNENqY57hIeFAhQd8XQQ+IPiMFuImq2ZP0fN2evYuLfnKgq1BwylNpgwV+jRbYvBrb+cJhW8SLcdamiImpIpjoBSY662yzoCXHwUWcKpARn6Ql2YyarQyJy45PW08hzBJfT0IOrv3\\/n7I4pLMugDvrtUFCn4yjuvHz5o74b3onigV2sNpoYiAjyJzz2ymbtXmdYQ4pIiArxzmC31LDpqBqLfGvg\\/Nh5mW9soFQ3g+qIzZVkHYaSCmylyn9ukWa87XlC3dasQLYczo7NGAv1sKC7v1ZA+KrJAUTzMF6nxHw7igKPntwDMNVc0gYt9uYDlIWotUDXZTBq5sv2ObrhBT2+u2WE6EuHku5snEb94ivDMoPkQ+jcMKNSHi4Vrj00DShe7IrCFKtSjrX3Y3yf6OInZrmFvM3Vh0UseQPZ2FBYYwfBjTZxKD6o9pRVeoJTykKBef9YxBSQDLWQNU13j50kx6xBqPo0H37Ubco6aJhP3gE+CDepKrxgMLlATIhTXclkE+Jt8ICrOtNvCTYfl3kdzhfJbyO8mZ6EITrgfv+PNbEILU8hHacxDSlOY1RITMJ6URZYVXOR1OhfN9OYSrnDDo+ZOWJvS6mykG2vtNji1i9f\\/e5oOmjcSFRX3RT7tlvEhiBd5Ixcw1Wy\\/0w5HpTOrimV9bYyxqXrzzdxnrtF73+b\\/9cxZ3YO3pNFZO6+Q1oNcmwrohEc2r0TFlVgypcNlYl9xLajTlFZHo8biCsFS8yrFeuP6UHrCqJ5FSR\\/3m5s+M2jB6g+4dF02F6oiSq9tWDgtZi2FtCc5UyVW9NUC0j1aIIwUY+ZG6Z2wuAoCGiHZ\\/b+mqThVwPffxAehrA3rIq43zNi7u3eSPWsU4fmWO3V8AYsSd8zM4L\\/BtUMpTH27gWp0laQ6t0bb1wTouAG13qzBiXIPBeSerW0sl3nocYkNN+tbR922ByWdauozysOTkfsfar34C6QIAa3\\/E+TEw3auA+Wg\\/N1Y+tyETjtSJWQUnDlhjc74x75zqJs2M+mYkcw4XeI6vRItg8Uhst6Z1OE3yeIFCAElc3pDQIk9+FMfDUva\\/uTcQbDQiybjYMErAdwMSx83plodd+rlfPnQMfOywD2XyEbXJcRavycdKTIcQW5+PVqUuo0lP6jsBdbxG6YDTZTn\\/UIMz4DQMyZ2lJgpKc+DE71FV3wvrLsyseGXp8IPhyvNm+5f5szMLVX4mMttMHG0kRz++eVS1A6S80VwrHZLCPv8A4XfGIOuwJzipdV0wDJTcG\\/+QiHlFZKfRTQ5zbOl5i1w\\/T8Nn+fd7Y9r8Vzr\\/d20Ja832T\\/VrHiUqC9eJI0YMziGSo8TBZh0MOEWCJfEbUR+iip4cBWs+wkUWYlrGpOdL5zENVmXlKZE1mebzLapO2WDgc2NBbqmRbFK1UtFlDkq2epS9WpeKi7lhPnfnSW8St\\/OA0o5mqDTVv6LVoHnHz\\/SR+rzs8skZUfL3ZH8ztfTr9iUKNYLy+LkFZbrRzoaQWLTxxV1V65XalcvOpuR5nGV7vSV9dmG0v++dzO5DbyrcATsE3HG+Cpiz3FjJT0VuKXoFJP3+1n0W3VXtvEqLsHdYqjtSvi4zQQ5QSU\\/9wwUCCL\\/FqADvZO9PBiEQZfpfEQA+HDP+WzA\\/2y0axJfbxQppGDkWz8m9V9utPbZF4GABICut2UKz2rxeHZ5+epKAN4nNr2utrqmuNJd2XcRalgG5FQ6R+hQ78pk8VI3c4dVZh3oAO16YZ8NTMikTtGDvsWC6Klbem6JCU6JL7OM8S26UT2o5md1gixklBMDxnk5xvFyDac\\/jG0sE1yhFaqYnCu3Qz7QQLGk8EYoT3q\\/pgaYGk3dUvJO0l2iGvQNaeciPaWRsxDNB4surmzUDxYoXcUDMEzMv7x4w4zrwUUHSGkJSxu2idZi0nMTGteYLXuJxqAd7Cak5dvUxVUKmcfwysm08ntvRa4GqwfmWArq9rmJtxSfDB9bhpX2zclPJL\\/+TglapNuHzLoBCc+2xBD9g7btspyEoCIvCqBfvDK64IHIFTOjogAA4WIyEBsRshUiFeWli5UUNxDSeoWXLsCcmF0gl\\/QXqCnA0ZMI\\/RK5CWaurdKe4bttU0I9px+CIhMq6tt\\/bdXrRohlppi6bycDgVlp18Ylk6xRkNYGfdkvQeNPaNz018QAd86AKWGxJjIzLBYd5YdAqeQqzTGpHztGD\\/F7J+VVnmMCPHuoR5zA4iXaqHJY4i2CjdrDcZ78Bbw1LklxEqLFhAfhUEg8rd3QnFM8ykQvhyRPoIo+grm8TGgG19XgIEtvrx87zquWpcmbVWMnFtDBvIHkVCf1pm4yYTzvPSoPIYagcG9ZY00FLbfTJ\\/r6hcMq9Wb21rUTYAVU4l5iWoF6RGFQcDlm32dUnmOxSXqElNezaMPr1DUx5acR8IbKqJLF2Xd\\/OtCLv\\/979nSRy9QSiq4ZVP6kebf0+z4IMRA3wMJHSPqfrU2x5IqUpjK71YPm+Q8mNc84oTXUBILT9Q6bcQrRhVuTPOyyaqUd0nnMQh02xkjlZgSwsPsrkiV9p5xTKayPIR9iJ3wFdveugXwMUGWA51TWXV1MWm+XeOh+Lk7HQYVY8cp98e8e2QFX\\/Oj1z13lJ\\/m1B9ceiJLWrFQ\\/H7t1oJf4bQdG2PihJaPHhT8eg8zIPiPdv8iAzetGtFT1KpJ\\/iL4kCWe5v5oFUFJIQ5mJPBpCrgPQA9g+duEo7OazfaRvqXfENQCTRb1Zk8RR\\/1PolPP\\/m7NEnv1sTQaD97N4BeTA5n0sWmm1NgTw9wiPVGfBMAcqJJnt0shtF0XlRNjtJMYd9+cxHFFj3mi\\/iIfb6MnIZc62\\/XbA2WXpuRVD1fbAS6E4SGgSaZq0R7ODpFXUgV4jfigAX7ZQPsy13Zo0rjukaPf3kmcs1zBgP+2C9C1LYxnReQUfaAmqwhkLqjBiOm30qmF4jQVGhmger433CXYtENq7gbNzGcM8A0diBGZ\\/tBC3bhVFKORMdFDXYhQYBZIGYMOCGAchTWzuDs0IbG82GZDvGvPYvvpmH0VxTj+yRAXzuOARUQL13elFBqpIMaquOAH+g\\/ihpF1FOgw\\/+KPhtp\\/YSjvdpwoWJEvH6oF8e\\/yYBBsqaptQBv1bn0hDGVnFkylRm3TQPWF+GXiQ4gDsBzEdcJbVie83o2VofCeoQlhTj71wjfJCm\\/Bc0++rIyTqFRXcJpoeTNs2fX6rBzPbjfuBeGWW8IQm2r15jqUmrUi60hEJfLGJJYmyV6lP9tFv0TNoUiXfd3+GHNb3Oye1s8mo6n4USfnEVIj20VljJ6\\/llQR6kq8WyoyWZh7Jr+TKPGHr760w1OU9pbKFP\\/yD+JISLRBuf1JrKffkxSzVsudxdLbaIWOMFX\\/beZ0pyVYQJlzls6zveJIOkmu5aRCZy5oJI64sGj3Gw4dwmvhaizL\\/O3cfU9D1EpNS+yj3QvnkyWqBzJBBZhZMSqOc+eNh8w92Dgy9FFwHNPL8L\\/KuzioIlG5huv4JrvuJWw68MbIGeC\\/pKYYP2svZZXQ+4YSHxKxYi1649TT2kIzUvZ3DZLHkhGcCr185ncAdPamm0BbAF7hm66CcUF1\\/z5GBM6cXxh2cTxOF\\/4TqrMeo7Ku0foy\\/9cSZjEhyR7DvJytWdrr8w8tzYj6BKtUgGH4MzTT\\/DHoWBITjAMm5Iua7pCS\\/cGX8hLcyjbyQb1HsUrPvJBIE7mAspvFjpiE2UnM7YsSjCtlfMAAGbgfzD6dWZjWy+0z+iHyWUJUpZQ1eGgkW7VVi0\\/yD9B\\/Nlxcox7UtzQufwz\\/x8X5B0UnEl\\/31hVxVbReTw3kS2leYRo2BG\\/CZGYs+gqvJRE647N56CchWA8WIjSPKfaOW2vYOYUJ+A82TWLD0iM11To7mEPj7QNSXZE0pTAbF8QhrilUbuwarArnjErHcCvZmHcatEqr6ItYO+M66PwbLKJ2sX4WSW7+5qVBR2Ar2FU7pJ6jVG\\/G5lVf47aE6WQtaFyca6jX9aLHWT39qala1HgUUhV+rMWa6G7l0rxe67bR6fEApC6RLfH5UJ68mwyHPizSDr6+18iNOZk+7ZCTV+ZXPPHL6B3HroAdDH6+9QlzIj5Q17+IbUN7HRN5BGDE15GXVsFRg6ieXnsx6AoVyOvciKGEaFPnuDha\\/3LzTIv89yFgIQ6mY6zC79TfCzmKcFBxy2REw6a3UWoUoAsTEQa9R+oXh1SloZ2zXChhIJT8gHTIWo0YGhqmYe5Q+SjcwbdDKli3RcsuDHu33sYmc45T0TlPlPNkpCc9VQoPidDAa1OwIl7yne6RMPHOpMv82SLVk5XzrOvxUzZG3Uj6hV4GF06WFDiwy0NKBMTYdVErPGL7zM\\/yD6YH8UjqPw4Lf2+1V5SePXj7aNW9CnDbTueJDaoxUcV0SBSvn0lhD16OuPV\\/4fSkvkOnswoq0mkLuV+A5euq7f2BaSMkynKAhy44TAbClpNMqCWMCvwzCgJ9WQDTBubo7\\/MUPTrML9KJp9pjvzJnN24ye1MOCzjj8ZxP1PM3xIuFr8oDin\\/qGMiKvd9nMtlQIeHWD7xz7uhNcMZSpOR8Msr7tzxgJvzmFVnoBF\\/8ews7XpPqOmcq\\/o1SrQQP29DBE0yj99n2IXbjdFjxNlPdpIXSh7hD9+ebkxOL6v48fzHwT7Tl6xEnIm9JuzzsQEVtkhoJBClG0fVxRglqY5CYh9Myv6Y9tjV0t1WfcUTGp8\\/OrLqFw156ilmqj1beX87avIces2QTGwDt12Gr8T0NQZre6qCznvNI7R85Ug6DoaS\\/ZYZ4iy0uDzDWGujBS9K37FJZhrijrDdi4GS5ZLk1t5O1pjTqPhavb19jUlhneKrBqxHyvqppaOUHDNvrkAmEv0kcmSz\\/X5HKdaHRzeibOQ3HD6oWnzZU\\/4B8Cxftk7vZ8hd2319v9hscwwAsdu9qLZQ34Qfl3i7VjkqD4tma\\/a6w38pzN3H+qpNmCU+gkFXOmcbOW+GQfBRUBWc9acao94Q2z3pWkawTacuEaD9024m028wa9kmrKLI03lPgB1QmjmjROJJ93K\\/rLV0S5VlYejlCtjrqH7Q\\/\\/OVaDfehQa9WWTQfBVk4Gf8H\\/C4AgT78n+dkrzuxYPlPoQ7XEgqEQltudWn57cPd7v50fJ2NMBYjl62dXYaARBOGKvKRmSbRhDPqKaqt\\/gKildUmtXQ8Sq06TVECeKVHIjYEFnLqlxFvFcx7fAWdWAVXisjicx0cqCgSJA9MH9LH9lx+wbMsPKREsjSfFNfCmnMdbR+Rd4AdvBJQmeaU6UkHhf8Et1QWA7cV9dB516aaUNE2+7Wh0bkP6jdYrajJdJyh+n1ugJShIT8s5GMuytBgCgH\\/9EkYC5XbRwL5bDpgss5rQuP8JBg9RApDambg2tPRt0fTzgLvj4\\/KuMuVLGOIhZiPPJfoc6gpWWw2fPMF7Le39OmwDZTELkuLVrp3EcOCp7oAsVi4v4S1LEXED1YR5fHPzro25vHffwaixX1ws9du7i+mfz6v4iMpPSvr4NOzDED+S\\/P5D7PyIewZxBh98SM9MF50o90DPS8Cpn70t\\/vOJj1uK7qqIjtMfluUff2m1+4H+2HmxeyD5Tn3e6ZVppzBLp0i9USpc2J0aYRIh0eIEmGMZG8Z0EkXadcbnZettp8Dz3IDjQx21gcHPaQJHML5c+vFnCwn91ZHWBB8V01VUg4\\/dOBw\\/xIaVE4u3dh1XpO2iY8+\\/\\/CHnI5894ot35sPU3LvO3orwTVWfxCEPDC1S6abtzr27dSxnw\\/5+Q9NVjVSBM2V9N+wIe0nc14hrAVve2HAFmwdk8n+07vpIU7rj50s39gBxkRzgWGtkfNNnp408jIrSpTRGCukC0ogGAYIY2p\\/MAtAL\\/5uCq8M2oRJaWlistl72\\/VE1xDLyV724VzvJqGWwCfMtEGRutMxFgqeIY7RtBH1l2P4gI58Vhygw4JWTFGXzMiuRds7ZXD\\/nCLkrI7tAkS+ZX\\/rdXCJ+teDEeDr4dLynQklxCpJkldGr2YtdMBNFnlWRkKgK5Xbtn56+tc2MNHaAth3oZCNbLNNJHjCEu2kAuv\\/Xp3zpaYX1pRF1NSoFL6+8HiJw7D6tCHBXzlsVaLWHVETROHPb0spQIL4IAbuXL\\/pSMwPFdI+X9iiMdOGc8Dh+OsVCvtJwYZ\\/Hio2HKPglfqIgNG3z3\\/rVl4Udjo6QWiZWU9W49\\/D\\/8gdpPA5qIwrL50xTbLO3ykVj+1zUG2BKqnyNKQsD1E5yVWoSH1PQaFNLwR0jCKIedQ1oRsBry4HzTM8ofRy\\/nUUVbAkFGFhpqS6VGUSVw+gvfutuhi4fjmoZ5B7avpztxAdkKUsRe\\/svSxK0RHiQwHICRaXYM8DyhuP1rabHI+bZ\\/4lgvgzrLl7I\\/+4EBDodtFAuw6Vmk50rJpIneE1H5hNWx740BGSmGo9RznadDML5TA4PLcR8VCjul1nrpYoRQMHtJeTYpmoJGi24YwqtUK2NCoOsN1uNe4sqpJ16dX5owNSJBhCrP6Y0LXpIpksbQXL6P5MKbSA+CV\\/0Y9rzH1Is+\\/D1KCvYTilnDD5+MltyctM0MPkCRrlV3ZvlG59n8Jnh6r80jlXt66aD0cNH1jvKaQigDc2taaj2FctpxHEVBfdJPmjaEiwy5WzM6H+Sve96ezRv2MEmzHRLvTSgH2tahabKNchRBk6rKPnvfnEMBR35qGjXinGnz9HLnZ7YP3jPJV5Wrse77hsYtFPY1spEvuGcg7V+Kfbx690oLH6mfWgNNSqe8Iy9zopP\\/RPV9UVO4GRkxjzNHvdAdNFjP8chnRbcndd0P7Zt+zEU4mgOm\\/WCEii1zZYNhBicAhJf1yTthuCUE0uMqJt6if4PMGA2pEaMFNFeMcGuA+wz4d2asahUKgGxXSjr41bLf+YUp+aGDy3hvy7ueYUCEt0tHG+etb4jvqFPzqYeT4nx4MtPQlb0vEewA9243alGEvtS\\/xBmRBpfT0Ad1HgKYw3Cp3c+0NpEA0hi0psq82\\/0DrgAXYWGMAxSNv1RqbLGBz4QJP5U\\/JqHOHG5wphpI8D92jlG+BUxN2amPSL07evmPtR2bVNtEnirf74CDSzXxQ18XZWq8llL42NyN3wyTvCgXBeLsF4zazQfbnbc6xMbmy3CGotzu4AXncxwHHU2gRoVDdt67TNrXSI91wubk7C\\/YsFcEI\\/CPDEQHPZEez2na5BphR8ESx60lVCiCpDkuld2ClS5VGdJNSuhHOe2jbX0GE7DXV+jkDwS1eeixgRUtjZPfVkxzWlpHUWvc9u3B9pIfBlY5Cx\\/VnGQfvHjBW8uBUdk0m2CXNvAsRslF09EnRDf0RrF\\/EB7lFv543LBn2iYq5CzkwnFohT6CeEm9ktd1AoQ1KflaR7PLLTp0Bza1NJJyyc0UAB\\/4Nzyknqc6kRPaIObtWLOOQfa5gJNwZsrjCw0IVdUmk1tULqywYIbcRIWoS3EgISGEqbEQLUaiPfSOXYeGaP+I6KjiSksGE67YrkNEsDgofDKGq8\\/nE7ZRkWeeCRCBiWFOXKcCKFwPDKbJ7JHcdw8gGppl5LF5vm8h\\/aojomiIncWH8OxY5TgaM6OxBGcolx05RL7tNLffoBf01rBiU\\/NEKbHIMR9AugIfsjrUl2vXjP4uPLeCNrv73Jei+78pKy0kakojeG1x2sOcgxibckQiXo9IQeWt+b0mGpTBGzVxRQqW1Dzkt2Ub2IL1MH2KUq1YAwy8SR55omOiat0ziLPe8yI5ACgTTAg6dWwtYRo4BYeKYozvq6VBBJ0MY7X6rlC8S47C02X+\\/SEQLrqD12v1TCB7dIvGuLEHeYXR6EZR+vyXSao\\/An3rMuy9syqXbPwgOQapzK8fIsI7pUPCK+6USIJV3j9xXdct8EeUl9HGZfMxRS6FSNBpHkn+tAWJ+SagcG+qohkxdCWs5IqAy+y4VyyGrvSTuq0HiNTpxa9DTWZm1g2Nk7iPhOqhdNSF\\/YPf4nl5IWFH2aUhEHdpL9iJRtuMKo8vlG5Buaxxa2llUGfuuK+wJfQGIg2dL9NvpJQwrCrzaXCkanzerGBH92K6QjoeRibbNRNrlXSzkricyVUJM1VtE0OeGF\\/ln2W3r1EXbuHnlwScTQV9jpu36KYYw6hEOsid6GGkXUYEtNXJUYPTyMYbQUsfETPVqCdl6oSAx0RJI6dVKdNfRhlSwDG8FL+rUynwxoRaKLZuxzKokujNkA1pcYZXlo3DdebokNLtvsarbc8NdP1eKahtVOnGKbr1V2ZMHTW8TCdupHXPxAXPtcXO1SOFoqXji3G2Tb1ts+7UfTcQYBosQxcigo\\/s01FpgTwtQoLEfWt4TlOtMCwBl9nElrrkIKdEpy9Lk0Dlb1HGTV7SnHKl\\/LVhakC3VgeM4DKvn95+JFnnMvwORjNB\\/x8RDKgA0Te4tfaov9DY94xfdf1n+fj7VRezRfDZ9bBfJQSGKigoSStMThs6wsIlyD+6KxKIzGPeDAtCuUJi8xpXQ0c6DKV8M\\/6ANQt8m2RYYA\\/stx42PSD8MxEuuPYlRA6Fcr9\\/gMSEaJ5O67xW1eOfcwLJfRlmD\\/GAu+W7kQBUihfemP+4\\/yE8Xu1jakQmgaa5ez2VTnLhL77sYvifAZlxwoS2thyacvwEoahjtchuULR1M6Wii0U6ghFP\\/eRjRn\\/GXw1eSRz0yTjz5fY9oF2XsWpiLr4GhwUhPUlUgC7MN9O1I2Xvexu+jMSphNQaSiABznCn+9CKzFde3sJhmbFYtit5PTEHywj4E5u7GqhHYrlFJeXjmSCwX9L5htssQluEYyCtzRFKpOua7w9CAhKA\\/QwGd8vIlHSCn64Y93Zir2ZuqrnbthViDgJt+ezNrcF+3GdCwkJ5Z2Q1O4P\\/zlvcoEhZhuP6GilB4EfPCnC65N12KOvLi\\/r0ravyAoWFBGfoawJ9bM0kGGfWJDDv\\/KfFChUEkmDX6jOGZA8B1EJ4V4Z3i5RNkK9f7Z7rWoQkUJ2QczyCIHcOETGZJ+Rst4ztuDSdHOLBtO77aHYV2jMJmhsjFQ37JH3tgHzcHayK62JZSWEL8BzEw9+4LPARm3NzjKtpPAbJf3R9wJ2PBvPmcLljA0pGi5IfgIwfKquoDiYlw7AAIKDNt8MFflc7l0Q9fMWZZAzuqPcif2FcpId3\\/xv2exz+RBSTyhHCS1ROpoiUUoBY8LVjx3XL8hmH5Z7\\/l2u3TPnPx74fpwCFswapEiAiafvXFt0XegBwHvTNK96Tkll7Mgx5nPoS1MwuKwQj3Tr4CifDoEQeN4Kdkjsxn6pHrCmWx\\/DHj0HaxcbQe57pfljEdGqNelWIS6aQHb0aAFdXRZuqM64SVAIfgkwT5x2w2avLRnnfvai5eiBzgCnHP\\/2SepoHYYCAOJQzi+4xzSyDzkyCp3rYcdd8l4L8QhclRLpzglcYb+ZS10qUpnhhmpKFLErucyB\\/AxnawV38svjm8Igk7gyTzlqYsOBcFtr7GHcWFfj4XHEabW8T+xxFU1HbDpZ7Fcnv3quAB+0Zdr3U\\/akVJLekeen8\\/0XCV7rgmSO8+WxPAK1qjwlQcLgeOgrkoGJWgwETIEZzyKIt0WASz35yPyg6A4bDV0qtBm32VycAmqs\\/WKjBx27Gxh0li7bX7awlJ1laTy87B1fmtv2vhX0ceNfJHggjd06bJLQbJnVc9YfkHXOLM\\/JS9+3qSeLVOXSSxjXvhUPqJH4Y2itn1riSR1SU1ef7Xy6dOqe15DipSX6zc15BujVQMuPL5u1hMfxg\\/ZwLhG8jCt4PQin8vbH8CyQjoo4T9UZOZmGt458n2\\/s7xtejAAEpGnrl2gr8EPusyvqPK6NfnAllteZQFPls3XfFciVGs3HDRKmGciQx3z85WhrvNDEP0nAtlGohHSpNEeKTZ0fTltggeqNiF6cmsAVBXZq07va0FIKzgm6QV1LGXY68C\\/pCrOFolEbmmL7d2w2lkL+Rs2I0aJzuA7FAJL0un83TQhloAgYhow1qzASH9KxWLLhjNR00P+NDL+M+JMFgHyXt760gEwTu+IaDMbmhpEUHHm9dpBK\\/mlBFDrgj58HyZHRy2boZekC+TzzT3quF+FHCikUXDluZQIkGFcta3EBOIUtitM0Ah5F4vIWya4GfHwjhV6aAgOgUc9ewxF\\/24TnfnzFeLYAwNFq7ZyOpeqQYAJXayTtuHaMDF9QhgGI\\/TuOdj53G4HRFIcHQ9PufsaQ5LYcienlbb9MBTlmFjcOTN5nkJg\\/IugqFFJUJSeOkrjZM1PNCxaXsUo8Jqfy63WVOzf2ji\\/ECBhKBbSH4arudHHLwxK\\/zNdc8uig5I9QYdURB\\/9VJ87LyTlpfjujmdqnof9wHFw2dMkpv5aW9GWWyXgLxhft5J+z2mJINmD1RY88M4\\/zeTj61pVMZFYTAJxTSzSyXOV9+iZ72P3CH704S+LfBkM7RXuZoZmepq+ESHE4TP2RxYrLknDH5KXJ3+KQ7rfNgBcgar4UNSSGuUj5hMNymJ5cLv8qGaIJHSupDT1eqiMFo\\/BUsNz1GcQkFSH3A2hf8n+p4RG7ZohXnyYj2\\/VpaOIZsw7ZsmLAFarpPduXouiVN29S5OOZZtrjP2PzJUphldC12ZPRpROSZZiox6xsi2onwtuy\\/3knBVmF\\/Yyw+ypoWCYMv\\/CA6v8Q0ji7z6hptyeum8po45uko3Sg\\/twheto4\\/+bdBO7QvIqy3T7cZw1OD2Ft25Wlj1yrcfrFvuUrA5fkax1\\/rtih7PgdlWt5JT5GoJ0KBmg239XZarQ1n\\/wq+9gggBPi\\/Cqw9pZ+E82V1o98eIeap7VcLaWdy22fz88okgTDIFinAK2PSQcZ224hFaKAMZkqkMoPX412mlZGW2dSoUSYVyDSnWxymcUMWipwKfS8TP2lu+A1i\\/C\\/K+9Na1xxF\\/qi4mKY2so4ozB0+V9MtLF0OAJzP+02wrLq2h1itKevhWiaJxCSe6VexBVFCPkq2Y\\/5gHhn0V5p7YaabRP5JQ9Xf6zbjRQYzW+krWMNlK\\/IDSSS4UD\\/PxlOC766nwy4BsTS+I6TCdZkbW\\/hhLiGlxkfmPNMvX7sN+iU3VmAhU6\\/1nzAQAQEhBkuttZsVeyowt3fEfxNQBWq8QrdKOWaTj4uTsbXDj\\/lEIgusR+rCawR4c25hbCWGfQQv1XukbDvImrgQ1Dm1HHJkcuKv+4Mg04m7eIR+ITh5LMpSJgNhmeTwThTGMzanyQD9kaHAQTO78Kmm947gkIHhmUFopGwSHhBHihovZYr0PzFzntm2JuJbk6YVIT90aMzOumnCGOS0BdeWLh8dsiuV35lOP8q5AmhhDTAffTWOQGnotcs3pklKoQNuKbzDFMPwfSBkKAdfEcnkOOSS5ruMxZIs4sfDGx0nc0kh9SM\\/dS7REBIK4DOhH5HcbRDCyU8ZFszzqG5vIml7+fFAnfLbVk7woJz2IFUzFgpXNKX1Sw5r6PKZiCxtWIl5Et0SPV45zd82GMGYKLtHcuae12RKbyZ0CgecPskfq\\/hBP7JCbCGBA648TQRhf3BNf2N0m5lbJot9BmQDY84uB1OJnGIXD31h1bstdCqRJqQy\\/gPnK2kCm693BrFfsXWWSUY9jbTcs6glt5vY3VP2NcGZeB5vzpAQ\\/0BDa6aWqq1CvTnfOJPEnxl0vJ67RUnSMuTf3MFGYx4m3oRs9c5MkeGAY\\/qSZmz5bs8mnOrPLcN9qQgE4ibn5MGlClASPcNIeK5ym\\/j789W\\/ft0HYq6VvtCwHzOyLD\\/AjDhQmuezmkuoG6Kwv267G5a62oRh5FTrR0tdG5NCdhhyYJzOqNeAH3sgjMKFtjfvy\\/sQ\\/v5ZQGzbqyfBq\\/WhfekddFIoaeRnhCu3L6MV9DUEYlM6wshYllynfcFShn29Xn4VsfgpTAf+iaSEg9POZwjCswFq2sM4DIeE80EMZ+G9Of8FnQKkwLI4ttemLMKX3zXRyQWh\\/jFay2yxhH2LJ3LN7JwUH3XFU\\/r3+QLPflv7zV0KiyeMSG+dduEdIWTkkAfuU\\/5qPmUdBtZ1WxMDdCQCho6r1VeqxhuQ1aG8HiacPaThLUktwJVIWkRRbfq6Ii6Lo8jKduGp9BTnCJRnQnYlar\\/n4ScfBE0AhzT5H56v+QYteC1gwGT4ryIGOCH6XNw2igNnwH6zdMa+bL4UuqAfKngQR0OP4BeFgLdaqt0cng7dUZOS4VWy9L7AeI2FHxye7tiuI8yQ95SFjK4k6ubbMMtI0KntbLor5oq+CoxAoQoBFGwCmlgfMvgUtNZ3D49QkIt5KFURJxyspqqRvrvqYNC426CtuoHP\\/2lwU78+S23fGuVXufyzEIaKRGAYaCmb7kJZ54NhwtLAzSnDu7MF7EI9OaiAYxkx9lv6oaPLjDsTNOmfWpSz611JTAbHuep8PES5vxn0zjtjoFv+TbON8C4weXn7ywwGI3MrbxbtlFGVZNoyGD6t12hvr+A6HOYk1OIRdx4D8Vkomyngvs2dnlnJT61MFo\\/fSNGf0chh6oLnHOdtyppVEKgsaFfvu37QJPlCm5zDlJShzTD9RKXAtbSa7VMcImpL1eo\\/IWpUaNoHYszDxTMxqxmOQUZy5Zvbjp6dO5BFRH3h78xgRkudzK50gf\\/1dMc2SiV4iQeZj\\/IVCpkN9RhBQbBXwqOut4CxuhgeYhxD1wnrFsoW6thbox9Swxijikin6aFXGyKCnJAom+LCvjPWu+UabyiQqXRFZ74dp0CQYQn75seRFPKTnd07D1KB5EQG12rhCAMpv9i65dx1cxIRgEipZ86REa17TnmiEpWSLbOYA7FAXH0Ze2W9wQrr5wBj96SgpdCWBYJ3mi\\/F+6QiEFzufnPNSmYxa0dxHIJ0291A2nsXOiMlhEywQrqEdQUzrxQn2KMwadzGau++pgUfViWXiMv1kCoqLD\\/8k0VdbepWwiwUQgE\\/gRSmov6p5Btqqi2pDKlRg4Jhu+F10KET+iw7Ff8fVFCP6HuVSuoGzoIfDtt\\/inzE9ED5p0sAUag3AmNkFaC2FYBxRTTgedV74JQ3l1ZHVsLpf3iWLPjxnzu6HAzg05tCktJZhANf06TGwSqusZv+jI8m69b0CjH+g3OhfS9KGZwnhA7HkQWCKRd4fbMgp0\\/OBNg7ZawF0Bl0a2+a2SpA8O+avlCbbs6g6k8h4VDFkqR1yVZbcRxrMvl511NlJyf9uFYVX\\/tGD7wGLrzT5VDRJuYTGy6qckNx0k8pDXW5Y5U9SQfcs0BHEFZfA5n1qBaOWDH6eoxa\\/CjMcVzPMYRkHYypfSmOCC6I6xNyFMuSxzd9Pct\\/+VGvo2c+1pJPQlga+kCmuHczGDHryBvK\\/GVMDWlzMmQFDkUfsZteXGf4eBbZLDL4m0FoVLm0y37ZtlRRN+zRvycjHmGt+F4oIDW13ZQRgP58sHO2+omjGT1xNQeB15O5Zpn4uo+lTRibhn1co8MdcqdFxm0w7xbhhrVLGEwL1TPT5FcoBKzrG5hxTKl8kOS4hEpPUon28pTYxuYLRgpkT88qopHUjxTjbSQS8sTPX+gfoDcsEmRoD9xwDzFdqIOpPzVJuul2Yl18LX+D2VADY25y1Tdedhe\\/kh+IUP76uvzAR0B9QR\\/\\/bIj3vG9zvqls7yFXLndQkqqfZFMCYPgv1FU08SmUs85ULsKk731FL6yvqKAaW\\/lSbmqojMg7angLuxTgRemfmqxstTJGZAjAJRdjOyuGKaTmtscNE4V8Ombiq5RpFY4VzOxZovZ08iJg9geQ9drnFCexL\\/C\\/450Ftrws1d+rLPW5fkpEevoGa\\/BhTryYB5nCuMu4Fqm7dP\\/7n8J0COlosLCK+AUPY+Q7JxmvO2gU4YWRD0FG67umHCNE9DByLVM1JXDEQnv+9E5YiSkVksP7wIhO9SK7LXV85QCOGV\\/QBIIv8M0IcJ2duseWQwTmGfrGBHSZBVFehSqkfH0MZboRn5V7xpQ4sOrl93nfuioo2vZNOK1kS96Nfb6\\/5sW53tvdHsR3FZcaEFvkh\\/vhf8NpwzDkJqNjBT8gtqeuZdzB0vACoKh7VxyxTDKZweKSLzYVFJ7b40uBsqyR0U4+W912oKrtWzAZPAU9Cd+pnxtlehtY8L8VigxyYqIvfn7phAvW4HWbDgijniFOjY8grHcbn5OERoKNprnSp+DFbT7HxlQixcjZ3onG1Kld0QJZydqbkW7BMo054eSwr7iYPCduBsKDaKGnXDzsd8xA5wF0DVE0JCdXxyieicDWRRAqUJi5ZhTDCZzrUQkLgw6WAj\\/yUx5CkHFRbMSxnEEXDTA6FVCmMj6abYqwTE0gYpjXrAlFfxJLHURCCss5xO3Q0n5\\/oG9sjTs46V+xTBcQro45JK+YnEFI64l3O+Q5+h+VHFa2C8xvyfTBqVmeCR+DAE1TMLTbPdbQGPiviaA35u++2hEui\\/EJnsWITZj2V8PEIf8xssbEl5kkaA52IP41erJc+04d2PYeYO+UHra0rsoxmZf7XwjLuhT6mznMzAy+9s3vHqicWzPqd0RAokOL12JFMsRPpcmM7eWL8qXI1id+lnSyDn5lGN2Yn6fqangPC\\/58gB4Hh3eW35XI2keNkPvgdm0kIvz9sPDb7Y04hsZyk3shsJZ2+Ormh\\/QTL9bPnaxqwWeNU9tUmZqw61+JXINkhk9jeBc30mz28tS42HB2C\\/7iSVpWnx2qF1LF6NIq\\/tL4VUhM8Nimaxb7GVyxD3QTtg3FObgarbNmum0Fr68R+gS+Xht5KjqGFA+zDji+CtxQoHAM6eVAI+OFEokrION\\/TZnvWN2K7vtu4435RPceoykuOW\\/LZ0zczI01T0hQNfwH5xsEKptV0Dy8VP1OXUzsEfoakTVZfnGLsROt\\/a5A7PngDCBy6SZzMa2aocU\\/He3bFlp6o8xt\\/x1WZMeNGfN6xKhDFDjXN1RxhFAV7esRcIvaNfBCTHm6eZR4YnV8sunI9X0uo1xR6AW6PIS3mRmzdPD+7BeeERE\\/gS6Tq4fsr1KTsrABxc\\/OaTmZZv0SR4SgteTMNZ8tI+iC4xrSuJ2iRa6pnqUzDC6fFcGZTH6bbAvhUP3V8bPw0+55bJ3gpQ1glCi6ncSGdrYIBg+YUICEHcuLR78dNx0kK2yQvWT34PDtIhEPi4eJTcCHMHnL3nauZSwt6rLcCVx+Yrr0imcIXLQ60YnU4GQlufXjmIyFZDekgoWIiOLTRMoOFeSD5Xg6jfChSlSf8yUpbNlNxPnxLfhJOvG4BMTFdVB5M8NxjOGzFvAM\\/DWnbN2vaU3+iGj\\/fjwVc+EFKMS3ZTiHtUZ7a0s3SzUbXU0AOWl1nw7xXy0ziGSQcaJ2urSJVx6a+W4mmaE2RkoObOVtWvNHSvtSsAvrMwQVFY9fJg3ysY9ReG30LQA2rHEXHRLqZx2VHN2HCY+qbaHgdTRjFMit1tdiAOMhLjVcjg818uwR8KJq8VtSdY0fYG9\\/CRgEmzhOJMFRdm+LDg\\/nJoud55yYMyNXCsV259hF26Sbhpa6s9DNsfPsMjHndEQWLloOdW\\/YyMcZYUUsOB+FFQ4CPw1koVKBAc\\/XXBkX3cIKdB2oucD9Eoh4sdkdebZ3x\\/H\\/iZSzK9DSXyu99gVt0XqhBQfClq7XwBgoth6vs8dRzXsGzNDF6bqym0pRTacv80aE7rg\\/WGtvor6LAmDWSdkZPqjRRiWY7qgKbhLtg402e2t48lnpNZaO8QpEJm3aLH8oRE\\/mHr2bBXsHgP4gIYnCH7LqPp5RPN0ZlhmQPfRMjRxp3o59fi8gxm9LM9Vaf+24KMi2H6Wh9E2sp6uyIGcbaHOl9KyjjmCfmDNdY+XNQDgUzPLs9w61hC8HauHlgGb6YgJo\\/ifv+jL0LlzZaw1aNpHVn8BC+j5PC\\/lv7y3tsJ4Yo8P8OYeL3IAq0M2dYItX15XjUfZCT78sLSDp4LXL\\/VBfOcrj+BQHzW\\/LLDKmLvnCcyd+ihywFrfk1LgOJ1mWu+XMDXpLa\\/mFi\\/xN2cgMBFZMgC8GZkAtNtk4iYakY0\\/3mcxIkpVFzc0sodZew4pxWwN1tF+Abyc3j+V4xtA6oFAcN9vARXLWJW5\\/h4hjH8yFty+WRCX7NFrj6THgRipoUQG9zMtBmzzgaHTawTqGYpO8UCN5Y1b0WZZfWh4bG5BGpjAbC0RzJO0aym8coJkenH1p1+gehiW9uDbTESGaCdZA5aGH\\/S4p+XCUMqQrWV+TxZDJqEvj1\\/np5BXhqJwAUuE1PGzB3faauJCLONugTE2ycfxkzqxMJjpSXAHbVLZ6r8pfufVr32\\/NtNlcmqg1AZZ84uPAWut8kxnpNCZjc3cJHrY+Ikc6S+qdQwYaCKjr8ZM4V+8OHvz8NEwL94YZjjEutqEDEJ5zRUYX43DWjAazEXQLPeGdz3s83OKeghztt9RCBwvzWlCAiwEvoVWTsckIHgIri+jQrBDP9YE9ZI0UhICPiGLC7y82io9cIouoAluRLj3wztVjRLuhv43pjeGUavaXEeyQG10CJ5CWhQoaVKsYSLKY4LhePrYEX1wYpIpG7lsQn3EF3j7cLha2HEWKVOtrgORF4Ddb81nCAndQOULC3SNNcrRbfO0gUyz8icIc+lEyjcIgBH0OZwwsQnAe+WE2qLOwiTaSZS4JZL+tqK7FZ58yj2ibklGetyUfk1l0bMXPQ5dDQfC2dY9hbgAKL6c74w+yjSyR2wSSC73aqiJ5m48R8Jz2G3+nkkslA5D8poPwP8K0cXVuxOiYIqkzWahj8Bf45axBzUSiNElBc1bbGXecZoOEdiT+m4xJb5pR9oPlYheGzkdZnjRMgAWOu8MBGfHXYZUzLkgfR20T3FsG5\\/l3XZBI8ZE5uH6nieAeN5AJIO5YdGeHI1mjgNuBREiit5Z5IPbbLGoUw1dx0DDf6Y7qmnPitmMU1KYhJeKZLMRVPZgu6\\/FlnBfM7IAcp4f0fIXiCVfZuLDR3ryYLhNunj+jQ5xyMsblZka8l6hvjZkRXtoR\\/Wae9eWsPsig8JA0JMIdbr1WLSXpglI4JjACDf\\/XRsTuu4+LeUpvJW2aLWi\\/2tCoG0B08wF9\\/Hn1aOxkiLRZ7mUOlBcYlzSxqugeNIZmr\\/qtQ2si2x3QPkVsavZnrryo6hS1OlK5ElfY1DXjdVfYDEx7uJwW4qE23uh5oiLlSzw0Ro6x2+pmyTbPcZhhx0jfXpAIw2AACCuE8uhWfORwpKekKHjijqnrcyL6PcylOc0xnQvtMWrq+bFpN9hi8FqZ59mKIX3gNrkKKKFYJlU4LRJyAwHwvotO+y5UFomy+XDFO+uSuPC0BIuhnABe6AlwII+uEQsuHDTFWo\\/EIJ5KnBWbfEWt7SD8z9tOz4ZHy3UlE84ImByf1DMgWomYTchS+SkCrTi95dbo+K4iaashotrEkDTKmFuGwOrosxo5NkICH6jYAhGcSBnbKT3aN1G7csDxHarQsPfREp\\/CRq441IJyUAp\\/vKJJ6xApP2oa9nqS+lVSoyI5HZTgjaORCYmWPQxF5wkuISmjREBrZx1sfgNxNQ71Lahag\\/jCbW7wq9\\/ZzCqo+tBWsVUrNxSqHSfQbjBkHoYdKukfMAcuBgP\\/n1BJnMIE2TBV8Kgpue7XR6S5CqV3R4vDjuAPW6w0AqxDgPNzV3QWdycJc3Rg8oJbTfwSZpMraiQ0ZRwYh\\/lUr2mqZuJEK8iPEfLuibOYHl8AFhm6sxzyAWHgIIznHVDjgPaJEnDsaq4ddXsJoMUNzYQZXCfEznIfM54Fe50rYrz\\/1Apv3KbN\\/reMThta4FDdILdUp7IFcUPbdDZU1zZaxRoASBeXwtT1gaGBjj8\\/VpQ0RRRMz1S7o\\/dVjOe\\/RiZdTz4Qst4jxaP+rcd7rFBBQxFKBXJENaCo\\/7hWnweLZVewhjkiEiHK6AGu8M1q9zXd4p5DpdAKswm9iSFD4Gedvh8Iu\\/9SPmx0b+Y3imj7j5H5Uq4xpm2S2FUd26V7PLyD2MKth+irCoUFE5qSMyQA9SUiUMuWSgcjTrrXrBqSpff1yyYz6nXNDUvamf6w7bR1\\/R3btl07Nf9AcKDmUrBm2HwsAh5jtVfA5\\/CsC0ZIq7tYGyWzLu8qJEnqE7sBDjypgpWPH1Kj0+6jhMWn2Q9GrB+BSMkO2BkViOp4qU5f\\/4UPKpwdZWJzXlz0CDuZ5N4cL01JZGBHUVRDM+LzwtrCAZ6qkUgGtNrWSzN+tBUduYCrwz\\/k0VlIaeU5HcB6R6KxJ7S8tOLr0V1RTRqYmfAa4RYUXYrxwIBTdqBgeCnLntN7Gtrmfico7HocUxNAMmWgKObIu5H\\/DmIYtdyTd3eAFLTIOHL\\/sKa7zYU8T2ku1cByBT4+K0TKStjBtcEeSo2lw4dpMCknIaGFNResv7Aac1Be33H3VA13rEbpbv9PVWbXDO6d5ETz\\/+mDZfC8OA+8dfiE\\/VSoS8wXz+nCnrv8pw6itPz2Rxf7p8UOIxq4BYh\\/rwSp8HNPKzR007oWbthgv6X8yofOVpH8KHQy89n7AfTSvus9T\\/QQKAZ9iyGbCVp4wqwZOD02w\\/5Is5WSmA1FO5CDsrhxv5M6QC2phg4rCugwho6h3uvoL4sveNnnsHJ9vU9eTbtRfmhLh4v5jkecntRIIG65A9CXjoCGzVMueEalLdkEgDJ7DTLpwEfI8yMGfJwOJI\\/+gaZfBRs9Dabg\\/CmF7Rbbm\\/Zju28\\/1dhdEut7mxBVxpD4CsqGNc3SC9URQdc8YMa1H7vWft5RCBldEtM\\/l9Y2xVjQpCtwkak81HXu0Vdhvwdu02AtbAT53+HNvPsl9E\\/dkK7ExcuLMatpLNrq0FZtjhy9KFT9rbKPIEQVpklXh0Q3BhSwOX8M+3rfMTGdq2I8Lut48uKWFuFOD6wVuQVxDMRPCYQvHOsQaLcH\\/UX3PY2gaCkGLgs\\/eAtGLJC72wyui2Kw2yjYWNhYUA9MPcc0lWIe2Q\\/gvFvphpgZkJPtoNs4NkXEWB\\/APDy3ptWCPKy9sEtrvjcHRhvTQIy2ZASvh+FpwPcfig50NzupXUxXmA7sM+B0U\\/AH+kE3T42wMY8VNtJ95mkXI7ieNzt9A5QRNrGQpgUY+v1dIzME+GYXC5rr1zCG20o813CtDQyT+a+MlOlt5jAyzF34vQO8oBg4KiD2L1SIpOsJ7Cv9dIEgcJlP4GzIX3nQvD1Z2HS\\/i2e9UrCk3gXWiMamNux4udg3rNr0g9EJCIC0mlN62OO0bzK7X6rjSwDopO3YwP\\/\\/Uthl\\/Whu0FOLtf5KAZlLG4NhQvGRKc9RC55J+czt6I3HC6ITJqHScd5T8wvbG0lAOrD5SM5XwjAtwPfX1BtXWwADadGu3Qvt1QF\\/izBUPThBb5LHJjFplmI8EuRDjJk8i+\\/WsN4i\\/WMHw9+bQSu4ycr\\/mg3eqB6bOVIaXuPW0h5yxNlyBxXPM0Rb79NzJhCm5WO+k8C4PcHbwvGqITgrE2+oFLo9Jig\\/ILiV5eSWU87lD7tkx9O6MxGkry0GOM0MDSKU3fkGWUo34JwTJa3jZ8VkiTOm0AxgdbPnQw3aMzGHfYspQp37sUCRzpAymjlW+QUVcv1SOldNzHiYMwegzyu9D5I34n24k46821QhO\\/9xFb9WtE8u+b1c7NuxRCBKC9SIAuVUHF8PAhmZN7RWzfsYyfpVdzVD9\\/7jjPrBoVbuMQ37JzotQZXeoPOp4S6Wf2Ws3ZBAuFSpdEz8+ghreYRBEJJZl0TNczL5c2eRVGLj0LvwubjjCr5vg6qAeH5K2SMmC6Cz2UtR1ZIko5tJsnL\\/yNA1KlTzbcLAQSWtGgyi6RQFJ1qrNhMgkgoxTtv9lL3YguEVBiylN00a27jkBb4F0b8Zrea7GYGjD+Ryqf\\/XKR7YFKSPn+\\/1MReQw7Rb0XKrSEp0bj\\/WtCaiZJ9AjoMxyv57q6deWupechHAzc+M7uIF8VPsd7c3tr3DIffsbAVLRmAodE8IRVi2SOcGhYMcVB0XQbio+htNP64uz6XXlx8P91t0MMPxPx3NPGs8tdrzw86kSLgkqBH125+6FMyUeb3WdbzoyF11BQg3pTvl5rKDNiM5SVsOYt+OVH8Mi8aVzlQd+g4uqbGels1+DzP8X9rQRsv\\/rGl2NNa7W1vpCswMFQaKd4+LVk2BeXGz9tFACRdQs9dLqopA\\/eOzJEeG\\/gYKbgvIMuDc+Km6WPl9MdzlXyfb3bjJh0EW3oroaudc0ID0DFt4FMaV4W8+krhslw7c1NKNVCHg2+1n5ibXwEdytNY4neWDi2fQbGDVDMxiSRO4c5wI1mmx19Oj4ovhTOSA19OxHItDj1DX5Aq148lFVCMAiwyQixGJ7aG6syeeid6dkH62dgPqbXGNxMraZHsKdZqFQDZKHfSbu\\/lqNuAo79R7kvDDfJn0Eyjkaqah+a7l\\/qH8bR4O5YQSkWqY982r5\\/m\\/2hzfqE5rLjfV6a1DjRAk9UrhisLBwHXad5B3GuiZRZo5d7BGRXnxaXphYOO12BSZXjscbyWLN0pFs1eub1K5Lu0zdN1mYy4at2bti7qDpwBtRRth9nU6hu06DsUUE2K7fIRjI6S2k8SQfs4A1D8PuclswiH6l2FNmynNINWFa32n95xooJkSnciGsXXsPHyqZ8zRFOle7yzDpP1X32MJ9Q9jXK+cpYYquLaxPBbKpa9\\/bPhpmB9dQ6LzcREJ\\/fsPxkiWRZfCnNSj3cdK4ks6yXQhYnfxrFfqGK3OINY1k8kR5kqyMHNIaFUiDcyxJMEdDEZe6nOgCS2JFrtCDNlCKGcEabLuCSsk5pWyF193rEDR3chz4WxuwaXWV7hfgHFJIuNFJ6GFikPg7daVLitRcZjEWiGyfzy6L3zq22Z4DkGLx34EZBdNK1M31jRCm+jmrBP98LUEqnIrFbWhckrLDUC61qUB0e7sp\\/v483Z0J7t+7OW9exFlwZKUCjCscPlhtGDZmb9bsLhP0J88Logp9aL6PrC\\/VHJZ6n3K+VUtJlri9DnGgmm15jz2qb8Qo01dCvdGNAsnjI\\/CKwis7PfgJkAnNULLey23FskwPRLq0KRzRPnYMcUG+IQfSNLYXgmNkSalPkQ4BTW4gwUFVenZyNgOGEK8EwJHe3p7tU59S2507MOPcNRYsqxC56jwia94hwrGoCHfaFzTflBsmtuzB\\/M9n7b\\/0DoIgY5VXfcR0zR3ETy4OGRiM8JndzV\\/\\/jQxVCHpEGjaPmkDMq2Uo3\\/qE\\/eMS4YciVardJzvCMbPtFL+nRb6ZMGZZqXl9bSnQip8wMnXjgT5B4oYBUfIvmxUWM8STwgvK6S7PkeTZeqeG5x\\/zgq60NAP9WaNmI2LVRfPGUhusGzkjYP\\/EiFUIe8Hxh6AW51ddo6uGuPpzt8UoPlRIVobfehLSVnDWhenrcCfcL6VbxEnCl\\/CJxJ7xhSx2ghdJdKl3Oir+NcSpoPjBn3BYvCrPEbFiq6+pf4ZpRvHynaVvT9TOVCKysackhtfQqmpei5iuFdMtsBzfmkJEqyTW5INZZ3jlyxp46UTEifXRXBToM6JtD\\/VB7o5g3wVhrYPGDXNkI9uIil6TvA5DhZvvz4nxiMZiltZtcdlD\\/\\/L0btbXBgt652+sPRrQiF57Iejun2cxm4SUWIwUF3sOsAY4Ki0vjdpwFfGZJ4lxjyFejAP6Vkurl26pxO29ODwFujP8gDCs0vTFwD1lKHea6ysXXjcmdQ3xGEEMZSO9r4\\/B0RCAstpy9mQLNtb0wSX9YGiWsLBCJ9\\/ZQzODd6biF\\/LZBhBaTmjwoKbYrZl80uHzJDhllCyrbIH6yIFpQYswyK7bjN32Z3TcydD9g1bAtpJWbQtvi0WNQ\\/WcYjHUA20oEwFTeUQAuHLFqyBKWnfafvGvtJlZfBsu0nvo8ienKPI+FwlanzJwA38ASONXNpFXS1\\/LL4O\\/+kM\\/1MaDRHNlAFazCfRLzLHmOrkScUoQuw7XoQWd4Qa6gISv277uqc3qrz34t+blbqevZluy\\/rY1mQRw\\/\\/LFI8S0bSDydW91tMCDJ+b8LCVpfrH00f2PTgyKKNOf4PWbbwdUam72ftMKs8nahtQAoXSWr\\/5tedPb00QX5HjljhWRvCfjTa0GC4UkVXCMfKLrIpLLBuSCGlFyc+4Ir5MWNuTluKCg66nTEpVAuP4VohvAFGugVvrL5MNsfK\\/3K++waOz0gpzBG\\/rmCeg+OFvGFP\\/3fFiPCAlVgrR571txn8gtNGo\\/9wUSfPw495+6DCg3Z\\/W3K6qSKZVyOW0CnGvZ7iQ3eZAch46yJYlj9cwEmDAyA3qP+aK4V5OBiygJ9sPXmqktQ0LA4AdClF5olc4nFndw1V6B+nxddKKQuvcs8XYafiNn65ZHptqJG5Qr+vcJ\\/7FehH0wnKzNBAJBmyLJwrT\\/JMactWbKz519h3phsYGNrtGjj1C6oHEM4LxqTFt2aznk2kcjZYETsOfchQTDd62LCXq4xkczhGYgF\\/5HUVg\\/5AsRTofCwc4TiELQrgaZOJD634Z8NpcHx+DIrCSMlR+f7biPrPmFbjihUmhSFEpJFTMnG8knVUoHFXgUrskGNQ0reZJ2md5+hYr\\/TK2dqdNKKCSnkZ1D0BRO6AvMupg5lVbUGw3TiaK97WNVoWxI+Yn3nSN2435Of\\/kN4QIGtgGmYMXIi4s0+mLuzNqknhB0FBOghemdxIIOd+eoZrOfFwNaW9xYiWDA8LpLJ849LTSxcq+fHQ9wrrBuvnorYB+XbbOhXIftagmXAdGDfiiGhmONNoh+q\\/i4MrbFWjpBUdUah9wfznrg1L9By6E1rocanvSplEWBOsdjEfEQ4owznIvMT3SFSw76dOGlF2cYDsjgY7tfx0RNrrzgAeXYJ26wQckPOioQS4Cbt3oi4oYOWDI50A2hdpvFkUyT7\\/MbBcvQcDPI4Zmb9a\\/d\\/VeUnOu4OF+\\/Krll3BMkXj48P7LU5h6suOwy6+06nDCobzeqM5I0mpNChh8G8FG6OT+UCCVFjXMMaIIx+Jupy4ldCqLEhCQOx0dn1tEADDBkod8Nzr8F9uRMd5vXjO58MFPvJ45Va9Jyv9sEbZFN3i411y2VidqvsAd3hk6on5TPdqDsqH2JVEotoR\\/kFVnmDftYujcCepMeLjbj+CDQs8\\/uIOQ3N4VIVKrQKIhUVEN+pyDtyW+dlU67Jm3xdU\\/HA9tVmjsg5ilFJGh3fTIuRak8vy6ULiuOWpLIWk\\/h64RFngtVdNZft96HBMcEhf7FM9\\/ndN1ZWv0CwD96fz9E8W2w2sR30\\/IVa1Stvom663qUj3L81bZ77BvGC3BZyqJyPQ2TToCXbWCAihScCEoyQKTmhXKRaehuxxS2\\/WPGCaL6fe6+IHRoJO6\\/ionEk\\/H8zM52dvXxcRdTaYB5I2TCqLbmHiMba5idWAeRjI\\/M2mJfcyJEmOuyvEfNh7MjB73e8aq9L+U+Oek8tVS154dYuC8hqH7RA8XIaF6GTtYc1uobvcAlLZGr8sLekHg3rTsw3M3LYOCicmYzEpkH6IUJ2FICC2MkXPfrTdB2k8FeihO7jrudsFcrbeR2+NzS1WZM9hDpDFzX\\/ubdNfrcHA+LmTIUGl33nvkKUnH1mSIWI8OQ24QV10YsTyabrmSV0As91OKYuAbDZvYuvUJTiZwR3abSldjzqbd75rXjz7Hp9Xua\\/wpti0xPR\\/67qsIyDR\\/aKh1g+JKQnv0O3Gy0RKyP\\/PsR8FigW2M0d88d3tgjAatapSvEp7\\/vyxHFRtaOw2rknmnwmFuEupZ6Zy\\/EcvpHsJalvhWyr5JSHJIKZoHuZGCa0mmM0tVqKw\\/1UReGD8yb3Dqvyyh6Y2LE53PYos6xk1WCM15AsLz27Xu\\/m2vihNxFIQ1bUjDq2O4iXbEWCkCkUH+AEvUw+zFZQ4R\\/1eWrzAe8w0DhbyZ54Z2\\/nLSYmcjYPvn0VZ7WzqZuVWyyPjE20CTRFVMOnj7Cy7eb3eyO94KN7ngVQukXIvczrFpFX0BDQ7zrqQ0Ub27H6kXpa0H8FM6fHjHb2QhLTU9VLVEFKT95EqyKFW4BlUsYPwpEAaEkuksPLtLPdmdGZGW7J75sbx5R6YdY7d4dr1Gr0frD46XmARI1aUOc3OQeYschDg3yps4NgIlOSx6u0oIWk21Y0t1QjicV+jQiBAqhNMEbfoxwpw9rcR47C2qSeru7\\/Nyz4bSC4kY7FB1GTtCdpZ6exRk1OORo2mizroBGAhKXzvp4EPWB8JhxjFevIzg0\\/sRjXypnBaA0MWDfPha0dqhla8VURSOl1Ktfs6CQ7Qr\\/ag3kD03kGB0dk8T5qCnwx5j4l48JgBpLWHabRQ2RnR6+2mPzcBf4xTnb+O4VRJlzGTlEl49\\/DKu976MjHQ0DGWwLYmOm3Ng5iz+yhrOxCVwZQnVsu\\/ezVW+YTnUScNtl65\\/7caImQvmtwPKkg6juG+vrGeNUZKyTWYqR8Uh6LNksFFKbY9TCu6yXw7Nrbp3EmycLrrydtgnLYhUA9JoOoODOSU8fYdvUnymx+26FsumnZak04Rb8aR3d6VqkE+NiXKWyooUptt455aIkYPfjGC5N6WB\\/dbPCxx84CUsNIU24F9y2YkBSBofa8xS0bfoxlNW5bou+XsoU2+e2M5HPlJ+dOJsRa34wDS5H9cR9WuDHDj0V0ksTwVC7avlFIjJz7LNXtyEHnx3EP2lUKJpJwDhw5VFeXf+xrylzi\\/dMrq13gybQcvyfGibsAgB0aDhwuX1gwUD25IiZ8iaL2t+6GxsDSLwD2J64MPR0LAhoUVLFtuMFC8V\\/EEvl\\/8ekn3avXX0CcqsSrhcqvWUXLr+HME5\\/IUVZ7QeZQvhcg0oWAIj5XzM\\/p0AD7b0Jemt1Me1\\/\\/zP4hp2kAVmerh+rE+67fI7\\/5KY0GZesADqbND4oN9rWxSYXDIAUF6kzLvkDJweFtPLKyK7CYhfNJUs39LMAqDzdTbr5KC61QQZUVyX4ngarav7F+S9lpSwg0pLi9qDJDatQBeIWQVnJbg1ubrhioIRrWwdvr0IFMFM\\/h4+PjYn4SdELGj8i42XxPR1QUh39CshE\\/O4LOdFrlDIr9DTB2MCtJRJ3PW1uztKza8y7leelCaqpwVVH7PfmmtJyTRqXQHA7npYluA4+MUQ0097qcP9iLiImXPLQ5gYeqfb7IyNY7YGLPwNUVHQxw7gpcKu8WN7+21dUL\\/cqSmFRu20Y9dqQM3qtisx185l4vYFd7HcwyW199T1z2TgNea6xVh3JwrSYaA4DbJC6bOftaU1BZ+EzrpO\\/P\\/1gHjLKc2vs7XrYX97KAdTHKgYKae2em4EL96y7HIkSOts\\/+aiTL16bQJsiPeD0l63PwTHyxUgxOSlsDa3e9Yw+ODxQUSfMyQnFGixav0x83FdLVulFWamdMrnd0nTIld9lvGNzA1yuGnzKQP63FBcbpdl9wCQaOlm\\/pD4Y+KJ+ZYa2JEi+QfFLUfKVqcyRLCP+mZKCWaN8UJjNexGcNekDeYQTYEJ7dTfFuxgQUlQNDQfozyjaVSSBGTpcgY\\/fzVQDaZj4WFqUHTaXOuYlGeIpwwwVOEVZC423Mbzuf5qJe7lqe8Tx0ZuoKcwrKXCHC9FPuDM7L2CCXs+tNOD4qJXgh9UZKkE1DqbMUZJLl5cOZla708Xez0Y83TtAIJIfKxL+wyWR628CFwEvQ36dcRuhS1OpV864GmwwqFxIKSeBttgIVicabQWwgDbqyCN0QXGMQCWdshOhLnRZi2Aq7ayqaXs\\/9nI11DPKvUUOUrkk6qv49muZI5GOKKMZAxA\\/FfMgaqzNavDNsKIIQx0LuElkOL1zmhwnNXFzpxP5bhjUK5C53Ou30ghKTcwfbKveUd0xEf7Vy1frK4xeSBT9t+V01n0FCT04GfR9VCV6eojUVqpRtbso5Wuv1OtJkL0\\/\\/8eqpJ+Ozmo8fERAtGu\\/IsDkHqCKwF6JJMqGwKh38\\/eEnNcIH9XRb2iW7vdfXBLciUQQIZ6G17G5OUP7LL+3lddf4xh1YETKlglIfOizyQTmGmTc2iT\\/mnQh9MqlSCgPe0KhssZt7zkkI1WyCgtMY+gubSTSvjKIy9mchQnp2jsZ\\/RyASEH1\\/njgEthClo6tsSLnIuvvBT12oG9T5ZCm0zeDLRKl57pp9fa3GNmHBogSY9U2JK4gnxlNdewdZAfS931ggRtcPd6JrDXjjsCRPUtnl6aDa+e859QXLQG2R\\/tbU5s3JDhMUipYpcArFtNR+p6jltTlLfy4yQNTrb2TAc28U0FdqiN0HQjlaPMfGioMmbbYeojNFokY7QdBrSS+dNU2LMzKbubBQn8VnahhLVLTJOw1\\/DOgkvjJMOcgrg36UJnoCdCTk1eL2iPVRuKGtEOWhvurQPaJeVVgbZFOtPEBGOHdkdL9dSfyKal6OrO30G4hvgd0KRZ47MXbyKUJAnnuPpQezGFjeoLUpDs+1xLkMb1k3GAOqRViLCAjoFMAB6my7GFfHoVXJiJPiINcaYec3kXq\\/eh0YwSlTHXMcTPUmYaW9S0vztmgblPIbgAiru6AQgvZySxxZPfplcz7CFuzN0h61bX51KTF0vrKfOrQJvpErEwjksYGt8Zl1Gr4a2GOYYEio+JGQ0pB9U1PwtlyQ0vQfq9Rp\\/sgyAxTNDhQTZwvvYV75G7QwUx8p\\/zk5kkFzkuc84Y5iUy4oIv0pPidz7KeW7BJzRkxL+z+uAbwjIKa1nx+1\\/kfCGNwvZDLjt4AnvHhu81oejc3f9MycWR3R6zZAqGbNeubwQ1itrajwHkWuDA4IBzd9Tf8r+miRpk0XCBDPtSoXwvVfRFgSTeAYYMjZHo9WkNiwih6lQCzosF44nyxFreJ7Ks4pzQJPdc83bWChQiE9PdDCrQeuEngphxTJsLBSfNKb4yqeEv5gw1aRkEW6hBuX+ELqimNCN7kwrwxMzWn\\/mfB1wtA5q2CY09md6xhMAE\\/9EMCX1Fz7GiWcC6w\\/h2sioKgYeH0RYRqoTkXxrHKFKG0B0USUhivOFnJPRTVRKMRUwWuOUZr7LBTSXOxneU6oRz9gXaQPTtJ3u5uqwYTcpxFJevN46jxukHDvFKje2+pYCTG8QGI\\/+t48n5tGC2jTlxAVdxdqA\\/YpK8iknsYUFYbi5zylg83fQPbpn9O8JwXp2XJev5G6rCGsuWtPkixHli22nHprXSsvJVqmuCwSMLOPN71IkEVlmXh8VR7EqythKAYDm1x78WIowLk9tG\\/PYs\\/azU6NA77yPNRXikg\\/6dBcmHG7SXgkolN4CWPudzC2onFD7lWk4V\\/fWxM4jDfMhi6Ry+XVWOCCcFNHLlPinLUOj87VTdfEMFIChzYf1Y\\/EL9TZlhlHuOXK519aK19XqeKhwm3IJs1Xjztl2yydvpNUSCfV1hqsR48S68xVC9QC27jt+M7l3YfrZEwT7JBOYF2zhluBuud2PRYLkUm8I5PyfBSQGpfv4FPTaF6DiARMC337AOmiuc4cAi8MR\\/zKD4Vz8pvD1ntV4d8MMmkLAx2OKlFIuob1txAhvzXSDgdKZTCm0unIqMKWRuy+6kVlRx5a50jT7Kc5qbxERVNZVhUtYW0XAo\\/Vp4HKU4+XxHpx3XugWo5TGFqT8rkVpTtd3WE592SmpVNlOvOFIy8Jx9fLvZjeaw0AxknxqDT8YVZ6ClNxuG3em+31pcrBuK1oqDfvYVq4Y465WOaQ+\\/FVnPDoE+ZDkKjozJ\\/M0l3iwxzqCJWoB3JCaJzwMrPfE5Y0iFlXGh3JuUSoaJaMqHcJ\\/2qRE7ydpeFEA2UcWeANOjsP3ijFjycXsdyaazGuiNXkKSedJKpF654fPfAJ+u6s7mM7KvLZ\\/phmXb3flZ3MPm9dPoS8LEW1Ic2e4ltMEf38ZNZ\\/d\\/0LRuEqCF1kjOguYQE7Mi8L65eojprhd+lhJA+u39bePG1BnTWa8wWw8PfzOocifbmxeZM25CNybWhI3UrM0w5o0hFOUqUWrgHgSC2zVF42dytYAVzArZnBLlFXCusY94d9f3L8nibFVXhknhimrjqcBM\\/ORCaBcbbRdPsduKVP4Fr1nPgDOu3xAd7PtnS29FeK5swtWGvTmm8tpBMMLnc2UIjtIUzKdW3SWuDiwJ+tuPSwx4m+rHNPxamVzR\\/aRp\\/57Sj67dPWw\\/D2z8ZEGZ9KYNuL7gvnjuIeZRBYnVGpQt4DVL7b1DkrA0dmsUfX\\/gyC7u\\/R0KUQF3UxRV7Q3bNXPivit51XVJvWSuSk74tNI3Je600Xc6Zp9LnqnVkSRV4D3Tl7krWg6UiDOeS0NE0r9C547c490VZUQ+4wqOHA6T4rWAnYeFp5E6EnBvnklTn3UpR9poV3GWlR\\/If\\/L\\/2WvF9FQkmSM3k8D6g+UjhHBMrtsjz5StPioRHs73QjcAzKrhfzFHdEL\\/I561jFfs9EqgZCr\\/MAN\\/8s56+PZay7KS\\/WcC3NQ0\\/JzHfwGkJNqZV8aiv+C6HZwtzXCicuohy\\/wUjjjaHOE0gf77b3Y4UONpRTeiC+h4\\/M0WCZsKBQbNOJTduAFbjioAzWG74bf+Clt4e1LNStS5jfdn3jPaZseW5EVqUXRSmwNEDCaYpwKBxwhQoaCOTgUY5N9ydtQ1zS4Pmd6M2d2YzxTCDFVRnQyOV0fAuQrGgY5Cx400S2FRd5Mbpj77q7rnuTvNbls9a9WfIS9zSIuoReGzNNf\\/A\\/sFSh3H3FlN6UfHHJHtElIP9OubiiWr7M2OP4DTn0HkLhDRR9wz5gUqu3xYHFe3HkIUyw2R6GNduSkBB9Q0NJa9nZCM5mZv3Zr8PIfEKmEUcuqUiUR6GnNUpHVIYDERTn7iyteLp2IhXOxHQstuwFfTore1B\\/1Dq4oKp\\/2vSBuVChdVM5RKkGjePnX90WIh69v5i0KHoMGnCg9q\\/zDtlg37x+oIYO5AP681JBHEYLPwv0PjYaGozra5uK1aiSFOCE2P0fUHOk0cexUxXhEFzaysRJoAvmwBiAiIYH1eI0wDJdOQVn6xyAtiD8\\/aq+OVgi3OoWbYbhIuL\\/dkoYsxn4uXADpCSmaUj02ZXdgZWI3PaR2HJpc7sxsTAs8R13YZCGrj8bWayBnyiMxA1Lr06XCq9GF\\/zKpthnOYwHfxrW7gLJlmgpRW8DWRljnTOO33AqyMiRabWMTHIHhOuwKLmhGi01cbW0IIvcqCYol2B7xHVeMMzrl2YbTHTPvVJOGLgnJSsVWvpTsUmvq4b7CZQsc39HR0l0zE2XdlI\\/XgZabEazd\\/RqeHL4BqTtVuml1dSWtwOGimQqXpUndoJSaNkYHKX\\/EcHjyRz8Rbu1sJ97hVWKCBxGjk4HAYwrElKT9XrJK97JWDw+cv7osq+GM2Qe8AkBOn4wjqjii8HP60gu1iTv9qyA6mNP8TNuDzMn6jM6dRT0T6xdLNHfxORAbjggBt5jP5QDu2zuxe35gDgASk067Ow5Q+\\/Q\\/wUFKN3MXyyA6SufnChnZnceB5SuLml8wEe1E3rypjAhtFClU1dUEahFiKkNHKQd0ht0b5kpsjDnsPwm1RRr9pPjkJOISN5pvsRmKRhkkfawsS4kYdVqwqiaYNU3mEhlFKViDkUVvIhhbGspAlwfstnjM\\/pdv+PYbBKD4C+zqjCFm\\/f\\/zCZGEBJidgmQlbTWNRLVepk0seW7VgBwZz3dq2pYYxfFjjWTM7HXx4gdchFik0MtR5cgvoV6CrDT5PYa6Z6my3xvN3GJnDIuEjKp1pvFYGwlUrbXHA0pTvoopvRh6iohjZhU9xqKnWFI83q\\/enN0CoygmqisbM5hgabovhftc4CPmztL2ut8PqTnONt1SWwAx0CWMaGSTetMPHDaSFR9BT7q00D8nH6fMIXVaFNY0DxcT5UxMpXdTwAiAAf7Tio2o6RXRhvZUdtMDUtlinZrg7N1YWiv9yGUn171PKrn3KxVrHdQ9fDx4tiCtW4W+QPsl9MpwlHecjC0yzWGhVHumzEb6\\/TebzK+JORBGDhx+PUM6qAVGkyZbjRRHnVZRby9b9RvmkngL\\/75yQYcgC2o474ARwHqD\\/I7H3c0R69Hjc07v1J0esxS9oYc2+d050ApN2ri3iIDD4ox9hI\\/5DUExzDgJywsx1XASYlOskvtndDZVK4dIoyemwsNlvSUnj60yUGmlnrtUCTm+zu737SDSDtvg5ErVKFJZzWTlgmYakcX3t3jNDqRqNJ0Qs38POmfeN353LGNQgBzswTD8\\/jDvC5Uwi2Fx0\\/z+AVJdacPVNr3Kom7a6KooVZiI62laSbbxXBpv7wmBZ86r3e4MaMSYeKhYyF5OXJZ+31IhqOOfJyxiDmHKC8vMl1oV1zz2SnzF75LNPC9I8d1AbnA1QhMfRTo01cStkozJSEqD5y0IWXo49JhhV6OXnZkyO80DUbvPhyZarF3nKC7278sBmJ5yj1xxLGCnGl9Wpr91KFatDQogfxQlLiz3Z\\/ciLbDwoQzneE0Fym\\/zHq5s00OnoFtyvh9MY5gBFMbkYSRkC8\\/dZsidXoCaS9WAmPJ8DD1RyK+cqvES3Z7RLWhDJD+tBBDRCmUHtmEckyfU8LYC1dxQgohFn9bSuMqnhXAWARz67YYVD9h3y5Ctcowy\\/G+NlAkWE+l4k\\/HxAoQxkpyVBZmvyAi9tKpr1aMWRmDknljssUZNPVDVAKqDhTqo64K1IRv9DPhPFLk7iADB8RtP8J6yAj2cdousQagOLDw3pef1hH0Ht5oQIl0IcyHZplrpz2F9hTpA\\/ORRTvJffkhKtMiSbW9pgRCTfN8OoCT2QfXSSIY3+zaYBkH4aNrzKo2ZV9gZ1Xf7LyWXsTkDcKJ+D\\/07OKd14H2oW9GsgCRsz8PSf1oZyUMGpT0GnY6aI624lZFouaS99MnzAEJvnzFYUfDyKUelIeeDcRfzXquRX34IO\\/1nCoS+uqhwdXB+0LYVe\\/g26P9ozSljTQRd8WuRYfwsYw30UbKAtG14KxLP1LXQGEADtjJHiT2K9WXACFi\\/l9UKcf6BV6T+3w31y8b6N6uveRIdC5N3vVXtXvlC47Bf1aOi8fwZNMXg\\/41s5Ie5Yz+Zvwc1\\/zBiC+D23teI3MTf6Plc9HLkb+9oATv7hOPp\\/yJjtZTqrpKfB79w4kRB8OUDJFxTrRWTDpjxYXwjwvxnaCfxf8WsnPow8eK0slWOwGB8qYJh53PvOCkGY3HHq+GPz3\\/rI\\/aCmdHhgxg78UTo1nnhruA9a\\/Aq2Qo5+ELmYefwMwP91KfxmgoMPDOJ60Ku0Wxq8NqqLBlRczGRDSbDcVWyXhqtIbXqK6L9LpJpa1\\/4IUeQcaSmCmfxrk9Aj1BT\\/XIu3QhplTJvynkGi5lDI0VW8ZiGp1BruHK0I\\/Rb9hYv4ua7gf330wddMohw4iTB7ctuTfNYDitUHP2+RuCbW\\/wlYvLKyqJqsWBTm0QB8ZIw1N+aL9OxeShbvnUTWH5jbwX1HJ9JPvMpnnbl6wTSp9a5ASwpaQZ8lN2mBVtfjdKEiPlmvsPnpHJt2rig1\\/UnEGlngHoE0LGgfUfuczfprhSTsZF\\/A7EAzNVOhQdPTbdR+qUR3D+sGYhejdL\\/1xUHkpOtJQj8QFq0JLx9XLoiNW7BrbubqehnISHd5KVhOygOTRLG6x4KpRSvf41DdyUvSEwUX6dZv62nBP\\/6SOzdUcdQHstmD5+RwvZtlE2zoukcNYtjVgK+Z7+hthQIKVj7d4EN1+6i8QsYpCC\\/kmJBfMPHnhGtxoIs9f8LYCiZ9vLCui7KQXQKYILBayoBao8lhPpcCMjxg5NOiItw+QIaMhORLgAQxbPyZQtoXFIcyiBmvgRQ8T2UlZPtS0z8CZJtIEsqcGR4kpK7bcnqBgfggBbspokO1wbmY7MdL2qpd4j77xl22Q0p1K8fU3GIcWVg7tmDKLUaHpmf6XsQ4t0gEoUeoHOKgWGR6\\/FaVkIO1XWcjIFlXr6NH7QJJahPhQfaHRQMEREmFvR96EM4+u7tlEaO982nU0q7VtzVIGfUuCZS2YiN4c7NCjexiXbu+GeK1jF\\/ahBt2896yPbJE6bt0JwpsCRt0mNoVIflCEDFwE9EtZuffc8hhpmXNyVamh3dXz8zDfmRupAoMqkEgZrgdvIJZPGU8SFRMjL7BLJi1W7y7J8C9wwnElGK5+nI50c3UI0Pxao2OO7Nevc3yjx4h8byEFf90ToI7mEcPnedcd4VpXARgjj8QsQ8zZ4cNoUvRjgQPf7k\\/GGi4bIX+5V2wr8xIPxmUohesK8mT8r3KqGS64wRzPFBVqYxUq3ZAx+iJ7dAQwALW2qYHE9z6iR26xQlJK149+WlCiGKnOhdf2+Xnq9tjZrWHUbckOc\\/F+bmkCQ8xdHGXdh+qhFk3xKfAKWHHWE9o\\/YOg+KZ2f05yORAKA6OVKdXzAicqkvBM+RGJqu4VnBnSdlXgv3oCl2911dFqUI2fBOQ6Dp0f9\\/6\\/Ce44gTBB7ZIJoUU6Z88S3UYmZA3RXCiapZziM\\/CYjFDdSAkbQb+gzaVt+A3elTUvLgiONmtVedEppGmKbrDZ\\/nJpgIv8iJyORJD9Lv\\/4HA\\/iExLsa0qBvL8zjzuWEgIEH5vytaOUdaQUb+Aw3woKlH4DEztGTFcAVUuSa5W+RIKRUCrtLHPyUVruARto79fuPdKYnV6M30rO9JlcVmQDv1EtWzWjYP5nFEk7FWjefskB7tsWNmsq6bm6fznpkGTq9FiFaHCDwGc86RhkXgh9ze1Oh9ryweC9WLThyy1\\/8uZyoq9iTzePawqenCak4hOm0aZw6Y96lErTvc7raPuCrM7uqcOjmiwaX1wNTTArTpkDZhkc55JD7Rt9M78wwmXq4hHhzUFE8nj3TusT1ytuGOWJ1VNeHjLsWgGxFtDDGHpa4OgHypt5jz9jwqlxeddEhfWzRLK6sPSNS0\\/p6av8PhHspyQiQJ3qqd7VPbblWH7lmQOCNF1rzrWZpcSaJas4jMz5QS9R1\\/kJOpkxnxUX8\\/QMgFkCjRoqu00vHF\\/CfVQiqr\\/rhE9L+Hpk1g1LXDVDdxNuy3Q\\/uwr+EEqKF8mzLFJxkX1jDPxO\\/JJJPkrv90tBZumxv9KUI3718lg3ktEYXC\\/hC+zqmliLrSxr8siwqU\\/F4wDoLohQc3Yb1gi4FaKUCS1VmkFky9KTFCXGgHy0WHc6tguJghEmDem7a5DUX3YWHdh7a1nKynu5yQoYTVY\\/fPV8uv+tyOOKDxksfZYf+uxVQVaKmr1T+gJ\\/VEBKPtCNvUD8s\\/7mCdrSdEOubOcvTBXBqEhnvpwN1nkx+0MV6aFp2\\/KTEhiqb4Ql3yeuXALxFqr3kRvIsxZ1NO0F+bs2tvMcgjaYmmGhc3ZpFRPeokeFfVhYmQlFuM8DTgthqWqUHjgK7pewWLEjIrzfXMBJLLygP+HGmhrvwvzHvBogj9eww1ry4pekdDTqKEbM178i1hPlJM6N7YjCzxpMqly\\/uXIoO8DkP2ylWCsB6mrIEuVqombq2SfgrP7mouDa0mlkrWsdicN3sk6TKDUDZ0XWM9p5a18a3yVYl3vqX3ZuNQRHW9v5zO7ZtEPpYDT6TnjDlJGlwNfM0MzxekTZ15\\/lRMg0GWKe4klWsO4sXhNsETN2\\/41yXp8LT5s5Npc5GfbJH8TKYv\\/CKpnRmCZCeh0MkSHmtHE7VPhooVauIkFa6ZMDsoYpEFO5hujdoNAG7FIVg4ROgCv\\/+0N8FccZfuFaYzs3vniIUkuVDteAnuNGCjOc2k5pLUnkluqh1sm5OkI2t8wUCNF1Kzl2arI\\/PQQjlr4dvDvE\\/0KGDkDTY1faNVxs35nXb4uuRgzotNQN3WAutx3wPrsj\\/NZfBu0enKCxR04M5izpO\\/h+tjbEZ2TDWIn\\/Reg+VotEnKeicQdYGdK3eP3y4ENPwStafx78G0xsM3Kaf0oX6s6Rci+At\\/Tvy7GvPycpmdb9swYMZXNH4F\\/qGp9+\\/ceCzShbNAixD+0F+ykXAb80e\\/DHbLG1N0J2GTQ+MEcAN29OmChv2G4S19cjea5+Us92PxaK0gzWx\\/mkz7BYocVCJXuwd4gW6O0l755OuRtUOsejtdsx7dvl6kTD\\/m23tSJZiUXTUNUO3glSmmz2tJhIvVZ1su0OjhJ5l4oNGZLiNs+IpX1HObBqCL\\/85II+BIU5xRILtQnBTfJqm2xiPV5Opz2LmBgxdJfy7J2M1UuVi1Q9Sg6nii8QJ9Y\\/q9VqTGzbJGHa\\/wXiPtXimAdwX257hHfw5iinBAhVumCbL9bhwDgrZobJyBaMLPhPsaeIME3sa4M\\/jOTp6e4Np66gpURfCzqPXEjXSkCpqMXS3cmhT\\/MFwHNNdT64Xw\\/37mhO00\\/3G7JYXdO3xUmnei9+WwY4\\/BCraqEvCmgnh7f+Q2CuGRuDEbc\\/mqfi450u5z+oyjBn993xukx5IaXLQ4yQJr5r\\/xfJibMdmS4XVgyGDuHhHT7kz4Sv3Pp2B3BMDqDE8S2pjl4lWmBT74vc4v2A7Ojb+4tL2CvPc0wcxjbpuku3pt6JfCLkcWVCQ9NDkffDH5Hr2KtQACb8X6IS3VVkQkXMUPoKKx+pzAdT3SmDtascYGvWrGNpwE9hjDn53MoohyODaxu+Gi\\/T5VK7BuB9mC5ICSfANCZN5s4\\/mOS5XtnrTchNBvrAab+idEXdVJkxMmYC18bjNRMvtfmX3ZxG1ISb1LNZ8VFym\\/+FK\\/oYaTlzorx\\/AWEIC4R9MkE0YpeAfB0CxpcPZn6r2dfaneap5zyMm6GAT7sm7Nypp0w+OiDIH0QtYZ0MCIudpngEUmV3mGaWVHLow3sweBEJU9qFxFN8verV1R\\/fq9O\\/TPLfZObM2RU+YPNRUaQsQzde0V89zh6KaKRVFMe10wrnvG5J6XU\\/J38Pqfrd+8qVC8m6Q2qGN3iROpdguMo77YZhxamrOs\\/s4SOK3vrTZqCIsYp6tMkhrKLqMxs2Bj0D\\/n35u4vZ9uvW8hW4+KGsGC6mc1GyoyVMRJAwZve+DG+9wGR1HwBge2GvJrWLStV3qDaqiw79iKTWMQvzUDSOUkgVGoifNhvoJgnvy0Sl8LnRXnSREN0kl9d2NPc98cVtreHa8+7xh\\/exWZs74Ods4VDMMOznH5V8D+n3Du0lT8xByxU9JqTpMe+NI5nY57RyaPdI3fK+NS+vxaJFqCInlYXuluEQWJrzZKVLxqpzFYoZEzjh6XUu6rw0xu+qPthjzc5r9uvxJyWF4NqBX\\/DUgPqmKYYDMFZBSb9u\\/4h\\/2ZkPOufrqAVW3ZhcgUprevcuz6SswEVEbokTwk+uwESdD814J07dfjrrH9sTOYJhcY0ZRQQ0C+DFO7xMhpWG4ynPqEUNcX02bq3g8Oh5kAZ4n4QBUmK1FNdLZ6SN3ueldg9rgikgeTXaIqHdj0PjZRfeJLPp4MhIT8oZUhlPsX8LsmRVGCeZE\\/08rcKPO2bRLKjghFvdTWpB0MCX9EWQ4QZUW\\/o\\/vAKQ2YH4Pl+rxDQi7+9ihBfXPd3TmkdylqZN49PBTit\\/MzY5J9G6hNmuwI1blKJ70Df9lg3lZmCvbPcQFIBcEYFiTSzPglk59MX4YuOnG7uZdiYYQ4dk6oFWrTgDHcqPEHjXP79JocrVP3O\\/MVlqMm1+Gf8NpoQf+lWMB9TLN86WijbcN8\\/5LJHurdI0p4Diz9kIXh5MmkpazvxkgPeCHaWd\\/6hZiK5paL8zzeRlJB06whxacaOufsiZB+taAExAEIivwyew6AYCTu0qX141L95q+09fJQInEIiyHcrA8Xmbd2G+ocyN7m3+77cAOXFY\\/UpK2SGSv6hOMlsDYSeXcL3JI+7uBGwBrfVNKPMgDsEW074m\\/g76jPu42it4JlRbYjS1zoQdfLPkc\\/E\\/dRzGOM3iMn+Lq\\/FI08BZ1qHB5ogmp8ZNY+\\/L9B6OuEux0KsTGF9WlzJtBOqbyJpwr6Ej63FfzIXX2\\/dakuI1dZkb\\/GblwbbujG7fv5NFee\\/5KUJ2T2spdhglF11Q43ZTnoy33ddSBARw7TFHFuZ3776IliqGCdrKNCR5u2p6IK\\/OFtsp\\/QOElJ0l11Fcz9IP0aYEI1N3dCXNnh1UMGMsPd3H2H19LXr50IOldTKRc4T5vEaZO138fLW\\/VGcYENiXYZDkhTeedjNQvS8rPdyt\\/ckOAGPkOf3nr5LPAWw7GLRbwxTyxAncPaUetCuY1LDso3korbEuUeVZc\\/xHv9r\\/4LKO0R1L+rHyucePbCvNNYIXY5o\\/yq\\/5hYWP6RQ+c8gvOSr++BZmK7Ue6vYjO9GsHTzgUtQD+3JrCLS3JK+o6izOYjkAu0BC+lqee115Nc2M0w44og1d16F\\/2sR5eq8RDSxELxksAykTYJGzGZ80FUP8ZAdYqboRSfq977T4KX\\/RZWKKDx9umF16H4ey22BAoR8iEWkgx6Mt4pnJbc3P8HYOwlfNRXLhvY3BNqiloLeGOFDfhcBtZq7vpi8glB\\/WJUr1lqoFiySpVSzRe0dFUgTD9Efq8cbzxx8JGX9x9mVrsZG58bIMYG2K8O3Z7EVgf29RzoneILuMD9IWFSH114EoravykpgXpGFbtM6Sw12E8\\/XFVMDnzkKo2pnpPs4+\\/MWor7zNvo452zpgTpq1EpzdjKYIaBiq57e01bscMZwBeqLi\\/S7MfrI4SRJtV4GZZ8W7exGl3ulw4zaJeh6aDlWH0z6MBibjzd6NTu4MATEbJPZJ5aiTCSmclwZV0IXNTb2PfvqhPmMedxNtqyS9T78z05aGvfdXgWpdnq1zQvKRbiFWoFK2e5\\/DGRz5+LbzKTSipgRYM9u8mmChX89tC9ApAbxARytpy61sEFKWglgjhIKJK2GxMPpgo03Rm0l2pUPAw5gTvSq\\/sZWs8Zm8BzAgzeZir45aHAnO+f2L5RMgTfuTG9w3rYnbQt5w1T6C9x523FK86oGuekIJf55rhGEoY3DMzw7Hw8bkNaiEW6lBLjg2t6ho\\/kNbjU+9MQjRFmjo74m6wApRX2WfduPSwCKh\\/iu02s2nBMGaS4Cl0qqWeCrB5znQ9EoJQWzkjJhL\\/KjSwYWxYjK6mZNC3FHuQvQDezVYso\\/XRKNs30dWPgbOW8C1ZzqUBl7zAkbJcfdjSoajz4svypPXfhP9vRgTGPG2UnEvFxWhUeyuW5pf1CtyrreT9d4Y0GqdkNGz8rs\\/MNSZyCq669rrow4VEmT5OKvIyeaUx1B32HXcjuprSaD4m3iu8D8KH8PE5yN9KKCBrVqQZpYSIuqEHQCE6EpxrdH\\/dlCxeOmOjF64SsnDzaAqvx8lTXvqCvFNVHJdgNDcgl+KbnBXCyYWwLjao\\/t5KnBCQcDWG82BhKIsvQ3Q1Om0DPLkQ9kK45iTtU92q4o+EBQpav9rLI0LO8HRhz1mmUKBx\\/RkXPNaGEJNbD+3hWulWUO7KgUeeBFoM+ncXw6iRrUbBqa3mX4EB1GJtg9UoYyY3Ep3Z97xxlehczi3+rLl7r6unV3wfQSgwZaJDISyrFIHTltg\\/rOndieeSCEjQNDmc2DNK3NbbD2bv57lXfizJVKNL0RFPnzLaAmF9mLMihTqkP+bg1fHiRtdz0gmLDj3oCBqlgwBcp9IAxOZcxOaNoqB9oCDGfBva4HaNWC78AVqJXvfWN2t6Hvf3d5UtzfNW08MU0u0+mjUxMDyi0036L\\/cY9plN6yUnbU62v9dmr3UkbTvX1dYX+I5m0nKkk6Z4RUXEhR7frZHe3znsIq5QZFppdNgYqfBpCKfJZSO728o1bvnSsdexqGQQTgz6O52pzZ0CEjveLd\\/ID2O9ZwfkIktiZc+otAOdMfjhyIKQTWRIMb4h7xg3M2gFMtD\\/8Cyf76E5lzzZGw1Cays9EzQViYpQyK+ILO7Kmk03ZWrlzq5gfldlOq0CD5QGcvM1mIC\\/nDOuqiPgg0PqPnUx0Q4tbeSRp7h1ywPwGBcPv9b5ZbSXlVzHc9uDvKSYau5nJOSmBI0GJ\\/XfntlVSvUPP0XJUdwKrJGYKVXHrZfp\\/9X8kBGZaVOpXPe9lXFiMWjor37Cx10g3YmUzckFOSE+a\\/EjR2ZROVSVbnJvrLqi6Wh1B1EH0iO\\/yK\\/WmN9PJpDVv0dNZvSphZVtmRHuWhPPNSQ6JqmFFPVk++4F4IziNUjpKf\\/C7tiF3+Cyk6q3rD5mBeBtuXwWFgNiXrKF3qdOBQSjEEWfqlx984zqhqetcE6NCcmpNaPhm0Zufm+OH6iOvJswFk33h5LgVtyAadugC+zJdA+dxRUZP4RwxLYnwFonI4Jr6GrhRKLrpft8+ehhhLHpmoOIB8hjKDr6J4WFqP13VxHAVXvpAPPw6PU0xR7xEa8ctGaQk7o6t5Jc7LUr95QTh71jPpnOwRXSxQQ+EzzM5Ij4P5dTMTirs+Hz0AH\\/AcZSREvWAzD1arzK5wCm3VeJGQaS8jbZPWwMoRup\\/9swIyO1lJ0gw\\/v6L4\\/A0zrFp+9mJdhrHlP+9r7sO1PN+QJNzEMuwsX2k7wP1oQQU0RfI7rdbsXsacNGYKrhx9TvKBoxTEcemvxjvPPCrOemKZamHivhu6\\/+M\\/NKbUAaVJRkZQR1rxioidqbkP3pYDqVhCyrZ8p9vi9j0vjnF4mwR07QNB8OPvmwQuzIUkneAEs6IVQVGnaeAW2P+FIkgLQJn\\/donVR1zax+TyWyLGsXI1iaGV5Q+IZRnXJ3EvmJIuFRna65lzTe2g5QCKOABvIivxNe+DI2213MudFmWDTIJOpZdtmA4wEVMGB67XPac+pwfgkNu9jlZPGogwJwVbXVE5qXb8HKLK8GYo5\\/ktw6KlRJpxnulGN14MVyE\\/RUA\\/PtZuZo59PWmFrCoTCVtReIci8SrMpjVAsacebPBC+5cbZ2QWfo5hzT1ZrC9Q460T3y4s1I2cDTCTBudjLm0QU8f8UQ7TgwKH+3VteSU2sJIEgRwOO4n8Pwqq7hxwxQoQKTvsng2mqur5Pd4IrTvqMjcTlP2sq2j5Ei0mkLzzKczQs65F1DrMZghFK1tJG2v\\/AVY5\\/f62s5bAgSNWks7L0IsTRonpymRrtQBw1FErfTF2YsgqoO5rHkXKXgILqN5+B1XaNYL5wuCB3DlQoR9XynJPY4twUi2mMsDk2TmtjFl2V350ZRp3qj9snqAz8vELayUdhCcaCSFmcVFUuNRh88RrzmgxlTpqCvHlhLAnmraCoprFfjbNTrQhNHz9avdAJjSz6fMghJvLdxeoiGxo08VbWvH0RfAy26BVUeDZs+moypctth6YSLe77jknO83lsVVsSvTqK1NfjLEz4lGDW4nHto77dCzW0x5N7HEAHuzG23hz3zryWhhNbZeK5Y5\\/zzvhLpwO6XsfvjE1u9OGVRj4reciw0bbeIq4GYyC2JIAGOYxHjp++88Au5\\/bBtDqEpCEMClqkUk6bChw83R8C5jx3jtc7vIeNjbQsD+ypwllEmhu7EKym5G2PxQLjEcJPwphw5WDkDtrJgdQOFd7OTdEOVndH9P3uGnaVQQEzjePw7of+deC9QiOFW\\/pCoDG2l+rC3DbOrs3Ak+4hj5FZT\\/aAVMbbW2p0L4mKOHSo\\/ZYKMHmYYoJmh5QjpKFqLARKb8N0mo8Gy0x25RmQ7aJ7c7sslgw87pGb2VZisv8Z9SVeRnpaEB4eiw5ywOV4gJfAYQP\\/kuhGsXFFwm8aUr26qqrMuMW7eS\\/kKhQw6KvFJWiu\\/z9OxbPOGqAflnUAm5ertK+1lZl1cYWPC0htdwH4Zi+dPqagq46uuwgW5SUkv2wQlNhpDpHYsyP6FJT0Xw5+NvzqmSbd1PCQw2RbB3eIJu6AR\\/Ki4ggRIxpePGLAHEkRmiPrF9537P1gpxI\\/ied4FJX0YoLf88QUtChZIH08PC+pQp4xsWCqSWcIZxXjZafPUeduptBu111OCuKchMLTodpf6l1Qp8aRdbxVr7EiaIpQwjN4k1GMg2QjK2IGVF2Heq2KPotyeIni7Td\\/VBtOsMIDODANwEqiMYHhqjH+hu9zihOD7h\\/eb4fUF9wlpwq0VEyHXNUmTfFgKquI5l+iSX880fEWzs8wGr+3Qe7CFN5XpPLLv6Gx\\/3B8+G8aU9+eaQTWrGAJO4qad74WZuN2LQKQ9h+8Mtk7Yd0mr7ZkzD20j2UlWJZHmYEQ4iO4gkSyzOLyRr1BwAK5w89oQQDBzneUmdTykcYomviL0\\/l03n\\/Q9P4UWRS+soXvAT5NQWRjBmQvHG5iguXbMbfQzw+pCEEtSM\\/IZOwGKpzH+gJwL0RJeGgNisiRaLf3VbfOAhBBOSgU5UJ+fBaV\\/M0W0c6sFg+B4pqoB3eIkIo3ogMNkW76nk08aXtPu7VestqEv+xwafqgw4XOon2uBpnOwy6G5yGEus94pPt1TGplWwWPw+1\\/KzJSj5hOGZdU7Cr7lL9JLAn2MuQmmWDM1WPg1jl0b9VUxjlcyYrh79kCBG0PxZzlpCPu+n6bMZqjsOY2IpE0MW6J5JCdSv1x5tOfZAHj7RxX8S6AD+2V2fidOSe3\\/ybZ4T+iWB4JtoFMydASjlKDufa6TUUV4OFaxQ3Nxw1Nu8sG\\/WpVySTgmYgPEHvZqav79Zm183kMoNwCQIwfWWBBkFcVFKpgSLCc2ikZLgwGZshCo9YfoEi5yNWDnwsVHmw\\/DRntE5YODqfrnyO+A6zZSM9ZBg\\/EM496UbIbZ73iPyX776pRIlNle\\/JGDSO9C98Y9MOM2TMC8YAks05Dyg2aOFVX2sWGrPT2c9TLY49bWeioMMKGOHJNOeRUc93MIPFDSwp8S9YpXGxfkgk8XaruAQ8\\/VfY5BmIpwt0WPPraClXIFA2d0VabkW7ccEE03BNe5OaMWTxrRRUiAivRAu2QhgcYjxyD0vc4ROgYPAtTLZhRE9SvI30oWB9+wKjgtVnKETkMuFIshaX7GNpWjm1+8bj6rIup2w7wtbL9gVx\\/lSzcWemyY0xe0yBOkvAAVX88xqUjwRHYx80GT6o02v19yjuOC60sACpSB\\/L9FRg0PtTsmqLVZBZ1QYSMzcFLvZojJ32Yl8xAKRT+xBumiSULTfQR7wF0kiRnOV3ixXe29o1im\\/\\/YMezdcrqHohTi+yPHVQXncbOjYdFeMQPjU0NgpFpk97pOYFR3I0fZgj7THVeE0ryLlHcLsHP6kAoe8wUAX85R0Awlhp\\/YzJpnfdWYXc3+lYz7GD+VGQclt1lvvlrYHrQEz6vgIZi0Iviv35PU966uqfo4IaHMzA52E1w13xkZvDo4n1vvxgmQNqR1F\\/97XnXgHEMDYS0duD5uhyW4gGrmCX4Djoai2RFMd7e6qKqTmTBYUmKknD2Ptm6RYrhVhkweJJgAFEHbow+Iqep042lLo+dU7DKbZnJ+0HuN1Pw6a7cKYiiYuG+aWFDCKzTdKr6BSe9ii0dGTGaBtJw8Ilt6XTETU0f9Dz87pZvuyKtMz2O77hvwxDeFBx7vyTyJsGK737PLnYvBBrZDEzLTaO+I5RihhHN8+bi\\/MiUHgyEig892fJN4+ivkookRl55K5G3MYuLvu\\/AuGN4n22t3rHN6AIOARsGFY+8aG6QLJ9WS2rEKT7G8cwjkQT+I914VDJHtkYlD\\/H9nl2B7Xdhb0QgbLf1Qo+E5\\/AdPlfcjWsOIhhtqUWijoJSqrBDPVNvIEkbWyq2DIte+S7S4jGs7WYGe8Y01AVIxuaTOOroJYlUtZhpNEho5YvQu2DfREN\\/P0AxjAe8VvyGFKE3MCDaGWyubEgbwm87RzLud8H6XiKUhHT38GcK4NnyUglNjj6NnG5L3D\\/DQH5b9WpoLqBWtRbkdIEpynw5et\\/izKu\\/XyEcDF7Dj\\/0k1Cx4fNVuGRku0Z\\/qHQAIOBJwo6Y5Ifwjm5wyUGIMJvvZgnE6h+uSBkJv3ixaIWhDzvH+8D57OUUYJ29290pAGzB9FB5mhJEcF2NgyqvGaY\\/E4wj4mArlcHOT1xmAEFVtUZxTeBGGFBb0BxLg1G9XodU9r\\/7XYgF7tn\\/z\\/bW+GUXrM\\/CQcZls1GaIlEDOsFtEJbqsLak6MMiKQ\\/OK\\/Zovu500rsQL7D9jucAj2GtncTocrnMQfg1Yj0tUnxBWO28ZTCZ4JyRkLE8wxagEF4O\\/cei2VhvyR0q2tl+uuxraaXvQTmg4FlK\\/ACLMP8csJIWYeHrHmSt75FMWlbrGOohXUVuLVojJDGNf9h7xpV\\/avE7+iANV9qoRQu\\/Etxx+62UoA7h7TTXLeB4f0yBbg3QA7Pdr7A9WogOhszjUH5KdeM+lYswMaNq4yh1By0iY4GkjbzrrdJEoOm06iZfspAaRag+PNrizje3Q9vtPvvdGHidEqRWeRytFiUa+eRZ1JJHEMQSpJTB\\/RPgBJUpm\\/fdhU3SFld2husJ7X76GOINPpU5ELdyO7u48qIOmlrSTjaK4zt8jLqYvbzi3HkK6vLS21a9rKxxgog3r0H+xCv6xgtLXJQF0iEsMrKMlzDiyMOrhduaAU3UlTXXQWRCTnR15xx0FPif6bOQ4hH2ii\\/cgxkPEB5kP0ZB93mpaBub8QCqA8rdAADaRgNgTvSWPAAeov6SDBv91x8x8AhVlhz9fiilJxaKV8yckn1N55dGvnwUCt1P3J95YjkLFiNTVavpxFbnvDvAjCRaujspf560Q0e02FAOePUryv+\\/yLNygMAKoCDPaQrF767PRUN5thVZ\\/a7cDXRclW40JI0jsH6SW5KmJfTYTCqcv\\/y9uq\\/yy0eNWIklpz5Xd4ya7B6rmJ7NZs88HM\\/00BgszyrME0VBIkvVvXX4cEuIrajrJjeeuQaeKftIqJLNpnGNg\\/lOqUDvJUV+xJe9qVUmPQpC5CyctjiKS7\\/07iGE0zaaBCH0coW9fPHSZ4jFuEnygA07vgmNjMQPpI7lRzNr3Rtsu\\/8JBBLJyNbjdJA01OUbGxK0uO5TTHPqwlndkGCqsmox2gvkgxDxmi5\\/3fMIBI\\/X7ESkxwdEb0mtOtmEm+USPqNU3Z5Ax0XOyugbCNON5cgxX2LVczBbkad\\/EmuUenDyAorRr1IDT3CAYGC62HKlgoyTPPMcZPEgVqfcfuh8qKcoUGXaGIQeVEeMkC6\\/kE1e4PLlR7Vx7gXEfoHitHY8CVmGnq66g6+65z+BWMq\\/9h6A812C8wJ72v\\/CZj2wb9tmvklcadUVJXR8br5pJDRy4SUy8aqhejk75den3gWVQD+cNSOofwPuIqoyQjjGirpa2zJBT3Q4ptfK2s7mhbE2jnjxZ8zNorxeSsoN\\/w1YjxQS1rPjzT2EMovAfeQaRCYjDsoZiA6mvB9vCyQYGRKsjn2ZrpSMJf934gVkk9GJ1LwGOnbzt\\/FxkHP+OWYVbCPbHd2D+uOiVQWgQIFNeblbrZpYRhh8vxfoPpzQwZP+Gbb9X88mqlymWrAlTU4apNht4ZRrxAhSpYlwumyioNaugivC1usRFF0YmMIFG\\/rSc6qjTKH+2t02xfdxN42FYxLYiL\\/O7SSvvHisW1Bjy2IgTVRta7ygKHE4aToHgAzPL7q6QILV\\/YCWqDSBKnE3quSRCXGnCNCNTMrYoYscJKy7J0myicpIotTiy+u8e6kwlln1CvzDJh7IWYLKZZKGU2Vqs4ute51eN9CMjsSAsm3xcHEqgpTdC\\/MqWh\\/sj\\/vVfyyol6QTA4OAMg2zw9oGbiyeth9N+NrXX\\/sYb4GCTGPao8QA0UKQcdbqRqAKgS96H2OB1462Wgdyd9Hmi1qiJtj6yY88\\/ZnyiTeO8T3RKo+PkVcXhbhE9oKOij3Y\\/rU\\/JkQQliXjbGDeyl5ZRDU4YLT5X3CsDG3upalP85\\/HmzDib1BCW4zK8Ol1JP6CH1yLmmBYRc2pva\\/RgTo7qA2c8hIOVCOT4ppqph5Tq4yIExtYe4JDm+g8DUIcBnvwWRAZV7pUNfRHVBiCAroNJl7AzNagngJO8xagC41zm7w1daXpUf1TU1k5pgjVV5N3ildZ9nUi2YsZIwSfvQIuY2yu6oL0yfDZU233zTZy1NYMun1nuOhK0YawffO3JQ+495hUfU4l7AWh2Sk\\/5MetBI2kz11+F0F8mzv+KuSDJXOkJgZny7OeQ1\\/oZrI5VkPocvR79n2fH5ajJ90wjkoRNdV9jime1A8LmakaJO4owu4IRU+VFmb9HrIauXHg6WDzj5F5B3ccE5ffgTLsxae8sJWTXvPRWAuKlURIw187033MvjzWcu9lyEejwaEgSerwlLlnOZZwB83\\/ocu6c2bKrlv7iKqOBxvxkOtGI6H1MfwpXQPw3R1+RF3drMt1XwJeLrJcZb9MIkZejOw1r8vz7aK2zeo2\\/ozs51Vabvx2\\/ynRc3oGbFn1nuODW2ZbQE6IIu\\/8QlfqVs9XCTmkDGdaKOsNaKKM2BArDTTqc5k9qyr1eIoTSVbEviFAr0DY\\/GTTjQNyqr3nW4eiLrwIyM\\/\\/VaO+yK0o+Fbrojo+j8hvqFQL8cM\\/oOvtsdeW2KPC1atKR6\\/hXaNikguCzCMQpyhz\\/SbPFce8Z0jkKT9+v8Iz\\/qY3jRly2nazCkQJElLyBR+mr39NnMC3e27hQv\\/+0bBJ3H+2udt5VKQHFrYG2catfCBH0KIk1vS7Ap4vmICV+TSR5t2Zp9aSPkdT05tCeTpUfpcwSMY+ZHDvtQoeFJsSnH66klinUxCCdxUBq7tJk3KFMd1021p70vwx1w\\/Y\\/7MiuWP2Pq5ic9m05Dpq95IkKdvCjh7ZtFJZar9cnODpldYEfy8HZb2PyOKLU5VcI7um8MhaJrDArsHq74TgTdx0IABehajCPyt2KraqTgdpURy4bQ2XTRssee8Asz3vzF4v4hzu+lIqvRjU8PJkMQzKzqfh2FtF7BDO7hB6ET3yehz+utuwRl3WgIn9pZgIssgvWcaBGWQB9IhcqQbtsUTzAYP1lE+5wbyuH5kY3tkNtQd0c5dEjl\\/3UEQlNC4AFUCkr7sEq0I7zTriGC3\\/3ykxv9vmf\\/DI6UeLt0iGR0N6uqO+su0sQSISfYKbGr5thqd\\/ptedBConi9OfhfmoeCa4cN44wd0CgNe5W15ELMlL6Js1OqO9JlKifuPt1q+tsl4kpiTS6SiPrnQjSlmBEiKoxAq7GhSfAojWM7TiCYLEKvTVxDqJSmLDd9Ai0RHkTmuzWrzH8SMKKRNg0ZwO87NfQDOc28nHDMAWwABU\\/nLA\\/\\/aX54uAPqB1VelJTo4ECvLKReJue7kJxawb3Vh3dK0ln5MdxOmZphgWI7VLvgJgda8TZDr3SRBqRP4GK9+Rw8EERI3RZQxMIW2CZEP8kdHQzaQAGSfkmTseFjQD\\/tffa2Aw+DWMyYsSRdLWobLezTH\\/gxDo6fPoKL\\/8raGBg9fbWg2PASRnKpWQZ4ApaRtVGEdG87jgCyBW0QDZ+QxeEsBW5bimH1HPdq\\/iJPZNj8gMS2w7jboG2Kw5FEYe27G3BjYhIOFxVUkx6zOtZx3OGqAtwakrkkja87EIQYj5BVho1+fbAXIimchRvmtsxhb2oP60P3z\\/qCI9cONZtEzbzAnxLFXTy5nyPadecwyXh\\/36KDTSEJ5LAgH3kLGvuPw9+wK6OaiJ96smKbTuAqVDjUJozMMZzS3qXwL+RISP3TOzJSNFQdGMU2ClxkRfQSe8nwLet88IFCo62cAXDlbjp\\/BDYklsQV1EF0eorPWyavNtMvWiVpKh9KNZ4QcgC8DEw9sD+cYD1xyH\\/Y8wrCaew3sSopHakMJ825x0ZTeRz7xAOyE+BcLUrQaQKuCWJXbXX8lNrwio\\/h14\\/TYDt5m2AZAs8F6uar9\\/+g94xidhxp9b612gWrnfmC8mW2lr2xPSBhPtmR0le98k3fbyrzD14ryQ\\/QvTTGN122seSeQheun0r+7oaPyNrw9wix2cz83sp0m\\/m8R53VgcSXvxWllDboQrqn5daeTMN1NGBk1NHWSEszmXqavf4EaR5tQdkUVJFLSfTdygbiCvVhY66Qx4ZlWGnniaxckZQNoJpbEPH84EK5d6RDa7uvOlgIF3n\\/q96bey5F5dNtvY2wuvA252VS7iEScL633lZcGUxSnODnaoJHGBG8QHvffiUnoMe+F8CdxQqGkrSz0l2EaYxJLJatvPKLhKwTGqOZCGkg56avH8eBROjO13Ht\\/V0BQ32lbv9axgpkDCi4qHRwcWYhPsclXsQzYDHZYZPVKcxlOw\\/9tU+wUXwWWmHLDOEEgI+6qPIDiafQGlD8xqs9ycpmapMweJJe9PSCYx8rpWj17qtr6jNHYU6u5wCLLPY0pF65DeIHdiuf7O7++cKhEGHkxvY\\/3DhD1vV56L4+YAK7y6zHKu95xMYlRcO6fr4kf\\/uyipxavE\\/RVm5ugy6Mwg4N+lOzYed0A4vIeDyBU9aenY1k4Ql4tjz1ivZMSm1rTkWHgFSdgwbn\\/4HuvcsvFOHiCKokmMvnfqQYIGGgryauFTOlVjArUpvbU81q8OooU6pYWRyXhLgAdimVK6TrEfaY2opzrnShMiupcEwMOM4NAWp8VKbXB4cJ\\/g2XAvPJ2dLVT+lrjgAmC\\/GFHZfjLqLSZJDl6qCrBbRlyzBVElxU89RYaILx1Zrm01WKH6Pfz5w1yQHRzzfErhgoh4VoEzVd\\/Fnbl1LVVbg8UlWpz9y6zZRblynq7cB0DIb0rHjv7ASz4csc+lXavcd3pbo0qPDNkpZH0edkYFYRxduavtHuQAzceg6Ua7tCKP\\/dwy023wR45Iok99HEjKimtnQEKtQQswfpWynpxlFZ3s\\/3QxASx2gKLoDeDOGhyI9Vx4KP9J80ajsRQbDePD4ATAZKM0vGlLKPi6TQbxHsKQwkwuEwdxZDVpOJt\\/JlzQUwwfpUr06qB27JNUqYF\\/YmUUrUg6Fb9mLB5IgNJEJ\\/70+R8C1+MjN16JpD3cmj1zuRCR9izAuV4lRJv3Z6RUuLWSCNOF0P2Zuo5CQu9PwbpPK7N9EX4fPMbWBP4d84ccYWYxE+lYKw2jVfyht3tpBrmmAHnePSrt4l\\/9nvaki3P3tED2m2LjFcw5Xti8gsBjAMbxWiw\\/2lqRWiLLu63IEr+nKBFpkgqgnjVZqYDlHg6pyZvTdKoVnU3empBhvzFqoPPaDSg6nKzD9OA5n+aYpzhoke3wtjq\\/pX39QrMdCylJcPtUfm5IEj+DZz\\/\\/lsRf0oF6+aXU\\/RrIaaqZG5QmFVOgwjCMJlx9YhzX7+RNzRXMt+378dL9KcZVxSIaOMaCDALD4JXu50h4mLj5gjvzw2DK0kTsDhMzFkYili\\/+bb3swVgQAu8wh7rU2PVLr9992jcszE+gmbTsyBCRdqH\\/B3ZLn+jh3\\/jCkkx8NP6o8c2ybFfZ9+72K6GjA349ThtvP9kylYHT2P5332dS8m54EnT22peqe7fTqUgdC7P220I7qR82A1GHzd7jx6EIsqbkgxHMUlrKGBPnfji97dAJ9R\\/Hwo\\/1ToI8x1XAiht8tBXjLNupp3j4Di7FggTbUlHQrjJTPOvaJVrIPQBn7l83vKd9likObVfRENR6PzHixGCHcyKYiW8dM5697Ng\\/mcd+PDJgINVOs3s33gjiBqx89WU0PiGUFt1UFZzkOcFzoMS79geYWnWyZZ2\\/cTgCEE3Shw0GeQQ4DBD7B05VGveUbTasyK6NOSRucYpRtCtlSIbmx4I4Qup3uLhRFXDoiSg9HhgDDVyQI2wR2fzPvf5KuzUrCNs7ojVQKhH3Fui26UIrQNxW4n01GyvAqbFmN2ofA69pgQwTQBRGX2RLuxxRiHl1Pcs4A6CC66c405WdQ9YcN1yHteFL1n8Q+LbWN8TRUkTA4PTxnnqHp4tjsmLYHFtOh+pn2wI+RJdvqVKG22dLDEQfFxHGAxsmOKQs4gVoUTY67ouuP3fFYNu6qeSogdhwWzZ2y27lcEn4B4jX4qt9blNLaQJKL0cO7URffPJd\\/EsTJwShujcK8QWUPy6T7+\\/h+X0sa7lrCPODnXUdSK+GPtl\\/1KGiPkul5AkaULoWP92qBI5tyFDMNgjGtLFcobDbRH+fYiC3mcY2DYHMZGmMXX8ci2cPPJEwziQebFlf2Dq0eh0vdsmLY6YmSTKTKf759fUffkvQa8HbJee7aMG5ARI\\/IVQBnQLmrEOPVzA5h4tVL13JFWJUyDvcBz7YmMkxeusQV7afJmi3fdCAGdi7lUjRJq6cACqRYFEJldUYK8\\/ZdXadl3p70FGTO8fFWUnwDc5w1eqhbyby6KZQUf6U7A4bckKX15GXvahvk1agO+9hr31+Tsi3UdanYEK0ihjmwx3SYjNeNV2IYngQ5sRirQWEjSiuO8hMh4PlGHecpkHinW2jF6LH1vc9xx7Bon2v8yDLxIKPrOJJ2HcmLL\\/8YJyHwH4pISBW2bqYIILB49lxVeXhNl\\/3CMz+PE2SQdhs63CTFQYZhojETA0gvt+l9H+kkxBe5Xa+q\\/i+NJIfaXnXJZho7gitkB1kcs9G5olSFa3s9gjOXdrL6p8OnWMNVbSTim7KlvcVqzQZQ+CuxdkMP9RlWRFq1VQESEHi9FWXUQ8esBVsTg3GjvjO9D82VYJWcyhDbhbG5ifS4X+HNqn2SqUYnanong+mP5p3cj1MSW9PyNFateDt7zZCNUgS98SDVn9m2zEcokpV3MTldLO4KUyIElLn6Wt9Tx5LeoQ1WPPX\\/DzhRtyV5uQqBQuqq6OkCw5DLpIkJH8MboMPeCn+flaCCLjymZkc6N40xnBaMmsa3YS7sqZ5WI5n+4exqWdfXMRhHPRvyJB6FMIGFymvz3wQH\\/H7\\/bh+P4tn5mb\\/eAYpw8EBKFe0HEPKkjaj95s8RH8KwD+7zfXWT5ccY9kQFCM20VccrfHAYRQuTB6CpJGjJRAaG\\/gjJW\\/Fjhw95BAs5ZNyob3DAyFWEvTj9jh+SZ81szFJQWy0syjZ0FAbYDIWHnckgqDeMbjBJTq8\\/n+zvgJ3s4mm5s9zbV5asbKtZW1nZhud1FxxXtrjQ5a6fj\\/YaM4n0YcwEKhkNhMHrJ\\/+RyVDw\\/A4MOToo8P4wTRQx4ciQ5NkoVdlT+jtTh7hDWIyKU4hfWU2Q3cYBxxWcMaR9ofL4J252ItgflNzqvC1fyyjX+\\/bMGsTETYfcckQaxCpUoQHCIzJ2XVcLMc8YZnrdE9wubV498jRzD4KEO\\/H+XMxfZfk4LjlGlTD3uwo\\/C2MMT+fpb2mM\\/2AQKAOZ1MhUTg2x44j0Xx9oUmRl5GjayZEoLjRB6zCLobvysNHOKqxqPqt3lS5whrnhmh+PHajqs8P\\/zdMtYSfVSMmuGMvbbsAW5Yd3tV3XgIuDYiPjoA\\/jZDqopEWyVUI9cX0BSY6kidd5tQxKwHb6mDtGQw+xJxzhkDgfOH3hEadE2apyTx4gW7WzayRwW3+a29bg\\/FBd6oq1mKKSTghRuatGEqtUThB63uSBqR6vGw4ljVwQUNNnDJZnG8FYN8b4+IMyMJ5iNwbHxCLXeGH7M5po5gZ\\/oBINRdHKYb3sfBZANCrK5sMyrfvmlOWleNgTIg3nnXcOZ5FBa+osq07benoz0FBll6pbR3biiIdvdVI7bb71Q1q0308mhbJSfo+zPXvBoNGNX63azRIIh07P+09OkC1CzQZaZgI99XvIQ4jcpkS\\/ZxEZ8\\/N6aQhVEeVd4rHcGtEVYpmNeqHlUOpFmgvLcxqkuDQ+3cTG3CxsXzAEBlEkLT5D2Oltzn+6W7duphrF7nHXiEo7Aw+HYbkb0PcLgW9GFvhHPL1TmHJoXS7qX5t\\/bRfQatOmAOpvIaSyrYMpI21Wl6nE6oAoxVo8LR+DsJaJPnLIAKPY9BNqcK8iiyxM0PdwY4rULT4yDmcttMwlDLV9FLEmCbr+P3aceFX6W23A9qfTtJJqwZKafW7r2JTRQx8v\\/d1ZAWtvNYlrlVlpPT43nloAjRCfgDVVqNPyN+m7E\\/\\/OL5qHOBDpofQUms08vZQv9P7Amiymur8T18rN11JqKUompDjMGV2YZ3dhWW8W3EuLSUaEULfKbMtGAEtLprVu6\\/KWDnBjAQpLWuN8op1TlbUKv8eEGWY50WJoRsNaE6HNXZcyq4uI8e+\\/r4XRx7cGvmbBnplv\\/o\\/3mDJ8jkO7iDwh7zA9XC5wzJiheNyvTbd4e0w47vjzZk5HKmq7oRRx+TKyYLWq2L48SAqADA=\",\"iv\":\"8b2c0d3615c5113170b7914103950c42\",\"s\":\"8e57120b1ae8b20b\"}
\n\n - \ \n \n\n \n\n \n\t \t\n \t \n \t \n \t \n\n - \ \n \n\n
\n\n\n
\n - \
\n
\n Home -\n Browse Torrents -\n Upload Torrent -\n Stat -\n Forum -\n FAQ -\n Login
\n ExtraTorrent.cc is in compliance with copyrights
\n BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
\n Can't load ExtraTorrent? - Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com - - extratorrentlive.com
\n 2006-2016 - ExtraTorrent.cc3\n
\n\n\n
\n\n
\n\n\n\n\n\n\n"} + body: + string: !!binary | + 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 headers: cache-control: ['no-cache, must-revalidate'] - cf-ray: [311ae97b15e41a9f-DUS] + cf-ray: [34d694bc627c1a93-DUS] connection: [keep-alive] - content-type: [text/html] - date: ['Thu, 15 Dec 2016 15:26:06 GMT'] - pragma: [no-cache] + content-encoding: [gzip] + content-length: ['2273'] + content-type: [application/rss+xml; charset=utf-8] + date: ['Mon, 10 Apr 2017 15:01:22 GMT'] server: [cloudflare-nginx] - set-cookie: ['__cfduid=d4024e7898143641717ebe6fe088111571481815566; expires=Fri, - 15-Dec-17 15:26:06 GMT; path=/; domain=.extratorrent.cc; HttpOnly'] vary: [Accept-Encoding] x-powered-by: [PHP/5.3.8] status: {code: 200, message: OK} diff --git a/tests/providers/torrent/extratorrent/extratorrent_daily.yaml b/tests/providers/torrent/extratorrent/extratorrent_daily.yaml index afadaf43dc..3ea7361b3c 100644 --- a/tests/providers/torrent/extratorrent/extratorrent_daily.yaml +++ b/tests/providers/torrent/extratorrent/extratorrent_daily.yaml @@ -5,266 +5,149 @@ interactions: Accept: ['*/*'] Accept-Encoding: ['gzip,deflate'] Connection: [keep-alive] - Cookie: [__cfduid=d4024e7898143641717ebe6fe088111571481815566] - User-Agent: [!!python/unicode 'Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 - Firefox/31.0'] + User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 + (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36'] method: GET - uri: http://extratorrent.cc/view/today/TV.html + uri: http://extra.to/rss.xml?type=today&cid=8 response: - body: {string: "\n\n\n \n \n \n \n \n \n \n \n List of today added TV torrents - - ExtraTorrent.cc The World's Largest BitTorrent System\n \n \n \n\n\n\n\n \n\n\n \n\n\n \n\n\n \n\n
\n - \
\"ExtraTorrent.cc Advanced SearchLogin   |   Register
\n - \
\n
Browse Torrents
|Search Cloud|Site Stats
|Community
|FAQ 
\n
\n \n \n \n - \ \n \n
\n - \
Latest Articles
- \
Most - searched
\"Hot
First Cams
\"View
\"View
\"View
\"View
\"Hot
XVID DIVX
\"View
\"View
\"View
\"View
\"Hot
H264 X264
\"View
\"View
\"View
\"View
\"Hot
Television
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\"View
\n \n
30s
Chat
To add new messages please - Login or Register for FREE
\n\n
\n
\n\n\n\n
\n \n\n \n \n\n \n
\n\n\n\n
{\"ct\":\"fm48SsEHhqhXNanAxWwwbjk70SnA0VUB\\/rRHZk3jh1UGj\\/bC2hbu\\/GJnxrlZSbzVuofzAlbxM1U8zJnrV6QYeQjL4pomhP5wycY2A5jvZb\\/M5OsJoyAlYOtWlP7QADbDj7z6ktd9mMU4Dp1nF53gTkoGnNXBjEUrmFAU83zZYf\\/Hz6j6tkHzAom4n7i7CWqM6u18z9l5ifypckPVod2fiL1FizF391iQ7dwjy59tebak+\\/bcVBEjlG3ltyMgmrSHOAsSOTpHrDUvLXu2SrqfiPfR6OQdJd9DYR4v+AbXrO5znEL\\/GWctAU3MmAlN3tXySqTMD\\/QwUBu+V8AmIscAGQLecAz1UUOYXaO7PM9MIx+trYHZnnpPf73GOgfFVSB7mtIu5OGZeBoLtnwZzYTBAIfCQZ521h\\/AkJnoNVKrl7OICNgTshQQd4dkXIodZ1oJ4IVCuu2KfKMIkS01Tp2TqWjY26LLYSnjP+xUJEwaWES+10iSarCooW167pAHabq2jgidlro7HLpNcfRIjbp248P+HOuHXm5hTNMykp1OkIN3SXUGlH2FdIWwjmZGqGBBlJmqZAbQ1NkAzsPznAAwrLPmds5lu6ub+LRjYKIFRcFKRdhUSMOsWGfIFdrt184uxKywD4piBv3WKtmqTNfpNnN38DZFgm07X9ExLkHHu5G1yCJ+5OtUaYlDkzszlJMGmH8+Fd77QGrInWtB2vtenrGUQmP1+OC7FqlULjcGRfFTWZStV15v2nHyYJ4K7xuO7MCURgJ4fL\\/tyivx\\/uUZxivfOfqmB7\\/p+\\/EljRnikyqtTWqyURQC5bZUiNlSkd57Q4IORe4DWLEmUo\\/Bg3Z2GsaLYDKRSpcFcBZTAFW6MCmwNYxPci0zb0PNpksL+dolnDK17HuMSi+elMeg54F6vxroLCx0\\/B7BhssASyoytyYaVLKNajLb+T5hkLLbqsfKV8S1iwBmoB3VoMKTLSexjEZmx9b1WzbbhkEY3OCFU4XDKkbIa7dh\\/AoS2TZ6d08RgPh6vBmlyRkmWSpqoZ1a+U\\/IcSYM2BugBdR+79baw5F+q7+lETeEPB\\/LT+jTfYwUSzL1PnVJN8laf03LJJizA5b1x2ErqfwejrXLrQwQamFQra8O8L2PsAs6rXjJ6ZlY8upRlB7w26C8aNLbfqw7woStoREtbyODIMR\\/lwi3KIDg7IkwkgtWa9gRrBN6on1NxLxKiNKdaokBvao438HFOMvnxf48casqDUZF34BLxJYDHgrG9RebXyDRc4DWJQZC1kTR7eLhOxcp\\/yQPDYYhJGKARtITprOvIO8iaLNZfk8DZQtdjvRw3gfrzifeekP\\/3Orrq0T9hfTqBbbCY+BtLQmPAvAeR2+Wfrr21vJM2De2pUgVY7OWon7SSutXyvi9arfeiUKwJqS\\/R6E7Y4FMjuJhAtB+MyWUhL5csAIFWY94o0rAkZ+sfZQSk9nc67QJBKIAkZvt6FUKnuhk6J2l6s5NiUZKFFt2\\/A839g\\/st0BQk0yLzs4dSCbTVT1zA52wUGrgDG1CuGfKRCsN\\/LAoC\\/Wr5sOljemZQ36JWkLlQ6JKUlrPw3egqP6D2x000iiNYcu70x5IyDwG+Qo6KA0U0bnGLDN3lvaE+gQZ3ArjfZvZt3oxcV01CDVINmUh6c2TS3tXdgQ1pl3Ap0hNtMIOvCKGSUCCFyqOCzvT8K53JsDI0pkGf\\/zQzLPFW9P5bXlFZYSfU1Pe0EDRCq0980+iGr8F414SCzRw6pI1Sub3FdCsSldEHOjqfkpOe3jWDtTuhpaUYyUoaEp5A4QyAR8MjO0X41zEEtqbBS99\\/xcso2VFggi2QNR\\/8YpaokzQ25jkhJzwmsAgpz4pTOYr5aXf+Kuq4F5bg9nmY1ierRpz1Vku+1GeybirYogkWpGoHRbu08uBPeoLT8sYV29w\\/TsFcj4NO30Sin5ypp4+DM3zgHBrexbNbbqkd92eQqDOEwATyUfp3hFjLqo8n6aumMrusEZ7Db3myg7ioTzp8ACRLpi6uIuwQMMjZ25LVGOXUjpmtJGsQQ79dMKPDm11NTR1ufGTR08K+yBZ2XfbhHiQq3MJ6a6LxhQv81OMH\\/FDX3e7za7pDeQz8QB\\/QWtTsdZrgkqfCuzRGJyfbwu5JfU9Y0sIvd+JVI4DOh0VOp8j7wu4seW69o0\\/G4TFKutASW\\/nJC2IxXSYmBKhMHebuVC\\/wkSfgm7xsMLUkqq1jNm3bQWOtwDjFKa7JsaU3tzD7Cu\\/vzPgW\\/cQuOrYG5bEsrBDtpYbuAir5ZAOo3lmNeR5auupfMdEehOYK3D2Kz39GMcrnYJl2u9NS6veaoSVRellQUf1BVTeFbdyLW5Y++432nhU4yP78y7pxa0aoZwvWzUwyKlgUt+uPWlCPyblDWaoP0x5hoYJPOpg+x8N3BFcxRGpescM+70Yy1vUQcDtFUppE\\/m3+4AMzHxaGiPYR05qgvvUhEcIEe09Arukazhdx5j3BA0ETsL8LGHkBJZqleZGDE+diDKLINKQNKypFSfTPaxmgX\\/rNi8CsRbsqRQr99vhQkS4KSZDp2ml3nZm73tdWbWDCH5R8GF7ly3Sv+AmUOaqdMuovxthsKGJgmC30yP1AWjQ1+A1UpkEWsGmxoHOZUX0ESCSNNjfbyVE+os+6ibgZLOhPb5kwWazyDa+NyA1GGQnApRKV1vUwTq4k6HKlP+tW1wc8OLwOKhvlO3O7tG1uTMerPCMoVY+TMfsHen404wwoH9mk8nMuY6JsS5RQhH3FNTe1jcfkMCxmDcgo4i88bR2dE14gLwnnU7SZxXr3rpyOuPwp4vhesGecs8U3AoQb8htNoZdoi1Q+HMzXacm1+0vau5AICkvrcz\\/wEK37abXkGkPnEoBKpjpqvmxmTWOts1nsxqRxm0TUnlJuqOTzp1ZYRSbf9hOXHdxwTY8MjU6RYmsTp+GjFs4FxLCtrZ0vy7J+X2exCbutUUnt\\/CgQ5w9PbS8phUboLMBxWBvMLSdO8c8EZzoQj\\/oEDGHnG4bx7VYwEdRXFTaXxryBXZTykhA9q8aaG\\/dn+z5rjdkziwG0f887\\/qlBoRIc97xHGIyKjs2ndqkJ8CmQyZbFAkJgpMxsikKEaTV8cOHfnjtpGFvVqBjjjPeA2oAXL\\/kGUcPUfKT3A+vcdPClhIsWmjVLsiwwcPcGZiut2vpqgnokJkXonkkjlMtZgmQVxXJ0Mfr1dO0sKk9EsrqTiSwzzB7kyFir9\\/EFJBL0jRaTchZCbnm33rx5dfnLajNWFYnu+Mn1AAnXh49DpSVXY\\/NKifo1JTvgWpRKvkkEUsnWutDGhDvDUoGC90vDGoCvi8qBVTtyQ0T777EKEUPbV5r2zL\\/vvmskXAgcD\\/nCvDuiCV0vx2CBMrFGg67WHRKj4UGGwO4i42qBvfk+wfSi1JGkwAujvfyJcyyZxQnMDYjVibuhgx4gF4d880DTjiaIHJYw\\/zCRvzLYuHPYo8DlQTFuSK\\/KRWenTqJ3xPiX5kVbAtRsKMKbCtRdo+MX0qFutEvAaen6IR5rgmJr0kVoHaA2DWvlvR6VzZxibjVbyP\\/5EmaWU48C+hnyNzQe3Ve6OO0zg5QCy9FoaZgBEzlYAkY3\\/iuirp2p85TD4\\/W\\/AL66j0C9agujGXaxm7NRhiqiD5g8PSYItBhZLlgvS8TH87OyxGRc3FAEjvVsbS8+cxe+D+llNipc\\/WGWCCVbw+XQp82RDSLQvQxxiMsMg8iUkY998ji7aOrRCQ42bNv45XRoyGgO7bP0xvi\\/h8eTw8SPHQl4cdYTcXiIop1ZnA3RyUKcu3xHfmm0PGoO95gwJAOkQA1JY0BBwDW1hddcetGluALyVWb20jnXjK0RT6T8j2YmbZ4LJfTn4GEyexXhflniIX\\/nqZqBl4yPiEQJ9TTqbJcMkUGvVq7PFM9u55I+zTv5kcBfh6Iv+L4BewXTiJiM8nDM39hDwf\\/znOA6dtX+TKQ9STcV4ExsquNddSnwCZZNavFWZoAJZRy2lPSrVSLm6cZrCrJ7oEGlRTk2mmk6fSME+yhmAdWqPi522A8bPFD7s6ef7ZePh4azDfOIRf+90t1FkFgZhOwLmTFiBY5p0WMcMKFxr7J1VpXpWVa3Lmy8yJc+esbf9kkaIZ9YdRcfAj76AoQpmudPD6MBXeSKJqVKbqgo\\/DIpP3QzFuSJQyT8n9fYSe\\/RP5GtXtgLEv7j4NNp\\/GGk6VQgdxvh7xrqZs0ERUaFXTpjvKUtqDVtgHmZULAbwXfogtAMMrVEHd7w3kkXBBOoLCVkY3jF4WifN7D4NFL7dAd5EebJ+iLXnNxOPtXUERRwNn8yuPSXYajF+v2EzTzxVkaMxJCK3VquvZLPshtFKO1YMlz6vwQFJZPEQr7RNroAfJRxbrMqGq2+1mhm4qJchXRPH8WCc\\/Bh8e477KqS0ikamUzdWATJUe1hBR\\/VgGmE617TGcg8Dd2DlRiEKlCN6HQftOCyF0yFNl79t5X53J3AOUYyAcOLJj5TlCAIMVt93NF27PPk5oPyOsNfwG8I6mLB3pXNbIV3yMlZhunfmySFvsEIAfjNCbPvNay8+kB\\/6vfyT38btbzeUiL5zFsyYzaZG1kCkXyUJgT2qhjV+WxsmKWdf793PV48l0Kz7NpgbojkgARJEtQT93lrpITRuFsOH3ACVfdd56v5QyI6MpNhXD\\/Mm7i7pVA2NfufskKfqqxD6YZnlLs6cYo9RnGDaMjInc2l6\\/CnQgztWz\\/19+JfidXqB1YGEPliiigdTfFpsYKR9rvKi6KEeRU23ZjXw5\\/h51qq6JKtQRsq6jMpVHQNm1AFy05HiHYnSmBOJLstmQ3Yx9YGhRDlDN0gItoKVSj+x0QS5EuamGYR2jDyRaE2CzIL+4WBz+9huLQuoMETcEIGacNfu6EWTqzfzziMUrLkFZbdkhr4s40Um3KVBiYPDJQzN8llL+hT2F208E+Ke\\/9h6AIB7L4BK4KWq0tO9iIiKkQWN3dCDhQVKcUGjbCWpTlg922sgup3uo6hI+lPQKY5tPVlvzhR0GZRZXWFHHre4omUEvy7WoHxlWxoU5z5ppSayZMFnOj+UmeGlHh3XWb02+aRzNOPve5Ghy7bdcaYx430Z3FXW3aGxPvKdFjHn5YK\\/zQg2w55U3zfxPwSrl+aeUAznc5cGfrx4L\\/aiQtku20SdwXT6yTob05yTNGgMsao4BLB\\/S0P4IdKojXj4Vjzqhz5JGt519P1y5gAJzf5GgGcHdI99JeDT\\/aQH002xo80GUTcDqqaGVU6zKexAeWUvmrNcbr+KNBoT3+3xmi+cLu6q31vnQQRz52vnKGbqFd014uoxufPn9iKH2tGI9Dn\\/aCqsBGbBoQeDJ9uwIi2IOHNzkEFriDhCcusRpNJcfM3GFpykub3b2xG9uZiRJD7XUGvoeOzKWgohU59K8FSKmUhkJHF2nZi1C2I0Ukv1ZQsmbyDYfQpMyfEmYXU+Ke2FPHTphXrMVXmdBmPPwC05tXljbC+vQ7Yu0opbmU9Y0fju6x\\/qqulY2chnyEvH4ChjOHQHsXzd9vdSp7Sp15jebK9zrBbWvL1aCVa8AlFrKf0bxoYratviAuxxW4E8jz\\/E0vXMdyVUY39Ym8LkHwD1sI7\\/3ImW8tg4qjEjL+Q13JB8L5DSeEbUK36W4Oq5pPTU0UQvmxYvPivh4pga6Ync\\/S9gFYIm5h0NmPP7HlErwEUbu2iF\\/JTmJf4+r1VES4xOUH7DVZoVbqR9IGtlokeKtCirWRVKA8bsfyIDI1eFO6uv9IwNMN8VXLhCUhTyf5LZKr8Uqs0WhD6kiohb4TArnOqDU9RApcVcKlycU\\/pCSvNg6MmmYvd\\/RT71EzoYYACtg0XQNuTGdPa2fyjvrDXHlbBWzEcK2mN4\\/lvv4E7Ed9Ymr+hkU6UDu1ZmBt0sTi7KlVwToILKu8JSdf4g\\/NdGgvMdkT0Q+0ZFfLo1COBraNSZ\\/POj3\\/P7Qa12l9\\/KUNrNAb9NRDHQIcruxm5friiDpNB0WQwf3EowLvhqrkIGOGWEOVxazuQ7MGGTyTqeLKRQTBVFjgu2QncYztGrkrYE6+Tfcuztb6vlN34BEiqtpkGDyMtrUtJ1WRsRmok5SUpvaQnFRdK4mX12eOdlzV4zicxbbdDr69Sl9uDBKUpLBSVCsP5EOyd2GWraIdwPCvlsvP6A\\/mW\\/lhjFGIbmEkgpWcJUcvAfkkV5RkM5dSNQG9DelA6jRIPjUOuTzu42b+4o99ak6FOPONkU9o\\/+4rt+uGyJWNW6+TQWqdxhLsf7MtRHUE\\/jqEx2m2XPPq1uscHJeVdcwu9F7Liv\\/DT7\\/\\/NEVN1G4twhhD2FcHuCs1+vBPc369TIJOFMUaiAXlz6UPVLwM3d1yPH4bnYPZa76oEKHJprXfVWZ\\/mRWR+nYx7qPNxi7nYedWHGOPzFmpcFTwuI3N9imt3hRUvSZsF9RperchR6LOcbUTswW\\/+6OeIDUNFAtUV457kFNIo4TY1OCphzjFrDJJ0vLBVG7jw5GeTajP0n6VmA88kCUPPLHTl23C31L6fj6YPY528VZY2vq4htxNzC+2ZxoyCkERHg4V04quFhxsvCi\\/7oHCYZIP51PKx5w7Dftlx9W5eZ1R5Ja7dwaJ\\/KRsTd9njGvQ5AVubyA1pvPrdLQbl8vqdYF1LfNP\\/Dk9zHbjnSVDyjoRPJNssaT\\/pFiCOEVnEPB1tzCRVGswEHghQ45PSg+Yzs82aRYdYT\\/abaAhSiTYEIhdw2vj8SkhBaNKKLrnrp3fg4H3MBGZfCitLaC+X1R+ABj9gZ7XnBkC3zPNUVfbgejV1KBweTYG2XlHu2Mrf0s78jCkPkmKm83GFJvHKLZvzcIOn1zuldKNx\\/oa8PPeZmz+pdpAv6B0bqSrkizkNXGqfdPUW6E\\/MpG+mxIqFQwguIvQ9Yitb3472oj206WZ5EiSYyicYZusTGnH1d4hQhUtu7uatsg75HSzCfYz5nn5tm7X9AK01WyBil5KaG7gumGRCFoVtP3jvztAuZXW1OciH+5TSmbjUNdHXp\\/IZhb+FIvdHcoHVPusowCFmOql\\/7zU4tUHPtBMQJDrSzokhOMcINDVxQTEhw93cXTRPJsVj4Ck8kRiQvMcxEHtAgo16tZ0kZad2nQizbjHCb97zgN5pD8pDm+KC8TgAyYZvr0EwbgwPCw2oCDAp5sLJjzdTJEPGqkmQIApEmlSXKavs73VyjYrMdaUboiFrcBwGP3o2KSqrk9+dH1g6x0G7KhBEDDePaJorEngKH\\/62LgerYanZFPN990tRjwwvt5dCywIiT\\/fGLKxgH+eQ\\/rCbLhbAsw5KfVUWsRgEQHUa3RMXCLDqQ5p8ZWKAegKCnH9JfGnR+AVdVWk+pcHnSZRXntLie\\/6RCZV\\/I8j3QS0ciV7TKqaFLKU2CfLr2Pz7M6NZMz6gkpth+l\\/ZeHINw\\/G2c8BXG\\/95eRIJlvWbAvvedceqzZABh9RGVUBPGcdP9pmn+gdCotKr0Gqig6xFadze1ft3owbd9quHxGDcmbZTR5wbMP5mhq2enLxEhRrHeehlAQnQiLZutEr2a+mkEDLHCvJ5Lz\\/zqbnbyK2ETNnDKT9pZ7LGFpw5PiyIbhJWi0G4gSUUbQe++qM5wVYIIGFWyf7cp4pwoCP7Cis+KpnjQ+y4V2EMjfG\\/PlnUVKFiKl3csSqrGQzJfqXJB42IDEDzivplarPTvzYWr4jumWq5ow4rtImowieXtEhVlvrBCZZL8KsyNngoeZ\\/klO6Y62oL9IjYyHd81AkPEE4CU7UF9Uv7EqaF2m9UMJfaGjj5L1+W+USko0L3Ouex1lIN+TIE9p4JoioB8Q3vEJlMCjKWIDgX1jZZU+EjQbqYHC3BaUfPrtKDB8kx2mckrmg\\/abL99D\\/kHBD45fQnO4C6u8smHceyrExAIcZi0E98swiIJcfXUUCCvRqTvjpE5utRLEKjtBLbd52KjThPTjd2N8JFavALi0vxaigdte9HO1krxsi5p2gfEVfhwCT62thW64K4A4YbODqUgawJLkpeDNCfz2X3o0WeIYbawAPnshJ+6+eQXvuidkgF1j40uudU3mG8Ill1hxL13SyWcDCRI3bP9rrsdew99PeiobeKfi7onbsatOdejZGiarfszXC5EM1HG3GFjLCr73tKSxug0g\\/Qej5q9liFWA+U0Bi3Kf0UrMS0m7TFYRtMRWn1GLpDjf+DybH0Dz9iLoaKz+u2JLfB7oxMQlOKPiCmdSa962kQSjQMOma4GRVv0GnCDxsAuf83VVG+sqg1ABNvMpk6eY9MNKDK7B2BTAOwDualldpRzmSK93Jo3fSfxmaYKYA6o6Mzi0iavK4fJhH1in0uQBNzbQ+JhygS8hoiw5bpgPIrBFZs3pSN2imPRpjCXZEXVtk+Q19uJULbskvjynUxFl2aSqUn23uPHI5469hMxrePVKFfNN\\/mf7ojWKsfPhcB0sBUYxJVSwJojtM06yTqYdVabjQ9Upiwmxfuf8itj8RkGj9xnGfnjp\\/MZLqt1fcjcanTmEuUEbgy5Oo36HMo4lremVZigRI6y1ECz+IWuJel2TrF\\/UQiRiNAgktgfyT+HI4iaHxhm3pffAtFm5r6PPXVTi2pBuBkQe29r52Oxl6QdTrSAE7OdqKEdtQDTGO42zIywaWw45IOmzLh2d\\/AWIVqLThcKA0v1mNlKLdVhWS9L60lcEIjBAy\\/KKINp489h78CmvsCkhITKf7UsaOOgtMhPGkk6sqV8BTwfMR8n5kVRfTz+df\\/gftGmww2LW87lCmQuBfRQ2fx\\/jyZeir63mVSBvfNAJBp3UeT\\/1+je9aGo+cndsx5G9AVBLBtCi6LUHAO5lj6JAAiavMCt1\\/sCXIJz0WMGzBfYQ0eHUU6zjHwiNCQ4xz7ZnwFaIGj1g1H7ejmgGFFXbFc4U4qj2aBeNMMbHuRAkMoj696tLkkKkhQaC6DZIVxQCrnlpFnUFmtRsJvKOEOeEnc3dLEVcA8lpRXkA6U\\/3aPXFdBC7M1KV86gbpr5OWdCmNfscM3T7b1ttvS0aGlSkxYaRLvtn7aIS4x927Ew\\/qp+k8nBsIU3Zkv3pD39RDnPGtlhLx3ActojgoQPgnNF7LvRGx3W9WwAM0VkmLjAnksBQwgQ8PgI2rSexeog5BXbbLXckVSN6pFF6iiPi10X28NJrbkmwX6SfVdAiQY823jFoVdCC8QyEz\\/EPe0NXHjRyGQELlouTHax5XXiKez+5PrRuCE\\/hpr2jkmWQe\\/zTkekT+FSlTCmvBQ1CQWHydU2JtAymT\\/5FeBc9BVYDSCIKJzwfns\\/o4jTlNtgNPgXAFxmxL2ADJgL62J7gUXu969G6o\\/OxGq5g\\/huilXFOi5RnKZgPuAz7f4F1zReAqPY7FWqH+rJpX036+QZ3dKk1hME0u+\\/GWjhedmwoCzB88zKboKYu8Y2Jk09nr22a33a6MNfiW4h\\/HlegK4Kz0urH+VCS9SFehCR9URG+POxqRplK0pAu4kXVOzl9hJwEZRqMFIaPaTU\\/syjaOYKYPQH\\/J9Jtdp28ryl\\/eGg4dTBR+XOppOS0aYl4pYicMrzLZi7MfYyQfecZfn33vnINeKiBpU4MREWr1zly7CjVQfm3VzLimsYmAI4t2ehl9abvNSeLf8\\/l1+k9kMNmDppVfdCDJ5X+3vchgKYBlhD64O+uABNkdduUYJynawTXs5Y5OZhb252Fq5O\\/FmqDNBq\\/+C3TtwWrjoLg7dElRJ4fMEqPo0LXC+5A2d4F9bnWoOaUrSb6o7TrWkYJoNAc0X1LI1i2+gTBy8bFEwuR3rLZhYh8dZjiqyNowe1Os6TvzV+sI3+VtHonB6ELFEbErDsi55i\\/FSm4Ih8wcpeIdy+rbOEHBcRoC+6zl625LG4x5YRtinqsU5ZpzjGBmLzRGdDbgXmcXe\\/xdTWjd1iNIrhkbnH9vd8prla5ovRwQg4VLgTW+ycf8GtTI1P7WybB4TyWFQ1Wej8peV+3JxYrT7ZY8f+gwe0rmde0U12WM2Voj5WmuXbAY9tTgNi11KhJgJdqGqN5m9BITHr+koFxrzPRSLwICYWoT+a9ZjZ9Hp+xnRXlertCkyN79UsPBFWbvFN1mtTwTmMYtZzgmrB2OtD8tyA2Z+uOChCeeqvE2kw9GxXOArvTS6sYjvQyS2ULyOix5Pwrecn5vURzhNtDKRb5JKHTmRJn+d22G2+QaaavexNij7I7J7wfOIl3qQIRjfOU6rNsxWjeaeSHQjpWHBZbeChjc0t6XiqIz60J1JVEa4nXXKQ7bztYBLwocTbybdWhZDz9eENdK1TWgxhiCqgOcN+DviTs0TqGu7mLhRFgcXzPB+F19ctPGinLGwYPqp1dQKI1lfe7YJO9WW86CnkFFdrKBYc1sEDJzcQ7uL7GhZmd+qeUJjVUrji4MIIiaF623PWWzwUWepAwFYYW5KpGf9+GBQmR\\/8BQtnpMlYthccIfK2jqLNyXzq7sVD1uQFRIfh9+nObuN\\/1XlEO9DJZceR7GdRFc5c+MJklgdf2Svc5INZt2CwMivNpsD8w1ihwRY8vYMQoaQ+9t6tlXvUIozz\\/ox0PHlTAu8t\\/tL68FaMzU+MVc8lQ9W5mVEQOEmxFEeKol1QwY7D2xze\\/8Ge0k8sCcWJGZGw0pqQiH5p4xu3mlelkX0DLGh6tLGyZHJqARCUqfkulSZV3KFbAsjtFGdB0unhgexOm3bkHpxF94EFKEnqk\\/mX16IXTOEVS1PqOtm1sjY8iWQ7I20sIlm35Z58wwyWEYIVyVQPbee6tQZrR7A31s3rbOZu4GQk0sxC1\\/NxSuqZECi2v3UssyNcVyxLQorVOPdFVihVEF9TYqqWbwd67beiCHJfHtB6IrF8oYlFsFfJhsHFMZIzO1+nOU04HImLMhwp1asM9zMXf6+8kqgQZFmehj9rXsZOYHk9X+02QWNRSMNuvXQJgupk9IDrUpIGXl2e13nglx8A9ve5nzNNnoPEcQK5HV+4sGIPAjSItNuTLAmlSfe7duLKdrVL4p1xJVrx4lgh6PX+ZMIPjwvWhrKi9isSWYLos3Kg94tY+9mlD9xeG2bmPXHDKCO7wvPkuQ16D1jPWnzJ69AMv1LilD9z7B8HJykMOUHlUS5EtKF\\/yES6XwcEaGwRS84AcmFitBXtaVsSDA85zxuhcE1qkYWJxm\\/BqZgnlfE8lXnEXgxsMr15bpSwReyOhtOyYbsN4Zjdb1g5yULh2MW5XSKBzTtKQ8R17+0htGrdxeRWZHPw0GFryUihdXHpkECCryyLEtKOiArpo8ENtCi9Wauf5wz1osnFqmya3WPIuPqj8UU5llm1XnEGtObKrKRPbM4W0QuyCstyATkr56wAFjNAyPKL2cbvcYtn9AAhIdn1McA0MHH6Z9j1tvzqiT+e5Fz1tAiEBv\\/sjCFOth7fpiDZpNXSZ0wHnmhRwCOb+9m2nTa1ufEz4FPCjzjRf4PuffICTuQyKctot2EC9ms+OtTdiGyFzcU69vza0Wx8Q3FdG9qpSAQdM1dS4M4tTJYdgeLCq+lS+RKiHXJ8e3qV7dm0xxr0LMfzgLFuMTPuQ+Q44WTDIV5ysZ1JKlYJw3+F1ofMkygltZfE+9LLEzOlkuV7p2kLteGDogVSjJwp7nNXsO9uNojYF5F8MJAAy3S0GMUm7OPyPvydTzPnkMAPj1De1UaBGXXzRO3fHkxgrpaDDUEQK66MO7udXuSvXjXEP3+miHzw7H2KIMOoTtqmXkRBu8wqqErlUuvhXvaEe2qGjgWwy4EF0ZMd6NE3QUIw24v2fDwCdB2Ytyy\\/GhacYc9zsEMB7qjoh9qoqDIL2ENPRB0cg4VLMGjmGhuUn4N\\/UmvjC8tkgxRwRxU1TgxMz8TXmZAj5Fg0nL4yUMwLYQvV2E3YyMWSCRcf+O5I1ZMuttV+lL1e0KGKkmjNgeN+e2OkF9fby4twQoq9tbZts\\/icBphPDG7TzhafmI9UmWXHatPfWaiWEi0NfyDrFjLXswPJhIBUzfVD+71lhNJDkzOW9GAp6DK+3gh1WH\\/47aQMPmKkjtp8+z5BBUh+B4osbHRrS1w7t1ZBk9IIIl9jNUIXelXbP7qfHudsMG1G\\/zxfXwJDn3khqS5Tt\\/a2vaQzv+OTeQgI1LrVsT2ubVj+Ckq0AHUrV30\\/XWei2Sh0bEdhg+YSgFWSnWau2w\\/vZKefTEZIOtUKvOpOqaubu7hZMndNrhqIyK1DSqYNiOpDD2fEtlMe3pCan4pYnhxpBSv1NLq4Fu2lUw8f1a7zl73cMWv8+CSl1P7WVqKJ0fwvtGue7+qP7DPqy+pePQ0zBaVtwNQ9gXU1kk55Sa+sq93ImU\\/AwRNq2m0UzyIEdsRFOWlICrYk7KTpplSZpywr9KL5VQPcEkp1ECjV3P6TftecAyYOCBbJtQnR76VMBIXy8uuuwejAXh3640DZscl0rvJ9NLKsKNIf1MloUZjaFu2qDiXmt1TyB9Klxqi56lau9CS+FA6oik5A5s23N+v8oP\\/wM9n72yCDTVV3TtJ+LHoChX8fUIykhSnmLHJQAi7UoG2Gz4O8RUgKf4YN6wKo0VFDM7oXgTlzCAUWSvzYsOyVBaepOT+LwRLiKVT\\/iajhTrn0YxIM3EgaTxG9d6q80auhR\\/bvkq5Rss2ykSQ65LgJtIEmUF1Hr1ToWY4o2FLwIlaUp+pUXY\\/jSDwe78w+EnV6NPw7eL1xVpzUjmR8vpQ\\/VoFejNVsIYqx5bNEA+NtiDhT78Kq8y\\/TJV4djP18\\/9OVsOmtcIjN2DrqNDjqC4OPB6fniH9sKJs35hKdltm8XuXCUJbQ9F3hLj0OP87W\\/KvhYk2XlikUJsciDN\\/25vXNkywug4u7YSNb\\/IH4kKw9ojq5Q4gblm0udusu2rjn3+3pTg1w3442phaIszNB2h8nohPIz54e4wEN9dvq5gZypSI2UUmUjYREy1EqKw0n5TlxwkiMlWr0yhjwzulIxuMJ+j9buetFmD21IXJcBoPP+RRNLoIpxfWYcSNZKnT\\/iR5YMdDUM6rMHmnIpS4KBiErjIaLTlJIZR+L5eBD\\/EX2mZgB+4v19MZ4qr2asCOr4zdnyaurhZwVIb8AHePMq6iMzMSG3WUZYADseO9MvDJRxgRJQFpkSvUgFhGK8l6l3r7S3enL9Rpy\\/ooSBMJWkRtIF4Zf\\/Lq9a2MWNfihfDbyMwq2PrhH5QNvqyGK1eMXcHKZIiICdp2vtlWEEDC\\/6mn3c0a69aekof8PyNtI\\/zhH91TDscQZzNb9Fe3QKXkzN1PY6CIlv5PxdjodtqqPYJRGtecD1XQkB7acCUvXw8WagnoMJXDz9h3GsDHKAgeIibSgpwwc0xUGtUwfGRvmVmrqwWt\\/Df57GIqQQzef9xrWMx+QHnMbM6Wrk0Boa1POXp6T8UgrXlB9KWKvOk0EGMv4B3ohz7GZzYqyUGqWL0teAMahYD0Y5KeTsJsf0Rq6jKANjzA3ZoKgx5aYQmvzOkbCLNqLwT30uF1p9dyPjl+qc2Ndl8E9KWzBMIyZI3HJLE1m29NnosTKEsgjzNn9AXVQliSqb2ojiVS1vrglmfpyKrPdwaMrR83pP6Tlz7YF1kYF\\/lraEMqJmQn5yP34FSIb9x+X7R4KHNyjSFYBMp\\/troVpYc8ZWREBJApuqNck0zVyGCJpEqKW26mdPJexwoc1ECPU7CLqk9ctoisaWavXXboeBZjwvtsV5YRKA\\/aZ5XVz+GA5Edc27ryhgfNqIju50xuEUFo1OgYQKnFOx8+M\\/MB2e2k+cDrkIjUWG7NHzSXG5oN+H9oau00C84HC8WMmSdybb9sg813CbgNoQVG\\/97quIlyB93lD+JlE5+UQeoovLmDZfVrlcaK+l3G9zvMnKxWhJJC0YN5xaaUF1k03M4POlWOHP6IhVE6NmFaheIUKhqKki0+bUO12L6hA455x\\/bjJsTiLDcKETfmwvaE3ReweyKJ\\/xr0cCEXI\\/WMAtEAveycrsDqzG6zLj1LUEOY9Q+facf0ZVxJtSE1t2alsqNIR12YEAaO5QrcMGeHuqFjaCun\\/KxH3Axyze93ihc4EPLvPbX14HovbgjBx2olVdtg86IbHMhcexX8bM7mjb2NMTIJUCeeTGZQqvnlcPRp5WBQK7JIptxRzlq\\/0vB\\/1WxAxXhFN+WqH0U+x23MIFwol8GO9\\/+xViY4GHjfzr5tMEBGRFI2G7NqPk6C2aDeSmlOsl11A2xmJGMY3088DUF1pDMUJpAai+U7vt0vX59jl4ODdlkJi73dqwnKE\\/ycRxgx65LZ\\/9Wc+MJ8syMRraUFqkLH8pIr0ZD7unXzBU0ZH0LS+5xOqVuxlvNlRGj+yKha\\/1XeFmz5\\/QbnVg23o6u9uCcQ1HJUiHlMVTgfE0GMu8AaQz5FMnavNRYkRlNWS7c4j+kgzh6\\/bOPE4aQbAAS95NnP4otMg+u4r+HcZg54yEW1\\/7JFOOltntMSAsY7Mgx3VkC07uk149Sb7YXjeX6cuoSiYrlQC2\\/0Rbj9beb3Gm9V3\\/0omzcR7J5OIYg3BD8adezP6kgp5nYh3aI9+ahqxs6I84DXs2KUZVD0XQfbsCwMDiZdIa0Rdw4bA9xLA+2wU527fwjdS4MstANloklX75vwYSElXr93MdFQp0TL3NoeD+VWBtxqyrLAe1XYRPzOq4hgXmuaau1EUOYjMSCrRcFXaOqudj7rc\\/8p+5PQebzEwfpsjF8npM8mZWl4csULnGe\\/cIDSQMfFKwHWn71NKjCUqVnIws+pu8ZKytKRWZA489312vL5s9xiWGAbJeRWgCzfTywwroglyd\\/0PrLMmNBXYpH3CNbvuWjlrfKFnMN45TdOhp3cIzpmkNos0p5hIMjejwuib5eq\\/FhrNySNyvLQgqkbc8bThxCW7+wPgq9HAPm5L1o+paDRyTB45c92lOEp9foiZU+rbgPlCHEjxaKSBIN\\/miJpo9IiUHIOrYPXZhNYSt8rnXbtdOFDb8yr0AoWw2Vnet2xqvUgwZz6gLqm4D16jZwQ1nNx\\/sZCKrTeoy1s8RsMuxeXT5IPHlftvDJP4vXa5XG+QqMiQoOyK\\/Ar262bjZNsDDwryOUERkJi40HgOSCqJ5hCAzY3LvLCKfMsILOKupWIOZObOl5P+hgkJdKyvWUxkWx3sbYq98r+369AOt\\/a0Mtumta8Og+XjIe0WztS3Ikts1saYyfuCrZwjqCgbuB\\/F2egbNle\\/s4ObygorWqDyLk6WEcF8bDbbK+eRz1g1gXTjbYarcq97kyuRDBQt\\/oqU57K+b+jwxpdYrY+60qFOQIFPtJWbEImtULzvaQ656OrDqMRiyFYvXGjG8aJw9w9SLWTORImFxtBuXdQ33175kHXR+KeMRMKML2zf84QEhC1eIUKoq6\\/x5T0xHEB0S\\/4K8YXEUL9BwZOTtY8NyXLdXk2V\\/zsTe+WmfZmq2r4DhPG+\\/YYs+Coerdb+wlCICJrNzEV2bJdVONDMjOHohJxPd1tgZa9rimQr7nIteWT6Eg2dWRKrxvbEl+wReV7RxBdSl\\/ZSU\\/aTZDTsG0Ed+UgMuet391I1OXOnMp6cxcOxb3wgLAwsTA\\/T4bEjx\\/M\\/Fcbeqq\\/82KtriQ70WH82UboYilMVUGPpsVEnxnnPI6o1jOP1lXBB5COAt70zjwvj7UHw33lIpPjinXnYZB742SXTuOW16s56LMlUQHmcXwVfwR3+jPDtP2nxY\\/3JZO4uckFmiZtKQWt0oFoa3NXWXEoT6wAsfXBMBrIuxw1T1Dd6HAaPUR5ZiZhZWlp3kHFVhpaA2mum4avCcDcydsLXI0quw9c458l7YOsBtIINwX7hoNIAyu\\/DxRDQEQwiKXvanM0aAa6YG7N4nZNb1cmhiy3hLRnb5SVZRQJxe61ewO\\/\\/rQkGIWwXmIL21mI7ds8WvJwuOzzzuJe8GijMSRJSli9H+ZydS7Ve7RYrPZUHCFMZQs9MdVIqUzla8eYnbK4TiOBNJK4cPHOJgGt6cKfb3l96VjoWoaXqYG6U49dNUbkEDUBvK40B2KToiZJjdcK3\\/OffSPq6I16iZ8Oc8df0OQSfwByxFygIzcXmEsct2pdkW4\\/znD5LwAge8C49td8Z3wzYlMxrvYYQpPlcpaVhElJ5u\\/PPX5ks1Z6vhQX3c56Hc+uRQ7sR0PMIVIZnP5C4srqEyCytmSRyAywZNvy+ZWRbg8JTAuazG7C9CmuiLqykR8VPayyorOm\\/ei9CiZHq\\/rDgHhDszh52uQmapEya1kdT8VAl2hMmIO27+Afc2lNYaIK5tZSbN0uhQ7zKepsd0sM7IuALnLz+ze1ww3eo6J+UmMkpsdZCAX6vdWDHCRDLLDjzxGQ46N55sB1PgI6d1huFHdWrvN6fL4q0nVp7+KtTTF\\/+z+tvJsXqVfw206fxyYNzn\\/zRcLe1qdPqS9FLZqXRooqXvlhAxe1Ux7DXVEHKJiPkLpg3DpdVc0Vvo3x559RTuXLbLBQkill5Gw5qdc\\/GwrycHhMfLsSjK2VbQzrLS57dJmxSQO5rWRsAUpYtc9UQ0vqANcGqfSiF5ndjymhwCOAeoi6MMP1kibNbkYGa3OGrgxjQdWRIkWPMRpPJpDqPU4ncES+cMKvHOpmufDPK9GyjBUPbSn0dg9Z+WMZMuTqxy8ctEdv5hJ\\/em1XhyuZApMuKTkINUIdsfnBp\\/4j6Ita8WPdy04\\/3FmT898F2GVZmTyKm2TSdb0fE\\/lMj1P\\/1lgEcestqtg9oJLBKD2wiHzGi\\/AZl1U+gC9wazEO8WSyC79RH1mbVxbRA6XDa39t\\/4QKeFA6k0m+6Q6ixex\\/Q4hzxaZoEQP+VyF+cRbyPjfpCkMi9Ht1o\\/lt88Z5y9IMOWKVUBM\\/P8OP11wfhnNV4VvB\\/XLrWuInGVm0acbN+htcR\\/cJ+zaAKkpRdadV+5DJ8oNWFWbeM64j+1J71B7RatTKGNsl5fybOaFc16kRLUK8SMGRFfIzzcWEXi4SYJSTIGeeUxUn6cgXgcHa4MIrCl1fIq9DWQJMR79lFzpP7u9s829yjv4i6bzESUv4mxDMqKSql\\/hMf7DmazzM3dqYcFzhUNfGMNEwL1XJQq38izIHrkg7n7esgXOwTDwmbMvRC\\/vVDSPWKDCiRX\\/9KdfYHD+YYG82zp7ZHm+w4U9iF4efxdzA2BuFpTq5vpw+QIbkAZVw19xKDZjjYZQZjuAFmTl7Uw2KPvHyDHk4q7lp1LQ7HiXbNeBW83PnQRwbTrbFUCYd\\/UqX2Y+VwwqZ1RBIkxqYOCPWMjjTF1hSBk4vOjdWVnyC2Q15bU0vgYQYZS7LGRq6ACv5MztAk3D8eJGuAFuX4PZvUk9bgVuRLK12gPsapfzZCNf+idrmM17\\/b2QguEkzu\\/GZvo+Y\\/mZKL+hsoijDh+5eoKfB4CPJ3PbeuhaEyReU54iiIS8VQdUUHMisBQ41s8311F8TLP0PwBaLkj4LY8dSgFQwfMAwo9Vdu8YOFyKJ9TpKosFqH\\/63Ptdbqq7oL05pVWx0jEysRI7avtn5AQ+oC7NmzsGzJMRG392Ef4z6Io9qjmcPlvtiu8SAZhiVUay6VgaKaCQdcFMMeJDB4DnJJfcgF9lQSSp70UGjU4IlIi3YImMgsiYvFCWx\\/KvEADpxmBd0tuhGKVI7iQ4A9pX99K2pKh8K8F\\/2Hxjwr4i5iSexc3Afi5UdSVuNd1aHEo\\/VZDFDU6uHECy5mr11MP+j0wC3FX7PPD122w63atYjq1iV8XdVGBAX8rf9mF3EcUkq6Ky4aoP902JSdIgrC\\/Yu8l9fzzJ9jS4ZODP19RFMOHe9\\/Tu8Va3bTW6fYzp7MdJ\\/QcKkd4nnI4oNUag7MLlbA4AYYKSHs6fG2ZRUViMJnWl2PmqJOMdAUKJ\\/uPWKO0RPhlhIIMnO3EU87ILP+z9IrZwjUqVLPRW2IID0+LMSGclpItJKMMeaDYM3sm2tNIM0iEdsN7F1TkbcjHje3FTT7rq8CzI9tjqAOzZOnObIBQSKT4xTvTc\\/m9hZlsb9BwC7mN+s+LIZvZT3XfdgX05Ke7A4TAi8XrPLdt1UclJuVruCaAkVOJsBYRQudl5xwLYi8iQwgofu5NdFBxvboImTTLl+aTQMb1BHHl1\\/+enjUtK3afpED8wrJKtKVulqzKqyU2NtszmHJD0F18QIhuBvd6NsokKjaNR5JKbjQAAJ9VsaMvNgZTN3fvkIQVrafZj\\/FifgnA4t\\/0OvR6HXfSNziUWbmPaD6oRRF40brV0MzS6TbAueImvS5sHm9rva9HzlHpzlpTkUscQDE+3aReJDEfOdMCSv1\\/pS1DkIamPs5CJCdNz42vqZxaRs5fW\\/1U3q2VakadS8GTvdEZK+m26OmxfC8EtSbrKn1jY4f6Nk3X2GpuCjjJ2ywZOU8yS3oNezhrh6S0OGsOMXUwYwnnShBRApTkFcV3mtNMn8988SNdHiY1voE9hW3DjK\\/WXDfvqqsEnJltqgeHgnRnu2L65gp6QNnGt1PyxVfymVIj\\/lez\\/AMkTVhJu9JoN8PdKQuGVeGrdU3hLOAScJ\\/abGTBhFFihj\\/19+3Ovfff\\/oSd\\/DEJQL3BZbxGtt9nd4OfzWv171KngwczwzcnK5WVmrklMXTMINBQ2UQIjbfD0Tg4xjfQga1ZcvaigSU6XFCJjxUir8tscrjwnwKyc7LFLVEm0TBNLRARQ7BeCJJwNNTPIV3xi7DzvM8s5IPSHTKDtud3nGu3Ogst1UqmaCPCkX1AipC+4S8zrf+Klp2EROrbge8zivDNg+ZVKrwhldvx5ONNtzjAIiralbA9Fl+dEU4FEU+bjizj8XVhFAwF32vvGz+ctoDQvWwmSub\\/3NpSaB7q72H6gvdbPFvdE0x3DFsBzYjTx97eeaa5rDSfUo5AnCNQG9p8eQ0m4aiKMBoV7LvOIJOQvehFSysSrtNdDFhV5q06DHz1j2mW89TXXoRDxLjPf9mhKZPhtBLsKs\\/Kf+1a+BdUhkMlGnFvkA2IebDz0ag2E+jp1BxxbSAz2mg+DMilNaFdiq1sGOD+ZOGdZ\\/TenRnDh3\\/i6i\\/3iSjqgcAsWl5BHijq+JULkv6Wh0LbACCeLmKYEmeBgLDfcrMxrFVk5yZuOIHIguY6kUOqp\\/VBB4gwlMR+c4JogRm5cZX63LzggqFdErHI32WgXcZ7UUfYkf9kOa4Zzv6rqUFU6e\\/BrFFDBfp08UUHT4497DJf4pn0\\/ADVyC006wiYRfwHGjJl3qZHAyXhyA4MOyNQRl845TjQRmRJRmFQyXJqR8\\/Jk4E7AbPVJY90oEMUHAjw344Bn5pXveMCn9fHV1jJ6K55NHsA6YiGyNPRu0yp8la2juXLcAxYbZD8FDbFz6fT82VaEn9hoYOhdyKYjtNnGlw8le4g2IHWkFxUV7TyP0x5DZmwQpWpjXLNVz+RlpxlolirBjoQckKHJFxGlkATLWZKcVv8lLFkl+7eP7XdjGokwyCKuOMVVk0grxisIcgZiUkP93UhT\\/zoX7iwZg4k13ZmD2GIjm71CiRZ6gYR3i51rOSoKdDZ1uZkER5rCwDnPw4SgkMnt4oerntJtffb6ksIRZAcwEM8KZQqlhZXWVGFiUgY7WUeVkwVcd5jsjfk4FYIsWMVOiOhEZnIyPhceAPtD8PKF2AsZEW69aiHnQ8kQOepujUGZozEJZhkPUFT354wN1LmV8xwq8liwfQhUyIKas7eW9LA2iidtzFK\\/KaSjuMqZ9pAGNXh7LoMmWE\\/YSn9Qv3Ht6SCYcNAtC2Drx9z5WQyQtEaFmgvq7MvLUU6DMoSvQG6H3j5dAWIFepk\\/7U1QQ6jq7ub1AVyRdXAnLmf8Ycml1WisF8Nyg+AnVVlFwVJR5u21Ruk0c9Um+Yh42lUsKe34a2DVySMAp7NriK+0jVcQnA72slP54UTr02SZiy1kDC7Y4gdZB9im6LkYHGpEDwFFYiIqsMgygq1vdqt\\/k150siAS\\/9Z4mGLTnl3u21ldyNxZ+ru3\\/o3hb9SJ45bs2n2mRgiAX+Cj5Uq8z9sTyIMSCjYrwns1IxCm2JN6nwxp39mwHyPu4RC7XUTjK4O4djtgiR4K4bUYldgO6GZjxNOE4XgHFRXUwLePlwP4P3yao77mEYiKbn4qxmmTWXzGnKhiD\\/cQ1SvZbdp1pwZnZRMLuRc+QFBWlKwUYi3obHRc518ks\\/FleT7Nmwcplgjn8OfpW4Z8U3MHCEFErrgFPElDTflaSfnwPqw\\/pj\\/Xj\\/dubtyych+2Hr+KOI8yOSJuWl31OmdHsLTLvy1S0UpPAX8bZlUPjYFZj+2yPAfE8EaCwP+kUBrJpGa\\/bAtdsgQGqLdsp2An7LnLMYLEmhPdMGynLcmW5XteQ1d+1Wf1Ssv0vMVy2B\\/4t67k1120Q0XjzrTPbbOp+luq3gN4B32NHZ5MSxAjHQdCJ2BzV9wGzxQ0RDBkPqyNa243fkcW\\/o5TfZCA5R8LW8VdkW5MKRv6DiCTN+SeCTo+j12hm6YSBYaYR1bL4AEzr7bd+y7xBmPjHhUmBEaB\\/bDiNlLkFnAtlvE8idmGOT0CTzhWdmkj+sLUsOxAdjC7RX+O0nIUsBslxtg43cyeQ2EmwLh0CjG1yXJuqO4zvPsWQfBrimco8y4vCzqHsLRdJb4DGN5w82LRBfn\\/XOCMNlF3OiH2CwnoVBNqTLGf92RvSACSMYU2k3DPNZcXTp\\/k11DE20mtMteKi46s8KE6NGxLi1h4tP6pbbpQ+SIL9b4xD7iZAGzJKGkPUWT2aASiIzH0YakIO562sOMGTmwSwVx7\\/EiEyXJafVU9X4ZO0IKQZuuEiym1ArMfFavQ4A6VEH3SbFEh\\/dsCu7w5vxSBECJLQ+jwwjNOhEogOpQDOGfhpI2\\/ZM5lzmEbX5VSqkJOT4\\/CFNmkHiXXXV0WKH6m1qaRN4xDkzJFrZIBMW+37bfxwKqJ4lpefw3x1rSECKDqReSDHrVlML1dP16wgXaUXP3iVkc39xrn8G4e8PoKhKvHhvk3rxUHTMWq8bzEpxdg4r\\/ttcd+cZ9yd0ZuoS0s1ro+3RGh2vtl024YjuXTrbkwNDQlbiPGTOegpg23XlkfyLhsQGdAZ7nihQnQdGbJciSrYpQ8SNJeKxwr9d6kDWBZve0NzJN0o+lfg4iY\\/+HPZpIUzfR+GelGfePQukFtDiyI2tiWfRLOOlSInPrd3ofh80RYP84fNWrFu3AFn2HILpgrvrq39aGTyEk8NB2QI2Sy1UikX\\/itvK29FWPDnvUsCKLsMikGXmP7aH\\/9vqZbIEYpLbfnqh0cUgG5bMxmwo7RrzqVbfhaBgIIzORxf9rDvo3yOURXOnB5Dg90OQ44TTI2sNUMMzXN9ibap6s2g0MNCeVzWDiuqcv1MZSyGM5l4GiCO4mAYfXQtUo07G79+FNBAQHttjfTg+FdlmQy+8twu+UMtPP+4s4sH+SF2rTnvZfUHR32QhTGe+iXRr5fmKdppxSUknfVCu75hRKNvDtUgVrGlgOCRoiF8ViSJL+aj0AVxAaukmI2ajSQph\\/VV5wGdnpDh8OTPF3NaAVCGZS3ZjWiAwxOl3UCKRl2hzQHVh7\\/DdmV6iJO4I3lU+IKTnSu1oNtHIl2a268K\\/3ABnkRABezgTNPfPlpUC7WJgRKP1XHvusaOxnTFeOqvDCkKY5+vnT3n8kLWbdTGBNFBWJEnOF2GPI0C6EZWB+YvJ6Ya+INJp0g+ZflthxaujN0m57DPuOywOqu2Pf3qFt4jGJQ1QpXl4Pb2Hoy0HbUEiVZTVTOdOlIIfAb+d1nzjm16TIQRqtYcQiflAuTNevJUzhJ+rH3qMnVtZ+0bFvy2cPjgHgY4b8Kpp3Isi0N4gDsdggJ0KDjVfOooYv27\\/NrtE\\/dxrBkV3e6PvgJGJeR6S2XM1DfW70ciC9NRCs2zlfx0fss1HxL4adh8AQ99GeGMqvRgiY1\\/C7ZBZIZpZciN8CS3UxphQFtc4lxDiIVvsWtRyq8snIChBeQNxDiq4Vlxs0nLfoISjYOpsTiuX5GN+zhcBTuPxjnHnL1uYHPubnI\\/N\\/e0Xm11qB+ahbVC6kAZjhNBpSeqMZU3+h\\/2QG+tpMo+v2Vbm+K1hlouSNdvZFk4P5JQzjSPK\\/JNAxSoFippg7cBV04+KyTTlogykzejQQcN97QfXkdMIdK08K2UcHi\\/Fxu7nAoAEzQ0dpuF+8BEY+CwDvJfBKqTxYKh5h\\/hClqzSqm7RZ71+b6J4SJ4EnwceRGRDChiCLR7TR6AxTz62ZimgvGV\\/WFIIde4MM8ORgzc3AOhSQrRidBa0aq1dJEPkoW7YNe1Rfu8ZLfAYbYtTx6360L3Cgub5qnLt3izHa7rtB6Vo2ApQINGQoUf84KsVIudsNImDSURrZAyBmQiZMZ\\/OwaHYy6SUgji7KqXVJ+NWLC3dNwqCcJiZlKDJttZgWwYXuO8AN0jIFTJMY4drx14syAlcZm8SK9jIVIoAYSGtDWS3GPQefvnwjMeEK8uRGX3XqIIu3xd6frstM9qDUrv1TEdNHa9Gu9tFQqicmy3hhO3x6FIbWcymZwBpCLFJ8FQednKGOPY81YqBBUDbY4XmJzy6y0eWiwZiVkRVtu7YqXTXZ0V\\/CIIT7Qx6Asv4afW260e78ywcdcCbx7eAUmvcsExMuwanYwFuds1wlen4mmyLQcq1cqwBd045ZzKQk5xQZ5t5Sv18yydZOMlF+tKDy6z2wD86C\\/4qnw1DK68sAtM+t2VKdYkd8zU1Ai0fO6GTrkPTsWwV4ZNfPh6fjfcI6iOhWbPgL4GCi3j3DJkX2rJv13ofrpYo+zBvv1lzSLcfIjQTuHhR+RFfX9ngH1Q2mcsYDjcdImXscVvb4QElMAGd+h4txpHuxxoAph8e8wQETFaFmyYdowXs4VLBTxjCnOnmHWaxoesDbvghCr\\/UZO03RBQ0+XJnEJuZIH+Jh4LQPjcBu9ZM\\/4wDr4KlQ9Kp3XHStqOfzuXTdrR4svhZTT2l8AH9MyMPZ7d8mBR\\/vVcZuEPkM6VwSrMgbj+1Pn9RL45hM5BdgxjQPyZivynIbCbi6HU1EHigJ12pnH5sReHk\\/fcOwXmHdfIsPdoHodyiOGOpiBQ4ZhM7DImORUnojBvXO0utLlPg0WHfP3Jh4m7oCgJe29d4c2VvdANe+D1+FBejLLAWT1ZNrPlFl2vZNPdJ0aR6JfZIqw\\/Vv1Cq8yNyrej80fEBvYViTkLLq13DHjqLkvOpAy3yS5HjDSIWitWF3gtr5gHTPX1dNKs7ZiXCnKcFQiVrOCXk1xLNC02FegG6EJQES\\/jBn56jzhZ0POyvj6PqLUiXrWSCRh2PtR4ekcOCGF8W40KxoJTtVS2EMEBLE5WW5MHWW11J9ak5MJQp2J0G3t7NKoSkUCPN7ZIjFpJPmE5ZYtvXyBirCTS5UiF8ixreiW4R0rhEOlqLRGtJUAEibAHc7lgrPecqrAiqalz1xA7ZOHop+\\/zmnAwBGg5Zs49BjQUyMlDKjM\\/cl7uTLw4fzb7e27Tr6gf9uXh22+AgVhYomeIYknKu0eq8M5yFTevBQ6HELb0VhvIF4PMZ61QZawEWPKS2u2K5DYqtHIiTpcTtXqsw1mVDtp0xMD1ibb7AuuasjBF3hc1YzQg\\/Of+qK34KIWHHu2lVsHRuHcxJb6qRzJ2bBux3RTwF5pEiHyCKb4FjrtWKyWnKoiiaJ\\/w2DUcGbRDIZFN4RHf5t+n4YOUn9A\\/KrVyBsTbtsacUzRg4xROFuHjZZVKEx9aWDBGkPe6qS2EP18Dk8Px4uzztkixyE84irb2KaytfwNi8xQv70tVkFVHVkHdbzSpjaVPKGsQ\\/9aqlnsRdcJnOgUDKvBEWgYT9LQloyzUrhyNq3oaD0SQLxIXMbjcXpbQCCeaiunTzl0N5ST0U+\\/o4R+ISDq+v95vBC938FAIZPI6jrHMnmtRcP81SukeiMZWB6IFMG2okDoEY\\/xc9pt\\/h8QHNWVaqacyvHdToW2pYT4jndFIve2lJiMbs6Pa2PQjh2cKldFr2CDM8T9RFRoIjK0fSMV5FG1gYhtEGJNqO\\/avwWyx32w2rF7s6vDSTb8ikQo8V3yVmuno5EwcIid7Gjri7POotsyLxbtIzOEIg5Wvob+rYlOX5PYvnR1TgLMliIXd2oLyR0+Nh0Qa\\/aSBGsKJmtZeFmIWyDkChR\\/huIP+kwyQzbyFI2LsmqypwGrvI5kBeN79My0RSa+MCk6tHysnV59\\/4vy8Wb5mvPxO0yN1yh4KZBEopiApK6kIy4p4tGhjGAzl2p62I2rTufrHgO3fNVfZNDA5QRb6a5pCvz5QlNMzAX4QE8+PUN5c3ODrliUOGWmqWwXF2meuEICY9cxFH32usmsghRWErDo7CMWSFVn3tch8TBZz+y1Gklg21+I2kGRdUo6fXGMTetRp5fLuBzoG4CZt9ldhOLVRt2E8w2LKTVyau6w9PfPW3rF\\/u5+W4HvpmGijG4nRSG76I9DN5t7XKnarM174rDIvUTYLkjJdzW5TVZu\\/BaHf2chrcTR1MtxrOinxg4zdAyNvlp8QOGGYbe6w18V2maiyGJwHrLHVklqA+ka7v8fye3BbhRbtmCztF+WIHpUNfbSSy4rpJ0JwBlZPQZMusElLib789zRHzWLKE7ao3\\/Ybet+acikf\\/o5LqHqgE1r2hSxjD+N9ccnDJYGa+MOd3GyLo2exD0TA5ZGEDKsuHvaM2SeLbGWtNu81k4fasqOAtudOV467df94nYzDGwEu24ehoL0E8WgHXrTql+DMlQXssYZtEPXvH6\\/MMCLidzC5tObNwX1oXz1O4zF+quKlwMXQxOMgXvtu7IxVxaYsB0mmmoBi4K5HHIROyUwfXTHY7+tyubX8JJI5QjAZb5PAax16KBw4oRJMWQ47LvYm9u28HhLd9zcY5Y\\/MWfxXQUOm+ntqR2Z7DKOPatpYtnMzzbSZZvkDSJ\\/slfqFuBX33EWq8lMnwUwClump+edVVEr1XaBHmd43wzIPeN7VxFmu\\/3t2Las9csN8MDLSpP336C1KWWCOHEcPzQ1JRD+NPYPDEX823MoDEoVX21gcBvzpSJcq6\\/cQSw09ZUqVgAyoaLqtpbzG6HcEpgd\\/baDG7hlQyH7LLyhlWbNEPKmJgHblbHTepiDqrm4dc2QjLwwkWa\\/AnXm3Xt1vtEpRpf3nF9lxg0MmTHvk77nPDXyIx5xRz9GGrHkIMiUtghKQjAuohSYSMqeDHRC5G5ZFORFtkGmWZzcGI\\/sCWH1RJI7i9ZtQVRBhvcSYSs3eM7aafoqtDT6H5BCIImIUnFQHPA2gsq\\/JmryxFRq5SnNeK2fjN5N+hyCwzhxKDBYDBQ9vGmCpxwhQD14LFa9NS0TGEr55oiSqXFMwlrgHSP5q90QC6c\\/A0HJ7jK4BsqFpoegc9ItDMdpd\\/FJK2bX2hzsQCewu0\\/l82Lvkj81ciXwLzeyWjbPicg8uzlgWYWetwgeuiEYvZPSRwHvtrKYld19aq6EFyP6c\\/oVDVNp0qYF\\/5gnGFLGKlHyl951lWwMAyuGWxpPWabU\\/yJC8GTA8Hm0RzRfvE1Chv2rGJPIm7y5UER5x0ChSdwnxhL+CZaSoh\\/jXNq8yQh\\/Oiq0ZA32rNxUfYukh9s9kf7RHFV3lDUeCtd4ZMVKu2EQOgIfMBnFBC5WNZrFtPZxGGHz5yv99+aQ2WpqWBiANJn6VTbJQnlME\\/BC\\/TKNK4KQasKNyqhVS11JCPpdT5Rs6+fj3Q5B2GTEQcHjzbdxvkHOFM9NEjF9y63kcMrL88JGkVH6SiDiCHA1HuS52gAeyi\\/O3RdkowMvQN7Zs\\/KhORSZGhKLnZrhvgzkGNmbjaCPdwniMUppMAsm2wgn1nPamay3q3Os\\/\\/5MK4FjWYCjtB54OMUkc1HAZwq9VSt0lJ3E1H5skjIr2c3QmFA4VQVeFHJ83X6lJmC1Fs5vYKEo0NafsBChzyHG+44F\\/yW7WHJvAE87GJGah6HdIzG1B6VYGt10vn05hXBZM4Iw5NBkFslPWldrs33FgR4O+GU1xhnqIQD6mXwGZjTs3qhOin3FPQfqAF3jAZKytnhfIqR4mAbTAhR82vNZ4Ka1CW1uXTT3JD6deHyIMwkE8yj50yKCLxLTnsQnoDeMrnZLMT\\/qyWv4o20zgFKJ29qEUhImIBjYkPpZalk8TZllRAkW\\/UXvZ518A+OsfzBjeXWJU6Hq+3vmnVjNWMe9+sYRWQsWauJCly2hh2YoqRD6A3ls67Vo0sOS8EzY9oDAHN+fAjGAhTrWQ6q+Mcn1T34+zL5XmE73pJZD1ievutjdXGk8XYPOdEhObGsw2S9VCTWXPyRbKDSuCxRZGlfG9evVU6TR0batFDRdmteNexQ9o9IkzTt0M2hnI7KCw\\/vXNu1McBrt40+hWBG5tzFbTS29eM0vgyAD6O92mTf\\/0jS2A9+biViK3V5CgMRt4i2+K3K1IE0hyhKCjiN1TDcdqIF2FnleiK\\/2FVUQbWU9WIIV4vxBC+xTLSv5EJpvUicBybVhv3SN+TaXD0RrGu\\/UvYvCcOTsdV5WCZaG6YsjLdsnaRYejFxyHTTnnM\\/0yQ\\/TWjsUZBL6mhlTPoUDFjpizNc23FFLv5H2CpKReu\\/hySS28YUBHjUia6UtVJ8PO2O+BJUiZHdfIOaGkejGvPi6w0zNiIHzxDXpRNHYNk+MKW0RkAF\\/Zodvn7jR1fnIcbwO1jo1HHkARhkvwv6W4TR8UFdwq9JQUw0gy1Y0wqA9SjH08kz1yIwbc9dmSdpYblSVWojDxaDQHox2k4irx0iOoHSNEP88MeGkLuo5Dt7Ae8KbUUn0xeG2ecF02KlvsoXU2jTCV1tzI3mURS4516S3I6I2c5SsbQ2BdOVBLGVFgU7sM24nDSQ4GNECKGgwBrem86ioEhtf\\/u5IpvVJD4qHrou37HE8zumuhKq863GXDBWidR85ElzaQTiXhx6+PZ4USMrf4tANQIxngwDT6WePQcFe2eUYaFQymLpEKeM3uIqyiE2\\/Ll1RvNnIunFP14euNdZMnuzX7VxdMDqC798xhc\\/NkS+dp7FiUZKXR7JNt2sy95jaejRcYk\\/+9SztGgkQ4f3aK4tDF6o\\/T+ntnJrHYYHKPk9+fDW5GcsfDULjMeYIQfF915+9mTIulXwb0juuFIT3PAHSk27h9hPHS3Jg+M7RXK7SuB1ERLlp\\/jEAiiLMNVJF3XQD\\/Fs+wjKeGM2HlL\\/9XO7WHq2ipiqG5eY4ZKJ2TDu7qMVcDIodjAU1QCxmRiWJsxBhi+sg6ZlfxbpRQ32awSraHMnN+4EdmOgO9xdbHQSGsfGbH0SgTFfCuFlsvBNStzm7erjETjRSe4BAuRMODl\\/y1nMFj79OuoOyJYCUfGIkpdRnVOX8q3364FkmYMiyER7+VxfOkboeVRpNSTSq2xWal2L5V5+CKxv25Pl5TeanvzfLM1UVmMUKBCMolxee8vNiGXUcEO53Zy3IVR7MiGwbwwAC75pLws0lqbKofCq4QreESlxjd6c\\/xue9Bkn47mQo27rFAJ9H2Ed\\/1AP29bstj8cgyy0of\\/FgAhaFC7d9j5QTJRTNVQqJHR3JJCbbCTbiGFVUQBVpwZs5FQxD6n29phgxGu+g0Tl2TsupG3w2EgYbMIZV9pVe3k\\/YDp6uUBznFIL\\/lN15CTGLYUfRt9W8nt+ea8D+L0K87Yt\\/srErC9zxzAu0mW23dsm+fdFuACcOBypnpDT\\/sxT7RHRVGlQS39xKYqUBWK9A2GGB9NKm3n\\/TWJIqmxRTrIgWlGgIZllS7j2PtcXpLrylhyULwTbA\\/0Lng5vQFDQUjlPCBUGLQ8jQXZk39RYBzuSKXTlICCwVlbc9ADBGaPukL+3HX4Ww8jZizfjzzBzXXXdFcpk5bSyGCBI91QkLcja08YGFFf\\/20HLTw0IXQIlej0zO0JzfkYaqaPOE2d08hwtniy1lM7966gAHc92y1R4lNjI61KMGEmZ2ojKCjFiMNC3dt9JH2\\/CmB3Kr34p2eBNNPH4tJn1QEt4y\\/mkPFLpSbkR2P5mfl5lEDnL0EU6Eh+mD2jzPqF7qg93+nukWeUdyu0YfeqBrxK0mA6eFu0eyCNqboQBFPoCqDP+3+UkP14xxPzxqYCZTMVI5nDmgWJSP6WJd6cVesLzYnRBDr8Lua7j1gJjm+5Sh6NZid9GOsB0d+EkiCJyzKpCjegPEAkDqWvQwH7V\\/TZGot\\/1s9LG\\/eaWZGNBeg4HuloUV75LcdCLwCxIkUgCTyjSx6mP+nn6pD\\/RlOwDyYFsu1XxbOK\\/5kRfhsy\\/zhch5Ih+0w8sFn4izTe2hWJMANa84AzWWXYwQXCqXjLcbEDtW4VBFXqdRR\\/5Klr+4m8DSHSQv8V1tIqoMQYX6l6vpEb4uj\\/Q1XGrgKY\\/7VT9pu45I5DgccvAq4DS4YwS97W0LWyyJnKiBWg5kJLBkJhRqMZjKRUPoyi+IILdigOmZflakIo7NtbxrJJj0s97KlhScB9ZWt99nGNj8Ve2q69aGnfRboOa23YJV3n8TboleMSA7WF\\/bcVZq7HQfAl9eWGJY\\/GdSF\\/kBNYMuCrxUZXeWaqkOpAxOIPSSXzFgaM3fw1s19vMOuw\\/eUS6r3OtWR2TdgVr4ONm2ZH3YYb1CJu22DxEYi9VaE1vhDeK37i+2SPFCBmjVQz\\/XLRmCHy\\/zeGVY4ooNNi2NgZz3+MFyYbfrNTK4H49GOvwCbboIdbL1IPjsHVaAKfcZCeVgwXLf2PwnRFYFCgvh0yVzuqSb5YKZJ7PAmE3QEkSmdAWdOMqb6yjLv0avIDg1L2ip0IhrvZXQi6eS7b\\/YByy0OD61pUtTXyICxsaLh1dczGepyfs+4sw6TnMpf9SWuGl8gOLz4sTFShTnj1MgMhvZZSdNumI7ciEACgIku+Q+t2AVx6XPt0KcmWbAxK65arWgKIua6Zq7acQb9i\\/dc6mEm7Zh61meEC4KFoIg1qgWZYkCRFkUCVPEBWWz92BnM6oEa9USX1rAqMbbuH3tGauNFbtHridZ7TlPSEmjOqe7mlbrCb5420krhulYrTVK6ov3eR+zRwHqJ34HJ\\/D2Pux0wxIVpA0WffctWHjRJBcWrK7xlkvcxxHGJP1zWqYGBhkJK9kydvvvz2f+z1hL6AsT7lrxWDkpY5J+TihkyZdAHWPCm3GTsr+KvsCBs0I47i41sDdUZcfzBX8+36qyxAttG2Bd8HhEWpP8Lfsm0epsHrVCbsa1rBDXZGX+a+L0rET6RaFksDkhJmmTEv1yV2OezYhK22\\/bt5glNrWcvqwOAuEkfvn5wHWcYPMr6pgVKsD2B1wGy\\/w3bX+4VELELO7OfamMl4LlYfOSu2V5Kf3Y3R\\/Zr4YqM2FNZpxm7fEIUiuPrcfo5oL9IX7Qv9Y\\/wXsklPqzxdWqOiPxa+bbXcCcK+9FnEvhK52498PYL82b54n2KupEnQVtAa4eu92irJEocuDjvTiq+0wxYLHouEOpH0\\/Yxw0Y7S8dGqR24mxdyTsGdunC81f2PI2zUsez8ZJmnJWq9V8bVSXUZgn2zb4fJtjJTCQPXvvaTgI6\\/CKzQjpI2cZODAF\\/H4aPe9TUUrsWYvIEi8PwU3bv2dCXgBlnC33xK0CGhVvrdU1GGFtuOlntoS\\/\\/kvCSUysgKEojnHqk1hbntYE90jyAmEQrxLsKxv7Md\\/lmDVJ\\/cu7Igc7fhnuzWUeDHVoOlaJi177aX6YtMjLgPtLeYjnspvUxNnvRMmFbQKa1VFxGbzAfgVikyxFw6TYxwBpOnHE4Bed5hHhikSbUNjiLJhDyhuCP7ktK6V\\/9K9T70q3HbGBEq7jc2Hs3qLIdoVflY69yUn9OK+LjttW4mql+g3RbaVYmd5Urd+ZPdbcKvKVsbcKfH8A5D1GxpWpVbnT2K6KSEofZE93g5ldTUkiCPEWuZxgoCmxsbJb8wswrrMLQG\\/1CgSRtc5C2jO5raucB7uRB3u2+48oJiq0\\/iirZSfXk8BJI9QlAdTDAdTybAvc2NNHAomJhSd7ECdr3dbo9YDjqns\\/SeIgKRjAndzS7QQ5QnN9Fb0SKkIesO\\/m7ZQKEHWNEZXomCpMeGiZ\\/WHGuLUsRuZ5XHgiqYgYnJ7hInOWimpgdXZr7sCHB0LFpBYeu1115A6An7I1dWUcczP216h8tnfVC9v+1b3eFcqcLu\\/A+sNH0nS0frNqlaY\\/s0wNlJv4vNSx8TOSohpkZINwnJAdll\\/eAFd\\/TeLIrcrezB2PnTaM9Hn3BBR9GnliYpt1cOZgKHmmOQOq7h+ZW7TarRePvp2LzZ28Du+kIg9UiMSc6sIDZ1\\/tb70zNTpxpU0uGPOPwAmzv+vqcYuxsOJbE5sXE230sqozdaUs4Ps2Z3iWBPTrsf8HLZvZOLXlDzjkOXHF8LxvbKKv9o7QXzjMj8otb9PseXmAA9r9scKTrYASKFPDem\\/ZedVruKp1gO9mXkjEKhv908l31A+MAjjcM6ModK2iFZz4DJYFHhWY9+avUuJA0gVR49I6v+Nv87tr9JjqTCTAs+PI+0jsRY0bMMOZbFiuZauoV9VNryZX8kckyL\\/jAnHiirQW\\/jqG+ukzud7T3QYA87KUC5NXaXg\\/AaBRQJZZkcz1sdmlC32tHjIIhHiog8\\/4VVvCFO5wn7btXalSDIWxZThyIDjbQbfCtHbz5yqxzfVyw\\/yAMvioVyK52xOiVskHmcQ9HTszqomEG\\/YCE\\/yW3qYS4IsXVha5jKfG65z\\/stBjWxlBR+5jFafs3xbvPrcX2qeQ3GGPFHl92cT\\/9A21t1BOyxzmjC0Jxz7L4crQ+v8\\/QKWUzoOTNON6Ut\\/GTLaSdq4QicPtJjRhVvh+McGaRuC8sFPtKLN8qH0e9c0\\/CzvWKqHOgYNo\\/0v7vhCmu4mMFLDypqvlQys988G\\/VgZlRNVA1xA+DLWZNJtbtycpS8EGeO25SxXv8d4C+tmOSchHuGeZtoAM3FEnPiQcMR\\/TVsRKpAMC9trqX9pSLKxt9mG+Qyp3XIg10klcJZ5Gf5vzpWXRpJiGnn0dTyArKqMgFPQcnf2uguwN+LqS29zTR0DwIVS6lYfZ8V7nNxoLC0\\/jwxgreDGaOHYdeh64yq8bDHcO0PDAzUuT2tph+Suc1qon0dYlavsPsE558FwO4RAyoKkXjF1mFGSXG9Cv0fGjp25c3E\\/FMMkrHbXjVusDNb20yNNkp0AzNlJC8XWrBW0cQKQKssu7Eoh+q9N0ToQMI+Q9NsXdr6uUJRKnIXvLajCahDQCbPhCYEs\\/DPYX0sEElTSQx7\\/1UcxCRheI+4IXzB4xKlXKp3TAifXTTdK4ky5hbbFL1tcKBM\\/BMLL9zWewH9kDFJKKLBC0PQ\\/CjJNUSyCr8SNF6eorDzY2CxuyCynRrYn1z\\/RJg\\/5KuJ4bx0LnJiFiLJEh8P\\/IQ+AAI2IOjJx65j8tMRDwRf7UWGI0mXbDzGQmv4fiHpNBdgZR5xvNkodPc\\/pQ2t0EZzkm97YgIfEser0G+m1nyF0AWviK4sajClcLApdvzr1+kyiR3GoCH9OD1tbOlyYXpEiaSgGZ3clm2KgAi0nuOmk4phYt835Od+rVGI1F9QMiHJxhKeEFYE22ozUR\\/4OdzlHUMqZBh3aUpitXSdEJk\\/eq7ETgwCNpMStVM6629AKTzzKWi13qUifstejI53yb+UizTBBXpWcMVPyuhjMccKkx1Rv1K2FRIh0kcOUGRQI3azFSLPRUljMXzfvxvSrroFPFlH9AVI8x\\/gSBjKOCgvdlGykeIS0rrk\\/hRq1tSVzpjl9RMyV2eFLPyxSX5drILZjz9exqSdvE+VEJRToEJKm1YvvTdsD17QV+0sAzke4aKrkC5nlw7wYzIgNbaxHWLXhcFSD1\\/KHt\\/UT2JV38LY1JvMBSkTZq20bgpMkUaknkXgJR3AtCqb8EPx4dkfaWAXjrXAW1Zyxj2uLUd4mPBVyFenctad6PHo1CYW9Vt31pbOM5N8R+XVOQOmwxAAGiWC7GhIMDz7U3KRCOx9c6X6BhCcdRbXurTc5xbNwm9QDwSF9yA8lQQTL4+s1BrWJ0SbTSrNzC2t4UZq3jtwjB9EGY9TeK8VcKfXncvbx2zK3cejt+7322wqMI70cn8f34resSsZV31OI7gviR2pGsNd1y3Cw2Ep\\/ikL0R5ELxSTl5dJPZcYGcr34ZyTzI\\/J3w7G+AWB60OgkWyXy6irgjDLS\\/XMrIEVjbOFmeb+gg7TDdPYmcgexFYbsQIIE6narI7ANn6z+fJ4zbOw3X5fkQx98H7iDrgqbun3ntzAsQLKZK8iJpgTzJDbPN50o\\/QlGGnOtiru8R\\/92FW17ksN0TiTiBVRgrcngeWuYU3DFySMn\\/TOjPxkm\\/KjUJlikbRb6kods35WNT2x8GwgEb8E0CMRqHuhdpYKFEusJ2Z+UbvQsQ391Ql1jqJEDF3aiimiUO5vOBEUc+hrMphcJrRR0n2ojQJOH5\\/uBiYURpN\\/Xs9qCOf1ZbFEC1K63vDHsklkCYT26qYho0USWQTjIe1gLM6QQ\\/+eyL8U3jikta+G094VOWHK6Lu7znwlpTD+DK704XhI6hw7aWB2wsNh86Bo7gVthtYdfmaC\\/uN6+6fkNvIkUXZQ9kBUnBohRAdk5NZ+gqqhaD1ddURpERfslBw1y7EEJXYc\\/fsJBY8WlkcySZVEMIySjxr20RkO+hQw0Ei5NOnVJWpjMfJfK\\/SbdO0iGqdx2Et3Guy\\/iV5Y72vAfJcdBGCF012Z7zHhxXXxknkyHQaJrkkTP3Ei2dFvD5a6fHbzp8HxpYAReaCcmdBl9kyRIRnfqElg7Xib9K9L+ddVqKVloQeGKytnvmw+LM42VHTZAazwsT6UiFC9wWlYDv5W6xgcwf74qQdodFCZ+LDc+RBU8VF0srD2lROMbzqcRbU6dr2dLu\\/T1\\/vuNibIQMNZcKXTZpcrvXDJgNzrTw8BdfTuw8PK18uAUfC1H45fZWMXVgAOO9K9K1QeleW2JwFJWzB1jNE\\/e8bsEaHa8oY5i9pVcDDJkuKgPj\\/dS\\/oFmzYP5cUyX3DjU3crE\\/ivPPsYMm7uiE2qQKhpFutsYh4FUxgFOAAz40RCUMjXNTXyHKYB2lbVTfHMqYWt2A337Dpin4wJB7yKffZ4AQ1b\\/tW\\/+Bcf84iFpzHD0v43EcOInB6bnrsIR\\/i+VYswLol0mHGdw2XCsyJtTorClp0Uj2SXxRhRipI5RZiZRKP8ZSOwjqXeop0j4TZr2S1PFrbNrLHvXRmA3orgnJMxhu8y5ivGDYHlCuE0Xh2TZp+MaQHVuuvuKmZOLr0QrnUFUg1TuEL0fe5QGuSQS3fAn8MX9n9Ec42TA0W2EmNSJqx43hXBXoHHpUVrkJhVXRWchqO5XfTplZh7GqjivSfoqJqWTSrQC6b+q+zjx+4Ku9LLbNpbi77fYS\\/Vr5CVnZJM1cl\\/SF7nGSSN81Xs5NdjIWl4K4d\\/YzHYVoDNsFS1UHPgNHk3AW1c2GCfKXZn3997euZB9MExImHumE8m6+PchCVmQ7WubiAIgn66qmKiPXQJCO4v0X3PvfIrFHz\\/KmHsmU8vB8Mdt0iBC5o0U5SdvvKZIL1lSsMOftsfUd3rxX7ugPjkGXWrB\\/Y\\/or0I3+wr8PoQJpgdghWK05TZMv0lwlwa7\\/T2yJL3q9fkDe\\/OVCR+TIn1l\\/YZYsYGN4U0OP8l2YyhcPZUd12AWwVyR2BGM\\/n8NpJxFBLMPERMSQ\\/Up1xLkgm0aK4HWbTWKbtFPDDX+FUelAw6oQvrGtfajDxmgOwcCi0L+9zX2I4gCCuOMmlEestGk3eLwjVfFeaFHftA4AwDYgRvJy9SUmha3RCxqS5JQng\\/DuqCN4HwpQIwx3VFDm4R3H7o1wyr1SIBCh5YI+aQtnb+lKkul4yb+SKsPPgCaRcegNWHJsVQRzv09p\\/I6az9RWq5xZTXAgGH73psvQGlQYR0\\/EPw+UHDT89rTdplHePXU\\/8lekfUCkPn1VGoBqGidw6tuBpYYHmWxvAaxMwTO5\\/Vd\\/aWJIRJs2\\/Mwou6qSHfoWp9iuCjENWkdKGzpC6McjJ3S4qvRgaBJ\\/FjqRYRnsKXLLjC1J9hyHyBC4k04LqXQvFscyCX7BbOHLi0+EP68lm4xRjKsPqGNn4josGX3ZcCYK9wRSAqhDnGEfj5QlHXkr9o\\/LmVXDqGZeGxcj0LxrWplqqF4PDEiZceQfZgoz3sccdWoEPdLWPOo0cgl1ihh88hGapzuzMHinEMb0MzPYAcH8HWHnLhFFwVVLIeaCpHXc5P26gya8vQiG+9BiGzVxqIkz6o616Am8ruVJplByHhnSoFTuJmQSCxlI2hXXHD4iKJGbuykT2BCW8bI\\/L8PYPU5CjBy8KTgJDmOXfcxC7Q3oVJ4k3j+jQuj6KljySvAubWbkbvR8Rzx\\/\\/J12e2VZVi6IvmnDaPxgQSrVcFK6\\/ZQ9G2xh6SRCsUcx8tAGKbrZMWipsfdhldxvpFvF0erQhHVfrj\\/zZTmRTLqNeBJgVxwyn7f+nF2rYzob\\/Bn73msy6\\/oxC2UXAJ28DP3DV7JKXHXl2GuiCGSAadhaTTk5ApnDJgn50tGCxBuwY+qZ4bakjKpIujtPc+ATB+2dlXA4WJFaFw\\/bJVxYhTDy3mohm+48h2+5JB1IfgQTgKIAymUORTexCXrVV6I8Hx1ffzm6OAv1bSIoJw0uc7aMxpBxdcdEQhBKimrehxiuDXeNqnJzDUXf+Bau7SIXs8hIRowwl2a7S0WFfImDGDfEndhTZucXDYW52KxjZ+toh\\/KpjagiDUGF\\/mjumRf8Xgl8DIfI2srMIRrNLZxSK+h3lHbPjXn+zLzhAqA7QTNhm8359kB\\/NJd6KjTzwUd3Zg\\/BLDAkfV0It7Oh6ytG+BQ7tygvVN+a78XliLSsaH8IA74ueyFVQd3+uhRZ9jX9AtRt5jwp1AIVZuokyrfAnsd0OSagec6wMXbe7xtQoW2WMMaLyHroWNZ4dr7yuQzha3Ymbo8LASx\\/5XkNMzcW3y+2SxIPt\\/ZQ942A\\/KkighhHttHRkst2D8gG4aX6F46VaBlOfsZlFDX8XTaBNSJBwHhkDXo8vgjn12qDoKTJYhyiRN12QEPrGYO\\/Q5f7QyEn5O7i3vqu4o4E8cobxmQ8TunW7CLVxhdL9DOZbURPDlT\\/ikp996pX8wTs52hCgxkfPsdhs5it5m+ipz+Qe8uCehzBFaAzqqNGIyS+CQ96bv4lHt0FW2sggI6XvMDSrPpe2l7t8D2eOz0hfLWvlX60kcUGhEJ5u+DeZC0Ad5FpQZWtqoCkvHQOquD0gCkbZP6+Pn9SUOJ4SZdVYvomwghMC6efQrj8+8k1N6dzITwNVAz\\/3g8ykzb4+EhYpBtF+dzaEAfRNYl2G4kdNHjzFLaS1h15EKFPiIp67zUIcfg1DWB3y5qkX\\/hccaatkml4\\/y8mUuwH8rm8P5kvBT1wblIJ5I13BhVdLEiyxFI+CbwX9NYAY82rp8i03qlyKvOO4kFj3fd7iyeR01zE0XuDX3I1nbgKXQM7+u5oF3ZBdyQw0gsZETwnjNOWG6E9EQqTEGcLreICVt8esYaI13vi+kd+0auxVwXrIPca0hlzPK1qhBb1Um5wxvmje+qQkBYgYJDGNLn+5qdH7POmHfR7u3Vs5oqFUfG3\\/T1qHfIP95UjT5++rhCHm5S9NJWU2LAxDteN\\/KuMmWWIKdUtEIMbHzBBpn5RYV1Bw68yMj31U5Flkpg1tpE8yxmUM3cNwj1aNkHkqkv\\/td4piL2jgQs9cMvcAP4DMSZydwTSoDUP5CeoMWO5UjvkNbneX1QR1FYKk+qeRqlf6FcSwQBFfhyafmVslinuUGs4hC4RDnnaADeG8KOHV1SHQ\\/gL9Xxk\\/DnYNf9QbBQ5dWlGAwjrOfIIov49TRTmlc0bLMpUVXd1+\\/spjpjmsYkgIzSIV0H8tpPiWQ6SyKo1sfkOzgYwViJCAw0McWwpeaI6RIAMbDX6RU0t4UqlosekhfOgLVrnnUamTY9Yk5Vo\\/NBVf4ySb+zw54vcKC4uQbKJrwgY\\/qoPHczl\\/XC0BplXwz3XgxRMpHAP2GVZLwkdSSCi9Qxt4HHNt50I8MpWFDOywExicwGVdigMlCsOX4WlQW2l0ckOtcW1dJUilJ6RaabFMtEfd\\/hDdqjitnbUdlrcMaPkrpTOgJt+TVGbS9wWVTAe\\/mPLQx8G1Lhw+rHR6Tf3\\/H7mkURsloGGYYOEOFAgYPeiYvQwq6S5Kp5kxeGjtvpV7VGZ6OJJbWUpi6yq3HGlrW9kp66XfZ1cfb3MZp49gdVKn37wM45JmC1zBRBkY2FNS4lPdHpk6VUGtG5iFL5NLzDtrOOnXBbhEQGJTY0U6LjThqF2AxJlSeAHntu2uh9QWC\\/SzDCTg7NY\\/ZlP\\/1xSZc3lSMkN\\/EHuojiqqHa\\/Ggfz3DAVWovVCFQ\\/LrnjzZ0Rn5CWW+7PfNNy3+Jef5tb+HGK4g\\/OSy2lMrbHi6m0q5gxGjAjSXve8ISvPov6jBD415DHZgdsYhjGvBe4aNWa2uaNC8EhwgAefouiu1nJ1+AW9RZ16Rb0GjbwbfVIEkCwxnlZfucsTGJfvt15fSn5yPXn5vFLQP8bBLGhNZbKtGvkJU3ZztiDjQg0jtz3NgT826QTo3PcFEJiSJPGdyGWiDnXNZlqLiZDS8OBS4TTZ2M9b+kCPnLZA+aWK9LTVGE1\\/DZpA1rXhr+t6Q+j4n97Sa3xO6yd3NDuSVyVGty08hLjQmFRO1T7PP4NFGcu1gT5beykkDmKez+tU9pbWPjIS131dsPDGrd0r5NLtEG8apnq25\\/xc0vcY1XxAxVqiCSUglirOtCj5LBCBoQYH55xAMw607kIgL0P7+3EuPjRBm8BM7\\/RFuhwFFzVquUFzdO9iL0YdTYkqhBHOYEDbf5j62R5t0htTypEfouXLzcUBDJR6E8EfuwxwDMoqOZ7T1f\\/wxp3Qhycqn8vgFKINEP7EsOcYGL2MTLV6mtWrX8mpT1sq0LO7wxAFOZnvVTAZ4Lqbd5bBtYbqG+ESRJnkuAkzTx6HmKEjeHbvG0XmZbKogy7L3lLIaCXtEd8zMNud4meANnYpINWHlRSYn1rlH66ntSBcTBjlRFPTf3PTkOOYydNE5ISGoHhdOSuDmB6i\\/C+G1DIYet\\/wOMuDeF2MfW\\/UGpLjIjLeic\\/NQ6Lu04dzNEK\\/+HJ82EgcJUzS8DIV16ILYIl5eDCOBPVYYVwy7AKEObVmIUGHiPMM5DjiG2\\/h1o7Zvhz5yXsdykhCCpjRfL4IYpJPk4oySinpXB+fABWOlCDpxLEwrW+7Cif7SFLm2Azsuqa8pxmGGEvLKjs11gz64EIVfOaDV6Ko4ThZkMugy2KyPSJaOtjQELTivvwb8zkX58yPyyltw5av7WxOZSTp5juEHWRGJ\\/WDd1sWWpGQhjWftrQAoYFeNTMx1s0Jaq\\/+v0czdBp3Aow\\/mQa8OuaiSN4jKAWnE6jQ2JwgeKgGmWST4EEoVOmKwiMxauTS3RQbu0hnBOaQR7FinCI30RaJ8NzfwBojkv7IcGrBc+vcQfT8vUNuuBFtdcFDHbM4zeGgX9aGmJV80zbQtXaR6q5FnhK5psdUm6EXD5lPPm28eyVjPToo8u\\/f4KvUEDfjV3mQo596u85Pit3zj87XMKUMO3mLPdauKUnUlteZSL2nbMGIaUOtniTcoiRd28DF\\/KcUvG3bHIDRtF6rVxa7jmOwu2ZzJFjrCf0R4282DEofkJbyNvPkhsHdsyL8A\\/IooDLppI8kNly03CJOZ5qw\\/OtSPB+kwJe56ge73dy94xc0O\\/grPCoC+7nh8VpuVl80lEuO8ekANwR7gAKFYYjjJsMij0DSmbdAtYpKzLpM3WmJSvXqf8sb5ZfDbT+ji7EHrxSbQkSdAGbELhBPiokjgy5g2cRsAd7FCbbpFKVOvapkCDfy5NRP3gMPz86e5i\\/FUS2zZjNA1wQd8A8IlJ4q4rD2rpKIIPNJ\\/XRSLhPgUCBqYeCiLGdPU6YQEn\\/pYZ3gkxKA73JD4dJspLlSKIw20YTcqWsGr16xfmkvZ4vn7wsJCoeH2hgBQOTVoiNpkle1UhfzztpcVTnnLhGGYUNYxJSKSHQzMvIqJ+8Xu2sjXEus6VUSMsT5HWMjo5IuUXdsuTvZ1sPdzNlrdDr4JJrISnBFvwkU9YBHcxbQVvshTF7jK4A81BIpb3c0g2pgqPX+mZ1HQe3T8oy\\/OB\\/RWbmqBJAEd4Z\\/hPKJ44oV\\/gILJV7Q+jqJDL+s5xF4TUUmFf3mbQFXXbv5SlQudoaSDN78f\\/47y0ZXgAE22oIF8GtX+E3qnYNIzl\\/2FveG7zLbap58xbKYY18bn7Rb+olme+\\/q8ECC9oJuWvd6AaAXHyh\\/m9v3ZLDMwKi7bSe6ApjuQQulsLZqdlLn\\/2v\\/K7Vv2KQXJSx\\/5F9q8TBABpK\\/Hqp8QfSjaoyXJvdclysDLXnJaR+UPEAdkUZo2mev7A8ZzRtcaUGwyF0JqYN+QMadzkNJcHAn7P3KnM9ivS365tDmBYSawYbAksC+yM\\/5c9ve8Iqk+ib2rnyWIYrhhGYIsOKLkrOFtaJXAiPH791xJ4MZqbbu2gWzO6ZzMh7VwLgS7INkPnhbT\\/RhcVCmoNiuMxghU\\/t7q3UcD3HYdNkepOPIJKep32eCmkTR7hj1peGW1TuM4zi+D8O8DhzlxPIat64YJhKIT7ON0mD3+jwiYyjOHDBOzCvllfLYpl\\/Sa943YvHO9NdLSrPNorjG8Cjkb5sx85WABYg2NmVQBP9xzTsbLRgL\\/asC59RELhmRu36429BGmShXNg\\/yHiKT\\/9+hl8toRQpfgzKCbfx3Z013fkWCxpvRVCl\\/VXxzqfkcRUkgfEZmkQskctWZVAPm9hiAU+GHE8hS8LuOaPWEJgNyQKFd3RCLGKs0ZJgHzlZdwERt6tneHidrRjbeT8TAmjKIiSmpZ5VfKKy9LljmHWYhaE2gXMk7DwH\\/6yokB0FnMPwGeZ7yzFuYi3BGSVE8rqrFcYszUy0MO4ljYuwiR2Hik7ImzAtTTmHQjsfOCnPx0hHCwU66oCBB17VvlJgyDRqbGpDhKMfUw4PHUoKHy7fvshSigbTEmt3Vp6heoFCm7TIENN6ExF1cT4EKsEoJ\\/0BUa4h83XZ6Lmh4XRPx3iKqQRR7KUNUJpsN7DB66VlNzIaRmzkC1ytN0\\/Z0uq8+lcJiLnO\\/v4+yIvQMC5RX3kzjI79Ut0l4ts\\/45X2LcoctLer4r125cxLHr\\/rio1ODgKl\\/fwCu7TVBsgmcq9v+mDNFj6dwsQis5xNKXnAxDaqqWgsx0Kzv1KgAKIx9ytma3d3EE+IkXL\\/T\\/i2p4NqAhNWR8IQ7AXMlAzncNktK3odbI6zaSokUhRj9wsCaX13PDKjXqBNlNv+39e\\/AiuTSJ3z0wv8OuBYWeJawMVvnPVsK8Y2yIacE\\/6Z6FnNG2Rd075VJSdo+zIMJMlsO7s8aoXutZnW5z\\/cncbEaF1jVGFsrPuRPnHyepHGvMLbZRpzkSfMiDC5yyNTIA7D\\/vGUXoEYBW4aBpupYlL9VrAXsSz9Xd27AdvoNI1607EnTqhqW0SLluHGRV4EOnofVPRZeLGehEKMoxjuQvHDEgfz+xtaLwveZDOU1VoOjtehHyPYzm70Kxe6GXfjfYleIwAnVYHctUHLHuNHa8i84lFg\\/LOXQJtCDPwiXRQNg6jBHZ9x6g2mze5fVKcmxqG\\/YpCfbz91KqDcBLwH3T416omp5oyCL+AsE3RodLMU3pBlsBAVB6BJurJdaZvUa1U4wXc1gzgfptS7ULHuNZpuTnRm1UQLunrEGtGOkUuxs6N2Ai+9VRaXOyQaEsUrNT8F7N9UvYCW5nU\\/Bkj9q3Fmt19b+7J\\/KMj6PiGtes9xbrO2c\\/36iy2RQnFyRjM\\/TLXVHOtXVyjnCTUiEvfBUKGx4lU6JW6HOmFbi+15\\/uuDkHr1atJY1s9rM1mzx9utCRbPo\\/YjP65SK9HjyKRroQsgVqVaO+ewuzIo1iXpkp2+al\\/b+nfCwjZBnstTzyvC3ef6lfU7cB3237Cs1e2bKuRufAaPXrx2zyWHI8an2b\\/pjnjaeLy7LJwc8DC5Iky\\/45BcRMzQ0sdE3ZPy5Z3RfqZF6T4pD8czFWI8vzjgfd4VfESndZsH5RnovIojtuo8rRmrVR+DrX9MzAtw0OEhygWO2aLVjTv8sam1IyZ4T65I5OYYO0klJ\\/KBU2kNIl0kxv3no7vRmoy2m0507TJFcZ1opwWnayd47leqi5b8F9kbCVSrVZiJUXvnUqPNAeekPkyDwpWgGAjayOLmPuEAZaP6ZcOanPcl7biEQp04UrvigKiL3lTCLX6xXruHe05ZJbbtNUcQbiGfHzHLTnGYM4nC0XATVn7wfsCkYeeRO\\/pqQ8smVgWS53n4IgElJS3AZbjcM24+tQoFgt9X7tKcZOhAK4RPP2izefxWiemt7l2\\/MNxUTFLdpLJVS39\\/CWpCH54lDI8NluvzRpphgPU+6NqZ1K4dYkXcMASo2DQ8JJY1aA5Kg52nTTGsFFZXNQgw4Bt6jImJ6zHwKtOQhF6gyOjcJNpilxgLzKPyTWI\\/D7fIjv\\/hRCx8oeEtgShc8ULhe2VgoXIbP5czhi3nHLCCaNCxbOhJQI85EU+\\/oOj\\/tutbZAnGIGShwDGiA+2YeTt3AJ2YUkHDqn1qPElT5jg3aRwNlmV31F3fmok0FSeS5jFpWyJP3ZbtrJT6NnAtAAsO2rUK9Vy3ihKzvXg3VVWLh4W\\/B2s+A7xixRkWe9NbfJ7oHXavByWKmsgYv3fwsvCRYenIbCDmkIrfV4oynlurbaKC+MJKCs7yjpc2hIEiny6SeeVR3nasQZEirp4cnmr9H76b6GzE4AiySMS7\\/fOWT5oQSLJhnHtxPeuIq2DPIF7c3\\/LJ9yTNL54aVGP+lCQe18d5RRjkJLgkZ4+BikOcbNv8huTagkjpl\\/uwdhEyStk6dAcCVq17if5klHN890kAApDjJcoH9YxLxtrLAsX43TTGPOcFjsEIDRjUHZRRCaJutzSL\\/hdixQL7dAIS27nBOcBU6UKHqTbZ6A0bSTdWkZ1P3Dy8342p\\/DzGiDdbLtswX9qwX6mK0Jf4K5BwzJez978KGq5R05C0IE2kSYDvGdG9XIT5R7FE6aQavdSajixJwpnUnQNDT8SCTGDv40Xt\\/k6QUNwwWhRcIdcXafu3l24RPuj2adV5ySIsNXAofoBaN0\\/2NBeDVXd4FhyUg2lyZANVyVRyQk+rZnFWLGGuYrUFLfM7\\/c66UA6EM\\/rALNnP4fKuD\\/Ob1ZXSo5ZASSpECXW9qR2gYhTP2sA1kU8SATCMlvOD4bChc2+dPJIfs9GoZuXbuojpAU0soTSfQzT0PZRF6IjPJ054pCSL3uiEIVp7TUlNKaEXK3OhzYQSCKGqHoxKMvT\\/7UZrluVMCWa9sgNowsPF6HTl6H6kuPBaaqZ5QufC3TBk\\/exCn0mPboHIMV1Ch+H4XhVZyKcBoL4Yujtb\\/\\/E64zcfDAn6fRBZ9HPaTG0YbeGMBtvHcO4rfMul0EvlE\\/mXB1qmwPusb1SdHrTzA5CtN3BTqutJtk0D4HJD595fikkKDmFjhRxK\\/wLuRvFkEHDz\\/R3uri8+iVsXMixljic6j6L95trcHm0mHvXgDb89aWLunYHtAXpc8tdgb\\/kZIVAsV+sHs8fAHrh8fLpPosWPkw2LFAnm+bt\\/fWb06VkcZ9oi68YLob7SjmQXTTmXeqmdDhSIZDZKHb6qCEVyLgm7TfGpFuh6sgikrue6ATuURxtJa1qCHqNc+8ErY+z84fOe\\/H96YGkyoGKJVTVgiaHgHLrp9OlYyMacHM57Q7YQZweqspittsMuJ8N1WCXsLaYj5IH9h6IGsyxHKj02AazDugt\\/Kkev\\/mMP2T1FklgdhyYRyvjC8oJc8yWAGkLhLB4UmaNKxbkoB8fe00MTAtQWHh0KE5iynvdJnn1oYrwaQZT6kUAf\\/6Pqcvd90S\\/yLW+03bqqwygZKmKLivNbdJcbFmfIu7caQQ06eCYIARbOzQAjtyWPFmmaBnKJF13ifkc84UXJhjKgw4\\/6K64bM1\\/jFXMd7kNv8bgQddTEk9pRft4mmlpTAAhZjxEVSsGeSGv1qe5whR0B\\/4Qo3xxT1yoFJrEuug+hn84FSH0\\/aTsJ4WqTQdYsdtLE0KL2wKjjJYNSBmt8F9CJhCnyFOhe59rb+7LRjgT0FZ4g24nkhJTC0AFjGotIRf+NAbugg010a8FtlHunVoLyxp9wyMcElGAIumvH33mjkRe7J2jC5KFvcNRcxtBiQ\\/ho9oTlGO6GTiRu9QdJe5S2ahXQ1vbmnSdzd9bNYUIGNU4gK7OD230k9YROdHdH7ShbYX6nNQ8WQMfs3\\/i8pJmZf2GA2N+CRXIVpUKLjQvLkXQ8PI2YwRZXh69uQRyD4rgQcS\\/Yr4\\/3CZiz8xMQctTauf0W0bXJNB6eZ29O54mlxC7irVqi0hJ2W0O2w94iXij8Fj50gyz2XNNCQ6uomkRGYjguuAjAiq6mvhKZANEV3v1N24KVLNzgdGOtxz2gtE+LJLffuZztdDQocElaKNEgQcm2OiWCy2kQZPcC5dNW9IY5SlOrB3\\/IXIB\\/DnpIfP6v4bdUrdHO5IaQYGJ6FF4f7GaLBYGSTnRdtFwKOuzlRllKJUceqRXrM0P4FNb6BU5uHDzk+WKend\\/cflv+w5n9WuSxhtKCvMzDeGyJq\\/3VSGKta3fjd0OdNmhhg\\/BrStOruIsTOUBpl1sjLOOybIuUf5j47AhPEF7DyPTgYTKy8g+np00cbdhIQW2YG4wRc9b2z719afxgwi6Qf9V54b3aMBzWL0quS43aqxdYjKa\\/seriBlwuImV3FydqsVHw9hMua83IePooj4ccO1Ew34JR\\/XaH9y2YiG0Cq8Y6uBL0vuSJD6qTJm0XlAQt+1w\\/uawjAy\\/+hgpMJWVHlHFN3lNsZIKfKPTBbXDs1IBCwWXDz676s377BDtBF1FX4rSCPg8xa6PjDGAZPwk8j0K6PMXI1E2SpPz3cBxUnsypOrY4RixmnnUFLPAqgF\\/V1Bmneq3kJHQWJneC0jIXe4WwYwU8Ii6qP4oE8OWbwqKmu0o3zidAeTsj8UHcBZU4\\/2h\\/HaH03pJSwPNy1so67FaGZQ3rjAwPT\\/9Az1kNqZxMOMCHw+OhmMWuZhu567cLNvav3RpKiKNaFdqtrL1EYC5ufuCvTB0SAqX8YxSw8fpuOG9WwAtt3+u4YFLnoR55bRuNQrnkHonMuI+diEWENtiWbOsQHatvfmBnBRuv4yOHk1S2yEMAbQm3Xx6eU7p0r3SGqsi1ocuF7fEXCqf1ff0JaDQlskfrAh6vZ1lB1kJms9kbh+IYcgnRx+N8Yu8txCcxtfCt9zkla99\\/1lHSM0ay87X\\/T0dThc3wMroW5TuMqFtzSLPBMfmxzAcFySx0LDkQRVjsjBEFZgLSkcmqZQ8bIoeSLUdDgWzo42C+3gZiMqo0AL9YPllSYd7lEN2GhsndGDbrC3dnopikg3ANBn3KgDu+Gm0RgNMAeNAacNNQm5ATJ78+UWrI+MLxDhmsmL3OjS4HgtEEztiCQ\\/4bJEN5bFDrcL69gSruwosZYI4ScQIRI9luBD1sA5pibnbEEXB0hglePnoi8kTMw38MmoxDfwN57TE+bAJnIoDjKWkcbG49TA3+3kzl6E8XyPTGX5z5cX\\/GSXWBqQUqVcO7vjwqawU\\/NmtAitvLk4iZfZxpSr8ealP8BnPbTDb\\/uKAGkbZ6anGpbSXrP3gMcJ+klMqSxojEwFwvRniSlrP2tEmjm9Mt8DmHip8zWSSlxXB8r80CtOV2qgX893tl+Cq9QdUays+wBLX0khXiNmsrF5yQML3qt6tnkLqJmaP1sk6M+NNqdY7GH0\\/05T3HjP9trJuE\\/HxD+mtvzYq\\/RL\\/WvEkNGwoZ17FjH5ffNA55347XQQYRoJcRI+06bvcYurDd3F3vEfV3o6c\\/8CHkhEevy2Q0b2m+9yXRVo88kGMJfCNRF\\/MtBAUAmJnF\\/efAGO6e5YVz\\/W5COOk2tiTz3nU6GFdR\\/bLrrvr9Qfg\\/YxoHcylT+b7hssz3YBVHP4U\\/LKRiVh66Qct0CjgXYJjvqIhMh8QRpSioT39a0\\/eoLnY2\\/h2fsca5zmMseOXHgXCg6BwK\\/1DWf27+RedFZpek99tRKYwoAFkBixQ7brwmGqZuFXAOkyBJD1oX9htjVt495NPKaT3ncBrWRN\\/HAlYedS9NCTOkY+fHxM\\/XJTSAYFS0Tbc4vJZMPOmXt821Uc9GWuOus5F2r+78xzcYsqFQQMI8jdZTp38ASkt2N5JNGBGehN+Vp8jbLcpGSlclLDkP9cy2t+un9grEsfjQUoZsyYw+lw+f3EKriLg1iRQrylyUoIEpgV8LEgy9wYe8y6+0+RbuSorB4UExbMk\\/L8b6HSFDdIPtKpUi8Xhzd0nD0oZgT7TSxJRnQpLyqOKlHQdvvAbVhTBhyLfCVRQuiG0pNrfuzUKLNEBOWzgtVt7avg8ZX10+zT2p2WPzddOboeqBXGi5a2UNmIz5IocGFTDCSRvbTYrzzjrtF8GNmxsf\\/JKTfUj+VhVaInMzQv\\/Js3FEUW0pGNQhZB9+\\/Sn2MVtMopjAaedi6ZgmPATnILVdM\\/Divc9mh6Kpf3lsV8mReIO\\/bhQlNDRtQtmfL14A+drkbFIn678FsmJjDdsAOvT\\/85czelhxYeMYW\\/SRB8hDXKSTeUgPVssmSGI+AT+WrtEgeTC99hAMtDWxQ\\/iTsA38WXxQpoky3jBSoro5tm2E1d1Vr66NBnyEiMAqVGrzLKmZKWiwXlgmzqGxwgDz7boOdDgnfp2501NP0FQq0slAF0mK1wNnXP91wjzZ7FgUL2boqTwjr\\/blsskZJNTeXjTIi0W5yVNIMPJVijpMRK5sOPP0be5kq2v7pCsh+TajtWxt8Xvkajc\\/GWiKUkYoRvblODHqUEOJ5flA+nVavvUvBCcgs\\/4sz8WhhWVnSfTlyOlJZRr6WbT2fnpM3mWCURkIL8XFq243O1wMxJRFdhr2YkKLFmPaAAMMpI5pVvVSMUtCjV0mpDAUEYty9KahD\\/Hhdfwv7ft+s4Kx0fVDEKAufYfl+a1PucePtYwxNWWLXnIpbt5Kp\\/\\/QSCBz+vjGxVJMVCUBb2RLSeP8UT1WrJPjtEULijdcrLg5cIJZi8QP5Cs1nDMDrkpoAJFLYvZHmXBlqNXkHJXun3uGfpLUKTZFrkrh+ZiGb9VS5CiaWYYI3wDrMV9yPJWNV\\/xiPb5er+rZol3crHw3zTdyhthbIHdb9cTKDAOqM2SQY9rogukjnaClqjU5DSLkbGbWKHQqs1UsNlpLfSDJgHv7TN27Fhoo1dM4lUATlx26B\\/NUNGkVFXWI1fg3DH78q8sRVGWG\\/3Nw8Il\\/l3jJS8gfvv\\/169tcuhcEsSjCllljn0a0Utiz1hYgVr93N8YdWTXTXNi1+xwEDkHRziJcQAm4uNCxYvYYB1S4HfNHl93cUpOi97DHup3OTOrJwZyJzdwkzfVQGPHCAVEXeIV5HMZoxXcsLBf\\/UZjPHjEDSooQqYU1tfuiSfl9TdO4UqIYsYo8sI54qTFHpuJdJffTgL84yg\\/QxLVFmaZow781MGiosv8jyUfqx5ulboQ1mFUnvacS8V3Qh5z37tKugvPkWsejKTvobJCSjXzPMzhspcJJZENmbLaO2K96tWIoiuQzN1v4SGL7i8\\/ypYVmENkjyvybf2NAcrinwTKBvizoVN\\/NDuoGGO7fmdcFRYNvzdwGJTuUN\\/FEcfbSwhFn1Drq9qlsPNon+ZUfwoUTgVdXJM4R9fPfF31Fr0IjetzIU4iH2UzNHTOmltTE6xltALM0fUAyVLHNdBmiZaTQ7bJmWsiRrXDBnv3TnKWJ8mf3xprjohNg8vcVJq63wvG9voCMpDn7wUkGF2IaLF\\/nfibSMXHGW+A59swvXbtNJGefOmm5Sq0rnQA7793mr7byqiYACRkAWUiuUrzdM1ZSGcU7PQ0yZ+NtjCCOpYjTRbW7laCzBNxQojjaVMT7ZywDFDU0HMcSPKdXkSDkdN8vrslNOf+iN81Baj7SwcaJt4UZJeHT50RVPUrie86aDGZYY8hqsgtcjU8e82VI6NGjUDv\\/ChC0HZYpe9odJdjjsj9aSYtIDOEVCE3DYhn\\/J4ERnvrkSzgDQ5XXu5HFyb1eGNsItoHkyBlj8Xq\\/mWVti0\\/0FbRsT69xSUKbvm9dsEBKcE31SvCdCFxDTySgD6ghLPIhcfcVSMFKLEhGcJ8IG3ionHGLgHf3bl5VdkoXlFh3e4sRGm6MGCHjQlpc\\/+ce8Z7b6lgLJtPY+Vhkvs9K7QQtKe+rtOXUx4sscNMp3OLB4h8Mvzl2iD\\/2m6ABeDrLjUnIFuqJyI1z3fc4QK0Fvep13PI\\/4M7UAUYfr2CjXaNd8oXEsRGXco7BRtscY1d1kvtcGSoSWNivi4ASuChnZjOi61OflnWLTf1tqpnzBGoILulUXGi5MH487GPsu8CcpaNKb\\/I2OUWcO3VczfuOy+lkXmZy4axJ\\/\\/BR0qKr9LNtXRl+lRD\\/hb2LHP3dNBz9XoWnV1iPmzmVuSFaUZaJpK8xwaz6X2zO2EgqFp5+uYtc1HXuotwNgeFsRh1zqNXxnRjh4uP3MJvW14saCXWLj0NDVql673OVJDUScd4b1wrttHiQeNlH3uh44BbCwKRUxEz0zXFvBO3cdmEaauIDDvieYsAYx6vQ6HEJsZKEIMUnR6bSoAcbVMXLFiW36oM7z98u6bZV\\/MQk3\\/K6yGOBVeaSmSWheH2Gez39ddOQQ\\/fdk2rlfnl13hyMLDM+oOfJ31VhI6zJ0GS9DDWUynMTWHju2oR\\/0VfCg2stOH\\/27REtdSP7mk0n862dmzHYA06rizoqCcGWv7jKZppkTKJoVu+frJdwxVTU8F5O+jP8zmT2a0cPPWYtVdyJlY5mMjFc+S4Lu4XsMeTPtMpTv5jNAR482+gC9BP6Axp31EQ2R2HCQsFLR2rBUIo5JEUv2keg+yljOYPTSHMyCuhvA9ECaHdvYOYFYSR6fHt+4LGuXB8Tqofti4KckZp6YAf9QfSSToqbYw2WA0YOK3D0kYjcAc5+CKRqN238L7FTzJgu5ECP0DrkzAGU7nQofmbv3TdRIus+p0rLWOxrNWSnOCNOIj\\/YjA7y2TpeCNKuEX5TilArEgDR09oyOLhDaYHYJ4XAlqTK8VE1dApE53yJMBEXEJu6zH2fvTILHlWaOLsL\\/V+10HxyAVVk2xALGcEn\\/STpv0h6zK4jAxQRgA6SIjO9MNI6PE7GC+t6FbEspqrYU56ikWokE0D3tIgeoIwrGga8xt7uZ4FibcjKIg4\\/\\/IUhD4qDRgrTkMGX9Fo9a5CCzzECDFHvRiAVxbOY2tCOWBI49TergkS213EZvr04nQErOPWp2gLc+d4W7\\/I13Ak7a7cAVkMo\\/pLeElbmUzTwv4ezH7WnQmyofWLazyzSKd4eFqyRtL7\\/Vwi1Kz63ywwcCdYMgdvF+0gpVdZtSoRxez2sNLYO6i5lGhIhm03M0tqPULs9T6o2vore5XfNH2erIKGHPl5m2dSJqbGiGobobGPmf7i7NYk4y6WIRCZfcG3vtEtJCMPrJI0mmp1qms+YWeuoVu2JRfAVPviCAQLwGKf31LRO0Ai6htSDuZMTh6fm7B+vSkW\\/bMK9Lzha8XS3mp0U93NaA9C1b3k4Sfl0SArk9KV0Y8LTMN8g+0R4Japo6qzM6fUJKBTxIan4Nt0GyzQbg04jmQse8+\\/cJVYNr0uKTvrrPXeqBTDonL853RXbc3odI\\/pqA5stnNvxgCc+JFXgUTZc8wQVv0aBkQgFO7Mq4o0gdG22nJmpHKggkgJuXpLJB19kRIb8aLTOR3g2LCXPBOeil9iDaDxxA+NHjfuYefi3Uq\\/hTFD\\/5q8WtiCmQ8dBlAN+RLISvXFOi91BWbyMGAHfigz4oxD2RYHx8MDwb8USWlBSb4sn9I7E8gEfgW3qysdybD8KlUqSL+ZSza4\\/LR9OAzf6S96QFZMLalNbdgoOBSWiQk2Qf8RZsbDphsT2thPS8baUjdxDGMwQdz7yye4BEAzhVcVu9PbalKsu1R+I0sicq4j6mvLA8v4CJ4W6O5g8b\\/N\\/+MpSl1c3ydTD+KiNAt55sB57Le7eDEZZq9\\/V+PJumoPWclrmu89795BH5wfedH9LoaB6Au4rAdyE3FNEoMGqghnLTV08IE+SyJOXDuzLqbEBwMs7ZC75U3aJXKGtumr9rB006GoFEDH0D\\/or575szEoitdzOlCajvZkhKhvFGhkWb48FSWo\\/ZyGXBWtf0KAP\\/zqvts8CxOlMPSznOPjeBrPXpEcZQ47+5HdC78redqCbn1Sm2uZh\\/\\/ZRIaZmoSAEiQD7vUkO2Vq1sp+\\/v6+co3Lrl3qMaw3hXGjVig4i4tPiEPLb4yO6umbMuyxomPyPrNCdt49LWKe2+B2qUxNhGttqunTQaihe2N07ryFL9K+aYKyWV+ey\\/vKOjSBHhb34D8t9HB9YmgiklBR03sco1ZZrmEy+Ub0NWph2NCPJBAuapPuCeSgBjwSyfg4OG7OWCpwml8ovSsnHbAZUT9N+tVtGcOX92XwTePlVpCo0R0RNrQvPTbA+29fnNtiw1fOyPkfgQqOIc2aawg0MFZqstb3Y40b+JzxJhYOtZaAnap7YRwhNVlTGOjX0clmwNzvithhpMqR7DQLPYmg1k\\/6cIahh0TESLnRbxQxw0srgJbP7w2+UmhPAcpF1snab3HyERsCsGK68r3hlGraguSsIbcErOGNcBFw8JEN58UJxYpTUXBcQ5AigKG2AO3rH+Zseudlhfp3AOl0LexpYkfSsD0hCWL0f97iVb7WbQW44wLuMzDzDqXxVZSZ88LFbQRr2hJfzyaxeKrsPPCyjj+DYaBGWJv1hh5jm1Oajho9fiDWJXGOsCHo4\\/wyHgi77ivb+rcGWK29js3pBPHdjbak2+lsTfn1bwjfSD\\/loamilmYaesb4\\/N65Bixj2nLsKt+ZBjlieV+hZ5KQoRNrCzaz1KdTKe11hOF3H7KXAviWzRPvJmJnln5jFE59G8eRxEBwouYb1u3Dfru2JQg35w9ZQJFg0z\\/QLhfY\\/WiliW22fhT5opOmqJX7jFIUyKGazeZ801lrVlOwhJ6tcaV+o\\/3UJ\\/nMOseHNBlBIE7cxA8\\/UU6SjTKUPpXOtHdZzHXqj5GtF6N4nMsuHD03QEEF8uOPEMcEQPukRuz2Gzl\\/K7JkX6t\\/ouGg4vvFcaRMmFK+0isRBOzfcihPHti1VC3aqkQ3sx3EUk6W0TpMCdbCaXGKE2BeYy+YXgxrh2g\\/riDnqaOpXF5gxbm1tD0dDBPCky09llQIuBwdtgnQTjsHgElmiKyre2qOlhfjYECScRJ3PvqXrQZmU9qh8tXC80LqBB5H1Sq\\/6tiYNl3jRCP+1TQHlwth0gZT1qAl4ZyO\\/nCUKEj4WSC7H9aVjkRnX98lbqBxIhjS5SmLkkT369\\/yknMEAipLVFqGxNo6Ogl\\/OD1oC3TyNjRemfeKTyRE2mV0h9Dl80hsPJzoJ+Oh5QRodgj4lKda+4CjRNpiWGn7XL4VsgV3iAbt1ABzApqJThGWl+VndXpFqNdWPcgyZ7+cY7X9EOYt7NB2YZU5y7ZaNQH5m8qTnZ7DHEDaBfAKz1G3IsG3kH\\/LGG5Ph+\\/PN4oaJH4DaV2vWXAEiAYPUdK8cmtowzO+7W6y5WIlEfurejIe6Dse+UMfty2LZzX1\\/R9hVmHqUEK+6acHyJMEBymFwa1Rp5NLDJ3PhegklNCAVUBKIXAnAFUWbgcClLdvLWUfjjcoRrkbgk9hry9F+A2Y+yuMgWvsK7SrZLvXtaQIafRfoClZAnAd8Dpt2aLkic8qjgdRALkbREYrEIUmqK\\/HRquZHUw+9pal0rZq2+TATH0hdIs1Iod156bsgvfDP\\/EJeYDTFJuW5QlVXAaB5A2x3v\\/fmdxxKg3SGl\\/nCbRzf\\/2oO43h+QC6T1ZM1E8Ub\\/H618fwexl+crhEa3h7\\/3veEE9a0a+0jcRD3+Dc3JvQyV6TH1c3QPZta0NtLreIcwP8E9gOHQ77Ne0PXKx6mv\\/6WPmm9u50xKNmD0qNGeLCd3bxXl+JDi2OmX12mK9merpi4OTyUI5PzRKq52NnT2ZbYWH0niJk1kzOKtX8p7XpaTj3tJQtkY5TUiYR0mw8Op+VUfEgcfDTAERpYy5k9tJmS1ETcuMgd0wpg7EVMRWmuMzaTL3hIzd9bH7pNeRkd5UBgO5co8ZCeiBly5qk04AfTwY0iYavccSp\\/OLL24QBHHy8GyQQMjnqkicC1UagVnTbNORMmSYtYSm525RmT8C3ibppTuKFAdBlK13pSc6PfAsnOMxEiEQuIIrPymSayOSHllJeKZyL\\/LBGVpCelffiEN3Rn2xlbFJSWLCIiKitwZc6\\/grJds\\/OIntSAEMISNmvpDa2zQt8MP9C8RSHBY5F2pnZ\\/P2CBI64d1MgSphaeQyAybmtnCZl7BZBSHC2\\/RUgaIqYN4+YdOGzcPPG3rRQIF935UAWf73OZFAM5gtsw1E2+m3G64wxX4zoQ1kLSOCGOCniy5TboT2LM7+CG8wO+5czN8HKEmBRSLsGvCdM63xXmbseQbC6I\\/723Tuoe5xcSXNZ86v9lMkciFLDu8JmYna1KUWVZdMGlPGtr7\\/Cz6VOKnTXDLDLZ8ZnHViPrKemNlFjauWlKbesNj3ixNopaeGRoYAF7vcWZ7kX1GSeHEryMF24nV8Hc2D4ckbYraygAzKYeW3i0kRdTdXnRm\\/PsQFw+mmMK\\/Hb1r3d7WQ3yPlafVG4ENDZdksXlMbn8I1Cs3jAkYduFV7wD5IFnvxN9UsymIU3krXUez3MLqnXTmkou602clONmU5FVfwryo\\/q4d7tPrvrw7fiPeCzcE3VnOdWyRLg2oIVO67HH4Neex9arks38CaOTg0jEXJyN4lDHiuEUJBk2NZrgh5mgGlNQnbD4z0LBsVvXlkSlAZnaARalbGbwP1IDAec1uAKqVBvW4iTq8Ytqz76p8ulYohyNbBsBEJZaWxeT6Trv4wYSyE55vidWc8llF54EVM5yuvLLF\\/fSI3gfuPKObmPRFNqzJJeiwFJnrwafgDSMX5\\/n4wAm+6ro7ZDFPIY559B6KXao2aVw5p51OT2GDBZuMnWKRtHOyqfFI3wjkFFXDS7IfA8IZkN3OE5L8RW8Q7utwhrM+SDlqGxJDdKCd\\/JRSk8EA2b6r35CxVMxVTDUDaCj0dzbOryOZn9TTVfABeWl7oZFONDM\\/1YJsDGpDA+1tkV8qukrAZ5Awpvs393x9p1tPlN7xIA04m3OlmRrLVPCwJdhS+NKbRynuEBzo1MJ7AYAS3R9BqlCpvKNIOWKn4EG1PIaeyK3bw+x2B1OcwwW906WEWfhEisQx4VG858wVBYNUWI3NsYZT0QEF9Nc\\/elXeVggwIduBcAdlICKnSVvwI1UUJrdWhIk0\\/j81rNzQfRH\\/ijxZOEgpahH3RindYFCIgEyibHI6z2ezvDVrpyeQLwFe6ZLClMqlWT0mmkGriHPJ1XOZUixJmbbq4+EzX4K6LAGtChC4ffmIVqxIEvppCwAidmQLMv8zU7MOXRD6YGcsCYfjhjWunOnc8Gdj\\/a26qu+zlQKshbK5b6tQ6Xe5QEL0hlsl2AolgkGbf+sN4dFe\\/x4ThRqvdLR22GeC1mkswpF0Io8IZnQeiSe\\/lIjIzLxIY\\/dEw8PNc3VjAazNFfqzPhPYFBI\\/8bfTYjtQ00ZfiY3AE5bA9R5m8pvVWSqzQISIqjpvfMKnzqYgmG8Vm7VVnL2A3NlGuYs+noyqcS8kOskaJ56fVoQ1K5XxzFVyTqvkGYUqYY0R7x7yspc2Jg19K3XE5kI8oVV1Axk6oVI70qb4xyJHbT\\/SVo7vQrL15NzT\\/A1+O41OVqemZyw9T72Js1op6tmu7T+rbngEY5LCVgpCZvcxSAybF+zklzBEW29lex80zhEARq4dlsEArRrgPUi\\/1oWQ7AXhT7\\/7N6ZoDVE1iIOHmPUC0jPbRrcR9rFf+tZFf0JY0\\/5ZgvH8HdfHUZ7O99YSE8qJq3RVW\\/E3GmORpUTSFe\\/Mwxx8DwWGG13PAAnN23hjiDkghBELDm6irfuwMdn\\/U2i6KQZSWLhzZcWH+zKsStQ1S1uWZTDHXQJjINdP1Qa0OkEtAR54Q1bcmAUkmj3Ey6Caa3fzKwjRkEprLuAjv8XKnMX\\/d04W1aSd0wz5pSKRZS4RN4eAsd8Vr454lIgLBCcnVm12OhQFqTyko5sJ0oAfIh6om81C61kOg9Rq9lGc\\/5EVb+Y3t+VwdR\\/YC6pcoc4TGRfN14uyqX26rZX\\/kfQTVaNjsZNx77DX3s++TsK2zu3gLUpUVHzOjm4M9ZDHYr0doqxmXnBeEIqrRCZRroQWZmxzrtwEWBubPoQ47CqiRsv1GIcILzOkKHUaaMkPEu8beSsJVA8xS0RpWe4KMLSEarI+l9CyPjMKyFnlgMI\\/PED0uwbm1Zq\\/qN9BeWxvF5a815PApBFa6OvoalJPmQONGcwYZ\\/1umQCGmlc\\/MRISYxcVjEdDXMMLEzxGon8+46mKcAwv3+ziEyMrjXDh7D2fYfjbbbF5mcLJTZ0sv4YlDJ2CjCJ8gtBwntRLlprzkD\\/DEqdOO9ZSq\\/9whYl\\/HIbBK9TAiKOFpN0KROxPBZwYwI7z9kkh0y\\/o8OngSSD0+36DAbZJWrTAJQ8QyXO1W2QLwTGGSDaPz\\/1zruP0qULD8ReEYafrufQzDH5b6r6kfRLTew9l4gP0TIe5YhuwwJVtymzwuVpjyjt6yw+pSwuZTi4tGWvBuAPBBwSIhn991fqAoM\\/qO4wEViwCh29AfrA22tyZcqHpDp\\/j8LbObcMLUAp3iz3fuCTvn5+4rCinIchYNr2hbiuSD4LwU9\\/empe7X24smhz5GKfUBTyaLL0sh7ds3S+wRoKnxywBcS13uvPvu00z0a2ZF1rd3LvqFUUNAw+e1ejahDRL1ssxGWnAovaDHejbrvl8eONeNrFcpu5x94kJOMaeSzKwDE7JDAMfwK1Dp+VFlD8fHesXLZg3VpLF8\\/neo\\/YGAovYCPgq22Urycmpc1aUD3J3459HNItwyxY7bxViGyb1X3QrFYf9v7BKw59mrc7ioCfZMoQ0P\\/k\\/GSjcCE3EUSaEglJN3oQqhoZBJvZ+kmEr+f3zLD76TW98MCDGxtyG9Eco\\/M9gm\\/7TRaXt3uRXwqUX3n1uObP8wSm5VsCkzh1ThqtigPJMhRTU1xrId1L7HxpDusqRG6vMdtrAR4BDBruvOH0HvbV5kOWHdTKb+9WJnK0rPDO7iRH\\/V8WPdD44voMujfmRHw+f2uZ1g\\/i11PR\\/1cc3A1cPofLba9Hg4jIvqcqXyClmFTDQxc6vpJI77TAr+M7VTbO3p7tTAGck+lpsDwIC4rGo6yCUqffVQeDFoXVrJYm2o2e+ey4fLWU3p9zpI\\/hfW4HQn5+v\\/hetNwIz2aVOlIiGOMtIcH7fT292h16dodO12oGU6TeLmHMl9RGLYu6860uU7VRdZO1yxvvHiRKdGsmguBlBgfxeuieYBsaTfu1ygvpKqE9enl9xdoC8IqI+czkHxvncEV9sCikPqqhPs5vTGUUi6yjKNnoG5O3n5H3anGDlNrnzKYildPJOeko8GBu8CXSe9b7IBa3NPFcTsSJ1pGosr7qdqW+zBLRfQp7uF\\/skXgZJTHonDhjz4QmwfWB\\/fmx29jhr2y1WZkmZYU83Q7am60NyzcAkCWjUvuQhzismn8az8kpGjZ0KweUub6Cwc\\/QEKTHrHc\\/4hhUc6qDrQHz2ZwAIV2RRl6OIin8Vm3jQ9mO9lFKH87sZ5fXvZTu2r8uZG5QRSv0XxXqjyf\\/I\\/eaYW0JQm6t4oNzYVVfxl4uqad3b0i8mGCYAhQaOstXrIdNVmYXb+QP4\\/6aDyU36G\\/gphz5is5bZO+wb9us60oKFw5fG3CO85FJrv33xYFVZDW81XmSx2aNWZFZApnF3rTjSpeK0Xw0+8WAbgmtddc49pJb+UZPbZ96oFYzSZ4KYjEHO64wfurGaWD4LTYE9nya9tqn1OEcSE05qfDrRpgs2WOR3zp6P8V6IUgdFNh\\/ipz2aUJqqUFpUlibgOMtCtWspUMRvHh4+DHnof3QEPqAHJFdJoy\\/0mDCRfaXi+Q5j8ukNulANJ7bOxNHRnEtdrm3lP1v4ObcVAZE1fUsEnm6H2HGNFZf0vUwNsyWZEtJDUrVyqcKoMEHvVGptD0H6dMdtJu5HBnvkIkWwra8\\/Gv08zel45zczFEM2DH5hd7vzpbjD+cNN8r9ppABFdntm324KS+JSYgtk7KGBgiSL9XJ0JS8Qgp18z66X01DXXtXJC7R04wlrBeg+OURzYEXl1N1LLmuGKaXiyxrCmKMTlDbagGaupkleOlW8rPoBDe1wzBE7ulSgdFu\\/sNYcoA0aS\\/+tqUjWuNwFZNEL3ffyqxpMW2Ip\\/vJwqW9HkOlHSSfCNz2+ECqP5XkcHAApepE+NK7VeGinHJEK2C6SeWBN5zEHQQdA+rBQ4aoiKlBtGAmlPuMsNn2htfGle9p9WynKd3rJNrALL+DRBz3J3NaZnMo9jcK\\/BI7pHmDnIhRHO1QZ9zTe6fBgEwJoBmWp+95E+474zBIwaFeGBDijwR1lah4GIiDm0bFz6wA3a2fi0GqMBRS0LYWRTqASDJvHi0tT5HwfvVhGnc\\/6u0rJIYqo0stChBJeT4Qv3OA0TuZqEX3fg+y8E6JRsYB74xYWO8zOWWA6KuvkCgWITK4bTzF693AYf84n8y5f8pf+yJMTxxEJ3WQ6EXen1d0h71FNTKrbMEl86p6AMzc6mAyXScCtqRn0ixlR7dNEcQxvlrf6dqzuOVZ0yvI+PNi3bsE2qRRANE1HEmq17F40IHF64NH84KgT15UBhLWiXMKs\\/re9wO\\/OT48SabPkE2zn01aXego+TQJbtNCUtrj67vMsOgB5IGn5gUI4jKrOkKsVI0OTc9GobcA\\/OlK6uOns\\/Ka+R3RuwEC5c0xZ6wcsN+Q4gQVlOaRpVRPVhh1iyR0mQViQTBUCDO\\/tETVnkzgRNb3G2tkaOM4MPTc94Z67lpCwbuUcFkITTRbPdHs8KyGi4ZPXrWjtdwZDlK4+3NXb5OFnVFOBsbasDUJiz2WDVSU\\/BZNXzkdd8lgzT3bQIcV8CtqXuuSmKe7+cWHjqDTJVqkWrPnR6bFovEsWmCPzDU4xXJC2ZNeexwkpqucSu75IZmQcDghV2ciNtvgzGttEAKKxxay0LGHPvO7QQ5cpAkgpXP3rhKBmNrN6+rsXbM\\/q9+sfXGE636wvwF2jhk++lQRy1dNX8oBxL9WG+rfSzQrkan+tyGbZSFyGjKQ\\/LygSYPP6QzhPuMN+ALynxAdBIljrcNIFEjsEjQUYU7GW\\/d66OmwlcSfwGR8BdZ4gNTPzPl9HTIEDHES8OP6ycak7pl043sQlJk03+x6mnadbZXsPNvrsMHLAs2Ri8PerN5qKKjTB6skf4xcp1PA9gqd+WI5OkBQoyW\\/Nm4cTqiUsbgOLGeFEoeB+hjOEAV9mKGivHr7\\/qdjC42vnrYHpBGKfb8pBrQjiincTMI8Fvs0vX8VQMQB6jToUe1i5i2tDga7KttXLCzQTvA7AuazxV4fiz9mGXiNUQXMHySYV19bU+HCHreCzvcE7cLdqbr6dVLjJu2L1E+PWjt\\/Bj5l0VdaBpZbLtB2AxzVInoturiz0S+Y7q0QUG4wOC9Wlor6LuMjp6AYnmzqW4DDDLL3uIR9\\/LLAFhxREC+PRoIj5KGuzFnEWgi8GlxAmcmcCQDLGVnEydF\\/3q2t17h0IZCOyex5Ves9uogBmB1s9IFNMYqFEubxmY9oNHvl\\/1ytemSVb3ovsyz4SphooOzBanxTzSFvAr2\\/uS+w0ZLaUc\\/A4mYu0SrKzjeOL7wFWTl1OuZCE+nxES7ZdbDvvUSuxeRpDAv\\/Ox7PwgTgxFRQ6y+dcc5m83Ml8gfh\\/TppSTGJS3KkzYy+tBrc+ul1ZBJ0hW4AOmvITB5aXk5KInHcRaMg\\/Q7oIkIj0rjOjZjQuAAwzqI7XRQdf7kDWbBi6SXlMKxbTlSrPqdUC6W9yeXtDMC4MJSlgQ7hKD9KyyBQqVPoH4ByHERP7mf5\\/18bhWCF4X1baBLO03+GUYlI\\/7yq\\/nUxpmJQ0TaVZqYKVS9tKz97+ou6vX3h4MaBVIin4Kuc+knXOqPWX05qcgd5sQ0w+J4fm4Rq\\/V5jycXpQ3HMlTP3HnaY3zWvqsfrPu8dnuDVBx+CgBrE1HTFv6ju\\/SXrFiHnnXnaeDxb6qofEfM6jakkMckYEaF3s7zhc54U8g1QrgEa2mhwb5pR5ImnjNHP4dGVSm3MOnnIcDaHGbZnqvy4dpXRgeaCbI47Z7gOP0h4Bv+EEic7s4AR0ePVq7SSNBSOLnXi5k5WPK4JQob3bOSXjOEDbZh546Bqv\\/m6xLm3TB5g17JomXRP5z6D+yJi2HCKNiXsKVWzTe3j8ppfFdxHIE4nJ3dOogWWHYpVjOzSnL8IeIc9o6mDM6crkn7RUetFs9SPq5ds6UXFJsyTbME5\\/HbPRL6MA\\/l469ITwrG7DpaaQj1X4f0Z4139wTTCQq3gK4NDg+i8xxCrUeKZKz20SpvR8l7adyntWGvk0n+r0CXGtHYsoXvkEJMkpfIQiVZOSKlJgPJj8xTqnU7CEz08hkMyV41XX3ThxZdx\\/X1WJ1Mi5MfP70Kzm0cwoxyxVSKi\\/b3GO93Y1Hz7NDx\\/72BAv1jNjwLj3mBb0o3uVFzTXP9ddq+ipIquZ62QekM67TYrCJiJdv4FjML+TSDeuL0i5vCr8LL3gHQtjpe9lDwa5T0Wzq0wJ4Ny1nWR5nrwSi4yCv9UcIuJBYsaHLv\\/AH1in3lv6jBtMCw\\/0unkfanueiZYZaLJJS9CvtJga0TzJDMwflaI3yk7gYw2VsVmYbpPPEZLDTli56cQ9VMEYvSn1YiKQE9plaeP4IdVMXrnT2g1e9jIU2OH\\/4V1GTvE0qRmOKo+AFOFUovF3LRdR0ZWNNI3GuUkrxlyz0\\/66LtK0jxVapQ+RDFZRCTgV\\/TpMwO3zb4VG53GgKlK\\/rVisfTa341fCZy8pKhTO600FGjsLrSUcvQ9rsVBG05frQ0wvb\\/\\/7RjhIgMNvQ3JAKV\\/h2rCkv9vLEwPH074+brfbWw7NmsA7gG5l1ikOciJsVmxDEf\\/todUFWWzVm\\/dEoTCYYKiL1KvOT6RQ86ot87dk3Y9KFCB6BsJfKtcDEzy4blBc8n7NVGkQlOYDuIY8lNin7fKvKmukVuTDmvhI7Lirs2FWrkFQOx1L8MOq61MYZDDYf0Ekxv6FW2C6nz55Sn9AzJj2LvwgP9vMFFNCPpf8BUAnrrAA0WA1LghJrzRWKyz+5bncSGRMzLOs5Y\\/yVqwwgR4z4xvczg42rrX0mhOguF10D\\/TVLNwmFTgned+JQaNo9eeg1SZD8ZQxHx6RW7pXVSUTRwOR8HbyHlxyjuByl3Pw57HP6ur\\/KnaaDzMO7Q\\/VvsvI0XX7hfQybJU7LoXjtET0e4Q6J8lUWuEq+kqoSaJQ4GUU7gs3YJ8vsQASQmeUg+UKHhXR90zHfOX2q5cPV7tc28mAcRn9z5TXLHy3WYTFlkj\\/GXpvMlBgv4ikFWFxyHFmobmie5rIE2\\/7udGvlMatWql8FpR146uBJ+auFiyXOI8mEzvJK7ncsQGniXQdCAnuC2iwqCMICsC8gxgCysxyvuKcn8XErKGyPzEkz3E+P1Om36\\/yvYFl5xBrr7I6cBtdVJZZKRKGVcpE368xoRigBObOBhMHAmxS9R9mG79QlSV3Q6JHH6IwH\\/WwlBHAADEpP9MrKkDrzf1KkcvVlp5Y5ZY+pXhElLkyBaUjCoi+mMPNTqXB\\/TCakieej5tF+WKpm6W9y452RB9tObz+1EwW\\/fJrDii9OkLdwCH7JU0DEFQc1Psie8I5b4x7RtS+rszpJGgsY5g8IHYNwnyyoVN\\/lYfxdKISYq\\/AP2gSYb5D5QReh4qgAyDrIQYqCIwDA11u8Ffs4CGfv1ba2380z11fh09smCpOujmvJeUrvybmWqcaIsTfCLYPovmIPiRTLIaiexl6euaZYbU1YXduXwMELquZ7UMt0gOtugpscVdtk+IJ2KWOrLsjIiayY292DLg3vVKNvfC\\/7Cb0HGv\\/GlIA1+emZxe0fmY9ucKs70Qvml+aU2YdYsE+8\\/TsnXzpMqgy6Krrc5XeFufKNuuX8eqV2VCT1ybpXUd3yELsS9TbmS69RPpcxIEGzeJ8\\/WeN8kCrjx0hbcHd1pMNVH27w\\/OfW8lNdgvI0JVk0\\/fMiNnoVrtqrsR9JVWUbcvqKBU8Mv398iSuu58S6hyoHPy64y8vxX388FREMIGjoGbYdiwNy8jctU4Cm6\\/wxHWnvJoqQ\\/PwPyV4d\\/NI+rh2QFvOgn1pEUHJ79RRaR+aJXgy9xkXezBXNqepGkQDQ1gAm+C6Otjf8dJ7ZGXa9TJy2vwHqtEmO3XECWbiyU\\/IGrCKs+RBNDHLLGKSXj7mY1+8syFNGJaa3+8Duwdlg+ZWM4K14pmsvNwNeafzKVKMmt51ubUqobvDh04xm8toDU5vr5RbMYtl7zPp0IlWIqyyJiH7pRsTNlaegkTUcCEsPNXmTiQzcNSu2eHU90PQUPQp5ZFvZFr7J8dPyHr7Dr+n195ke5IP+P8xm0V8eUy53QnRF+I+W69Dwn0HiU4kfl29GVIcphZg\\/tlRXJTSST9bEmDxzfXbk75uqWdt1ujLZQuwWgwfeA0+5mRvdyo7ZCibYM8lK8blNoDlVIOSNjffqfwRdUlKPWWZaJ6ILV\\/vVXFKj2tk0HLA4V71B37VBgTG1A5N61OYavu2PndUDu\\/S9y1uK0DvMIdJgG\\/GxwsvYXq79K2v3p4isJWdV9oNgpOw2spKUj1POGSa02hkKetVg43vnWdgkU44z6cZaCOrvKjidMJhFNPg2KCUAzfppHT1M7jIVBF1ai28enIKoIoqbUm03Zbe81iIhpJloPIxWq+Rjgomu+xV5zBh95Kdly7b7GDP1VBU3BP16hMOCCtZBShPOYwAgHnyfi14IsDGIw3tshJYspU7\\/iTwFQiACR0Uqg0njFQQ3dmPvLhFfLfTol+jo9YQ98bvijMYCbEsPODhQlXXme6PEVYZLRFIE9EGHW4bugezC94aXV52ct0n9ke34WJ9ROPnGEipxp0HHWhbSbFcndEcgNbXlX0STWgofcuxwqiyJVYaYjd0zb\\/DkruJCK0GrB0SQmrnbE\\/GeT6zm6BkDuWCiPXIG6tZiK2BbTU4EI+OQfEjy9GACC4J850ho6d4P8yFFGC8CE5YyhskjxA3g\\/M4l6gNxIhVlqmjNM7IR8GP\\/sf1Kb+oa3qoOCkAFs7cG8na8VVS\\/3EYPnPLTUIvy3SiLwjkZGu86O\\/UH9nmQrX2bLNowp6mhVZ40E2mKji9OiwCry7SSkTahD\\/imlU5TeZcCdhNyATv4\\/5KhpTdS9CitR\\/77B8fmV+9HvGFfoHVIeUwA+ikDO+XUKqb3hgeZVY8Bdw9hb+D3WFdcbaBpB0Gd69NINrrt1tFNB81O7LjnRevlYvKmT4JTOl0U1QlTktnNPDltqxsSn4+KBZv5EOMaKLUuImazOhT4MPYZHTrKB7XHQuv\\/na67Nla2CPpw+iG4Woz+0mZrsnhiHa2X6wBBRhJLYeZyPHUPBKT2re8fWTtiJk74mulAfrF+6PGEenJLRg4QSHxYOPT1N1eNYPUrs\\/\\/hgfRovGSCouG00RyS\\/UV8PrzsabfmlDKePD46O1UX5h+77IrLSeuLriyIitqUtTxwlUwpmvZKpo8oaYrZt1AJw\\/37fs6KF+9is6ppw+SVJ6zL3oQToHMckT3Ywe1b9muB6weFd1rQL14Xs0mg71yDbucu27VE9+Q5SLCGZ383sQfwJJwohdwzCrm2Xhx7YLVkFEPiCy\\/UIPuRv9fBSPKu6oyHMj7PnqOL1RcX30qreMLP9FNJas3QOCDvZUHkIUD9\\/Q52RnhFgpgxDU1M464SN+FUGbwV3WwLHo39C1kcfQl5llqrbvPyx4yOB4GepVCC6tAhLGNjf7gqf1avYApDaq8iu8KA+Wvc9aL16dUYg+aj5jCPV23BTZtADkTlitDsiHEHwJjDFrp4ZafLkkQANhrIb15kitgZa4fvFP5ucD\\/dYU6RUd7rSLg5hLK35f5HqijNYK0ObOY2ZjLynWADLcKSnZqOGxcJ5bHgx9R210Rd8Nu4uMd8T7zcZ7Ts0KAH6mLZ\\/FlKwp8wbWUYXJAx\\/pFE\\/Lr12KditfbvCZzODymkEGpvSz+\\/T7s5adxk20IufS3lYZmq8NdiQOujK+2tzjZT3r8ROgoiIqeoKunPTIN1uTteF9RmdHuyXlVw\\/isabGwCtZ4DNNlhuqwizfe+3IccGKbIPCYYVbF5JVtNgzuWiEMtcwKoFgEN7PR1UqYTODc\\/Dc\\/yWuDbCjVgDtbgNn7IL2EiW\\/Y2ChRtHwtoGRG0UwgadW37Mw1\\/AQRe3OjWKSVns6iDmBib70mOanLkZWgjZM8CP\\/qTxpsnkpw9aFIvTQTgLE7YftNjEqOPyyhzzNwRcjbvDvKPIbcgZDIH88T2YAtMYIJ3JWwUw5pkBSIMMIuGHIjedBMQBp5d4vKVmJjo814eu0+i8Q7P0e9MOhoURI8ASZeloQNaWoI0th8kGZk4zbnvLUEYsPHN8f45WZ+XllE7LjB4Muuv0+e81it2rj7IbyM4Azg+hiL3wRUiQGyRleZaVO1Bf7HOyqjdA2L7zYzilfoIFxzRhdAZysAbchnyUv6KNZI33JR78OoS0fRQVc6M8nbwaX1H7h73cFi5e7N5hbdqokTs3\\/XAHxHwMI5RN9b6bKIQAhyAD8X0qKmqOKzw2g8nxaF\\/K\\/Y76GT8Y32I6K9TcnJ37dmRdLjQVDASkcwhU\\/WYYdAKdRP+POCvbCkuzmF6fxPo7pwJ2dSLQxpT0lmVVyxUbHmmqQmSYP2o6Kdkh7jFQFny0YFEt0d7hDv4LJsBPp0BqHXTEv7lsM3vFguYE\\/6AQERkED0xsQsPgInyIz2tyhcHECxlSwvsgKPSRxGarLh3qF1BO7s1W5BJRPE40cbaqOVoVbdrlWHlSYWmqtXwnuSkxMMgvg8WoFljg0lEWSMHfSxNeImMD4uAVaDhyXi3dN1fdEQqBO2FVFPKEYK5u2+i6wlgaxwlVVKbioZdqLTgeAfgA4VoRggid4WdwMtpsWpL\\/rjOMz8S\\/V\\/\\/ae9KcZWuufI\\/YD7E0mXibo7dwJSCPCU5euZ065mdaWRAshF0dTUytCcDffVbZPtmUqlWa6RGfUEWeGVTtAh2aR+Km3a6vUx5Hot27mirXDCME5xVnvaLziNMtlmHjP2A5eKrt8sBATNnFCbe1FKxCPsUXW5Ea9uz9jzPCeWNDdckGQ8HePQ0En4BIv\\/egeB7orLGc4nRYoDO780Wqun4Mnv8phTBdsOTpE482c+7feKD7XCjtO2OxlTpXhPBSQ3JS5J1XnuICVqdiNZGEIa0pIxjV6dD4H0oNKm3PMl5nqEuiTsaUjelqQ9113wMpJ2nEs1fzmWhLuzWydeY6qgI7D4KSqdC8BHateNNNm\\/FGkxUYlStPAScvkgaKlzei0jcuJf6JWnKQ9MWt4BxG+lizxOdnWZLw91jbfQ4XZIUe102WV0XvdlcKDNVyNjgPrhQsO6SI2i+Oc\\/NrNBoByGUePsU\\/zfZUnyG8krY9PMmpp\\/xAw4vn3Dbr0gYg4s8G8cm4lXptK87KIDDgavnfBTvljpuu8\\/dlzjrIoR+riGjLYczWj9TjZeBCPCgVTXmDuxrFj6z8SF9PrFcPyH9X6q8qRG6496Wer8hoXVCedtcHLimUZRNOZ2XFTBoYEOb4l9BR3nJi9kRG8SmXtxWgy5MzVpCtPnbgfoiJ1OkW7SpyEMwdUyVVP7Ey\\/6UivTpotQCpe\\/2T4InEu6txAtAe896UQbyXSE0AlzTrsLK3EO\\/jZ8PGrmiiOx7dCzWcWkMdIObQrZYoC9dKJMzn\\/TTfS4YwKZa2F5GVMbx7rvJpmqCTw0F1SGpyN5WBrLsk1xa742mffFPJgh1ULhQKXjU7qpsDDYGqS6DT\\/gtFBgJXf7wgFWoeN4+aoIcw1p633aB9Se713+AWoIIBn0o9szqimYvvIo8H\\/igLIu6NssFdbu6VWeGdRubLUZA8t79exegZ1PRBZdI0FMCruSUTjHKY9LplccMEKlFCK09u\\/UqF7CDPp2dAwOfHEpX8a32+57S3t8bAcd3ob61B0v99ePkaeeQWpEDDyYkBgGUgW6h4YGNUh9eyCJJkMIZLH621mSelJSSsjCAcK3+mhtjkyFitnyc2pD97vqGfhUdnt+oP3G8Lwh7T+4vqr9eyoSp69O1oaSPmq2HQNQxbf\\/e4wUsMAKTUMELiHmhEUFtRBObKdNLAuo5xtUrTMx5apC\\/N3hyui4viD4EFWSYBSCsXXHV+gdL\\/xF9gMC97izFhgVMK8xB4wMyHnOfFiTz2WSIVEGR1scc7qRyHOFeCleWAUSQE+QyFGmT8DVXToXyAxW\\/PNCAqm+2Cflg32lANj1frq2A66jYoTxFiCo2gyPmsj8wYj4sP3ZDgUkj84FWJhuho7jqT3\\/AwwEh1uRV3Km\\/gf6Z+DmoR5RsMsMLTVaD8P4sXNST2QIEVc837Xh\\/ebtQ9EvUHjhehzdF+q6qIbgWR651fWQkYXIgAkS61GOedCZjT5u3sdFXx5EwLL8\\/9+6lqKFhprHsGTfEC2a+NvukljPo3Km\\/Yr7pA+4uNZgleL8+1E2RUM3MW\\/nPGh21hE8HK8LTRepD9B5fAWDwot+4vm7znm5T+WN+OYvI1Q7eeu063mv7JZR9L2ouUklxVwLxfZ1oUlgfPi0a59C7Onc8ugOwyEVTAlLClCPUwGKdDgzLW4ofqJVG0fULOvni\\/q\\/7P+SHjrCWVWXIHNaRD87S2DIgqtIIgFI9aT7loFxYtrHueL3ZUoMECZcQmww91a+QqF\\/DBTZ3MGXHy+7iw3DrkrVSc77jYmtZw9Tem4iCp93H6i3dGIwzrhTn5yoeImOWbiNOpi\\/fBt3Ij9zP+KFt6OEViukMN81GA68D3GC6jqtIGpmxlb8FFP0cowKZ5li8iuxFLwffMd\\/bjrC0JNEjSuEL24c0XiWwOt88ixC5A721isIWUvNH0J6vjdPX2xcpvRX1LJI2ubu5jxK6plIEc1IAPPD3gqGlVUXZnx8UBfZpOz3uZk3WifszBOxduCKEN01Uh2bckyGO49avd9Dg7IANslzl32WovEei0rFQX2K09buUC00ojqji8heROl5szYBFXgGhGK+3p1i1KXNtzALomJ5esdKc\\/882QU1rrHj6HoQxG3pnkxotX32BJ0had1e4c4uhhZtfdJpYaTswd6bNopR4PlDdvVSvlkvcgiDhCO+G5zK+zfivLCa8zkmL1Y8BM7bWq0L0U57f1LSdr79oA5pitISe6t\\/YpjKsOsJjKUqyUQBuiGFEQAN\\/FND\\/8oaMgReDvRTb0xNn1ohQdZxkeckrqiOlsV7Lb2kKsdX9ONkkPL44yOBI5fb52dPOoPSXKHT42KM\\/kUFXZL6tv7w7Ltmmk868Wj1qKGU1rG58fV9SVIPnn1deAJDafuTTTbFheHCMg1LCKdQJC3QIQnV1oa8bNU9hlX06m6WyRn6lACmi3sQHAJqp9StBryPtzYQSO6G3FGI9UCYY+qJq564THSQKPoNnKhkVZ+LD0nHCZ1Mck8TYX40USnE1z21rg1yKx982Y9djngApHjALReyVmzrQttenDRjNtk5Zp7OghAgJnHS4zdYGRNvXEbiwBPw2apAeoX3louUWwez3aMdOm+7iBh9ZAoQzbrTI3FSpEMzTc2VpbtBNe0DWnTx6g5pB2TPjPStqKh1w8I7L8bQB5mW6tX7rUT7YJ2ZSKHyPZJULZQ1Et9yj0gHWTNkiuCwvWMjPCQCyg+DoGQN4m1CKvnBPgD0UYEI4N9+G1PB3Ph3bIIt+idSCnnPrt3fkabD41SBz85cjNzCiZj8plbq+vjwwnapyhIUFriGu3oh9bU6+2VGEKRyxlDFj6W8dw1FugHTvdVVr2IdZmCeL5Q900rB4\\/2U5SuE9Z6SdCwxB24\\/rLT0MDxM7hoXLBWt5Xnb9Y6dtwovu+lTInloAscwR6wM8iin3J8hNMXXTmxGK6qtTHcNdhxH0UZcF9vuZR7N+fsWUUDOHeZXZ\\/E1qylfiRQtNwck7v9EVmfgn14O5mI9wskhuIUDYI793cVtsLSAheYrHpLv4txep69YZjq7KaFdzfnZjcCZx+fqRTgIROVjdNg\\/cQIMJnTBJcNKweiRF2hB7oilNSFQk4NH6YkdVin8C0RtLxcE9OriJgia4Cke0DhbTnhRvlZY2lPnpFqbtNxUxB\\/JaDlrtZdehStiv4R96f+4PKwbDsZ6\\/y6FUvD6wSsRVazwH+jY+UTy7sEmH2OdXvuby8Yf97xKw56TTeV6UgPK9ULi1P9cFweAFS\\/lHZRiZZIVPBS3+5lhX2WjcY6HVFPY+88jnx6DKSnNm0tMd\\/TIBvTV1Eh6lC\\/LJZNzDX1LHh5qGv1U8fnG5F1h9J9EIgqZyDGJXAL5WYjCDBaIfNxaZ5wHNkCZNwA7w3LUVBqSu6MqpQDSw9v5K5\\/dQW7YB1ZwTaDabrB4k9I3nKiCcj\\/L6DBEPEln6KY3XUe7PwZYcfsmFayQGyeqqPvhStCHpc0IaD9YoEFIUAoyXTitn0jdr9laIfgHdfgaW1yPuMW96PtHarXuxrbWXKqRLFak2sB+jTDZJST9skji87trjlyenCazoZYg1GbKaFTq0FXo3C64l5ll+dyZ24kswdBQ7Pk8qOd52c1qNiRIjt3B1NV5d3\\/GkkDlI+oCy8Y0WE6i+eHRSBWBKWnVEOLoDYg\\/N1drxLJwkOw5\\/dnsdzkVQW+w4caf9\\/TDkTNLDDP9AO6AxarJuRpHlGI0e5AYgfwRgjdbeylp4jWw573vhVjbYLRyoCotIkZODdCgXdxV2H9ldNv9PVWLQxrpi5\\/oMyJL7ItvEduRjGafy5w3GiOm+7Bo700wg5zfa\\/YkIiljUk0h5Drb2gCSVehxfkdaKOSF9jZhSQsv\\/8O9ftUsIS1aQWROkrhsFXEgf2YTNstLTmycVy1Sbj5CSvLLbP0LOYtWsFbakNE2z\\/GeN+B0Hjti+FtnQTAi3toR5\\/meRjHYhl1IpiflJWvkznQ1BAeINscPHnhzc3LC\\/DwK\\/wts6XM1TCJgD71FUucJcWH+1njNhDbFggHUymisv4HQJ7LCDVbS09hC9vLF8pkDza4c\\/G71nms9hriz5NVB9hfFOnSZk0rFOTXrd35qgHUtuXZHt1ZMMhRr47iti0smDMkL94FiPhAGEA2Uh2DAcdS0fbjl2BEL0K7NXZqN+Vrxz+Hgf7p5TL+9+WrqGRmlkPjvnyC0A9wD3LSAj3vN8KtUTR9zC1C8FHzoycOceVsWiR8OJyNHQ7M\\/j+dn7hhkTHx8Eb6hIcvd0zeNdlbUBvgaDt3s+xRCRoPn8UyMnuY5gSl61UKvTQQYGUcZ35rtxqOy5R9uKqdwXIiSafVByBt9+LWjpUO59QKbP\\/lt7\\/x2a+7jEWZRa5lgxJ58DHiKOz6QWBl\\/BkdlFTfnEa9PI\\/JUpomobqZnWEFBTLBQtW5yIw62bAahaX2E3wTd6+0ZcXjVKU5aUcy9lG8AI2otpIzxAI3Ls9R500QDfoRMDP822yO9xFilOI9JX6sQiFXuKDjUbFTQKxYrnYaWqlb4RhWzZaUNebAWZKH43pH2OTUNuM0EXRgln\\/w6A8XDJsx881IQQtXHbN7sIwb3aVA7eINrgmb41K6VpneGmO2zZRRq+tTDjv6VHmsgIVHP84\\/pXpNn3nnJkY3MNMaKBtGKd\\/96gxpF1jyOOM6Lu\\/26AJWZxbsR\\/8VlwL2eKrOJqgpUlRoYVJKJDn5IKps166Xr3zxXo3xsQPU+LHlpbbNIxtyxgL7bJZEvc9R9h6gt4MM\\/qK3lpiZm98fMmeKhW37XYfEfnkyxxls3s2HLdutcNTD2RG\\/jweY4lQu4oB9fvqrFrn5j5V84hz7QoXT4aYNfcmVSXoOA4zXJQzW7wPzdVAR9jBTeMNjzW5RZGIvhHv110qkKo54OwpmcDKDJZv41wTzvt5e2sh51jUCTb1g0incz8DKCREYTruJ97xcDK3piWwMapOAdrhTB\\/99w\\/TgfksTMqHjr+CJAzRy81ABJyLO\\/4ajphxUPbWsSQH6YVpK0H9IS3ndkYuWmT6mDfQb\\/d5aR6usCcmfAati5n9WMwECIsl4nZgnFgJM94FDChrzgSELqxKzViRp\\/Q\\/CZ\\/9nIs5ixf18JWx+7oGXMLkWm2nULqwGyjaA\\/z3303lhEtZLDAOYWD\\/ccdONgtErtp63LZBJvONttkw2WQRT808njgjAkAth1yxHK1MtoI2qT9039o6FMBjZGFhL1ajqbiH8\\/RqZKxbMn9pPOzeWjU7nvdMVmCT94MIP3Re63V5J0OXlJNMHFfUxqUKJWfnX+SOgq4XOdzSHzko1f5Dn54eQJYWDIwKRIv3Tm9FNjCJ0ua+8Y52qA4JYmp9VeylhAZkSwKfk2oT\\/aE2W9Mf9R+x0tC9K+ZARg\\/5DjdZNMyOkgS\\/d27SDkNW\\/oWKw+RajOWtuucUC+d+nxY8XBwlJcH7JWgvvkcwyIL9CdjhOTy52tG1tLktCjQtVDso54RN4TVOyLToB3aKsWmA5r7jciDe4ceImls\\/dRODORflUEQZmV1KGCHVKctTptPJR7\\/zyzlNl2F80K5My26dR+Z0L5ESI8a6cYsIM3r1SO9mIOBbIkE3Evaf4q5vXxQNq4Lt2tP9vHDiQXQqjY2SncnCpREqrT2RQzuT2uZ\\/iJHlPzWQyRQljttUtfUWVyshwSxKo0w3DpY+4ARWqCekLMt+TG5DW4f8UKrVR6w5HyHYg+yAui6OO6g8mKuorHUFnGFkOgiNYHy1sRpzjGWe6\\/z5Wq3xNsdYtvDqO5SD4APulI27mnzMTpeBf6FWCvaq3lWfIxp75C6AstpUjsSNqYgznrEUkLyJvRA99Ls11LHu4RtwQSvzXCiXRoqe95klPb25Q5I6yYOtbvJBzN\\/2OLM54MycKSAuZmviTqRqZT12dqaR8Fr\\/WCb4R+Wd1sDSydgVsvRFlbSHhziUy6+7vt8vQIBmw4ordqXyf8gWyjlbi3blS3kEWH1ZPsAqOIcq8acs6F9uFR9HAOwMcW2d\\/bfHGksgUxbHQA3SAyVHt2q98Wtr0pkqi15CYonUsbjONIcqH38ZoXjil5V1RdAMNV3VlrUYoXXDSRN9NQn21kyLHFnbg3vY1GHZ\\/zirEoV7klGA6MCvEpIEefN9f3AQZtxAB2VhvWSUiKu19XmVA8OrVw\\/zSCtaDmM3u20IX+wJQEwujlEGRsL2KqlkKHw39606wmf2tmnV\\/I69FvWMQ+hBxaEeyT4n1tAstoCA9Ud3oYHwYTYVb1Lj4GY0JqC5iIGOk36bc3qt2teE3X0Hrvj7ZcSzFnko9661wmTMgt5l8mb2MRCVbK\\/hmueV4SJjo66DQFXGLhuDElWpJCAe7Ttna4wzVVitPe5zVhbK7CazRWQTG6ckCv1hz0vnd7Az4tcfUofsjpqm2v6FUFTSVHPA3bznwfcvN\\/\\/8Kyj\\/uuF32+Zfn4mCAd+iAxphFkZtFo1tHmTDzUrK\\/FS\\/ORfeIqVRu9+fnCUMHqsb9Cof\\/LUL3oJle7kGC\\/CUFLEQbPAk7Pbn9M7tYWXKRNFDU9LMDZkiNfDAErmUk3sM+GgBtXR2xOarbcoEgca6fJffacPvNrhSwB\\/mIpLqc67AMovXkOhm3LkSeyCOl+rLCvoIr3PhVx8OXYeflXFhhUw\\/2I4C\\/1eUtgndjjKWQMzBoyG6gF\\/WMftlaJCsBoNy4JxXYhurC8LaF+guDmh86qsqmuPr6YKtYhNRrYW9iXizEvz59hQ6ieCDCpIGFBhlK+\\/3NNih4ePqo97bExfq\\/l42Idi5js34IHbc\\/yXRLDBnFuH5QdCkemsOv\\/XOMF830cZ1OgfH1QiW+O1Kr7ixN+UkztFO5UiukeE0ZIa6buEkx7Z2YcAsZvhRqakiD0CUPjeLnZhAnkH4cGK\\/Wccd8vw6Lqcu71TuR2hWzp\\/gN6DGGS9U0\\/6Z250H1lZZOVexDg1Tpq1YRs1EEyH360ORqlDv6z4mkVGJrjVF4dZXwJAe1OIjtjLvQoHeDK3776lVocmY58g1bg2e5PGgEqKniHPAppHg3nJ58\\/I9nIByJ6NDgToma+tKIuTTmEvvYIRuUNMVBQEDI9ldtKYDjKvbCcjzwHmIlPPGfxnmvQnwEpyV18QdL6+guMuYaZ3SdMbp8DF59chUK2U+YuNrBD2bupMHtY83t30uLOk39ewRQ25FDIfCm7oFXIzkoke0HIMPGHRpBVmEdnn6T5nperQP9gFGFAxFiiypIW4kwQ4YeFxN7vSzUhSWBcVOk6ioaXVfRz1laO2fgITnHZVl3mGb5aPv\\/LOevub3eTLIsWMCoC2W8Bzlgc+yehscQkaiqs1idsMF\\/pdDFuqaqR\\/XX0BGoVvfLNuxat0tBQcDtHkY\\/kxY5KPipKUYvHgQzMpWfNfdhX0hhnubRXoSQMdkhG92RBlFfX\\/o7YtE8jswwiGDMOn+q5sOnBzcwScF9G5n6mQpvFeKCxdPw048cUoHK2wcM6ZmmyxvIUO9q\\/Xp6NrPAUuEpCV30Kdj\\/SP7w+EC9O\\/t1p6mMcQl81u4tfxGFIxuBcT6MnV0ce6fR1SIR\\/zbiqxdFZ1rBQOR30cDVCGqZMhrgplbu82lWrmlrRrl4+DhUDcGknnfwY9w2wotRxG+SGvWvqwZfNGvvwBebSDTHtzatknHQLPzZtzp1J\\/e2lkPZuGSUcPHWRaXI22YQqb+XgPungGzyEIqF9OA7Jnxd4yqq7wrZkoOOWaKHrinZHIs6gGFJVqjjb+2dQMfFj0LCrEWfYcq3MXbMmklhHxDQZhGAxvhyhPwxk2z8ncBZNYfh9m0RuFdFrGUq\\/nv2OzZVn51bCng2QLa9pbJ32avT3q9IVGYcbIBoruGdQwXYfn8LkHJTgyKFufqeFaEJPCg5qS3fVqZQ2ec8V4od9DoB8BvzWaeXbG8PzkLawvilURVm+h0NzD7OXw6w88aHkuo3+OSnuSwBwqzkgdcmx0QuKPmlSuQCd74cts4E\\/viLS4rxRpATl+5HxLHZKXUt64gqwvSeAXD30EsPMA4qVMam+TbK7XfxCnBMGzBLNGbeHSGAuwjc46m6FFUiqI88g8KnHQFSVqsrbA8pXS+25ZMBQXxO1RxIa2nVUWP9dHUEZRse8jOAYTvwr9ffznz1aRi4\\/+UD0ZSJgng1ftswu+XOWmFBRZDyBM8hKweeXIEuaf2e7USPTAMn\\/utKaGSZ15BbkM4o7X4ZSxLgazzBH+myADhB2pIy8n4pcZ3mNuAsFUmWzLNzYZVmX6m+f5o3oyw43gMBGDMWqJ4M\\/krdJK7wJ1u\\/W5bugNERpB6mLtnbA6wIYCic18z0IzCGctzJMzqRxRtWTOvQFj4lLEilA8BMCu6Ho6oBHGzdeARXNq0eJcjSm9e8uxaUUVI03Viq5vbp12hehMuBgPsRRN279ZjT61Bxeu\\/NgYN4mgMSKYA2ez3nPoQSSN\\/dmXbrrgMU1cWeACSwyKmShed7CkbmIdzpMLuU2FIUubSPUQS6mvEE5PYL5ep9EVbQJjUTGq9cCbSjDWcpdQiV3Xlalm4Dyfwq9onsJT4qFtR4dDPOeLw9C7Yd6xoPeL+uGg2bk1v+1bl0esPz+v+KjROZ0ZJ7nPLKgcow6n7Qa++tAM15LQgRuMAfZZ7TQT1+GbRB5EMciW6Ap57wZ7QIo+6d4nA3f97CZy1yL9+fNTy\\/w3xeK0mh4p5sH\\/3JhH8j3UC4PDEY1f1WwW5aqu+zYTdV3O5JtkRckoNJyWrZVEnN8WnHIWs0H+7Akv8aqybDs3EfjFpeF2luVpazjHoE+xJeL+cs8XAD2zamKCcxj3duTYHT06Cu8IfKWIgVwmIgAx\\/5Bg09xrwRAnxIDNIHlrTpSwUUISkxOA2iV5\\/7BqBxi37MhqKdVzBurJWQoWDOJwPsoxX3xUtNURMPR\\/YvapzONc+bDYc7flHdYFFhu6epCQaVA8j85wQ\\/DaJtFwH00GHUmBtVJsT\\/d83VNTROXuNEwe8wgcGffGCfltGWsm7h9wlUYD2wZ\\/F\\/b7L+wToxf69VSSj7xVIevKEqksPFJeFtvguM3CCGsQh+\\/P72jpvD734DilvurM6wKu01jv9DHuVYdoqVnwy1PqZuSIEBLbrMG+Ix2NoNOjgDfV108BpNw6fjTmIYeVTkqCnbQwQ\\/gFY\\/8LOTKR5ypRfYYX\\/eVhiu5FW5\\/hyB4jMdcvWuzeXnQCjEufk6tXsjbOwzvvp9zuG89YBWhD9JRtWeHVGs15AiiOCskabgwxrh1rMIIUCsUtSmPyraNBmVKoyLKA8ClmJSjIrU7J4W9cZUz6lvjK2UEUsP1S\\/zQprQ\\/f1QZIaxRXx8umq9adDxw\\/irTQyYz96U5\\/q6p+ITA0\\/IQDqvqjUOd\\/uh+xNsNsC7TaU8abU8X9GfiZSh5e81qflWQQc4NsbX9nHoeIL3UrjjMzlhU7gSB8UTxH54Lk\\/2K01UZE4oJOGB3ZiXm5DhHpSr8rwmVbbWrWZimP4a7U2vIuhejIG1h7nPdtUEQsNNkReEo2ZWEkvb\\/a3CPdjxQ1oeDCzRMS9dsFkahAo0fHNgdx8oBmLJWKNu2LdF7I8xm5zjDAeiH7vBHe9+kvzgQ42yLR1gxmsoEuRgsi1jsTJQ9gM5OaPGL9aJ6WB3rv3qImK76JsbVdc2yXkNfRgbwDCBE7B14aT4h0i9SihiHnOSxr+2xeTHagUY1yVFOj4\\/8PO08ZY384twpqP1D8Z8b9nvPLcmvD9eMY\\/orM1F1aP\\/191f9ysAPVKnnyNiDYK\\/yhLWOPU9ZV8S+HWPoSrkMYNeZ19A9iPlTDDaIggkO1kBfK4h+hTDEBxjBtPdMWMENChH4xHfEld8cFQ4rYt9kZXHQYML2aTB3qkI+dp0HLiMKcnhMGBddYbtXay8ziEQPOxKlEMEnTm\\/PyOtmjRIZQjr0I8U08ET7EAxcyiFu4Y+84O\\/lVrjJK9nv1i0bwbk30QmXj+aAgoz2LdnzH2W0vysPC97PBdiZPbtFC6tG+BBQhKCy7mxrM\\/98m1n8zWBTaOND5XLEE+71lUFRwgcMB75BhgY8AQHZp0DOLkXA8UVAfC7zEnR4okY3a4KKQzNK4Yd63aQiDFMwnn4BnBvlTXvRlSPQV97h2TrD2QnRAb5w2E1Om\\/aPCPeygyx0XQ\\/mN+INwv2\\/Entgfh6wgAJzZ0gyu8yIB7DgbL6U8BpSekJph9cXZGSjwetbCvJqLJMcCTbNQgZRpSlQGLaQMZ3x4lBpBmYwVWrFpw6izY6eEaeAqy67IxjSoeVaOAUB9OkpNUkHkXO0YEOjWnmevGdy2+4Y\\/nVvY\\/udSaRIZd0nziNxMdAJ5oyGtKvrAkV5aV40tzbgEFMDbVCGNVRi4bQ7ZHul3M0XYz4hbtKB5UHNb\\/7ZNSQUGGqhzAZnKrdU3Vpq5K0hJzkC2b2+uyxScBwMJ4kwoJwerCfLKGBe0K5lGltfLdwIWMxbSQ5lbldh92rL8b36tSRgXv9PKDiemT1Jj5l1xpDZ3phQoOWd0q\\/82XrIOnQPt4ENYZFV\\/tT1ULKElbGYoON3ulYkhhu5jlEr02A4NnPvu5Z1\\/vKRMB2HoiOc9xCTh40NMz8ZtZxGIxNKKpSWOTP9WMv336AQhld7l2ti0O9uASRFpmhrm8CODbnSrEo3I4tyQorV0UCm+aPnNWDNyEVyGFPxeF+e6npGVizW+KRQqEuPdwZan6tVZSkuNhmnjp9hVN1XS9tnzqJozT\\/t6wZHOFr7IL+aDUICOEUTnyKNCqi5vnVjIYjQJS0O9VZFwvLvA2z9N139iBemB6s3+j01JO0xJLkz8V7sCGS0E4KLtJeZtNllZvAh54Bj0kyqxkSYj+MrzqMGpaB88jiy0Wr4DydV0LV6WYu4qrG8Hee1fqOBZNvuHjo+8mtvtCJHJP4MSHbAsw2CxTJ5LzE1usYPlggXgs6IZhS0kzxo8BWJjoB2n+dlwbgxrOhhkHHqJZDeHP\\/g6KQWiw8UWj7FoIMXFlFWsOeuYTGoYBVWwc16MBqu98rX3nLUwCrMvstcCNFt5lG5mmVDcZs\\/1M2mayIpeOCZbSSBUrZeIynttvxBNUB4A6aOnd4SbfAInoAxn\\/1gFruBHsBm33PuEaBZ\\/zCYUZxz5RASak5fWjQwP3ykHRk5YNnLrDxzCoZjlpkeO2HRcH1\\/zUy07zKZABFDiHX3J7BI9qlxxZ5ipxS99YBMQbv5AcaWAjzR0oH6sAG61DhpAgmO8u93S92vMNJttbqHzFQsLScyWzhPqlBB0sNV+tJpaI9V4hUUW0jT8CpIR0MxMg9Ca0DJ\\/fuS4EZqRHh1NDTm+6lEuu6\\/4mChEWyIJkKRcmKkJk94BcsC3mYYhuvtvvswefk329CxRAEXE1tzTAELjyh4iWMOBv27SpL5Kn0Usj3qxSRMiq6oRhqJefd6V0DiEkDTUT3o5dyvDv0A8MuXrNKVxc2kKNbx0X2q3hfRe7e0fagtHyT2l6\\/Lr0N4kyYbPVbAJsbIsg\\/bWZli22y1RUeKPLGy7AkXw8kLGjBBI3AXIxCtlvctTlbDyUqiwFHsiXCe9CWNl2TjBxEyqfdB8bvhlhN0uU1YaDjSFloHm\\/sF+mUhRCZ3VyZXYnOyyU96c\\/Z3CVSXbL\\/XTDUb+ZddxmOxdvgAFYM6osjEzqgHEN9rUaYoIrYpXJpzw9s0gPct8dgjCSzp\\/wt1ssHsAWLLJeoe0MspLXnWVEjpfS0FHzZ9G7lCzDzoW9b24JfAgANiBhTB5H0mw11sdKRf3aGzFiYNZ9Jh\\/X5OZKAReWzDBw5bNLHDK5FgZZESJTK9mTOkn\\/nRRKtpO\\/go+JdtGXXItT8cxpfE5RnkVJvS9NfbbxkJpToyHVD1oG6eHnKXybm9cw4ry\\/GzBxM13pT2IaRHdYj+RlehtlAncEJ\\/Lpl4HoXF7xExSbUmCnbmti0ZbhuzgOYEH9Ms17fAZdms6rqS03KqBXTGf+258Y9SI2DAPjZreV5zFlAVVPHmgH1O7RkhbVUhZbqel0CVGh6Z9V8uEVCEsWrrtvpDjhUXw5plCq2ZC304WyT4CXjR24yqblqcDuA3SQvfloUKFw+IZRqDw2VZpFTjSzlQkcPAPlsIxo2qlHAFW\\/gZgDm+Wv0sxY7e1cN1G\\/ZQKqg1Aa5nGFnmAY5O1GWgt+WZaNJ06yvS1kTSgst71fL3eaNth+XKRvgSd9Vt1KmCTGGFtcZyc7\\/NruZ6N0wDb85vUsnIMJ+nnFkTWgP9wHYW2AYfrwZL6SiKxsuqqmPFD1mnuRLn+48JDjmIvmGn02Cs79BJHJ37Z0Styhg9wkhA26GbypfRRBsi4zSCSdnzGXg+Wjvba745ievCKqTu+fdQIPpjqFto4zzFfGc932SN0aWTAabTCR8siSkacDTLw6AAO+gq8jy3GtOW5JNrqYgdzR\\/cqmrgLbHbTqnMEOdr27kcp5mJoMWVD+TYfaGhyaWAol9huEWh3S7XoVUKbUPr2dGmqiKw+2usXMr0sMwwPpUmgssqeV2azlMmPhP8zS3gFQf\\/Yn0T99SxYQdE2Rqa16hXoHQHB9\\/FGPqCNGAJ\\/lL9nxt8ppj3RLkndrbrGcJjRgDIxcnf+kLANdRc92vXIsERVXIu94ItnrXzcwIOZAQ41OGHNGBHgJJX1xdgQS8MOyZTGtlDIrG7GaZkpm+mSRCQxDsP7gsz60ir8TZhr2IzmuxPqiOitoK8WUJMts1MyLx1aorw83vfqqcIJxrdqlp+RaESjS3K6hXeI2ggl86SxRGGRFoPSi\\/U8gTft5oH48HFESYeq0SBSGIapu3wE1E8yoCigEkAs2kp86NZ9taJx4JdUxFFjUThU5tJoVB9BfwLyr2C7JkIrj9Wfbfudrf5QfrtNvc\\/oWUexN7yI8pAD9m4z04w0DCEfOdxJ\\/0bNc6SbitlBJEY5um\\/f94EiW02wZNLglH9ui666O8gUqOjz2z6Wu90U7fUze273LbVZJlwIs6XEpHRj\\/oAbD8s4knkECtWKfC4aEmNRLjIuP5YQxzoNrku6MY3OFxMHX1XreCIFDyDD3lV08GmYZUjndP8GWD4R0aveUZSXLV0HSEib8bSG0WujRiLz+AHbFA1d9fJE7ioAvzahnGHqfVx0EjM+9slRoRLOWQKi2wk0pyhTZbiZGQAOmhPe\\/N2BZsfuvVBnqFbxto4+cf3oywod+idetKfhD\\/3w82czTG2iieKcPTqU8CtmJuNsse8FXFLOMPcdALcpIFbJvP\\/+TuE0XbIwFsK++jQhgXslRDQ6Om\\/aLTQfL58LHB9B6qMYG5yzjcTuA80fgrA4OBfaxXt7u8ufE+CK\\/AD0LokJfvoid\\/VCtjA2+6dq1xQjah4pquyGH2yec4E9VG1SPhpQino2R0pE9GHXQaw2RWsBDo5ii7AYeoOsiN8\\/4wE9qR2cy6\\/+aQaMuZlMuYwsz2GkGZ02z1415K2GA4j8phiCAbhSs5Fou15wllWm6nLNdSjFyKS9tfK+Blx7Pfiq910vZaTSgxcvRLZ6rDnwZcEPtwrrwqQTBZYfZ6fckvPRxMZHnxMgoqO4Jn7h+f8KMbg1Rsglfd8bA0YF9hEsyQDIceGY8+mkthO41EBFGdcrZ2VQdYozsdMmVgmNS\\/td81rMK34AlZNPwwONYl1PW2kSPvlu15ZNv4F3MFrgogm8JsUslG2H8Pp1G7FvqQgrUEOZu1s31dc3gwMBZq0ORDVrf5GsPjYCrrxErU7IBygcXOWnOI+HTo5pr\\/l+GOfH+aQ4cJNs+40K1LMnJwJ7ZGgQ52DB5tonfuiH5uF5hWdVr6O7KwhXpJBvRefYol0iHkzAb2Vhi\\/L1AdmV7wO8VUkIc7Cu3ruPpEgES6dj60roVxi+3GchvtUXhaQCk260UEEnZeXp6ozU9mUaWZW1UK1zPmO+Md6aOGXIOpDmzfIzBT7x2wsvX7XOvgs9vp3HTK3IdP2rePBdVKYWZRexakMx9PfLLPrcxio1Bmui9oiIg0RMOO7QpGUt0dPOO0\\/VIaSu9RG2QcdhdJBA+Auyt6KFzvb1XJuUTYd4zFBnoSMUS5m2TUKXWvE909DJfueWhqTAVGsgPTuD0gGjNKvPrAu4OA0Cz1U8l5wPIstVjXanJCgRqEh3FBb6XvdNLLsWJ2SExiFpGnvrtO1SQZYLh3WMNheQUAoBKSD3FecaF2lSnE6NmOFdjkzenpLexSMgRgToqZrZSfv7ZKPadcCccMe8zHbDffkNhT\\/tegXKOfMogjlbueuiHRrKIR9W6wZ5prABUkjyceR4JF93QDHPu0pBCs1Po3Iya0pu52JYyqBKsHtjvjRx0Rkazv7kZyppJmFcBsGP1sBno8o\\/bgYA5ABh1zlaZVAQ0jFhro\\/cuAnvuP0EJBPJRxM86xTNw1Tn52SGzTAZvZcoA+MjCi2ckNRJ1KjL7cSh02r2I\\/OV3z3VfRkLFF5Q+DmOKB\\/3hn\\/ps8CD06E54lSzXAro+hy0s7sPQPtlSc3ZUZpNafQ2upIjRKPFnH7SzcjvhCPDirmzdxZsvWUrrWK\\/dzvzBxxT4ijOn3xSIS\\/fFAIGq3stpmiCEBIjpuVcOszCHHENfpXg8gtF2W0GBkO6+TJDOkDPEjcKiIwcx8LI8cqwLPLhey0QWJX25kKL67biOY4fqysaIBGLb05sWPaeXNACqvIC7InkzBX8\\/GHSwnOLC\\/er2\\/xtCtGAIon2e7XMf0XGnM70yU6RRLZe4HCP\\/X25FJ3bjZ1UnBXVo26d60HnUNHME6OeCT2p\\/LG70nmYZH9eKtxTuJmKu\\/r2HFDtItfajkm2jJz8hQJ2vE81ZrhFkjZuLMC1SCZY9edYqDontKRNkbPzn2F6qDyfhxg7zoH1+hgCGH8u1c3JqHH7ESZWseJV87OUg3Pug5zHQOWyaeaffSr9ldl684bTlkwbFQdoUIQbNHLQI+wxDRJGqsVa9WFWr20BOx6TvZpEnPaUZ35kcdJQE7RlI2aU02604vf2i3OmtdnwUNrkA+pR6UQmvd9\\/\\/APKlq5YVZFWwwdXZvfcXsxFRBxZ78\\/m+LxHpnYcson4pwMKx6VBSajenCLMiRnr2hc3Rd+lEk1GgipelWLF4A4vR6Kppp+0L\\/yxJrulW6UHqtJyyaUO6bWFPAh9TjG2\\/ChD49lWKjwtxHDdU\\/g19VdUkQuFuBnyATgp16UrPLl1oowydW+y8XxNqtTm\\/oDeDrYbSu2rl7v1+JsCELJB2YSFjfd6PygW1dBJdyfeNRSw2V0lRtOzi0EboVNhmTiEG9uuwPUB5JcXxIZu4+o7luqm+VWiuKbOEcVKntjM1XzA3AF3+3F7ARWAmaMobW9SK7l6hPSMpgHGA4i+iOLEFaM77CkpY9PMx2RpfCrSqYn3nXB06p9HAzzYS9SyXqukwZsyJcyAUcl4LknKNwRcKvRfeyFD8lRAAUb3cKeDI27EwmSAgdK2VUq5jtLzvfAhshPPOHL7ROrtzKmpT6qOJikty42NvsM9blOzwEaQNu5fZJJ4UYNMH3b8af+qUkxHaqh1nbN3WRYNnglpvF3EP0WsCR88ifw84SXmuZdZ\\/oquNUQ5a0w+8kABFye5+7SyOhi4Geo4T9u1vLRWMPyg8R8xKiK4zJL3Mat\\/dnipV0XQYkvXD0Fniesf1ky6E7Mqy9x4y3q2ePVMrUgy1JGvG74kWQF7T7Mv61GAJkfG5Yq\\/IqY5s6qTnvtgcwiRZRxMyUZ0lKQozLPDMMlNwuiD8gjo618E6otaix+ZJUsK1YRXNM3SE6ys5u\\/hPl9W9BRU\\/57+2\\/8MThOAUj7gUJ8OUKm8Twuil4rgSW2e40BvzLYDUU6u1lb8aOTkLM4JYL3X8D795DMRtgQO3qMmnrC\\/70CZwi4X5jV5064uKhT7wORTbmuOAm9yPwUXrNAgJF5vrn6koaHercVI78u93Ks87eAjYw7egLp0eTHv+X9lxu8bCR\\/m4+6KoRLruao3T6+jKcdfcIxUHoigG0fLfdT7ZTBUeuZQ\\/SFds\\/Raj+DqyLVHdFRlieZZ4dRa\\/GLfExeRB2z5cRKmmpi9uLzXI1153dQYaCVZy0FUVg4Yx\\/M3w\\/9ih3Itab+DYMyZEnhxSftDkaPropiOF\\/F8LhWecjJrSFJ0HHuiu2NjcOfckSdM8S08qK4Kljy5JO8xMPJzc31i69ykWadtw+WsRt3NHMtL6bO9HB1VOKsIpop7zyu\\/EU4LgH3Bz+K4GlATIbHLRiWMbyyas+mLyarBRATTPZRX7bzsxOm4Sa74Zd3MuGH0fG7HoCAmYJ4PtfW1HTeuyFI3OK8Ad2x1tgotBeH5Pe5F8yp0J21bRJZ6MWziXNwTB7hVKIYhdhuWGjGuxXhnPG8PdCC\\/WilPC+\\/9fSOLPGy5ptvfpQV4ok0\\/h6ep7MNPhGpCXuhvr9lB+VW7Mx2SMZvjLANhFnEoBfGg5a+6bjZVJ+nE\\/W0Gf4kUzqQ\\/zdHxJu0H3xKjLl6AqHGIlEzgNiqxPEN5sLfZEZ3RPm49TsWPKRuw+VdhXbb2lXcTmY\\/3gwXEh5mo85ezLJI44zCuC8yxmOB2QW2OlOSy4HpDH5Y1RqdgsoBCxAx4Y0hO4kiJvYcZ8zpr\\/nmFEfplyNhyK2iPunTdjlUobhJz+wxcbhrs0CCOzlLxVgqz5ta1E856eUE4ys8UXGEWly63VBh6dovM2Z2mFtXSum0oVMPkZc81qgAwrX57p3QStpvA9NsowSl0LsX0Y7sRh7AKdSlwWqTzzyzsVal\\/IYh6wDfDQXYVi+1dAIphbFFi5ltJ4Bbpv5UNuKyL29I14+E\\/YzUF59vQlqT0oM6YkKh22a1YwQgtHA7DmMt1t9W6pp4VQ24WqGSNTXTrOlZK\\/Ka0FJoanDXx+UaNmMaXI\\/ftOHnFsP+FHUUnKSln1xSCfUJQfUT5zuGkYCsh2SIcrwHw2OHWHtfU1bcXyADY84QXNvLXLgClqcacvXMD9ivzWWH4CeITKDnG16uUahbfmI56nVQynKvb6XoZ8FTCoeAcNpUEJ8GCSt2nllL49\\/Bh4kOD3vMKLkOcHOBugoFqW81Zc4fAmsolMP6O\\/fghyp0h49\\/74mavvyrTtvi7\\/rJLg1J8q9BypJn5tytypV1KweWTGqvEqVIVKJejuhx\\/oxp0kpVul8Fq9l8v6\\/MapInNiYN1cJ+0QYhyBHTiSn7yi4A3yynaGT5gTDmK03KSHOJIV1yaRGXrGMbLr7H42Nq0ZpJ3tQUY7KzbCmFGaN5RCg5SFZcqeHiHCjJn3ZR+0EYlNZj\\/u1Hc14mF2Rypqmed2jtCM5slXilE2gQxGtCMR+gS1yNuVESo4L+ecmN3K\\/e\\/OKAJ1IX7msZ5wXfZ1z3K8F\\/pqBFrlPu7sBD9m+YVs98jLN8pCJxVElJttS4Kvu20I6FrMjyvv2dqVVIyuxPKQ+\\/Sd6IEAGKYyPTk8U9KIK7mx9CwJWuijEXKCKH5fTPqR3Z7taZWsLd8CtNQDKrYlwqJ10vkNLzSnUzfGJKIUdNrC80mPWlthN3pYXtVVExDrjxEKGu5ljicU5N9Hhgw0kE2xKS25bQvOLXFuNMtptf6I52py+rwprgcSDUqzGYWTqFdiiz8IHLh8k0SYAJxEwNbfa42mEiZ43KOE+rUFM52mPhzsyrEI6l4CWIenJjhMBYFMcZddsXvHE8\\/g\\/SrcYypZRs5EnMznGf5W9jEeeMuGE\\/JsxcEsUprsmi+BErUvT0EhXr6VQpK\\/Y\\/f\\/HvhrnmTmpGHU2SFsJXgx+LlsLrWM5aA0OK24Ii2eqoqwgcnz1fvLTr8HfhIqy+td+9\\/7eedv6UHwoKJ+IYuxiCwBJdqx1l3t1TNj63\\/zsYidKOyos12EB\\/MwSqI3TPfCFqifY9wYbGV5+SxFNQflUwn+4pCjS\\/+wPPYF\\/aXhtvBNkbUgfsJuJ909KmZ5sCVwBtNhu4qQ+fXOtEeEFGgcv+1DJVy0p5QeryDGqjnXo7hxkiFiu9dwMlP1AR8h0HdMQw3Q5moDaLWuFGicnPx+t8iQE5C55EFwdMN1zdypnHNENx6ymzY3rYJSV343RkuomsqV3b2MoZYW1RnKsQDubXxq5XatRUYC0yvaOV+Api02pCtRSZ7F14ispC0JX5BxYGK3z9KjtZFUhjIbatwynuyS0CrrA4MiGnorgukjwx5Un8nI3H9l9wYwBAx1sJSUSi4quvM2AqAfTAlB+k5ZkVsZ5LB5wSu4vJq0MapGDmd6\\/lrrJzcOFffitjr8nCM+k2BBOv2RWjeHwbBukz4\\/t9A4Vxv8FIYai4aaWkZPvU35DBpCKxp+LfXER2U9iCr6f84zX+qH8wUqqaVgGwbBqSMR1GJz2OSJz9YhbHKC2JGDQJ9\\/zoYFg2jbUmQIrUqX8vuQt4kD1q\\/BaAhmOA+\\/b\\/bUJF+yMRglF1wix0XXXjRGDc3M4V9uhiF9LEJrRzEI3toAOot1mhEbAIIegpPBbUeWBoeYl58MM+P4GESfYd0ktY0pIM01SGZ0hCbagTp8ry8DjE3lwDJxaU66w6TGmx\\/7Hyebo3rDSk\\/PViGTuNIOmif0+idmAYmeot1cv0fj2EP2YKeB7fVg+Zsqwm1QWI79dwuaJLeESwg8NMzF5g2b4Ln6YCJt2PphFEGiDgFCX6gQs\\/554M1kbic11UrDYxNuUzc+7k9wixFz+VHJF5SAQeHe2xFD9pm\\/JAA4CxEnPXzkPfOu3ZftU6Oy21+MUyTJ4MnjwHIcayE0MZ\\/aL1NU7lCJOtxdsvXsshmgTjC+0zYr5kWV+ItaI7TZEVTDo4u92YrlN7\\/yinivHw+ujgy9gsMPWpQGcdoQ+vltmeO7gk5PSpTVZopBMztpSaRcT+8W69R4+UkMlwwMay8v8lAk+MfQ8unOAxIzhYUcqQTlV6HGs8wxMGu4MuQBfKt3Btc4I3DoBTlPKhiL9TbcnfgYnIVWaWZ9ralyi2EwpYYsin8EXlWYB6b\\/nadxj6bQoAW3hrvPX5ltgds1i3aGqAFsvOjeDxRY9jVGYqUNV6E2mdEqiJD+wmVhIrRlfPshu8vTB9\\/4Unw5XC9MytriRjyKByq+B7eTshGm8AgOSlYslA2oert9CJFoDXyPQmCuIRqanV7WbiMrln5+PrhtnZ1OD2FUJQYvr+F0n7jZutA0V89odZTv7GYKbaM8i8FYQv6\\/MZDmfJq98NTK87sd38hf0vooE8\\/1SPukapawvjANZdgrIu1KBdC7dn7tK1ZxvYnLIBTUjwgQdY5uZKkF2HkfUgjcWwu3\\/UwJfEh7wDzmax\\/2hs4CiIXNzK+LAKRql7NvKiffunrzg\\/EbVPKck9o+vTKl82k9vNvn\\/uinYAZESVK6MuN8bnxVvY9INk7fvn2k42ljoNiMjahIYKlmFNB4pLHMihgnx6adR0w6Ss\\/veJnn61Qf9kKx6ZqiHJnexhQW1thvOeD12sSf+go5LDdmNOQKGpcECw5Jr0k\\/PFI2PV2NIjJVzg0sxM+itLt+gWgL3BK4+ktZ9MNm1YdZdDQJlEvyWtUrFGX3S7aprmQJe4IwFL0IJCw\\/Rny2h+kNGSCkIkLswe\\/lXvV0OAJMrdRyOxgSxPebfy0FdNmokVD\\/akSwZtciP2g91\\/R9QsAZFSTV5riSBjDMFaF4n6nqTdyTurMAbhTEiQ5D3Jz5fN5dJs7i0E4CdrDFXFU3HbdPt7qmTRh402HtyOS6n+sP0SqygxoVeASS88n7WPyVe62rBczNc8PpZKLdGPwc6NMob48I\\/7ULlhe1lGahldimr4M0I+TbyUjaJoI0eWNYXeu4xVvQK8PO4qQf0F5KBumDqP01OCVdx2VGo3YCt+fqJUNSlDfeXrUTT1VnXSQoF6HJd3J1E0bMQsvNKbns9ieDdzCvvFG2b0VswGa76ZM6fev4+T0YP5VnbnxXvu8IOrkd8MEw+gopr9UdHytNgq3vXr5lN9ezGkjk34UBxzbrBVm93UTZBsU9Id6Wgy2YTQpwWR4VmrLUJiiED\\/59UTepYwMzi7Zo96xaZ4s0ZlF5D+s6GQH88RF1c05qCuar85cLhkvkyhvXtIJQAIBWo3M4rGyjQPCU0Bi\\/Mh761oFppRLDwzXTmDLdoseqp0zT35BjjHZl8p6D7S\\/unVRF2Mbh5y3gH2Uo85GnF5bQylv3crjWSmNm1bJP2fijF6uT+sDYsdF2Q1axm19RydIR4VOXuX+983ugyNqBedu0XHofgJmCDqMsyxqSBdjqUVtGUjrWM3FL3QfvMJWeCqj1Ab\\/r8n+vM0eyZHkog+WlG\\/AU5DFqZiXjXE33g\\/JDTDD6yN3C3m6OiZYfm21tHCZrAn6fVYxHxNofxJ7OEsNesXRPwdUrGN6bl1Vl1STHQNVV8MhrTpWoiUFsAl9NQlUj3XG8xSiL3Pl0tzYz4x5zexJrdVG9DLi66OzNnE8wXHhcCxsoL0MPh935FE3hRlr2t3SUuIXvlFUcPCXEa4+uwbq+2H0EwVdl23CM5S5\\/1nEiwUODYMhbTaQ9lD82DicMLGz6Uwa90OeofEmowtmQWbVjVUqDMv24gyj8qoDu7y8W7GCbrJR7VGc73lPOJf\\/1qe1\\/i91kzrARP4XZnfNFeYOud6XyXlo8EWAWjgDGxXhSm4Rj1OxtOdie64ikYtieR68FQSI5fOK27OaRkmZmmCR74l+uBNUlpM7rXbi1rwoRE1FGkUKna5tVBE\\/yqJ1iGpUYKnL8JzjiWGOCqRXvX4HC9xKiCSLG513B1VeCyGOmbwUsOs1mvdu3cvUcY423KBiFx3z1FLEhPK6yu0Mjq9aTl+Z67jRJE7nV8R4fIUX4r2uMBYOcDMg26n3Zo+qgAL3D2ldNw+iy+kAILte6prrSMFuWXreG+ASh9QMKnJs96dXA2\\/uOI1hDcKL5RY+yJWOCGvulg8rvhF54FDxGkJ8iJDsh6+zjfkSXgtJoDcy9yQuq6LM2ncIwtJmZcb5XMz16H9pWvLvZvEA8VwDTxBmxg\\/euY5YF\\/1wa6UGjTA81RI0xDUMGcFxNqV57szOf3UQFieYt4bbqfoJOY41VF\\/sGTg9vtM4bQfozzn4KeH9qKYfgWscfUF897aam5Ej1OYn6LXsATQc5aEi1DkT9CgrCIz8k1Tnbnan1V+5zukGhbUzoIdc+XkmJ65XF2gL6zQWciJg6tfuC2i2ROtKZRHtgnRrvMG9auFIU0qQOM4F6hhi2jt62FSVYlsPtVmlcWYpKD7v67B7246+APFHtlFyxHp3bjdt6H5rgI+9BFTz+hzNJMIlGM\\/oPUQ+7jOsIQWpl3Wgv+oB7a37vTnqiu+iBbYz469pdi56f1tT3J0Jl6eiYBudyVfJPQgWOdRfYsPx0lhHtkX6sJQy+5qpRVYb1QUia6bkIVgxGntiEvmRNJCNI7VerwtcjN1PwtdkWH935wNoZq2US13K3\\/HSMH7M9MWa+cdWiJ0aE3fMLNlYM+i+HBT\\/FYtQToTrZKT11wcV+2YiGixRUsQTFsoQkTlcTxHt0G+TJd4g2gEEJRf+tpscNw6MKbWK\\/nR8wcA6as1kNWwMH9a3vAhlccdsMQi0pF0bl7PoKDSmTkrhfRoHJ9e+wmCLYkTaz+rDhKG7GjSyWTYrS2OTS46d2lQ6A6b+3OSDbnkndwAz7iAoHmYkWawT5AaORtyEZgbopOwRfhnNX9lHNedhdybImf2GQCICpvQx5Bcm9dnwm0ldZ4CoerpmInAH6b1QDPqu46n87GWm\\/ypafabNG9FCv6T2N+uZCePl7XE1YEcRvAAEyMimHqakoZlVcjr+TCpXPqcPUYMzHCigETMBnHFesqhoQ86rSJCi4ji1DztdAeQW0zoUd5YcAFDIoxS8GfPRmZPccRqkfhg3uiMYeE3SiADzGISd3KcVvJokLtRIKcY6iruOLHh5cWgOfOOp7Ex\\/14WztBpV+Mhd7kFZ4Jmk9J\\/vhybzCbqf3P21xSYT7G4P8HrfCOCYh+KqEOwM8jCivuSmvwezwgRhYPGuceswWnhmQ0cHYBrn4VmvGtwPfJjdeWgds+awiTjRysSWzJz\\/Z4i8FArcUOyIdAX\\/UWwUoFDBcYJWoO142idf5k9GOAt6J0j1LTDe1jS29xN+a7xwU5nc9YRAKkL+QOtB9Oddq+6z6iDaeEqd0mSWHMp+iDhdMb5FmxyqLvLbkc3AZyeIpPw27Eah+WygbsPG66qGX9tXW3D+qVDezoqjKQifMzz1Yjp\\/hETdq3wll5KiT93Ghy6GVhkr6tVg9QXf+edbuGLOB\\/Mwn\\/Ng8Qbxr+BHIZ2vQPCjHTEEWJMB9fo9ORGO1awrctPEDaj4Ks7o\\/rTmSKWy8vfO7U1UGCkUvr6cGC+P1f7PuELvFnJtLHXUnq3ldMO4O+f3GwR7t5cz3rqpXktXOmSXr35Ey9N8iQ6KDUoU\\/Dv6pFYObtLukwfd8nBNJjlzkpQBP2v46NTC\\/J3kTA4kipV3LGRR4PUxgILol\\/cazzO5KBiQbrkZ4rA9X97nAM\\/OgU4\\/8X5dxbQ5dkMOMkQOXks2yFfo9gWEvKHR46oVVzZDXldvnZ2ZXobTiwKAmHJHPWN7Cq1kIPxxEkWBJKLLugPVtIATsdkaedr6Tg9VT9ph7nWA451QJI5K+ItJQCiKpDPYsqyVn2JtMid2mH0ZFF6TyICuKLd4IgmVcj91FaYYdcSR\\/yFi6QPWrl62JODzVRJh+tjVjgIeBPrefipE0904UYX7eCEzYrWfMqVJiXqUmLTJmOzEXH1DSvrXT9rraoVLgEvXCUyq0x8XpFoup2Cjj69SAIM1msASYsTLDNKWnz\\/pKMD9STp3VD19x7N1xIIxekFK\\/tN\\/yrNdm5TRRVAi\\/rzDlOoE3trg7373232RQ1dir1lHZTo4o3V4q0x+7UVMZ6VVYf92hslODNWVPcFC2UAha6MO99MTwRcoQZq3DFwGOmkVzn5+RP8G7+2BEwYe1eqXagNz4d\\/JJcde4rzRKJduAVsbWcdh6cggHcA3wn9Fi9sRMDugxTK0rJZrziJhnnH7rDonD6mDlfuAX1qflkz2QVNwNFTIhgbNYJ7oD1E3b7GctSTM7IqhMRfkDpjEgmHlqchchBfA3uyb0mWeaJIRoBJd+NVqlbYOq6jwEmX9RSNjPFXcjmX0bv8lcngcoWWZwpVQmNiMrqrzCQ93fye8hBjzpLxqXBwvRIWeHCeNtn7tCgXTBV\\/A2WpRWfhs+hkjYrm9Eyuw+p+YPK9lpu65v5z2miu149PB8gq4E3YKL9wVjEK637eLulWbQCCrY4AsF2eCUWtPGGO31i2RhBPeTntUCx+d\\/ohOx6TBwVbSURqnyNYCu0coEY\\/tSWWT9\\/uzjoL91FtCVOm3VXd78R8DawV1BRC1p02vbvW9C4mfpKJb2Zxvn+wMAEJSyGFpxb\\/fBUkdpODxJLS0P6XTqfz7PQGkFQ04VnzvQXjO7hvZPPfDmAwISycC4le3llOHuko4V\\/2Ze7MhMc6F0fn4I7kcjGGUpjq7UxdpvAG\\/mnru2d8IYQT798lqTJ0rHqlknf3qztzzqUtKFvIJ2vXsg3plAHr0ocerLUe1F1hJ97c5mQL9yE89RPSTSNY0Q0L9jfKkFYRTxu5l\\/Ch3eOZORNpzkJLYpHVAK8xtYgXeSgqF289ThJQfQ5k6VkZyImzYrp2n2BciaPCOwKbP6upOFRU8wnU9f7vyznDmhkJNuLt5ai9zIB\\/3gwxpxt9z9xJyhJN8vmrOfNHRh48WQEiKlR6Z+XjUZVYTF6SnBVNS6NlDoT99s9mFfpzZ9RORh6f5JKOHO69fX7DC+v84dVO\\/RBBxWB5oExhxcKJBRrbEMTJKu9k+V\\/XTwXyUsuxNM7TGemfWBdmoSOEy3VbANtxq1ggYzf65XAefSr+zHg+tmqA2Mjgw6jT9EN1o3JIPWDs6nb3UzarcliB\\/EyZWyoA+x5XiPr1mt\\/XtCJRXhKolKyS\\/NXd0dI9zKyvt+Aug7ebH2UNrfX7LhhfJRyey5pxsFAaQkcggu1RdXbYn6Sygr5ZHljSLZmFlcJGzIU1dAtCyopmNiCWWZwBJsi\\/bmymw4K\\/liSQ\\/e79C6ulXWFeVl13+0x+UFySzMdF5EYqJ9da0kPDd\\/VYHsC+g6Jl67AY4WyloLG6r3Ib2LdhTOfU2rMuNwpvYTogHMHQ1m8WyVLklh\\/2tMZsPqj9p8w38qwsgqAHDXajVc53JYqvQAbMr6OcZPJzsfmpanrS5oj1Ry4D9jtPQnKrBt820MANbdctjHBDPZpV7+CHEOownpVsS0RloD7+BmRSFQcYzFb5VJLea1\\/GVhGEKefjOfP+Dak73ZOQCVbcdzcJ2jdEnw9aZSbAZx1WgI1LLcW53Z6gr979Y8I2TIiX7KKiC+cm84Ex+Tbp36dLHrVPA3nA6OuctCQgtd6cAQlSDUS2KfFZXwt8PEOiwL9paA3OlOnZWa8aDHTOiao9sGob4DebOfoHzvGiaks5uLzN3bpFdoiWDnaOxDLyspsCH8rxJULp1KRTR0OcMW8R05rfqCbxDtu2r22KOv8XSS3gbprNcVAscYPPvRx6Rg+1wMfJu6cvOWxM6m1EopbAVQWCyc7o3Yhqod6TUJY3OPRBG8vGXBl0VG\\/otdO\\/MkZbkbq2iolE7oLWbZQMj7I\\/cmHa7gM46p+UVN3ijeKWIbVRPic0+IHArQUCRzx0+QMkogYh578cU+hUQtjTEuniRTxe+6rN7xrU1tMo\\/w3V1wIsHrds4PLvIG5Cqop76WnzSdHN\\/2H1eXsUHssK8sJ+g24wE31kwJgum75JpatJa5JWoKWJUllw5D8QitwpMZEgn3foIFv54x+CbkZpSQo6fd916y1LkgFzuCsH9yFs6nVQ85P1YujtUQnKKsf2RF0WHAH2XeqGxKRf1Jw9vGQ1jCjW9kDB6wemmDPOfXcK+aqwIx8\\/iH1sCGCJCgoUUqjUPnxLdFr77tkbhSDQmD79ViKIggYoueD5sHpilQS1dBjfA7j8et6dVwbG1GwGfyX17rPnl81akfdGU6qCMTqaTJBtq3BU3dfbb9mfNMLdZYA6HM0IulNe+1ZtJX0JOkeg0uUm6oPK7SqYSRuFxxBut1D2WF\\/qNVXaTUwSnpZe2IoiO60mAk1ccy3uWNC53jSAzMzVxqdyGapEHtM67n1UhV1ANMm\\/IaSdCnchDSnlHnI2QqsOSwiHMkEdWegnQl8odxTuQyfU4WG3fLjCCj734oYivE5oRXK1dogN+ZUQTrkz8k8qK7rdfk9\\/vszqm0D67UfwhCsIEZBOq037O3I8pa0YbUA5k3CpMjdQdWEgvHmtgh3FxuNWV40wkTiEJuOJLCIdvIgkycbrOODwpVLI2hwGynTvjfunBymUes1UdwQ9x788+AJeTHsFK3o9spc050Aok7PyAjlI4u7ryeOZQMBdeXIPdyKW5HOdsKrduNvZ6mrgz+\\/ua3+If\\/dCqSsmWJws4K4fojHDqG8Ykz0AMO14HIhqeVbJU4Q2hnTWJCXuvX3X\\/VMbb8Ok7rvAd7Z61D+4c1ZzlESeji+RRyEKpHZj6sTfYSdnlrCATuzVajmS7XTUlXHUZZM7VG8O3TYGSvVWYlLorwhvF9X1RU8jQ3aJXUGxDBxaEUaxg\\/MZVvQNKHNv2J+JtHv0I7Qw7toxXpReidVPBrXr68XIpx\\/hAKcmuxIaHdBq90yFVdDCqIg5SimZxWPCce1xO9b93JP+4O6oFGaxCqbfaXxd5FNjSeVR2\\/5kWZY3lrwVWl+rQB+raPDleLzEX0x35S+JTokLjhq4cXif7WbQwsXbvSMQtz1Sh68CkqJRpROFk7BXDwa2seDcu5HyTmJq0W+kTeKSmNH0J5yHu0mL5+FNXnUPV8W1RV+f0WWpoAjYSvBu\\/rzEtIQVSD3ICLlhq7Qgmdxzz7G22PyQWONeAs+fzS\\/JJLWRgoCnXhGhCzlc87SeugYNhYVqtJlRqCKUV0LPHJ+ecduDDZ3nWkB5DvQSNoNk3fg8GFkzIc9+G6c85rHj8nHoAxi1HQHhQP4SowoCnTcbF52T\\/0WbpBpKuaJZHYpT569Ad3r7ksZiNwvaZ9UeoQlDQAyxxjzm+swEZyhnex0606APGEUXVdBqMvx4W9pum0pUWjsMdp14hVAJ0GxqRT0LZ7akMqD+3HCH\\/H23MBADmxUV\\/SLXNubGyxraV8Z6Gb1Qe\\/8KJA\\/owMZKJHzmI48nXLLU1dHWcXWdHS1aXfv+XbOAbA5IPHkwtHWn+kHe1pQbwMX+cipqPzWZzsjUcqnlpd7WGZLPzp9t1LXSRFbJ6mJtmAS8QZ\\/DxywCSXgRzwNoIT3M37W+TytpRKVrsseWuLo0d6EiC8Eykz8MQUNX3b6iT61zTu1Huw\\/EIO4woObgfO7TKFeDZo7q7CZj1DHAtwIzaCKIooxnSBw7dq\\/qa2zlBhuqYeaxj6HP9q74FZ5qOD6oVC+bUtHDfPVYqmWtsMsp5EJ\\/HtdMJ6SMOYkJDLSkJdVkk2trkK8IzZyUAnMuiCwLRtYzo+B\\/A6j5YX5ca5w693e\\/1Pm47JSRJEXPHED\\/f0ryta7qKfEkBrqwV0KKtl57unhvpElmCVhQ6Qp53gcoG3WbO2GPyhq8e95pTLaDrT88AMNKt6wThjU5\\/D7ooHtTbTfYBs8CVfKaVkS5YdFpdDTWN6Fh8wYxU40WUwUKcRtfNXVwausSkLN1BBTB4DqwQL1xAeYtJMGrx12VcmWSO0NneYxTJAp18KL439HCr2zvOPg2aFSjVQ5yI+sFsjtZb9Sxkhqqg99RWQKi\\/TVpEZAz0kIpfZ5LeGGDcCxKbJ1pQ1Pjd9fHHBad1gvFrF4ovi0fb74sAfNBHvYzSB8134\\/B32VYSTiZAWqfEdvCnwsCqNhngtrlyczceHqqFyNJuUhD8JM0p2YnCE\\/uRjl7HjHNNs7gLf0gRYwUp5iBlF3z4qcqX1+25sqdXuFA4n26YBQBSmaABpjxAAwwWajHbvX4\\/IJokOpgQl\\/nvjRqWy6i1Mxb0ASgEcMahLSZSitR7Lmfgcsw1LuR03j1gVHCct4OfAwRWPn24zZkF4TILws8DvqMUW270NwUJh6W414\\/g+nEM8Nh36+gAm79Vnr+iebEE48YDuf9bpAa7VRpoOVTwuq\\/m46mnwtObZF05EHt3PzG+NEdO2z9mdNsnMiwR\\/tDFp4BZxIvuaGXi0jX\\/oRZzbQ5WqMUJdNerusejtvNjZrdldncp\\/X162YsN4AYbVJr3\\/osec9HxSyZjaZXkEGgbwJlodAdoBN0qnJuk0jBCV712jJwvSs8Fi7F74+yUv1RO7dUbkUd2xqGLIAUwrk4lZIZe06sXqMEkkI+JQODOh2LngFf3BoNglH6VskdDDTcTfk992vPxiUE50fP3jMy\\/hI7f4i2gJ2FsTNWMLLwqN9YfEw4ucyItsxAHp5hCyKSWIkoda1MxSwCXCa1wYkqNy3xH+K6G7RP41pfMXlkfS7fzDjv0pXr80D30+jKXGvkSAwJHciSGeOZ+QggCaMd6TL+aAkf4cTwuM7kSSR+5EllwdkOS\\/9OpYAX0jLjfJbALLGWHocy+lmc+wtd2bgGE+lhawDNXX5XYbYTiBDxYoMrizRmhr0BeXnxyzj1PERYn+Tsu8KCOW0rh\\/rGmLLn8\\/sgq7CtY92TFX\\/3Sz9gi30S0Uo\\/Wu0HZIXiYDGS+U1CBF7vH51P0OUYUb4LaTahuTnDTuJ2dO2S4+FKCMVl20uEO7Ln4W1vPSCQyZVTEwsuBDYANRCSdDlnIML3oxVnQsaHnMacUEX2KiV\\/TND8DZduYA8mO53Bu6zkmH4gJ2ZBXnoOTsHtaSNkOUPDS6xDlseDUbUAjg52jPaN64g4O3bOAANWB5ltso4isCNMDUra+nnuHBZhGeBF6AQKum\\/+ppXjTNgPvBuHmNoT03Lf2z17I0jbXFAM7qXbf0b3oH2sL0AEAXY\\/A9I1w73IyL5WACGDny0PbiVkCwy+qtXnvXKEmDtvT4O9vu\\/zFWGUjD8HD27RTw6nqJCWZKJPGOGXaopk3LsaDhmIDCfBiC4fLF9oT0XWzcerGm6BPHV6ddb9yzRMf+OBXoc\\/7s4f35ZgaWccouGPdWRCEc9sp4B5I6Xce7hU19YeekmXkt16OtNt\\/JnhvXYhOqq019pwhiVW2WQ\\/0Fg2Ilwk6Zbm0EN7j8T4d0lfMuUC4IYekkCghxCV6kzpMgz23v5YQG+X0r0jvv190RK61nSOiFX8TMv+CKxK6mzmYTB4qz\\/WH5Wy4\\/s6Xgt36BfRskK29vgDropbfTDFCtTFp9i+vtGd8EEBTZPxZJYL+dULg8cN9bV2c3bPAGfYbsQgoGklqoXSLpDh0sSm1iiuCr1CCwkktubarnMHRwJCex8rFLEqeD2P3ytUulaiik4Nmk5RprP0do+pDZuWQl+wxpyChII1C1GKjWFouFkeJA7bX810gHpMNZCASQjXJsa61NSpJA6evNXYbdm\\/59vzbIE+vs6pUx705Q47QMuJC5Av\\/yjgS5GA83EpAu1cKiEYpQNdwpkc68UJmXW8Uth8wYuG08NGCa7XVLM1qFcT4gTS6eChU4A81E9KFFEdMaKZlbsOB5EAaFO4IVTiTmVyej+uVkvTRLht6Qy3y7FrtlhlZfYjYjmvPWOPPdpGD1XxxDdXqEheOa6lvFL7UBO75JfcEFZcGM\\/s69QtmR2RK7ikDhPuHGGfo3OXNR4RwWl4hyc4DHscE\\/uJNI\\/iiU7BVQhH2f6QFte44FZSmobkmJqIwDjwjCy9DNqn3y8BclQw2A7MweNcFRJykxcVS\\/ShUn1wUmj7FR2xSu6KAcCmahWGI19W3qtEARN4jR3a3LuGwuXXS1yn+Gyonm9uvug89quzvwIsIF2msmPUWUBRoduKe2lRmgipOK9uys+y2Kt+Usb8U5x5CJ0FFtBniO+g10v+WC+j3XhctruMMS4DeAxD+1t1ZEE+84IVEyMrmiUU8NusFMH02xUgzVhbzwIGHFv6LM8uCccX6yGe8w4YCP5FuBClKwAnVlqdZcEtXrkDuGFMAjASyqY68BgLd63xiH6sn136SUo8nUJIdpavFjCtxwTjtsuVMOtpYtLeBYOaO9teIofly5Za\\/XGlU3XE0VJOii9EnW1X+NpbF8OGfBppfiNMcd2zpjcNoAYd9mKWfMwn0q8c0+iDUu9AqLwLDO71XkMWrpxq46tII0wkQgJA80j3Q6lIf51yq7YVlIT37iJTFYBOD9LAEgIfxp7fdTcagQGlpHBkrpspJOWZBBc5cdlhVdpltbEPL1jGWZfl2SRA+j7HfQnJiI3w4llBdqehy27y3uO4i+E\\/+U7AVJiauiO\\/nDC2yzNbGdZVi3XNnGrNe9a+zJPB9nK2ERsrlW5iBeqQJJU87RZsvBsQd1SXYgq9silh3LBTHjdImUEQDWpqRMXq4\\/nCA9Wy31nkqFNX1KlOm0AeDQ81Hq57Ux9QwldjsPT\\/KCPdEKbQmj+MKfcy0ukw\\/xlnKugwJvKHMjW+BFEWSGQOU8\\/9vK3e2KXZS0voLGtO0dF9L4gUVYweKWaVwct8tmLwgis8u7ER02+LsrsbMgQnWxGth1eL0mkpa1Pj4+XrwNpAvko+u0tk\\/fpaTnniZAI69YziDvz8SFmDUZRHl3uyKdHo9arfqm7XQ6hMM+v0nQHVZB8uFcYts6T2rjYN6g0Y2RG0cVJE3wQSrt5gAa1P2eD5NEwQ7aWQ5b0\\/1CzYvbcReJwxR5NnoCOiGdEuHFGN7F08bgMTZ2i4Ypn31Vr00ycfwsfUN7ZQUsaGWwm5sIqcseNO60cJbzrvMVSuotW9pxCKCwjcgstWd++\\/7ZlZH7wvbwyxFz6qjha0E5nJziYe8wiyrLKe7f8opuXP3Cqwyl57eO\\/\\/JO4194WwbFua02+kzPTKcvfRdRuLfASQWk1ffyQxmSeOAb6McOGUpD+hYqxh\\/ZGYlAw49mNeHzZ5ZBj\\/pfendDD1TNSI5MAd5eXPc98kLWX3ZNPRfxQloZhsFmBE+xitVoJ3W2TrUIdLZX9Yoryl5OJYwVHQMJhKK+\\/5L9mAq8Q0V+4htRLgCh7dEboOkkvpFJBU0UEDEMJ8DlfjvQU\\/UdL93zNmJGOfEZ9WUyTQdnun8Vk3ViSBtkFs3trARqS4j0+jvnthhzSvLya\\/oL01ED57\\/KqIP9dSZiGqaOthrIMx+WDqTwunzTcOHLvENmj6Rk31GqAnK+1bBu78sJ6kUpRv2VCVACEfLSSAgdIRVepl0Hk2Jcwfv59A\\/eteWvLIdL0P2ZGZ0Ie0E0j8dJa8iD+s6nq9BO6QUHCyUjK2Rj80mNP9gNLvwUQYgSx1OVLLE4NFZYG7EmBgaOmI+nx3kS9YYTth9mnIPrpffRyc3r+kAs0WbaphTUiRGR87kA3rCbXD4qpIWh08k7p5SqkpZyjQRyRUGmNa1Bx01ANLibca5NIGLaJJJXNt\\/sIQjWEYYhRTuoVSDG3nmNdPOiDwYmyYO1GscxA2nMTocCp2XnqopOdDtdVAZtU1ZlRwGX36\\/ZLdUSemx7stCneCpfU5PSkglxmUnJw9Ko0bvdHpUL\\/Cz\\/gl\\/+19aGai2jJGWSuOiODAtMA1VFqAMwyuyN+Pe8bU43hHQqkpIUbIGVpA8MHaFp2lVTZgiJu+Z71NHBDR5JXiiCUinNWPq7TgWXei0hGnLbcLfhqGip7hf8+k4kHDBPrmbcKq6jQO8wGnwT2ULtyNRqHtbv63P5Q8zIKq+Ubow9zJHOr+9oYCJSCbwkzDDsi3PnoWobChUnvCwrWj7eavT\\/\\/XBhRAL\\/Ek78ooITI89G0GD62fTIfdHel54nk\\/OgoUdlJREew3Hsyg63rWPf5Pmv\\/8l0emgf6Fxb+obANWN+7sFa\\/2CcJ+f5B6LnevG85UgeObGLKmlRey8nrloZ8y22vYGwPjWIwLIVnoRMwORuLiWlMIJcPt0uxJwSlCv0MCTUV+fIcYz25sdIXTKMkya5eNSyQlg5yf4GROURwfq4qaiG8HJMJwsnJkYQ8XTq6xF6eqlrcWA0+og1YK+QvgZ79tCnCRdLJRXRt0W5DL39Yz\\/n10eK1IWt0zc3Lgq6JVB+OG\\/wGBFPYvNOa8FXeNKPaWFqbKxfmvltvXEnZh9F8W8EG2Kl8mquln32KviyByZr6ZbCsq9De3+Sezb+HrGe1CAw88sh2tpmykkgL5lEYwBSVQh18mMdoZl\\/7NPm5c78RebU0f0Lgj9viqAQURF\\/f+XCtFWTTwFViVmt64kkGL0lH4IyXx0Xgm3iRu6R+YMOVSE38ATnh1u29xCMSXsW6q4i8+R8BjQUVSJ8E5jDP8wDbLW\\/oa5wp\\/u1QIVxXL86XR68IYh60DsI5MCK\\/oymxG0qRgiFon3LNt\\/VnjDYG32dN7tD+mr6nIFVU0vhU4Jb5X91Am9sccLEXFkRhfco\\/rVT+p6\\/OPf\\/fUfNxh7X+pt+vUBarg5K3X25gIcMJdoYGRWBuvk89os1X60N4SROf+69hyeIFwdT0gPDxaJrtiSYoRWmHt\\/zXD\\/3uVYH\\/AnG2FREF3k4B4b3XV\\/It+woQZ74WA9zd\\/eV4q++3hNsTwyFTsooU8RTFCWMIxeQUR+HXCLZ\\/np6uKoT+N+gJ4G\\/D\\/me4F9QvZslteGFO2BAiWuX2TAJ70Ho3Q\\/3PyiawvbDETlU81A9n5zdIWadgXWVlfWDr4lDJCED31W4DRjRa0V2hw7jUBmvGkdM4pLhMF7aqWmOV6R\\/eYXCmkJWpRj7D1mthnz31D0AcPOrOpFejcP29vEWbI6yU9rC3QzsI0qBgCtCidB4e62l2UiPUDDHN57KEmjDqw0HpTkB3EFS9YOXb1sjYtvJS8xeNaZEev78e0kFaIWsNWT7+FF18hDESoUMOAHbQmBh+UsrKXBZwrNe0mnFMmlKVWVRdkYMsvMeYHaPt6spKqyCG+Rw9oKu6jdGFjTMOTrw4FFwt+1KNL53NzAPeqx59KkS\\/dPJ2XTFLtzJ4sGaBol\\/Dp0fZo6nNfMGJ89zarcqg0rE2cdIvFLbXFLyPpbQdVUpf9DXSSEEEsEPancdOrJMsaIk8fkRZq2+HR9HnV7cGppVHJWaVU2RZx+ia1fh0JJSbrSi1Yex7gEKKiV7ypRqHirJ4eV0bRyKvnPuRdeSAhL2SxgNAX0BJ8bJscjJvQecadrEI1C8rHdPJfT\\/rHkrsoCbrZ1oUSCpbeMI1cNrOhQrnCvZTcEWEBAQW3anabnHHLUIveHI9iC49YPG6CFiNhIB3u4DkPbCZDADdZ4Qre4wPh9yGmQ9uszTsXW8W8OZEnwsm14pL6h4MxMcM7zZjMVdBUhl1H+U8hVtibjWuoamNoj1IzQ7\\/3iO1Mwg68aboZvao0QAyhZmB3fBsNB7Jz9vjZGpw9uRdsNnLfb0M0VnmI2sHiayjHUNldnR1N8T395+hFieuJX\\/j0puFnM3soZvYDZi9srW07g8QSHBPd2YnZOsaF\\/ra3wVytHArvmIDkCuroigAapg5P9l3WQGdwuiwjkTZes4qyAocbbNZpYkUaxNlK+jS25S3ERNY4STVrlje8Giy\\/hB5iP7a1shBqoRgrbrZ3Ya3UjAQ\\/h4oqUbP2jGni6vfBsWM0swiJmdd4AyMZZkjuOjOK2P6mXiKdPGwg9ViYZGjCWKz7ae7yPAKSCUeBW7ncKVl\\/hzFWCwboffgScHPN4Ex9uxA601MCF4gFiH8AIT\\/Y1bY76Q2k\\/fSolZXLv\\/HmUsMNkyBXYxJvzvimNe0KHGO+vuJgMWdfxGEdWw6TdbpuhYgTNtBO7UxMyC9Jd\\/reN0fvnWEWzk3wtbJ\\/5XCOCHHTB9tKhL6CwT96Xnlt\\/wT+Zngb3Kod2iMV+v0Q\\/1cK8A7gQR4qRyu0w4WkSLear9qBT9ZRfHCw7zUYuuIYltfIWejccCv3cxKfwNtmusfHBmIFbD\\/7TzzFAyO1\\/4Zt3dW7w7PVcaAib24lnEWGIc\\/0\\/qf9Lcgga5CtPJxto1rh2tuftx468rzfWz\\/vMBUSz4lgknn8Cv3ov+LbLGjiMGXHDKzgEc845F9weIyBfJw\\/HepJfICWSZ3x5ZgOh+Zy2mhnJA1pkb7sDUR9SsTRiVUGyzpS+PmtqZG\\/hdrLuDPu91AiK1IuqIIiFjuIBvRfOa+6nSltAUQfFLM9kQoMkyy0B48rbZ76iLf8Bp9jw10dl78yphfS6qUGGa30GKDU3vT7UieMmfBdf05SC+uLubcG5PLqcAJuSUqIm4ddKVkSY5aHIiaNBsXiHA2bd8VTFS10XenSCAabERD4uNyvWndvXHTwMCqDfpcBKjMh5Jh+ACvCVjOeIJwf\\/8nFAyb9\\/v9pcnWURyGoQSNWje8KMIgV5EonfRhnEL+vBeBxk3Cv1OD4wtSKmAZ9tmVZoQ9CGPPoX7fmw8oj3c0F\\/4DrKFIN6grhYaaiGXT1lG8pTHnJjGI9Edp1wwrZM7rdW25dhu38OuyLsjNLhaJAaqtjIkU2PHCESKec7OrV91KFgg8tJ49MiFx9i39xn2fUKZUwEpYT5m2ov9ss2WssEthCNXxmDqUHUP4YlIJdks41qV89bY+geddVeFWdyORkRd+ve1YwKHmEt3NZzPJvH\\/QaKj6Pl3iwDcGIz5cabVr903WJa9V9Gx\\/NncglLrfsYSO3HJJectyv\\/oj4TNcnM4nzvq7ubNsQkj66\\/6SFaE0kq6Xiy++1gM9DlZbe9ISncyz6jfECyToRU7F6TXEd5sXW4lLEQxbpDfnTIS4CGGZJ9+vPEyPSWdx1s3eAU+zQqPYS+aAdCsh76s0u8sbsQq88lNo+JUl6ygzNcmTnifX39y1+ZckvKktnt6AoC7eKCCKNvP0qNzs\\/ZL6ASet\\/C+0NKSAxnDNutDr\\/Y7xeLefihgLOqh1WmH7HYHJvw25leUBlvaIjQuP8P05rcFw+WKNcECVu8SrcfFg1fBEdYzAhm9perBy6U1D8zY\\/o1uD7oQdTHHcW1pYiSziXeHf2MbU35PzfailfGD+vrPkd83hzhaJK9bWBfe6ZAUom2lnBfgCl7C6z04dpDf29PyqaKJI5PcEF2Cd68f9ebssEqJnUGKKAn2cSG58UJlAhfPN5cq5xDDwg9NqROXCeNwSPw0n7oJ\\/AdUrGoHGZ66O+69YWj0eASUwiS7vyMCiQNH+Uo+gnzWzZ6LZ2lLNTBlZNSmmEkv+EI+9+IHFxu3eK1Onh8TRwXlfLZ3XlpU0oWANefEPRaaAB9qSLQBKRxMZdIKkzirSE+hRU6Jx8yMc7qikSPFyksKvlAxbuR8SvoYrJxljA5sEfcjm3J0dHpuicBESdygubCs2NfcZGlYBScC\\/KKAia4pmk\\/4zolvt8anFQEE3+Xz4++UPMPIldIiRN5boh62qPgQJc\\/B9XZC3I984T7yyGY1gyH24+UWy5bgRl76E6UXp4KVg5C0lHvGWns8glAUrKnFgIVIbECvzDdogIZ1yNFu1it0gmPoGAztjUruL\\/3ByTEapjRNAH+arBicDz5irczUMU9e75xZ6kDAmeVCWGOhQBQllH2cf2GnCDskICNDZoaF5utrpQa+H1cqxZ1v5hlFnNI1\\/O+7+Z3QGkVnjdBFJ5gsPFpoAyccfjf58kJfUf5ZtRfa4o5\\/2jSZIT2yxkOGAUmls1bRBLr6tSBT5IMvypfyuilKFN2dj4+2wMy0Mw\\/RTNTk1zxMBlR3IJhSM4NiXQAYCqhf0mSvcsg3FbZTahOPEO+wbYGFzvxkt2ch9HpheJuNPw\\/G7Eja1r9DzLF\\/tGPP96H1rCSFiG8zUh4kIbrfYyTEjtBRGcPl5H0HCnzZt6qgDDCdSTZwvf1AU55H31UzXppUyjC\\/Vtw2C+UQakIVLeunoUYX62puxvF\\/7vlj8nOkIpnim+A\\/4wvOB5XHx6RhWWPVNYN3hePAJ4Jd0Mdq9C7QLBFLWnFIUWXWMZwrVUUE1U+yvbfRiuyOp6O3NQLupsNtB9Gg9M9Q61C+tewN1PFqP+6IIjHwSmnAYftWYY1PT5W8kltWQOrO+9uGkw6GnsFMQJuLzTfHUh6kc6nZPdkU3maPNZZGHYH+IXgZwTj++zOFw4K\\/69dVaDQwhCIzVvJucayFdowjNxPLnJAHHomLTAEoMml\\/08LPvf7srrpP3xn6Y8VJTffHpClX42z4qVaXt6q56KG+BEE0KaPFCLxwoTtkYof48xMMWjYU8nfUAclWcJQZIvdEcF7m+6Rvtb6KP2fYiZjafX4kdlupaMeFuFDOt9KhBCsmcU+Rq+pWjQzFtspdh0od0qdopYDFqqHUjweRJbFFIv9aGYI9fnCynoWi5uQ\\/10ocKIEh2qA6VSrOWjQgSAMvamjNP38h27oZDL8FH\\/3HrgJ50iMviCaj75QYJEyVS9EAQUe\\/YxbBn\\/o2QEh9fYsBvW1etldXtVPJHo6Ot88uIxGfkUzc1VHnW0O16DP2v9Ijskbkz6StY6CDSP3Y8v\\/V3tsEncM8dtxpDjrt2i0jwITabHZQWsSveZoR4InUMfWav\\/cEIAhf0h7R+jLsqVMjalfdVk8mTL7S6eIpbindKJ6kaG8EjkJBBoMokyV32c6zMdYy4e\\/MJPsHxHbGBFEEUvXHpOSz67iEk9CvLDRd5sF1Nm0LIE2QQp6lWS\\/J4xrgN1fFugo5IKUF90XpI1lAzxNAlvfRvPuYRLa1kXJYuMHekWw3acFK+Lizktki0tmHPKNHzmN+cJSJ\\/K9SDdf4XfgKQL+lU\\/wjl\\/OF3KnExNQ9PnN7ax+6PzPBgFNXTX21YxnHu7krNn4qqBhcRYOyGmxHubd8ft\\/xk4xjvQcR8b0dMJddGu7\\/Wf50mezIM1PAQhKtSSIFVbTLrsnbH17weqiGppWrVOMBvYOWGZKfPFQATzbhK3IPm9l\\/f++QuacUB+YHgAUD4xSAi+u5DT1sDOdqo7D7jMzupEb82bsEgsu4er8sn+l78cLFwKyvrBvgwuJljFLUiVJ3IuM0aodFBaIq08zCK05A+CebvABPBPWFc8fD9zg73KlGS8jkXshuCyFQUPnjAiyNUK688gQjaNXfOPwTOIpqXcsmJNuhyFKgmXFPxUZDjUFm+roHNUt2yXUnxgCEGsLqAaNyNfMRNeQdA+g3ANJDXEVMZOMYLgpPYiXrD5wQi3qILAMYhocyMTs6dC6CpV5ScG+rK71nkd8xvQdIxL9\\/3HD6fEfYe7XOete8aYu75kG0N+mlRSaaCCj7qq47ac0GgWlN29Qo8Sr7Q8HYkk4ccrX419w\\/IExaGmz6eKM7XZ6hHkaP7jjBDSL6j+QJy1cacZROLiq+vAo0qu3mOD7lioCxkNOnKLVKnRGjC1d7Gi54m2L0bQJ0Z14ptA4JeERRXXTjnSnqxPkwVMc3yPhUwuV0O\\/P7vDYUl+bO+fE0DQXF8y4xH9bZLTWlGqccZsCy6BxZA7rXxlm0Qb6PXhvFMiBM5QcyHUpgujhzN0HFtlRcx3ottovAeqDtCOhl0z2wa3Ewf07ltMTBNQ2oF1IVVDv8Tj2Efiz\\/2XfOGBb\\/Qa9XiCbPiVF1TiPl+U6v2MuztXykU+\\/IHdd5+SGW9+piWgFIwvM2keberQDcHfjEIGWCIPNMatbOCQoclIZknorjcCLBlPj3DmVyAToe+NSAaf46yfV15dzJ19kZnrbI\\/2u8ikA5sVHmAa2Q8bAEs19VhWIB9YakoKpdIdvu5gzMh\\/HkAnyhdLpSkZyz6jxUzywAshAIIfDUOApdTMWcWFKymbmShJjinSFEopOlGpZ4l3RVdbO2opyjw9mJ54Fh1\\/X2k9L157men24J9bbMm6HCxXHS7t9jp88OjramHU4VKRAr7MyoqA\\/gRJruZQAwB0HPFEoPz\\/jtS\\/7gU4bvwXgjPEgrIGaZHMvmfqUv3EDXcUuRCwjWLeQQOzmVi4ZA0n50qWn+9zx15kbe3\\/o7imGqLnGlnhJI\\/hcGanPmP9M9c5SajJqw3VHIZpyNqwGVmdEkUfm630Xykd5tCaCm9sac72OfFPHM\\/0oAxRTz57Y8DnIIfw7eHrjAdiQxDGiTYceFoIsjdOrBfe1E\\/BL65bIpJVhaWz3v9EjzSKzDsmW5Ylr9Te632FM9RSAPK48GOkjDpefbM7eCiKVryiPYofAzgYtLe2i5eLUonQ5qJMJfNdKltcu9baEKLuXT21AbuRpLc5SDU0hdiGb\\/GVRyD+QrsbYsej28uUT8\\/6\\/fVBjWWSlw0iXB8ErOlaxSdFyztJElcMS6zUQlCc\\/eMtaZlY+ZIIYAtoVTTFHwVFnwV1HqI1VX6ZA7lD3HR2ud3ycUV6ulM\\/cb+IHSKWRvZ\\/yFCqgEAkJPWZzhFxQexkxx0SDOrPsKrZkYvY0l7dDYcBju4rtpYNbmZgxSU4IRfUf+Oug2vGn8sQb8fZzRtoeJTxTP5YbrKLI8T8\\/TLmEXjJrGGYssLVek3TreNJdjIndxxe0M9b7BdTCO+lPWuCkCRj1Rdh\\/PKXFv0Pq5epSo5NFRlpJProx7vCb\\/HeQLxs2930qoJ5uh1Ia+EWBlNgpiINSx7h\\/TWgHeCY9dmpgISe0mBlCJQZASf0rKwgG40vaPubggVTe5YL1ksdGNIaWqC59A61FoxVnHL+X1i1rDOQ8v86DnkGqVoFIRmo9ZivwpeWQEU09YW97W9OSiUJ0h+I1bvXzeaIo+6fqucoC8QFYh2qConyvACATGAM3Smjf8sUXXKrVGPJ6YHKNLAtwH5OpH4TmLBfdjwDjjZWofLY4V\\/oqJd5DWEo12uVsw5Az9UYqTjVUvi4kRD2bHDrznJBPf8RtBwVdOFHYdWbkhMNeQ3rOg47GzeA9eC9M+81M+n2sfpL5hFwtQ4\\/QLKF7F+m1LTP+IXKeTcmpWL97rSpIve515o9rVaGfgR584Sh9NF48ZHJEAtQQVqwC64izVMANzvQa\\/ttLySVF58S1CHWVXObbiRcDj1FAnzwsB3NRQaKERdd9Rne6wGfAvkE0mgmHtc98m2Le8y2Xllvyvj8Ed1p+GzoXMrECIrNGw50vzQHi7cBP\\/46CMd6JAiLwhzpjCTfqcrxa8ZWIj3azwa9HSiTDHJ9NFV4Uy2WwaEIUWSHX8+43BmnU7NC4IJCXU8bl9ztbdX3xk+ONtow2bfHJP0NEvl9cJLGYPahdrNmq\\/053aF8b7u3xR5l94iHPn\\/cK5SHXGlXepaZ8AnGV47R7SRGLuq4OpIk3TC48cc1+EZrvOmNv7MLsD\\/WILj8BoKTxvfedOPau5Y9rD\\/kP0piZiS2MAVZrh30Bp55CbAKULMJuOhtWulLqFNmEt+\\/dJOTUm+0LSkiK0KlxYeb4\\/BYR7G5ImKRdZ7EWUXK5US56+xmifhyytDRhFeGsN4Q22+QyleCn173wfpEfFmxHcPGXltaJvNTCJOQMneWY9IDL+wWV0eeD0BsRjUE8pqojfLvUqv8IuGiNlxacH1Q4IRrtaQcC4XgMlYvW0fTkTyMzItA5zLt+fjFZ5wDxMlnUsr97a\\/vgLYSfHrIBhyU06p5ou8hN0IYWNPjJC3tpo6K7UFox+wuUFYbHD4blZ5GTVLxKiwFDsEwCKUjWxaBb+V1WZPXz0YlhslDadQedW6OVrbgBeoUigKMmRA5eUnwRF13EnO561U8vjtGrfuBc9jh2c74XptONA999Fs8aCqcMQpvLLevT\\/9GgqUsyCO4vftSsEYxKbYRfvHikB2jZ2tNvXiF\\/3uLYEISN\\/d8hu2yV+77KfXsyuk1LWIZfllojueXCb4bxsL61ehfprD72FNBC3CBt4mqpG5duG\\/Cm3qIZeCq32xoplh8hBnS\\/PlmB\\/+lroNlyufMwvcdNd5P4EgkrW850WMAa+HxpZowwi4h7lYh5Ne0PcsUUP1BW0Do\\/\\/3C1J5Y5GqR8qxPyaZrOQTTUZxbhTvqL2eQh5jEUd9\\/TeAG5XolcfPNKbwrhzIqle8apkcpoB9WQayE1vi+aLy1+ZEqEICO66vngYNIOjkYj9H8h\\/\\/8rVgyFZDyi9wnMZxnzOJnGsi8cWwzvOlp6GBALmP3gDFs44YgDz4H5kBR5HTHEGclAmiaw\\/uw8+Z2VUwYw3QqVizJ7sYn6EY9gzLOIK4tdX8vi3c0P0noZVJwF\\/TJI6pyQvJVgYISsbZXplr9Cy+0b3OU3jyI89NpZZZ4NIOWkZHFgJcQXUcJVbGjV4g0MSvEGFiPqwRTvTPM1VOHQEl9yALyz\\/LlnV4T2nW5fYpBMNT10PLNL\\/\\/T\\/Uo+a6Re3fesytaET33K1t9KM8nJZk6hJ0CNA73LZBSNLImxJDXyw\\/z9ViKsoMADX33V1ACcx1JRBWmDJWqg9amt38n\\/C1XOpQXoDUHonRGx8inRixsYxjRvAvvToQXwushRlhFhFJTkgvmzYzhJlC9MG42Yw1BOlh4b0FpaDJt1A6CcxTnNp2nBv9R\\/iPIbzx+MpbmpPf1bYUua62cwggsAOOp18H8Ig9oUdltLu8tIN39jnB5pO28257a42PdZuzPbbaH\\/5hDPET0a\\/HKi7jr2MgFzyK2Qx7EbrkMXc8R2O99aIfURv10lbO6jmEyHO6PgXDM\\/1GpgwxGTg08vMbQTvWpaEUjWTk8rZJ\\/G4VBAcBGa4zhu1IoHmQyMP1ULq\\/\\/IZCo1bEgyHRTOadADiZZ4ZpXevRaXxSf32lT8VPXkXOQPqaLp24f4Mj8FpkYXv2I+hUmaozs4NBz3NslzYOREa87GGn4kxKbxYZNJLF3urLmFKOPKXatyTaNGyra\\/GVLaX2alLws29nKl5sFD9Exa8TJ89UTP6W50rwQ01R\\/nYXQU8TZ7iF4oaxOjxNUzd3pA2sSwQz55lwBxyypB\\/Hvy2R+\\/8jXBINcyjhTGP8fLT+Spp\\/BFmJ8hiQq05nctmDMypvbzq1hfcfqP4EtMoln1i9aCJ3WrFrJ8uddDzAgV9clu+AMGNI6k\\/+hpWa9FaO1PJmNC51k5N02jkAATT65wGqbwRR11lS2dAKLrknvt3Qq5mP1RO0v+Xk5S5kWoP18Jrn7EG59F8olc8f7gbEdWD0kkI6FITRDmP9h+TW88AL9k5WJsNjYw5vB6pvWsXPXweEpf8VkcQHmeCVcL982YBRl7k8g103G97RtdRB1Pkfexu6gz94lxK3LxjEu3MY4Bo7IHssrFNA6myd5nb50DxUdX6KuBTN2MhA32Gw2pmm08aadFay+\\/LpXlvR6+QWUmzHoryXuJzBEOX1VxdI5EsqVGgyrtiE6Vb\\/\\/nUnxRZLDyNvsPkLu1gUURFWaBGCLmgX5h8ROCnso4o7oBbgxT8CcynP0uxM5Sp4eP\\/ABearXwtfh70Zzv10yCM1Ww4HIvhE68p0DEfgfWLNCwhaZ8ONOKGImeJEC+nEE7o+wBqYeM8irFFgm6no+NpfzIEWjvWBPkiAdMFz3FScwkEJr7L3\\/4PcPAHp3JIS2cDN0Z\\/yBwwGw4lnt9U\\/HfKpdyZ70H+kayLw0m4EQPavnpUZwi0HQ6AgOMRh\\/4GHcfILKng4uutRkwXS92DJEXX1J5imju7xPvWrU+MDlTbF4cxWDb3qBXYyjEOy4AaJkzlhFR7078b2NEPan5lONoLwJvwiMGNxLecAHT53Nw7LgSBjjQFguMjlkHk3FxPlKIyw24\\/6l9SzcVaFSzib1w4TdLSmzjPWIWCHswhKU963a30h4kysHG3iOYR2mhBy1PD1z55APh\\/Iz0ejzWP9UNbb0cyXTpzjbs3kdL87zLyNXiunADFtY5Y53knEuD0Yva2VX8Xg4Y3\\/EakbCWadX1TEMuEvdKeCkN1SC02YwUSpdKl3foSysbzrFtgv4jc+gbDu2TX8\\/+lK5Q7byJxUZ35h2xuAoCkIqV0gLRIyTQOxRC93PVklMFvChhi\\/Seo\\/mv\\/a+bgvxNp\\/alGqCPHYPe\\/N2GIM\\/UPafvJo35xab58opdXlFxM0Heg6TtHAhtWaGr7S4h\\/WBHbXHhWmKrK4uB\\/F9WZJd7Wcw+BfZqQcKBGZi7iJ0wTwlB3FowWP9HJAhj\\/mIPEqL\\/wImtcpuoxNmyp7xFgHl9CeEC88clkjPtoF6Z7FJKM4y20cEDG1ilAeQAwqf4krjpTbRQcZsnPPIuRwc\\/T1lTWRE8j2+\\/F\\/u4LXsKwa5GnaTmDN371Au5Bpm6CQOPfRHOQma8zmTsvfmtumt30YAmrGjpJCRroZW17EAN2AkbUXR2M7DiYf+deIBqss3r7+swZL\\/KuiD9lJiD4qwQtY6iBDdY8SxFR6Zl7YQ9BDiLLLM4zA+5OkNJqgYk7+RZvv78YK2XQYf\\/+n3CRo1nshEHksTMD0mZvX5VBlBIdqNAfO3AxBs8qgipAv\\/4uwbKZXWYsxnaIuVIU7Q5X8j5cgVbz1dsxWiDqyDOpUeqzuBSJffFJYxwzacuUf0ilcAI1uR2Li3RK1EQ+fgsUw6fZzb7WiS\\/lI0zCr3BFxNBhv9qJ11y9Ljuo\\/YEkEjRNSAZADJbEtcMtlcsN9aDz1oFpoUCW0tO0HnMFNrUw9PLwVKyNqXheabSGeZZLQo11WTOGHakjFRMa46481Zgc72yKgba9eXUoh1oPklXHEaQikqfThIcU6IGSIjavDvMBWLkn2aXPX8yrbwTovkXHNhfNmBr3KU9otkmdqgWO9M7gVjskFhZBsNgrZZC4MzcEepISMIWpBwn3Eay+EM\\/V7Z7CuZcPeC6m\\/L16VbSDb6VND75Z9W6w9uWRWE78tgvBj1AwhG8SejBgXWlkL+4WfyqP\\/NfasIqdBXilKYPOCBo4wEvhWuh2+ljh5nO7uGsu6XBp2iQubZWK4ZwlyjufC+T2REU5g0SNmKJXdc6VkvsFbO5xkMu8ueSp43wy6Oz6qNI9Q2oaT1VBETImCbI8YnbgPBmbXdlQlnYfvUK8sKRypIjbGmYJPV\\/9sVwZcyB4n\\/Y+yMFnLY\\/6v29pKAfNqQpDMXUGDDWeoQunRWVBErShleJGX28BtxY0ga3MMzdNBm7e2WcBQeFP5XWjrKb3rSXVgP5s2XBiAJ9CW7tjy0WkCBUNbqAs2WLPWMmR3KGbiEXBWNhBcjPBhKC0ffMKbpxUZSZ\\/G4D04+UrVw\\/tvf0u188TvxIsyocpT7S+cVhbIQBU01CIuBN6Bks6\\/rBRa0lQxoDP+6H5W4RrbWPaVpQALwBeLu\\/iBjnkE1AtRiscnUTHkfQRjSX\\/++NgjchimD2Bn9jPT62LyM\\/ypx9t9DeeXKbANCwuLs17jaN3Iqdeb+rCep6FiWfzSDvTSeWdkElUgDZR\\/RFdSzptWuRHpXkDxgoeqrmYfCPQDC6uts96qSQrhXGPKlqZGpFWT6fs7lfjqGdG58FxCRP29W9D5QjXC3JqQL0BnzE8nlFbjUd+xkmpy9g4Wltf0+U9oMU5X7zXHQre9APd86QHoGjL2HKLVZdlwLu\\/8ejvoBKPGdUZQGklBIggg7iimR54IjRHbTbwc9c6spLzTMf+PX46OxDjHGYBVuHIKcUmxSEhRKulXiScSDzg+H1vZvwsKn9zdLw2rVjM8hbx8SfCvkUcbH4UFzP2u+tequF4OADLGJwVjao4PWg9aWpiYb\\/jjaZomcYMj5f3l8\\/ZBXclTM6kngVPZVK2kbfxr\\/VjVFGARkkxAIhb2qv7vWzNyFyPuhoK4iefvHkGx6zQXcqjBVsg+dA9yaMaiGEx\\/lamslqkw3QW5TwWWyJRFn8aFQyoDKyFTiySnUx9Idgv2y0fJ8Mlzb5S8QYjuY4x\\/FygWZBndTOZHgQT3LRXjcycGB31DdCFHWaUEKy4B4xv9Ivzwowtbat5wYkS7pgBl5m\\/4pB\\/wrQ9LP7AOW+fnm9dOdF+Ox\\/mcVb9erCXlpl27DtgMaq9vbiTVMHhHWrQctRbgiQPEptioudFxV+5YLNkbALlEyWhZNw11NaTwJ2fmpiz72ZITYfc6VIMNG0fvZUGfS+goDpfHc0yumxhZpYUYZpG9velA+qhGzS2ZPhCyYtEMr\\/SrKPa4+OsWC5Cw8lLk\\/Vo6v0GnihezF9dpM16fyZNZU6PongMw\\/C0N85fxsg3xtrvAcqKEYWpv33qSLyqWNjMKgdTwRZWNqa4DfnWAgpbs54\\/kYRTag+ZSM9Z4OshOErAV3yFw8ehFADogSGv2bT+ZraT1AZ8j65XDVRHabeSKjGp\\/RUTdR7XUEHh8kVCceY4xvGX\\/uhYDKl3v50lgtVAhKl3oVq7RjMb17+VVrOyR2qPYcWBSo09aa4MjJN37CytYqkykhoZmQejt6jgyZH1Xc3SqYdg09yf1i96qyJrBUM4eymdXRzNRJ42zFFGAwMGaqUUrG9fL6FrJeqYF5HhY3a0k5ngd9P0vDCi7Lbf4xq7vdbsuudq5RInYi5kZTuG382\\/wqM49BU+0fybHwSkUxUM6tzBF72hY9sUF39ABXU2Xr8RSn5723XA\\/iKgaOQg7C98cqLIUZCMhpmjTCfYgPFU\\/5DCF54u80qHpIr\\/1kLXL5l+zkYJPJMokN30SEt7VpnMQsibNLb8D0XhK2egVGH4pYSD74QPWtyj0E1bBEhW6mRLXywQ\\/JjwXvYJ6NHHaGsWHZG7eZ1l0fro1yW26QUpI2NHuhh6eykaw06Q5bOterCzL0\\/SFcAIdsRyd9ZEugC+rnQChTbMQDOUekvJyJ6mZ6Qil2UZt0T0nEZb9FmIKSuE4KcDGAWQWuDXRTzWZHas2RZubXQJXsbzDAiJHznf1OxSDG7eq941xqu2li6BWbhTc\\/968AGDdCsRPKEaCoiECpojH+e\\/3M4HBKZLUNKjH9L7UE5xx+mM0Vr2Mj18VxuwmRbIvL+8ri4zoXgqnsKNEqRKo0R5xkfp\\/qjVdZSxy8XwSNurVJqNvaRilKxn2j0oaa\\/RjqD0l58N\\/NnrKXC8oyxdK44K2psYLrDDujKEnAX5bie4zC8P8vlZND+0aNZtuUNWRHlZHab11ADhxAo\\/gOYiz9Zpu\\/4jNoYeuvSluhnTqA6lx2o1kb1dlkgvtC1fOlMjo\\/oVpleDT1NYm8Ew8OeR5HMixahx7qYxWeD0sEptSAJYJLCJ2\\/lqPRQLjeAOL9Odar\\/hS5WE5oOs5pwOBrY1opc9lC3tACpTOBli3Kewat9tklSptfJKtZsDyPHF6KrcPP\\/caWFyRL9U1GyM62JXNhobHNH+2vYdUbWDQ7FEaiUF22AYwLr4gAdfynsOvq2UGwG2IqCjnqa7nCEnk4yE0ZuX0WW2eX9Zaqi6NCPA6xFkOpiL9x+E5E05OaB4r+uZ88iKo7jYt6GdYEjb7n1ro95duwLKVf9OfzIDGYOqkuAddE1y2l87kLBcw4zDrIXWx718fqc97KZ5pNxP8HFMk9yqX15fFwpQV\\/qFlu1N0UIddqLYj5Kui1RxFbpYSUMk8EjB6x2Dis7jBByTfvXCnm4dLEL+x0nN6yk0lxBWHnCaCL0u217aCIO44Rt6uTDTYj\\/D\\/67bHU+dCzN1LufixzgoGopRWKH2z5otyoj+7Fw1FtGlWJPa5bg3qkL057uyUl6SVr\\/7bxmB+YxaF597HFbuMqiHRNjCpz3gyASACT625CSFbMRYoPdSgWfo+0HrrHX3Rk9K3LZLR1JYr79B9rsxZ4ctzrVUkKnGg6bYcxjMAwLsaCNwHZu+YcuB\\/haszG9Zzy6vUS6NkSTwGP0FNXLW9D\\/dzYjFHqv+9+ykwEU\\/\\/T81Iv1e32sRJTcGOe1Vq8iyUtG40wdcym4l08QFcFvpwKd0WkTCRnL\\/l3e0S9gUSYVMpodWiGE\\/c9zvFq\\/0H3CuQGMcOWcQB++wXXl1al2ECyr3HhNVrhCckfqNImDi2gKvO1nv\\/I0F9sUeQopJKbQwZHQLUbnnobrfbxYep8VCy8ZS7QgKJhKBqCinMO4PU49OV2gO1xjFCIhtsMYgJV5GxwZ28EOlavY66Hlm1G0s00yQiafyJJNMm0khGQemJFmFW\\/iRoGeDSwvqqx3CdHT3SUm9Ek1crdjTZDMauspL3Jt5o6kw8FYujNsQD2GZRbMLCXPkKOLtRcNufPSccZjI2HJeT0eiHb1tB3exJwh84sGR3NX0iIpEeBhvi2HARykInaHWVKE1v429XnStpl7+3LDa\\/ZRMFQLV3yMfYnMdiA5e1v6iZkG9gtcpcaWPfQQt5FhpiwsQ6bdnUSaT7SFDNwRW8EqdrZ5ymDgUY7MRsHOHSGA0GuPJjNo+ayb3QeocZWzeaSgGu27AB5O2Yown0MAHNpmf4bgzG52HGO8SazyXNdTjJ+cd6NN\\/4o8eaUjCkZY4fT57mGBWWuw5YWvC0KaSGL2e2Hc\\/j7F8esUOzNv1EVv5UWdH6SzOWvF9sjLHDhMdmpgesijF9wEv5yiUaBQ6\\/vrPR35ry9KcylNxl1yq1dui2M+TQ+gI7HdR73fRbJsHXcW0\\/m8emsGxbF34oR9vs8BzavH2Q6bZWe3eFt4B8qnKMXb\\/h5n\\/FhEpR3+Duf3VxuSZS8Zaqk1WIsj1dM8eTznZ52yEsMoRUFihClZoy97h432Mrgk6UeC4O5PXF1\\/mbh+uRh2gyPd7iRerDs3R0xF+fowGq1huw2+UXHETq3Jjqi\\/yCw9Bv34Q3fKFCQkOAzj003tWElVeeE7\\/Gx8SgDTF769nTxpLnpkZWvTkrP8v2Bqat95CyfJHEiRbt0mtr9cPGuneG+c1APwn\\/GuTAlPFjh5hdHMPh8xkSxLfk7z0kaa20ji\\/WlOOJrH5ZWCShuHB0kkMQtvXMO1G6HHB6awH7eyZdHUC6gniCySFB8h5dgu+um3dlAZxu04wR\\/Ct6SdqBTF53EqwCGShPCY8DMQ0XZpvjzeARA46P0ffAiX6T0g2\\/yurkk4AV1rtm3EWTg7jBvrb06KgARdsxFhalXIp6afH9x2OdCQV1J+q58j+4p1TpfU5dNuF1rLLoIU421USyq\\/hXSbSttd695XgAi+Yy6+wknKYYdLNL\\/D4AJmsnuCHqB0l+T2qUCXKSfCtEpbGo5T1LgRuqt4dL98gqFmy+x+uz5OsmCaIXSkZ43JT60dfd6zfi9jSDOwhWiZhPLyayRNrzH41+fbv4+jQYzvudavkz3JV48I0h9YEEjNhM8Uf7neTzo1bNcb1zoZHIbB4+VyTwYC9306yrZWuMk19zt+h4ffeXhdi0O1B0FkJ8ncQ\\/DOQjc3kjod7LA4iLnUL4rwd2P786omWKWaAom7mCrTwAImXaMu+Bp1osVMxx5PrbT+sdjZ+now7Y9vbRj1\\/ydJGczzpYETVxGdBH2exmNAFjyGcOxq9Ls7o5zMTV6KLjmpBGkjhcDc7qKFSIAbiicmHKrJifgDapNalnVdWdOuYxlnH\\/\\/tXtlCIus1hXpVlcpd0XdIKfU4E1VNs6t2jzWve7oyAfZ6eUG9vLV4FNNG+P9WxVBlCGa0l1V54L07Vz6GltIPYniwT2tbqYGxmyqbndQ7eqVP9mQBEP2xMVTJt6Pk6H9J+Z0BMVJ8yygcRWRG+RYLtOnbPxLr90foc9a+ud4Al3Ha\\/gWkbm\\/lu5qoxC8PaD2Zq6IE75NuXsy+xuWXco3Ebu\\/NvhMgUfy3NmFyctEdyRw4qgGeOjPg\\/yVx08e6QzyYpyNowZ2I1e\\/EubToLyuFcdeIxq5DdzJBFnYmYuh3AUPHrZIFKVCWWVGUeZwZmALiEB8lB+MVEE3CWsETmIntr5txD8KNpqM4PENTCUoMY6DKnjO2PWQMQL6OGmb0twAcAaNkfpM9V6v4wUz5GRed9dd4wnFmWSms54PRuaHS3mTOSOn\\/nW5ep1wiDIAt\\/AcfYCX4rWqZrIeYnxSxE7OVasPcnwKXO\\/2+KXYaMTH5BWbdTI82grlFrspZRMfDEZoDw7ZW+lvnBAs0Zl\\/EuZhjrRveLfliySE4x3DXl9U2WQwGJaMCBQ3cXadiWXj57qpCm6OZUgHltyJ8S8W1yaayWqkNE\\/QLIxqFzcZbokJI2IHbw9KJbeUXrwnpBWdTNhV1\\/zxwpkdWHGRQJ98tlcNp\\/0w8P\\/cKmG\\/8r3\\/cyuj\\/mV1iviPpibva5XmmEw9F6b5JYjFGg7MU1omUz3efiaF2TqAlETYouF9NnwnuDDlgPkz938+HLcSLKndKM9fte+\\/KNVofi3r++FN5A9AwzA0CwqCaXJxdNE1B\\/IbAHcW0iGOMA4RWm\\/Ytcw9NLlU32FPe7ThQ74D4PPrWQYmdbE\\/gGZbdJUyoCvlQBINODOKKdxF3wH8D5+0CQm9xcJStT\\/rD\\/87FkWWWC9NRriLtZoqkLZg4aRNptpAmwqu\\/khRwh\\/E7tlS5g+lilD+Fe8DkAAYh\\/h6WNqmJYjmg9pj1oqxAHQ\\/Pz1G4jUwKyOmRxrFc1iTOj2gvSTOD9XLYhY3SiIPVUyPfSivfclPpjaMErTScRu4Sn\\/FpSQ+w0C2kdN25pf2HB+ljDSdmrj\\/6n9Inia0rXg4c6HFn8\\/AoBo41VtOuuY7t\\/cDneueKAaOqVrYd6kyjz9v1Ne5KTP3+in2ncBgsH6FH+C6E+bP5d2DmcJmMbrZn+wLmZF3xaBHC5Z4SBbbMsynfkyUZGjLiBqZgnSwkXW1by\\/KjNomPJcGQF39UGa2z2aPNOijolm9dOGAJV1lvQX7X2sr81aThnRN7\\/T1SlOzRyyfN8\\/W1il+VFv\\/6PSRDuu8M2auOFp0uU8vwhUcYBZC32w++PlQfK1GDCIotk5XkOfmhm5T1\\/qCuiu67aHEZRZsoYP8IYJb9TT9fb8HGhyTjWZdPKQdeYmhLrv\\/8FbfXFvjPAdFIbXLJJ+mjMgpjuqyWtJGIVd8BEkIJJ140eAM\\/smxAifk2ZnAwZVP4\\/l\\/uFvZbz0CEaQA\\/muC5vHd7y7X8K+y7I03mXUf2sdXQ18Lluow+hfbS5pMzj0ZT4ZZ6UOI7PL\\/h1kdHSqY633IaGW+EzGTxG6iny6y53vH3WDC4jaWThWw0Bd4NT6JFL0y50RQDQl8g8L2Wb064WCYorBL2pQJoVEBgHpYEQRFpAM4qc4vFIITIQU+0rA\\/d1ojbr8eLUthfDWKnmtl82jTBjqhSSeF2IiScX\\/wgNFdWE8k18vuScJ4CTAvt1kcF5cAlIY7oiczl+Hm5S8pHZLe3\\/JR\\/hJ062F2VsodXTanWmNn2+wOds3kxmU4d7f4S6RW1E9E24omFoZ85YJEWHgrDmE6fTHXAnQBLgFTASRPkXMTOt3fFblWpVgNY2BHM9sKj664cEzMBSkGJNd7Ri0V9aVBKmrzlL9KhlEXKPGT1Uy\\/e5cUSgl\\/xzlHNDJf2PLLcbx7jrnKbvKtwD7pZptNvyW2ZXRqV7IOVYBTYIZLakDe69GzlJuG9yLX45oBIvH7S\\/g57o\\/Ol2sbClCkvp4nH7P7DyjSGQ5teX5uOFTp+foe8NKpXgp1oIGq7AWD9V58zUWovVpyEfkQFGzTMEWoF8lqm79E2zJJ0C92TpCfvnmbu4M+ha2fnK2jcKYpCNtdSvbvuRDo+jUHBwfcfzsycGG6wZ8qYCxafWbJ9OkudV2eziVAPCeUxuSVg040X0p06xbz+A3z2X6cigR5eDmSoev1HDwM7HBRpHPDrMp4B\\/5HrAl3eDXU18pgrGVUkUgpyw\\/eVOap8194UcCHtE3Nw3ZRHYoodWaweUhOD9XlhiGPDnNIypbAxshAZc41M3JRXEu\\/Px1+rIA7uW+2WV1nw5UOHLwDnbCb9+w\\/QHd\\/X6shRvfdJ+0HUnJy7zcCi0t4USW7rmXeQrtNzfDexd0X0E4DObDBcYKrCmrbA7udIPYT5G2CBN6sHxPsBwrr0i+ZtC+9axKd4hHn0jCrHaDClpHbInhx9KCAZzhZqtv2CIDTA2EghSbAx4ZAygDd2bnSesjQ09e8aJst9gdJrT1uzZAL9cRT7PhzWQFKJbiiDFKqW9as0XxYxXsXnmvTrulLDeOENjhoZst4GiMRt8zVdqjzKAn0UNZRadOC5hy4b9QVNX9V50Za82zRVZwS0sUHYwWcrDMiq6ff9b301dXBGK4WjV\\/dRsNXjv3F\\/LK\\/vN\\/Z0JdYPO6q6yW4pnkdj79h0uwjm7TGC\\/MAbo9Sk80ybpk8O02svQGBuhIsw5ppuSjVTw+XO\\/clEReqOBOap9lmMeCYCJvO718xX6S3Cif++WeRynHGCsLG2rUva+uxdzxEhkP7TtJixBbzLXTgrALnad6+5WBYT9fZKDMKyhON9naclCRE1o67HWdkyCjBG1PP5hDJiUAA+2fbCltsG9tVWGPfXcZ9Wof5Fpt\\/8MpSSwG2R6mJNY1qcZ3Q2bYbfJS90Vh1PKGLFUD50nje3mqUYPLNMz9HKAxhIbVyMqn4MvfJMy2xyJ6h\\/Hli3qTByWlcjL4l8UWv2eEXHVVOmbLnKbukuKRkXMjhRsQQx0pmb21WUfXPHVeI2nVXOKjKVB6cDuEzehkQd2\\/uHICFe+NHp5rgig2cRLhPIgNpazqzbyKXNvR7O4C9rasit82q9H8sGROFADt5xpZz5ryJjWmj534y5OpX0vRntMhpYW63QXZPzzWaRaeYr5nIZQafZdnUdlOcEtBzEoxHBaft87BHtVD1wG3W\\/3D4rEhHcoLsjduSXexGM4+DHouf+5cib4BGH1\\/Y6vPow6911DZ+4OO0sPGAS2+gA79I58DmMmaaAxmJ5Kb2G5IToC9tdPX59fLUnpik58ZosUGE7Sm8xf5fStJpb1vIc+XI+vxpTDx6EIMqIce7NvXINQHsWiza3vwBNvUuggtyWx4GQf6yGv4GZescwmgni7a7RuLelQl7OnVdfey7f6hExGlnA2oB3YR7uS9HLrzl0uVbhKoJf0LmNHt9uXy25FnigS8CzFfpNBieI\\/3gbL5A8fRcLO5gXOZlYFYvqm0GZbdp2atTLheYZnLxyWQpW7vrieX5f\\/sq5Mc6dt2DlI6uAc61IQ6nMnvuZctzgW0zefM8LWSqAQRmA6wCiJx+C9786z7wvlpUcqPNv0nz42fvAzgYZTM1S5IG2TbSqCEPoWSeZqKgYpQ1jYoriaz+KkiSfJo0\\/ZyObl\\/MsTk8u4NLQueDFiiOLiU7yb3X9lPRz86gyvKUQ0xmMiiFC2xSscSgssTkTgxsS3yN9r3v4H0PcOEumDqv9fJ2LONhEqBUsvviK7cNyhD19EJDdW9sBeDgoYfFH7Up9uszkRPq+wqdXsPJH9OVlRVcvzB7vXO5K8TGP9ruh4Sw4tzAIKmRQEgFngut+LPn0Frj04lQPJsOR0jPHKBGQuDQsGiFN6xXv3BEUrs9zDx0A4H43IoyyLqz5CqxkeQDQbkZbXF+aMSvQlhNSlOAv\\/WFxrUdmJJwtx+23M+f2089oaaGFBKqe1PrB9kHOYHyZKY5ClIvGyq5NRXvYXEVljc0D1zjlYzBzqVT\\/z1sgtJdN72IAeR2PpoNa4k\\/iq7p8mHSfuUSKemPhDpjLideIJOX6Se9kdvpSQRRj\\/6HOc7MyVeAwHeIxmj8H7tR+sGZiIeX\\/6BvLoYW38U+qAbEkp3+3TSN2tUjn0PTd22UMi\\/VPn\\/tRbPDX4BRS6+EKKCTsBRaDeScqB0\\/AUnJmpc+1kW28I8fkUdBF+2YU1vF6jXib67iwxJWUwf+8zpiOp2rMuOgH+dg4eJpy1XAouw4Q7eq6L3TPZIPNo2HB7lPxKnjvyB5OHKAbNRkPnZldNJT3CCI2jUFkygNRI3rqKhYAH8LputOsIsPHlt9kYGiShw3lHGFT9igqeAqv4uBm9Rj61A34l05fR4Qknk6bdFs2BufMS4zpw1mmQ5qfelAO507+vplbaSig6+A8GzLw2mMtqQ9MiDq1phajblKP4Rpv7rDtR8jI2oYniMGfx4I0qIWNgmYJkla7mDyYHbdXu\\/nYtOwWrwIvO1Qf9eYKbMY+Fin6ELmh9UnesZvQ3QIZzRJCnqSEEVG3GoJEE2\\/8ER4wH6OLJJCculuz3KqTnQiH6QPa+Eh4D1f6wUFVwiAUQsadX8npyPHqBbD4OY2O1vxbxH3KE6jvwdKxDzV5LnCMfaf\\/QJqyQ4sLKtBIvlfPxopZw25nksgGz67i7DReZ9KxwYCByyKRY\\/YM\\/zX1cWeqdFtl\\/7C+3riuFntkKlwbB6Wol6LDersK6aS7KJYiXeO4OuqlcJNeF1dHUffPPN9I1+AGwCXJy2noaYc60SW+g2CPrd06xaNl4D5gOcqxpUaPXj4NxeBOZgTfWTp8WfnZFO9O8qGqR8SmWpFgC1w7tBVUeEKVoBOnfO\\/0gL88tFarv\\/76u7Jo2cWpSsejDh\\/ss6\\/K3y96JiA\\/Nbk1nOJeboekYVf3ztOLu60wgNJVqgSAEuVUdfp+AsGBCq8ne5cUmDbfo58IXAvqKbd\\/Il2tPOFFOCVTIGObV02V0BrQqlFIKeqtzDZ6pp4NNZ0ck\\/r\\/UgQu5qIHPyygxNyy5gTX4qM8WeyAz7mjNr3mA7kKFpjq\\/OYO7S6Nq2kleQevUb8qjAE7O4BGHEv75paLVLAx88Cb6LGehlB4LL081WdhwiDIxCuXRNv2qCtRF5BLdtjmDPg2NGk5tLhd3WX2\\/TtOeSWrqpY0wdZ5tF0uNqHmckfmD0V+ztWsmBTdAxM6rsWOAyWvRC2QQ0hz1D8WOGgow9v2V9RK5XNW6TkfjTu19yWHpRu1zVwAxD5MaOomvYynrgJsYglQ69vQW9E\\/6Gs8f5TB\\/ALXlKke\\/evxOvZQs\\/Mm79V8ntmWw7OYSSZhgqKboD2TRhS3+zToPqulOOvvjb6\\/SB2XFCYGJMyknylatiVJb3AUdiHz2mj8mguhNhPverz6zfUauAZ326cM9jbsYqCVbQTZ3iJbyujqwDZnwqUJ62w8pBaJAo2fi9iQgaRsSqhvFyE2fQuFYPGsG6lkUJh7LTMry1TCvc+5ZP5UGjB+vjbyKaohRSeCYXwDFbwHVeDb4z7aMim5QhumhESRopY\\/14FyutgHtwsTNBhDcMN\\/eajAFAcTfJJ5+kzbuv2MtNtHvY5LdYBaCgalZemw3lstxbSO0KfOoAZ1vzDyzPS4zLgm4NrCBI5CEgX2Z6GUPhvCNoZ4MRS7IxCJ8MKMG\\/Z0WxxtrqI2MHqwEGy+iG3K7rT+s7vFzFtxx+FfO+VkwGs9T68N5CGr7UBReBqEuIqLdeMz5yvppCN4uvcNwyYD8mTYfNLzh0ceZE\\/Oc1NVUFgZ1k17p66FSxkDqDvfyy\\/v1UcI1wf44rGzyD\\/M4W9e7vYRtrKOv34JqOaXQur\\/ZTGUddV87KljvnoPIWt\\/Yxfg2jnHYYcJ9PNBEcaZF\\/3lUQhxZ9GBr6jTFD9v2omE3vyLYlOK9lf4P5WPYV8HNwLHWsX1iZpB+Yg\\/zJ6fqophBbfr8gIrLZyC1iiJFDe6\\/\\/IiDqu2+LZJHm\\/iQen0cktFVhpJbibNrBTptOLs7WMjogYJAPnDnu0a\\/\\/+Yn\\/QrD\\/Xg+NayNkR7Yyt3W7mRkoMpjA1d0uqKyvGcz\\/TxS5BJQbUzF6T1MuxeM9z+yaIOtK6j6C60DkyqIEtdJhpcBstO8SVqdub8ZehEyQdjgC0swgfii19ctIxJHj+muIJvuto0rhJcM6giexrafd4H0GJiP7aSDnONaFlw2YRUgWPK25cOgNC0MVbqpTNtlPsAhABqvNzL5AAUsqVNP5XhJanY2fIBZjfHsyO9+v91E53AFZyqOWLdJjUpilETDFhvDYGCcL5z90+SUUUriMhww5Y+cEfkSL2LSe3+5yXFTl+yHhDhm3GRZMsFIrvxjSG9nuPymJsG30+nyC\\/\\/BoI1OIFImqAMBTyzhHcPGpNY\\/Fz1F86IrQHfGoqjMUBv\\/sLdxkhkL4yQXlTJPIaoFxmz06e4ea6ph9UnvD2ea3i43oPnIfu97Y\\/KBtaDI908hky2Q6A5sxWvoouZYpha9N0QdkN8PvGxX1x2WPwcBNXxCqFSgqkSDiZPMOAZL23F4sltF3gBsHAG1QOX0XIzBJVS099HnZs7NWCpeowe32+urjcAXmP5sFkPQPskYUuANGlZZ2wZ6VVhKQAI6DZ\\/c+a1FyH7lkbugO47I2AczSJtpHTCcHVFtVIZomKaYU6y0bY9\\/lsID11nHLt95dBV\\/THOWVzZxWsDPobBbrclBt1VtylFq3x7IiKdQU6r8gfg++iW0mRcQTGxUFIVZqTyNgaURzznuWGBAJe6ERj19aBYwoOLv4i+ojKUAUmAYpnO7+Vd0Qpy38fZhX4Xxw9AOQcEeVIjxm5aXpEmn908zBHYA7X1nLVxT3b8IX9sJeh22jofp8rS5bKLszP8q0haxm5AXcxW+6zei2vUQ\\/DowwPdljmK9nOf4MRLVuziVMMVjeusz1LN2lY\\/octaf2lxRB1M2nxeLBjhuwYzuwgWSOWi+FOb2OaFyyGGZKtUxf9qe4E63U7kIUbf86qmaa9wRvYcoci2dXug+08p+0tfU6kkHagk\\/Not6DS2W+brjka2pZtdPa5QddPTAPmihUYtLTgadkULpw5tu4+4Q09WV\\/YIYs9Fd6o+CW\\/4wBryub0V+eR6DEDGwaU5vHkTGme1T1QnMS8SGJJ8WlX5eWyS8KkSj5Zejqxttbtj9nPf780wz6L3VlrSa+ErMfWWFfNbLqVPwqJAdGLsxr+WaTxX0xbVk4oinRNDYAXOxtw04ovRePiJYlXh+khfOI82EoBJLjoM81C6xHTgzpD7XB\\/Mrem4068lhFf5W7r0EVVZxhuawc3AUZka6J708XwCWdYqrNLiB+GDM6vjkjMNGo8uyjvvg0AIN3G+E3qxS1vqFyzhj8Bxok3pxNgV8wjTF5XRZ6usZp5c695y7eUP7lU2dHej58\\/gOzEeVH00vBBhgtgvDKqCVEQMdVh6CFhRFgC9IjbY0Ec8DB5n4NhJGlPhyajM7ZzYhecpussonrkbW9Mryk0qfiLFjCwYUq+H1VIVaHqzOW7kfbxgjv1zUjjormK5ddR68xv2grKvO0zMu00c8Hc9e+J4dSJqU9xIBiwReMyeGI6Qa8xPyGv4SZ2IR9ydahWSSkBwUG5Q+fjjRYSSexhpQBl+y2pVnHK1+vI6XN6DS7rrBny+p1mADVba3gkuZCVyxIUiBwh62\\/\\/RfRsBeCDTA1jdBkC9OLqUagj2DWlVzPbKiA6Ef1RdQS50lc3fVtbqeAyYxRSsGRwOcLoLMKtxRw83M\\/TqExj7BsBX9qBQebF3JAZkKr\\/qEF9pZfM21O6Lw+jDQUuBkI6DX2lnuhEc\\/hrY+hzSeBAtexwMH0RMXuHprS3y4WlYMYJo86KMEuyMXAEzgpPo2l\\/CRvUkHkee2TozmrGxWfSU7aCF67s+nCJ2QZoTQeWi1JFx\\/qsGzMpQhkT+b4f2Dz6wHVmSZO69ax\\/qZScYbPMbFH2d86GWnGRLeK0gDnPzFiopKSVFZFDFu5jJYhl3+pmiXRLgXWApftabPoA79Zh+jwYckeovhQmYAf4cGfRzKis4\\/k+6Q7+wQFRBEFA8+HFSkCBo6f5zmJgjHk3oAt0ba9C23BCJ57dal7t1UQqZBrEZIlc\\/0vRnXhTo6Lz+PbAGyk+TeCCYki5fgUeGUzxZb2JMYsq2EsLA1rJM45czewxrTOhaZvMO1EXWeQbTk9h\\/mMUjr1BHohHQrciEdo+NWq9fMYM9IixZ7aJZKVOS7ChncAZ8d5HLvGJKsWwMgsTWL+rNNnMWytCvsgWo3mNV\\/OLO+UrSYwCJ\\/vGAEy31JQKRr3Dw0TYUa0qjvkSJWES10BaotXe6YZDPE2e8pEd\\/8VoAjpgOC5iHM6n3GfzhtTu79NpC4lcJzc6HRUxYZVoIVTR0hSRRNv+98zS9qz1+e52pkDWaBchRZmX+UvHxAiWNEpDaCnWH6Ut0iWFFx7vCSEuoHZ5CcZI4zo7965uHMF7tVXkW6UBVulf17V+1T\\/pSI9nDg1vrq+fF7BVNGsDdpph8lJh1nvr\\/AlqPx6+tCw645bobLDXxrRBwJyrlQeV2mIOLqaYS0bs2vUPShq5S+mygoB908QfMwP5mfVvr1XQ4Cl4oVVKctHgrfvKIQDOtxXAjJe2DpL7ksbKGUiulcBb09WcK52nuQB1NtLHbC4WoVMMUsbtBMJYAFSCptkRycvRS47A4OexgJZ0flvhghfm+Xv+TmhExeWcNQRd4sQeskdd0b6\\/F\\/9KHtH5DS+\\/DVm8X84u0KxuVmkp0aOib2SUEdseROuGRb6ud+2NoobOfcE0Ex8GqKVfS4ARbsCLtziAB6c+wM\\/xDWUZ7zQWmFE1pn7Bn1uAbBX\\/wqUfuB2UxF9CI4oBoxgaZlhfYFDF+ERBiGMp3NuopkSlcxvrTwMqaIjCUZ\\/OnAuKiCNTn4ouVwEm9mBJGhV4VfIVzbsP76Kf7vpeEfqYRiFIWViZ9kW1NwHFyjs9W9PcBFzIS\\/gKk6HT\\/CHQedzROFecy9Na4BcqZ4Rlp9uH+24yzB7Yye3OcNSlg0kMJN+6Bwz5x1Ah\\/JSa1i4RfjbB3Yf4GslK4lpNiW1xTFZKg8RmGU81Dic0TkqZ5GvVOTca\\/hgnBLbm\\/fE2e9CFcsKW3CJDXO6a0ptw798bIaD6us3ayOUkGgyAvhM73b+cu\\/JN2IKf7X3wvxWY7rF3kWVbC0YWGQc2OvD6qUwP+P3EmMIKi62vso8M\\/dC3uYby31UbM5aL\\/KxbYtJzNx6KRFwly4bKTYD02lR7tDuSSAMmBULSmKDHbSbWI904Tmk+WEapGaCAG7ipSPFlAdRFbqWJLszwh6ByghC9lRe5KvV9mrda6LXJIa3aEUPmgYPZFdcXh6sr4ieFE+JUeeLHSu\\/lXYYHd7WMGeTCvelWc7B2nnv1cGoTynqGfG1WMWQ4\\/PYyjxqf+k+iI0kKGdA5zX3C9u3EfZmK7DU+OLXvgWCCIIGYUoY+jMVAj+rAXyUPKGsKA8umPmmvr7f0Rf5pqwWzOOfpn\\/PusUA10bB18dfw5id4dNxNkRnCADlJTRWLxJ2ZpcvD0CcTKi532Mkls75pwfCv4LCkW9dB4GTHprzNoTpNDXqahCCXQ\\/vJOgpwrmTCK5K94xsYfvRALcFRcVp\\/etZPf0rav3kmPZuTcm0XDfogoe1W9lZQnSBzsYF9H55gHzdv7jG\\/xZQmWMmA9wdLspx0R3HHs0HBieuH2Yj9gjsN11iReMr\\/HGANVSnI0bzN2d4CgX2XIoEEgRiYG2IASoI+mMw+hNxqCH4GfxmCwBKR59Iu2EPsdK\\/6THJipu+swv7uipHxKtfKfZnMOPv7brONIxjbo3idBy6SNtEZriXga0ZHCBb6uMazsmykwzcAspy660cdEFMy21pId2on14Ikcd2CBreol27K7fBhR82myKI166BrefJZqJrL58VViYBbprDlAjFT5Nfkz4+Ba6axo6kcbu52ViiYad6PnWOqZl2QpKqn6Sn6cPloWxbIFQP7PmdcAxsShR4HYCSzrSXbpTjMmcNMIapnR0K8Q4fNm1pB045IxWvkO4dO5rJkc5LQ3b7CKfGzVHvUfePIaI3RFyrqHcRcjLozi6Q5WU6\\/gLalnQPnBNc4eUJeT561QUseI9KC+yAUYSq3vCKDrDKJEFC\\/\\/+0SXgvqcKvFm3SQM4SZ53usuBvwPlNA+oMPV9YIntwVmfkE0rsTsb5nW5qdWNdZi5OdD\\/oSciYxmTnfQCdyA2mxRH4EZUi9WB+tY4S93RSL4dlg9jBEGnso5rW1h3nuBJRdUL+9jGqLyBrq8hCM\\/hzt+yOt+vF4s2HAjByGZMwZNlskk1ffCtkaDoqyaKn1Rf9Tunk7nQ5mkzmz9G9eGqo7gcLs7hAqbwTcluNaPBVnWw2mi9IrW5rufOzyotGCMFTTViTeNq8swTdyX62T\\/QqYq81WgMR0HX3aBOAAARw\\/B1gnA2drWJnsUqM2zPwvOGi8AH1EAMJZ1TyL9\\/tKwkwWacUB\\/hCf+1QX0JkmWH2Su3gg8YYWJgmUy8EZTbW7Lcy\\/zyUJFJxVKV+A64Yh1TO\\/PI5QFmqkA6d0NipgdB2ooygdMU98OxQ7x26fsaUJPQyHmhDRQORJbD+3+HespIRBXEtX9loSkbcIPuI9idXRgLO+LaPLu1Y32TarsmMR3Q7zBzZPUVwys2NQ4nm8RVwlCJLFZc7Wksr4plM6\\/5fBlRYQAi6bJUcGu443m+zxeMVRnlFvfA7Lc6OrfHJFFgxcriL9DGe4p69e9LRnPrnyz9f0hLle2w0YkkRrqIVbJ0FzVS8RvaR800Aydn3ITj8nLsIF8ZHkL+58xgV+Xs4haSi8woJlLHFv5yJ1uxtavJlcPPaQyJf5i1Sdue83GbAA8i62dXTQxo8YKfQ2oBichNF7nNRx07wGf\\/MAgT\\/WKjrglzHGbNkDFOQ6zj\\/ttRlkAyytEFWXKbvGuAeNzrTTWFkW6kRbIdFMFe3BnF1PvmVwV0XV9rStF0axZsV6C\\/gyE1\\/PwSlYOERnXldWGmiGu9dH6OoWdrqu6d2zPJ1mur6tSfKjPzHUF0LW2gMiS987sw0ODA4iMJYeLlgDWcAiEmwydqOEx1XJL80RsOeoPNMnPfeEDsjW+oztfASUxSbU4n9qCVNS3CzoBWGAOJ4FIUNcdrxKrdQ3o6c4MxiGaf6t4hsjfWV8ve\\/ecD9rWwz6tLcdD06HgIoy6EPkrhzwgVBkMUZMukEeHbPcDhSjPxcLgcPPl6taclR9SBr\\/t3n2861pS6K36Xl4lwWCvWyMUWgcRENejxQ5kq5xUNm\\/hx50PivYPdQkltxARwcbp0FePEM7yGAAzbloTeGwNUnvKwhqziU+X3Qzcspoq4PlfZqtVFPr97+l\\/4+1iMl5jzVOKp4qfwipa8zg8a\\/07C6opXOzjlW2VlAqnTj4za\\/fKShYD2Ad6mGpBBJzIVPVV98LijUvrzsstvsAeqGBqWC\\/FcNRXZpq9VQtraaZ6d\\/KpLuVul0PcHjAOjFIxnaxqP36ewH5lw07iQ4xOPro+kWB0HVcW9bPrCQO51JJUjnA6Lk2XwspVghMNnX0cetrN1F6Wl+BwjozcjwtaU9ou6aqqV0c9A3Aqrc03svrC3HyaXtqjsxkPcwibBlAOjjGrSBw6C85fRns6L0ZNSJKgp0+Oy41khCAXu6rh+ezi6KAOXasqoT23xovwOjiSjNwbHXudjVpwLsZ+rHT\\/e56gIpVgsJ+zdD6m7KM02Zd15k1yPlta2oARPT8Vu3ycSUuH\\/oJpooY8Ge6VYc9TLsdzBrZjuVGNeGcZ+\\/UF+xhlL7dPg9rzCGXKipNXf5PoZErOp1GES4+P7hch5nunz5TLbaAUIitqeuTyBtIPOv5PF\\/KLlGWlNGQ\\/BkS\\/pQkqwnuR+MuRnIYPWwoc5frGMApT4gSrLB7rE7JH1Q+N55+lU2bold+Blq6Ltvn5uHiHgII9O+d5X5Og+Wmy7jw1xa1AK6t0xoHktTl4LYPDAO4mBbF6UvobwioXlfblWm6SXZnyE\\/UaH\\/71k\\/WAaVG8JUimn3bJPugccWJUKGQKWb50LewLmI3q8L+7FK76kdJ+tsOCYA2QJlTYbv4S1CgbWPFyph6M9VsjfV4utzZti43A0qc40zfNmdsYj4NDsCvgCYa6zNjMQQktjwpUJQuXUgdgBEEoJkwtlYO2gacXjCYBbcEiNYXpYk7oUemo47876FRSPUqkITD\\/Q8m0oN0jz3SuYYM8MhRmGFTXtrQ9DpT\\/Ge+AvrvCg1E2zTZ\\/t1YAhh1SZPZKNnrJSk1Mk0Ebs4SkjQ0TPSZe7TZGFktLKM0NP60+CaWcy4wiZgh5gV+Jb+C8oV\\/2F92r5CplTk\\/mT\\/XUhnK+sxI3Z1ymkp6HctqRBQsudqaczZqDiuJ8bZHV5X\\/8bMIUtbiwqlj91dVIVyczuYhrKr2K7N\\/LpZw7miCiKawkf71t1km6f2UPkj4kxpdBtZirfeugUHE9o5cMk1CAa9DwL4ZsWbx0vzItK6oG635Dyv6Xx3\\/c2y+umL+HbulaoXkblehLBjlzPtCIDfSLCeXAUnHz3xH7HRy2G\\/JSZxopHZdhAXu1yOgIpm7m0qPPmoODRgfn65ZVftt+Z37s+MVQLc9nAdoTkqMsHhlTJE13uhEgnuKIXc\\/TTDVwbceAg2UvqUL2CO4lSiNIrAuHyXdiRqc7t+pd2+NJuXAUHsoLFs\\/cJTptEm0O7H6qRcINjcyTM3oUWcxrr5GuKbmY3I7yiPsSLeUYvKno5\\/Gwx5GxQoIKlu6huw3xhJM2UxjUUInfRQUPutkQRtkcvaYgN\\/xj4INimy1t8rQqMhKdnqI3XJCcg2ieno5+hxtWe6E7mdPOlxzbcfC6kGp5QEXSPi8JaZpeaJepE5Tq042Ssnbu4Qtp2xcgPWxgdZrhpTttHs5Z2PuiSfztIU13W0grw0UzF\\/STpmCXKkPBrRVLJEcLjQ\\/dCQcdhD2j70d5PaB7RnbOu\\/Ka9m11touSaOXNvlI7p83qlgDoVQkRPv1y2H2ayG8r7y7pknuy\\/4X7a26u15UyzoCmMzARBTGNmcz41fORLFUC0dRckE6wiyrvjorEWTKk\\/OTZqjia\\/em+nodG1Nfbj96XwxuqoHEo6P0TWeCDcHlpuJQUv9h2dJCtc8H3lQZiN+F0GMLnCPC7AoPXUQdrp75LWHS1gjZ5us1x1DdbWDyswADUSq5oeXafmEF+gJV0JtPw4UpdJfkzMTW75DRR6EZhxMUkqOLuA5FUho6UPgj25aaeRgZidbWtRVSwPmyg7VpSfg9wSp2Ajfht51TySrfrvTGNLbmD4x4Q+P0qdWgg8wUowsME5nRpK\\/0JjYXGiJiHqXJNDQ+\\/kkBenYnxppVgNTQVSmtZhwCieRPtAoGV053GV731Gw8wlS7I+YicrQalE8vhH1EiMTe2XL6HZ8oAnwvcsyqZSX1ec4dCwZchkqwMQ7sw6RONfFvfMxWS5UjSo0oS+s8wmX9iVs9LrftRAby4rtRFqxm4D2MEaIDTGJaQuh2ct5wy+g3WC6KgQ8xUybt2W8DHDtyM76zXrIUZSpRCqKynwqVSH2M1cnYpmcFh39\\/hZBgYojheWE5FWAF0m5xpySsAdZKgg4YHs00MCkel7EcymsKHLPXWkMRa8LOCMY43s64JLkXH177J+zX2GrbHksRu9GBgxl6rSR4wxzQhYmmye8m1ECH8WRcYU2TO2g4RvAZTl71U4dySeAf50gXnAMK025PsIdeRYWx1ZEa8Tp3c7VFUyceYmsXwYqL2K4ceDqzEmirQ\\/p\\/ovhp4z8cnmyrY1Ys3iMgDjJBt8Q9h\\/usxfO6FiIXPMiFa1taY9jsloJgshQpG8X5enz8mSeA3MWBefg+3FZC09N13vFprIay+pP5PjEA2rMJXxhPyJw5r\\/NfVWUzMTu4izL2Q7IzUIYP1IycdDapjmBg0peOhOl83haZRvGrEKbhqBeZ7nvh2C21GA9ppdg1kTEhrwG6uRiN4wev82OT3K4eGij6Mwfm76NaKpQoXQzYhPw7z6ap3jvlr\\/0uJ5dJVcy1WH3Rcud4Ivys1BVi2niE5GnqZxVYPLH1TLxdLwY81NQHU\\/NGGer05AiqWU5dlyMnQhHXrp3qpifPpn0ygps6NZLGN2iyega+1nGDx517Ipr1nX8l3WdoDSfva3REcaGfwPoSUt\\/O4pqLifZrsYWrKns9519uWD9A\\/gljTnzyA6tHf+ufOfbkBV8THwBJm1+qHGDa9yQOOgpKa5JAra+zEAJogcqEiKFxyvfPsmzvZ5YrNPCy12CVk2q57csb16BVd3dBhh8GSY1PL4A8Nq45nKHmWf3pZCehPKZ1JSmYJAmSFnTTT+voZ2fQ9cf8e+3BPfwieL0tl5hdXcpifQDvRk1GVUglJ7lUozDwfVb51lclFWW3Y7LrOWbn9Xyw7ii66A8U\\/moER4oh1sHAzW2LFDsdaZwJHoWxqL6mhVPF9thNOkl06g+GpMh2Z9VelkkHGCS7qh4\\/tYJsaOM\\/P1TFv+r9bP+6\\/KqQmtsebM7kPM9pFQlO2Boo51GA9wZkj2ZsydjcQCv+7cgWVubiZ0QRnssyU+ln1Nrvv1+0ltNnnrNz0l4+kKNOZmd0Xm76q9fbD2Bj5ytsT55PqpK76NJmAMuAwCrjyquq1dK2Esj5EVpcAZ5QPXzOEEW2i+TcmhJO7jrf5hD6jieGWiuEoBMAC6+LiLyTaPn536H3yXn371awaenTktd0ucV6DTRgnsVrcOWOjfZxSqs8+gnAXTQGTPqNgFU67pommT\\/0aWhmwubLQxvnHhgO8JSLQzhGZtXPo43QkaVfIOT8TxFPn+PXF8h16yHMZASEYHegFBLwW2LByfBKQSO23J+m5eJtRlsTYChd+If0opyrW9JXWyo4uNzjXxekxSYAb7uUOpkx7khgg5vw94tzzRRr+hTkXNgSnG6W4QhIr1i2KGe0XiTXpdL91Qx\\/03Q+xD\\/aaBymxxGmfuvufD4GC78pIgMFWW75x0egrB8EbyVCEa7qam6HfyxByXEH9pVUxReWZApFrrp2HVZdU3a79RYfmrtRL0M34IK6bOLoXGhvkCWSFUtLmXg0D7P8lKOLklzoZyZlmK2Wy16twkOo3lKQ6+57mO8PvcFcIzBwyAn\\/GyCIMKQw9c2u+ZgmvxkZrucBiWU53vX8DGeYD+Wt1sT+Bz4bH7jxEstkCPj3yU8u6upHedh0Io4LGuljBsxA6\\/mahpPLTynxyT+E4Tp3iKgSJOk8ANwY9gU2izspfomvxPdjXVZUuhIura8GWhGXi4CuRMYyJczNbIvYQ8yIUZIV\\/hbf19HZ9+y3WfCjPYzU2dZJ7rQaD+lLPGt57HqBS\\/Ff5TGWK1oXFAIHSwsa08CJ4TDmDF23NnCGV+nCxxEH8fRyveL+PTwPfBmqqN0Vh5Xjd8i6ZSH\\/Zhp6TPPhUoP2m0dfPN3ZwI5++ulaBWnFNKLBaozEsC95AWXVnG\\/peEZqWwaJnT\\/k\\/AGbT6FWTbxzPhqgzfjvV3qfcQzAodBGS7Y5M\\/SdxZSLcSiGEWCyk4SYvTZ40YdkdQIf87ytGKuARw55fHMLdlE6mo4OABBAJ8grs5k\\/TUVEWYiRVGoJgWje4iWX8S8gPkuKoF5CIUCLzma+O7wHhWjal2r5DLGuQ6I5nUxJIVW\\/EFZEanirbzOzEZmRYPLipScQzFtTuUg\\/0Gsm1L+6Hywb94pysBkChW4F9x8CxX\\/QmuuKwGavGzWf2uWbPTELeU\\/RmXGgrllkTuqfXxvA3py825vTxq43B0T3n7L6E2l5EqRMG7n0DQwLHkms7YOKWutSYGQFpnewzcUAJXcyV81HEzJ4GECbCc2o\\/0gH1WmEGhMJYKL\\/xVyVqrkkoeo2MR0NmPozYnb5+H6UbZ9hcH92wiDg1mS8cya7gkCkq9jdL6zpKIhdlYlTpYrJfsyzt5Gbvcbg7U\\/aX5an2BmP8KeNQI6Ng5BsQ5hTTt9KkV\\/FvxWs\\/VLCLue4\\/wIVVi+SOZGUNANMUBSoIdoofp5ZhT44Y4a8r\\/ubNZIlb2QaV6FTL2Jqr+Tsk6DH4QX\\/Ep56thY9NV2tA8fLzFhuHzFyIDEgCNsc+fivtXOgGFgFtjYGRZ8TPuleYypu5HIQ91lSN9b15wnmi5oi7I+HNpugBkSnTciVPZTtMhHIWL1bckgGUUDrKGeE+VBRFS6kdVRvMTNXJRGlCyFkwY3qzdIXM7oAJ1IqvWB0PoSfzIfY1aZmcZMlGe3SZEBnk8C9SUHezQ6LBO\\/0jdS0isW+fjboljv\\/7Xe90lmNWf6Zvr6sH8yGF338Dwgg4nYd1386l9WP1cJLyr2o\\/i+aRsspdRlLvdQ9eIg1zYDEGmHVZDTLmHniOLf\\/B9zs0o\\/b+F7E\\/wGclak4wV7iPcND2Ni6JdlHTUleEvoXbxJqxCnEbZv\\/bY2jSJQlPwoBDcsm6lZ5wDSxcjcztvBA82qwGTcUwwbSa5E4D+UjdcDeGPH\\/\\/kRbPQoM\\/UqRDXPAAPzXjzHdynN4\\/pOqKQVBwHrTQ2TDKu\\/tCT3ZxRul1EN3B\\/nP6o7ncaOtJWfRcFmSwz1Gg2iPIYa6e5n8oJzrIJrat0SHwuRjxNnXFFl04i6\\/2qQAQ46Rmwps1MSoYc5R26cpn7ESv28bozvqX9DKhWasadmOOBWT27IIEDSaIxa8efSa1oo7PgCY\\/eJGgczYffdqb0c\\/vGOTVcFnFh9bcRFFPID+JtwWmD\\/X\\/bng0EMiBQOzqERg5ZAx9Odg0JBDf9+a2R0FU\\/4wgIw0kNnwGP06DNhJ0MBGXfXb5CKKfHWBF+SFbeL8GdGTgwSnUT4Z5bWjoQAsei4YHR0qfmlC0Dy5vc+xvH6Jw8s+wvGAse4Y14WPwEkLuadVqvwLV4hqN75ZsCXryrhUMtWBwGy8ce3FjsRol9lf3x28tLZaNeYBxI4pVgk2PO8UDgsU2QgJvqxwCW3NwgpE7RTJbvQNciCNdVeSbDw6BtvWNtRCy3hDfj833KbFSwdvX+iNzAYz0xzs61E4k3ZvTIXe6dFvkBUeNQIWSMS5vc6\\/i6pLUVPQx8OLTXIYF70Tl+4RFzSc26+MR7PGh7Ys592getlDc30stYbzhzpEAzU2bJ8A5Kn4KNk1ZkdAdzCDo8xkhMrNbwE+cxVERsVnChRT6fGKJZItnNw6bhfUk+AgUM\\/irMYP3I7sleX8K5TlZaefXgn8N9v2SIgBXfIFq8GPOi+nyr7NvyWTllosVGTZ52ERK21QTr6EWmWVt2nGkyXUbN\\/u7HGhke2UqWbE4Q6XaZlo55PUL8HyX\\/z2k1taS30x1zwGL+pWVbM5ZC+kDSeRnyUfJ6Q1ikMSMfqBUdA8wtCz4jCQio7Q03zBpE5eqCyln\\/mzun1YkI\\/MSbVtWjHfEMeP\\/qLSFEB8Utz4Q4ZLQpNQeqt6zgn9aOiXQWhRlpnBGfNtwjdNrUHtYHqRULHXeGW7yMRn5mXlgs9Y6crPy1SbZHW094M8QndbzyPlsa3EOmh2Woj6TIWHuhpWJDi2AC921Ios88hL+XgTPjwFEsee2ToTb1CphRATRt4hIEZAs26mxJklBvEqfSOOMHcgNT7hzRj8rvyYJ0o5ZYw6qgTWBLB\\/WSgv771HamFEj1du+tZG8UfXZ\\/zIyqRiWD31HGjNHz0WLkDVR16V8wvjwUoc+\\/MNhHyd8xqMCELmaQtxkEYBd0\\/A1IsTSDevJ\\/zEY9uUvLlKJc5\\/2GBbBZakLmaAqp1LmwRxh\\/StFx1AmIqxwbMegl0tIEc53kV3i3w3mSTKPSWXb\\/6oYWkVCIIlg3j9HJKYkfrWCAWN73z77pSZ2lQBVCPTLg3smrvVe4m3WhOc9rGfF4TSxLeegvxA2++oAeuEX0m8NgQkHJiI8NCulyrY7P++WjyBeMKtBYoSn3FbQL2+fc8C\\/v76LtYQwVqLuWqySm9G1SzC+aUic4EDlwdqnCApreKrSRg5bDQsxMDd16xEqu5zvJVfnLHxqSFFJsqjyuygmGEYTNjFsQfGkHZFYmfivrx6rrgvu2mZGQ3fnZJ4hhJn7d67HE0Mz801fYEuRXnyfH7Q5kbuqKpmoT73Zpi4K+KYf+Y3vvEjt4Yrvlk7b\\/0gshX+484pedsR1Zx7OVZDmrL1OWQqZv8k6vJ6edPeQuNr+0Ig+qdr6PfT5z\\/fle5NOtQsnltyREkkZj8DqguJAnKkJdiDun+qrHJvdVYosqDNj6PIhdHzpE8EHEafNRjiMxB3EBZM1k57lEAmwVdsy7K0mNztxUK8pVpCFtovVIWLap9vy76ZHaf\\/aOR59emiHXBy\\/E2HIHoWgaNPDcbT2mahZqXp5dM3Ng3Idyrak4UvLMrZgWsNjxJq6hBhbau3utJpR8Sr7a7M6jvgmtFNpKcMtFUFgz9hfLKDKrzk4nzREFuDv4VQdV1k9Tmq8atPYVqkFZit2t2net\\/jXKXXqwbY4IbPZROQs8TtJoQlzkOcbTDrXOjmCq3JliLse5o4tsd5V6R0oRQP8RugOpGCcuORfESXalnoRgB3ix7zx7n0TOqTsBIeN2FtHzWzr7Eb54tgapc0ejMdV4y2c+QQdLVtZdL1KQPXg\\/l+b0s+ErM1ijWAMQI6KXMa4QiRFW9x4lQalFqCpz5VV5r6DPKx9h\\/LqBGeSjIpWLvK+5pJTnswcxSlI6Z\\/4xXbgxYd\\/dzYMyfcVVio1kM8mJbr9gfE\\/jA6Yg\\/Zk3dpcCi3V4iNbceCCetCvpwd0eI9YcZHlmH5PAi06A1PRlg0hyQtRPKH\\/6K+HVMDDJeasE07T1Onaj9+Pj7UiQg+w9YapMFCMt9IwSwRzd75EXQWcUQxCj+brGW54vw9bV6Pm8Flh0UPzk0x48C5VfHipb4kF2evxJ5\\/iHAw8ajWOn0T3JsMRG\\/x7OR54K\\/W82PFGogVkorp+Fhd60N8cQVP+rjb4UTdGj9yYDLnGm+8fh8gG+HMKRkY16Y1nL24ENskWZVoqAGtaBKnxEgkogN8D7mzmnX3klIfeqKI0LubaiaDIrhkpHRivcdg+GfeXII8436VMczz4IZEpW5SS8L4qU6EKDlGeirGU4oqbSiQBsajesjwf3cjkiE+2YKsUKRJV2Xv0LUqCykEYH3eZ3JaYFP\\/SC4CeIcsWzve4nU0H4o0ljo6irI9Q403FAjLleFoihkeCIifLsq6BK\\/r1NniYEbfOEIRYv0XA5GgKMuisa0wU+o1YrT38nG9uIhGYBkSIZnF1A3canmAMjAUhgELKnTF2HFeAe\\/mya+0onUdbtEnEBLm0K+QXSDFYW83kcrsbbASJPUCTK60V0mZKhLXcN7drBcMFiPASxUWyILCN4CrkJ6ZBSt5RhlgiFGwss+QYqPqNGI+SlOAXlnSXruI\\/aJHtXUrPp+uz4+qvInfnMK61ZUvLXFtkgsLLZUa+dqkF0By+uKawoLcGMe2qLq1GA+O2N3U2wOOGQP+JcIzFyekikINiH7u5Fqn6SO4gal4FqbHNguesxoB8pOVyq\\/uYG\\/zzPpkyZSEn7qwT4IL9YaNtaFcXgq3K1TjX8g7kSDs113yjKm4yx9TlqN7Y+\\/RX16RE64Mx0X+AkJLeNdaCMPv8CxTxflrgpbiROVsCwo4iyJY7Oebn2wtNZKNPjkLscBb8N+RFW5dSx3Ri0OD2G6osm61ugqyzoFurGxx\\/axqQNi2EmPRTwlZDsVFG12eq8kFs13H1srzN+bW4\\/bqJTKaj3GuWw3VVEXI3x5L3lVO6VH+vbu5KoPOBR6+fu6+TeFY7YKjJUJDsg8dR2jFRcXy3Khz2o7djGGCyilEeyv1JMtGguWUSSH\\/Wpzld0hTzcGX8eQLeHRhZCFwrOw53b32CgCkEn3q6yyDsLWyJWIjdVC1d8KJTVQmBEaiyek1bjW3rb5YyyNLLPYMHbb37KhRh7s4ARUxd5Q4iEIS7e\\/siDYZA3iwcAaiOL2aiCvqFmu4MYH5NhnVALfm\\/AKX2nEYPig7SFAe\\/GUSb77oXpGRJuIZBCLp3+7\\/8y4FrlvgefFmWn29jGWvgvBn14ZzWFzOCthYKPh7wadmKKawhAvGDTX7ZmLqjG99qDIEJBCe7nl6OTPoHTQnyhHlHYhjTta85B4lbJQSY8hcnNsdehdXvX2XhI7x24+\\/rLxouhEOWp8IqB8t5OQOY0\\/cFGHeEm1\\/wWKMDoJnfYbKByZdi3qIfSRYbuWDIZ5YyfFUJMMCP3YeAqs4znq3PYFxSuDmMXkkZbpWetB2BuOWvRbdV0wpbQzKqGRxLz1LAGYX7OkpCFIJU0B\\/J1TwpfevmSQ6\\/8vVfU0NE9GZ00OVbHxjSKVFO+oJBZgWY37PojKqpZsxqKgBGn3djTWqvT6OAgCD\\/QsjP36yZdtska96Fi7aRc7gF5o+e95MBMDm4pKec7r0Cvk9wd2pMJfE2d+V8ZyRrHmb3R7q4Y3apG+vMlszip4P2vTjhM0+oLzCyHN6L1KA99Rm6uD6XjN2vScVG18CzQ\\/JGUH+VeN21EhQQMZSSBSjXOpzIccAQbq6SNpi2YBGhUD9nZBMXoIWCQ6r0g0HK75WtDu9g74GNkXK7iWW5bcSD5CnAur0inOnPUpjg6KS5RbaaIlqdnE0Xq6+eicyx6lSLVFG2x8qJcI3\\/9AtgQ+KJbgXXgIMzEnBen3tz\\/X56VkpCqsiWVD\\/FPH+i05HPyUkBNeM49btZoaGPIBxhUzQEhhS8kLs9eaextRufER7tQ6xidDCqg\\/eDjChAP+0MtvHjUXUfDLv\\/Z\\/roKQr\\/L51LzKmK5bx1U3pOWTu9TchKYNg5U+CfJHutZAVq8of\\/4Pf9Csv1OAcJcCGHwY8L5+6OZXamQ7pc8MvQtgX+qnOtjqKxcfuwLq\\/GcfX6Sad7yio6nobPRy5zcaOFZeFGcyXFuDM5UgkLoZ9mVKCuWCJEf4ztjHla03SkYhFRNjlHz5WQvaopvkoXcbmOBiaswGgM77rXchrBmW\\/eEZI0jufqmxdX6npQHKwjoyXCIk9KImf\\/AH\\/zQSnX2Y4jpvhENWZq0Esxs3Cog8wwcNhNTzam9cD5KBU7edAjiQ5FljTsiGeEfL4e3DbED94EiSKdBxm2yO2gd5UWPy4T4OIo+mN2qM6gpjW9pJTg5IyEmsxvvgxTarTRe3hugBVaxCBCUtNit0Y8hPeUb1MkGQ27SzNlGGx5I1EHfjigG7EyVRLZ\\/ihPEpa2c9sV+vsj3w1SfQ930tWoWpB2CzdfqOiIkL5geyrbGDNNsoU9j+NcGc5dRd6HJl8dLEWEPwX3bLSDY9cvoLq\\/gWG3fT12+vwjWDndcWpyYNJBRxIumGr0B0bMP4C1m7sP5v6KaqSgQhW4WoWKwqNMBX02qA1SWfgRIFCOVqrznrK3VfmiSm7ahN0E\\/b4Hh59E2ZYGvlmC9RmOyos1XwN2RaafsAfeKcwfMKpd0XRouE1HAUxwNO8op7Kqlvep7oPxmZU3+OgP6yHRZgm6+I71TA5g9BI0hcYRkqJMV+Yt4N\\/RIE0gRarREY\\/SXUAEvqgdsmdJ0t89kod4ehwTIkgOKG3v47d6iQNK+liVcNY+VeEBnntaj6O8vldGJrQv7oErzYsNvMHjVtJWMK4tFCLeq6qbwSTP8Y5uvykraTXu59lD1U80gxf6kfkbgkAplsIvTIypBX\\/7JOGrrvPT2tX7XHpT9yAL2ERwkESQmYjCLZ4e5WHag6Pp1YPqu52h52BpgosdaxnX0LMGQ2LnGuvumNsmIr8pHcr4CSIXdZNcBYJZnMw+FHnm41Ppm8qCcnSqGKvWOAeFl9znxUXnhWgBbqhPtCBx1BGOS\\/BljP2y9JYc\\/PdOV9jb9zFT8eKHN3ADW03FEm3J2TsFzQN0iz0wS7l6wmEF2yrM19SNgamqfzeI2Iw3DvZ1Vij77I50iuJCw8d4df89kZqrTN5TOl64sMJJ0WjSxIwJEIIaGjsz1l2ezxITYk8di0BxOl5MzuUrC\\/spwKsV3A2shRNl\\/qoBJRkamzbhKlKEycbbrhrmRVtTGZebt9DqSzsxJ6Qq7YDrnXFzQ8kTibsugNWvJL4vTLz\\/yVZeGLHyWeB17R\\/S1xTKwWwgP4W5Vy6ItLHtuZdM0mKwsr86DpDjTB6Ejf7BcahPSPmySmEUnRO0dPhv97dXy0nEu\\/THl6v+AvV\\/5HLFT4\\/hRNKoGsvogeZeeJLLefpb31dvugMNzaIg7uYBbyQSmSopt3p3EUQzB3aRJhLbZs2\\/c8XeEm7195ZG5j1SP0KwjFq1+csf92K4q4Z\\/\\/ma6JTIHakBNJjicUfbxPRIs8QO3zfJwdkXFttfJ9LyNshzr5GmhD6HdzISmPZRbHJ7ufG6saY3OxP3C0ybUpACCOBCrK5bm6TX64h93hyZVxz2I69WyshQW88llbGBvTBSc0ipvgAP\\/v\\/JLZ1xCoQX\\/CICzSprpvbJaNo4wBH2XKu3WaM53ydgKv4ffktNAFYVRPPAgMLpDvrfNZlN4tInv+BSYg1SJf6duPzX5N\\/lsst7rm4FflVi2Ms9LFWYFXK0MIARfPNRi2BfBaq0F53w9IsbpQy9AHXOkWQcM3GVMw8DfATnjQWthipR9+9Bqwwqc1Z4CKgWLAEkievWqdcLPaZZuE3xXQlEajanfQE2+jem+gdFaTLIZuFsSehImb3LQwK9IUiUKZ95aicuwBq0YLEXoZeezn1AIhvOuJq2vTU9Xb8VkIbv6mKixtX+IzdYc0BOBBmfFdOqPdbIEyzUuIFa5eHDx3alR2En4Pwefqc2fLmXYpw1U8\\/SZDXHYsANM0lX5FpO+yLfwvgCR9rGWGcZSbKz093SpVLkfBcYwZfCPWBPkm9spjK86G5jDDX1poOBDHR3u8CJ0clxKHzZSSb7AiuhmMVwxIlHtHrfWq7NTpetexTLEaT1v9mkLNFsw3I73E81k8WCcIQ6Bi+stjqCXN+\\/GuF5BzY4Go8aGXt4dhzitnhMeKaE6CGL+AtmFbKs0TCgBB6BnCbR6m5hq32B+7KhHwOAmSWgpsS19CsrtLTWHW9RJhXd81TYd7FZ1FytgBNkxd8j8iT1keOA4LCOjdY7XA36LSwQd5VMzpTrR\\/ZfHNl6ay2luu4h5Ybyxz1p0Gh+2JOkIacXEkdsYuC01VBF345AfVCegecpyoIlXZrfwne0VQguKDM2TrGcoWV+VugJWHyvfxxjc7ATO2AkDZHJznXlHF6hBsWJov7qzIkpZDXZw4ZaDx3DnoKfnSxSsDhC+ewDAYkWhMxJWflq+0Pi5NhpYMZPegcQ3\\/egtxCDy436lxZfXms99JI88qa4gQiRc9EBN8iyY9TsubaaGMIpo14tBgdw8ifiBGf4vX+WhQPQvTakVxSv9hYb+KU2z15KMhA9NJCV5VeelC4rJBiOyfDPJqYmijYyuVoAduzNKjRLOPAvBt\\/agFbsbL6qwZ1PzmTUo7itQjKvljwhP+B0eRupFpyMKb7ELxElN9EnEkddfwOto5dx14nb+Ug+ON3C37tSV\\/GrdGFPwScwiwzQr681dR3ijQw7msuA7tFbPyKWc1MYtgYU293uXdbptwdHFtKKmkbUm3KvVrucPEBuaSRgrsW49jKBTl+HFgVYcV\\/11UYwR9jiItHGRwtwdwWxz1UBGiQdKddYF5a6XbWTo1oHIOnY7tBt80+CJUYoitPhSCI66Kub\\/qsxl\\/7nc7FCSJP4rq5v4Q8l9DYdmc5NDXiHHC4vkM2S9zfE8N\\/CbLWdEtN3NqnyKJ8C75HNis9aCQD6XRsDAFtf+NlxbEcLhBJkdgRsyDJXWC31a+Hm9TwdzELh8G4EYz8P4HuskfWQ7uKXak3Mgs8yU3zScxX2O0Cvm6IsQzmnpiP5f0bG6L5CMMhhXPYN8kzhLSrTmqfUztiC5FS7Mk9KQc0hjaQoTHSY3qBILXSlIrMQeYktq2El7UCHe1nQn2\\/+u3ujw5292E1v02Lt\\/2LbSf1eCKubV3menBIzedQClBSPzcFmyHSeMQHd7vVBbhec7adEBvkdBvxaMxBWioj3GtEZQPRXVtWnNymWv0hklksLBB1Kkpp9RYYGRS8GsFiLwB6WI0MqMkyOX2iNnH6VO5MlKLPadGAR+LahTg+tAUGWrTIwK+ZtYZzrEGy7uxhWV5euL8tU+yieU84HY81kirii8wYDgkajwl7YKkee7VKySjKi2ytc14+DXAddK5dJAUg0EMNch3\\/1rk4jsQBFSdcjzsH4+TQh6TU7mJyakobS3XNFZweMfJJVgSkhUpt6ABBMWLu2eRD3c9HhX67TF2COF4WDV3ZN6SPsDGBOhrYHFKq1dCHbNrKC+S+apGcc1zdrktJElKSoTVtb75cwee2IvoxTex\\/GX8Cr3zJ7T+svtOMGowc6fBHifMbc4UuyFpd+c7OT60RHib5mbiIQ+ibas+3Q5JuNvljHiG6xxn+JwgYM805Ww7wlgzlOEtZAlRwrtpZmysBb91ToSWTUKIEaufGStwEalyqjT51L5mzwAXtNQBFomatTEAOdUoROptX4YH\\/cSWYU0nyE7vPH7I3jylpTjmekFVfCGJm9P1joCRh4nirHfiBNNxRKb8zmHp\\/t8fp3BTZUd1b+qLuMa3+jbYDXw0C4zb7BNxSJWk7pr20UGKWV4dRWOcTqd8Qo3JX3Tb94+BqF3nzOrEAV4aIHpScAVJXjILGwt4gWwGg82eXLxDIC1fGPqveKzJ\\/h8C5lbO6QnEOz+Bs2RqxStUAppUjIKooghRI34QZNydx5XTSCvsWlu+xJQK5f8SAeZGzeZFkN0APq030y4BFP3oFIEnr9gMsVGfN\\/cQfQXo4uQzsr64fDx5pLAjo5OnX6NO2q0mISgZzv0I7dnPIrApH009b0sAcePjMmKZWCn3J3D9Abx46v70e7NankaY+wqPGIZBN4UqhKh2EBZYsWaq9bCrY0Blhc295v2aUzgf7rQRR8DjK\\/Cq99LaKhmq4g11OvRjB+ioE0lC5XGP0KcUai46ZcVXx5vragI2hXlmPxrB9aL8e70X8ir78rDN7qFxKgSgIaqSMOwl8TFPwDB7QSAQKDXTxwn1n8+IzCEWqaoW8OxQr+gymaYlkXNxxBrJjL5n0fRxGVbpKc18wPelwb9BNFg2WGkqkitOMW3duhyoIpHTfnQv2vFuJs7NkPkscbAmH4mjzZ2Wbkc9BLb+I22WHUfnsuDbg+Q0rrhjKl9Nda+P\\/uP5CtF5HGyxe5z5KuAlUS2U8MUAZ23Iarr\\/v7+TKPyG+WL14f8q0NWzizmr+IXYb6foDzvGdG\\/6N+YogC1l2nvP399ixG5f0yzGviIN6Ixdw3WGUxEFodxthXDcz0g\\/vzetwBYboM3ZnHW01pXxz1TYZ27rjEJ6SQaJgyKBME7bDZvZBkmfzs\\/s1tuERprs8cwQTyW5RiM9WMn3ySYUd7G+\\/r6OgrdRB2dZ9RhOqF9MdypN8mB\\/8DkGtni37s319b7NNpEPsXkwydDtvVXvJ+jCg+rsnI\\/ZHfx3ZlNrZN\\/7Mpfaf7YykE4Ag41WIZADqxMvRuRRjNxRV7oZGMylNhofjFMHMvbNLWWN2ts4qmSlmZr6dVb1cg7XoPvdV+GjJbqKpp68z4NWHJg6TUjYjB8pRzbKH\\/dABEhDVv8mzNdr4zyXeBt1nsHTB1kp\\/pGFRgFt6cG5iee8IWmDylbeV1ZBPQNmsQffWyKrxzETGrDNKlZlCGsfcWHsal8eofs29qKxvO1De0VbTa9ul9oIWqECco7NGbxY+cwYk0\\/SvKM3spalPeeChHaWZjq4g3im2UGViWYcPHi2qyaba0J8o5cTCKnKla7DnpKDED4PaFKL8gQcibRbBj9OnsM5okH9e03snUEZYtbd0jeEJkrq12hALVkjhc2jPCeIH+qREv+ypRVL2VmHzqCGHcNs54uwQw9JUCou9f3B+znv6KMUjZxQS9GNXVKLXw69pHOhgJ9Q6k\\/UIemTeNys6VmpNH41RhmKHn+xKdmAirUMjQOjBNjKzr7C80KzKFf8V6TWzACl4NSLV3FaqQevw18CIdxj0Eiv1\\/JeVcGNv5sr47i8ju7zKKZLip6YsFm6pnpKnvshFzR3gRZuvCM5FvsqMzZaNhWpgyanNU+j4hwLDf6uLEjmwnZ6D+HTiBl86CRe6gE6YLrmDnvKnNwHUM8nycbXcs6PovsRgNs3JXmWsMBAkzh1HFYQBFPSC5ydAVy971xItP6KFroM9uu3sO4MNMK8r2UqzLIn5b5PzikSTZCdeyaZ\\/DcakktfLRN1N0j6KFuVDH5UGfWLZUwjo5SfOgMw4XlTaZa6RA9qIZvKS4IF1foJkoi9KXOn6ce9KHfYSoWE8R8qmVyTYHa\\/Ob\\/AVBo3VWEg3NEXZgWiF3fpWM6PFur174bOCsHegsWtAkXqDJ\\/NvOJs7TT97tYVrm7kPTLnT+wetYVIkFbnX3nnJP07X9IVas6j5u4yzDTt3HP1Y+qhppWnlEyMuyPRm\\/TwozyP70hXSyOrLqQoVvyCNyIRZnQRAD0GQ3lRP5i0+IurOQdz3LNu9z\\/yvWFnCzcln1OoaAt76mYda3OPzaEZCDooK183+LMT4RRvCJpKWoZf42ea+LgPsOboaS+eT9g3WBD+uGZEo\\/0bpE6TvjfcLSZ4s7SaDiS\\/WbKtkQNrwp9UCrJHt6K2frmlK930M1B8EB3ZyponywfQP2zT93ziw4vu9e\\/4fc9IJ\\/Nknc+kO0PEX\\/R7qnLH\\/XskEc5KlQ3\\/CkTGgGQ1eCiVAQfNhDLIipDIK5d7WBsKfystUki9gZ25knB+PYBX0LO4wVTNemyQzO9v7TvaLMnkdT+g0M8QJ3I8COebPA7ns3d3dmOgIAEgX1RaPJik08m2DDWefSuqlNeaoQNgueTbm+fDGw2BGtpD\\/dImiKD2BtNS7HvjScPOcUPAfEx4TntD1E8d\\/EYbGe9zEQC8Vq80AmvadjwOrukpc3l\\/rdODqjuICvOPT+O6E\\/J3yVMYWPCPbTS7i\\/S\\/Ml+TRWP+0uO8O4YTpmedc5u82jNTo23PEmNrSC7yGPvPGVQ4\\/IykcRItPzfquRwdyNzG+kBOT3V1thzbq8jE0AUVxSgpujuedyDWhbNGbgoSfg1CfwqHjXRpOIy61QimCTpthGcldra\\/FvY9vVbA5SHd0TdBmqv2uAKnvGBZyUg2OEaVY1gGIvORck1ZZMvo56a5YmclcUzFaJEHKccnDF42Wgj\\/ITkU+sh+Yi1yF8Qp4FSI+Lvw7hi1ciripqNkzBW6qVDaxxKO0qCdSQMCD4+mNG+URTe948G\\/hglKV4K1S0Zfbwaxnx0NH8b32NUxmnj1Arz+3oxC4IDU1uBZqRDrqWgGmfA23p9XFKVSNPfSRZHY8r3a0h6pwdynltSeUudIQP60qlnyLYrEi6aMI+Dxt2jSVXjPIJmd445djfEpJ6xCAWFcaAl7Ik+yq8wW46Az58m\\/gGZsCR3gvvZ0smqRraJaj7t9Q2a5C+tIIkmaTZwf5R8O292fvcKxSKFAogZYhFhNe5NdpYMzyUnq1UWCAcSfjolXiADgYimzopFPQS5eripMY4qYOMMEIlJOXQfntl\\/OaDK5Zk8MT+kciHNBCo1CMnIReejHdjC49GX5QbRbMmraJxhI7vBpZv\\/zA3zuwt6RAa0G+lLOQCqRoWBGKc5WGegpnDEFYmPhLGjXdddRR9QRDMd0yTLI92zmIb9FrhcEvqPbPsiTD+mIXbKE7rfk6CJ3HaE4IK6ugFLWKnqbXB\\/HZuws3Y\\/IrXWkxddVs0LZfP8pnDqZrmryLanZw4Clcu0joq8tztdGB+NKyj54RmYpPgKQLZfWH9rgP6xVK3LK2GtwC\\/vXquuOwZMOThU9JQ4B4bOgDS3VWxAvwMOkNfM3WfA6PsO5raV+hsLLW38bf7qrpkdl5mDSZNYIKVjY2bgC\\/NBZoiUtkhH06lbIC0WQXEJVODJg\\/xjMvMPU7XrWfkSjpoh09\\/ZkOI1aZArxJJzFoeUkderwM0dGeQpVBOw9bmXnAOVet2FSqOvNK3iGt4SO+mJv9Eel+grmmWxSSB5lGIDDZ0WCXGQHo084TlJMVHI6zXNFRsqcLcWt45UQupiqWdHzYU3O+2HVMMzis+cLzwvXJi4TOWaYjuxXf2OVXY6PW\\/K9wDh05VTZBpeWbrUWS8RAJX6O4tgoAyhqtyNKq3SkBIUg6mcRnOTZjthVyiYe\\/X9clu8Q5zT9I7w3pe4OOWrqBe5zkdeGJIIhassqfG403Fk+wMHLSZ+jnuIXFtRuMj3uf4mJqA8vf0dXOrlCZK2GqkqtMGrlDw60+vuAzSzU3hf\\/ZyYCS7BcbRo3Tpe8LyByrU+MUUenHVER3KXHIpLGH+G1R5FlqRV4D5m3s4SVarPSH2eNoc45FyeH6Y0gmWZqUS7TywK9crw\\/jSzxCFh3QTkaizTF0wGfEg3k5E3eniWWlw03AqSTJhhUY3ue4eIakLJCntyb+vMcfl2KwhbHWyBLDi5Ejsjo3JacIqGuZp1Q2XkrApp5tt6ZWYOeO0khrVsgsbkegXhftIsXTPdlBCZOkTJWsOk551UIo7B7bfIH9TrHVuCAKlS\\/OHMd6p3TNsQfDbaat1OyR7gr+fgIMS6LucdDXTRBPYfBJRf9AaChQDLYoZdglQ6HYh46SxQKxdUmGkIRxl2zgu9xxBPA1q2r1bFlBiSfrGlTMTsiG4A\\/WvOQFXZg+fF4tEqHWtpW3pykJlbYsidGBzlNZMl0j9P6ZGpxjD4AQ1EdOGEz9Vgp8vitL8Wp2MI15jHuJ45VdAcIdD8vdk0AEehTPPsjbEIlRD8HKrufrBTGWs+QaH\\/3vnYRqzvhrEzlBpt9uai9FLKgA2bPTFHrKqu8SoyomLzvWqjNEEtu71B8BdFRuO+BeFeTzZKUCFTgaVK7HgSLZf5CfAD8D2p0o8xw9cpezUdILeUVGmTkw82iKVg7aWFV5pgImip\\/z0+PrkXeQc9lnqfZSXlA6vS\\/mc4EVgzBu5LjhLoBjU5cNkyCKbDhcqz3HLtA8Su4S\\/T\\/\\/849PlOYAebFMELcxxXhl8xMHz34iInbrAljH7OIJLiBs\\/1xOuq+zowgGZ3DSojkMmy3\\/ZUJUPopog0px3UYZuraKHv7sy6l1Qm7N\\/6mFKnxHJ9Le1rsYe3HHcmzanDql5qb65+unkCuPzcm7dPpdrGf8cyFMlcBTfPpq7oshbjF0teWQwcdrmfUYZ8I99bbTkVVB7d7VLFMsXIUmasf9H2MRRWmTQEgmjf\\/J1\\/3ap9rXWDg8wcsyrUGAvLfFXD6JW1wRxntIH2Pf+z9uvC0X0dTa5LCw4c03op3o4qJs16zp6sy\\/73SjntadlvkIAek9RPaT6Bw4ZPNF43TJlIg\\/BCfPI1NDMhIHzpNpG1qJYghi5IwurZkyG4d0MZJRDsgSyJArD7O+H59ods0Q6Qof9GBLr+4ztZP3RcQcMdCaPSqka34bIfV1VaIqB1f5JT5\\/TT0MEl0+O+t7F4HxKib3D0NbIr3sb7aryJxxE8S1+r8O5NPx43\\/MaEEv9lLEPONUI2Ovmy3cO4M1\\/SFmkc1\\/v8uRw1FTYbFeSX\\/4o7+8TxvBZRNzoY03696GG2YhJoHbb6Twy2KBNLqg47AA21aNk1IeNFC7sqmxqsany0EMXvTXKWscWi5IVZ023VHnSK2AcwBFly4P1uToPPGImz6PYW2wfdR+9oz8zQBCOkDaEjV70QqOVfQfaCvVf+hLRc5kU8gLvd4wUK8Nl2QPSB0u8KJdRWAe+CIL+KaZh9RrFPgoWRv3NAHygNzRlZ0oE9iAnU+MRo\\/Sd6lwP0ZMuljhZPQ36w7eEBCVm05WhKJOYqLYgNH0MzWsp0542WfmpWvanyMwh6WLRvKa4ozBcabKa7oJE8NtBw+JdobJwwWRimFN2auRd3Ynp5PXU3FK7+nZ0C3TWFEeA8ttWyyNmUXsJTkZhIrGMUIastg6Kl3h4bzfmWUNptLOhFqupy7XRShD3ufK7ajZ5GChatVogfZ1Miysjx2i8W+UlRpvhGOJ\\/Ebvg9Gj5f6f4OgMzM4m9XuHmOd9+9kBCD8vt4iNBqUgy2x29FRST0iOm3hlGGMccv\\/znBtJ5KiJ\\/aJSo4ThM\\/dWd8JFw6xEU5Vk+XEZ674+IZegd3HSEVzDmZwgk80FBG+q1jldGTxKh4pfnIysSHqkvwmIkUKcslMrGaUC+v3nxHJRk+gU8MxjFXooa3E5lxtLzzkpkphTJeIvflnCsmml4\\/zkaiv1KjLYCEbHkzkNIbGRczHXPOTE\\/qmsjDDLuDktB\\/0v8MEx+7Pef6vXf1IDH0tmpisEZFR4oIdn4uOnaDoPUnYif+PZ9gha\\/dfK383pA3fYt1OJlC6awWsbxI7iWV+Dm0NiDuhMFjDVLhYn79jTecvG2lN2ZyGAiCQEJf0GuPcFaLzCmBEMUOW0dbdgO7otJHQcOsbdeh6cVvjuHSqOQvYHKtoIgjbrl45WI7MEkyFzWN31cT9sBzMf2ypPMwCMHJOvrVpPajXA+wKTIojFHCFvOxjTkfNtU\\/7c7uSxx3VU92nIsN4ud3ZCpLM5IsVqFYVGaVPevElcF7e\\/mKuymxx0KoHz3a54K7NFd1QJOaT+M8e24DCDaX6uZoS4CYnqXAwhkq5Rsv2w0KPTbNOz38\\/HsyFSlLjj271387Dz2KcYaZ4msbPPk+5PUfCSynlhMw\\/WQJMIgNLZLaM0yCIYdSg1dEIFqQtp2k5i4MXe98pV\\/ZFHYAwq62wH5hSvjhZCCB5ljEtycxBJnDLB+BKdoT+EdMNxJGfS4vcCXNVowpUa2jrVd3eyZL7+6D472FR\\/yGQZ\\/j30HdsdPN7hqhmesPEhtPvNJzeLOnn0fcppeS\\/b5jKkX1bcfp0ASI08ngdLvYPQTSkku2TEhQp8cQued4bDsFEwCTyj39nB5xz+bdHzYhyCMfNj+eg5r6dIBc\\/xyqkITAv5fqh\\/YTHAS3kUcKdalzCJUTGZB4FnPwZA+6\\/yXfzo7breDhaCHgMVWYfAMVed2R0aT9AW2s5jGeCLqWkOT8gkRqRBAy8gKC6XL6ruWAMTQGVPQ6pLZWvXdz9WeOO31cVDGX7o+AHHTpYQBhdHmA3l0ZmDfWZQaP3Z04IXkfWJm3H7CichRIJjzKuz2jdaCVM4B5WkKj3+vFU4eAdZCahrvlc4aRAromtWjOmZu\\/7p2xMHUbRxZx9cg0qPeOzc7zT74FfYdc1fW1MVkAHDdwrgsan77NuTVsRJxD+x\\/71Xvy2aOFN96ANB5\\/3bPuB7AIS5mRPvQ+MRuPgn0ieA4V0o4OoS0LiAQ8nUoc7iDmK1ZUx9oIeIKaIfF1Uo8TudmPb3IXPfBC5pklqKY0x1OboJiLOQjB2BM22KJC0TIAg1JGTDp30MLLd42eRizm+lYLvoUhAeHhKHRNRjVXBkydRZGfID7+ze8pKriTkM4pQSJ2V08lmQAyslInY+6pyZvsTEoUPXRrQyVyghM3m1dxwL6bSKLjD6JJKrQEaoJ+phE4fm\\/ACggrQPSF1ick22D6DugYH520+Zq+hylZSjbK\\/bKoYlNr9RNtlAb1vnbCr0djILOKmneOObaad3VkMgBQeRWBk21xYXX5F5vNnJcTztgbgj7Y6Svc77jSR6p6D4ELQkrgbIf4bubhfEEsOwPXDciUdJXZab2bfI\\/DOkoXrNBkId1EIeZVfU82Ora0yK2fVNiCZID+dPE06Qc09qM7DVrMbccqPSmmObKTxa1vQItFmke2+aKZkwvJAPBMcQqxHwetdvSjV+yxRTR1IQXAUkqPW+rRJg7kBZU4vB4DLiBChYlZHu9ITI6USMrTR4V6XyG+ln08nloHaOm+d426PAlNjRUcZMKOfrQKnpQ6oFqA4xfvES6wU37rMFbik7KpVy5ohBbzq3kEc\\/uDTam8K83kRTN5KIgoMnJMITDOwGqaxJMKecmTfX9Fubbb5AjQVW8CHi2NxkvKdDdt0\\/Ptv\\/+4MdPOjIrmFY8iwHoCUTmoze9mK437Htv8XLVXQeLKK3kLJJIboYDN46el7e2NdaSSERLuizxlHasyqFtmY\\/WpjEC3cZL\\/r3emOgXqEISlRiF6w0MkzL8Cu3E0PHrTsDEwtnrLBjQz+VhN6wkcpM7aro9\\/6t+dsqqzJrV5jejZq6m7pMr2EI1KFT4EYETEgJg6kuqygv4yD1Qwq2FN\\/ViEmxwbZKLjP3V\\/N2ogsKG8+\\/2XIPd0a1ITgLARH\\/H\\/7D9ptqFvXNfVEUV37rzen4f5lFvki7SveMJCY11k0Uih0dv46QRUWtLJh9\\/XNi5vTsHifb0LTdQYnoFJ+2EHT0TCxw1VWxoS9Gx+z2hMRhdhzCamWbCXMgITB06eALJD9pVA6UptKYgZvUhfJGVbOgDT1h0TjH3LBuub\\/WUCU2U1MrljX4hL68Grhqbedg8u5UgcLFfJr\\/4kSpweuFK2HBB5aqnQPtQhPFM59YqIBXmQdrycH\\/tGiLh7eDkNTVLnXOxoTeLkqJTHKWt60YIiPrV8sIRiPhlJO1ObEvZ4ST\\/4TcibGzAAR24LisFEyyWuhCydr51tqXQc43Puru\\/F\\/xc5173vCqVyli45\\/fQx3DM7JETP4ZIiT8rihNWLHKRkZngJnks7K5sR6eXHxYW1nhFD6gYEGLGhum4T5oO6GgB3Mhym5cyITN6t+TbqcSb4nXPyPNh8+QyKyUu+fzxJWDNMiwQy7JISE7l+G6MdPft3ICXjFcgv+zSp4insGQLzbDiy0jlhDIDQr3y56IsgCOI\\/e5w+d7PRR80k9BCh837tpzW33fqh\\/++vEneeOfevTTlyju93x1d9gZC1WxmP80PaH93URpJrH0QSWLeEgx3LXxcGxtt4pXOBrGMzXCq0Z1nw2ObmnZ5XIPt3GRIcQCCOEc\\/7qrLkwauGxI0qbfhoiSr+eIXQB2+c0yvB2q33NIjlRlGEmiYmayXp5dcBZVMU+f6Hk9JgH2Dzy538umuplCdJGgEcp9kT6110iOcWqNomJcrNq3DXO1RG1tRm+nfhtCUIfdlAXDxe2IbP2ejvMX+TBX57lrWyIuP8257BoUNXAyhF4s7G67Wl2MmF5OMKijFSXO+qyEeFgHuz\\/CXmDi42IsCLlKB3VkYpblDTqx\\/c0gey0gqQE7E6R+gZ8rQHuI6ctDDjXdLKOVaSQKntXqpRGVqBYpIo6ItSGxQbgkOksZXAS7r10f6FGdAUcuVogaiX2rfIYpdHbtJyivaKPnqz6ljC9Se3\\/riGK2dKI4QgJ0AJVHGmVO1SEBbc07ZwsbFD07+IQQGNc6LGsmRFLEpe6+YbV0TsB1Ao3YKdBRvar9lN8bAbovZa8ntnOKfq+dL7MAvWoWEx\\/kliMuYJaCvD2NAHWn0mg1TjAnvC2q5p4sPIOPe8NfbD5a82D0jFPqOBwTOAlVpJUVxrYwq4j+T1rvsc0K+iWam9hIP157lNusJ0jhuK0ejYOTktPUBmXMfz7w0xdnlIKqoqslL9FF5OXUTx\\/1kNHqUEvI4A0AW9mO+SUBmNbDGAlc1glBW6GjCRuHkiYSl5djLwjlCZJ1EZ9kFS7HIlkYB4+\\/HcZUTovhC2yGjbzxPr0EFX\\/JxtexwuXG5TCR1+d1CmQeWoyZTGZrH5LOddi4ZTyXcY2PH5EClEBvI76BMPrI1hywNCwPTd\\/MCzolCR+e2Cj9bMlTq84Pa8ppZ5NVm70clSmIub8RoPDsxz4WFFzgFy56ekEaYfS5nAFVbhm+pru0Xktp9Qj5k01Mx3hkg503JiQvKELbqOWqrIL3utBg4P9P\\/5gxVSBPoue9aljrPlPMpvShYJ5gE8LuhyuK6fOcu9+MHElO4yqCOGzvMTpth7pDYcJFwyUobThLAhtEJCe61KOuUv\\/AZ2AbZE4uARvHezCDpSFc3B9qrSWBWd8iIs3gSo6M0FLMwG180VnsZknsv\\/lDedCgv6nr+OAmlxXPCPbDbWGkUTzyBtlZ1fyOVDkiSnt4VtBtB93qIT0ZOGLOxAR722EUKVWD6hnavayVEevUVdOFFbXRH\\/8b2zIod0n+TEnQjMpbXYBoX\\/nP8gfavsfbBKu7mpdZ9tJF0c89k3yz1te46y1vV+T64\\/W0CMqB2F0wNVx+S+ExXL0UQ7tTDG+mMvyBj+NrldDl8SSkVKeld2AS5Ha1lIy10Hf\\/Tn0ecsDMKeT1mPje7P6A3TwUYkXQ6fQZ\\/dTFZeA+\\/L2XOT5UOocvTTI5aFV6poq2sOdf7xZH0pRiexNf+VFroOe4yz4KF0jMr3zLxiEIlUmZAhTcdQQpW\\/buMcDK1lYYYhZXc+7H+bJSM5nBVYvNYFSMvjfTgVhMIO3KjyzNwobxiihSWiACuv5dU7dj3TC+uWk8N\\/mP9DxVuSXS9x+DfAl5oUXZQWa2V6RxMuzIm30fb81MVQRPlZuFQqL\\/qwDegv9Go2006ROz+SAEmShq5rWIxTnKXvvvFy93v\\/b7VwtGzr1cXwWM0pwhSofEFMDqfGL6sJkyTBb46CZkHnbTgsjBFCmi\\/NJJ2XJfNTi7mT0rgNWZUI1cbVLcb7tON37YH7nlnIVvDoNHSZ8h2\\/UeyPEikx8gnEF5M0yiBKVM+IQDHqIfimA4vDlrPqaqcNRAgoB\\/z4WXeXeSSjxkZ3e8Jskl+GkJcwgGyk6MguUYhfCfpr8AGdLnR36ir0HSuKt\\/KrOJIjHpA\\/J\\/7cTz8zI\\/kEo0jO1CbsG\\/B\\/k+o\\/rkg3ZzCO\\/OK7ByHK89ozpMfT5RuxULNChoIzbflqr+z1i4d\\/GXyCzziuyl9feHQMnIid80\\/rh2AtY0CqY5gAJ3TzPoTPB1Udqvmt95BCzZgnPkGkMH6vBEOdjJ6xvhjsrdcGtcCHrOKCTDUxZG\\/c1AhAPzPCAXTvNpK3vrWtsv3QFVPcW0w5ujIE+xFZSVpngEWIhs00N14Bi+puQ+0QIuok6wtzY\\/U1wRCsvoHRSoY75WqZ8\\/pkpwILe569gnZzd2WCOmftvAdZM1zG5TRedodIYNoo65D6ItCtYLNuPTbKVivEcdF+SM5AV+PyJAKpKm6UD\\/zC5x2tP6O28alu9hMJlQUyyZc2+4wYrAtGxV0MQY6k9K45R9zOO2moEEmae7fHB\\/q9ueKEWfTrdLIGfpL9dt7wLxXOjZ4ewcSH4WhAciTbLkWUfgn1OZUknBr7ooyYTspk+FJ3zMjFGoSlJmaM5jyWR3QDgtzZjb5+IYw2A6Y0G2jncEbZCpJppm1Ga+7ViacJl9stSIXJDx0dETTzVz9mb7knTmdjc9VqWAxr22+RPTq7k1lEqvjW2lvHpsTc0wNGxo0d1C\\/E8qCv6AyTE3z5CacQylr3+H5WcMY87U9toEL5VP+jzFPgU3gJ2gnUM0g247XuF\\/yNO2hVTHLJXhIluo3c+dC9n5GMRmfKVRv0kII+5AP1uEED3IWryI0MQ025ygrIwcDfIWPeiHI9XBBcQVWEtZodyjeyj0tNP\\/fQvs7+9nD+exSibY8Z5UsCLzjfTlzy\\/qpx7D7L9rTKGOD56rYz1ebj38VFq8eonsGX3uylZX05PIgAiA1qckk85Jgb2+Yaz1AdX14b7IQcNlofxMALSiZVvXJ3NgjTShrJTspmsL5ER1M63cQdofR8+UqETbIrDDatgOcupv3rOYQMCOr7wA8llTMZoV7Jpi6WUfh76CWHQ63sCAa9NdjDJclPZzalH76ORMTPgWuPZbtETnkfdngVOtKLJOGpjBX26eDs5NR\\/PJno3GTRYfKxuL93ULcNdnpv+gfjgbwe2r6UN06P+AD5mO\\/oK7tV1XVBJDbm3Pkbr4o\\/shY2HUrw+sh\\/YsMfWq7CU1ORTF6xXKjsQKEBHBIUt7B1MAIKmjl59kdsSaXKMBlFJ\\/9n4f2rlBrBqvUjC1tCHOaX13d49Jog4+AHbRBDOmk3DXYRu6ej+7Qxbu3SppVmANAF4vr3JJ4IEUHKTK5CREVR338zzpB829N4XQJ3fR7Z5n4u35eTYMjkTi4sMKwQVBos41AMQonS+Jm+uot9DI8AnkESmJOjFMSrz4yJisE3CPtD4lPWuGFIlBuDqdxLYvmcULQGopIcMpZucGU1YwnQaCfvcuQxhDMG7FNnyFsf7WDcc0fQ\\/21lHg6Vctns3CBnmbXn9+mc0QlAVXEiDgOtUuD6Ivs3zW7K0hvfWNhV\\/YSuaY\\/f8UpCYLmljpKGoZi4l2o\\/nO0HcJ3Z1cqkNKH+qCqS3iOY853ATRP\\/j+iPF0TJBpsckQePdIOX8Uwd3ns942M3uZ7CGJjUwFoP4SuxGApRHbWNqn1Gizt8dM\\/V+z5JUges0sN4CN+SlubPYQLDuIFULTwbX+9GXdnuR+wnVR41HkDdStZfbf2VpNFPgc92V1DT+Lpi9bEniBA04ArmhEazrQXqJy5N6jVqNSR42RANji5UmHlRzUSQu52ixAb+gsFc5Gun+d\\/FOTiBDcCINVJdIA1B9kgdV8AEvgyPuo0k55TTL2+Bb5Osc+D4o0X\\/5JC3NkinVQaJK0V0lmazfIMGYCYwagGxmlM7APR2bUrtCvbBXHXjGS9CYrX5EpAI3KWgP0bYvRhS8qPuFekh9kuzSvoLjnZ2irt\\/pfotvAMPyzSGEBjTwqQJg8gxriXB6Mfv3VQ54UJeQN1BJkqIK4lqB8jgUoeOm8Fa7VOw8sneAANoLxhe6ex+w54Wg53z450tCg7ceR9BW3DL1DcSoY0B53MOhG\\/oEywwnSyZLFFLYkHyRSJr0bfvkPAiZw6yiNbJxlPBo0Hz2sUmq2WelKw\\/7U3t2PMIDTic5dsMRIzTXjifRH9LlOuOPAzg5ZJjRmXG3b3hXzS5ahXoja8MKTYm\\/mQKgyhwmSNgeHpKuGIAdhGFM+JL09CkT3Ps8Bc8FdQxAndDdAve0b5uKNg28pGMzWxTZsCgQh6TlIQbrTiuqWCo8++yZg0X8++jkipIRgcexguAAQbRC\\/8mrF9iPE\\/uwT0C4ltr3UjPywr8jgsgq9MRf0ScM4gsEPx\\/XKid\\/wrMbmScLFNFw+NXZp6Vpz32D68qPwz3kTCGIXwNwHdsoOmX4jj8HDkAW6ODaHSJvXM8t4I32ukT0bVT4rLpw3pPtg2T4WaBQfKDbDiIImEzp+TeqOkuV+B\\/zz32OyuY1wHa8VwIEwbViv5E9XQvy7kvm\\/joiE0i3e6hp1D0gmjMuhQVOEBuq0z71bGncasudY3rGND8vgQozBaFA+B+z0g3lI+yuJkn7f1jYXuCNzyYkTAoOWD8vWO+YAAYpArDd2VSNPu6EJdLRdglrMyAzeQwQVisM\\/JBUgFNkWAyk6A4dG45wxxhhis6WoOcvvaTf6oPcVXdnYIdV9PSpeHbtCBTQ3vauFwnU3kLREscbqre8W7Y\\/4xpXkiq0lXYvYnTXsFYU2nrpb+B1BxP\\/QVt9WToJj9ILNU+PQU9sc21oIPYm8seK+wllKwjgKVvAxSeYbuEyTza6ds+3KXwR6HggLVR447Kzsgd\\/dxZMA66KcXsMHGcuTUHyBgpBGJHW\\/APaUsfdIdhKvPe5OghGePUggvlt9jpAsEclq25+yPeJNd2TmGodGMsjEqrecfmRorrRDDV+jtqujKCtaSGNzOCeu8qJ5C9xhl5LC0bdAWiZzDJuHo5GD6O6N\\/BYwBL8jLECY8g93JEGXVgFY7SM7i61gVj3toFogsqF2Fwb0zNZqA6IKMBmcV02DvtxV6hkcIHrh2AGD1pJxL7o5LOtU5lK6Ifhov2ct4ZoZVcQVB5\\/1\\/Fcrgqt9IC9uvbQfU1Gwy4hAUcX2vzOeC+RiO+oV4dYf+KPJF1NKkc4UWY4NMwKJGJ+8HvKiWH\\/Y2\\/BShv7\\/n6+WM7qZfszU7nZ+hOXcttZszn\\/hztA4seFBvhBhcV0YsQGh6T5f4M3cdaDHqnj1Mfh0OOz9NWBw0H\\/XPvBg8ApFJ9Zcx\\/QH70vq9ZKP+FhQdfO1I68Wxy9Q\\/Kjy2suWsXwwfz3AsBgDBVSIhQgTB9iWUpRN46TqVr2v4jQ4A6xw11EboOKEuiB9GE2WeC3GX1ioGbfkeGPSATKneGGROHPrcbZ0kRw\\/CyQkdc4QUK+SfMxjne\\/ltjZrUh1knxNTl49N4o4OVzc6B8Ar06cS8z4JhbLp1kAoXlv9rgsWd4vdLxVnGOovRvk5ULyV9tKqg5gHCmEGUX3\\/R4UOu6FYpwAIAiSDRiWgC62V1xF\\/wOqFH3LdFfLaBHEIzWN33UWw8MmN16mEKPV6wXd7Aq\\/xvNwMgXEMBEUx33sFWbLkjwJjOB6oQu69AJfLNz0LclnKdfQWORD+0hKGEXT8QMxHQHK7ZGydxwTwLfCoCqKuuQiV4mMZ6tzblVKsuEC8YHTswo8uv+k017lzc2zmVv4wJacXGsEZO0usBGov+D9yJ2spt6rPPYZVIS7iO+RIwoHa42g66R4H\\/9oLUCEebZRaX18B0jkaxs+t6E\\/he0lb9HD3dEcqjQZtcBuNTy\\/ykhqSADhuntZ\\/YcgtOk77ie\\/QuqOphEmrRD0wrd73Nm32vaGtWu42wTSUxgwxqvJGfvrC2hNTIG28Q==\",\"iv\":\"11c06c0ea8d77af320685bb5bb1c4f19\",\"s\":\"326d9bfd7ae434d8\"}
\n\n - \ \n \n\n \n\n \n\t \t\n \t \n \t \n \t \n\n - \ \n \n\n
\n\n\n
\n - \
\n
\n Home -\n Browse Torrents -\n Upload Torrent -\n Stat -\n Forum -\n FAQ -\n Login
\n ExtraTorrent.cc is in compliance with copyrights
\n BitCoin: 12DiyqsWhENahDzdhdYsRrCw8FPQVcCkcm
\n Can't load ExtraTorrent? - Try our official mirrors: etmirror.com - etproxy.com - extratorrentonline.com - - extratorrentlive.com
\n 2006-2016 - ExtraTorrent.cc1\n
\n\n\n
\n\n
\n\n\n\n\n\n\n"} + body: + string: !!binary | + H4sIAAAAAAAAA+ydfXPbNraH/++n4GYm291hReH9Rddxr2M7ibt2mrGTtNtMpwMCoM0bSfRIcmL3 + 019QtOgkcixGArHVDp2MLVKUiB94znnwjp0fr0fD6IOdTPNi/OR7mIDvIzvWhcnH50++v5plPfF9 + 9OPudzuT6fTuMuQuc+f0hRqP7dC9muWzod3d+du7/YO913vvTs/OosPr2US9LiYTO54lWv8Q7auZ + PS8mN4Po9dskun1nGs1uLq07VRh1485e2OiXYjI030+jYzU5t9NZ9DSf3V4cnd1MZ3b0+++7O/3q + jt/tDPPx+92L2exyOuj3bXnPZFb0d/rz89/tGDvVk/xy5pK9e0+qmt0wifbGN9FskeKsmESm+Dge + Fsok0cHtq2h0Nc2dzFHxIbfTH6JzNSr/TIts9lFN7A9R/qowP0RqnI/cwWUxGbsDczWc/RClRfHe + XXqZ69nVxE7dNSYqZhd2Ut8z2el/qsTJVuPzK3Vud+24dzV1chfH7qnc5vPu3nC406+Pvtv5aNMT + 5fRMdpUZ5eP/nefWrM6Lnf7dBd/t5KP5t0Xu5/bpfpF19SOYX3I1GS4/hfl3TPvD4rxIzvNsp19e + VV1/72Orn1r/k7t/+rOTu6fx+ekvTe/fxVVyYpMXdpKcAXQIWMIRuExeHDiju0aM9P51dHx8eHr2 + zs5mH37/1JQ++9bLq/TA5dzuSeEeEwTR3uUkQgDyCKIB4AOEohi4n53+4sLPP17n+uu3nz6Cz665 + 33Jvn0efUsYAAf2meh7Tp6Wix/QguZiNhous/OyOzrGHxdSZWOQexJNHS/deGPUmN79N/6NoaMfn + s4snjyhDACGC+aO5qz95pC4vh7nLE2fI/etems/qj/S/SK8zgrGdvTk9unu81anBj9ezJ1eT8SCd + 5RcDlVGaZiK1giEICOUKGAig4ZZzoKBlUKeCsOzvanT5P2b85NtVzT85mzy5MpeP8d5j9Mz9d3mm + 37uvKC7t+E5EoouRu0QAd4ULjsXVWNv7Pn0+LGrfvvzoTjPJ5IrPbHbHTz89f+1eTs7d2xBjvuKz + f9oJKOPzrGh2/eJeuri8dMy4mmTuYPZ+Webc/+4e8+eP//wqN1E+fWUnI3XsrPnJo9nkyj5q0WfK + O36RiE/Dbm2FO9PZpBif77obTaKjsYuYTkD0auJCv3FRW6txNM+C6Ka84DZ5kdKz/EM+u/lb9MJd + Vr139MpBwLigP40+5rOLSEVvX71Mol9sNLHuwY7s2Oz0b+8W7ajoYmKzO891+TGdJX8WY9s/L/qT + 5PLi8sfTo4MnT3tvf/vteL93crB3/fJAk5PX//748v8OiXPBknGzJ4/+SB0x3j/afT3/ht/cN5Q3 + 3umr3Z104hyx+v3zJD/Px1E2KUaf3/yT3H+0+ylHym+YP9TPcPVZjk7zP+1uHRWcuvL4i0usdfk4 + 3e31eu7924Mvoqe1+qK+pj76/KJ8nBV/XKjpxW7TGOHQU3+m/i53cpk766DIK4XoAIahEMb3eFQA + AH3zfZfYAyngkBLRHnsMTzVHFBuhANGpRZZxjt3fFAkqOTECKkq5+Dp7Ouz8V2BnTSfpiBOKOHUs + CEScppHBJ3FeFCM7LGuPZ1ZNi3HEov1idDm0MxuVphiVphi9y//Q6yAHDigbuDMhkINgf6ElrrTE + LF5oiUstcakldv7k1HhkzrffeAk6SHKIEMRItkadLGVWGSII5ARBnRFIBNUZ0imRAFhEjIIis+mC + Ot8mqcPO9mBnXUfpuBOKO3fhIBB4mgYHn+A5Ux/y8XnywrmbK/vQQ0B9N7s5+uABxEHoA2W/sSD/ + 1Z41777EIUkgxRRQ2hqGGNKKUZAyrLCQ0BDKZJZBSTDOMs4yKZi02tIFhtaQ1bFoe1i0kdt0QAoF + pDouPMgjAlbiiIkGNGoaI1qmkW8QwTAgEvd5VAgGffONl6tBgggMXDGkNfxAglOYKqUJdKYkXdHG + GROVSsOUAkVTzIkyqc4ewE9Hnv8O8qzpJx10gtWCFtEgUCWoaWzwiZ29kZ3kpS0cKBOdOWjctsK5 + V78cPu0dHEdEgMuqEe5s//Tw8OXro5PDtRCE+ICEaImjktH+QlfsdMVO16Khwb2qdMWlrqqd4U6X + HxRtkoAlJAkGmOSItUYkAjIDMBcpxExpowTABlkiZcYxNEK46jdVRoEFkdYT1pFpW8i0uft0hApF + qEVweBBQlK+uFckGeGoaKHziyVlFMR/v+FSZsr14Gs17KUn0Sg1HUZFFM/fekXuu0bPiOiqr7SW2 + 5rjqvTt5c/x2TxfGmvXqTAiFqTNRSWW/VBo7pfFCaVwpjUulcZHFTmlcKo2d0rhUWnri3AN7rox4 + p9Vbjcp/spbghqHEDBGAW6NbqlNhUIo1MUopxqSClgJNAOCWI4iMYtydRgu6+dTbMW97mNeOB3Yk + DEXCOpIEqqs1jSs+Yfjy9Nix8GoydU4VvczPL2aOesXsJjq7KD5GvQiwHiC9Ob3+UZrnP6N/nFwS + 9/s4H/7xUz4a3WBG/7kGCsGAogEN0Y9FJWJ9pzNe6IznOuO5zrjUGffiO53xYyRKpY+RLF86tbev + PlXsTvkCYjuJWx4CKAHGFCDSXjskFxbLDBrDU8oMBDYDBCGcQQkphEIIK4jlqV5w0b/sjo7bQ8c2 + nbJjZLDRhHVYCQTJpkGmjeGEyRlghxAlroh2ml8mv37ID3rP3pys3YUGBoQOCA/CQCj6K2T47j37 + xnsuEYswiTkisr1xG4ZIDYFAkCFhtGUUGQERSwkiSAlk00wCYYn8cvjgSjEdh7aHQ2s4RoeXUHip + Y8CDdIGUraQLco7eZLR6w5DgEy/7Fy6qnRfJTy6Pc11228JDIJKqUdwTZSANQxnWb6amBdiscevl + xkNGKYa0xcZDorESAhslLAMZI8BQaxjjkkCokLYqkxyloB6s8a2aOvRsEXrW9paOQMEaARcR4eH+ + MLESQFKCJh1iDcODT/787Kw7eXNZjBOVvM5HtioGMZ8ACjRS0LkU7jeU0wKB1rn3PQhiZU0WtFft + ITiTrp6sGVfKojQlEKU00ymUFFkp3GuVZfhuvOA3i+oYtEUMWt9hOgiFg9BtTHgQQgisHpUBAYZN + MNQwRPjE0Fs7UYuhgjw6fUrFWqxBbIBZCNYIiftlmhfjmHhcptkTTL7y5cuNZIABRjGG7U2y1eUY + HC0sdMHCMIws0jIzXMKUaancb2M41aju1llOdseDreHBg0bdBfxg7V61Wz8Y8VfXOmiDYN/UwX0G + +9fWjpNfimGWsGsAk9NcFxPjglZykJdrhxy93usdvnyeQCDAZXJwfHJ1nRwc0AQmF+XQmJfFB1W2 + 0I7ef1iLEYAOcIg1g6igpO9Nqi+0eE3T8kADgThhAuL2iCSotFxRqgUTwlWNhdCMkdQygqgQkoPM + KldYqpd98Ka2A9n2gKwFz+v4F2xYQR1EAg0raBpSvDJwYk2u86gXQRydzstb0+iXi5voDEAL+Dtn + j+69+QD0XvSinC3Vi45mKjocn0d7GkfOUt2Zk6vhLJ9epWu0zAEZrmtIINm/FRz3YojjW8GxExxX + gssBr1fX7t35ONheXEp2f5zk2EmOneTYSXZnFpL9td21lbrl2cCECoAJhC0uA2ugNEZkGUgxSTmi + GhjEucqIVcgQQ01KBSN1814LujtObg8nW/XLjpjBJhbXgSXUSrINw0w4YrIwxCQDGqQvyxWBVngm + +48Ss53ULRMTUYCBYBy0RkwAocGEWqiYchZMhWQEK8wQlZByZhFLMyjTtBkx19LdEXOLiNmmX3bE + DEbMOrAEImbTMBOOmDQUMZEIQ0y6wjPpf5SY7aRueQQJ4FQCCVh7LbCYYIgVh1YJYDKWIqiplBlk + GcBGWHeArCsO2mbEXEt3R8wtImabftkRM9gwlDqwBCJm0zDjlZgXNnruDKPcz+zbWmLPrtLF2d/L + JUPKT505X1PjP9XFWuTEDp5BpkgL6Mq0FzZ2wuNS+Le2/Djpi7POMeNKfFyL90XQllO5TFKEEBNA + 0vaWypLC2FRkAGmrsaHEGpWmgAJtMANaA2G5BIKSmqTt6e+Iuj1EDeKvHVmDkbUONIHI2jTstEtW + 2GvQaNsKWOGAhqmSAnmPo5a6G/hqMK62m8jlIUIUIkHKIIZa4yoFQIMMWMUoUUZl0HCDs0xzozRN + hTN8LDCk4utc9aW/w+r2YDWEt3ZUDbfVWR1nAmG1adTxjNXkmdI2KbLkJzu9miZvxrr4YCfWJCXv + kvzl68PTl3vHX25BcfDiYN05fRVCg+y76ZxyXtZdW6P3iX4eE7SMRiYIIlBC0d52ARpKgylWCGio + dcYoIMxKZ5pKZRoDKIDgKv2UjB6kdhTcIgp6driOeMGIV4ePB4HH6Or1UkCT6epNY4nvauSzofsm + V4fEFuKqAjkfxN2oAjkf6L0W8pAcQBIGeWReDp3LjCuZixLoXGjDEmg1pt0X9Xym6b5pI4BjSkCL + w3wywAXFWFKcpRC78pmgVHNqqSYMIKuNs1v7eVOrF7Ud+7aIff49r8NfwGkjt0Ek1JCehiHF665u + V84pzvPJMEHXECdHw+QsPx8XE5vYZKhuD1Rycn3z5+Vs+P7o9V5yN8upWtOhtM3SinvHLg4MrfOO + X9ebS1lCkQ1IkBkkXPJ+e9o9UbLlRN6DTSCJoJK0t2KZThXiLmhbYjVzJTyrCKXO07TEzAoIBUlR + 6gp/9fZyrcnvOLo1HA3irB1Yw4F1EWYCgbVp0PEJ1pNJdFqkxazcD8gC/O7pwbd1Ta6HTzygQeqU + XIL+ySSeK4wrha5gO9f4Td0a3kDpKTnLE0awEJBwDtprQtWWZ5JjV8JTzBhCUihcSY9ibgiWqSuD + ilRymdVNqD6EdvDbIvh5dbUOc8GmhNShIxTmGgaS9jAHewAFIh0a4CB7tboa+RfuV4r8j8LOY4qW + eeeKRIJz2OIEyRQLrTOhMUApoVZY5UpgOgUUphmDRkLLpdOZ3s+7tbV2yNse5Hn3uY56wahXB5BQ + G901DCde9/Cxk8JOk1ObFpNxAq+BTJ677C6SMzU+v5ovBjVvfZh3Z8+NturPPikmlxf2arp2+yjk + AxBkqKkrtvR9qPTFPF/JWQYewBIQJmR7W9kRJDOrsc6IolhLhqhx5UIFMYeQa1gaKYcyZfXOQB6E + drTbHtr5dbUOdcFQV4eOQKhrGkhaRZ1IIE6e51fnY2ed7vmOjUpeqcnMtgc9NsBB9rXjTCx74kZ6 + feHPf8LuAyGn7h+C7e3pCjMIJESGCEEZl4JKLohQiFFNlVASzheKl18F4UaSOyRuDxLbcsQOjgHh + eBtOQu3l2jC4+ITj03w4zMtFcOaNFKun9nto+Cz/h4Ehpf2FvqoRpsmM4LbaPP0kZnnEC0eEMGem + 7XXvGe2+36QMWwEUUwJnOhNMgsyJMkSKTAsutapXUN1cZge67QGdTyfr4BZsBEsdNgLBrWkQ8Qm3 + 55N8NKoWu392dX6eq6kukgfHVW1c0wM00BI1nIj+Zvp8gW3zhNwzjJNiITkj7U2IJ1YDgqQgmcaZ + szyKmUCca40sRUAIbSgmKa2bNDeT2AFte4Dmy7E6mIUbjrkIF6GaMRsGD58w25tMio8JLYcOHxfJ + 2aWduQdZbt3yZqySV/l0VgzVwzbqYXYDgAMSpu6GUd+3Yl/AayNp99TrpIScQdreMBammbNejQBj + AIE0Bc6eLeNKuoIhxFq6hwy1yPgCgb5Fd1DcHii2544dJsPV+RYhJRAmmwYYr719xci6bDbVrs3o + zhDLvct+nS/JcPjseO/14QZrvTgKwjCVPAz7jQV5X9hl3bsvsYwAIjnFALbIMohdwT3LuEBK85Rx + DWlmJdGYOOODlhuoobX1Ctxr6OpwtUW42sRvOiKF29d3ERgeJBKZz7N7mEgCQ9YESQ3jhE8kQRQ5 + iry3N9P5Mp+wyVS6LzaaiJ4OrybqZg1aiQGVoWakI96HKL7VGldaG415XlrLPq70+gKZ/4TdM82O + Is4IQ+3NPGeEuMAJKIFcECYoJyaFGdKGS2fGAlkjhUAZXTDOr+QOf9uDv7YcsSNjuKl3i3ASqq7W + MLi0CcYmM+/8ghEFWbKTI7zkj80mA7UORu8Juw+MuBwlwNvbNCKVkADDuVGWubIbylTZ0mEIJykz + XBln20QwBL8Gxs0kd2DcIjC25IgdGAOC8TachJqd1zC4tAlGGBiMItB2EBzBJX+Efw0wek/YvTVG + CCjk7dUYM6kMsJogCBnhWJbWyrXiBDJJVKZTag2Tmn0NjJtJ7sC4RWBsyRE7MIasMVbhJBAYmwaX + NsEIgoMRyTBgBEv+CP4aYPSesPubUhECLU5oB0JlElluJBHEcMw14Cl1f1PIMLPIWkwlR/prYNxM + cgfGLQJjS47YgTFoU+o8nIRaBbthcGkRjEAGBiMNBUa41LUB5F8CjP4Tdm9TqiupY8nbm+Be7mdt + MglSizQ1GTVAmsxyRZEhhGeuSKcZMuIrYNxQcgfG7QFjW47YgTFkU2oVTkJNcG8YXNoEowgORhBm + qCikS/4o/hpg9J6we8BIEGcUsvZWfsk4VppkUFqigUwFwiLTBFuZIeL8CGPEAGYGfA2Mm0nuwLhF + YGzJETswhgPjIpyEakptGFy8To5Xo/l2lq8v3POz04RcA9iDYL53ZTlj59cP+UHizDNx5pk400ye + Ki57+f7b3snR6f7EflyLhwQOcJAxN0zy/sYSPSHQT1qWqCc4xgJwStqrDmYYUEMswCjjPE2BKysi + bgEyVlEJILPcaEZYvd7Zxio70G0N6Hx6WMe2UGy7Cxqh2NYwhPjeA35vZCcuFo4XRomTaiZqO1zD + bIBgEK4J1N9Ini+mbZyOJZ5xJihgAKL2ljKjwt2A0ZRYphUwggOaEZmytJz540xUSKAoNOrTzd7X + VtixbHtY5smrOo6F4thdsAjEsaahwyfHXub6/c0P0Wn156D8E/09OlAfx+Vm74dARodD23t2NX4f + uVyeXdjotHA5XW3+/vJo/19RNd812tvbRwmI5ovKHu/99u/1GIcHJMjefIzz/lz6Y7Qfny5ezOXH + jxGLywyIqwyIFxkQ5+PYZUBcZkBcbU1dZkBcZUBcZUBcZ4AvCgZI6XK9D0vKAUHtzaanQCKEMbZA + cyKMRhJKrTNDsAFplmWCKg2UqidUtJwFHUi3B6TBXLdDbbAq4yLePEja+Rz+FXP0m2C2YejxugWg + mjqzmCY/Z8mZva4bMZz9LZX99jT2U2FEckCDdAwyDvsbCvQGy81Tck+lESMqpOSyNRrajHNJrdIW + CpURllmFmRSSZIQTqSCAIMU2RfV2f5tp7Gi3RbTz5VsdzcJVHBcBI1DFsWn48Ek0ZxlF4spUztxM + uQjSNDkD6BCQ2xX55mbZe/bmZO1F0Hg5ez7MImgMkH5TPd7XQFvz5kuYwoxCTmiLWxMBSAAVRCOt + CYSaMCst5VZQnUnJDDESGwlxvQLat6vqwLQ9YNrEZzoWhWJRHRUeXv4MY7iSRYSWo1VWz01oGCVC + wmhes98MRgQOYJBhJVSwlY610OMdRmvefBlGQFACCWtv3AgmytKUyXJML+ICEKC0sly4A6ad8UHJ + LAeANYXRsqoORlsDo418poNRMBgtosLDzXyCIb6SRpChcjOGlThqGic8Dw6JnjvbOCjKbjSrpsU4 + gtF+Mboc2pmtkDKfG+BMs+oxe3fy5vjtni6MNevhCclA2yZQTst+7Njpi0t9caUvhvFCX1ymqRqE + 7PRVrerlhl21Qo+48pOY5SY/TN3XE8Hbmx8OsVYapdJZOQIIKcEwxIxLZCjSnBkIqHHWWVemNpfZ + 8Wx7eObTyTq+BWv4q8PGCsCJlXhjoAncmgaRIHWt+dbCt4WtF5tXuKD7H2S8o3tiXy883ifKf61r + gxQssQsSzAHGmLa3s10mNTASAE5cGcxmQKRYKSoss4ynkEKcYi1tg4bAh7V1wNoeYG3sQx2lgm3S + UweIBymF0OotEYiETZoEm8YLn5h6NcnLatfTiVXvo7JC9iwfq+HtMQJAVjWwp8OrU3VTVsKoMw2H + oJ9fvTmLUAJ6L16tgS02wCDQdGwKWL8SGc9FxWWBcS7y9rgUWZUQK5FlIZHGpci4FBlXIn0hzFNq + lnDGGGcECtAezaRgMFOCpNb5hMoATGmmDXFGCVODlBFKSW4NWdDMg8yObNtDNq9u1lEuFOXquPEw + 5FZ3e3HQgHBNY4hPwh2r6cw9R+vwVozz84tZ9YB/Ki7G0c/D/IOzkzNADoGo2xrLcfovDt/uV7jr + RfnZaA3G0QGCAxCkL4xQ3C9lxqXM+FZmXMqMS5lxJTOuZNatIeWQ3lJm5Ym92Mn0RDl/6VmutknI + MEKsPc6BcvVUQjW0zCBkFU6pTplUnBiDpbAmtYqnvO4x8yK0I93WkM63s3WsC1ajW8SOh5sdsVw9 + gJ6DJkPom4YSrzPV1HtrknK7xb1sovJy10V+CGhSTqo8Lly+/1JMhqZqbCgXB6g6fPdP85Ozn1+u + 3Q5JB1AOQJCeNUJRfyOR3tslfaboHuARKbEkLa4twgHgGVSYalf6MsA90MwqA41UTEOSSqBpprSq + V9TypLVj3hYxz7fPddQLR71FAFkxtnF1bxsqh6Q0WFyyWTjxOnHMOf7zVxWMetGpcwMTubpXL3rl + LLN3qrR1NlM++v1i7NzGhXfr3txzT2g8y8eqqvopuRb5ABlQFoR8RPQroVW3di+eC40Bci9rofFc + aHwn1L1ZC63Ko0r6Ip/HFC2TTwAMOGbt7cqjqQYYp4wAjpjB1hXNJcmkJkpgAiGiFpbLwdWbD3iS + 2oFve8Dn3eU68AUD3yJ+PMg9uZJ6TRo2m0aSIMwr38DR6d7+4RLjKFibcjDQHq2EkK+73FxaXEpb + cjEKfHJtkzQsrxMCABYIw/Y2XtUpsRJTorjhmjHIMMwUVCmCBmMJdYolokitJtkqcR27tohdmztS + R6tga3ssYsSDtGpQR2tSRWsaLvyu7WHUKDqzemJdnt/M182Ct51uZXuBhy43VxFDgVbGIpj254ri + WlFcKarKe6WitnrX1rn18kr9SAL3T7Y3D5poiDMBOKRcYWYVZ1maAWh5RqW0hKuMKQ1Mdrdax7dp + 6lC0PSha31s6AgVbbH8RER5uJ2ywvJR7hg0g1DQ+eO0d2z86K1urk73xuR3acuytOEQgmS92VjVb + /1o2Wx8cnRy+PDvaoEfMsQgOYJh2QUz63yzMfy/YhqlYIhQRFDGOpWyx2pRJF38ymEqeUgGdxaYU + Q8RSAwFUjBBNqXW2WPd8ra+vo9UW0cqHP3XgCgWuu0Dx8CBGtnoUI4JNyNU0bDQilwv8F86W7XD3 + u53+ZDrd/X8AAAD//wMA0u25EfNZAQA= headers: - cf-ray: [311ae97f86981a9f-DUS] + cache-control: ['max-age=7200, must-revalidate'] + cf-ray: [34d6640a94c21a93-DUS] connection: [keep-alive] - content-type: [text/html] - date: ['Thu, 15 Dec 2016 15:26:09 GMT'] + content-encoding: [gzip] + content-length: ['7034'] + content-type: [application/rss+xml; charset=utf-8] + date: ['Mon, 10 Apr 2017 14:28:07 GMT'] server: [cloudflare-nginx] + set-cookie: ['__cfduid=df1a78dc19ee55bafe740661147c48bc41491834487; expires=Tue, + 10-Apr-18 14:28:07 GMT; path=/; domain=.extra.to; HttpOnly'] vary: [Accept-Encoding] - x-powered-by: [PHP/5.3.29] + x-powered-by: [PHP/5.3.8] status: {code: 200, message: OK} version: 1 diff --git a/tests/providers/torrent/extratorrent/extratorrent_test.yaml b/tests/providers/torrent/extratorrent/extratorrent_test.yaml index 024358f185..e0fd66c0a3 100644 --- a/tests/providers/torrent/extratorrent/extratorrent_test.yaml +++ b/tests/providers/torrent/extratorrent/extratorrent_test.yaml @@ -1,47 +1,39 @@ daily: - mode: RSS - search_strings: [''] - data: - - seeders: 1 + search_strings: + RSS: [''] + results: + - seeders: 0 pubdate: - title: Carson.Daly.2016.12.13.Simone.Biles.HDTV.x264-CROOKS[ettv] - torrent_hash: + title: You.Me.Her.S02E06.720p.HDTV.x264-KILLERS[ettv] leechers: 0 - link: http://extratorrent.cc/download/5354297/Carson.Daly.2016.12.13.Simone.Biles.HDTV.x264-CROOKS%5Bettv%5D.torrent - size: 198663208 - - - seeders: 1 + link: magnet:?xt=urn:btih:af55bf8be86210457a0d101d7e770a1e61cb846f + size: 562022437 + - seeders: 0 pubdate: - title: Jimmy.Kimmel.2016.12.13.Rami.Malek.HDTV.x264-CROOKS[ettv] - torrent_hash: + title: You.Me.Her.S02E06.HDTV.x264-KILLERS[ettv] leechers: 0 - link: http://extratorrent.cc/download/5354250/Jimmy.Kimmel.2016.12.13.Rami.Malek.HDTV.x264-CROOKS%5Bettv%5D.torrent - size: 443254046 - - - seeders: 2 + link: magnet:?xt=urn:btih:d7bc7253d8a04cbe2e6773be2b285974d81a5578 + size: 150715487 + - seeders: 0 pubdate: - title: The.Weekly.With.Charlie.Pickering.2016.12.14.Yearly.Special.360p.LDTV.ABC.AU.WEBRIP.[MPup] - torrent_hash: - leechers: 5 - link: http://extratorrent.cc/download/5354245/The.Weekly.With.Charlie.Pickering.2016.12.14.Yearly.Special.360p.LDTV.ABC.AU.WEBRIP.%5BMPup%5D.torrent - size: 242745344 + title: Homeland Season 6 Complete HDTV x264 [i_c] + leechers: 0 + link: magnet:?xt=urn:btih:fb6ead48417421cf41485cf2cb4900e24da18feb + size: 2971221329 backlog: - mode: Episode - search_strings: ['Arrow S05E07'] - data: - - seeders: 49 + search_strings: + Episode: ['Arrow S05E07'] + results: + - seeders: 437 pubdate: - title: Elementary S05E07 (1080p WEBRip x265 HEVC 10bit AAC 5.1 Qman) [UTR] - torrent_hash: - leechers: 14 - link: http://extratorrent.cc/download/5309682/Elementary+S05E07+%281080p+WEBRip+x265+HEVC+10bit+AAC+5.1+Qman%29+%5BUTR%5D.torrent - size: 379081195 - - - seeders: 219 + title: Arrow.S05E07.HDTV.Subtitulado.Esp.SC.avi + leechers: 60 + link: magnet:?xt=urn:btih:bafb0dbda0c6235da7303c5a68173eef7e808040 + size: 363382784 + - seeders: 115 pubdate: - title: Elementary.S05E07.1080p.HDTV.x264[state] - torrent_hash: - leechers: 45 - link: http://extratorrent.cc/download/5305486/Elementary.S05E07.1080p.HDTV.x264%5Bstate%5D.torrent - size: 455375585 + title: Arrow S05E07 (1080p WEB-DL x265 HEVC 10bit AC3 5.1 Qman) [UTR] + leechers: 5 + link: magnet:?xt=urn:btih:e109ec44fd5b1d9906ebd8fc4ccfe4d17955d9ad + size: 895857940 \ No newline at end of file diff --git a/tests/providers/torrent/thepiratebay/thepiratebay_backlog.yaml b/tests/providers/torrent/thepiratebay/thepiratebay_backlog.yaml new file mode 100644 index 0000000000..24dd35381e --- /dev/null +++ b/tests/providers/torrent/thepiratebay/thepiratebay_backlog.yaml @@ -0,0 +1,239 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip,deflate'] + Connection: [keep-alive] + Cookie: [language=en_EN; PHPSESSID=c497dd81ef6decd6f06e6c316d72c5b5; __cfduid=d1ebe62a518d70e0ff8ac8ed67684a3c41491845305] + User-Agent: [!!python/unicode 'Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 + (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36'] + method: GET + uri: https://thepiratebay.org/search/Arrow%20S05E07/0/3/200 + response: + body: + string: !!binary | + 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 + S1NMaGqapoFas25D4Kwc7ulrmIsTfUb2Azw+vDD0wwBZF+Vf4IWhnWDyARoZNNaX3r3M+ELzQeaz + 7snbFyf93QEy49TMc+QSjp2dyLcPszu6Q76AZENFrteUumI2ZEltKrbVrJum4miWCpugsfr2esb/ + mdeg9Lv2jOjwcBP+r4bN59AHz8nI/c++gCTvfgEpscwKaM4tljxsfQSv3QKo/4aXhP6xi+1Kk9zX + yZ/F2eWcC3RQefnpsAvj+OIeLwetY9K5i2L714JsTVMl2VSVmi6BWkPXGs2mCvV6zdaADSUdSLpa + a9gr5+yc0N+1Z0TsAxL+hUhYtWxfNFF8JcYXVfOK/tM6iRKG+eWlb3qfpffnzZp9IMuWV9O/+ccB + OMDq6cEn+fD66dW388PJ0cG3y28nf9aOzj/V3p+Mrk9PvqlHr/6Uv305dg8PToeHB9+ujw6Go7fe + 8fjDp5cTy2uq79zDy6NPny6PJtqb45fHX965QwV8+jM+dj8fvT35/Pz067Fko0/y8fNTyTqX5dPX + T91D6YV7OPrmHo5OJct7eQ6Uz5N33pV7+uUIn359e/3u67Oh5b0cga9H7juvOTmdfLr+8+SbdnQ+ + 8uzXb5r2l+PLtydHz96evH1F/ge9z5PDV8dD+FE7B88J7Yvrw2trLa2pPnNNpI1Ov8gXpucG77yj + C/Pj7XXs12+H35TYtZB2bqrPLomO9te33unXN2P7VUTao7w/+aa99Y8nH75+HllEh4+fJsfo0+TY + +1wzlWPZmmij069Hmukdjr8pzZjwPzofKe//NIwnwHGQbdBBijzbNApcDMIBjI3CmemCDAx8cMGE + /BtTybh6huKvu42qiI0tOlAWL39RtressGT2/me/lVtriNo9QoPEMCurK7MW+bv1FY3b1tVf9fsF + /+RaKqvSJifNTzqILBww25xD7qDe4bavJCtm3VZlU1FrAKqmKVmyI2lOHTYUU5cUzVY0pXGLz+bh + FPJwCvnrbv7WxMY9Xh372ecQWXk4h9wbOyVFW3MOIa+ZVt69f3fPE8i8emdz2dYoqOgyMGuNuqba + lqYBS1abCmhoNa2hmJpaqysNxZQcR11/6kjFPeDdw4sOP/oFavmXftFBe9gZLqNbvVnXb0G3H/Ky + LDHp3EWxNd4BRyZeFAicpmpJsmY1HVk3pYZUt5Sarmo1STdrjmPfjncPXpZf1csSDE/PXyiH13/W + Tr+89N6fHJ0fHryQv1273uHJKTo8GFweKdT7cn108uflkfdGOvVOb/ey+IPJ0fmf8cmL5uGDl+XB + y/JvWU8lsdb8x7wsmn7bv2fzcPV6m9VVV7d7ofq+C+0d/Do7EG+9/DYaDUcDsuVY9YZq1TRbNRtQ + bpD3YhqNOpRrdr1hKXpj61esH1biXzbeUXt/MPSOvry4+qacnh9dD66/Xf8pnx4cofevPl29f/Wm + 9v7gz9r7A9s9PDkeHV0Pzw/Pv9XWr8Q19fD82eW70fDF55ffxl8O3ihHz+UXHz/JL0/co7cnUs09 + +vTWtV8fK29PPr9Yu2r5x5NvX45CssKZrz6735Sha/mHsfXq5eTbl+PAUj6NTfWtP1/FPq5d3fXT + r28uT1+91N55R5jQHp4cXh9N1tJeWK8+j995x675pTkGX0bzVfKWOpndw9GF9fqZa/lHsuWdkpVa + AnfsGk6/Di9OX3++JjIt1R1/m2jnpiLNV/NfflV+Eb8+eHDqrVmViWFWVmVmLfJ321W52bjFl5c/ + 4T7aq8bAdOEC1snqlVRhC1yhkxQRa2TWNmBHBQ7ZRiEaTSom8H1CStdZbg85IfDgXRYHdlSFV/jM + B9VoNJHFYey5BY72pFGQFanADSHR2ijoZMmnPJOuLUgFLrJC7LrIHxgFHxMtmVSm6ELlyApREHPx + JIBGIYZXcfUcXACWW9hGRWBXmCjxPCJiWFVqQiIk9/dxpcJVyWPLwn5M4LtS6Tx6xAxHjOVgHM8H + LdGmQo3dYrZueyAcIL8S46AlQ69dIHXvZVATxzH28iatK42FSZs7WvS3vYDZcz6XXTxA/ny0vqOp + Dv0hA5WbcnnyEA5QRMZTWuM4zeikT2vrucAfjMEAzut9hC60Ym6e33mXPHFVbqmMMczzAyYex3Nm + T2mqQ3/WUZsuHixmJEl0yN/5W5Pz3SXp+kU10vvAWoh5ztLcOCp0Fs9MIBkhOZkBdpE1mdf9FJG2 + JZmdbGqNwsM4DlrV6vhcvQTXk5E2rg39i3gkYp98dXP+Uur740Ln5P3xuhbbGNsujDK7EpbuJA+b + hbIxGVUcHI49Oi7nTF6SrJV1qEOzKcOcMfeqAYEmmlwWYqLYwsgn7DP8jl58KXSeofg5ZqOvxe2Z + i6pJnZasNE/+/Pw0xBAOD5rOaXD9X5p8ZJ+++vOkdvIdOeYrEuy4i4bBsJmcLBKlH/2WmeMMDaPC + Ur+GUTTfvtPndCJ8/Lj9chhG0VnkAdfNLIqEweJV3hwUcQSLUoUoGK0rxzgBqr0U3C5AyJ1demcR + jGPkDyLO4G4ecVyAg7Fvw7BFUxw3Dt0W99tvv/Gkd6JWtRqHZPdhicC+CsI4Itvc6n7gAguSV54N + pdGs1xpPQmijEFoxX6ZcYuTBiPBRWHqIxyFNy4oo0f9YvoXxCMEW9xsfB2aAg6S6A6LYRL7disMx + fMRxs0ezdtoA4wb5KEbARdew5Yx9i3xotijckC22OAbiorQozMogDMGkdYOiM/Y0rwCEmxDG49Dn + 3pvn0IrFIMQxJmuKGOOPcYj8gWgB1y0CwTAMvospFTmIgUmfn5UjHMYZbmWzbAk3wAAiKSgKbeQU + TYGkQ3gBwwiyLEu4cXBYJE1BhtRGe0B0oT+Ih21UKgk3JN82QBf1CfEditk5xRhxnxds4+zSE1ku + U8Yum2ViSKEN3Qhyu3JOmpwwpmZc5ks0NuzZLLEomJVD4NvYO7sA7hiuMzroHoJ4KDouxmExNcIf + NI9VLQpCfzYrMx1oByaPP9qDqaFm5RGcRDl2xPxDEL2/9D+EOIBhPDFWWOfLy0MQHWA/fuGPvWfj + gfG4eJPKbvlj150JpColfRMRIhiSzVmRT6l4oWwn9SOju8gu8zF+hy3gwnkGteV7hy/zeR34Mo+i + D6mClGCdTL7Mk/19HI6tGId8fyH3HTW+MU+nQ5KYwzS6dCwS1tjhwGPD4Jkh+SdPspmpHfnpFBiG + QRovJN1jttMxb3HI54Bwg5xivg1JR5UtQTDFYBwNi5YwY1QZ8y5PnqUWsDm0kfecuov6czG5zPkA + Nlfnt1W22QCBy9MgM93IiCoCIZnq0ICZ2c+seTNr59sAVwDAMUAXdlGf2t2mDcqImE+EoiMIzspc + d8rW0lxfaJuC4KJmphXzijOTSTecjDVQDEMQ43BhETNBXOiydcBsZ5NMkLFsGlNgVNaYOiHOkG/D + K0NimUMQHcGr2MhgeqLAap09Y1VaYsiKPGP8/CVmZBRn5BQFZm5gdFd5dVdF9stZsi3r9PtrGlwq + tedAmTw4wI3gbBvYXHRblnbdIOzPyswi6xit0ifmm83KY9C6bY31QBAZN8zfGrZusGtHwAEhat14 + 4ByHrRte5ltdvtrgy3xVJn9Uvl/mFb7FV2t8md8nD/ysTCYGwj6hFyWSRyrIIqWT6aNKHlW+zCuM + oCYrLMGIarKeJFWWrCfJGks2F8LIShK1bi6Rb+PLqHWzkH34gm/xNbEp8WX+6IRTRVnmW/zRiSpq + MsuqUeFHJ+S3zCuSxJKcRtNfP5DG0mRCr4kKae9nFMWAUeqUsp4mCF0jTZAWNUQ5TZLWHp/wLf7p + 8SFROxnLIRzAK5gxe7dbLRJ4A73IQz4SetVisWeXhP1u77InVvoloYrKc5Kuh03kwhiY/ZIglpLW + 31ZnE1WeqNur9qJ+aYWgX+7yPvDImpNw4cs8HR18v9yt9qIiDkJhDed+uTuv+Z6IIJZcx6I4Qr7t + QmG9du7YB5EFAjj1wFU8xP7Uh7ETYj+engNiMDg1XXANw6QF+0tM/qBcwAXw4140RZCZbxq5yJua + ANljobjfSrqC1Frl8QdTZL/lRdNeUSgiKPSidaqGcIT970KxuN/qVYW8AtYwxB4ae1PHxdZoGmJr + 5EE3nnrIxiGawgAFQ+BPphFyR9NoNHFQCKf4AiWaTU3sxlMUYn/t8Lijk4pxiGzox4JYCi+6rV7U + X1JfLLloBHvRAFojnO+6Ny829tsEpHa7o/u/AYKVG/lY2MM2PrNDMFhp3zKv6ll1UOa5zbyIneEU + ez66hOYUhDgE026MrqGPR6B/o8160f5C7Yv9XQd80caug+5Skz/AbjBE/kY9i/st4NshRrZYEqzQ + w1MrRDi6i+1z2rxNXDdNc7G0z4Z9r9q7LPWiIkP5pLHLnBbtP6SVuI+Umu/fIaKYyIj2Gfvp7VKY + EMLzEpojFN/CoVjsVVNBuR7qpszIGjgGZD0LYChGcZjJicSkv8X5+ibSajm1duWQVOwzBMP+9zEM + cbgBxFgLpyPi8dvQxbeOOR9coAHZtBHwo2i4CQbmfI4Swo0jMLpETuzgK6YhsiCbf1NkwUsIIuhO + LeAhH0+tISLnjqkDfR9aUw9AD/eiFJjIkkVGL/ZH1ABrELRXSu1AUM3BV9MIAo9UmExHFQ+6kIm1 + QEx+CNYTQhOF9jQYYuijq02LooevkesCYc14DC96LbFEEa1X7dklSj+2FtN/GmAXhCiauhP/amoj + 18VTZAFzShA5mgIPTMD0UvWozcehM/3+PQWO9UsNW6+QP4qEXtQrrisd4AX2rF+pkAVvQaizRcMj + gKxEkZ3GU59sn8ieI9lBCb2ILI16T1TavagIQi8Zs6y4FwVD7EOypkU4Ev6YzvOTlTRl0+1FvWp/ + v9j1Ywv27J5IthO9y6X5uuV8w5GY8M1PtEvkF/cNddqc+gKR3IuaV71IIEKJyJVZ8IUx4fs/LLpX + LJqmUJQloZ0X8cwF1ugZDMNJdqpRbU1SZJIioXf5B+nxfF/TZYmM3dwYSdaF6SU0cTQNgOv1cDT9 + 7l9NTWCDaYi8XkTjQjHpkakH4QCzgVDp5ySsGQVs5k88EwG/F+3jaEoS5EeXivtGW9jEaM7pI6u8 + 3NZkIoqlXgLi7WTuiaVk0ufZvGSZ3PuPK1bzEQnO2HgauGASsX99iuy4upfIjtQAh7TxF+P5VEB+ + zNTuFfv7xd5lat5z7KJpd3Tl+v39sTn24/HUhkT5aZfcIej/EY0jOB1AP8Z4CkJrOI1Ih12CEE4d + aJOdg0c6A12AKQkBkd6wXOSPr3A0DaE9BPH0GvqXwB0tma0y7+LhOLSntI7Qi5b7f+CPl3M39ZkV + ks1B1O1d9skCntRIp1d+f4DG3jq7RmOf8pjL69krncsQcbkqEeiQQy8OrEr/RirXZmZkT9mC4biT + bRuBgi7BEmD3S2TXLf6Bo170R5E2SvijF7FNqAesabsXsWNJXj9Em5WZymw7KLK9SdEDFpkSvWhh + 7Cgx0x8bYCjPYAjQiHQJHURsMpK1h+72heK+0ROnPWHai4T0ZMD60QMWIsNjOPWAVdw3zgJ8CcPA + EsgQJhhFV8mrqQlxNMVRr6pMgYcGgMxeHAZDMpxQRHVnUsd0ybvbqP0Z82QkywXzpAxgnGYUEycN + jhZFOCLO9DFoJQj/5An7FeebjNUckUTAn5KZIuxvLmvxfHkA49b8ZLvq/slDbzi4EkEQuBPqzUlR + ODkgp20Q6Hn/x1jhSCDOkBi5rZshiHLO/jlDUyR+2ksYPgfEyydSB897pwjy+cJjw6jIs7JLsnJO + lYxvJ19lNiszNVs34eAq25bUgQjKyJDK5+VROSh/L3sgtoYwYr9lEA4iA4SDMf0uLQk0hINo4Wo0 + FOb8MgkN8X2Wics4SlIlOePzTdznJEjkIB/aPAlzJG7MgPhzaU3h5rtBH7pBtu53WjdxGAs3oPu9 + K/X7xpzZjHgpSXY2bzYjvM+NkSG1z/fMVOtz4iBNWmmY3fO+CK+gVUx6bQyo1/Xx44SCmSkwpHaw + RxVL2QRzNkZC2i2VRv323fo/efI9YdKRqDsxTRrEnJlKXbkvZF3ii4aTIuaPpiOOKiDMjTAnmc1S + 7+1ChLpGREbGkyePaS41ypMn9DGGUSwshFNp++tUKH/vKn2htdotmXr0rxhCGvqjolZqrdG6tipe + XRG/husKWzZIMqpkCcwQgtFslut/lreISEVxuDSF5454MorNrHlNEg3I9TzJyXR+WvWcDdFFIRul + idudDMsYucTjTFl2z/tlIKQTvoiIhH1e2J+3pIVmCyOu43B39XmDZ7NyEl29IfiabzoNxhg+vOQO + QEyiE5YYwfgEebBoEcCnTwILWtgLukxZqShLkvSHTv/fFAQxxq8OT1iwKol2QMPGFgUgkWkiRoGL + 4iLf5hmBY/A8fRikD0OjK5Xt/q0xEscg8YmUl8EL7YHhdKX+fBRV/18vKk17Uen/kmWap7gwMAwg + 3JhnTJEzB4992yDxDlLopD0rCzdDY+xDegguOmSSpXKmjM9wPrJlYdiVSdQzsfhw5tCoV5s0ZpFZ + juBqnHjJLgYo8QZfSsSaJX7KlyyhxLfhVYBCGBl8ySrx7QDEQ4M4s8suuVzjk6UBXhB8b3X7ZWDb + S3LKkI5EaCywVYCs0axfeezzJTMb3hOBbb8gLN8lEh7nkH+1vMjkzKNNC0ZxDKwhpV3hsSgq2mWL + Vb7JVO7a/cdZ+CQZhsXI2MAiOW3Q5bFrn/Elu2/ANiXKrJJkVCe9YJHVdEbmU2o4kdmNxQDny6Qw + K4fQwxfwJxiSMbrVlmtINprThhvNmSnaYM65mVatSkcslUaTGdoZHsdkO5abietsmJ2biNxKaeXR + cU2dDXi5StU97z82FvuY7nlfIBexkD+GHNVvXa8a67SMXGTBolRGgmhh3wJxcTMVKsmC0KYLSCJl + VrZcCHKb08shcmFxs0E6kpArZL2d7DfnHVhe126JhKLLDg49ELdu0qjgmu1s5g5F7urEHzK9YyML + s1mbCMjeiaEZjLeYXv4xbtJbQa1k0GRvCuUWwmzBvP50SgOYZQv7Dhq0eHY9kS9FVgihL9JkiS+n + VxXnBSxd4sshjNA1OaEbPi7HGLsmCMmjiy16lCfP7IIRDhGMSJIc8sf0yYP+OKG3cDAZoijG4YTS + 0OuPJggjYwIjvoyiZ2SDbreYuig6CdFgAMN5TszSZ1EMrBFB1fVxULLRWGNGMTWMcANcGMZF/kNS + wjHLjEPaGs6H0OZizJmQs6HlghDayY3t3A2tCxAiYhQuCBEOSYXk6ivZ440JJ5FPQW7GYtlEq2Sx + HUA2xjcpmdCVb6WhF7fSqD1brG5m2aRIr3oZj1F0BI6KR2PPhGERkCEs7GdTLSlXK13ZknpkdyEG + gNyUAGTVFfbJT2uxQVnaXiSAsVHt9AKZsI5qCEjoMBQJQXEBl/NFOYTAnnyMQQwNg7ewF7gwhvzW + rHIzGtj2nHGZP3h/+JzdIn5Hb5vz5cygWoMWt1VdO5GXFJoxog3aYJ+2lEwkaA2BP4A5fbYwyR06 + rxGwldbr1GYehDJPrunz5buYkPW+TK4yZtqzmCAbh804dLOLuGHwUXJLK91Wt9ffqAGCkPEwrLmf + wU6n6y/yAOHJk8dbzEJh9e7GGhkbRND+ZNdHlsVkJ3L/cWaPk7t0cmsttoW4U790W0yvxpWTDmvd + 0Kue+ZG3TmKK3ole7dto5nv7u1Tv3D4iKA1d9e7onY6UqjW/6MUOWSsjcLGbkbIHHYU5aVhRflPl + FNHvirCoh/pGNlHiRYmnzg+wdD2xmCUTnjxZlVCRBdDNUvWJ5kRiZtu1mXaRkpMxAIwlmvmJNNPs + xSU4m5y91/YRIAu3NaLTGYab19wlwmUL2MJ8x9heXN+7gwk5XbADqp2e/8q8MFd6QJR2mErOssDB + ksCh4XQH8+NqKzn6nhuZk+R+lweuy5elfro3HZLzbFLljBeEFstJvYsk77FRkfeX6FpL6ZQdXY4X + vOUcb9Lb5xk30zk7FUlC2zSsZL9KJmy5a5bhXMNzQZjNzJX7h+xGcHIFkTR0lM4E1+gmHg0cicQn + veQ5TTTieEGMhsiJi0KZbgje+HFxUTHxYgvTqZT6a9Mw+/14prVpoJOwZT3vGd1+mbwNChl4ReQe + LCnwDTPvnegYEplY7so9TmwUswzmx4L9XO45Rj4dFiW+xbd48suXEOmTURf3GafAIM+z+fk3oB6Z + LNAn1zOLvtAmpEZAt4PfDbqrbbOjSrB88zE0AnpJku2nCMY8eRJ2pf6eQY300sUgLrr0tux0SooN + 0tQiITEMmj+dsoRBx69AnMAko73wx30Xbjw2nnyhnWs4zfwutH3D735PGpcnwEGRFHvJE6oYCuWZ + LM9+zv8p+CRCkezfF4sJzDrjNo8UcoMZQX46XTcqOg0BilGMgzeeB20EYkgmOxgABuv5vQo9JzKL + roWr9KWp5ORRFLLLBki6av02JXc4SQe0cCucJVW6ICXvrxxAATlrphXYWkzWZN4DVotdWznTy+nF + SXZT6kytlUnxIkWDlYs031ra197eFDoUunwMzLOkgO/funO1XGSNbt8FJozW7zexZY2DCRkw/HLL + 5FzL5KWWyfdrmeOCaPiPt01pZNumNPJtUxr37LUQBS78+xuX3BA4k5Vy2oJ79o6Nx+Y/0QJ4Fbg4 + hOH9tCbuAhee2dAFk79P5+SeSQu4bhnhiPz+iPp3KB7jsTWEvr2D7rdxsoBvQffnzq30cvBfaIWf + 2X1/aXf9NEUXC/lNDjqXj/N2JsIUQhDDF+yFjCJvowteaM9LTWxPyMoHffv5ELl20Rbatki91a9P + Dt8Z/F7ydhh7qZyskYh5HqtXlWiI+RJP7vhcwIrjAr7ER8MCZ4MYGAX68nEr+QoDeVf00jtznLNg + fKaqZ45b4PgSn74Av3hXWy509shnTTyO7EVIJWzDAkd3PkYhDoEfBYBcniHvbDPVOixCBhZNHsA4 + ae+zyRu7yOcl80IbiA62xlGRPNEX1EUbReSClMH72Id8O7mWQS42rT0oj0O3KJT5YHzGl0h56l8u + rz9VExenkGPKkzOIi+l9hnJmfV/1y2zqSEDbQd+33aghaR6Mn8ZxiMxxTN6uo28R82WevZbMC+0Y + B8kNPXHzoACrcUumDI2t8Id4HLHniBfakHrVF3nFdPjPD0DJrqkszf+P5jJPc+pvHsOyVKZvy7UB + 7R4SvmYMIdvQZlbXXPwha+bFBxBaSX7S88QGEXSd5Nh5aeSqZQYvv2s3b9Nt+V4hnciXeTJvWvSz + DeRmc5m8oMyXePKOcqJbMmDa9MMMSRG/cQz/i7pzSVfmL53rmhmZtHcE8TJExG4LC2345kVquHm0 + pMD6ce1kKfGF9l4vb9qM6Plsze+KlidsfiD9NOxATvFSuLkUTXdM76GFk+Sa0qW4ceAKbXOutUXM + XUTCzWzl1GcY6f1RXkh4ke9/HWIbuAcIuHhQLKxOo4RxgfZpuWBTQvIxj2byX5tludCJ53lp5hf2 + CZsk9Zpif0suzCEymaOzWTm7mfubTJ3agF3owOO4mNWqXNekO2kahIZ2WdpjaUtWXqv+e8bLil3J + e390U5FTiLpKyTW2Lu+RCW/jS3rXnTyPA74/u+0d/c37H/IWfPnv9DzMSBOXHApb+dHnYU8h+/5p + +w7iW33qK97wTCQy2jISWSrd5a0v30KQhBTntz6ItrNZu3jHdjf3vQihKLQfLT4ItOWnhtZ8IYN9 + ZijKf2CIu51fh0MONw8+Rec2NCPTH55fcYZhcNlLH9wNR13LENicwa3ZEEbPJidgQL5UWOQJFS8Q + txytlKiQqba0dDMCXmgnpCLRiDM4fklfvs2lFFFo/c9//89/GxxfbYzQuXOBFM3h21TB3JLM6IU2 + x80yVq6S5ZD8kg1B5/8DbCC5FXHwAAA= + headers: + cache-control: ['private, max-age=10800, pre-check=10800'] + cf-ray: [34d76c352fa81ae7-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Mon, 10 Apr 2017 17:28:28 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + last-modified: ['Wed, 19 Oct 2016 08:34:06 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml b/tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml new file mode 100644 index 0000000000..053cc88255 --- /dev/null +++ b/tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml @@ -0,0 +1,262 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode 'Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 + (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36'] + method: GET + uri: https://thepiratebay.org/tv/latest + response: + body: + string: !!binary | + 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 + 5Cy91BWEm5lWbrPlkP0ygaD3fwGvvwr4a28BAA== + headers: + cache-control: ['private, max-age=10800, pre-check=10800'] + cf-ray: [34d76c295ff31a8d-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Mon, 10 Apr 2017 17:28:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + last-modified: ['Thu, 28 Jul 2016 06:02:55 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d1ebe62a518d70e0ff8ac8ed67684a3c41491845305; expires=Tue, + 10-Apr-18 17:28:25 GMT; path=/; domain=.thepiratebay.org; HttpOnly', PHPSESSID=c497dd81ef6decd6f06e6c316d72c5b5; + path=/; domain=.thepiratebay.org, 'language=en_EN; expires=Tue, 10-Apr-2018 + 17:28:26 GMT; Max-Age=31536000; path=/; domain=.thepiratebay.org'] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/thepiratebay/thepiratebay_test.yaml b/tests/providers/torrent/thepiratebay/thepiratebay_test.yaml new file mode 100644 index 0000000000..460e36236a --- /dev/null +++ b/tests/providers/torrent/thepiratebay/thepiratebay_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 0 + pubdate: + title: NCIS.Los.Angeles.S08E04.1080p.AMZN.WEBRip.DD5.1.x264-ViSUM + leechers: 0 + link: magnet:?xt=urn:btih:e228cf237128f18cec761f89342f88a1da9e8226 + size: 3983582167 + - seeders: 1 + pubdate: + title: Billions.S02E08.1080p.HDTV.x264-aAF + leechers: 0 + link: magnet:?xt=urn:btih:eb565a8f872cf9471d1929d7e1e5c8796291bb7c + size: 4606352424 + - seeders: 1 + pubdate: + title: Wolfblood.S05E07.XviD-AFG + leechers: 0 + link: magnet:?xt=urn:btih:d2d1c9f6d713636be18ee3d7f8e59cdcf9a559e1 + size: 343261839 + +backlog: + search_strings: + Episode: ['Arrow S05E07'] + results: + - seeders: 0 + pubdate: + title: Arrow S05E07 Vigilante 1080p AMZN WEBRip HEVC DD5.1 x265 + leechers: 0 + link: magnet:?xt=urn:btih:1a8317696f560d19336d13dfaaa70048130c73ce + size: 645587271 + - seeders: 1 + pubdate: + title: Arrow.S05E07.1080p.WEB-DL.6CH.x265.HEVC-PSA + leechers: 3 + link: magnet:?xt=urn:btih:d540765a1d0b49ec1c7bf6186c42d9e652500aaa + size: 524350914 \ No newline at end of file diff --git a/tests/providers/torrent/zooqle/zooqle_backlog.yaml b/tests/providers/torrent/zooqle/zooqle_backlog.yaml new file mode 100644 index 0000000000..a748ce978e --- /dev/null +++ b/tests/providers/torrent/zooqle/zooqle_backlog.yaml @@ -0,0 +1,313 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d25cece191c1f469e38a1b93007682e271491843157] + User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 + (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'] + method: GET + uri: https://zooqle.com/search?q=Arrow+S05E07+category%3ATV + response: + body: + string: !!binary | + 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 + ud4wtXLbKBmmoZntolU2NcvSWo16o2UU20ZDL5ileumS0dri7tyFTzacBXbDVzkLN+4WtK0YTuPa + Gc7rfVZRdj/pZL8LraxmKTP7SD/XHpddsHRdY9SoNc1WW9cLhWJJLzSNita02rrRsIr1klGqma2m + Vtf15srXo8zsuNztAFnL6tDKzZ2uGaBtKzfb6ujX0ups4N5N43of9zM9IW+adsp9QbAPK4bvvXUP + x5tmnr7yjwj2d8uHu+DmWrs09LJpFE3LhOtQag3DrBsts9CwjHqrblmWVStUSs1WrX25c/Gy2aex + fO4M5Ioriu+9G34cXulG20fzWtrHTSTRXO/zfs69W3PUp17v067V3IUvd8Zxzfs0W0arUNFNXS/X + SrCFsVFraU2tVLYKpl7XNbPWbGtGbRP3ae4M44ozR69306/QvNmWUbuWlnEDV4UZ1/usnuWpNpnj + 8N4ZxU/JstmdibdLsPk8ZrZd1oxapdwsmu1CsdFumLW6pRvNeslsaLVaRas1W6V23dA3kWCzOxxv + /dMBijc3VFuEjJJyZTcVvZZT0Zt1WM80ajtzVA8ta5c7qmcav90d1LM7qOcz5uhUGnWrXi4Ximah + WSrVSu1muV2sWVrJsKxauVwpVppGq2R9ykE9s/Hg3TE9l5r5lrWbO/OFNdNS+aZdkWJsZZOJcd02 + mZjX+5ieOCa85JSed6XTdSLCu0N6dmuln2QoW2bZKLR0s1YsaHqtodfNSkvTNU0rGqZpNZuNttmu + meV1w8G7I3ouPTct3eB9lzKNqLRbJt323DQvcMcjWb0xxD0aYFDs04Yjz1OlVkc+5j0aqIINVWOq + qJK3HSYE8+MouDcROJeGAMPN9Ayk9eJFK1xILNzXw15Vu/O+KpXCV7FK+MrBgvQYH982a0ev74yq + QkGYU6x6uEO86ktORpRFoR2rbFkSq9+q4BGxY32e/Othzh9k30xUKs4gjh0w34DoFCv941hBnlbc + zGxVY4WqxvKq5gpVzeVVCytULSyvaq1Q1VpetbhC1eKl2ZTt9+fkRKzU5/ziPp/KY8YptLP2Xw4G + W7d0xEkYeSLMNgCqEy0ZptOBM/UYpuKeHU2apdjoiPpkH2k5TatoKC8fihoKc3HLaO5PBpDDPNV3 + VXPqh8a+lwpeAQxIRN1qSF3SwXy25ul7dYgDAp7n5F/VJV0ceWKpLoy/6BMM7S/zawQWYeLBol9J + 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 + NNNAqmr//yMwqLctswEA + headers: + cache-control: ['max-age=0, private, no-store, no-cache, must-revalidate'] + cf-ray: [34d737be6b831a99-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Mon, 10 Apr 2017 16:52:39 GMT'] + expires: ['Fri, 10 Mar 2017 16:52:38 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/zooqle/zooqle_daily.yaml b/tests/providers/torrent/zooqle/zooqle_daily.yaml new file mode 100644 index 0000000000..b81d6045e2 --- /dev/null +++ b/tests/providers/torrent/zooqle/zooqle_daily.yaml @@ -0,0 +1,333 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 + (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'] + method: GET + uri: https://zooqle.com/search?s=dt&q=%2A+category%3ATV&v=t&sd=d + response: + body: + string: !!binary | + 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 + ZoPKvAEA + headers: + cache-control: ['max-age=0, private, no-store, no-cache, must-revalidate'] + cf-ray: [34d737b95e2d1acf-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Mon, 10 Apr 2017 16:52:38 GMT'] + expires: ['Fri, 10 Mar 2017 16:52:38 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d25cece191c1f469e38a1b93007682e271491843157; expires=Tue, + 10-Apr-18 16:52:37 GMT; path=/; domain=.zooqle.com; HttpOnly'] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/zooqle/zooqle_test.yaml b/tests/providers/torrent/zooqle/zooqle_test.yaml new file mode 100644 index 0000000000..898db30dd2 --- /dev/null +++ b/tests/providers/torrent/zooqle/zooqle_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 1 + pubdate: + title: Wolfblood S05E07 720p HDTV x264-MORiTZ[rartv] + leechers: 0 + link: magnet:?xt=urn:btih:27A38528BE3067CF31BB4A0687D2111F21752D8A + size: -1 + - seeders: 3 + pubdate: + title: Who Do You Think You Are US S09E06 Smokey Robinson 1080p TLC WEBRip AAC2 0 x264-BTW[rartv] + leechers: 2 + link: magnet:?xt=urn:btih:D97DC832D5582AD1E45F1C4522F4DF77A7861339 + size: 1503238553 + - seeders: 1 + pubdate: + title: Who Do You Think You Are US S09E06 Smokey Robinson 720p TLC WEBRip AAC2 0 x264-BTW[rartv] + leechers: 1 + link: magnet:?xt=urn:btih:69DA3EDC834356D6C2B0A4836F9518BC69CA9DB0 + size: 1017118720 + +backlog: + search_strings: + Episode: ['Arrow S05E07'] + results: + - seeders: 481 + pubdate: + title: Arrow S05E07 HDTV x264-LOL[ettv] + leechers: 30 + link: magnet:?xt=urn:btih:AF16348EAF93C015C9F16B0807C24635406B4FFD + size: 283115520 + - seeders: 98 + pubdate: + title: Arrow S05E07 HDTV x264-LOL [eztv] + leechers: 13 + link: magnet:?xt=urn:btih:FAD7F4837F0B89B22FDB2F290274CFF52B7B820F + size: 283115520 \ No newline at end of file From 2e427afb40b4650c51ca4d1cdea2fa461a4580f6 Mon Sep 17 00:00:00 2001 From: Dario Date: Mon, 10 Apr 2017 19:50:19 +0200 Subject: [PATCH 04/25] Update test_search --- tests/providers/test_parser.py | 52 ------------------------------- tests/providers/test_search.py | 56 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 52 deletions(-) delete mode 100644 tests/providers/test_parser.py create mode 100644 tests/providers/test_search.py diff --git a/tests/providers/test_parser.py b/tests/providers/test_parser.py deleted file mode 100644 index 6f400fde83..0000000000 --- a/tests/providers/test_parser.py +++ /dev/null @@ -1,52 +0,0 @@ -# coding=utf-8 -"""Provider parser tests.""" -from __future__ import unicode_literals - -import os - -import vcr - - -__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) - - -def test_parser_daily(providers, limit=3): - - # Given - for provider in providers: - - # When - html = os.path.join(__location__, provider.type, provider.name, - provider.name + '_daily.yaml') - - with vcr.use_cassette(html) as test: - - actual = provider.klass.parse(test.responses[0]['body']['string'], - provider.data['daily']['mode']) - - # Then - for i, result in enumerate(actual): - assert result == provider.data['daily']['data'][i] - if i + 1 == limit: - break - - -def test_parser_backlog(providers, limit=2): - - # Given - for provider in providers: - - # When - html = os.path.join(__location__, provider.type, provider.name, - provider.name + '_backlog.yaml') - - with vcr.use_cassette(html) as test: - - actual = provider.klass.parse(test.responses[0]['body']['string'], - provider.data['backlog']['mode']) - - # Then - for i, result in enumerate(actual): - assert result == provider.data['backlog']['data'][i] - if i + 1 == limit: - break diff --git a/tests/providers/test_search.py b/tests/providers/test_search.py new file mode 100644 index 0000000000..11b49126da --- /dev/null +++ b/tests/providers/test_search.py @@ -0,0 +1,56 @@ +# coding=utf-8 +"""Provider parser tests.""" +from __future__ import unicode_literals + +import os + +import vcr + + +__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) + + +def test_search_daily(providers, limit=3): + + # Given + for provider in providers: + + # When + html = os.path.join(__location__, provider.type, provider.name, + provider.name + '_daily.yaml') + + with vcr.use_cassette(html): + actual = provider.klass.search(provider.data['daily']['search_strings']) + + for i, result in enumerate(actual): + # Only compare up to the info hash if we have magnets + if provider.data['daily']['results'][i]['link'].startswith('magnet'): + result['link'] = result['link'][:60] + + assert result == provider.data['daily']['results'][i] + + if i + 1 == limit: + break + + +def test_search_backlog(providers, limit=2): + + # Given + for provider in providers: + + # When + html = os.path.join(__location__, provider.type, provider.name, + provider.name + '_backlog.yaml') + + with vcr.use_cassette(html): + actual = provider.klass.search(provider.data['backlog']['search_strings']) + + for i, result in enumerate(actual): + # Only compare up to the info hash if we have magnets + if provider.data['backlog']['results'][i]['link'].startswith('magnet'): + result['link'] = result['link'][:60] + + assert result == provider.data['backlog']['results'][i] + + if i + 1 == limit: + break From edc3efbe7dcd6273d191d2c9950a97b9d7d41b67 Mon Sep 17 00:00:00 2001 From: Dario Date: Mon, 10 Apr 2017 19:53:55 +0200 Subject: [PATCH 05/25] Updated vcrpy to v1.10.5 --- lib/vcr/migration.py | 1 + lib/vcr/patch.py | 1 - lib/vcr/stubs/__init__.py | 4 ++- lib/vcr/stubs/aiohttp_stubs/__init__.py | 35 ++++++------------------- 4 files changed, 12 insertions(+), 29 deletions(-) diff --git a/lib/vcr/migration.py b/lib/vcr/migration.py index 6e30027757..23b5e5eb44 100644 --- a/lib/vcr/migration.py +++ b/lib/vcr/migration.py @@ -164,5 +164,6 @@ def main(): sys.stderr.write("[{0}] {1}\n".format(status, file_path)) sys.stderr.write("Done.\n") + if __name__ == '__main__': main() diff --git a/lib/vcr/patch.py b/lib/vcr/patch.py index ac1127a47f..ada3c922f2 100644 --- a/lib/vcr/patch.py +++ b/lib/vcr/patch.py @@ -301,7 +301,6 @@ def _urllib3_patchers(self, cpool, stubs): self._get_cassette_subclass(stubs.VCRRequestsHTTPSConnection) ) mock_triples = ( - (cpool, 'VerifiedHTTPSConnection', stubs.VCRRequestsHTTPSConnection), (cpool, 'VerifiedHTTPSConnection', stubs.VCRRequestsHTTPSConnection), (cpool, 'HTTPConnection', stubs.VCRRequestsHTTPConnection), (cpool, 'HTTPSConnection', stubs.VCRRequestsHTTPSConnection), diff --git a/lib/vcr/stubs/__init__.py b/lib/vcr/stubs/__init__.py index a703ff4372..451824384f 100644 --- a/lib/vcr/stubs/__init__.py +++ b/lib/vcr/stubs/__init__.py @@ -287,7 +287,9 @@ def connect(self, *args, **kwargs): # Cassette is write-protected, don't actually connect return - return self.real_connection.connect(*args, **kwargs) + from vcr.patch import force_reset + with force_reset(): + return self.real_connection.connect(*args, **kwargs) @property def sock(self): diff --git a/lib/vcr/stubs/aiohttp_stubs/__init__.py b/lib/vcr/stubs/aiohttp_stubs/__init__.py index 5730d3bb35..28cf8c77aa 100644 --- a/lib/vcr/stubs/aiohttp_stubs/__init__.py +++ b/lib/vcr/stubs/aiohttp_stubs/__init__.py @@ -4,9 +4,9 @@ import asyncio import functools import json -import urllib -from aiohttp import ClientResponse, helpers +from aiohttp import ClientResponse +from yarl import URL from vcr.request import Request @@ -34,36 +34,17 @@ def new_request(self, method, url, **kwargs): headers = self._prepare_headers(headers) data = kwargs.get('data') params = kwargs.get('params') - - # INFO: Query join logic from - # https://github.com/KeepSafe/aiohttp/blob/b3eeedbc2f515ec2aa6e87ba129524c17b6fe4e3/aiohttp/client_reqrep.py#L167-L188 - scheme, netloc, path, query, fragment = urllib.parse.urlsplit(url) - if not path: - path = '/' - - # NOTICE: Not sure this is applicable here: - # if isinstance(params, collections.Mapping): - # params = list(params.items()) - if params: - if not isinstance(params, str): - params = urllib.parse.urlencode(params) - if query: - query = '%s&%s' % (query, params) - else: - query = params - - request_path = urllib.parse.urlunsplit(('', '', helpers.requote_uri(path), - query, fragment)) - request_url = urllib.parse.urlunsplit( - (scheme, netloc, request_path, '', '')) + for k, v in params.items(): + params[k] = str(v) - vcr_request = Request(method, request_url, data, headers) + request_url = URL(url).with_query(params) + vcr_request = Request(method, str(request_url), data, headers) if cassette.can_play_response_for(vcr_request): vcr_response = cassette.play_response(vcr_request) - response = MockClientResponse(method, vcr_response.get('url')) + response = MockClientResponse(method, URL(vcr_response.get('url'))) response.status = vcr_response['status']['code'] response.content = vcr_response['body']['string'] response.reason = vcr_response['status']['message'] @@ -73,7 +54,7 @@ def new_request(self, method, url, **kwargs): return response if cassette.write_protected and cassette.filter_request(vcr_request): - response = MockClientResponse(method, url) + response = MockClientResponse(method, URL(url)) response.status = 599 msg = ("No match for the request {!r} was found. Can't overwrite " "existing cassette {!r} in your current record mode {!r}.") From 97400b3303c4881086c81f074f90f3841dec8180 Mon Sep 17 00:00:00 2001 From: Dario Date: Mon, 10 Apr 2017 20:04:38 +0200 Subject: [PATCH 06/25] Added docstring --- tests/providers/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/providers/__init__.py b/tests/providers/__init__.py index e69de29bb2..7e9190ffd0 100644 --- a/tests/providers/__init__.py +++ b/tests/providers/__init__.py @@ -0,0 +1 @@ +"""Providers tests.""" From 702c612aa69bff2ae7c62383acd3f5de06f54afd Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 12 Oct 2017 22:37:33 +0200 Subject: [PATCH 07/25] rm extratorrent --- tests/providers/conftest.py | 4 +- .../extratorrent/extratorrent_backlog.yaml | 68 -------- .../extratorrent/extratorrent_daily.yaml | 153 ------------------ .../extratorrent/extratorrent_test.yaml | 39 ----- 4 files changed, 2 insertions(+), 262 deletions(-) delete mode 100644 tests/providers/torrent/extratorrent/extratorrent_backlog.yaml delete mode 100644 tests/providers/torrent/extratorrent/extratorrent_daily.yaml delete mode 100644 tests/providers/torrent/extratorrent/extratorrent_test.yaml diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 1d9157638d..c6d39e9b2b 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import extratorrent, thepiratebay, zooqle +from medusa.providers.torrent import thepiratebay, zooqle import pytest @@ -15,7 +15,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (extratorrent, thepiratebay, zooqle) +PROVIDERS = (thepiratebay, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml b/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml deleted file mode 100644 index 6de4661a45..0000000000 --- a/tests/providers/torrent/extratorrent/extratorrent_backlog.yaml +++ /dev/null @@ -1,68 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip,deflate'] - Connection: [keep-alive] - Cookie: [__cfduid=df1a78dc19ee55bafe740661147c48bc41491834487] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/35.0.2117.157 Safari/537.36'] - method: GET - uri: http://extra.to/rss.xml?search=Arrow+S05E07&cid=8&type=search - response: - body: - string: !!binary | - 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 - headers: - cache-control: ['no-cache, must-revalidate'] - cf-ray: [34d694bc627c1a93-DUS] - connection: [keep-alive] - content-encoding: [gzip] - content-length: ['2273'] - content-type: [application/rss+xml; charset=utf-8] - date: ['Mon, 10 Apr 2017 15:01:22 GMT'] - server: [cloudflare-nginx] - vary: [Accept-Encoding] - x-powered-by: [PHP/5.3.8] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/providers/torrent/extratorrent/extratorrent_daily.yaml b/tests/providers/torrent/extratorrent/extratorrent_daily.yaml deleted file mode 100644 index 3ea7361b3c..0000000000 --- a/tests/providers/torrent/extratorrent/extratorrent_daily.yaml +++ /dev/null @@ -1,153 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip,deflate'] - Connection: [keep-alive] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36'] - method: GET - uri: http://extra.to/rss.xml?type=today&cid=8 - response: - body: - string: !!binary | - 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 - u53+ZDrd/X8AAAD//wMA0u25EfNZAQA= - headers: - cache-control: ['max-age=7200, must-revalidate'] - cf-ray: [34d6640a94c21a93-DUS] - connection: [keep-alive] - content-encoding: [gzip] - content-length: ['7034'] - content-type: [application/rss+xml; charset=utf-8] - date: ['Mon, 10 Apr 2017 14:28:07 GMT'] - server: [cloudflare-nginx] - set-cookie: ['__cfduid=df1a78dc19ee55bafe740661147c48bc41491834487; expires=Tue, - 10-Apr-18 14:28:07 GMT; path=/; domain=.extra.to; HttpOnly'] - vary: [Accept-Encoding] - x-powered-by: [PHP/5.3.8] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/providers/torrent/extratorrent/extratorrent_test.yaml b/tests/providers/torrent/extratorrent/extratorrent_test.yaml deleted file mode 100644 index e0fd66c0a3..0000000000 --- a/tests/providers/torrent/extratorrent/extratorrent_test.yaml +++ /dev/null @@ -1,39 +0,0 @@ -daily: - search_strings: - RSS: [''] - results: - - seeders: 0 - pubdate: - title: You.Me.Her.S02E06.720p.HDTV.x264-KILLERS[ettv] - leechers: 0 - link: magnet:?xt=urn:btih:af55bf8be86210457a0d101d7e770a1e61cb846f - size: 562022437 - - seeders: 0 - pubdate: - title: You.Me.Her.S02E06.HDTV.x264-KILLERS[ettv] - leechers: 0 - link: magnet:?xt=urn:btih:d7bc7253d8a04cbe2e6773be2b285974d81a5578 - size: 150715487 - - seeders: 0 - pubdate: - title: Homeland Season 6 Complete HDTV x264 [i_c] - leechers: 0 - link: magnet:?xt=urn:btih:fb6ead48417421cf41485cf2cb4900e24da18feb - size: 2971221329 - -backlog: - search_strings: - Episode: ['Arrow S05E07'] - results: - - seeders: 437 - pubdate: - title: Arrow.S05E07.HDTV.Subtitulado.Esp.SC.avi - leechers: 60 - link: magnet:?xt=urn:btih:bafb0dbda0c6235da7303c5a68173eef7e808040 - size: 363382784 - - seeders: 115 - pubdate: - title: Arrow S05E07 (1080p WEB-DL x265 HEVC 10bit AC3 5.1 Qman) [UTR] - leechers: 5 - link: magnet:?xt=urn:btih:e109ec44fd5b1d9906ebd8fc4ccfe4d17955d9ad - size: 895857940 \ No newline at end of file From a6c4f83918fc4a8a6c2010da22e46fc843c42410 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 9 Nov 2017 17:49:21 +0100 Subject: [PATCH 08/25] Add pubdate to tests --- tests/providers/test_search.py | 8 + .../thepiratebay/thepiratebay_daily.yaml | 491 +++++++------ .../thepiratebay/thepiratebay_test.yaml | 28 +- .../torrent/zooqle/zooqle_backlog.yaml | 640 ++++++++-------- .../torrent/zooqle/zooqle_daily.yaml | 687 ++++++++++-------- .../providers/torrent/zooqle/zooqle_test.yaml | 54 +- 6 files changed, 1019 insertions(+), 889 deletions(-) diff --git a/tests/providers/test_search.py b/tests/providers/test_search.py index 11b49126da..b8b8892797 100644 --- a/tests/providers/test_search.py +++ b/tests/providers/test_search.py @@ -27,6 +27,10 @@ def test_search_daily(providers, limit=3): if provider.data['daily']['results'][i]['link'].startswith('magnet'): result['link'] = result['link'][:60] + if provider.data['daily']['results'][i]['pubdate']: + result['pubdate'] = result['pubdate'].replace(hour=0, minute=0, second=0, + microsecond=0, tzinfo=None) + assert result == provider.data['daily']['results'][i] if i + 1 == limit: @@ -50,6 +54,10 @@ def test_search_backlog(providers, limit=2): if provider.data['backlog']['results'][i]['link'].startswith('magnet'): result['link'] = result['link'][:60] + if provider.data['backlog']['results'][i]['pubdate']: + result['pubdate'] = result['pubdate'].replace(hour=0, minute=0, second=0, + microsecond=0, tzinfo=None) + assert result == provider.data['backlog']['results'][i] if i + 1 == limit: diff --git a/tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml b/tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml index 053cc88255..a7b5093b5a 100644 --- a/tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml +++ b/tests/providers/torrent/thepiratebay/thepiratebay_daily.yaml @@ -3,260 +3,271 @@ interactions: body: null headers: Accept: ['*/*'] - Accept-Encoding: ['gzip,deflate'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] Connection: [keep-alive] - User-Agent: [!!python/unicode 'Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36'] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; b26754d1-c49f-11e7-ab95-1c1b0d9d2a41)] method: GET uri: https://thepiratebay.org/tv/latest response: body: string: !!binary | - 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 - 5Cy91BWEm5lWbrPlkP0ygaD3fwGvvwr4a28BAA== + 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 + IzhwZ78AAAD//wMACd2HwxJ2AQA= headers: cache-control: ['private, max-age=10800, pre-check=10800'] - cf-ray: [34d76c295ff31a8d-DUS] + cf-ray: [3ba9d151ec2b1a93-DUS] connection: [keep-alive] content-encoding: [gzip] content-type: [text/html; charset=UTF-8] - date: ['Mon, 10 Apr 2017 17:28:27 GMT'] + date: ['Wed, 08 Nov 2017 16:13:09 GMT'] expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] last-modified: ['Thu, 28 Jul 2016 06:02:55 GMT'] server: [cloudflare-nginx] - set-cookie: ['__cfduid=d1ebe62a518d70e0ff8ac8ed67684a3c41491845305; expires=Tue, - 10-Apr-18 17:28:25 GMT; path=/; domain=.thepiratebay.org; HttpOnly', PHPSESSID=c497dd81ef6decd6f06e6c316d72c5b5; - path=/; domain=.thepiratebay.org, 'language=en_EN; expires=Tue, 10-Apr-2018 - 17:28:26 GMT; Max-Age=31536000; path=/; domain=.thepiratebay.org'] + set-cookie: ['__cfduid=d105ccc3c87574cb043691d37adb489251510157586; expires=Thu, + 08-Nov-18 16:13:06 GMT; path=/; domain=.thepiratebay.org; HttpOnly', PHPSESSID=ebd5dba696a1241880a7fe9181ae57bc; + path=/; domain=.thepiratebay.org, 'language=en_EN; expires=Thu, 08-Nov-2018 + 16:13:08 GMT; Max-Age=31536000; path=/; domain=.thepiratebay.org'] vary: [Accept-Encoding] status: {code: 200, message: OK} version: 1 diff --git a/tests/providers/torrent/thepiratebay/thepiratebay_test.yaml b/tests/providers/torrent/thepiratebay/thepiratebay_test.yaml index 460e36236a..c3bff42cbe 100644 --- a/tests/providers/torrent/thepiratebay/thepiratebay_test.yaml +++ b/tests/providers/torrent/thepiratebay/thepiratebay_test.yaml @@ -4,22 +4,22 @@ daily: results: - seeders: 0 pubdate: - title: NCIS.Los.Angeles.S08E04.1080p.AMZN.WEBRip.DD5.1.x264-ViSUM + title: Ink.Master.Angels.S01E06.WEB.x264-TBS[ettv] leechers: 0 - link: magnet:?xt=urn:btih:e228cf237128f18cec761f89342f88a1da9e8226 - size: 3983582167 - - seeders: 1 + link: magnet:?xt=urn:btih:2c0822768c241e36d770f1e60dc54fd093c68549 + size: 549055365 + - seeders: 124 pubdate: - title: Billions.S02E08.1080p.HDTV.x264-aAF - leechers: 0 - link: magnet:?xt=urn:btih:eb565a8f872cf9471d1929d7e1e5c8796291bb7c - size: 4606352424 - - seeders: 1 + title: The.Voice.S13E14.WEB.x264-TBS[ettv] + leechers: 78 + link: magnet:?xt=urn:btih:f16cbe510298eee0c1477b5477dd408568489bec + size: 620169789 + - seeders: 44 pubdate: - title: Wolfblood.S05E07.XviD-AFG - leechers: 0 - link: magnet:?xt=urn:btih:d2d1c9f6d713636be18ee3d7f8e59cdcf9a559e1 - size: 343261839 + title: The.Mayor.2017.S01E06.WEB.x264-TBS[ettv] + leechers: 21 + link: magnet:?xt=urn:btih:94411f7130f1d170b5ee13532ade9171d6dde7d4 + size: 183207198 backlog: search_strings: @@ -36,4 +36,4 @@ backlog: title: Arrow.S05E07.1080p.WEB-DL.6CH.x265.HEVC-PSA leechers: 3 link: magnet:?xt=urn:btih:d540765a1d0b49ec1c7bf6186c42d9e652500aaa - size: 524350914 \ No newline at end of file + size: 524350914 diff --git a/tests/providers/torrent/zooqle/zooqle_backlog.yaml b/tests/providers/torrent/zooqle/zooqle_backlog.yaml index a748ce978e..641b721b4c 100644 --- a/tests/providers/torrent/zooqle/zooqle_backlog.yaml +++ b/tests/providers/torrent/zooqle/zooqle_backlog.yaml @@ -3,311 +3,363 @@ interactions: body: null headers: Accept: ['*/*'] - Accept-Encoding: ['gzip,deflate'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] Connection: [keep-alive] - Cookie: [__cfduid=d25cece191c1f469e38a1b93007682e271491843157] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'] + Cookie: [__cfduid=dedaecb71dd9c0c3b833108d25ac94c7f1510138217] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 99ec5e51-c472-11e7-ad0c-1c1b0d9d2a41)] method: GET - uri: https://zooqle.com/search?q=Arrow+S05E07+category%3ATV + uri: https://zooqle.com/search?q=Chance+S02E03+category%3ATV response: body: string: !!binary | - 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 - ud4wtXLbKBmmoZntolU2NcvSWo16o2UU20ZDL5ileumS0dri7tyFTzacBXbDVzkLN+4WtK0YTuPa - Gc7rfVZRdj/pZL8LraxmKTP7SD/XHpddsHRdY9SoNc1WW9cLhWJJLzSNita02rrRsIr1klGqma2m - Vtf15srXo8zsuNztAFnL6tDKzZ2uGaBtKzfb6ujX0ups4N5N43of9zM9IW+adsp9QbAPK4bvvXUP - x5tmnr7yjwj2d8uHu+DmWrs09LJpFE3LhOtQag3DrBsts9CwjHqrblmWVStUSs1WrX25c/Gy2aex - fO4M5Ioriu+9G34cXulG20fzWtrHTSTRXO/zfs69W3PUp17v067V3IUvd8Zxzfs0W0arUNFNXS/X - SrCFsVFraU2tVLYKpl7XNbPWbGtGbRP3ae4M44ozR69306/QvNmWUbuWlnEDV4UZ1/usnuWpNpnj - 8N4ZxU/JstmdibdLsPk8ZrZd1oxapdwsmu1CsdFumLW6pRvNeslsaLVaRas1W6V23dA3kWCzOxxv - /dMBijc3VFuEjJJyZTcVvZZT0Zt1WM80ajtzVA8ta5c7qmcav90d1LM7qOcz5uhUGnWrXi4Ximah - WSrVSu1muV2sWVrJsKxauVwpVppGq2R9ykE9s/Hg3TE9l5r5lrWbO/OFNdNS+aZdkWJsZZOJcd02 - mZjX+5ieOCa85JSed6XTdSLCu0N6dmuln2QoW2bZKLR0s1YsaHqtodfNSkvTNU0rGqZpNZuNttmu - meV1w8G7I3ouPTct3eB9lzKNqLRbJt323DQvcMcjWb0xxD0aYFDs04Yjz1OlVkc+5j0aqIINVWOq - qJK3HSYE8+MouDcROJeGAMPN9Ayk9eJFK1xILNzXw15Vu/O+KpXCV7FK+MrBgvQYH982a0ev74yq - QkGYU6x6uEO86ktORpRFoR2rbFkSq9+q4BGxY32e/Othzh9k30xUKs4gjh0w34DoFCv941hBnlbc - zGxVY4WqxvKq5gpVzeVVCytULSyvaq1Q1VpetbhC1eKl2ZTt9+fkRKzU5/ziPp/KY8YptLP2Xw4G - W7d0xEkYeSLMNgCqEy0ZptOBM/UYpuKeHU2apdjoiPpkH2k5TatoKC8fihoKc3HLaO5PBpDDPNV3 - VXPqh8a+lwpeAQxIRN1qSF3SwXy25ul7dYgDAp7n5F/VJV0ceWKpLoy/6BMM7S/zawQWYeLBol9J - M7+EMbKRDnPHM36wfI5Vs2Lr9wuGdd+slNCIcNqloEFicxbej7tQv29oFRSQYySYi8c5dNDheVu/ - bxpllApVvsPZcUjyYpS3j16jsM+OQ+gytKebBfRk6XdkSEPmEvndvQSWqWc/9tkob/tsROOPchLw - M+JSjHCAvfEpcW91GUdFC2CkaN/aM9AzFApOsB/eiyshI1dBL+uIdZGLBUY0QHo5p6FnqEs9EiYf - 6ffLldIUfOJbhHk7fQIsYkRvhdFwyLigQQ/pEp7D8ZDMCxE6CFjocDoUq8uDcl4f8tTYKjZ6LFBI - iB8i0ccCjVnEUcxajlxGQhQwgRIU0Td4hEOHDkXu1kuP4JBAKYlrij4NkY/HyMFRKP2EjgfNHlPR - RyHzCbAsli/UjQIHLNYckQf5CY3ribwyw5OPSbyPT6gf+YnIP2Oh5IBL3MWBOuWZfUCDYSSQGA9J - 1ekTZ9BhJ8lX3JejiMCgFWwI4uOjAPtk8it/sacfCpAKF3FfnfpE8aw1UQKqR0MRb5SY1cH5AQt6 - ajiIPI+GHg5c1dD0ktp31L7L6VA9GVFXxY6pEsF76mhYjoxkmomWcEaOkBmVF8/G5Cw7YdjiJCvR - BtkpOcyJdRM9SWdoT1jQQ4eA5WOJJQIs0aMGetR8RYfou9e0iWoNU20dvXqI5HhfIFQil/dZEArC - gTvOIFSPe+MrI0ebkvMsxgIdSSw+0kbcAqQR6qWMETqPQpf4WBqZSMAU0CeBQ1TLGQ2vitDKlM6m - xAUBLijFZXVqiytQO8RBl3pspIaqUVat7jt6VWSWp2S+TJC486VmVh6ECOzRJomcjlE1GaSW13E/ - A6EwDPfjcYiSgbhR2cVhiMOQBmqoOpwQV7W65SsboKUpnbUEj7RDG4DMZvu0F3ljPFZHOBxj1XrX - 63wGMh9KHO6j14DEF5vtSo/1cKBa70b9qyKsOCXsKQDfFD1ilBd9onZoT+3goKeKPmF8rOomyeva - iV45n76ZsO+maDvqE1SnPVTHQQ9+MD5ekVKJ7QpdB9T2IsxdioNQtd6Vo8/QhUDmwxSJzYqm7E0m - oymdsWr5hXfn04cD6pNt9SILQ1THnfFmyfNpGKpDwkmP04CoodpnPlG7jKtD4kQexVx1+tRzOQlU - q4jff4bOfUbDEL1MUUy17CPw8mEa9TLBEzUSPDelesUoP+Q0ZIHa4QQPVJ0P8taJfsUj+KVEAdUB - hRUps070jxEGvSx9A90088UT3bhiqh4l8FekCDBcQZiP+2O1T33V6jq9zyCob/pj9Ij6X29QAEH7 - dD0c9lUdj8y8eaIXr6KnrFnd0wYMVqQKUFxRrVKHyJFFuGpV6JW5qHPEPZ5gcel+myfx7K9nfzz7 - y9lfz/7l7M9nf/jw+w+/P/vL2Z8+/P2Hf1Dl6//nwz+c/bN69jd4PPvrh9+d/fXD38VT6Tg5GebS - o+Ckp38Glpz9r+fhvo/O/luKPJpFHu0B9veSjGiYZF/U9x02HmA1ClwaDgEfdRQ5n4HSOqCxj76d - 4LFBHzDsE+4xZ6B2HTdfODGvYtAWpqQdJuBXpKhwYi4R6Em8SfDe4oykz0KhQuigT9SwTzxPtfzg - yqZfGVofAiYQGhV9AoR73qX7cRXCuzgQOBTUUTsEhyJUwYoe9wknqmBqlwYusMRXzffvKp+BG+0U - PVSX6CEwsm8APSQYatPABaXnf5KJupA/nPUiorKAqBaJSp+BA68AAfQiINujEQsIrUNQWbX6J8ef - gcjaBINPEPYL6BSjfId6HoTNVd3pH+eNk/IV67B6An9VAk/Ka9DnsAgWktRQcDogas9jHeyprNuF - TbMjoh5jfgoyPNJVE1KWyyqOBIuGLhZEDZg6qmh0dD5Denhz88AMSxoJ1ocS6330UKKNXqRoIxW9 - wa9OXwQttIdGes60cnqujL5CtUiwbyXy6Cv0nKmHcG4GuodWFXgvcgZj1cEhUS0vLH8GgX8KGKAG - LAN9ipX+mE2LPIhh8Ojz2LHIC7dHnc9wgFWr8865ogBGIbuEgQO8PX189q9nfz37s/Sirf77wmfo - vLN/TDHYHpUy0sYJFuoxBnfLMT6H5ZGhNsACvcHruFrrUgsR1BH1PNwjqgdZEqFqUWp9Boohfvo6 - xgQ9lZhcfqL4MaPb42Ssgk+JBfMhbOzkdfOKwsaZFdSHnIzTQFstxmXVsLG5EDb+CMmuo4aqR3ok - cEOVdVXBfCaTmHXHMfPGFUU8MsQ3GynpT2OsIJngKMFqZW9kaYzgQok/OTlRORERD4ANJzhwCVcd - kH+rbwVXJfgZRpx8d7KPXkmMgAXfSYxQA8bBpZ3Oj3KBBg7mAbhZkxz1q6T5cQr+04JBF5L44e8+ - /O7sT+rZ/33217P/9+wPH/7uwz98+N2H/6LCu3+FkMqH35/9y9lfz/5Z/fD3Z3/48LsP/1m1eqfi - isx2hhln/ycgiuYRRfDuH7OIohTRrQiGGCXbGnSzDBH40hUrhNoaAx/QW3c2yTkdYU8VJ/gzCHwt - hv4JJu2jBIaC8UGoWpZbuHoZPpTAL++nyMR3mU8Kq03TlKsMxbTXg/T3vPzKnkmh3mJmWZ9gnuwI - QG1OwVBdnFO2QlLYZLNH3H+wWyGE7QpJjmLOJ3kFCcx7RFR/0/FwMLAPqN9DIXeqSp76vcmnqk9y - w6CX7pXSi6hPwHeq6kUbHU3bm24uuCK2BeQ4Ydo3kYwbbiIRLyDHmUS89NeaiXixJJ6fjpdJm1cy - Y6zPOKcdj4RRJ1RPCWfqAHOs9vE76hMeqT7uswhiFmGfqZquFmBLtrzfYOh66VzwUuPx7aME9GHU - CX9AvyKcIYCNHiWw0TOAjQKGDvsMqUjT0VsA/0POH4wyOkC2maV/YbuGTEXxaRAJSKoFVQDDc0Mc - kdvkUo50rpwjAH7LHDlmXrfjMeaec1qczzgVp+ktxUPXq5zLhY9Z2DcpqFyco58DUDnYxpyToJ69 - eEWPfpXcYrwuxbqxOsl9prpMHbNIFX0aDOQT5kSNQjXUKkQrqqHPBmSsctahASzzx6cVCM+Ry3DA - hvLl2dBnqMnQ9yxCRwBePtU4Qd8eokOt0tKK6FCCR68S8MnhBkdPG7CMBmtotVrDQFp8Vnr96M1l - eVbcJs+kICUs45JnpavkmdyfunGWGfrKLBOEBDBF8yOBA6EGNHiHVRFx4ZEwHmyFZQfmD12veGk+ - HcUw0TMJEz0HmOgohonkqCssnrO/RR6c/eXsD2d/PvunD38H2lQz1LM/nf13VStnl7RjQZEhOnIy - oAHjkM84dD3r0mw4+28pWPRWwkUAF2nlH2aXo2MhkbG51skTGrBXeLw2N1ZXPB/+Z1gTP/vXsz+c - /QVmTeqH35/909lf5L//rBLOfBz0sBqSICRUMkyPGaYbSTq9K0aQARCSAabqUHKp8ClW6ez/msUI - nf0fU4xQHrUSnNChxCnmph5zUzcm3AQdDmPst+iw9aT2GL189eKbVuNoi6y8cHAZmm6kI4zAqiv1 - SZjo8ETmgHPmdoYZQE/HWgsWVQF6osITsUt00SMYgvRI055f1uoZ1jY5lj0UD0uWGVfJsuxJepvj - 2AZtnqW+I2FIHax2KPFmnQSZqDN0PX17Ns9C38TgUZ0Sb1tOglFemWH+0IRJlMqJ3JUVplqeDFS9 - ACuprhdKpmjnMsWPQupczJdnL030vPUGvWo9bdUOW4fxHp43rdYTpBeQit4+9Fjz6eHahJrayoSG - AsPWHzKQOS6cwebRDuEc8vAjTwDdRTgvQCRzqo4XgVGLzbwvCDBhcHo+E1aI6BwKDPt+yEAuu7ya - ooBey/kvoIBeAgoIUEB1LwLjFlv9Z3Bs/Bb5s+7ImXEV44EzGF/ZwNmOp2iu7iV1KQ+FCmvwYcwh - naRzT9C+EpFj7PmYi+lEbHByaQa1AR5qAryYJ3pL0yfqNib8DX76DL86uizxF1vyOBr4cRZMp6EO - Z2wQZqg/3jD18uQ4Carx6sWLJ4efl/C5SfgC9aNt9P3nYsFMUKZPe301dPqMeapUs9IiYE8NDZg/ - ZAMyg2iDAZlHtNdHhxIukrr1WQwXHRoQjDE+IRhjWtsZDOQ0kQax5bGA3gKo9QWhuLmxsKAHJ8SH - V6EGrwEHzu9+fhXK4Ko4ANnjH34Pk3eZbP4nyIb/Fzk9/ePZn87+CEuNqktC2oOVWFcNIz6iI8ZV - TT/RdFW34gmzYcQ+mJy8SCa9v3ww4X+bxwjNY4TyqDnBCR0mOMFsOUYqnjAbyYS5mM2G/y16To5D - IY8c2zZv11G08WQm1bTDK9W0EvblVG1piyzJLo8M2JVypHBlDHGxHx/jFKouHqs0GNEQMJUzHZdg - N44VwFQP2BB8ykyuOYGFmniMVPQ4hXYfJjVNgl05YIx7CCZ965JeXpN0TP2hWlB1U+1E1HNVvVwx - IW0fe6rrqFpJ1QrxjFb+M3RUOIwEzqhKHiRD/PPlYji8mB21x89eokJON1Ed4COAD3n52ENvmw2k - lXJaIQewJ3G3lw30W/QVepnggfLTx84YqdUme0afs6q6ddZ15CI7DXCsdqXBSia9i3fyDd2B90lz - 33oKLZ7lSnuVzG8zd/ddbpL7iZTHarPD5Zkn6T0SyZkn7mCwSbLjeE/9FViR9KKJ5OCSLdO8qn8q - Egfl3bbnagBpbdekoK1JNugm0Iusq1KBvbFqaFolCfMk/Z6IfNrxkyWdAf2knn8dQ4ZUu8cAGQHk - JLqTiEEi/qkcXGphp2CuyRGwCUPOXNobq8eMe5CmGahdygmMho9zpf9JXAEb8TKGjt5I6OhFgNqU - Exggm+XMumb0HT49VfEIIu09zF2iDuhQ7eOA4z4OVDiMSn2HnYHa4ZFD1BHhAgx+qDoR5L84kju9 - T7Gtb7/Bp6f3UU2i8BBQ+AE9oUP0KMEB7b2BE7G+wc4A1QGJe0hFr1M8UCPGY4z0SrmI2k9rDbT3 - DfaxJ8ONzxhnjoODe2vzsXIJCRPUGRCR1a/JmkR8Z4CUq25PqET0Y1+/+8lidSRBZvVssg4RXysg - lyHaD4/etsSj5g9bZ0KIffUYh6rcSpg1M5mwsivCWSaQTwsvYx+9wSF6ROLRVJwdTdLeNI8Or5AJ - cCSc6lECO0vxkFMv5kTCA+lxVCzN76g9HIADDzxwP4kH38MhdE8pgR2kNYAYMyJhgfQ6Kpb2rI4e - Sohb58DsYvqSlXRwOuQ6OvPgBAU4KzuOpTsbWkk/ZxkdPBC5iP7Ce4qD5kOAuy43rHWt8dm/nv3p - 7M9nfz77E+QXn/3xwz+ok32JmvHhP8FKdXl2+TxZXZjmG7x/H4aFgor9eEWmc3k2/eM8Mig/3ab4 - doLPwsp5suQwzUOIUUK/RTVfngu5dTb+97M/yEztv8gk87/J3O3/cvZH2OYP+Ql/O/unD38PZJ39 - +cN/PvtLfDzBv8jd/X/78B8//F718LHKOGxICIfEodhTR9QR1A/VKKCSrfjybP1fUuRkYvkMcvuQ - q7AEO5TFDuXRU3yM7mB/+AC9ACz30WGMJnodo4m+DahAb/WyDNUULgzVPHYJblPPv8bCPSfXLpUL - 94PKZxPtf6tSXf43ItVS9WxYtOcy4yc50Ctlxk+Pmp05lLXLWObo9QCPIP+ZBiPC4fzX+GeXnhA3 - OU98WQa4wwKBaUC42vUi6s4c1Jw2CUcfp+0BpZltAF72agZ0SDB3+vK83MmRw2mOe3IRxJ5+36gU - 7hcNHcXHgt9LtxAM56DGpz0vB8sVGzUZxJb3J2f5Kh0qHEaDfd2KGt+8bL96VHvaLgTPH2HzjXH6 - 7PSXlZ7baJf5I/bd19iHzeFVLafpd3wShrhHqkd9HAxCxa4fNeIui7dE5FG6OWICyKOCSEhPSfTe - KJeP9db33xyOf/m68cp4qHOzf1o6/cZ63Q2eWCmkRTBPEzB3OpHnPUCZ+CvxhnnZLU66itWIf6E7 - 6HHQZZlqtxZ3HxxTIeRNDn4+vhriNw7z5/chHMVfXYAAHqbz89rLxxd85/pOasyazxq1eIfCcHpu - cCyj2U0KPnOxB/sA5EPNHeHAgROpcYcGLjmpqjrizCNVl2KP9TJHlHvE7Yxnaz2VA2rhvPIDuNYE - +UT0mVvtEYHi0x+q+VAKaNx+8hwjBRXUPuP0FFgt0YNXsUCn0BaoUGMcZwZUXAD9RwKxWAP2WhA4 - ObwTCcGCeLNE8pyMSI+FRB5hrbo0hCPnEpZlDmtvwDfnntYuU9UeTMQ2HzcP99UUZnCRly4s9ITk - qZ2cB/0/fvdf0aSLYo4d5PuFxa0ncYtyG8jMKdiSsdLtRtNHNYQznqfa0Mdi0hPyBPbQVw0EPOTM - i0lOddcz+akg3A/3J6oyq85kZV2b2Yyy2NVJ25J42SKcWAHXunhEkCrrdhEn7yPKodPPPSt+JdrI - ieNFLlmNulb88YYoS0B/OgWge1bEHz6VHN0YDdgRn0LBSngf0lOCOA56F7G+NAtZUpCAzjzHsDPk - BZHfmVjpefLC0zZnfhZYtinsuiywD0LiEUdMPwdHxj5gQ3mizQh7Eak+qdtP6rOvntVRXJG49rO5 - sod1+2H9IB+XJ8fdo/hmh/TCpniAr07HEVuDiiO2aRrmjqvfrrhAMi6S1oq4GxKYFVmHe+RoPCRz - nKvbPuPytP9gtqBme3DXjiyY5dTKPYt7ZB3slvTrI7vPIh7OvmxOO9bF47nCNzZkyM69fGYnVw/N - ii3usSvt+0Zyi8rF+m3ljp+9fCTZNKnSwKMBSUEm6CUXknRZINRjuT90HwVwf5unXLT10gFtnLyR - XoWDhdx5qTyTET8FTpyJ79/Izjw+J2JHr+EKl9fXByGZfQCMgr/XB62H2Jf9J/9eH7RqwyFgBX+u - D1J1WIBV4CBLNrhOvILUGGAW/L0+aL0Qfbg5CMm/82hdiZ59mly7/BE/cmp84J7mOcujKFMrI2cy - wRhmNHMfYazYtS7m8687il3rDPr4lM6bVQV3oQqnA4yDcL5soNi1wWIVX7Frfh9z6syXcMWucdxZ - LAhkQY8FJCTzZaFiw10K/pKikWLXRssAESggoVhEbqzYtbGPOZ4vOFXs2inhHUzf4YDOlXawYtdx - 2B/QeeZ1fCjxO4stdohi14mHeRQu8rUTQGHQw94CKKrYdbiiw19okIFD1iGLVHUgmsPCYAkcrth1 - TgRbKOgpdj3yejCpni9zsLT+2FssCRW7cUqc/vz7vmI3+lgehjRfRKAILjhcaCyCkgimRIceHi30 - ojOS5SMczoMbHEOoiAd0ocRhsgRS6BbAccWGSzjmX48V+w3xFlpysWI38RIQLlHsh4T7CwDckWI3 - +3RE+vN96p4qdvOUBb1Bf75TCUz1mUt4AMdrkQHa0wuWqd6b/yxQ7FbQ8xbRIUyxW+GQcByIed7D - 3aCtULAlgkEiKdHvo3l+EKLYreP5t12m2G3M2eIg7GLFfkn4EhnvvlPsNn23pIBCQbCEt12u2G1I - PlgokL0EFx4FcKzJMmhdxW5HHp6v2XMV+9BhQtCwjx5i4i3IWQ8r9mO+iEzPU+yH2KPOIrDeCAI0 - wcn860Cx4cKJRQXSi6DkHeZYzBf1hWI/wlQsQuljKInCeZnpE8V+BMeTH88XnEIBJwuDsE8V+xEN - 3AXYDN5zip4xEc2XyfHC8DLEIsV+FAVLlUcfNCz3yRKZoz3FftzrzCNHmWI/dhfeUohWOP0IB+j7 - ebxppNiPg2ggqIjEfBmBMkG4R4PegnhTF0pdsDRLEBzIZocUv58vCRX7sSMvJ1iQHyoUG1KzFtt7 - N1JsuLBuiVl7h6FouKxo4Cn2E+xhDPepLZA3CKA0CLA7Lxbg9T3BYd+nfJ5fAww6i/HeIo4DLtuL - FusMoOAUDxa0r6/YDXnZsYee9H0ybxIHVLGf0EE0npcofgwFwRjzYxwsoj+GUt7r09P5kpFiP2H+ - AoI9eB305iVnwOA9J4ukvlPsJxEOxou2dRBBEXcXtYDHwEWbh+FheCvoPAhvJN+PFvnsUcV+Sv1O - xHuLZQGUgTcwjxfcoPiUChgFS5rsKPbT6IT4HRbx3hLUIyjvYPUJFrCTf764B/ptsSP8Pig3Hvbl - 9aPz0unL2LSHx9jD/nwZlzWxWLCA/gBKHOIus0V+L26yh8PxfJGQRWIJHgEYzqDHlow7n0IttiDS - fpjgjvaeYYczL3G9562tPwbniC9xOQOs2M9xxOdFOxjB+xF+Ny8oAVfsQxaJPnrukg7xFhp0Ffs5 - 4+eX9xT7ucsWey8giv2cDLFHP0JMACtWkVgwqUEgIR8TUAro+ThgPBzMf8My38yXjRX7+RgH7+Yx - Y45iv3AcKiDT8CUcw69bmjaPFnun2C/e0c7xQnWu2C84HeOP0MV8+I758xxnoWK/CEOyxG4NwVcB - jDvzkjGkULLgjA89xX7JlnhdQwEFXES9aFFIICjwMgr7C/7Y+0ixfxkRMGrzqtFX7Fdw3sYCJM6S - kkVyeKDYr6JFq84jeB8uMXBhT7EP8aLKDLF8Hw44nbc3obTDQX9RN4UDxT702AjPS03oxQXLfICQ - JPIOntwhXlDqMHs+xHAq9XxBoNiHfRYsYOFK/NwFlRMyGHn+YqfCsWlySEoUmOgvuM2hYh8Ol/n+ - 4XvFrnmdZZ0ROoA4d+myMlAChHeWlACo40WnMIwU+zAK3GX+QXgs6/TpR4d+OIIvyRKrJsaKfYT7 - y7xOgaHIp978ewHvxUL4QBDFPiJe1JvXiaIHFd7RefEQsLCAe7CgPF/SV+yjPp5nhqAw8YV7vsbz - vS9gTgzaEe3Ff+IrJcN5TohAsY/CY7wgPiKEgiX6VQwU+yjiA39h3ip4XLKEq8cKZBzMvY16iv0t - 7fWjec5FA8X+dsDxMpGJuGJ/y915nkaniv3taYfM83REFPs1WbTlI6rYrymRwa4FQRoxxX7NPDz8 - //72l7n/PZn79BgrNpzszRYCCcdMgdPdWHfu/Ulfsb/rs4XJy5gq9vfUXSKTY6bY3zMedearnGLF - /hW4QPPycirDDnTJGDmNFPtXkRctXzZbNYo3d126jMSh5Il1uyFkpiuXWvvadJiTulUWeOM2XACe - piehF8+ffg8JzPJa8A3FNpFLQ9hk5irL4pTGDHYyl2n5Ytv7iPDxpK1lSC2kXCQJNhcklCgdEaCO - CCaXjy9JLlmSs+dA0kd6mGy81taQr25lMkqyQMOo41MxD3TIqY/5WAHyOiJIk0kO44+npC7Aj9MC - ZuDHHTiFv4w/GUbHSTFyYTKB+sv4zNH3MjGJ+2md+GpzlNqLKkxOD5Mr3X+xl96JjvbuoR9v/WLv - 7pcz+TJ37+XgIqO9uxLy/Xhg3b2XC5jYu/s2JfCHu/dyBDv9hdbgdvZ7ORbs3R2QcTRETh/SEO7e - R7MfYncUUx/fTLJ378Gtn6b/P8hPbqCXY2QqaHknDG30pcCdb0PCX5EehWjR/cmbp6xHA/TjrSF2 - 4QzYfaQT/8Gtnw7ysp3z87ag7sU5W9mUJHRe5tS5iVNoeW7RQdzhV5U8NZW0xbNpBYb4cnIEsIQo - WK/nkarAnSRFbp7tchAInn21RPCjkHB16EUhEhwHoaWlKY8wEtJ6MtFuFdiygzOA5e/zoMpr0JZA - hWt/5em/6fnD086BXb4z2W5SEATuxEcQA9xZJmTqwSc2mmR+SmU/oVDeV3r0GsE+dCnckF19Hw0J - DxlsAH51eIi6hLjhfdQhkM2IXHYceAy7yKPBIL7MK74aXYQIpCXJRP3iFmQozuQIDmE6liYJAify - fBZbZT5B0Me8J++CH6q6paT5ghPcs30ywh51sWA8Zk2seBbVlNRMyTVVsbnmExmZsntqdbIpWpz0 - Wj6m80trhXOytODTi9JWstgR2a5PA48EPdGvKqaCfHyS/ioWFDTEwP6gqvz7Xx9+9e9+ffjVr3O/ - PvzqF0pM0gQ36k6fJX848ZkgVWWW418n/SCNOLSgzPTBxFpKLyL0lUmm3mIO39DDDukzzyW8quRy - OeVcW3ouW6WeW4Gr2XRwxZa1APdVuSx9gguZnPJSNj3l+Nt/f2D/Osz/+tc//GjeLxZ++oUyWfu8 - FTNcVvhc/J5JJ08Pnp9myyu2+RVYPLiejfDwPgqYQIIxdEwodxGEo6dprOt13EschseMu6sNifTr - C/traRbUTDcOU6CZriyc25UTFOd6bB71TfRDduV9IYcrdawnTkBxePLgfJeak95hnx0DmhNa0hdJ - VtaifSFjEtuSuQ0OHxOQQlZAVhcGtNiDhSV5FbOdm7BBnsK/j0zNGp48SI7i30dlDZiS1OupnDh4 - KJx+Yn9DKsiAjKtK8Sl52XpVOKrBf56INwOrG9aPT8eP3rw06ONX3xCv1iaHz18pacaF53WwM6iS - APzERtzmRzz/zCwkQTkxR/E+j32kKeszYIkrH/e11BJ1EcQIg4GlQU/uyKgqT+NfIGPnOv4TH3/q - u6ReVWZmFWtREOesadWUBInHgTSjKb1wC62HxzD9g4jvkbyz8xiD0UeEc8YRbCiXt5zGFHB5qkpu - GV9npgIXeTCxrzznviz6ERfuKIjb+Ih7kLoi85rag8pVXVnNffBiT+9jutJj6/gOwAcAhfKIrONG - SAMncQSSpvk5kLgzh8DH1N2nWnWPfWbjINkwnFf+CSvWVP63rlr5e+zSuh72Ds1p+sxY1ywl3Vkk - pd5joQAm/YaTkIiv3wMjqjpQ7lUD1mWex47tNuM9JhDshEcpR79OdtxtxUQk7xKGJKxdzqzENPok - zq6G1yTtbj1hJQ0eQ81XyVdwhu0YeazXI66cb50bnPo81kBifHlTYKfTyDX1f8KoiyxAWhqlnjdi - U4n4qNpfFvdbVueiQNEIc5S4BC8GqIq62AvJg1vwGiDNv5NhiUMiouHse+58yz1URXfTHX3Hx8e5 - HmM9j8hNfRO/Q27Rexd+3feqJLgbV/ZYD3qniiBKlXbW3XuTwpRLmQ+SV+lHnGRayBj/TPlsI/DN - tInhsdtI5H8vKU21xd1795M3qYq7e29JjYx+SWpklKKsMYnAgS26G8fOwj47DnKdMCcLZqJnZCQg - gBYjD5wlI5HjxIODCY/krsgHt2gX7UHhF1UURJ6H7tyBb3Ogjpa9y0FMQvA9VZmwSMnFHv49VK1W - UeZ9GjOcDfvcvZcTuBPjDXyLrzJ8cOunzLfSVZj/8KcpvReSCxR9MZUxiUWuR0QsrXtSyhJeTtyS - u/dyE2dkL1OYQfpj5YBb8g0B/CbfLwQ0J2MCwm4PboVEvJKil0Y2z2k8kbUV207G1bmNp2THGm5v - gYsgKkNORiQQzTh4Di3EoywXK7G9u4kavBuXJKMj54Th3t1ESd29j+6CmoJPfpEDJ3Hv7vwk/B0+ - qep376M0IhwSTrFHT8nevXs57B3jcZjBj5Mw7WVOQlStIh1+e8yJ/VxOAKs94C2QjIgXElk+g7m0 - rB/BuwMxQSl5k4Dzkq5Zj4GxklnGwKl6uZ4MnMN8wsAL8F7CwBndH8t/XDjBb2Y2KGU6a1qWDZlp - 3cz7KcZDzoYSLTkVu3sffbGXjJI7d6ZmC9TrT5PFhIvM3fyyiGDDeH0CtqfhPnH37qbx1ruxyORc - zoYQok0mPnfvTd48YiPC9+aWMg7yccQ/+ZmBR++j8D5i91HvPuL3Eb6PfNmXb+8+lHayFmBvLKgT - vui8g7WYH1AV8Qe36FsOT/LPb387pzL24HXufVKeew9fvP3hXm4Yhf09zHuRDCPfu/XT/fgDMCQ6 - +p9QQI7lYXyAPUZVFOYcuO+ZtDwCNfbYvfu+fN0jInkX1sdHuPcc+2SP3Xur/fDgFs7hcBw40CT8 - CDk89h7c8nNDDCx8zlySo0FIuKiTLuNkT9J866d7e8c0cNnxfeQyR6J4H92NGQait+hCwGXJMW+k - MzH99S6ECj0MndXDe3djKuDdtzXV1Mq6qakW/IT5RvpRSAIQpbtD3CMjSsBAZboPTgWwD75QVaTl - NNNAqmr//yMwqLctswEA + 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 + JgZ0YrZo8YtIvc1/AAAA//8DAByK2XzE+AEA headers: cache-control: ['max-age=0, private, no-store, no-cache, must-revalidate'] - cf-ray: [34d737be6b831a99-DUS] + cf-ray: [3ba7f87a6c541adb-DUS] connection: [keep-alive] content-encoding: [gzip] + content-security-policy: [frame-ancestors 'self' torrents.me] content-type: [text/html; charset=UTF-8] - date: ['Mon, 10 Apr 2017 16:52:39 GMT'] - expires: ['Fri, 10 Mar 2017 16:52:38 GMT'] + date: ['Wed, 08 Nov 2017 10:50:18 GMT'] + expires: ['Sun, 08 Oct 2017 10:50:18 GMT'] server: [cloudflare-nginx] vary: [Accept-Encoding] + x-frame-options: ['ALLOW-FROM https://torrents.me/'] status: {code: 200, message: OK} version: 1 diff --git a/tests/providers/torrent/zooqle/zooqle_daily.yaml b/tests/providers/torrent/zooqle/zooqle_daily.yaml index b81d6045e2..61de161880 100644 --- a/tests/providers/torrent/zooqle/zooqle_daily.yaml +++ b/tests/providers/torrent/zooqle/zooqle_daily.yaml @@ -3,331 +3,390 @@ interactions: body: null headers: Accept: ['*/*'] - Accept-Encoding: ['gzip,deflate'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] Connection: [keep-alive] - User-Agent: [!!python/unicode 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 - (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; e51c8a30-c49a-11e7-aacc-1c1b0d9d2a41)] method: GET - uri: https://zooqle.com/search?s=dt&q=%2A+category%3ATV&v=t&sd=d + uri: https://zooqle.com/search?v=t&s=dt&q=%2A+category%3ATV&sd=d response: body: string: !!binary | - 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 - ZoPKvAEA + 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 + G/oBAA== headers: cache-control: ['max-age=0, private, no-store, no-cache, must-revalidate'] - cf-ray: [34d737b95e2d1acf-DUS] + cf-ray: [3ba99efa3b371a81-DUS] connection: [keep-alive] content-encoding: [gzip] + content-security-policy: [frame-ancestors 'self' torrents.me] content-type: [text/html; charset=UTF-8] - date: ['Mon, 10 Apr 2017 16:52:38 GMT'] - expires: ['Fri, 10 Mar 2017 16:52:38 GMT'] + date: ['Wed, 08 Nov 2017 15:38:44 GMT'] + expires: ['Sun, 08 Oct 2017 15:38:44 GMT'] server: [cloudflare-nginx] - set-cookie: ['__cfduid=d25cece191c1f469e38a1b93007682e271491843157; expires=Tue, - 10-Apr-18 16:52:37 GMT; path=/; domain=.zooqle.com; HttpOnly'] + set-cookie: ['__cfduid=dc5a3ca6ea5d0a08dca7e76e156c12ae01510155524; expires=Thu, + 08-Nov-18 15:38:44 GMT; path=/; domain=.zooqle.com; HttpOnly'] vary: [Accept-Encoding] + x-frame-options: ['ALLOW-FROM https://torrents.me/'] status: {code: 200, message: OK} version: 1 diff --git a/tests/providers/torrent/zooqle/zooqle_test.yaml b/tests/providers/torrent/zooqle/zooqle_test.yaml index 898db30dd2..a04002e32c 100644 --- a/tests/providers/torrent/zooqle/zooqle_test.yaml +++ b/tests/providers/torrent/zooqle/zooqle_test.yaml @@ -3,37 +3,37 @@ daily: RSS: [''] results: - seeders: 1 - pubdate: - title: Wolfblood S05E07 720p HDTV x264-MORiTZ[rartv] + pubdate: 2017-11-08 00:00:00 + title: Homes Under The Hammer S20E19 720p HDTV x264-NORiTE[rartv] leechers: 0 - link: magnet:?xt=urn:btih:27A38528BE3067CF31BB4A0687D2111F21752D8A + link: magnet:?xt=urn:btih:60C628C2BBA16D83E0451983C0973F8DC02DEF11 + size: -1 + - seeders: 2 + pubdate: 2017-11-08 00:00:00 + title: Squidbillies S11E04 720p HDTV x264-MiNDTHEGAP[rartv] + leechers: 0 + link: magnet:?xt=urn:btih:1801088BAAF2801E21F2526213F61B26FD0553A6 size: -1 - - seeders: 3 - pubdate: - title: Who Do You Think You Are US S09E06 Smokey Robinson 1080p TLC WEBRip AAC2 0 x264-BTW[rartv] - leechers: 2 - link: magnet:?xt=urn:btih:D97DC832D5582AD1E45F1C4522F4DF77A7861339 - size: 1503238553 - seeders: 1 - pubdate: - title: Who Do You Think You Are US S09E06 Smokey Robinson 720p TLC WEBRip AAC2 0 x264-BTW[rartv] - leechers: 1 - link: magnet:?xt=urn:btih:69DA3EDC834356D6C2B0A4836F9518BC69CA9DB0 - size: 1017118720 + pubdate: 2017-11-08 00:00:00 + title: Squidbillies S11E04 HDTV x264-MiNDTHEGAP[rartv] + leechers: 0 + link: magnet:?xt=urn:btih:9D6D689B06FEC9EF14F08C69D9BC31A9368DC242 + size: -1 backlog: search_strings: - Episode: ['Arrow S05E07'] + Episode: ['Chance S02E03'] results: - - seeders: 481 - pubdate: - title: Arrow S05E07 HDTV x264-LOL[ettv] - leechers: 30 - link: magnet:?xt=urn:btih:AF16348EAF93C015C9F16B0807C24635406B4FFD - size: 283115520 - - seeders: 98 - pubdate: - title: Arrow S05E07 HDTV x264-LOL [eztv] - leechers: 13 - link: magnet:?xt=urn:btih:FAD7F4837F0B89B22FDB2F290274CFF52B7B820F - size: 283115520 \ No newline at end of file + - seeders: 63 + pubdate: 2017-10-09 00:00:00 + title: Chance S02E03 WEB h264-TBS[ettv] + leechers: 5 + link: magnet:?xt=urn:btih:029AD775FD366536F19CE4F526958C1BFB1F1CFE + size: 255852544 + - seeders: 59 + pubdate: 2017-10-09 00:00:00 + title: Chance S02E03 WEB h264-TBS [eztv] + leechers: 46 + link: magnet:?xt=urn:btih:3E0044197C6FFD4B410FD924D7ED8467E01812D9 + size: 255852544 From 34dffccd42e4d01e17165fd4b07deaefcc542804 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 10 Nov 2017 19:50:28 +0100 Subject: [PATCH 09/25] Fix post-processing ignoring files in subdirectories --- medusa/process_tv.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/medusa/process_tv.py b/medusa/process_tv.py index 87afd4cbd2..ad90f9aea1 100644 --- a/medusa/process_tv.py +++ b/medusa/process_tv.py @@ -27,7 +27,7 @@ class ProcessResult(object): - IGNORED_FOLDERS = ('.AppleDouble', '.@__thumb', '@eaDir') + IGNORED_FOLDERS = ('@eaDir',) def __init__(self, path, process_method=None): @@ -149,7 +149,9 @@ def process(self, resource_name=None, force=False, is_priority=None, delete_on=F if not self.process_method == 'move' or (proc_type == 'manual' and not delete_on): continue - self.delete_folder(os.path.join(dir_path, '@eaDir')) + for folder in self.IGNORED_FOLDERS: + self.delete_folder(os.path.join(dir_path, folder)) + if self.unwanted_files: self.delete_files(dir_path, self.unwanted_files) @@ -200,6 +202,12 @@ def should_process(self, path, failed=False): if not self._is_valid_folder(path, failed): return False + folder = os.path.basename(path) + if helpers.is_hidden_folder(path) or any(f == folder for f in self.IGNORED_FOLDERS): + self.log('Ignoring folder: {0}'.format(folder), logger.DEBUG) + self.missedfiles.append('{0}: Hidden or ignored folder'.format(path)) + return False + for root, dirs, files in os.walk(path): for folder in dirs: if not self._is_valid_folder(os.path.join(root, folder), failed): @@ -217,8 +225,6 @@ def should_process(self, path, failed=False): def _is_valid_folder(self, path, failed): """Verify folder validity based on the checks below.""" folder = os.path.basename(path) - if folder in self.IGNORED_FOLDERS: - return False if folder.startswith('_FAILED_'): self.log('The directory name indicates it failed to extract.', logger.DEBUG) @@ -239,11 +245,6 @@ def _is_valid_folder(self, path, failed): self.missedfiles.append('{0}: Being unpacked'.format(path)) return False - if helpers.is_hidden_folder(path): - self.log('Ignoring hidden folder: {0}'.format(folder), logger.DEBUG) - self.missedfiles.append('{0}: Hidden folder'.format(path)) - return False - return True def _get_files(self, path): From a2f15e03a0b925f79fba2fe11d041f8379033445 Mon Sep 17 00:00:00 2001 From: Dario Date: Sat, 11 Nov 2017 21:44:10 +0100 Subject: [PATCH 10/25] Improve logging for post_processor --- medusa/post_processor.py | 12 +++++++----- medusa/server/web/home/handler.py | 6 +++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/medusa/post_processor.py b/medusa/post_processor.py index 6591702cee..3646ec5eaf 100644 --- a/medusa/post_processor.py +++ b/medusa/post_processor.py @@ -1094,8 +1094,9 @@ def process(self): # clean up any left over folders if cur_ep.location: helpers.delete_empty_folders(os.path.dirname(cur_ep.location), keep_dir=ep_obj.series._location) - except (OSError, IOError): - raise EpisodePostProcessingFailedException(u'Unable to delete the existing files') + except (OSError, IOError) as error: + raise EpisodePostProcessingFailedException(u'Unable to delete the existing files. ' + u'Error: {msg}'.format(msg=error)) # set the status of the episodes # for cur_ep in [ep_obj] + ep_obj.related_episodes: @@ -1110,9 +1111,10 @@ def process(self): # do the library update for synoindex notifiers.synoindex_notifier.addFolder(ep_obj.series._location) - except (OSError, IOError): - raise EpisodePostProcessingFailedException(u'Unable to create the show directory: {0}'.format - (ep_obj.series._location)) + except (OSError, IOError) as error: + raise EpisodePostProcessingFailedException(u'Unable to create the show directory: {location}. ' + u'Error: {msg}'.format(location=ep_obj.series._location, + msg=error)) # get metadata for the show (but not episode because it hasn't been fully processed) ep_obj.series.write_metadata(True) diff --git a/medusa/server/web/home/handler.py b/medusa/server/web/home/handler.py index 97bf7a5b8b..f38c5ce50a 100644 --- a/medusa/server/web/home/handler.py +++ b/medusa/server/web/home/handler.py @@ -1621,11 +1621,11 @@ def editShow(self, show=None, location=None, allowed_qualities=None, preferred_q logger.log(u"Show directory doesn't exist, creating it", logger.INFO) try: os.mkdir(new_location) - except OSError as e: + except OSError as error: errors += 1 changed_location = False - logger.log(u"Unable to create the show directory '{location}. Error: {error}".format - (location=new_location, error=e.message or e.strerror), logger.WARNING) + logger.log(u"Unable to create the show directory '{location}'. Error: {msg}".format + (location=new_location, msg=error), logger.WARNING) else: logger.log(u"New show directory created", logger.INFO) helpers.chmod_as_parent(new_location) From c0c2a85e98f086a910d517b754dcf508861e8805 Mon Sep 17 00:00:00 2001 From: Dario Date: Sun, 12 Nov 2017 18:32:19 +0100 Subject: [PATCH 11/25] Add anidex & fix pubdate tests --- medusa/providers/torrent/html/anidex.py | 6 +- tests/providers/conftest.py | 4 +- tests/providers/test_search.py | 18 +- .../torrent/anidex/anidex_backlog.yaml | 144 +++++++++++ .../torrent/anidex/anidex_daily.yaml | 231 ++++++++++++++++++ .../providers/torrent/anidex/anidex_test.yaml | 39 +++ 6 files changed, 428 insertions(+), 14 deletions(-) create mode 100644 tests/providers/torrent/anidex/anidex_backlog.yaml create mode 100644 tests/providers/torrent/anidex/anidex_daily.yaml create mode 100644 tests/providers/torrent/anidex/anidex_test.yaml diff --git a/medusa/providers/torrent/html/anidex.py b/medusa/providers/torrent/html/anidex.py index 434d9c2e1d..cd10a32ae2 100644 --- a/medusa/providers/torrent/html/anidex.py +++ b/medusa/providers/torrent/html/anidex.py @@ -9,7 +9,7 @@ from medusa import tv from medusa.bs4_parser import BS4Parser -from medusa.helper.common import convert_size +from medusa.helper.common import convert_size, try_int from medusa.logger.adapters.style import BraceAdapter from medusa.providers.torrent.torrent_provider import TorrentProvider @@ -120,8 +120,8 @@ def parse(self, data, mode): download_url = urljoin(self.url, download_url) - seeders = cells[labels.index('Seeders')].get_text() - leechers = cells[labels.index('Leechers')].get_text() + seeders = try_int(cells[labels.index('Seeders')].get_text(strip=True)) + leechers = try_int(cells[labels.index('Leechers')].get_text(strip=True)) # Filter unseeded torrent if seeders < min(self.minseed, 1): diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index c6d39e9b2b..373d98662f 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import thepiratebay, zooqle +from medusa.providers.torrent import anidex, thepiratebay, zooqle import pytest @@ -15,7 +15,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (thepiratebay, zooqle) +PROVIDERS = (anidex, thepiratebay, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/test_search.py b/tests/providers/test_search.py index b8b8892797..938c3242b1 100644 --- a/tests/providers/test_search.py +++ b/tests/providers/test_search.py @@ -2,8 +2,8 @@ """Provider parser tests.""" from __future__ import unicode_literals +import datetime import os - import vcr @@ -26,10 +26,10 @@ def test_search_daily(providers, limit=3): # Only compare up to the info hash if we have magnets if provider.data['daily']['results'][i]['link'].startswith('magnet'): result['link'] = result['link'][:60] - - if provider.data['daily']['results'][i]['pubdate']: - result['pubdate'] = result['pubdate'].replace(hour=0, minute=0, second=0, - microsecond=0, tzinfo=None) + # Only verify that we got a datetime object for now + pubdate = provider.data['daily']['results'][i]['pubdate'] + if pubdate and isinstance(pubdate, datetime.datetime): + result['pubdate'] = pubdate assert result == provider.data['daily']['results'][i] @@ -53,10 +53,10 @@ def test_search_backlog(providers, limit=2): # Only compare up to the info hash if we have magnets if provider.data['backlog']['results'][i]['link'].startswith('magnet'): result['link'] = result['link'][:60] - - if provider.data['backlog']['results'][i]['pubdate']: - result['pubdate'] = result['pubdate'].replace(hour=0, minute=0, second=0, - microsecond=0, tzinfo=None) + # Only verify that we got a datetime object for now + pubdate = provider.data['backlog']['results'][i]['pubdate'] + if pubdate and isinstance(pubdate, datetime.datetime): + result['pubdate'] = pubdate assert result == provider.data['backlog']['results'][i] diff --git a/tests/providers/torrent/anidex/anidex_backlog.yaml b/tests/providers/torrent/anidex/anidex_backlog.yaml new file mode 100644 index 0000000000..ec54c6cee9 --- /dev/null +++ b/tests/providers/torrent/anidex/anidex_backlog.yaml @@ -0,0 +1,144 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [PHPSESSID=heovgdqqo2386dkdhmbjo142v2; __cfduid=d0562517d158f77851365384f94a619ab1510506403] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; dbad84c0-c7cb-11e7-9098-1c1b0d9d2a41)] + method: GET + uri: https://anidex.info/?id=1%2C2%2C3&q=Dragon+Ball+Super+115 + response: + body: + string: !!binary | + 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 + AwDLrNYYXaYAAA== + headers: + cache-control: ['no-store, no-cache, must-revalidate'] + cf-ray: [3bcb15644e2d1aa5-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Sun, 12 Nov 2017 17:06:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/anidex/anidex_daily.yaml b/tests/providers/torrent/anidex/anidex_daily.yaml new file mode 100644 index 0000000000..5a6c82a35f --- /dev/null +++ b/tests/providers/torrent/anidex/anidex_daily.yaml @@ -0,0 +1,231 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; dbad84c0-c7cb-11e7-9098-1c1b0d9d2a41)] + method: GET + uri: https://anidex.info/?id=1%2C2%2C3 + response: + body: + string: !!binary | + H4sIAAAAAAAAA+ydWW8rSZaYn1VA/Ycodk9R6hLJ3JOkRBW4ivu+Si0IoWSIzKtkJisXLb0AVWW/ + TRvG+MljwPNkAwM/jA3YBoz2NPxjbs/y1n/BiFy4SKmVSYmsylt1r5SZsZxYMuLLEydOfPnF4VeZ + Wro9qGfBWJ9IR19+cYh/AgnKo0QAyYGjL7/A9xAcHn35xc7hBOkQCGOoakhPBAz9MhQNzB+MdX0a + Qt8Z4nUi0A91kqG0MplCXbyQUAAIiqwjWU8ECtkEGo7QQjwZTlAicC2im6mi6gtBb8ShPk4M0bUo + oJB5sQ9EWdRFKIU0AUooQVrJfBUKgfYYAXihXCNAAzNZHY408KuJoem/AoIyQeBSVDUdiDLQxwjg + Mh0AKN8BRR8j1bx2cgY4khXnV/BSR+qvcBQNWUmGQvdFh4Y+VtQFwZOymEG3D4o4RJqgilNdVOTF + wEBXVBVnq6tQuEIq0KZIEKEkaqI8wvI6Yl2qygRkoaaDpCZCXBeCZAxxICiLE7QPJlAewX0svijs + Azg0JB1ci0OkaADKQzBRVBR+INUVurtR1KG2IJItkLYPLkTdvtgH818sOffvZfsJXu+DoXIjSwoc + mg+H6BY/HclId35qD/IfKcpIQiFN1FHoGqnipSjAe1U0KpcENqXQZN8ojoyrdm3KqlOYk25LnJTX + FHjN5+tsOdYbipUAiOAMcB6SKF8BFUmJgCjg5MYqukwEIpfwGl+HRUGx+vfOoS7qEjqyWg0cRqxL + 6xHuWilF0TVdhVMgKCoC6VbL6QRmFna6F06oiKBp86swGRY07dvrBE0FLGk0/U5C2hghfd57c4qs + wxukKTICI+luOsYias9nc6nIesiMOEHhiSjjvJ7IZl4SDUlI0F9ZlpAV61UZCWMkXF0ot6/Nyon3 + eEZOXmlD05UJsJ6CS0UF+ljUgI4mUwnqyC1T6z3UzCz1MZogu41Y15ycjPLtSpkF2licmK9TE2lT + RR6GP1mZFrJRoBlTPIYB5dIOjCQ0wW+S9f6hoQjBdwZSRTRr269CoVPxEkg6KGRB7Azf2zm05AOa + KiQCeFjV4pGIomnhCbwVhnJYUCYRPFCz2li8jtBhPkzNr83W+aQFjg7tYr44SdUqUIQMM2HKuXJN + 7vCrUyQPxcszqxBffnEYsSeJL784vFCGd3gqmQUHYPfSkAX8Uu+K+9q+sj/aV/fh/mTvt+Jp8Nh8 + /5MylO50UdBqF5+QoAfPEuqBeKqeJfA/v/vdLP7eb8308N3wdwnrx+9+d3q2F54a2ngXqiPDrPC9 + 3++bD6UE+SsZ3YAM1NHu3gFMaGFBRVBHWatldpW9fZziJKGFR0i372qpuzYcVeEE7Sp7p8TZAQxD + 7U4WEuQBDOMqHB1MwlOIh8OqMkRhUdaQqqfQpaKiXVwwnOTv93ZvRHmo3OwPFcGUaj9o1UlwP+g0 + wc3NTdgeAaFTBWZjzK8+acH94AgG9w5w9QIwgrtBqwzBfRDsJEOxKEvyUZIOkfgGNHTFDGuF1JA8 + xLencITwHGsns9yaeAQSb9EQyPD6AqpO35ThNRAkqGmJgP3A+hEaokuIJxf78hLHDenKNGD1taE4 + i4fHcCjKSLUeLT2zY+OeM3u+c3hh6LoiA/1uihIB6yJwL4aujEYSAoIiSXCqoWEADKEO7ds4T+u+ + cxuqI8wrv7BiBwBURRhCt1MoD9EwEbiEEg5r3sXiqoo0y8qRaudQm0LZEUNTQ4os3QWO2pYgMrwW + R+akdRjB4Vwj4RE9ZCa5pkCHEau2nEt4r9YuVCgPA0AcJgJjZYLOnbq1x8SAPQEeRqDdVJGheL3Q + ajiiU4XLKTsVPmuRWWMa0kJQp7vI8DrgpHaOh2UbCiTRvCspI9FETwAAwMWwBbTuA3N2TgQGigFk + hIZAV4CkYE4KB44Wqyl4CcElDBlTjCP4t8uboNXIY3E4RHIiqKsGCtrpBTtmuKBTpWCpxmV4HZLg + BZJCsRgVOLLC2iGt+sKyHkYk0RoOv/wCF8aObJV1pCrG1C7orEjOTTe5NaRqz4t9bKbwMrGtsEti + 2yK7SjxWNF2UR/dEnt11kVnTofq8yHkrhWdlJhmGCBzZoV8g9VBVphg/lwX+ReD+c3ucuDdozGID + VZEWRh6rHFCbKlNjmgjgkjwygtjz7INaEeVLJSSIqiCh5yunIF8qL6wZHNQ1oABVDC6zwcHqm+Zb + vfBCzqpjgmTDFt7qvzvz2nOmqUtFNSZa2GL68ERBAeAMq+cXEpSv3PuwLF4jVRP1u+cLnjNzmBfd + unYGI+fVekTEeCRyOxSE18o3htpYh6Pnhetn0um5aPjKTbDl1wdeKIbuDGP3hjL72SOd5Xl5kjj+ + XCDzcj4OLY5FD+USxlAeIUkZPSLbwnMX+SRR05+XL22mgcfluZDze49L6iqRqArxSERUhbAq/kaR + wzLSI1ZDr9aoheZCmxaa6ZdWoGpISHuk8uxnb664Jo4/l8q8fKlc+A14RCzrkbdvAOUu12HEkJwh + 2v4dk8A84CzCY2zg/KqKo7FuFQ1PhlhbEDjasPH+kYk7pIsT9ILZe1ajO0/O2wbS9BeM9C8Z420u + u993bOa6D1uuk7w4kkOi/IrCgbLJZ1g8s1sA1+6L0zWmizLM7jwUYopkQZReI0NLHMnAmM6EwDLY + PfFer8U/POq308niC7mUins/Bo/8+SicefDxYdc/kq+RpExfADQVpGlwhLQXQk0FihJ4EdXYsi0N + Qk+01YNXATzx50HnnNilWOyeC/e8rSDnzkJffZWw+JP/3JZu6X1avu/JW4Xk4QvEtF8o90cO0e0s + vXbmjUtFnVjfIudWxz7Hd+5/fpqhll6++Wezpea0w+OAzie+rQGdipbKfazchHRRuLJfI2vpIUBS + xPQ2sCRBwFZbz67nXVExVfvgGkoGSgTIALDSmqmx8+IQLfXpoNnzgdX/hxiP1OBRk4x+Y1dv4MiM + Yt2xUn8sNyJgFwgNj1pj5QZASXouDvVAwpos3b1SQjOKm4SHEUugWePi2l8YVZcb+DtDFK7ONQRV + YWw3sjVwWbeeb3IATQWhqchwJFjQNYny1NBD5vd24MjuXjuzEW7x4tAMauufdHSrB1y7z5LAZpQA + mEpQQGNFGiI1EWjgAMAR3+o03wUeFtaOa7dJAMxba0nnM5c/dKHLi6OzrTCzA17oMrjQZUdFF7AL + ohkXE1F3yd6eGFxnejMEeNFIcE/5ZDb/ov5qrktyesLyMPBwcFjQQWEFZSSMp4qZpsnSUM7TPYzI + 8NrW1buqH+3uNIHirPJscRaCQwmpOjD/tb7ErF+HojYRNQ2vZALcI0ICkvV5mmagJfI2W09XFXl0 + VFV0UUBgtyboygVSAUnuxQ8j9kOQUyRJucFLeHhRUkPqNVLBRLlG+wBNoChp4EJVrlAYtPGShqgB + WbkBprp1H2gKXr/Uxzi2ivBSh6kMs+PJig4uEH6m4bVDbawY0tCMfoHAjaJeifIovNgsM82t+ZFo + jQh2TX35BZ5I8X0dXmiBe/gTMm/aGryF6eZbrHJO2C/A4/0rNJUME5Wl0ZOfvMNrKAtoaL9RwUXo + nSveTKy0WmWqIlxyZy1xcYIk7FHeXAwhFqfIbwNHSTxwuqcZXEwz6BQGDzzXKIhTDpLBecpBcp/a + p+0bTinwimlwlmHwW3GYsIIdmY9mOT+Tp5UbtZgbs88u51UWrxFImqPivRxx0KOFx6/LlV7Mlbuf + 52isg6pyjaR7eXI4x9nD1+XILObI70eX86zg5ed7ueFAR+aD1+XELuYU2yeJfZK8lxteXL+XmxPw + yHz4uhy5pR5DLWd2DCcmGC51Fyp4ZN5/XT78Uj73u+V0KtnL7g+yw11z4fHrco0u5cos51oXBd1Q + HxaQCR45j16XW2wpt3uvQ9I0h+hic4j7GbLBo4Wnr8uTJJYyvfc+1LBxyf3suOCReX+WEdZe3FNX + WpomvPTtaJY0LfKtAHVruHDGU3OhOhGYwiG2A4kDbnoLSGp6ezCHFnOoVTVziKVuwdSQJIeS7ynV + Tfq2/tu5N4/q8EJCIWtJWBOvHWW3eXspDLBCaroqTvF8ZF6NFTytWb8LijxEMl60s/W4umNeZF6o + M2LQx7OEF6dch8zJ2NRd/3dp8ldImaIX6CjSUEcjRb1z/zq1UxxJysULPuTKUB4ZcIQWpiZ9vFgc + W3SaMCVffuhaElFCT9JXTpQQBsulyXCmKwhGvv0u8bUzwXytJS7t4F8rCWyKFHSdk7H5wlN5tnCA + jBV9cQZeLurDlgP60NRmObUQJR5pP0GZWCYTT7abHejJdtPHxuRCCykhY/pkYmXxauHz+/mizMpA + M4+UwbGCejLbtmVPdT9j14/kN8ph2Vw9KUXFDPIiIb4KhV7Wto/K46ibX6xpNsWxWf/FXYt/rGuN + h8OQ8uwbBTTxN2ihYz32OuFgG/EqMY++SpIiXD1T4uToJWW1VtHPTbW2DifTr5UEfKLYIdmYIFUU + Qrhynq+D5CuqQDMEAWma9R1mf/o/Vw9QVZUbewn2+eGghdAQqdpLeoAV8p07gaWGWaUC8PD09IiI + kDB+WR1IdtB3rgTz63xeBbNXwvU1wKaEz00nUwnpaPiCAgtO2PWW+DDisBC+OUOkQ902r1tSX7nQ + 09BtwsAgaiOjoEiKGge/IAhixpgmnQaOTPCzggUXgh1Y9a2N4VC5iQMSo6b9Vx1dwF1iH9j/h+m9 + A2CapuIxMg5Icnpr37hBuLni4EKRhgfgAgpXWKclD0NORrHL2IHVn+MAM8IBGNtRyCi+GoraVIJ3 + cSDKkiij0AUe4w7ANVJ1UYBSCEriSI6DiTgcSsgW2b5nVcIBmNEyAWic5IWiYmJU4VA0tDggiekt + cP7iiwP74xyEQMu4sFVSuLXEycipp1eKdS9LJ6dZ3gdB01IzGBEneCUgcinBkRbR1fBUxloSSU8E + 24Z6JWrjOU441xHcjYaP9QQJXepgcSQNPP7KmMi7FPjJmcQ0gxe1hbfoniCPgMWCqZptY259/sQY + PsrNOqf9KGLdfSype4Z6UyhbC0uO2dhpF+lIhXLLuNDOzlNQklRFmZyj84FiXCmach46J2PnpzxF + TM/OT0mBp2liiM7Ck6vrwNEKkZeMcR5dJnkgu6zoHyx/OBx+VvanF+HcYzzeQ5cG9KPHlyNmXdLu + fySQLJD/hnTvfo+NiHYHG0pO33qK6J9VVD7EeugI4o72z8hlMXz821s9Yahy/EIXx3H++KTWaFfT + DFVOcvSgVCimy2wySeWylXZ+kKp+rasJ2y5qbhIV52JcLAJlWTFkAT31vfBsGR98NDxdRPPDYfgE + yR65rG+b/d96+KTdytOS4q8JEMKbeUxVuKLIXz0Ue/ED40kxqRgLKqnnu9UMR+y3liJIPkSSIZIC + JBenmDjFgU47HThiqMlTqbnBrp1kGe8DMqZDrPbHM6wWOAL0U2m5YOPjSVFPpfQYe9nJkWEGHKcC + R+z90d++XuCbObssLMX5MPOzgJnLRZjJqUgW5izjXP6kUIZyRRnq7SiTQZd4OySS7qqKXkFnwGzY + EdShKmogBAgOdGutdq4JTkkiSkwdCnhTPM8AZrOkXi+6vIU/qC3gjwbbT7XZerqfbtLpHpfOcf2T + Cpurp3INfpBJ9X3+WA9/sCztAX+QbJwmLP5gSW/4g5kEjgDJesEfOCmSWIU/6DBhAgjF+ATiE4hP + IDMCIV0JhHwXAjGVCq+fymfRPoI/1i7z5tEHuQX00al0ikw52aMrhRJfaRbarVatWKmyvUGzfMJ0 + Uj59rEv74RF9ONoPr+iDMumD9II+cFLRFeCDc9iD9NnDZw+fPWbsQbiyB+EhexQmiqErQIMIFFR0 + AUFBDL9Gn/Ca+OujkfWX4uNXdN4CJsQWgEmqPDjJFjvVajVJd3vpep9jOmXmuNrpJAudRjbrg8ma + 1CIM4xGYUN6CCYvBhCK8ABOcFMmvohZhwzETTWjCRxMfTXw0cdCEj7mhCR97VzR5UtXwiugfCSYr + lmEruQR3k43nkjpTPqZaxWo2n8s3ap1uv1vr0MkOVaOS1Ua61fS5ZD1cQlOsN1xCRtfAJSTnGZfE + VuCSaJiyNCbcx2MJ9dFYImwyljThzQdiyafpApYU4RTKSJu/uPMbPyk04V3RhH87mtTGd1qoCW+0 + M1CbiFAESVFH4AaCmjYW0UjZB23NuFOuRCDDfVBR5CEUP1kzNQ92K31AUlHilqcIcEtxDEgm03vg + mgpPpkzgaI2Je4Y1m1b+7YQefgugp8/lToqdAtUptbN0vkGfJDu5Xr/SK/VyDeo4z/vQsx7oYcgw + 5wX1UHHa0cYwHhqpRBmvjFQ4cgXqcZQxJLMBRio+9vjYs1HYw7piD/t27Om06qCZ7LXOQMZAEqhA + TcfulfGQA0KApsFpNkbGkjmOdhQYr4zhGaB8vKSbhxvsFuBGs1nvN/hypc1Wa/1qOZflSs1uLp/L + dHqtZqfgr/2sa+0nyntAGwQTpxiLNsixZ7Dh5hfyVpDgxHQkE9JVEcojx6fYDVRlUX6y5qoIDTWA + fdEs7lQmvAIaZhWeMZshcOSbvfhrS0/QzOhigWay8kha3ME8u/5JsYzrth9+hW0/WRWKIdXUMuRF + c1XlK9CZQNUIYdftoGmtqiybibw6jmc8sxnS/pR2KPPbsEPopNEpVzK5aqvcKPXKmWa1nMxXm91a + tTlg+9zgxMehNS05casrX9g4y8YZ2nMcApRnG4Siq+0PslacaN6HFR9WfFiZwwrnut7E8WuHlUXT + kddGeW9UWausG6d84bZhrYfJtwupbolq0J1MtVKrtpvV41KaoxvNdC5f6VE+bayHNshozAvaoOM0 + 6T1tMJRn25HZVXCDDEdN3OD87cg+bjyBG5PbBdxoTaEsamOwW062k5W9ud/A+/d/UvhBu+IH/Xb8 + qBt3EHs7+8rVAHVxdj5lotEUmY1lnan9rVE9w5H3lX0rDVE4ehvgpEznWsl2LnnMFTvJBlNPJalk + KlXq1Si6Xmwd+3CyLutbxgM4YYg4wXoPJyzpFZzQK/lqi4Z5y1lbzIcTH058XcgCjLh6S+FIT3Qh + j++GsVc1TiuGpItTCeF2NxNwUTm8NZV1aEzet0TbSSvb4FylXmil6G623OPZRqtQrHKZJl/PcoVU + v1+l86mCTyvroRWeYT2gFZqPk7z3tELTnhnNrgArNBFmTVh5oNnxYcWHlZ81rLCue5jZ2LphxdIh + rDizP5XIO6OK9+XZSlJht2FXcz6V6rAZPt3K0lS2m283it0a3T1JV4p0qdWuDnxSWZNehaC8IBUm + TtoWt5SXJiae6VXIVbb3kESYs2xMNmBXs48qPqpsEKpEXVEl6gmqOGfaAATsM21ACJAxW3sAkt10 + aNDpMgxTJ4mz02womabPTik2RpJRNucyy6+e3joA5qNKuZ0sE90Clmn3e9V6rtnqpvqZYiaVKnK1 + Zjl/XG71G/1urV3zWWY9LMPxXqwR0WScWQPL8F6hzCorRIzt0NbnGJ9jfI5Z5BhXW1mWXy/HYN3C + IxM8Q/MEkc0lXzPBvzS5d6WY9ZZxOyFmG6xwW+lepcfkBgO+lRzQyUa1T1HH6Vy920xlWp1Cy4eY + TTZ0ock4xXoPMdFNWDmibBNc38jFhxgfYhYhxvV8ZZbzBGJqMgJ1EQm4YaMk/SpDkNfFXQeevIf0 + 28ki23BCcrOc50+6jQrTTPcbDFtsZ4rdNlXia1muUzqu+icUrolFYjzvAYtQsThJes8inm0/5lc6 + IciyuPU3H/ss4rPIIou4en1j2fWwyMstPV4V9V1IxHvZtxNEtsEvXKpT7hVa5dxxOV0q0APqpHhS + PWFbvUa2k6Ky2bwPImtyQ0ux3oAIsckrO+xKSpGYDyI+iPgg8gBEGFcQYTwBkYfHBr9GsfDa2OvA + kfcpwUcTiTPNBZf7wC8EZTJBsq4Fjx51+zZEl9CQ9AW3b49Esru9/TCkgKd6+tzhJ7kwKb4NnJht + 8N+fHeSZQaVVyZ+UuVIlzdK9NEdnk4Nsh6KYdNIHpzVtRIpFvQCnaJzlvQcn0jNnt/Qq1r2OUQwZ + 9dnJZyefnRbYydWFC0uvi51ergp5ZeR3Iifv5d9OVc42OHI5rve5eokud5L5SqfVz+QGjUE5xw8Y + rlFtVTr+MYrrsm/hWY+IxNs1Jdo7IqFXNHBhwowFJP7OaB9IfB9zTwGKqz9+lvLEx5zZyCG3SZrl + ojGCjHIuHtpeGGkdfuU+VN7Ng5BtcKzPlViu0Ttul7v5ap0v0SdcK1Uvd0vVYreQPqZTPoSsy8iW + 9ABCSD5OM95DiDeO9XFSFL3SUc6WmS3lq0V8CvEp5CkKcXUux5JroxB7jSWaJpJUJk2/cFp3i/Ve + HPKOEm8eiWyDp7hi42RQ4ssFij9hcvQgWeD5Tj+bz6Sq3UG/1W34JLKmEw8ZT0iEi7PEGkiE3AR1 + CEnbRrbUBmxb9k9X9k9X3ij2IFzZg3g7e9TGd1qoaa5SlIxPogqBrICSokJwA0ELflIMIIugo0PD + mqV3K31AUlHilqcIcEtxDEgm03vhyZQJHHmYmGek8tHl284lHWILGIbON1ieS2YKmUK60c3yVJ8Z + FKut5jHdLTCpTtdnmDVZ57JebFkmSa+tc02Gob1b0yFjq3iRo2OWhW405m9c9hUqH2BnsipqMK5u + aZkV3NKWoQTPQF0V61CFeFMLBU7bC7MtSVyI+mzOPTtlc1QsQ/CEoz5YKb5nQPEBpdhKhmC2wQ8t + 1aJy7XSn0SuWGnm22W9TFTpfqZ6U6RMmX+ylfYZYkx6Eo71gCCJOU2swC/GOIFYACAKkAkeErwLx + VSC+CmSJS1x90DJRT1QgTxwEvJtsh16mGnhjIutQebxrebYTU7bBxWyn3+NbebqZo/lmuVfuU/ke + 3ymlWz2aqta4pn8M4boMR0jOA0whYl67yzcxhSEYzyxHqFXczNJR2jZgZXxe8XnF55VlXnH1Ncvw + nvDK4yfZvHQd4y0prINU3q8k24kp2+BEtkiV0nmKSjOl3DFV67bYBjPIFNoM0+r0Mkym42PKejCF + 4lbf9svEKS5O25tsaC8xJRr1DFPYlbzhc5ZdCclHGR9TfEzxMWUJU1y9yTIreJMtI2UK1aE9O6ck + JA9By5qQm8ke2E21SPLxiX2F2N4t9bx3CT4eTR7zizLrlTO/KJJ4hbTg0Tekew98GdVsgzvafvO4 + V2rzlUo9W+2XjyupQbmcbKVbDFMt8oVq0aeaNSlfON4LqqHjFO891VCEZ1QTXWXbDkWT1hE/jM80 + PtP4TLPMNK5eaRnWK6YpK9cIlBSzdXvIumyKAgJV8UrU4JWxMNu3u62XooI3ya6Jgj6yzD87PNoO + J7mpWpep9ujWSbuWGZQrHH9cT1VTDTadqiQbWR+P1uTrLRrmPOAjkooza+CjmGdGNHR0lc1EvLOZ + iCZ9PvL5yOejJT5ydZbLMF7xEY03+GoG3iRTFhUZUHgSZy02qOZLxy+FgzemsyYCetdS/eyQZxvc + 27KVTDPZSp+0Mpl27Zjr9BqdZLM06LQYjqY6HX/39NqcycU8IB6CixO098RD8jHPNEKrbDyiKGvj + EUduwMYj+oOJh76kN5h4Mr6D2/flHVcHt8wKDm5LcCLmWmcgo8KRIpvnGIOWMUUqnssZApza9Yib + +szxcIJ/Xoj6GTjN0HQ0k6MoZ2+Ql8l5Rj8fX8bttNjZBre4+UK/326kOIoe5Ho008iV6qV2utoq + 1E/oarPO+CSzHpLhvCEZaraH2iOS4c21LU9Ahl/xiCOGtD3ScbSvufE1N77mZolkXD3hMpQnRsWW + b7bjRd9sL7XBfVXUdZgRv4Ps20kj2+Aft59na0mGLVVLSTZdyedr6QrDVYrHpXQu2+Kpuk8ja9Kr + RL1YSSLIOBH1nkZogvQKR8gosQqQMJapDUlyG+Aj1ycSn0g2ikhcveIypFdrSXnF0NCVaDpcM2QR + 7OLBZ2/B2CTZ7r905WWFtNa0pvTupfvZrSttg1fefqPODBpshaN6ZbrfrA2SNDdIdrL5ky6XZ/v+ + utK6vNGQq3u0o+NsLE6z3vMPyXFe8c9KDu2oqHVMEcttgF9ef13JX1faIPZx9crLEO+2rtRDF6Gm + OF1YfYlaiy/RDMeRLJl+4+LLy9L9qJWmdZZ6O5U82+C2l6qUC9VUM9OvVU/6hXaxUKIb6XSJaRQq + x818JedDzrqMZ7yAHCYaZ9ag5CGjXjHOSmdDY5Nqk3F8Y2FfwfME4lyqC4iTU5EszAnHuXx/j720 + q8de+u0ee2syAnURCQi0yCjYrUPhCnRzgGd4AAEfpQDSQbfWaueagI/SAIIoSWNFQ3qsihq25Fwx + Aa/A4kPK4QFBPKojmariBKp3sz6XgrowDh6l7Aw/AD3obfD2W612262TVLlbPcn3+60Bx+ZTdGbA + NTtFpp8tJX30WNdObnNeXZk9qDjpLXuwMQ3bu3jBHmZSKx0YwNnwsQHs4Z8X4B/AuLnqFsrVjJei + PTmAcT7Vh/AsPjuVkEnmkjQTczvL8EVR1nH04ofJunGaD2objG0bVDZ/km9l6sU6XS3nSgOOb1ez + lT7Vz6V6yZTvSGZthy6u7kiGilOxOGkfush6qPlgCM+sW2Ir+fANEyZ98D5++Pjhr+4s4oarrS21 + gq1ty5iIKjoDLYhkKII8UhVRRthgo6XgF/oK6hDkJKiDEOgqUhgQFDhNZYA5V9sHBOXKyfRZ4Mi7 + tDwDlA8u3Vau3FDbYJ5LndQGx0yyUaSoapVv9ZutcrvdpJLlVoot9Kr+ZqF1ufc1p+ZV+QX7wmO9 + 5xfWK3xZ5cxomg9Tlu7EP2zRpxefXhbpxdUulyLfn154ipiCvMgw1sGGK7DLvZQ+nFw8Kdl2css2 + mNXWj5uZFlcatNvHJ1wm2S/m2oVC6jjbL2bqmVzX55Z1bXL24FgCKk7ScZLaYG5ZZY9zNMxa2LIB + W5x9bNlcbFmPvcnmQgvhemYSwa9iUItU8TfwSgzloKwZF2fnNRmdmysh51GSPj+1zDfOTnP5zDkZ + o4hbrI44szfYrBDbQ+PYdy7B9mwR4mdbhPgVtggR23DEUo7PVOlsKdOmBuVSsVqrnJR6DbpaL+RK + hWOG7/kssyaWIVdnGTJO8HGGs1iG84ZlmCi2YOE88dhiprUKzpD2DmmK9nnG5xmfZ+Y843q4EsG9 + A8/g6dzeN3x2ShIpUdfm22JWTOP92cbb0mwP4VAzwqFWIZxtOG6pSdUrmf5xnc83WnSunGl1klSt + V80cl2rZdvI44xPOmlaZopQ3hEPznhKO5QSG8cxKZqXDluzTBKIbsAXa5xufbzaGb1wPWiLYd+ab + 1+o67sf9WJ55u/TbwzHMjGOYVThmG85FYvlKOl1p5lmmXK40mUrxmErWupXjfo2iqrl81+eYNXFM + jPWGY6iYpxxDkVhTQxK8FyRjJkau4s0uRtprTzS5Ad7sfJjxYWZjYMZ1exFBvwPMtDLnUZa5Zd6w + bnMv6vujjCey/+xIZhv2LTFMKpuvcqWTfK7XbzRbpWK6WWsXqF7tpNtr9dI+yayJZGiP1pzImPca + Gcozr7zUKitOVNhacmIp32OL77HlI1zyrowbrga6BOmJK3/zHOWyeI2+Au0xAi1hrCgSKAwVCVSU + axGB3VSLJF/kHn+lpNbh6v8DyraVNrrENtjocslcmetS7KDUKFL1SuWEbw669W6jw+byrWqO9xlj + PYxBeuCZhcQHEdGk94zBesYY9GonKlqrPiTj7432NSUb4vdfm4gSCimv1Je0VUPTPVSWcDG3I6Tx + 3bfSC50Bpy3dGIoKUKaiMTGGZ7VrpPbGiooCR0899Yox1ijBW/29WUPdrBXzSNahGDzKf5i/N7OF + Nx8qqpnjFFvv107KhTyd7VTLbYZi2AJXTFbq6aS/8WdtpiTEyooLIs7QccZbUxLznGYq6tUxzXR0 + FahgbM1F1F9+8aHCh4olqKBcoeLtHlf++X/8r3/5z9//05/+8Z/+6//8y5/+rp3PgmS1UEm2C7Xq + X/70dyAn6mHm8/d/sMJ9/uHv//zHP/z5j3/8/MM/WHE+f//vAkceJOIVomxNeX5CwLMNHlqK1HGu + lO7kk22+kzzONPh2u0elS8lWu9qodgusDzzrAR6e9wJ46FicZb0HHo7wCnhIYqW1GsZWo8R861mf + eHziWSIewpV4iFXUKFgtcYMdw4MQABUkhsp4qDsZK4apxXj8sYeKlPXJ8BMii204teeY5yt0t9Ir + J/kB002VOt0unyvSeTaV7Bwft0s+WazJdT4V84Is+DhFeLvv2NyV44nnfJwUza50MqHtOT/qe3/z + wcIHi0WwiLqdCYTverg+UzTkKxXqIGcIVxrIhLvQdZnkYbA1rtisT6afDnhEt+HMnkG2nG1TVDpd + SybL7W4ldVJoJwv5bKnEFgu9gu80f13gwTJegMd8DYf3cg2H9WwNh1nF7SwVjprgEWN98PDBwweP + RfDgXMGD8xI8KlAVEVAVDQFRBvoYgaEhj5Aiu871j4ZeI4a8l4Q/ISjZBh8lnQE9yNfbhWq9elI6 + 7jKVfLJXpZKpepEdHA/SAx9K1mRYwnEeQAkVi7PMGqAk5hmUUKtpQyzDEpLwLUt8KvGpZIlKXM1V + o283VwUvsaKgsRXF3/74+cf/8PmHv/78w998/vGvP//w7z//8A9//j/fm6YYXqTiFcVsUYl+QtSz + Dea05Qzbb5dP2tlepdPt8w2aZfuFXobLHbfSrVbS92iyLuuSGO0F9XBxKuo99XCeqWJiq6hiSNZa + AqKIDdgI7EOPDz2bBD2u5rTR9ZrTkp+//8PnH/7f5x/+0+cf/u9f/vGHzz/+/ecf//vnH/+3+f9/ + +fzjH/HNl9qhvjS19zSwfdcSerDzeJtwaBuMbXN0i8qW64Nki6l22q0Ky+Rprltk2HqFqlZrnI9D + 68EhhvQEh+jZluUNxaFVlEBRNhyzeMg/WsjnIZ+HlnmIdOUhcq08RH3+/g//8rd/+vzDv/3X//Yf + //nf/M2LwcAl4ntSzrvK/RMimG1wutLI0Xy7xHUz/Uyv0C43291UrpRrn3BsPVsptbI+wazJtob3 + YhmLjMUpeg0EQ3lFMNFV9kfz/IxgfNduvmu3DSGYDfFRy/GuZr382816T8tImUJ1aDtEq8CxYoC2 + ZlxBEZ9aPFDMhiY40Ez2wG4l1Xrcr5pHKXnmMu5DS7Y9Dm3JmUNb8u0Obc0uuPHc06oUk/kyXR20 + ahSdzzdyjWKmRtWKx5VOni01Uj73rGsz08qaGyIWZ/g4wXnKPfYRQ555myMpfiXysZeyGHYD9jP5 + 5OOTz0aRT9SVfKJekU8JXeH5vIVkDcnga5BCd4o8fBshrJDWmujn3Uv3s+Of6BbwT+mkXCrWs7lM + udOuF+v9EtXvdkqpJn9Saxfpk7LPP+vhH9Yb/iG8NuSx+Mebk4lM/mFWMuUJE6BtKn4I4vX8Yz88 + jOgXyvDOjHsY0eGFhPDv1mSNf5m6vjatsXKDW5oEugJYAiiXgOX2YwwD7MlGO4xMzfgyvHZNwczQ + kBysmkB1JMpxQBwAwVA1jDRTRTS5Y9ZVp3AkylAX8a4QB+KsQkiiE2YoargMQ2seJBYHHnOF7a+o + NPVXVJr+Wrm81JCecPcpAeWRhEJDxbiQkDXvmxP6U29A0ZhMcWVciqqmgykcoXsvgCTOGuSh2FDQ + xWs8WEB88OYs+MOQQbMSRsFZuYLu5WKJID4wwk7p9fFJggge0bMElqW10ni2blkuRrygfq3O/eIK + luAT9Ys7sSFZPViGZg+23wGnHwcXemHw6FCDk+lRHY4QGCEZqfjdxHuKSJoAEw1Pyfg57ss783di + Z/aCmGMuiAgKXkeRkQrMIQ4/xvcnSNPgCJ3fe7xjfifg7vkgQGChG2MsDsmKjHvF7G18mN2OVcTD + S0XBI6Id37qy37Kp69CJf58YOhoGjtLK9M5qha8FZXp3ACiCJEEI/+DBvJEDGOcz6Ba0VShcIRXX + OwjNA+CpUItHImNFUkaXt2FBmQSADtUR0hOB8wsJylezwauuKp+QoAM7xbqi6lAKHC3fthrWGkci + VpGsFnWqIqUouqarcAoERUWgCK9hS1DFqf7lFzuJV/9xmgenXJeggIYA6ub2MiQP8RBn7jRTBGOC + ZB1oinmNe6IGbGbR9Hkja6Yg5udIIGJdaJFP3xlIvQtPRDn8yTwUw3rwMMKFU7LIJ21+8eaIIQ1J + SNBfG3+oCJp7HFxHhSxJgGsR3UwVVQdjiL97FBW0DPUSCigyRNqVrkxBT5SHyo0GouDCGLnWzlKe + IiKJkJNq6MIYhW4U9QqaX7uPyq7fTZHVvyOf4DW07prd/xqq4JcgAT41cM0fWG/LL3edZtwLK/Ju + UBjjWTu4D4LhC10OXYoSAnH8b3AfXBqygOec3T3wW/w64QRFeWroIAF+uauPRW1v3xxjZGOSEyWk + gYT1PDxC+i6xF740b37rcjMsIXmkj0EckFYSFnc78a+htLsXVtEU98XdyK9/HRntg2AkuHAv/Ktf + RyL7IBjcwyXbseLpqjgaIXU3aGZiNnxwH5w68u1bYH9mRvk9/vfLL3acUgIBTkUdSuJvUA7PZGWk + 60jd1XRVlEd2DahIN1QZWPfCwhiqSbNMutKZTpGahhra3QPfOAE0SRTQLmllZ9X/PDdlMoEVQ9LF + qYRapqi74nChpiVRwxXtNBeuvqyE8K+pu8IQhz1wglolRUOQADK6AUlVhXe75mOAg+CuuSuCBEYM + ERyaKYeVKRbDaYgDIH7zjZ35jngJdhfDnAIRnIWdTJxQO7Nsw1NDG7vEuIaSgSwpzeKb/4DFenQS + +KSI8m5wP7hYU4s9VUVweLc774+zSjIHFZAAkiKYeBTWEFSF8YE9V+38cjfwCxz53PkqwemdXxi6 + rsiBvbAgicLVPF10jXOzivfLMPwEb3ftshqqFAcBfCcCBavi8EV4Op5+60RPPMgoYPXtHfyOxkHw + ONsO2negdicLcXAJJQ3Zt2wWj89eO7A7hDqcVffOrIx4zgEJEIgErLrd+b2dhACFMVpOFc+YSNbb + pgSLD6aqgrPLQB3aD6x2stvLrIrwVDV/ZtAlNCTd6lI4yM5i/Y7PdWU0khCuT3M02b0/cOxcQ8kc + M5YCmy/5wVsre2xacNipfT1RhigR+OYaSp5WOZb4Iarshcf6RLKChrWxcrO7Fx4iCd7tkiyBRzg4 + RDXDqa4nW24nEoESUnUrMe+bc2epUWdyqAhP2/P2XGxOSRkphv6al8Oq60C91mo7Pd5qwsgzbWhn + 9VhrrLkxlirBHqFe3v9n1WvFMEFtNjsfRuxPy8MIls4k4/8PAAD//wMABd/X75DvAQA= + headers: + cache-control: ['no-store, no-cache, must-revalidate'] + cf-ray: [3bcb155ef9811ae1-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Sun, 12 Nov 2017 17:06:43 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d0562517d158f77851365384f94a619ab1510506403; expires=Mon, + 12-Nov-18 17:06:43 GMT; path=/; domain=.anidex.info; HttpOnly', PHPSESSID=heovgdqqo2386dkdhmbjo142v2; + path=/] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/anidex/anidex_test.yaml b/tests/providers/torrent/anidex/anidex_test.yaml new file mode 100644 index 0000000000..07f5cdc0a2 --- /dev/null +++ b/tests/providers/torrent/anidex/anidex_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 3 + pubdate: 2017-11-12 00:00:00 + title: '[VeteranSubs]_Ballroom_e_Youkoso_-_19_[720p]_[1c7330de].mkv' + leechers: 2 + link: https://anidex.info/dl/94786 + size: 309329920 + - seeders: 15 + pubdate: 2017-11-12 00:00:00 + title: '[DefinitelyNotMe] Animegataris - 06 VOSTFR [1080p].mkv' + leechers: 10 + link: https://anidex.info/dl/94782 + size: 579862528 + - seeders: 11 + pubdate: 2017-11-12 00:00:00 + title: '[DefinitelyNotMe] Animegataris - 06 VOSTFR [720p].mkv' + leechers: 8 + link: https://anidex.info/dl/94781 + size: 307232768 + +backlog: + search_strings: + Episode: ['Dragon Ball Super 115'] + results: + - seeders: 70 + pubdate: 2017-11-12 00:00:00 + title: '[DBS EN VF]Dragon Ball Super 115 VOSTFR HD 720P' + leechers: 6 + link: https://anidex.info/dl/94644 + size: 252706816 + - seeders: 71 + pubdate: 2017-11-12 00:00:00 + title: '[PuyaSubs!] Dragon Ball Super - 115 [1080p][A76C1894].mkv' + leechers: 11 + link: https://anidex.info/dl/94605 + size: 566231040 From dc9a7841538ddf4b5d1f8d5c8b6d2b23dec09c9b Mon Sep 17 00:00:00 2001 From: Dario Date: Sun, 12 Nov 2017 19:22:33 +0100 Subject: [PATCH 12/25] Add vcrpy to requirements.txt --- {lib => ext}/vcr/__init__.py | 0 ext/vcr/_handle_coroutine.py | 7 ++ {lib => ext}/vcr/cassette.py | 61 +++++++++------ {lib => ext}/vcr/compat.py | 0 {lib => ext}/vcr/config.py | 6 ++ {lib => ext}/vcr/errors.py | 0 {lib => ext}/vcr/filters.py | 0 {lib => ext}/vcr/matchers.py | 0 {lib => ext}/vcr/migration.py | 0 {lib => ext}/vcr/patch.py | 32 ++++---- {lib => ext}/vcr/persist.py | 0 {lib => ext}/vcr/persisters/__init__.py | 0 ext/vcr/persisters/filesystem.py | 26 +++++++ {lib => ext}/vcr/request.py | 0 {lib => ext}/vcr/serialize.py | 0 {lib => ext}/vcr/serializers/__init__.py | 0 {lib => ext}/vcr/serializers/compat.py | 0 .../vcr/serializers/jsonserializer.py | 0 .../vcr/serializers/yamlserializer.py | 0 {lib => ext}/vcr/stubs/__init__.py | 19 ++++- ext/vcr/stubs/aiohttp_stubs.py | 76 +++++++++++++++++++ .../vcr/stubs/aiohttp_stubs/__init__.py | 0 {lib => ext}/vcr/stubs/boto3_stubs.py | 0 {lib => ext}/vcr/stubs/boto_stubs.py | 0 {lib => ext}/vcr/stubs/compat.py | 0 {lib => ext}/vcr/stubs/httplib2_stubs.py | 0 {lib => ext}/vcr/stubs/requests_stubs.py | 4 +- {lib => ext}/vcr/stubs/tornado_stubs.py | 0 {lib => ext}/vcr/stubs/urllib3_stubs.py | 0 {lib => ext}/vcr/util.py | 0 lib/vcr/persisters/filesystem.py | 11 --- requirements.txt | 1 + 32 files changed, 189 insertions(+), 54 deletions(-) rename {lib => ext}/vcr/__init__.py (100%) create mode 100644 ext/vcr/_handle_coroutine.py rename {lib => ext}/vcr/cassette.py (87%) rename {lib => ext}/vcr/compat.py (100%) rename {lib => ext}/vcr/config.py (98%) rename {lib => ext}/vcr/errors.py (100%) rename {lib => ext}/vcr/filters.py (100%) rename {lib => ext}/vcr/matchers.py (100%) rename {lib => ext}/vcr/migration.py (100%) rename {lib => ext}/vcr/patch.py (98%) rename {lib => ext}/vcr/persist.py (100%) rename {lib => ext}/vcr/persisters/__init__.py (100%) create mode 100644 ext/vcr/persisters/filesystem.py rename {lib => ext}/vcr/request.py (100%) rename {lib => ext}/vcr/serialize.py (100%) rename {lib => ext}/vcr/serializers/__init__.py (100%) rename {lib => ext}/vcr/serializers/compat.py (100%) rename {lib => ext}/vcr/serializers/jsonserializer.py (100%) rename {lib => ext}/vcr/serializers/yamlserializer.py (100%) rename {lib => ext}/vcr/stubs/__init__.py (94%) create mode 100644 ext/vcr/stubs/aiohttp_stubs.py rename {lib => ext}/vcr/stubs/aiohttp_stubs/__init__.py (100%) rename {lib => ext}/vcr/stubs/boto3_stubs.py (100%) rename {lib => ext}/vcr/stubs/boto_stubs.py (100%) rename {lib => ext}/vcr/stubs/compat.py (100%) rename {lib => ext}/vcr/stubs/httplib2_stubs.py (100%) rename {lib => ext}/vcr/stubs/requests_stubs.py (100%) rename {lib => ext}/vcr/stubs/tornado_stubs.py (100%) rename {lib => ext}/vcr/stubs/urllib3_stubs.py (100%) rename {lib => ext}/vcr/util.py (100%) delete mode 100644 lib/vcr/persisters/filesystem.py diff --git a/lib/vcr/__init__.py b/ext/vcr/__init__.py similarity index 100% rename from lib/vcr/__init__.py rename to ext/vcr/__init__.py diff --git a/ext/vcr/_handle_coroutine.py b/ext/vcr/_handle_coroutine.py new file mode 100644 index 0000000000..0b20be6ff4 --- /dev/null +++ b/ext/vcr/_handle_coroutine.py @@ -0,0 +1,7 @@ +import asyncio + + +@asyncio.coroutine +def handle_coroutine(vcr, fn): + with vcr as cassette: + return (yield from fn(cassette)) # noqa: E999 diff --git a/lib/vcr/cassette.py b/ext/vcr/cassette.py similarity index 87% rename from lib/vcr/cassette.py rename to ext/vcr/cassette.py index 2f5c293898..fc3f0fa5f7 100644 --- a/lib/vcr/cassette.py +++ b/ext/vcr/cassette.py @@ -8,10 +8,20 @@ from .errors import UnhandledHTTPRequestError from .matchers import requests_match, uri, method from .patch import CassettePatcherBuilder -from .persist import load_cassette, save_cassette from .serializers import yamlserializer +from .persisters.filesystem import FilesystemPersister from .util import partition_dict +try: + from asyncio import iscoroutinefunction + from ._handle_coroutine import handle_coroutine +except ImportError: + def iscoroutinefunction(*args, **kwargs): + return False + + def handle_coroutine(*args, **kwags): + raise NotImplementedError('Not implemented on Python 2') + log = logging.getLogger(__name__) @@ -96,18 +106,25 @@ def __call__(self, function, instance, args, kwargs): ) def _execute_function(self, function, args, kwargs): + def handle_function(cassette): + if cassette.inject: + return function(cassette, *args, **kwargs) + else: + return function(*args, **kwargs) + + if iscoroutinefunction(function): + return handle_coroutine(vcr=self, fn=handle_function) if inspect.isgeneratorfunction(function): - handler = self._handle_coroutine - else: - handler = self._handle_function - return handler(function, args, kwargs) - - def _handle_coroutine(self, function, args, kwargs): - """Wraps a coroutine so that we're inside the cassette context for the - duration of the coroutine. + return self._handle_generator(fn=handle_function) + + return self._handle_function(fn=handle_function) + + def _handle_generator(self, fn): + """Wraps a generator so that we're inside the cassette context for the + duration of the generator. """ with self as cassette: - coroutine = self.__handle_function(cassette, function, args, kwargs) + coroutine = fn(cassette) # We don't need to catch StopIteration. The caller (Tornado's # gen.coroutine, for example) will handle that. to_yield = next(coroutine) @@ -119,15 +136,9 @@ def _handle_coroutine(self, function, args, kwargs): else: to_yield = coroutine.send(to_send) - def __handle_function(self, cassette, function, args, kwargs): - if cassette.inject: - return function(cassette, *args, **kwargs) - else: - return function(*args, **kwargs) - - def _handle_function(self, function, args, kwargs): + def _handle_function(self, fn): with self as cassette: - return self.__handle_function(cassette, function, args, kwargs) + return fn(cassette) @staticmethod def get_function_name(function): @@ -163,11 +174,11 @@ def use_arg_getter(cls, arg_getter): def use(cls, **kwargs): return CassetteContextDecorator.from_args(cls, **kwargs) - def __init__(self, path, serializer=yamlserializer, record_mode='once', + def __init__(self, path, serializer=yamlserializer, persister=FilesystemPersister, record_mode='once', match_on=(uri, method), before_record_request=None, before_record_response=None, custom_patches=(), inject=False): - + self._persister = persister self._path = path self._serializer = serializer self._match_on = match_on @@ -271,24 +282,24 @@ def _as_dict(self): def _save(self, force=False): if force or self.dirty: - save_cassette( + self._persister.save_cassette( self._path, self._as_dict(), - serializer=self._serializer + serializer=self._serializer, ) self.dirty = False def _load(self): try: - requests, responses = load_cassette( + requests, responses = self._persister.load_cassette( self._path, - serializer=self._serializer + serializer=self._serializer, ) for request, response in zip(requests, responses): self.append(request, response) self.dirty = False self.rewound = True - except IOError: + except ValueError: pass def __str__(self): diff --git a/lib/vcr/compat.py b/ext/vcr/compat.py similarity index 100% rename from lib/vcr/compat.py rename to ext/vcr/compat.py diff --git a/lib/vcr/config.py b/ext/vcr/config.py similarity index 98% rename from lib/vcr/config.py rename to ext/vcr/config.py index ae993465b7..15ae459d78 100644 --- a/lib/vcr/config.py +++ b/ext/vcr/config.py @@ -9,6 +9,7 @@ from .compat import collections from .cassette import Cassette from .serializers import yamlserializer, jsonserializer +from .persisters.filesystem import FilesystemPersister from .util import compose, auto_decorate from . import matchers from . import filters @@ -57,6 +58,7 @@ def __init__(self, path_transformer=None, before_record_request=None, 'raw_body': matchers.raw_body, 'body': matchers.body, } + self.persister = FilesystemPersister self.record_mode = record_mode self.filter_headers = filter_headers self.filter_query_parameters = filter_query_parameters @@ -270,6 +272,10 @@ def register_serializer(self, name, serializer): def register_matcher(self, name, matcher): self.matchers[name] = matcher + def register_persister(self, persister): + # Singleton, no name required + self.persister = persister + def test_case(self, predicate=None): predicate = predicate or self.is_test_method return six.with_metaclass(auto_decorate(self.use_cassette, predicate)) diff --git a/lib/vcr/errors.py b/ext/vcr/errors.py similarity index 100% rename from lib/vcr/errors.py rename to ext/vcr/errors.py diff --git a/lib/vcr/filters.py b/ext/vcr/filters.py similarity index 100% rename from lib/vcr/filters.py rename to ext/vcr/filters.py diff --git a/lib/vcr/matchers.py b/ext/vcr/matchers.py similarity index 100% rename from lib/vcr/matchers.py rename to ext/vcr/matchers.py diff --git a/lib/vcr/migration.py b/ext/vcr/migration.py similarity index 100% rename from lib/vcr/migration.py rename to ext/vcr/migration.py diff --git a/lib/vcr/patch.py b/ext/vcr/patch.py similarity index 98% rename from lib/vcr/patch.py rename to ext/vcr/patch.py index ada3c922f2..bc93ad9852 100644 --- a/lib/vcr/patch.py +++ b/ext/vcr/patch.py @@ -12,16 +12,6 @@ _HTTPSConnection = httplib.HTTPSConnection -# Try to save the original types for requests -try: - import requests.packages.urllib3.connectionpool as cpool -except ImportError: # pragma: no cover - pass -else: - _VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection - _cpoolHTTPConnection = cpool.HTTPConnection - _cpoolHTTPSConnection = cpool.HTTPSConnection - # Try to save the original types for boto3 try: import botocore.vendored.requests.packages.urllib3.connectionpool as cpool @@ -32,14 +22,27 @@ _cpoolBoto3HTTPConnection = cpool.HTTPConnection _cpoolBoto3HTTPSConnection = cpool.HTTPSConnection - +cpool = None # Try to save the original types for urllib3 try: - import urllib3 + import urllib3.connectionpool as cpool except ImportError: # pragma: no cover pass else: - _VerifiedHTTPSConnection = urllib3.connectionpool.VerifiedHTTPSConnection + _VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection + _cpoolHTTPConnection = cpool.HTTPConnection + _cpoolHTTPSConnection = cpool.HTTPSConnection + +# Try to save the original types for requests +try: + if not cpool: + import requests.packages.urllib3.connectionpool as cpool +except ImportError: # pragma: no cover + pass +else: + _VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection + _cpoolHTTPConnection = cpool.HTTPConnection + _cpoolHTTPSConnection = cpool.HTTPSConnection # Try to save the original types for httplib2 @@ -176,10 +179,9 @@ def _httplib(self): def _requests(self): try: - import requests.packages.urllib3.connectionpool as cpool + from .stubs import requests_stubs except ImportError: # pragma: no cover return () - from .stubs import requests_stubs return self._urllib3_patchers(cpool, requests_stubs) def _boto3(self): diff --git a/lib/vcr/persist.py b/ext/vcr/persist.py similarity index 100% rename from lib/vcr/persist.py rename to ext/vcr/persist.py diff --git a/lib/vcr/persisters/__init__.py b/ext/vcr/persisters/__init__.py similarity index 100% rename from lib/vcr/persisters/__init__.py rename to ext/vcr/persisters/__init__.py diff --git a/ext/vcr/persisters/filesystem.py b/ext/vcr/persisters/filesystem.py new file mode 100644 index 0000000000..43b52d4794 --- /dev/null +++ b/ext/vcr/persisters/filesystem.py @@ -0,0 +1,26 @@ +# .. _persister_example: + +import os +from ..serialize import serialize, deserialize + + +class FilesystemPersister(object): + + @classmethod + def load_cassette(cls, cassette_path, serializer): + try: + with open(cassette_path) as f: + cassette_content = f.read() + except IOError: + raise ValueError('Cassette not found.') + cassette = deserialize(cassette_content, serializer) + return cassette + + @staticmethod + def save_cassette(cassette_path, cassette_dict, serializer): + data = serialize(cassette_dict, serializer) + dirname, filename = os.path.split(cassette_path) + if dirname and not os.path.exists(dirname): + os.makedirs(dirname) + with open(cassette_path, 'w') as f: + f.write(data) diff --git a/lib/vcr/request.py b/ext/vcr/request.py similarity index 100% rename from lib/vcr/request.py rename to ext/vcr/request.py diff --git a/lib/vcr/serialize.py b/ext/vcr/serialize.py similarity index 100% rename from lib/vcr/serialize.py rename to ext/vcr/serialize.py diff --git a/lib/vcr/serializers/__init__.py b/ext/vcr/serializers/__init__.py similarity index 100% rename from lib/vcr/serializers/__init__.py rename to ext/vcr/serializers/__init__.py diff --git a/lib/vcr/serializers/compat.py b/ext/vcr/serializers/compat.py similarity index 100% rename from lib/vcr/serializers/compat.py rename to ext/vcr/serializers/compat.py diff --git a/lib/vcr/serializers/jsonserializer.py b/ext/vcr/serializers/jsonserializer.py similarity index 100% rename from lib/vcr/serializers/jsonserializer.py rename to ext/vcr/serializers/jsonserializer.py diff --git a/lib/vcr/serializers/yamlserializer.py b/ext/vcr/serializers/yamlserializer.py similarity index 100% rename from lib/vcr/serializers/yamlserializer.py rename to ext/vcr/serializers/yamlserializer.py diff --git a/lib/vcr/stubs/__init__.py b/ext/vcr/stubs/__init__.py similarity index 94% rename from lib/vcr/stubs/__init__.py rename to ext/vcr/stubs/__init__.py index 451824384f..67cb5e7d7b 100644 --- a/lib/vcr/stubs/__init__.py +++ b/ext/vcr/stubs/__init__.py @@ -153,7 +153,7 @@ def _url(self, uri): ) return uri.replace(prefix, '', 1) - def request(self, method, url, body=None, headers=None): + def request(self, method, url, body=None, headers=None, *args, **kwargs): '''Persist the request metadata in self._vcr_request''' self._vcr_request = Request( method=method, @@ -334,6 +334,23 @@ def __setattr__(self, name, value): super(VCRConnection, self).__setattr__(name, value) + def __getattr__(self, name): + """ + Send requests for weird attributes up to the real connection + (counterpart to __setattr above) + """ + if self.__dict__.get('real_connection'): + # check in case real_connection has not been set yet, such as when + # we're setting the real_connection itself for the first time + return getattr(self.real_connection, name) + + return super(VCRConnection, self).__getattr__(name) + + +for k, v in HTTPConnection.__dict__.items(): + if isinstance(v, staticmethod): + setattr(VCRConnection, k, v) + class VCRHTTPConnection(VCRConnection): '''A Mocked class for HTTP requests''' diff --git a/ext/vcr/stubs/aiohttp_stubs.py b/ext/vcr/stubs/aiohttp_stubs.py new file mode 100644 index 0000000000..a19be6933e --- /dev/null +++ b/ext/vcr/stubs/aiohttp_stubs.py @@ -0,0 +1,76 @@ +'''Stubs for aiohttp HTTP clients''' +from __future__ import absolute_import + +import asyncio +import functools +import json + +from aiohttp import ClientResponse + +from vcr.request import Request + + +class MockClientResponse(ClientResponse): + # TODO: get encoding from header + @asyncio.coroutine + def json(self, *, encoding='utf-8', loads=json.loads): # NOQA: E999 + return loads(self.content.decode(encoding)) + + @asyncio.coroutine + def text(self, encoding='utf-8'): + return self.content.decode(encoding) + + @asyncio.coroutine + def release(self): + pass + + +def vcr_request(cassette, real_request): + + @functools.wraps(real_request) + @asyncio.coroutine + def new_request(self, method, url, **kwargs): + headers = kwargs.get('headers') + headers = self._prepare_headers(headers) + data = kwargs.get('data') + + vcr_request = Request(method, url, data, headers) + + if cassette.can_play_response_for(vcr_request): + vcr_response = cassette.play_response(vcr_request) + + response = MockClientResponse(method, vcr_response.get('url')) + response.status = vcr_response['status']['code'] + response.content = vcr_response['body']['string'] + response.reason = vcr_response['status']['message'] + response.headers = vcr_response['headers'] + + response.close() + return response + + if cassette.write_protected and cassette.filter_request(vcr_request): + response = MockClientResponse(method, url) + response.status = 599 + msg = ("No match for the request {!r} was found. Can't overwrite " + "existing cassette {!r} in your current record mode {!r}.") + msg = msg.format(vcr_request, cassette._path, cassette.record_mode) + response.content = msg.encode() + response.close() + return response + + response = yield from real_request(self, method, url, **kwargs) # NOQA: E999 + + vcr_response = { + 'status': { + 'code': response.status, + 'message': response.reason, + }, + 'headers': dict(response.headers), + 'body': {'string': (yield from response.text())}, # NOQA: E999 + 'url': response.url, + } + cassette.append(vcr_request, vcr_response) + + return response + + return new_request diff --git a/lib/vcr/stubs/aiohttp_stubs/__init__.py b/ext/vcr/stubs/aiohttp_stubs/__init__.py similarity index 100% rename from lib/vcr/stubs/aiohttp_stubs/__init__.py rename to ext/vcr/stubs/aiohttp_stubs/__init__.py diff --git a/lib/vcr/stubs/boto3_stubs.py b/ext/vcr/stubs/boto3_stubs.py similarity index 100% rename from lib/vcr/stubs/boto3_stubs.py rename to ext/vcr/stubs/boto3_stubs.py diff --git a/lib/vcr/stubs/boto_stubs.py b/ext/vcr/stubs/boto_stubs.py similarity index 100% rename from lib/vcr/stubs/boto_stubs.py rename to ext/vcr/stubs/boto_stubs.py diff --git a/lib/vcr/stubs/compat.py b/ext/vcr/stubs/compat.py similarity index 100% rename from lib/vcr/stubs/compat.py rename to ext/vcr/stubs/compat.py diff --git a/lib/vcr/stubs/httplib2_stubs.py b/ext/vcr/stubs/httplib2_stubs.py similarity index 100% rename from lib/vcr/stubs/httplib2_stubs.py rename to ext/vcr/stubs/httplib2_stubs.py diff --git a/lib/vcr/stubs/requests_stubs.py b/ext/vcr/stubs/requests_stubs.py similarity index 100% rename from lib/vcr/stubs/requests_stubs.py rename to ext/vcr/stubs/requests_stubs.py index 8cae533bd1..4aa2c82c7c 100644 --- a/lib/vcr/stubs/requests_stubs.py +++ b/ext/vcr/stubs/requests_stubs.py @@ -1,9 +1,9 @@ '''Stubs for requests''' try: - from requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection -except ImportError: from urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection +except ImportError: + from requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection from ..stubs import VCRHTTPConnection, VCRHTTPSConnection diff --git a/lib/vcr/stubs/tornado_stubs.py b/ext/vcr/stubs/tornado_stubs.py similarity index 100% rename from lib/vcr/stubs/tornado_stubs.py rename to ext/vcr/stubs/tornado_stubs.py diff --git a/lib/vcr/stubs/urllib3_stubs.py b/ext/vcr/stubs/urllib3_stubs.py similarity index 100% rename from lib/vcr/stubs/urllib3_stubs.py rename to ext/vcr/stubs/urllib3_stubs.py diff --git a/lib/vcr/util.py b/ext/vcr/util.py similarity index 100% rename from lib/vcr/util.py rename to ext/vcr/util.py diff --git a/lib/vcr/persisters/filesystem.py b/lib/vcr/persisters/filesystem.py deleted file mode 100644 index 884d891129..0000000000 --- a/lib/vcr/persisters/filesystem.py +++ /dev/null @@ -1,11 +0,0 @@ -import os - - -class FilesystemPersister(object): - @classmethod - def write(cls, cassette_path, data): - dirname, filename = os.path.split(cassette_path) - if dirname and not os.path.exists(dirname): - os.makedirs(dirname) - with open(cassette_path, 'w') as f: - f.write(data) diff --git a/requirements.txt b/requirements.txt index c2cca372f3..2c2f426aa5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -27,3 +27,4 @@ git+https://github.com/Diaoul/subliminal.git@490f47e0546b3f2c4a70ca4d9612a1bb0e5 tornado==4.5.2 tornroutes==0.5.1 validators==0.12.0 +vcrpy==1.11.1 From 81e9f851db6f155c6f75b9733239dffb89708a7a Mon Sep 17 00:00:00 2001 From: Dario Date: Sun, 12 Nov 2017 22:11:39 +0100 Subject: [PATCH 13/25] Added torrentz2 --- tests/providers/conftest.py | 4 +- .../torrent/torrentz2/torrentz2_backlog.yaml | 42 ++++++++ .../torrent/torrentz2/torrentz2_daily.yaml | 95 +++++++++++++++++++ .../torrent/torrentz2/torrentz2_test.yaml | 39 ++++++++ 4 files changed, 178 insertions(+), 2 deletions(-) create mode 100644 tests/providers/torrent/torrentz2/torrentz2_backlog.yaml create mode 100644 tests/providers/torrent/torrentz2/torrentz2_daily.yaml create mode 100644 tests/providers/torrent/torrentz2/torrentz2_test.yaml diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 373d98662f..4adff244bf 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import anidex, thepiratebay, zooqle +from medusa.providers.torrent import anidex, thepiratebay, torrentz2, zooqle import pytest @@ -15,7 +15,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, thepiratebay, zooqle) +PROVIDERS = (anidex, thepiratebay, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/torrentz2/torrentz2_backlog.yaml b/tests/providers/torrent/torrentz2/torrentz2_backlog.yaml new file mode 100644 index 0000000000..c3b7939045 --- /dev/null +++ b/tests/providers/torrent/torrentz2/torrentz2_backlog.yaml @@ -0,0 +1,42 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=da0f3c3981b54e6fbc830ab43e94fbe941510518143] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; aa667f30-c7ed-11e7-a702-1c1b0d9d2a41)] + method: GET + uri: https://torrentz2.eu/feed?f=Lethal+Weapon+S02E05 + response: + body: + string: !!binary | + H4sIAAAAAAAAA7WWbW/TMBDHX8OnsCIhgWCJn2LHUduJwaQJMTTRCV4iJ7m0EWkSknQbfHouZOmK + NpCZilSpjh3/c3c/351nxzebklxB2xV1NfeYT73jxdMns7br7mY5zhJ8r+pi29ebubfu+yYOguvr + a/9a+HW7CjilYfAaF71hd7q2VQXlMOyLvoRFX7ctVP0P7sOWHJH30K9tST6DbeqKLCk/peEsGF/F + PWVRfV3cfmN/Z9CBbdP18bf5KPCM01ECB5PIr72okUGXtkXTo1uLhz5HRi3yvLU9kLLYFH1MQvJt + C20BXcBoBympW8Io3ZvcFFX3Yhbsiw/22mq1tStYQHW07WbB7hnXhoDFg1Fk3UK+C91vbuUA2XG+ + c+pkcupkdMojLZRzr4My90j/vYG5Z5umLFI7eBcgqpcIxyPBEO+ihw3+T4EfXfdHRX/U83HSL3r/ + Y5GBrzlt/M+nJx+LxudvzvwbrkL/7PTTm6OL5Wt/8/XqjstfwIQsY0mW5nnKWEITISmwXFLKRaIM + DbWyWiVaAcZmYDvYt9oW2YOQ3bV+SQxazTZ5ixgXS9u/IoyRD/UV4ZRpwnQsQvyRlxRP6CyYXhw2 + YfhgVbffF58wDjW5RE93U8P6PuRl8QNiwpki5ydkibi6mDBOLgATJyaCnNlujcfHOQr72ggt2FHb + DcZkuIfPZzQagR29fT8wu2jrvLjxzyErrBMqkxpGlZEMAyIltRJCHBkuZZKHCS5xqSIF3AWVu9Y9 + VJfr7StCzR0qLmLGY6EOg8qgg/usJlTsFpW75Y9HdZtV/0xI8wGOYhHTQiqZpYIbHamBDM2TCDIq + kggzzIWQu5YrIXogQlxJ8RChKZncLX88oan4PTaXgIe5slZDJjImBU8SiuXTZCJVeZryMJEsBZDa + hZS7ljOpA5U9Jbl5iNSUS+6Wu5K6XAM5vYHuCzYsp6Km0oTmudSW5th/sD5jkgCVGVUQQWQ1t4yl + oXUC4a51D8TYfzh5Z6uh/whCw5jrmEeHKWqCRb81oKmo0dui5m75fwNhhUy0jZjVIgWaaorxz6US + RnJrM2wrFowxkXHJCHeteyDO6wq7i94DYWJqYjzHh7kIGBbtZQSdQEwZ4W75H0DgVWS6Qs+GC97i + J+NLCN+oCwAA + headers: + cache-control: ['public, max-age=1500'] + cf-ray: [3bcc77ebce0b1ab7-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [application/xml; charset=utf-8] + date: ['Sun, 12 Nov 2017 21:08:46 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + x-fastcgi-cache: [HIT] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/torrentz2/torrentz2_daily.yaml b/tests/providers/torrent/torrentz2/torrentz2_daily.yaml new file mode 100644 index 0000000000..21373da905 --- /dev/null +++ b/tests/providers/torrent/torrentz2/torrentz2_daily.yaml @@ -0,0 +1,95 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 305e03cf-c7e7-11e7-b747-1c1b0d9d2a41)] + method: GET + uri: https://torrentz2.eu/feed?f=tv+added%3A2d + response: + body: + string: !!binary | + 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 + 7b1XX/0fbTtQlx9XAAA= + headers: + cache-control: ['public, max-age=1500'] + cf-ray: [3bcc33fa7f721ab1-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [application/xml; charset=utf-8] + date: ['Sun, 12 Nov 2017 20:22:23 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=da0f3c3981b54e6fbc830ab43e94fbe941510518143; expires=Mon, + 12-Nov-18 20:22:23 GMT; path=/; domain=.torrentz2.eu; HttpOnly'] + vary: [Accept-Encoding] + x-fastcgi-cache: [HIT] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/torrentz2/torrentz2_test.yaml b/tests/providers/torrent/torrentz2/torrentz2_test.yaml new file mode 100644 index 0000000000..a953810da9 --- /dev/null +++ b/tests/providers/torrent/torrentz2/torrentz2_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 0 + pubdate: 2017-11-12 00:00:00 + title: Eggheads.S19E46.HDTV.x264-NORiTE + leechers: 26 + link: magnet:?xt=urn:btih:18921c8b6642c77b0c218d179baacf2362767e4c + size: 132120576 + - seeders: 3 + pubdate: 2017-11-12 00:00:00 + title: Blackstone.S04E07.720p.WEBRip.x264-aAF + leechers: 1 + link: magnet:?xt=urn:btih:8a5b74b2feeca4696fe28a9fea2bf16f42600d7d + size: 1373634560 + - seeders: 309 + pubdate: 2017-11-12 00:00:00 + title: Once.Upon.a.Time.S07E06.HDTV.x264-SVA[ettv] + leechers: 123 + link: magnet:?xt=urn:btih:2b485956239344991f0a2acb09b1e821f05e6ba7 + size: 272629760 + +backlog: + search_strings: + Episode: ['Lethal Weapon S02E05'] + results: + - seeders: 12 + pubdate: 2017-11-12 00:00:00 + title: Lethal.Weapon.S02E05.Let.it.Ride.720p.WEBRip.2CH.x265.HEVC-PSA.mkv + leechers: 3 + link: magnet:?xt=urn:btih:51d1bdcffc11b0b340e1f40023b690576a76b76e + size: 226492416 + - seeders: 1 + pubdate: 2017-11-12 00:00:00 + title: Lethal.Weapon.S02.1080p.WEB-DLRip.Profix.Media + leechers: 1 + link: magnet:?xt=urn:btih:9c9106941200440a4e52009244bf5b10624686e2 + size: 10423894016 From 496f9f16b5e16bbb938c38900b8b2de8695fe3e2 Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 14 Nov 2017 13:35:58 +0100 Subject: [PATCH 14/25] Fix elitetorrent & add tests --- medusa/providers/torrent/html/elitetorrent.py | 57 +++++++------ tests/providers/conftest.py | 4 +- .../elitetorrent/elitetorrent_backlog.yaml | 61 ++++++++++++++ .../elitetorrent/elitetorrent_daily.yaml | 83 +++++++++++++++++++ .../elitetorrent/elitetorrent_test.yaml | 39 +++++++++ 5 files changed, 217 insertions(+), 27 deletions(-) create mode 100644 tests/providers/torrent/elitetorrent/elitetorrent_backlog.yaml create mode 100644 tests/providers/torrent/elitetorrent/elitetorrent_daily.yaml create mode 100644 tests/providers/torrent/elitetorrent/elitetorrent_test.yaml diff --git a/medusa/providers/torrent/html/elitetorrent.py b/medusa/providers/torrent/html/elitetorrent.py index 8e7e53fc66..1b80564e30 100644 --- a/medusa/providers/torrent/html/elitetorrent.py +++ b/medusa/providers/torrent/html/elitetorrent.py @@ -19,6 +19,8 @@ log = BraceAdapter(logging.getLogger(__name__)) log.logger.addHandler(logging.NullHandler()) +id_regex = re.compile(r'/torrent/(\d+)') + class EliteTorrentProvider(TorrentProvider): """EliteTorrent Torrent provider.""" @@ -28,12 +30,14 @@ def __init__(self): super(EliteTorrentProvider, self).__init__('EliteTorrent') # Credentials + self.public = True # URLs - self.url = 'http://www.elitetorrent.net' + self.url = 'https://elitetorrent.eu' self.urls = { 'base_url': self.url, - 'search': urljoin(self.url, 'torrents.php') + 'search': urljoin(self.url, 'torrents.php'), + 'download': urljoin(self.url, 'get-torrent/{0}'), } # Proper Strings @@ -46,7 +50,7 @@ def __init__(self): self.minleech = None # Cache - self.cache = tv.Cache(self) # Only poll EliteTorrent every 20 minutes max + self.cache = tv.Cache(self, min_time=20) def search(self, search_strings, age=0, ep_obj=None): """ @@ -76,17 +80,18 @@ def search(self, search_strings, age=0, ep_obj=None): # Only search if user conditions are true if self.onlyspasearch and lang_info != 'es' and mode != 'RSS': - log.debug('Show info is not spanish, skipping provider search') + log.debug('Show info is not Spanish, skipping provider search') continue for search_string in search_strings[mode]: if mode != 'RSS': + search_string = re.sub(r'S0*(\d*)E(\d*)', r'\1x\2', search_string) + search_params['buscar'] = search_string + log.debug('Search string: {search}', {'search': search_string}) - search_string = re.sub(r'S0*(\d*)E(\d*)', r'\1x\2', search_string) - search_params['buscar'] = search_string.strip() if mode != 'RSS' else '' response = self.session.get(self.urls['search'], params=search_params) if not response or not response.text: log.debug('No data returned from provider') @@ -106,6 +111,7 @@ def parse(self, data, mode): :return: A list of items found """ items = [] + with BS4Parser(data, 'html5lib') as html: torrent_table = html.find('table', class_='fichas-listado') torrent_rows = torrent_table('tr') if torrent_table else [] @@ -119,10 +125,12 @@ def parse(self, data, mode): for row in torrent_rows[1:]: try: title = self._process_title(row.find('a', class_='nombre')['title']) - download_url = self.urls['base_url'] + row.find('a')['href'] - if not all([title, download_url]): + torrent_id = id_regex.match(row.find('a')['href']) + if not all([title, torrent_id]): continue + download_url = self.urls['download'].format(torrent_id.group(1)) + seeders = try_int(row.find('td', class_='semillas').get_text(strip=True)) leechers = try_int(row.find('td', class_='clientes').get_text(strip=True)) @@ -157,23 +165,22 @@ def parse(self, data, mode): @staticmethod def _process_title(title): - - # Quality, if no literal is defined it's HDTV - if 'calidad' not in title: - title += ' HDTV x264' - - title = title.replace('(calidad baja)', 'HDTV x264') - title = title.replace('(Buena calidad)', '720p HDTV x264') - title = title.replace('(Alta calidad)', '720p HDTV x264') - title = title.replace('(calidad regular)', 'DVDrip x264') - title = title.replace('(calidad media)', 'DVDrip x264') - - # Language, all results from this provider have spanish audio, - # We append it to title (to avoid downloading undesired torrents) - title += ' SPANISH AUDIO' - title += '-ELITETORRENT' - - return title.strip() + if title: + # Quality, if no literal is defined it's HDTV + if 'calidad' not in title: + title += ' HDTV x264' + else: + title = title.replace('(calidad baja)', 'HDTV x264') + title = title.replace('(Buena calidad)', '720p HDTV x264') + title = title.replace('(Alta calidad)', '720p HDTV x264') + title = title.replace('(calidad regular)', 'DVDrip x264') + title = title.replace('(calidad media)', 'DVDrip x264') + + # Language, all results from this provider have spanish audio, + # We append it to title (to avoid downloading undesired torrents) + title += ' SPANISH AUDIO-ELITETORRENT' + + return title provider = EliteTorrentProvider() diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 4adff244bf..82a5fe9624 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import anidex, thepiratebay, torrentz2, zooqle +from medusa.providers.torrent import anidex, elitetorrent, thepiratebay, torrentz2, zooqle import pytest @@ -15,7 +15,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, thepiratebay, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, thepiratebay, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/elitetorrent/elitetorrent_backlog.yaml b/tests/providers/torrent/elitetorrent/elitetorrent_backlog.yaml new file mode 100644 index 0000000000..094cdb9940 --- /dev/null +++ b/tests/providers/torrent/elitetorrent/elitetorrent_backlog.yaml @@ -0,0 +1,61 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d460e40e7452ac451b558ef24f789e1f51510661299; layer=1] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 81b059ae-c934-11e7-b6f9-1c1b0d9d2a41)] + method: GET + uri: https://elitetorrent.eu/torrents.php?cat=4&buscar=Gotham+3x02&orden=fecha&pag=1&modo=listado + response: + body: + string: !!binary | + H4sIAAAAAAAAA+xY/XLbuBH/23kKFJ2ppFYk9eHYliXyxl+XXJs6mdiXayeT8azAFQUHBBgAlKw5 + 31P0CfoMfYS8WAckJVG25Ny1yUz/qP+w8LH72x+wiwW4o9+dvz67/vubCzK1qSBvfjx99cMZoV4Q + /NQ/C4Lz63Pyt5fXf31Fun6HXGuQhluuJIgguLikhE6tzY6DYD6f+/O+r3QSXL8N7hxW1ylXTc/W + NP3YxjR6Rggho8LoXSqkCbdAdQeDQYmwkkeIq+YYDJKpxkmpaY6DAAW3aJXWKK2PeUBJEJFSOkUL + xMl5+Cnns5CeKWlRWu96kSElrOyF1OKdDZzFIWFT0AZtmNuJd+SgakgSUgzpX3AxVzo2Nf0MBWe5 + AEMSDZabNonRMNAJGFIxM20y5rbqtGujS0lNVihtkq8Ex9wylaKtQ5ZGtpI7R8M0z9ye1/j9hGOS + gYattNBYjVKZdp2AQc3RtMltjokyZEHSnE0VST//06laEClKi0TwsUayKBjl3Ko1J8HlR6JRhJSn + kOCN0Yx+wXH1fq/T7dykRvq3WbIGLddGjGZrFKZi9G8/5agXPlNpUDY9ARaN9VMu/VtDiV1kWPn5 + FmZQAtFoFJStTXwBMskhwZD+GWZwVcrugCjJ1EZMkKBEDcK/Nd8Bs2H/kZlib8q9CNBYLpTxmSml + ux1abpuxC4FmirhpmhmzbZPNVGnLcks4c56vwCcwc32fs5pnLLcCo9PcfMoxhmPyQtkppKR/1+mR + e3LhnHBdOmEUlLKlXlA/hipeRKOYzwiPQ8pgfFPFGt0YRYYaqlO8/CvmmQBjSkWhEvVAZCUKy4VQ + UjAJ6UUtRmg04mlSOaCIMhM4tJsikPxMJt9JnFMyVjpGHdIOJSBsSAuLQTQK4AGzIOazaO9JtuPc + HaBdfCdKp0tp1/YqcZKinao4pJkylhJg7nyGtJz1s2m2C5DLLLfV0V5irYOBrpmlmVoZm4HIMaSn + RXd50H3fp0RJJjj7GFI75cYv5RqNISm6y8lGgwZP0ikJFBv+wNiK0FhZJVeENj2UZ+B8U3jAbdI2 + JzzpgxRlTqN1cKySGo3OL67OTt6+OLlyziX3tQgSKqHRq9cvHk1YGAslaXR9cvrq8z8u3fyv4JCb + HDRXdRpCJVxWh1eqiRJCzWn0g+SMgyYGDf/8L/nIvMaEG6vVI8UzjaAJy1FaWJPa++JmFUOPDqHH + wGKiNHe7VF/MXENWX8VKLjgIYsVy4y08O6PRuWuTBbl+V5DZIt8NljcJjS6q1i7ZXrC6a2j0Ztnc + idxfi3vTWPOspkRenr/l2U7Vw5pqyplW07iuXAy9PN+pvl9TnymDdd13r68udinuB+UNSqOr4nen + gYNKsEIvpdfQpTcf+DRHnalaps00l4xnIDZdO1Z3nkHG3FtgY0LCbEvCGU37O26FZnHjk15rFEz7 + WxQ3oT2XbuWOjLaZ1jWaXFiIlQlKe39y9ijZkthTFasJZ9Myd9Ry+pZE/luMFcDHKZd8p1nBjVP7 + JoYr7FXidFfDTNEdTFyugm/JIyh8dzwDoTQUgUOid1Wnyl5f1VCmslyA5jHElERv1r2vbkmqdKyR + kuiyaHxD132PbApb8R+k6+pYO6fi6tXgQtx4a2wUIoM45jIpHjCubzJgVX+LDatr99S2B1gpFa9O + bLkxERkFNo5qExO3jtVybPwkisGUiyKbX1Wth3BMcPfJYGh0VrUeShgQeUyjK/ezw2BgdeRW+ITv + Hq+sdteXb6Ggf9TvDIKk8KhXppzqfVmlPY+Uow+QNmafDiGTgVw7okr3NEJJlheCk3gCYOsGbFll + 5aaXwJD0SIqm2thfo7v2Wsm3+OYIKVNC6ePfDwYDGnkV0d3u/M2qlZ8fXlVj0Bq8cnIJN+exnR4f + 9LK7YS2KNzS3aI2BfUy0ymXsrfkMSQXWKcC2n0XHdG9vb+8pt5QRuNMUItL/Ojx7g+f/D88vhGfn + pEOjw+5/FJ+dzhmNuv3/mQDVybjZafeeP293Wl8zUIuvG9xYSQYJl1A9CuthUE6QDJIbYDZ3r8n1 + 5taeoZuP0eJjjIDgiQwpc1uuaTQa62C7uFu5N1GqEHv8heVE3Gztceu6vdop2VE9osSCTtCG9GYs + QH6k0R+YyhZDUq8YrM5ESdD9e7Z54cdglfEEJiDQ+EUR8iHw0onuC9yLkSlXjVPyOJcxasElDh99 + y507VFKh7jyYO7/mntUcXxWSmpNcFlWEJm+btmonbd2Gdtr6mb9vvFAqEXgiQSwsZ+b1+BaZbXwI + 9ZC/1x9C9+/+fqXf+rnpRvxPYflzf//+Q8vPcjNtgk5yV+czrV/axaQIu3+UOCfnYLHZGkJofKYR + LF4IdIJN1Wo7rmlo/ARtNWpOF9eQXEKKTdV63/kwBB/MQrKwOwTfvXGTYepn4Bx06Yp5XBrU9hQn + SmPTLcpB/tJqzrmM1bztvkodbLtR7kWj3VjGhKsiJ8XqPVguvygKrnu3ptFuJNBoDUkCzUZJv9Em + jR9PvG6nu98/GBwdel03ArlVSzmDMnZjGSQ44zhvtIabRb3N7FrWEZ+sGAZZbozo9Qp+3UEwjoOD + /aA7GMcH+zEcdAeHg0Ps4tHgCAbjfWCT+OBwfOSKmdFjy6OgqMgtC3U2FdG/AQAA//8DAJ209efk + FwAA + headers: + cf-ray: [3bd9db07ca701aab-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Tue, 14 Nov 2017 12:08:20 GMT'] + server: [cloudflare-nginx] + set-cookie: ['ultima_busqueda=1; expires=Tue, 14-Nov-2017 12:08:22 GMT'] + x-powered-by: [PHP/5.4.16] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/elitetorrent/elitetorrent_daily.yaml b/tests/providers/torrent/elitetorrent/elitetorrent_daily.yaml new file mode 100644 index 0000000000..652902fdfb --- /dev/null +++ b/tests/providers/torrent/elitetorrent/elitetorrent_daily.yaml @@ -0,0 +1,83 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 81b059ae-c934-11e7-b6f9-1c1b0d9d2a41)] + method: GET + uri: https://elitetorrent.eu/torrents.php?cat=4&buscar=&orden=fecha&pag=1&modo=listado + response: + body: + string: !!binary | + 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 + AwA2VGhDlpEAAA== + headers: + cf-ray: [3bd9db03dca71a87-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Tue, 14 Nov 2017 12:08:19 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d460e40e7452ac451b558ef24f789e1f51510661299; expires=Wed, + 14-Nov-18 12:08:19 GMT; path=/; domain=.elitetorrent.eu; HttpOnly', 'layer=1; + expires=Wed, 15-Nov-2017 00:08:19 GMT'] + x-powered-by: [PHP/5.4.16] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/elitetorrent/elitetorrent_test.yaml b/tests/providers/torrent/elitetorrent/elitetorrent_test.yaml new file mode 100644 index 0000000000..ce8945d466 --- /dev/null +++ b/tests/providers/torrent/elitetorrent/elitetorrent_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 0 + pubdate: + title: 'Conquistadores: Adventum - 1x06 HDTV x264 SPANISH AUDIO-ELITETORRENT' + leechers: 0 + link: https://elitetorrent.eu/get-torrent/40795 + size: -1 + - seeders: 0 + pubdate: + title: 'Conquistadores: Adventum - 1x06 HDTV x264 SPANISH AUDIO-ELITETORRENT' + leechers: 0 + link: https://elitetorrent.eu/get-torrent/40794 + size: -1 + - seeders: 0 + pubdate: + title: Cherif - 2x08 HDTV x264 SPANISH AUDIO-ELITETORRENT + leechers: 0 + link: https://elitetorrent.eu/get-torrent/40793 + size: -1 + +backlog: + search_strings: + Episode: ['Gotham 3x02'] + results: + - seeders: 0 + pubdate: + title: Gotham - 3x02 HDTV x264 SPANISH AUDIO-ELITETORRENT + leechers: 0 + link: https://elitetorrent.eu/get-torrent/38309 + size: -1 + - seeders: 71 + pubdate: + title: Gotham - 3x02 HDTV x264 SPANISH AUDIO-ELITETORRENT + leechers: 13 + link: https://elitetorrent.eu/get-torrent/38295 + size: -1 From 0d43743719c56ac358ed92ed55f8786a9ec88ef7 Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 14 Nov 2017 13:57:17 +0100 Subject: [PATCH 15/25] Added tests for horriblesubs --- tests/providers/conftest.py | 4 +- .../horriblesubs/horriblesubs_backlog.yaml | 40 +++++ .../horriblesubs/horriblesubs_daily.yaml | 143 ++++++++++++++++++ .../horriblesubs/horriblesubs_test.yaml | 39 +++++ 4 files changed, 224 insertions(+), 2 deletions(-) create mode 100644 tests/providers/torrent/horriblesubs/horriblesubs_backlog.yaml create mode 100644 tests/providers/torrent/horriblesubs/horriblesubs_daily.yaml create mode 100644 tests/providers/torrent/horriblesubs/horriblesubs_test.yaml diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 82a5fe9624..ab935e9512 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import anidex, elitetorrent, thepiratebay, torrentz2, zooqle +from medusa.providers.torrent import anidex, elitetorrent, horriblesubs, thepiratebay, torrentz2, zooqle import pytest @@ -15,7 +15,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, elitetorrent, thepiratebay, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, horriblesubs, thepiratebay, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/horriblesubs/horriblesubs_backlog.yaml b/tests/providers/torrent/horriblesubs/horriblesubs_backlog.yaml new file mode 100644 index 0000000000..268ac5afdb --- /dev/null +++ b/tests/providers/torrent/horriblesubs/horriblesubs_backlog.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d5a062596a3dce73d239c437d02e3087c1510663255] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 0f396cee-c939-11e7-aa23-1c1b0d9d2a41)] + method: GET + uri: http://horriblesubs.info/lib/search.php?value=Dragon+Ball+Super+115 + response: + body: + string: !!binary | + H4sIAAAAAAAAA+xX0W7iOBT9FSsrrWYfkgAJBFDIalrKtAO0Uwqazq72wcQ3xIOJM7ZDyt+PHELL + toXSh5m2UiWEHN9jn+PrQ47wFZ4yQCHDUnYMAQywBJMmETdQCIylmBCazDpGxUBTLgiIYqhLMsVh + WQp8JRAlHYMIPOOJOcWMmTJLQZjVat1ABCtshpkQkChCZcrwqmPoVeSWmUmT4SkwI/hQrdr64/2F + fIwUVQw6xhUAwoyhUqFEERdIxVQiGfPcQLGAqGPY+kHaD1QYQbeYQkd6jys95ds4QCaqVuu+rci2 + FEaTeZRpqlIS0jOm26ykxu5DruuBL1Oc3LVTmnqtEfi4VPiHEWigZvdtjQ0OpPdq++mL+iH0Gvh8 + +mrlieOvAYcIKJAPFNhK6C/txsAndHnfknofifa2/lErF5PP9fJ2QwjbGNOnD220thD6V0v4z7fp + g34SZqpVCiiW5gLPElCbjmw3SnNs+lQafliA0UBPl71br2//faM6mUjaU0Xj9j/jk9Go1/901T27 + /np6Pvn8rdb44kwGl9eDo5PR2P1TiU6sVNq27WSFsaUEDucgrDxqe57n2ThJeJaEoHEZ0bANIuRp + CkJmIgJhqXm70Wq09sBpokAkoHIsBOVCWlpq1XH2UTCAMAYhUywwoRIsLmZP8fAUkmIsCvQOBo2y + pALMVGxJ2m5WHgGlbmphAQmezqyQL3bttZjdcj8tT9FkZS5TWWy4A5sCiAhC9fh+5W3JGAuwQrzg + YIVJu1m5d4QSpix9rXd3tmg/gpObjsxpOMdSbsNd17nFG8HadXteD1t2Vrx4nx/o5/Ea/T9DbxtT + UntJIbdbXrNaq9nl5kZQrjtMErkjfkJOl+cJ45igSPAF6lEGPRwqLlb3tOV5bkWUQbSu6pbZ+tmu + ff+e3ixX8iZfECPo9X6twEmqx0D0r+qewmyrtJb2I1+wBiaeEUwGv0PWiIdzUDuliduyXXfjhsOb + fJnNqBFMRvtTwCZ0+ewsKHPwJbNAS3iJLBiOP51e987c+pd63x0cXZx/PPEGx7V+97x7MT6/PHvP + gvcseHNZ4DbeQBbAyqtATmlt4byyLFguF16l6VVeXxa0aPQjrvFUkSn8oizY/Cd5yTAoNLxEGvS8 + 4bfR5+NT1x0f9xuX1/3aUa8+PHMvPjaGX4+vvPc0eE+Dt5cG3utPA0ekzaiRZa155bWlwY0zdYVy + 2OtLA6elPDFrtpI5nh6YBj8BAAD//wMAnKZf/bsUAAA= + headers: + cf-ray: [3bda0ac986d61acf-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Tue, 14 Nov 2017 12:40:56 GMT'] + server: [cloudflare-nginx] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/horriblesubs/horriblesubs_daily.yaml b/tests/providers/torrent/horriblesubs/horriblesubs_daily.yaml new file mode 100644 index 0000000000..95bc96cfaa --- /dev/null +++ b/tests/providers/torrent/horriblesubs/horriblesubs_daily.yaml @@ -0,0 +1,143 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 0f396cee-c939-11e7-aa23-1c1b0d9d2a41)] + method: GET + uri: http://horriblesubs.info/lib/latest.php + response: + body: + string: !!binary | + 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 + CGXg/zX4stf7AQAA//8DAKauFKkTnwEA + headers: + cf-ray: [3bda0ac365221ac3-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Tue, 14 Nov 2017 12:40:55 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d5a062596a3dce73d239c437d02e3087c1510663255; expires=Wed, + 14-Nov-18 12:40:55 GMT; path=/; domain=.horriblesubs.info; HttpOnly'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/horriblesubs/horriblesubs_test.yaml b/tests/providers/torrent/horriblesubs/horriblesubs_test.yaml new file mode 100644 index 0000000000..171f513d83 --- /dev/null +++ b/tests/providers/torrent/horriblesubs/horriblesubs_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 1 + pubdate: 2017-11-14 00:00:00 + title: '[HorribleSubs] Shounen Ashibe Go! Go! Goma-chan - 54 [480p]' + leechers: 0 + link: magnet:?xt=urn:btih:7FINJFIB6C4T2GHUGEFNF4NNTPQAAJYW&tr=http + size: -1 + - seeders: 1 + pubdate: 2017-11-14 00:00:00 + title: '[HorribleSubs] Shounen Ashibe Go! Go! Goma-chan - 54 [720p]' + leechers: 0 + link: magnet:?xt=urn:btih:ZG3LKVRVO6LFFWHYTJSNJHNYLVS7I5AW&tr=http + size: -1 + - seeders: 1 + pubdate: 2017-11-13 00:00:00 + title: '[HorribleSubs] Shounen Ashibe Go! Go! Goma-chan - 54 [1080p]' + leechers: 0 + link: magnet:?xt=urn:btih:QAZ6NJVICWBUJUOCIUJPG6B76PT3UGYU&tr=http + size: -1 + +backlog: + search_strings: + Episode: ['Dragon Ball Super 115'] + results: + - seeders: 1 + pubdate: 2017-11-10 00:00:00 + title: '[HorribleSubs] Dragon Ball Super - 115 [480p]' + leechers: 0 + link: magnet:?xt=urn:btih:ZTERRFKGSDIXWHNUJY26P3ULQXLBERT4&tr=http + size: -1 + - seeders: 1 + pubdate: 2017-11-10 00:00:00 + title: '[HorribleSubs] Dragon Ball Super - 115 [720p]' + leechers: 0 + link: magnet:?xt=urn:btih:MTGHXFI45P5K4LBONAE7LC2KDNDOTNQI&tr=http + size: -1 From 0118a89f89e91def87d612e1c4bebbb0207aac49 Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 14 Nov 2017 14:22:40 +0100 Subject: [PATCH 16/25] Added limetorrents test & removed dos --- medusa/providers/torrent/html/limetorrents.py | 15 +- tests/providers/conftest.py | 5 +- .../limetorrents/limetorrents_backlog.yaml | 132 ++++++++++++++ .../limetorrents/limetorrents_daily.yaml | 165 ++++++++++++++++++ .../limetorrents/limetorrents_test.yaml | 39 +++++ 5 files changed, 342 insertions(+), 14 deletions(-) create mode 100644 tests/providers/torrent/limetorrents/limetorrents_backlog.yaml create mode 100644 tests/providers/torrent/limetorrents/limetorrents_daily.yaml create mode 100644 tests/providers/torrent/limetorrents/limetorrents_test.yaml diff --git a/medusa/providers/torrent/html/limetorrents.py b/medusa/providers/torrent/html/limetorrents.py index 4a18ff6222..b0b278a4d1 100644 --- a/medusa/providers/torrent/html/limetorrents.py +++ b/medusa/providers/torrent/html/limetorrents.py @@ -8,8 +8,6 @@ import re import traceback -from contextlib2 import suppress - from medusa import tv from medusa.bs4_parser import BS4Parser from medusa.helper.common import ( @@ -20,7 +18,6 @@ from medusa.providers.torrent.torrent_provider import TorrentProvider from requests.compat import urljoin -from requests.exceptions import ConnectionError as RequestsConnectionError, Timeout log = BraceAdapter(logging.getLogger(__name__)) log.logger.addHandler(logging.NullHandler()) @@ -60,7 +57,7 @@ def __init__(self): self.minleech = None # Cache - self.cache = tv.Cache(self, min_time=10) + self.cache = tv.Cache(self, min_time=15) def search(self, search_strings, age=0, ep_obj=None): """ @@ -146,21 +143,15 @@ def process_column_header(th): if len(title) < len(alt_title): title = alt_title.replace('-', ' ') - torrent_id = regex_result.group(2) info_hash = hash_regex.search(title_url).group(2) - if not all([title, torrent_id, info_hash]): + if not all([title, info_hash]): continue - with suppress(RequestsConnectionError, Timeout): - # Suppress the timeout since we are not interested in actually getting the results - self.session.get(self.urls['update'], timeout=0.1, params={'torrent_id': torrent_id, - 'infohash': info_hash}) - download_url = 'magnet:?xt=urn:btih:{hash}&dn={title}{trackers}'.format( hash=info_hash, title=title, trackers=self._custom_trackers) # Remove comma as thousands separator from larger number like 2,000 seeders = 2000 - seeders = try_int(cells[labels.index('Seed')].get_text(strip=True).replace(',', ''), 1) + seeders = try_int(cells[labels.index('Seed')].get_text(strip=True).replace(',', '')) leechers = try_int(cells[labels.index('Leech')].get_text(strip=True).replace(',', '')) if seeders < min(self.minseed, 1): diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index ab935e9512..586d2e45e1 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,8 @@ import os from collections import namedtuple -from medusa.providers.torrent import anidex, elitetorrent, horriblesubs, thepiratebay, torrentz2, zooqle +from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, thepiratebay, torrentz2, + zooqle) import pytest @@ -15,7 +16,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, elitetorrent, horriblesubs, thepiratebay, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, thepiratebay, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/limetorrents/limetorrents_backlog.yaml b/tests/providers/torrent/limetorrents/limetorrents_backlog.yaml new file mode 100644 index 0000000000..89a2056662 --- /dev/null +++ b/tests/providers/torrent/limetorrents/limetorrents_backlog.yaml @@ -0,0 +1,132 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [PHPSESSID=f6m285u1im5opcr5oqjea3cjv5; __cfduid=d61b4a29592b7d3dabd3367290e3ac6d61510665157] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 7c4823a1-c93d-11e7-92e1-1c1b0d9d2a41)] + method: GET + uri: https://www.limetorrents.cc/search/tv/Arrow%20S05E07/ + response: + body: + string: !!binary | + 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 + e0dy/VE9mQ8O+3v/BwAA//8DAGNsY5QadAAA + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + cf-ray: [3bda39350f9d1adb-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=utf-8] + date: ['Tue, 14 Nov 2017 13:12:37 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/limetorrents/limetorrents_daily.yaml b/tests/providers/torrent/limetorrents/limetorrents_daily.yaml new file mode 100644 index 0000000000..eac94f8077 --- /dev/null +++ b/tests/providers/torrent/limetorrents/limetorrents_daily.yaml @@ -0,0 +1,165 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 7c4823a1-c93d-11e7-92e1-1c1b0d9d2a41)] + method: GET + uri: https://www.limetorrents.cc/browse-torrents/TV-shows/ + response: + body: + string: !!binary | + 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 + z4dX+n8dMent/X8AAAD//wMA2GCeiEmjAAA= + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + cf-ray: [3bda392f7dc11adb-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=utf-8] + date: ['Tue, 14 Nov 2017 13:12:37 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d61b4a29592b7d3dabd3367290e3ac6d61510665157; expires=Wed, + 14-Nov-18 13:12:37 GMT; path=/; domain=.limetorrents.cc; HttpOnly', PHPSESSID=f6m285u1im5opcr5oqjea3cjv5; + path=/; domain=.limetorrents.cc] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/limetorrents/limetorrents_test.yaml b/tests/providers/torrent/limetorrents/limetorrents_test.yaml new file mode 100644 index 0000000000..570b953382 --- /dev/null +++ b/tests/providers/torrent/limetorrents/limetorrents_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 0 + pubdate: 2017-11-14 00:00:00 + title: Travel Man 48 Hours In S05E04 Stockholm HDTV x264-PLUTONiUM + leechers: 0 + link: magnet:?xt=urn:btih:191AF23228394917EF80925CD6E7D5868FDEDB39 + size: 152955781 + - seeders: 0 + pubdate: 2017-11-14 00:00:00 + title: Come Dine With Me S08E73 HDTV x264-NORiTE + leechers: 0 + link: magnet:?xt=urn:btih:A148339F51D69A178E9B32045CE2C1267167FBA3 + size: 162109849 + - seeders: 0 + pubdate: 2017-11-14 00:00:00 + title: Come Dine With Me S08E76 HDTV x264-NORiTE + leechers: 0 + link: magnet:?xt=urn:btih:C755231982B054536562349BDE1DBF27D705C902 + size: 172396380 + +backlog: + search_strings: + Episode: ['Arrow S05E07'] + results: + - seeders: 2 + pubdate: 2017-10-27 00:00:00 + title: Arrow S05E07 1080p WEB-DL 6CH x265 HEVC-PSA + leechers: 8 + link: magnet:?xt=urn:btih:D540765A1D0B49EC1C7BF6186C42D9E652500AAA + size: 524350914 + - seeders: 0 + pubdate: 2017-10-27 00:00:00 + title: Arrow S05E07 720p HEVC x265-MeGusta + leechers: 0 + link: magnet:?xt=urn:btih:9E3824E13A6401AC1B39E0100062335DDCF3FA38 + size: 290633809 From b95a80eea5ea567ae236e3dd0c6d6f71ebee1838 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 16 Nov 2017 14:56:15 +0100 Subject: [PATCH 17/25] Rewrite newptc and add tests, some other fixes to providers --- medusa/providers/torrent/html/elitetorrent.py | 12 +- medusa/providers/torrent/html/limetorrents.py | 4 +- medusa/providers/torrent/html/newpct.py | 197 +- medusa/providers/torrent/html/shanaproject.py | 4 +- tests/providers/conftest.py | 4 +- .../torrent/newpct/newpct_backlog.yaml | 2223 +++++++++++++++++ .../torrent/newpct/newpct_daily.yaml | 1299 ++++++++++ .../providers/torrent/newpct/newpct_test.yaml | 39 + 8 files changed, 3667 insertions(+), 115 deletions(-) create mode 100644 tests/providers/torrent/newpct/newpct_backlog.yaml create mode 100644 tests/providers/torrent/newpct/newpct_daily.yaml create mode 100644 tests/providers/torrent/newpct/newpct_test.yaml diff --git a/medusa/providers/torrent/html/elitetorrent.py b/medusa/providers/torrent/html/elitetorrent.py index 1b80564e30..21b1651a53 100644 --- a/medusa/providers/torrent/html/elitetorrent.py +++ b/medusa/providers/torrent/html/elitetorrent.py @@ -6,7 +6,6 @@ import logging import re -import traceback from medusa import tv from medusa.bs4_parser import BS4Parser @@ -19,12 +18,12 @@ log = BraceAdapter(logging.getLogger(__name__)) log.logger.addHandler(logging.NullHandler()) -id_regex = re.compile(r'/torrent/(\d+)') - class EliteTorrentProvider(TorrentProvider): """EliteTorrent Torrent provider.""" + id_regex = re.compile(r'/torrent/(\d+)') + def __init__(self): """Initialize the class.""" super(EliteTorrentProvider, self).__init__('EliteTorrent') @@ -86,7 +85,7 @@ def search(self, search_strings, age=0, ep_obj=None): for search_string in search_strings[mode]: if mode != 'RSS': - search_string = re.sub(r'S0*(\d*)E(\d*)', r'\1x\2', search_string) + search_string = re.sub(r'S0?(\d+)E(\d+)', r'\1x\2', search_string) search_params['buscar'] = search_string log.debug('Search string: {search}', @@ -125,7 +124,7 @@ def parse(self, data, mode): for row in torrent_rows[1:]: try: title = self._process_title(row.find('a', class_='nombre')['title']) - torrent_id = id_regex.match(row.find('a')['href']) + torrent_id = EliteTorrentProvider.id_regex.match(row.find('a')['href']) if not all([title, torrent_id]): continue @@ -158,8 +157,7 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/medusa/providers/torrent/html/limetorrents.py b/medusa/providers/torrent/html/limetorrents.py index b0b278a4d1..316f64b1ae 100644 --- a/medusa/providers/torrent/html/limetorrents.py +++ b/medusa/providers/torrent/html/limetorrents.py @@ -6,7 +6,6 @@ import logging import re -import traceback from medusa import tv from medusa.bs4_parser import BS4Parser @@ -180,8 +179,7 @@ def process_column_header(th): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/medusa/providers/torrent/html/newpct.py b/medusa/providers/torrent/html/newpct.py index 1f5905a8f0..5354421168 100644 --- a/medusa/providers/torrent/html/newpct.py +++ b/medusa/providers/torrent/html/newpct.py @@ -6,14 +6,12 @@ import logging import re -import traceback -from medusa import ( - helpers, - tv, -) +from collections import OrderedDict + +from medusa import tv from medusa.bs4_parser import BS4Parser -from medusa.helper.common import convert_size +from medusa.helper.common import convert_size, try_int from medusa.logger.adapters.style import BraceAdapter from medusa.providers.torrent.torrent_provider import TorrentProvider @@ -26,6 +24,9 @@ class NewpctProvider(TorrentProvider): """Newpct Torrent provider.""" + search_regex = re.compile(r'(.*) S0?(\d+)E0?(\d+)') + torrent_id = re.compile(r'\/(\d{6,7})_') + def __init__(self): """Initialize the class.""" super(NewpctProvider, self).__init__('Newpct') @@ -34,14 +35,19 @@ def __init__(self): # URLs self.url = 'http://www.newpct.com' - self.urls = { - 'search': urljoin(self.url, 'index.php'), - } + self.urls = OrderedDict([ + ('daily', urljoin(self.url, 'ultimas-descargas')), + ('torrent_url', urljoin(self.url, 'descargar-torrent/0{0}_{1}.html')), + ('download_series', urljoin(self.url, 'descargar-serie/{0}/capitulo-{1}/hdtv/')), + ('download_series_hd', urljoin(self.url, 'descargar-seriehd/{0}/capitulo-{1}/hdtv-720p-ac3-5-1/')), + ('download_series_vo', urljoin(self.url, 'descargar-serievo/{0}/capitulo-{1}/')), + ]) # Proper Strings # Miscellaneous Options self.onlyspasearch = None + self.torrent_id_counter = 0 # Torrent Stats @@ -58,43 +64,37 @@ def search(self, search_strings, age=0, ep_obj=None): :returns: A list of search results (structure) """ results = [] - - # Only search if user conditions are true lang_info = '' if not ep_obj or not ep_obj.series else ep_obj.series.lang - # http://www.newpct.com/index.php?l=doSearch&q=fringe&category_=All&idioma_=1&bus_de_=All - # Search Params - search_params = { - 'l': 'doSearch', - 'q': '', # Show name - 'category_': 'All', # Category 'Shows' (767) - 'idioma_': 1, # Language Spanish (1) - 'bus_de_': 'All' # Date from (All, hoy) - } - for mode in search_strings: log.debug('Search mode: {0}', mode) # Only search if user conditions are true if self.onlyspasearch and lang_info != 'es' and mode != 'RSS': - log.debug('Show info is not spanish, skipping provider search') + log.debug('Show info is not Spanish, skipping provider search') continue - search_params['bus_de_'] = 'All' if mode != 'RSS' else 'hoy' - for search_string in search_strings[mode]: + search_urls = [self.urls['daily']] + if mode != 'RSS': log.debug('Search string: {search}', {'search': search_string}) - search_params['q'] = search_string - response = self.session.get(self.urls['search'], params=search_params) - if not response or not response.text: - log.debug('No data returned from provider') - continue + search_matches = NewpctProvider.search_regex.match(search_string) + name = search_matches.group(1).lower().replace(' ', '-') + chapter = '{0}{1}'.format(search_matches.group(2), search_matches.group(3)) + search_urls = [self.urls[url].format(name, chapter) for url in self.urls + if url.startswith('download')] - results += self.parse(response.text, mode) + for url in search_urls: + response = self.session.get(url) + if not response or not response.text: + log.debug('No data returned from provider') + continue + + results += self.parse(response.text, mode) return results @@ -110,41 +110,63 @@ def parse(self, data, mode): items = [] with BS4Parser(data, 'html5lib') as html: - torrent_table = html.find('table', id='categoryTable') - torrent_rows = torrent_table('tr') if torrent_table else [] + torrent_table = html.find('div', class_='content') + + torrent_rows = [] + if torrent_table: + torrent_rows = torrent_table('div', class_='info') if mode == 'RSS' else [torrent_table] # Continue only if at least one release is found - if len(torrent_rows) < 3: # Headers + 1 Torrent + Pagination + if not torrent_rows or not torrent_rows[0]: log.debug('Data returned from provider does not contain any torrents') return items - # 'Fecha', 'Título', 'Tamaño', '' - # Date, Title, Size - labels = [label.get_text(strip=True) for label in torrent_rows[0]('th')] - - # Skip column headers - for row in torrent_rows[1:-1]: - cells = row('td') - + for row in torrent_rows: try: - torrent_anchor = row.find('a') - title = self._process_title(torrent_anchor.get_text()) - download_url = torrent_anchor.get('href', '') - if not all([title, download_url]): + if mode == 'RSS': + quality = row.find('span', id='deco') + if not quality.get_text(strip=True).startswith('HDTV'): + if self.torrent_id_counter: + self.torrent_id_counter -= 1 + continue + + anchor = row.find('a') + if not self.torrent_id_counter: + torrent_content = self._get_content(anchor.get('href'), mode) + if not torrent_content: + continue + title, torrent_id, torrent_size, pubdate_raw = torrent_content + else: + self.torrent_id_counter -= 1 + title = '{0} {1}'.format(anchor.h2.get_text(strip=True), + quality.contents[0].strip()) + torrent_id = self.torrent_id_counter + torrent_size = quality.contents[1].text.replace('Tamaño', '').strip() + else: + torrent_info = self._parse_download(row, mode) + if not torrent_info: + continue + title, torrent_id, torrent_size, pubdate_raw = torrent_info + + if not all([title, torrent_id]): continue + download_url = self.urls['torrent_url'].format(torrent_id, title) + seeders = 1 # Provider does not provide seeders leechers = 0 # Provider does not provide leechers - torrent_size = cells[labels.index('Tamaño')].get_text(strip=True) + size = convert_size(torrent_size) or -1 + pubdate = self.parse_pubdate(pubdate_raw, dayfirst=True) + item = { 'title': title, 'link': download_url, 'size': size, 'seeders': seeders, 'leechers': leechers, - 'pubdate': None, + 'pubdate': pubdate, } if mode != 'RSS': log.debug('Found result: {0} with {1} seeders and {2} leechers', @@ -152,70 +174,45 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items - @staticmethod - def _process_title(title): - # Add encoder and group to title - title = title.strip() + ' x264-NEWPCT' - - # Quality - Use re module to avoid case sensitive problems with replace - title = re.sub(r'\[ALTA DEFINICION[^\[]*]', '720p HDTV', title, flags=re.IGNORECASE) - title = re.sub(r'\[(BluRay MicroHD|MicroHD 1080p)[^\[]*]', '1080p BluRay', title, flags=re.IGNORECASE) - title = re.sub(r'\[(B[RD]rip|BLuRay)[^\[]*]', '720p BluRay', title, flags=re.IGNORECASE) - - # Language - title = re.sub(r'\[(Spanish|Castellano|Español)[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) - title = re.sub(r'\[AC3 5\.1 Español[^\[]*]', 'SPANISH AUDIO AC3 5.1', title, flags=re.IGNORECASE) - - return title - - def get_content(self, url, params=None, timeout=30, **kwargs): - """ - Parse URL to get the torrent file. - - :return: 'content' when trying access to torrent info (For calling torrent client). - """ - data = self.session.get(url, params=params, timeout=timeout).text - url = re.search(r'http://tumejorserie.com/descargar/.+\.torrent', data, re.DOTALL).group() - - # kwargs['returns'] = trickery - return self.session.get_content(url, params=params, timeout=timeout, **kwargs) + def _get_content(self, torrent_url, mode): + response = self.session.get(torrent_url) + if not response or not response.text: + log.debug('No data returned for first item') + return - def download_result(self, result): - """Save the result to disk.""" - # check for auth - if not self.login(): - return False + with BS4Parser(response.text, 'html5lib') as html: + torrent_content = html.find('div', class_='content') + if not torrent_content: + log.debug('Wrong data returned for first item') + return - urls, filename = self._make_url(result) + return self._parse_download(torrent_content, mode) - for url in urls: - # Search results don't return torrent files directly, - # it returns show sheets so we must parse showSheet to access torrent. - response = self.session.get(url) - url_torrent = re.search(r'http://tumejorserie.com/descargar/.+\.torrent', response.text, re.DOTALL).group() + def _parse_download(self, torrent_content, mode): + torrent_dl = torrent_content.find('div', id='tabs_content_container') + if not torrent_dl: + log.debug('No data returned for searched item') + return - if url_torrent.startswith('http'): - self.headers.update({'Referer': '/'.join(url_torrent.split('/')[:3]) + '/'}) + torrent_h1 = torrent_content.find('h1') + title = torrent_h1.get_text(strip=True).split('/')[-1] - log.info('Downloading a result from {0}', url) + torrent_info = torrent_content.find('div', class_='entry-left') + spans = torrent_info('span', class_='imp') + size = spans[1].contents[1].strip() + pubdate_raw = spans[2].contents[1].strip() - if helpers.download_file(url_torrent, filename, session=self.session, headers=self.headers): - if self._verify_download(filename): - log.info('Saved result to {0}', filename) - return True - else: - log.warning('Could not download {0}', url) - helpers.remove_file_failed(filename) + dl_script = torrent_dl.find('script', type='text/javascript').get_text(strip=True) + item_id = try_int(NewpctProvider.torrent_id.search(dl_script).group(1)[1:]) - if urls: - log.warning('Failed to download any results') + if mode == 'RSS' and not self.torrent_id_counter: + self.torrent_id_counter = item_id - return False + return title, item_id, size, pubdate_raw provider = NewpctProvider() diff --git a/medusa/providers/torrent/html/shanaproject.py b/medusa/providers/torrent/html/shanaproject.py index 309cd98e36..693556fb78 100644 --- a/medusa/providers/torrent/html/shanaproject.py +++ b/medusa/providers/torrent/html/shanaproject.py @@ -6,7 +6,6 @@ import logging import re -import traceback from medusa import tv from medusa.bs4_parser import BS4Parser @@ -153,8 +152,7 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 586d2e45e1..a763b1588e 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, thepiratebay, torrentz2, +from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, thepiratebay, torrentz2, zooqle) import pytest @@ -16,7 +16,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, thepiratebay, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, thepiratebay, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/newpct/newpct_backlog.yaml b/tests/providers/torrent/newpct/newpct_backlog.yaml new file mode 100644 index 0000000000..89d9fe7ae8 --- /dev/null +++ b/tests/providers/torrent/newpct/newpct_backlog.yaml @@ -0,0 +1,2223 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [PHPSESSID=nmvvpb2fcps639eh9pl295kdh1] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 5698729e-cacc-11e7-8208-1c1b0d9d2a41)] + method: GET + uri: http://www.newpct.com/descargar-seriehd/the-gifted/capitulo-13/hdtv-720p-ac3-5-1/ + response: + body: + string: !!binary | + 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 + AA== + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [Keep-Alive] + content-encoding: [gzip] + content-type: [text/html; charset=iso-8859-1] + date: ['Thu, 16 Nov 2017 12:47:45 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + keep-alive: ['timeout=5, max=10000'] + pragma: [no-cache] + server: [Apache] + vary: [Accept-Encoding] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [PHPSESSID=nmvvpb2fcps639eh9pl295kdh1] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 5698729e-cacc-11e7-8208-1c1b0d9d2a41)] + method: GET + uri: http://www.newpct.com/descargar-serie/the-gifted/capitulo-13/hdtv/ + response: + body: + string: !!binary | + H4sIAAAAAAAAA7R9aVfjurLo57PXev8hO+uetr0jjOTZgGGFJDRD09BAMzTNOSskDoSMZCLQ3ee3 + v6qSnDgDnX3fu3ev3sTWVKVSqVRVKslbfxZPChc3p6XM/sXxp+0/th4HrSb+xOXq9h//2PpzbS1z + HA/KmYvyQz+ztoZpLXx/HAy6a/HzsD6KsoVOexC3B2sXr904m6nItyg7iMeDdWxvM1N5LPf68SD6 + erG3FmQz60nTF/VBM5bN/mNrgC/bF49x5mO9NoirGTHmdqYa9yvl3kO5l+nHvXqcGXR6PWg+89Ar + D+r9rXVZK/PHPxLM2uVWHGWxWq/eHdQ77RRKEvQ/ko517usAvhiP6pVYdjPVQ9nOqB6/dDu9QaqR + l3p18BhVqdYavbBMvV0f1MvNNcC1GUeCZVrlcb01bCUJWWy2WW83Mr24GWXrrfJD/O9+r5LNPPbi + WpRFcm6sr7+8vJhtAFgZmJVOax1+15v1+16597quwK8P4la3WR7E69RGf10WF+ZT90ERdgqm3BzE + vTYUzmYGMDaQ0O0265UyUmW91+/nxq3m7zGoxXF1HWojkaPsf29sEJ2FcekB2fr1NDlFplp+zW4v + LbZWBmC9ZYX/MdPRSrndaUPHVvRmgu8a4bs+eIzXHqg/65Vytz4YNjtrwl5/rA5G65KYCVZ1JHuv + 042yiF8Koc/UuqL8XNHf8eB8WRrNVKn/MYbIZP74IwGHoOLe4DXKdh42aExTEP/7g/tHBv5b0vJv + +v1Ojf/F3uN/74Ed9porgaak1fngtRn3H+N4kIjCKQf2J3n/H1O60u9jAWrLhJcd4Qoe2J7jeckM + JqEKWQtz/X8MgV7c73ba/fqIUPh/h9uOB9V22bzvdKBDvXK3Um1LkQJA18ovcb/Titdt0zIFgU0n + /x3A2hSwJgFrCjC21DcfOp2HZgyzuk9QkZq1cqvefI1OunE7d15u9zcczpkH//ucaxKcloDTtv9I + Rr1wdnB6cZ7JZQ6/fC2d3eDQZ+TqBTMGl003c/5Yb2VqnV6m06zGvcx9r/MCk6af0Vud/qD5qpJH + kARzop/p1DIHJcNUTCQnSxr+U3lUlqlaBhaJSc/+O0P51F9/eh7GvVezVW+bT9ChrXXZppqF/2tg + K8P+oNMyW3F7OAdXUvS2jt2/256ggLASrkF9we0/1kdqACudakxQ+6P2+qA3bDdkEWg5O20ZxuM2 + blfrtTskqRq4Q+hORoHQcayAswdI+6d+pgYLfz9T7sUZQLsCIq/ezsBqAGPYgQXHkCOTKCn9fhff + 6eW0081X+0COAT4O2ziuBcCRRn+WUJmfGYsLf02INeExP/Ac22GccWz8//wxQ//sHP2zsMwNymuV + Wrn/2gbi1MrNfgzL3vpf0NFCMX+Rv13/K/PXOiRkTnswVQdQodcYmZlSufKYqXZaZehQvZ+xHgGx + McjychWLZ/TasF1BwawbPzIjkO1v0Uu9Xe28bL7dZr+P3dr3Iec+73wf+zx7F91iom/X4Y/zfey5 + B/DHyaq+3LHbbAsSwvZuXaZzTJItQEING6E3F/96MRaiJxdyrP5pjD/fx054qqpWk1yvQk/idReh + DqCcH8ftBAA2A8lUxCunIFAtHxAheqVarCWlsGXsC7y5XOb1AAOJloCsMN0LJ+kFTGOs9klhhdB7 + WfanuLvbRCK+RrKCBYXxf8/+PraFmfRfUWLsCeAc+InjBAerNkstzC0jxbMsS01RGUDZBjpZ8WyD + 1CckhW9Tq4p4hPg6Fuh0qb7MKPdVm+tUwn9BospGPV+WGEGSO56MlYcl+vL1gX6qU1r7AdXFVIv+ + hsnoEgGg89QkFcXerCuwEqrvm5Vxo0ll5FAHT5Rv9SYEKScESdqn3q4Pnp/MaYeyd6wdcfbEelGK + s+s1PZuNotfb9p3RiwfDXnvzKXqTY0S8U6sM4e+U3WJJteydKmMTZya5QuYSz42dhNXgrSWLtJPa + erYvB19VDrsqx9h8us0iG4eT7rkwvRIuG04GLpAzjWhYRtAkEeAhBKGAjRB3YENtiSi08icnJhxM + e9iZdALRr8phIqbDHj7IOQVp6b6kCxJW0BWHuiGRdtUcgdqOLEdkASJSX3QSFHICThgCO4q9v+V3 + iLtC3ZpgjgO0CYPV3rKMH1QAkJYtwBgR6/mU4NRmGsa/PsqcmIiII5Twfy3VhbA1TfLdfnbzF2FB + aW1EWzKbhdLOgpZSHNTO5TZ7uvFrc5AItHJPDlNbUk5Bq8YTnoERgf7Fsk2HiDcRUp2eotITG0Cj + 2LKhG5sgvu/utqUkn6xl06Vh2RrwznqxjRxwE765+USew3qkY+Kum8fFjfJoZkCC2YzbD2DDRpGu + 87HF88w3tvhY5K0dePcLLDQ2dM823ZJgfOztGduRMO3QLtk7wnSsoGRv6ELYJvNN7pcsw/jwAVtF + Kx/XwvxAx3aFcJjtmsZWBIVD5noGti48j3nQPDwFPrTucsMwCBNhWmHJZpaFNeyQ2bYpSgIqeabn + lSwmBNSzTa8ktrF2njkhZIKcZdpXDVp0TYadKUF1yHb3duBviIAsxwUVz3SgsXcw3dtjnmdsCcvZ + 0UMzDAFaIHH09pACLlDAM31RsrBRD7vvmB50ndlmGCAFVBdggYd8QMF3kHqAOwe8HWMDsAgR7ZLP + 3BD7YOzQgEJLdmjaQGjhuEvRE0hygBRyaJUGSPi7TNt5hj77wXakBzYCze9K8goglCkAKdvY8Fxz + SxcW4EgDKVwimMcc6pvlWkSwCfa+6Qmks8ltrL5tCdkH7KuDGRza1C2f+aG5HFXLMxn2B+DRsNtm + ANQBKLt7ANkJcECZtomjFQaElbAdY1sXoIQLyDZ2gAobtrMFgyl8qkk4C+EyjpVMF0khHGEmSAeu + 6cve7QHjWKYHAHecDcvBrofYQWFjC45rcoQnuBxYXsCBgFbue3G58WsyX77Mz5cv8/NFeA5zHGMr + MDkyBHFynvjF44SLsH0cUaQAHzsB4haUAIeAeJDZgRkAKlA+sJFlYWC3YYx9F6YXImkBT3DTDYjl + fdOSbPtlltgu9l5wsZCh66EHjfq+QbNkjyjDDeDbXWdDd0yBBPQ8ahaYR5iBpDOMA3alCJoqDnLA + kG8kkWHiLQHj45CZDjAGyg7LLu34lkkTwycukvMYOZIosOvjKHCYrchEnuT50Esg+AsQuOwhnx+g + g/kBOkgPEGB6MI+pTexhhyTjgl1AwyckQpBPjkl08kIGHIODtpPNbnimC13YBh6lsXRICgmQNAFx + WojyC6QTgwmCVQyF6QJoV7IocCtMKh/HfIvGxIGp5OLcklOWAxgBIhcYA9KAaJ6Nwo+rfMvhRMBd + YtxCyIBtgGO4aTnIfkoyMx/mBBWwaVYXkWnmSYHVEQU3jy0WlUQuAnxjw+LmNo4XyOeA+g+keMoC + KwBSIA65Kfi0r+5C23K4oBtquLRhP86A4V+vDDTST57d6+hH9tDNZzcmC+01uzJ+SA0tc70VXW3+ + YtnPwVwJ1pyW+dfVv5pYqPh+Mx+olbf5VqYF/qICH99vATpCRarvt5EUuXdWgPn2foGkjdf3iyiS + fH2/hOxtezWmn7GNbDXLtLHQ3i1LRffeJ81PKnD1u05RiYfV1D1a2UjlN7xCBWrvN7Et0Xi/wBoV + aK1ik9ZKfj1b3dX8yq5+eb/En6rIYBUTvP6OCajE9W84jQo8/Q00EEoWrN/sy0rSPP+ONJIJ3i+x + LYfwnnqFqhJMyFUkOP9Nc1Rg/zc4SxJ0f8NTso3j99tIiFRZxXdnqzj39P3BTID0V9LuYtUEOv4N + Q8gS+6vlV7ySD55WSet4pQgcrZJJ+ZVYDFeW+Lp6Kp+umkLnK7vSWIlHd7U4r9M0jGEadlZOsm/v + Nye58QILDHpDmGK1VSxzsFKWXa5E6HQl5xZWs9141RxrrxZmVysR+bJ6KC5W49r5zXSXJZqrhcrN + qg6XVrGe9vru0i8Hd/w+FhLE/eoZ8ryov7HRtNhfV381/xphweoqVjtZ1Z9sbzXpi6uL1Fczysvq + Vkoream3coHeXTm5Dmje12Hel1cJ1d3VS8j1yqlaeL8EWmFywr+PtVSiGquE5t6q5bCMBbID6Pbr + qiX+bdVo/iJzpOnk0w4/TDqNsu3sZpKY+aIT42JOJcpCC1nWAGvONb2QLGaBniYBdhgZUbs+rDBZ + adTbnOzEvG8Y7BKDGbKsGN3esXwERpAJ0pYV6Al0G3YY4SZSrd6Oq5uD3uuPxMw9ipq3J0HevAny + d7rBhpt/6vlIH0ZHZjseD3TDMB+dvLE5adL4UTS7w/6jPjRH5eYwNtCxOvrwAbNhXdOLykaGLkkT + DQhRKQ8qj/qV7ON4So5r48dhdA3EfJpJK2Da5pOeQNwcQ93NX4B7udl8zfxA9AHon/kPH45u9csc + loOByzXoCRTH3KlxZ1BWBR/1dGWoWDAGj73OS+YQUFNDVtxMnmZHlEYwylaybBRly+0sgxFq93GA + ss0s0rx8jzTPYvQIkD27lgWSZ4c4EofwWwFOOoqyMdQYRtlOlo3hpdXNQoez5Sw7jrKZLPuIATRZ + VoqyoyyrRdkDYA7AMt/rlV/Nep9+gSxT9tr8FYOamoEy2F+YOboaQHZy/xRXBlh4UvoLdURW+SH7 + nWnHLxkMoir1esAFei1Xyn0k2sGsp18w4nLHuacJZZPf8eTpePI0VM9Y52imBo7EYa4A+adQ6jSX + n8Ao5i7VaIF+oepjemVSf5RrJvmGgXPpF4zidFfxlQ0C1g7kADVEpOka+8wjramxGN6q8ANveY19 + CSNtU2M38DYo39M+qsYuoUg80NiRIEdbidx3buJGQt/qnkO+PMtk2qMmHXnuLgtCmGhFqPyqsV5I + c9S1uJykrjC29dAM0IlhTX0udsC0vmwBxidxyRmsAK2YuMMMeAeR1uoM+/GwC4gmL9XOS1tjdXj9 + 8qCxXfj9/KKxayfSHvavCscPV7sau4K3MZQ64dJhaIXMCcmZjR43LgWIy82QXDzam7ahW+Q5Dj3p + vM6j59hm2hAxTFyX5PRkI2zb4VxjFXhy4PcRfm2OlIKXBwdAetiYq/xvuwEL0NHjmhbSQOPYZoB+ + RiZsM7TRfycEOWp3smdZdEhzJrgwtkJ7RydSn2nk8GIWUqgB4EKNleHHt2DM4FdY5KXS2Bm8WLYz + 9uC5iOh5AT3ngapQ9gmSXHhDhIGGMPZA2V34GUNV+Clr7BBZQGOfgD1qwAiQWNfYN+QSjQ0g8R5o + HaKzjbNjKKrCFVgNnpnGXuBHhSRo7KNQQSIaO8f0fv9s2Iz7GvsKbxgxorF2GHmcjXGYhOVLuS1s + IjdwjS09mYFpe+gN02HEmNahIbGBLKGF41GkyjbUk5wa8sQfnc9DnZD8eKw9bDZxE8Cxt3WXhtrP + q+2QPNPWoU3hAW94piUk2xZdYwfkDnF4nvzgJQDWAcwd6BmPLJudw1/B6lHI+jwSPnuOhMd2I+Gy + bxFMlq+QaLNrQM+hVtHLbgbkmuWOSc5Y6I+wkBto16IIAD4DadkB7WSgpxZ3ZIiN0PVpoVMylL5Q + z6RNHN83JVN8ilw2wGrcNpNNH4d81ywMTeppKD3LATpD0bW8Fbkhpu/ZgJAl53IB3dVB4ji2SzAx + cUsAavnoQcVhMNh9FLDzyGFvkc2ugCUCjXXhx9dYC8gjgN0+w+sVbYPBaL9Egt2EUTbL+pHFKsBK + psb2gHacdeAFOC/i7AKe1jV2Cg2sr2u0EKMEGzozCyD5nG8P3Pzd7SC4oxXy2ElrEYUg0k+FkXsM + cxc8V+DmJxCZpw6UK822JLOia/PZyUPuy0wre+FiK1BovNBEC5uAnPP30DTfag/l8r0KPKLlG7tV + FZPy8Ky0nyuYmyEXlRr3PR5UYS42I+2l1Sm/WQ9eeVznMFdHaTSHkVzWzG6vM+jgvqT5WO6fvLRP + VYydWYGlXR+zobEzvh3ebQwBvFoca05efwoSleRsuiyWB517yLk9uzP73WZ9oHe4YfZi7EGsG+ZT + p97GJFh6pF52A+jDqn8i9ArqWrv4Woy+4U8+6kEqa4BQjz4J/dKApb8t9KIBS38XCwyjA6EfsgLL + szPAAZSAHxMEwajTRyE7CwA1Sp9Z23sy92iaO4JlEDF6ikadejVzlrRTDabtYP7xzEg90ZAc601j + tv12MG0fa31cUusjKV+YWwIMQEH5W6NRwtEo4Wg8sdNomKttKsI3hX5qmP3hfX/Q088YYvEAvdzj + rB7qh6C45Co8dwTM1uJT5mlxxCdRWXupnZnbL8B+tD3TS23P0HYzChtuw/LCUTTixkqodiTFLmYG + tA/am91esI0oEpZYSLcMtfXSW9yOCINkMwK10ilatz3CTTJ9Px5c1FtxZziYaDGZpj7t1Kelnfo0 + 0ylhmRYtHQ6smoFj7sCqCe8baCPs4X6OCyIuUMqHK+Q645AwxP6WsL+fFrbxfNpxkfuiWzqoKAz3 + 8OSqgduIxoYbwCJlkerCQrnBhPu7IGDlnjHucYGExq2iZO+GaPjpHRp+WqShjuBhZQqTnVzLhqUQ + d/poIwv1Gbm1xRwXFwYL1hSg+4YwLdxEhs4HuNsNqhdpGjuwKAAZoOceRQ+4tHe+fJQ+EbFnRqgJ + gttIOHbz1zVMukozLveSfJwRVESq1Zj/6xd7Tom7ZykSaPAvI9CjaNYWYd3ojuU+VR5Ujlqv3Irl + a2Fm6h2Zj3H94XEwEaWHc9nycECSexSl+qNVoJuDuNSMW6if3OlgQR2CONos4J8jE8MgT0JAGWZV + SswmjNheyojtFCM6Hz6035k17XdGvP27WZPCvU0dKHe7cbtaeKw3q4D+ERDX2Fwyf9SCch1lH+vV + agxmk5xq2dQbGG+P8gkMuHanHWcTiXkEUgeIQTHQ1TosAuVXsFl//sS8sVjI0pu5K0NlX7rTqnh+ + 4L4OK8gru1bZeWq5U6sBzvs0jLTyHJndMka2f8ZQ017c6oxi6iJ2sKInvPS7Ug3JZ5fIfW8pZnsT + INl/yE7aitUqieVPbw3k7gNQWHtgtKcJiHOhksioNItViLmupkZ4M5kEk2YahM1oMlHA1GcHKbRg + 1VNuOaZANKInkOSsb+Tg90r9NtXvSP1W4Dfd5FNqIaBqk75e5W7CzRegTkxovgp9lCz1TSPxqCxy + CweGiK5zI+gf0V3BQmdhL4U+rOopWC8J3xzA6F6B6mcQ8QgurKJNUAoXQQIdR0THit6fW3p7VKkb + Kp7puPh6FRoJoRbbaOhvxtRjgdh+SmELmsfEX6EJ2/M0xfWaCC2uKZ6Y9OLaxV6MloKrKHDzKO9S + zxPKXi6pc0koKgwrgGE7hWE7haEIFXYiUJidI2ZXW9Ha/e9QOk+hhIUHv8Pl01zhA1m4uKRwUT+Y + K/xJFs4vKZzXB3OFz2XhwpLCBf1+rvCLLHy4pPCh/nmO5jGN05mi+dGSOkf6NZ+rlKdKL6rScEml + of51vtI5jW5fVRovqTTWv83VeaU6b6rO05I6T/rufI+ozvlSPbWi9NTnuTpD6tCnpVpqRWmp/fkO + vVClA1WptKRSSR/N1WlRnYGqU1tSp7agRJ9Qh+5VndMldU71vXnkGgSorip9WVLpi34+UTCwzM2S + Mjf6Rz474bqpCddNTK5r9Fa0tESooil3kyqHts1k+f+cXv4PkuX/czr2Kfzw4fPseu5NwrfmMgKZ + 4SxkODK+x17IUPE9C+FYN/N43X5OkLtJIQe43SyioGOcJ/r2XOkZs2RMoONLLTfvyaBPDCT0SMd0 + KHRyG3RO4SbBT6Db2uSwQhMi5Mw1A08Gpc5BRPeEC2onhk/prkV+GtebxFkJK2Cuj16asIRhlQF5 + eHYwfAv1bcgJKdgTdHHTs6UybAUYWSeKoNF6FPvok5at657po74MajMFyIEW5khrJ3AnMYiWU0Av + oJABfjeL9MaYWOFgcFcYkNFAVCpx5niImGtjgKDynNigTi9GM54s5ZqTmZBGQVGioYkORk8F3HLs + X0iOwkTt5zLMjyKEHaZdkB/MspjrIPYnSxiPfJ+BxUDnx9haFwPpcMgcz8cRUyNrmxQNF0oqnMwP + GQZwFtFK8oGKvvTR7eihMCniEp11ZH14fBKs6Cy04qg4vJApFjMo0i0EVjMtH2NdZVhtgXyw1K4p + PKS7MDny0naEY72HyAvbQX7LFrMU1Mt9NI6UDSaQbzEgWUbKop2LqPulJT17bz7VF+bTSTJs9dSw + BR8+1BdJJewCE55yn/FdwAP5l+KNGUYY6i7MKIdL/yYYcTtkvWFEKLARGK7otXOYhx47HOsAo/9w + MpHJHirWhg7ZzDNDogvOQAfDtpFASEcHnYqcAsiBENzYhqoOep+FIyOBXTmfyWC2acwXOmK5zKZI + XzlOlrPHBE1FYSvHI0yHUMbHSqsWB72+SGDaRcBR9TiFefogHOxkvpeguvI7UiQ6mOjTCYRDcRVp + n+rtobILQX3Lt6u9Tr060eBe+on+Ru5G+dIA+/HkXD5fRtpxuZK8gZVZP+1Up2bmabmaGJnw8ghW + kHw9pPYKJfl2ROJEBi+raHoZog5kJqKIwGSahz5kmGPIjh7IHU4RnHqI8jWQ8iZPsd0UGr6F0faW + R+OG8dEWDLVDEop5riFdWUNAqi1RGANC8umJULMt+XZM/fOCI/n6MdJOC/KxBEvbqXysYSH5eErl + 0VBpyoQvlFBvDzr9R5lyE80tJbcgGPGUz9yMuK1j8iOPbr+wUyb3ygx2fMceIOmJ6ePcMHeU6wgD + TAJ2eMf2IRk9fcU7Vo2KHLXaR27CqMXjEzCjjT+jiQbY4DNLelXquFy/TOkK++/UPVlS9YQssqTm + wzs188ug5rmuV3JjnhsZqSbWFSOum4O4P9BvEoVyWQtDPqMY/Vn98GGduFpVbqvKh8sqH3JyqSj9 + pAr6yUlKPzkhwyERXN/Sgms3kVnfZnWAb4s6AKknc+k+pfOFdD0lj9DXBjwtdrRvmlwCWSDkNt42 + NoonOQQtXsT89h4dxJDSwk9P82bU4WpGT5G/Bch3iVF25qZNy3Vd7S1kBEjSn8nL5wt6NxRdExNu + 1upsKqsTjNLNXzNtBaZIN+WZ9nxLjSUtNXQwTedbmm3Hmm/nckk7l0va8WfbEfPtFJe0U9S7YcoY + xljt3RTH7KY12mtvmW4CqTPR/Pg+59GS5x7mMlSsfeCbqFMFMtjeJ50DT2uQGsey+1liBheWSRB7 + oAWCPujRjpZjU3S/1M1Cm+rhGkhx9HOwBMIKw4V0LnFw5ckphza5bG/HsvFchEUO3DxCtUKpUdIh + D2MnG9E+nyU46iOWTfLZQ2FtOYlyYtl5hmoyqSY2RxUENJ8w7T4lmqbFJGB3d6uRR1K7SxsZ31JD + 8m1qjGD4QbE8iNVWxlW0dm0+SPfeG6xNJ+Q40431dpg0hgE3J2FKIoRTy6ZcG5rdx66m2lJbtbf9 + XuUvvIiEMrN3ydqa9pPSsfXzuBlXBp2edociSE3EfQe9MUU+3S+aCKdXc+Tkd5roRTV7MZ3q1tcV + mPUHdm1sUB4gfBVMEb4KUISl425G3jI36yjFlQKYbzTHEJzEiruQEZIL3ZLmC568KBaYj3uaJqzV + eIwOjQ3kM+4BX6BTHDQjYF5LDrpSkuGpiJyZnAUaLbIdqbOk4uyywDOVQltSPOPIWAOpRoOGgHPB + 5/K8i05bsw4ovCWpDVkiQFNABkTMCEolJRMHJpp402EDpO6mk7uylIyVOTJWvDnxbjsmC3kixf3Q + lOdu5O4Kzkw8T2erg0l0ZNCxlPK5K/epbe5Ags2RBGAUwCyhjYcN2zLxVBlOGZqZqDf5yZTC42Xj + YBdABi7tuuyAuebgFg4sIigJBB14qywOLq1elcXxwIbnNPvKLEFuKzME21tKsL05gu29x3d776C2 + 91vU1LQqwLRKIbaHcqNyd/tV3LGr9xYf6WY/p9tQsPC5uLt9u7v9CD8v4o6WpmqnMsStDmMzCTjD + BebP6XGehJF+NaOm2nqstx/0F9p9HKPnNXEbvyid9DIt3zTcLAb5APrNZXSp9otrsLImNC1GZywP + ObKRTXKZYygcyxubxVxu4ij+Bv2/vAXNUDauNTvyjiQNYDx2+gPtzljmSBwpR+LEFZ90c+oKlhF2 + UPbXL9ZMyZ1mkPIKz1++oaZZ9nv26OM3cd/6zMtX4fCo0HiIbd6FX/97NjsTLNhYyjyNOeZpLGEe + NFc5nqgFA4u2G21fCg9LhGp2gF1I1pGHVoOFUUOhsaMFGlkMdN7RtKW/pfEOEzb+1vwoLu1EMdUJ + MPKKi+qATlhsgWpoyTWb406kj34FC51CjunS6VUrVBIiQPdDgCLWoYNuZAMpOWvZ0mAnw9PdJYOJ + lmAZxwNU8n0lJ8l2ckkgz2E12V4rLnZ8ur22qB0WTDrdjVxFozonYRszAqO8lFzluTEvvycwyu+M + 1Vw6WtABZ2qX2dhyXHrAw7ykWAM5fTJFUXvCSDs72bUWko/k4ctiAZ0PuJ65tIhtYSSRtQPWuIXn + XT2flC+L4pOUjr7AH5dz8rM8Q454KTniOXLE75Ejfocc8eIILsrPB3dGfsYoPy9n5eesstyYk5+X + Un727271j8JIJGjxPQnaWLYH0lB7IOg6b0SNBXl6A0KuMS9PC7/doD4WuAPalEUPlxS9AMmFG6JQ + dolcbgCQgpnaNNYPjfSmctFb3FQuTLYYJ33DefHO3iuU/jUrZK9Sm5JXfCb8+7g8eDRrzQ4wDNLj + LcjrlNQrg5XT0g2mX61dG0buGhpl9ZRWWw+n27iTwJ4rVEXNQedc0thIUVbZfV288/CgPUACTncC + aN9gpqJct25CwwRexvt79JlFhrTnSVvXk7ZGOQxmn7wCkjjyv1h/GgyW6Tu6On4hUcpuZuSmeyMC + o0OtqNn2sHUf9+Rrik9xgRv9/PnjlxJHs+yWzLvC0nlXSM07UjDp4LO3C7IABCBI0xInPx7KU5ck + sBeQYmqSqDY5GEModn3fxGUGZXIBBW1h0egjY3Au3VG+P8uxQRKpM94olShGBXTvQO4ZSHvKstGB + 6ftLAOgeOtSEAxqoiifeo3PsJg9Q78x+QnvS8UhXJA0d/Z35gIA4IilB68sWKrdSCbdEUeIhlHsi + MAM6li9jdMLJIerUZAHE7pSJnUzdkfnokhaOq0anBinRJfRA+XPS5tyhqcI09MPEotMNiuO+BDYu + sOsQp6psMDokP0ABWgIu/XpRkIwKrVLuTCLu0jejuF0Ban09Oyh0Wl0wFCXLIxJH0VWukWtORPgQ + WQW48SgXVXJDKjKORrfDiaflGCTpmCUKFRVs5MbA1nkKN2GVlA5VCdJxADPqKehvzXMwHssP8e2V + JNsoNQ3RLfEtNcG/hVgryUxXvgY5zDqpGdVx0syfX8r8+RTzwxKSf4dn84s8Swfr84tLzpQjpDjI + Rvrtvzbv/jKSYBrt+/f/EhPFUd/Z+NfPzYzKraQFNzR+Z7ZIYCJ/nMUPpXFXH+Wup0azfvvd/K+d + v2Dif9e/G99vv999//59/XvuX3cGGNJNA+NtJgJtpxovDH7l9uXO2Jgea/nFrlMOh2shpTIuZFOq + FzlxHY78R+CBa3NQfvhcbsW0gE5dF8kTtJFaE+ggBWumRrSZOCIuI9+dxHgNp773uDP1vFcTrzsG + cgcYl0anB0jdlXM0UVtwz81k2kiG5Ut5YCSsrsWqoWGktSZ+8ySO7CnSeuWJ15xlJh7zuDLxmD9p + m6dcr4QszczoE0v11fhx/d5qiAsXLAiVMIJWHgJdH/PcIKRDJN947jh3xHOfwtxTbgzPhyI3xMwj + fM4Vcnja44znilhozA1jisLUTinf9zvN4SCe7H8kIXOV6MIx8eLGmZUrbeShA1VFXl2hPyq3y3NX + s6FYiD05ev6cBCXto5WUsNq9o/9oxrXBBioxtUFOr3NoxWCDTheS4G9uxGRw3sZsy5BOPrCNWQxG + rNvp1xHZjeavqZP79g7RGImZsMNQxnbtpaTPXqBP7McXEKKVcEk08+av/4HxRPeTMH7MBDqOBK31 + DymEHlImJXQCzcMmMsK7nrV8s0nONbZk0K6RCCnFKiU4T1Ma1ilPH8e6vVOMcaa4QoVCTyPBTjFu + ml0rShkYLnGlX9+O7tgIx1+Rs43kZBP5AcWa8mhbBXACtedlM43PfooGwDAp6Xy8VDofp00CELfH + iwYP3WzjhcnGL3fRCwWGDp2ZwbhdS0bbSn/uFoptc8cJNnSbqzuzdvFWozAgxxRayzvPGh6zsBKv + GnoFQ1QtAjrVwCw8oSM8Fso9d7puyQ5NuZNbQO+U5aDOEKidP3ILunRBFpMm6EI3QgbayJaM25UG + PZruKLjkNUx0pGSLjx3ck7fo1ijPwlujpFEG9jRd/kWXJ5kOQtXadHGTPBXjklWtbDW+AJ9LE3je + hqstHZLarI1fW7TxKYh1Ln1iZdeWLJjBPOTxUsjjOWYYz9mHTmIHzmfYSb/Hf6vf50uhn6e1ZM/k + QFDUNi3TcZHVAtOhmGnd8ogBfHJVkqOWOXTRFd0n5OP1QL7y5Pose5g1ZGAEBrc45EnVHcG4cgqX + 3CTani4Ow+uxgH3Ol/hVdBlEINdAjL6wVQSHw5VrxbIBSaGugDtfHB66EoyACIwA4TsYKiHkzBF2 + njRjcotbgKAbqgh5J8QQAtSLXeR83JJZbF5u7wcWHjeS06S0Szsmgtw1aoslVNe4FXxo0VsSINNZ + OjCd9MCQW57TBUxbEYwS6gZ4h5SMqnCxE36R/EUiHyAKtoMooP99jxz86B7xsAud97hrLkPXXUdG + lKD8QLvIVg58H4RJQEO/4fomUi6goBUvoD0sX85wmNoBk0E80wnaWUY/iuWx1GVgwFrcL9k7NudE + ND+PbEZuHzqUaMvgnYBMJxXCxPFow+RuqDnitpYStzU721vvzPbWMnbCoKwAuD4wrUBtA+P9cJ6V + cEzATeiPT1soxkIjy0XD61I0X+dEw+t7gzefMZk7ILcdWx7yxB1pXETwNAbuY8BM8lDGYvyah7Yo + ucuy46yKiELPItmjr4sdWCJenpf24HmW0M9LpjgsYBwmD0xSwXGT1Bcy0C4bgRDxvW0kOHSSos2k + 9Sq3UIXjUaheSHF4KGAAacdW8WOWJ7lVCgkBzAsdKtAsfl4cVZLhz78bKGn00Gbkbgf0ArA8C806 + qExneKp6oiH+QFVQunSwFGicqBVKD3+Q12dcVF2w7m7kjqZ29/NnSkk6Jq9Uv9LrNJsXne5cbm0+ + 12BpDWtM2RVCbrHy+WIuKIugbJNeO4O5VHER9YqzBPXrpah3Ush9ggbmslsL2bPIv6bQW1L9eUk2 + of8LtLDXlFb4yqeOqywXIA9dzw/C8n0FNLrEYr1JIs2vphtkoDhijw9d1P/ewJLBPZpmLhoRawBb + YG4ZzcPt7cpf97lzptOhXIvu4kR7jTtqu457YhLWh2KU70mfPR11tfDaQSM302xx0qwsbcwomeWU + kllOKdopZ1nllnatUMP965n1jTu5T4pByIllgBHnqtcEs5vKzN1jSHTuRanOaJzLGwYo/BnPA7Jn + Y7q11VC0ukavLgOIxmYDqYV5c1H3t407FeNxBvCxgaRy1cXKCQaqBdmPK8qCXvykbuyTAZeaoA2D + Nf55/hf2SFY4mq1wDHjRzoEq1dTTTlDWTLFLc8aIoP5WofY1jMMe/AdEobQBhXMnaWkylnDokDqy + YJ+idSavp3SC43nqs8DEPUgcbW09s+YH1SIgFacGOQ7SSNlWuvII4W1tXTHgl+3mGjkfqqkOVfn0 + fA2eNUv4iOvQKvxt4mGZa5j1eLamAdO/As/YyNdpG1/TTYD1mTQCbSMKT6488vHzP1cfwHSCorIY + eqtSzqrfN/LVkWdNfjY//GeukYtpIxe/b+RzkFc+5tkWWtMWWu+30PyXfvXzP/N1myl3UVNMhYnt + 2E7guq5QMsQXgR/4ljs5tAIqpiW47YdqFuEtpeo4fkFt/qmgRxf1arSIHNe1bO5z2igMXOXl9QPF + Yo0Ilq9QuMJzZKOX0rHsYTytutkYyxdI1gTQoOtxEQZ2IP26joxWKzmqvWJkg2gSvuPQaz6CLtg2 + rPmqE4UIVContCw/lAmHaF0KwJHejqB86ISB53GPEoaETp5uUnYQIY/wscjBjAHPPudIMx9v+DTl + NQCm5aIO55u+n0SaAEK4t+nIvU0hNZBAbYOKwKOrXn11gBMFaQlP6luurbo1jlwfBoe7Lr0+yWp0 + OzEp8xSoOr2917Ohj+R9t0wbQ83BJqXYFqp9jLHauKtsUygUEtliHu3ygin9StF+eGcpp4OxoGAz + 31IXE4Se1F+ghheEAAlhoLUSmHShA10k7ZuBoI7T6YsNTJa7wHuewuCjVOA8inyHNrbQ7lL2PwZ5 + C7yjF+8TwSs16NYHeUezD+qcJCleHQvDZPPAkdZWSASzCwpCKQpD17YDTzFzLXKBCx3LtaS38jRy + LBEIN7AlRb9EnsNtz3ECn95vcK8knDMYfVThAp/5HrdCYBSiL0MTXw1kuEvh3/KksPbPTW3D4+Y2 + XjUi8CbcHbAdE60eLQuFaxuoYVlkTwkhyCdiuzt4fa5vAcIi9BGSQ9aknQziI49sN3BtKGJRwgOP + vEAAXwOvUcI+j+i+CCSuOhNtw5KN5gSZHx5eOGKqaUsOESHDdjAUKHR8mEiONBIlt7p0v68bgOWV + L1ELe3m81VchVAUtHrjO92yJT4ODneFbQQhzT06uEygBkz20uCcHIY99gBTXVZMNqgQwwjZ3PdnI + Id4jAUSA+ezJRvbx/hmwPvGOZYqPB0ORBeRFsWgwfNwKx3MI0lNUsImHLYszPrmr2pIXRfswcaUB + a9kW+aSkMeY6O1aIvgCurizB6Hglr8JIhBaIB9+3JZmf8XIQ6IYVAMkopRxGLrABNC9L3EMJBzoQ + gFYvueuYE7s47jbufZFAUXcR2xgzBdPXFi6duAmUoYrXwSsU4pCEmgeWjeTtS7ywBWYD8G8oCXsG + GHgwMzzHDqRcCyMUHoiSTCiGEXTC8QNbTYASjEXAhccD2YmnMPI5jGjghRLKGxTw7SAEvpBjcwAM + 59i+8H0hq4ygn9wLAfGEBwqAmef6IcxCNeKQYNmei/SS8ncIKS7Y/DDKCvlDxNV2gPoS8BfkCu54 + 0L1ANnuMgxByh4OkkyldoudegU45hXibshS7uzAhyUYyhYcLk7x0W3YYwAAnStRr2KIbODBOQg5R + DYcVhDtIUiG58yWkrVYHJoxryk1VH/c7YUVQXgFHCTlkOCcvPSLSJ6SKYHSdxeV2qSAh4MmjWGHI + HNfnLixsBn0awJOhQv5EaI8BQ2AwEABAGkrp4QTjnANtLInhRyjjew4sDKHsxDlyhuO4sJDYkrhl + mFCSZJ/wYp3QtCi8xMSVYDs0Qw99LxiRBAsgYBjQqRaBkbOCfK8Km34I3BK6ngP8QQlfgZ8CHvhe + aMuEDs5TG6N7aMHfDdRZE05XY+fRq0C32wD/gJgGfWDDpcMVAUhZdWQMFi0yc7UKXsXPTfJCoYjF + BcAzHVxUfPK44rXn8jZ9hd8LTUoLRzSUk/CCRk8UCrRTXsgDvU15943vKFGBFg0ep8GvFMBUneBG + B3sc5sorwyWAVjgFoGZ9VEbvOD0/Ri3J3Q/R2oV82o/WXuQQ7EWdcGJnxMpUaICuGLPyxFSIc9Gz + sjZ49Ej1TsPogR5ew2ifHqphtLf5GH3VH9kD22d7rHwb587u2ICtfQ2NzT3I2WMyD3Ne7tg1Z2t9 + yNqHLKyAmZjVv2N9zj5xY/MBcmRjj5TzdsfKUOkcKs1DOidIH5dA+kSQenwR0AEBWhuHi5AGEtLL + Ekj3CKnGFwHVZZdqS7r0WUIqLYHUlZCOl0C65gjqyxJQX7mEdbgE1jcJa7gE1i7ByhOozgwoGI5P + bK1A5OvMgAIi1dnaiMjXmQEEmH9jBzRMnRkwMOp7gMEbX4TzieA8LYHzGeGUloDZRTBrxXARzrmE + c7SkP3WEc7YEzDfqzmW4COeN4MRL4NwTnOMl3cFxgP7c80VAfQJUXgJogICel9ANxxs71KAOXcwT + 7pyt7VOPLmYAAXZd4ASi3MX8AD2zIQG6mAEERPgIcPJ8Ec4LwTlZBHOOYBpLoAwQylp1EcpnCWV/ + CRSk2zl74Itgzqg3j0vgvBGc9iKcA4JzswilTn35sggECQ1QTheB7CKQ2iKMvuxLCYG05kXcAQge + BNKaAQJ0+cyOEURrfn7uwhRAGK0ZGDjEKI4WYSC+B2y4COMNYawdLQL5TEAOF4G8SCCFRSD3CCO/ + CGOXYBQXYRwQjMtFGDS6nDUWYZwTsSqLQLoEZLQIpI9Amosw6rIfVwijyQHIJfE5PD6wU5p08LjP + XmnCwOMeq4ZTN98r1DBy8PeB/u7TX/QLbZ47up538P6rJ/qbTxbZCye6LTrszGGXDtPLTu4qxMCG + hpN7cAz2CGl5kas4uZFj3LGzIHphR0F0zkZh9Gr2QQF7CuDhIzyMhNorZ5UQL4otBGwvZI8hO3Wi + C84KPCpwisQrOfqrsTkGhE547srJXTu53SBX57l64rB4daKbgD070edg8zGM8Hq3zWMH/rzgH7XD + /gSrOR2YSe2yy6tiz12Vk45mIE0hnLuX6E3M3FKU+GuKMihr8j6axDxUmuV+/1O9PzDxisZyvd2X + kAwMgZhmyggIlbWZzilXq3pT6PLiuxyGtpntzotuGBgLkXIis0aU+DRJd6mQP7mh/Mn1WhLNmfKT + Gj+ubit3Jn1HdC/MFQT5S4GiOqZDTcC43h7Gm7+m5eiupl90A9vMVcIP4funmWTMBfCQ7N7O3y24 + gfFRm/npCD5Dnx7CuaNQzzNDUsQCWJbOJvxic1kUbiP/TRrAvgyDdGckScmTHeSXhOZi/uwFRSO6 + yAqPmTVn0uXNGIB+JYVxc3p4AlsarQxHvtILwXs3ZPWW7oL1ZnfBeu9sN86lk/8nX2C2GdAVmGgZ + BGQBWzazjA30l5DBUCiy0LRdcvoI5iS3VUyun7XlDixdUTcHQlgWNZGnC0HxI034VSE6UYFXJmxg + DD1+Cs1V8RqWq25/c3yKGnU9OuplzOyVpQjYWxJfPaIBH5mddrNTrs6M9HthSKMJ0zUnce7J5ZLY + SFztdrrDbipq8zCQscgEJ8bLjNOAVO4m3R3MDhfY7eN77JbBe2EUR2r4xe9XvJFXg+k+/Wwvu4w0 + uuS1GGn4EXuN5SGh3m5orDAP6DrS8EvD2ubTZOIj285eAPRk4teGMf1oLr3S6/T7J736Q51u1mTD + ufzkLAcbLwGs4Nar0SNBRRJ/TE0MDPqaiRL73fDQvH1acdccO54p8BAPVG5/9/VCBltCuaJxe3a3 + OcaYYV3vhRg4WBS5y9yRwJDBS1z5hnic/QiDsQq4tnz4cGyCLI97g90YZmKsP7Fjs1bv9QeEnwG9 + XMJsJDauAl2SnjjsyvixJ/QbjjXe6evTnKxqRs1pE7+7iU5LUrRUvHQziiIYKdya+vU7kL8wPjqZ + A1+cvzcHVFdgEjwtmwR/o6fJDNkT85TbF+9KZLAMqchxGGlva3TRwIbGupF23xkMOi14LkFOj8Ik + NVYLcbbU6BFvYx5vauwF0nAjXWPjEOeQKtqD/H9C9kdIlOGUGjuH50kQZa0+jqtQoIxeNsHQfWOT + R8Sy8kyGEDgqIAfvqSDHpY+Rpv0wCtV/7Ct5QWwLLyJxMbJnxxJ024dF4nR319jGU53kcbTVdd5U + Qp5Eo6syIxngRpJyb4+ppskBJmijxCngVcqAe7tT6zSbnZdMG/i2Vot7cQ8eOyAv8TbyF+ixPBqh + sQso/e9///uh09FYK4xszsqR9lNjj+mh6c3qDxOx9TDdwbq9S0VDnuEuZ1rPupJhjtd0JKQS61dc + P5tGS7IXI3VsZKq4Xsm5sJ9GpcuJQ56DvN7lwL6sjf+MNFZ7clcOFuZAfw7Zda6cu4L/m0qcxDPS + rJdIwWn9S65P5NW3EJpITrKUDbNV7i4LBZ6eYmGfpe6h/EbpssDcSh7ui3QgbTirKryGoE5Xw+iN + lYKoBYpOGF2EbMBTxx6mRx1Ym0dq0r+aQycPE/+F79DjRjVk3VTu4TQXHjdeQ3YfTnM/BZNceNwo + BewtTMJc90GO3Id/RdchRTFLmsBM1wec7hfebIaT2ySxB7UgQhqyRxE1gRNqAesbbBxEj+IWDcgQ + H14mJyO6cijPqMUzyMYWZ64u24NGANQ4yHV5AjdV7AcR+6MC2g8I6EfogMG+BlE/uO0TLBkMAVlt + BPaTLkGswbr/NQAiGspKeHXzsvXcPXaxOdWEe79dhc7Q7oeysd4JlQkVRMDlX0OQAgZr0csnmFzc + YK/plyq9nLFzg91PH9+mj1+mj70guj0PQVDlWkGuBwQJc6/08BLmqkGuxkHs5d4CFUCe+wKAS2Hu + C+V0c/f0exzmLgLIukvrUxoYIKURRr+ANUIy4k5/dZZEyi9lwZEkfIXoPkKyNyI8KQEaS0XRnoIZ + 6IqDhiRsWh3AzA4eVMZxkMPwlgxTqiRiUIyuBUY/lXsAnsWcFq+ixG72FBdw7zVJLbIuwKD/BTII + r9tuD4pxrTxsYnjVldmHBQHvkS4/lKWA2cTw93fU8JulavjNrBp+sxDxSMGu5IrPy7Brx9oRnK5R + 28CwUebSfhpeaIyFaKvTFFgnW5K3eoDOzSwbY+3wmyy+PJlK/ne8nl9955YUe4yT5LizGNDXPSd3 + 1O+5zJ9sgjt4RwKGrdJ+KWZ7eyqkLZCXZslbAW7eCWm7+V1ImxqvFHfdLNHWe9I8U1fags6IBy5z + 0YPeC6Z3oYN+MpGMPXOeR/XnFIdOTktlW036ZsrjgL6Z0qnSR1PkN1Ne6YsphfsOfTOlXKVPpuw9 + 4hdT9Mm5NvjFE3B4wQmXK61Q3yTWkyirsKh2nf0SXjaBGyrOZKxEPqRb7PAW9myXPsDSr9D3V/bo + +ysWfX+lgJ9fwY8RcHk5i08XV9GncQN1R6DYZVlbtlnC44Weo6AKDDwWBRWJ66HWgbuyFp5tibL/ + zLLTCBDOIvkyNgcyauxLpOlZjd2Aeh5rrB1peCRKw0umNFQd8WoprVPR8C4prfOisSooCGBhNOAV + +D+jsROoSVomy0PacKCxIccjQKA1HJI+RHu2GNgdSoPRdPCGF3WbHqcvhQjToivnqA97k7LI8xRO + bDkefgFWRtyyffyOCkBuwG8mgodn2rrdLWzpHo0CfeQVr0skOD0Nw5Xt0rZuO0weJiAyFjCwIZT7 + y/gxEkluM8RTj4a8DBHRkdvziMUeDJ8MlwEkygAceE1j99BboMsxak4ai0lVBJMsBHrbBfyqyj/t + Ej6BYSaf5I0H8JxlZ7NqwBuXRle4XJoWQylOS5zkaTFEgfoURiWOiydUhgeQrQf00L9jI54s081F + AddcIuBk2kGrFVfrAHw28yzUcYfhgONhlD39CaBz2vZQcvoUFusvfMG59kUm3/DkOonZLo+4KXVP + 6nk+nFf7wYx5nlyns6NtpoNCp1dWRFINzelXdJJ5E3qeLogQQLJ0psjuAlZv4cx5G/IDLSCXwJD3 + ioVQKa3OHP6m/OQRKh6GuvxEPVTOo+JQCPUiR9H1jinUSxt9SztzAdUBXnJa3nzp1YFdlpxMvAyN + nB6HuWOeiwVeq3bP0aELD6ALlMPcM881KPeE5z7Tv/0wB1bwJVi/HI/GDXkuD2UEHqSDMlgy16Bm + ILOa26fmoNoDx9N0YDw/Ugq0287d5L4YOTU4p7kl2KkPPtXoE0/jyaea8Bc/wjScfIQJyx3lpqUP + J59sKqTypp+MKi7UeKIPPS1Lr+RGMhXdqr8bk9SqI+3Ue2eeYfFzaV6AIe94BBuPf+CXEjAESzPo + CKXwVHgSfrtDy+fzB7tn5LrJ50vkucnnd9Fxo+U/QWYepCg8Qs5RpO27kDPEz7Wsg6UKyacarB4a + lTqOtC/53fwBPH6MtJMiGL2RxpsfwcqNNAAAkj/2UNxTKB/3mE2hVCDobJK2tLB4u0x7kFiq09+B + Q8e7LacEHZHfc2BaFYt4UinxPegIrB6t8oNcPzbk4tFr0tqhbFxcPar1ES4f6Qlzolb5+3Kl8UBh + 4AfYDsmCuRsJk6JvB2jfU4mT3+rduN/W4DpurlVp6+CRmBjmgOTSM+RP4OAb/ODMF3VQ9EuIB0Qh + CybAaa4jcjWhOAUY/Ahq45lS+AP/kF2H6Cg6Al58whQ8UYpfE5P53TCHl0HMOytStwde2cuURkhN + XyNgcUdGphTwjC6FI2p4sA6XN3WX5V5Brpx0q9YufmNJ2Hi1rVzV1CVYBTqNg43PqKBCBloIOwC1 + BgpbdM7HY+ouV3lKwy+lPqQx18RE9Ztvmr7AwfHABx/7Hn7KKFl4AWGm+chDvrqAzkHFVJieK48Z + 4Zem5FkbUaSjPo6Y8/hKm+PErDRBjOBM1ZVzaBotPkLayjPXf+srMdMb6OeuL5SMdzu6i/DU5iZe + ZYjhz79SzAd9X9BjZ47e0yfjho4+DIz0EtYO7tLyQy1O9b/pbhsGZILOXAZi6D/6YMI77Bn+Ctu3 + Ql8wNPlthqa9YGjC25x9hJdbUBHgR9N+Me3f5cc3dBhr/2503l7jN9BqN7fWpaqyvSV/M7jJkV1f + b3V65erQrHRayWVzO3hXXr0aEUCPZzPV8qC8VqmV+69tqEKfss5m6C2TOAazEqRuZDPKV5pNYEPa + 9gT4/wUAAP//pF1tcxo3EP4Mv2IrTwsEHwe24zRgnBk7aZOZ5ENn0k+dTkYcAhTfnci9BLuM/3t3 + V7o3wHVpJ/GYW+3roz1pJeG7K59Kp+v21czMH/DXD54HN2qJnfse6SoBz0Pqij9ftwGucJwBPkCb + CqxmBNGa1E0iCzI2SOAdLFwWZOux7282mwFWX2vMFwpQFEIrEylvlsUCOB1wNYErTR17dltxuL6f + rHEZouNljSIg0xnxvlVpgOy08aNCHeSoEpYJVgcpBqoLEzowsUd2KHqNP/Kao8WkgkFhn8Ntod+Y + 5xEg5iJVMglWdCkgUtnKIG1t0kxw6yKJvsxyMi8glpFqUiSn3lPBF1wuYrsFev6SQnN7pBcX+Lka + vcd5EnYP68LffqhniUwefPe6Oj9TES42MuVrGvVT30bizcy9Nxqs42UPYuMlao0DOzCqk7Lbyj6l + GJ0+z8ojT4sA0vE6z0DmmUH761BlGIJZLARAJO/dCCvOzrGT6NBC0HFKAdE3UUO2TIHKPUrZWZhj + EtPO+kqn9v2j02mn09vWrjs3jCDIb7keDDqucixrtqon6MlFkaa6/JF0L5Aj3Vfe1NarG+pgstmP + osElwG9AZkGxEVub9VALyk7AeZaZWPgOVx9htynoU9JVOXpSZWKZpW7kqCCuPfRNMEuJhonv1AO9 + arI2JMKWdvps7TzgFcwAmWiKmdKbRRBtsD7/gkYRPXiER+uaGz1aLb4sbyM6Fks9HBfIQ6A2hoVj + qrhohGAGaO83OuH2s9GRcLl1nEZ5qpJuD2lbxJHmGTP7isvXMv7qdOrm4cO8K/CTRzK4XEcBZG6+ + BQhFu3tERGWG6467Tg/eQIfeMdSBMTgaqUE0DwkxZw/bybcnPZI4cG888gujFL2BjnEsf//500da + hf908vrycjhhK5zn/1vby0IbYvYIDTRtsXdrzJ1WXbpnTzn5T+fyIe2Bw1gvoGsJdMWQ47ykUH3t + MUHUQtTyaUF8UT0wiDW8OLt4cTmk//QWzp6V4hOD+7VOVIoqxaS4mIo+68jMr58+l88M4jhaLd68 + 3pEUkzpMAQdFTmJYfYHaOLS+E+ijobXEoctHMcSljgqCMq9hUgJB9ojw7jenFvpAz8JyTYGsp6G1 + 7841OpMOu14UVXo6nGi4QpHiyya636/hG6CmQP6h/2SE+NgHukHxN4e0HdgBzE1mqz2tbXQalN+y + JUHquaB6ZDi73oPpFIY9KP6iriZuGYpTpYYqwtxJ0PtI9yBTiUzVAcz2E0yIU2/UKxRUAwyPA3Q7 + 1YeBIE15qjopbmLYupttTLfapDimtMujCY/Qtm7wXuGMSmeR52f4od0qzxqLJ9EgzU7EI56II6xB + 3GT8asgSuGBNFqHZjO2byJBSm6ATNUeCt1GzO53xTJuuJA6uY/h5fc8/aB/ICUiWM9kdnvK/wauX + BKcXmb+OFjqWv3IuwZLOs4e4tqrysPDUeTqGC470MCcd7u4yWr+Zy7Y4Zov5c1x8XOyYnvfqOW8e + 21VWSNhiV8lsTGwT26+vhz8W5dVZra4cE25Dh98IeWwByoUm5ZwnQ72MraIi13jcnwQmNMn4ZLFY + WEbahkl4a8omY8PhMWaZnrOhk4vz0dvLm0nD4fGK8mtbSyk4wTGxbuSxPfjKX+zCuwAFc8hDCDVs + i0DI4yd4ZIOpFqGF5uLyQLDudqRbcLf+P6rSx0o8Wto1zn8vYUOzNF+4eH2DqAxHWGKHGdbju2V/ + 4SHxU43WLPaJyjVG4XosbaUbPVjUCLJSRwPIZoWch/VLJIS4rpCFYJAntNMlnsXliRUKfIh1oA37 + jsgcNPVPqvMwQ9hSTEi7PEr3jVE9SItDZ/B3K1FZxMniXxgq4d83sJCBQp3K+67nyjgz5SqNDJGN + FiPZah1trlgBVus+FcOtTDMVhjLGrr+uWipyI77jTHqYjTo2hyx/5BZxvUs53H9H9KPCeVjFhjrS + C3SsKuPvXAvMFdxii7jepRwf6t8AAAD//6wda08aQfCz/RXbMxH9gIBoqQJnjNTa1j4SKUljjFm4 + Fa49OXJ3UG3TH91/0Jl973FYQP1Qz92dx87MzuzMXMFsdRQUbfO8Y2/xvPPk7RmC9UKCoNF6x9Ek + H3ky3TiDy0m5wJg+44QxUs/PDTxFpvd7r/bLdz9mRRvFOfLxQ8+WrxrL0wRftgTdY/xgj/YAHOgw + TkKabk2TqG2YCWaFAu/0OuTs68WFzQeM4ZBmQ2Roa8nd0J8VnqPLaR/G4DFA2RePL1Z+qzLnlHGd + s2ZVRwqROWQFzg0vAdKlXfIlrj8jBT8rUFOSEag9X/wm3TlbWBalc6AltnM8Wfp5bcy2JiU2YFTz + XKw6TqIiPf9aEe77FAy7QDGDKJ4G+eD2ni9eL+QoQmqPAhf5cgrS08+rS0+gLQPLcC2k8/hP5YSh + okaeU4ppfJv9pAmbl2NEJ7zGK0xcLlv1dgCJa1ikpJx6enzZeupR2TWN7IPTsUY93/4rp6llyaid + kK4gIFj2fMP6QpUsR2AcZ3DjQ33LmnAEIVzln7V8Ydi6qQ8YflNzc07GGR1K8bbSCR0rtFZSJOvs + mBIjTs//JHmAOz9AAGA/8V3gGGvB4S92dAgANoe8KO+n0hVycFsornNuVeDWbVU37bu3upwvKhy+ + EF0LlljwI92usHoYp+K/Bak2RspkfUuIaKBm5a1edD82Ny1gkCvBT6bCUY7CSn9kkuLxIgXPBtQM + ttGCQTK966dWwrCEAXj+ojv/EsDqnp+UdcAyYWllbBJHNmLlYXibMYgdfnfEyFv+h4tSGjt/tASE + tw9ez7cI29PTfmPv9f1hFSW40QpvE6yd/SdDBCC4EIQBDSq34WAETrNPsbJ5I1Dd0CQJ+/QmYNEN + DznxLr4kBAeKf0YZpL743fAe4bREZo7fEq5se0F6PH/S5CS2P2SCL5L9fHVIJNaN+oE5u4eid0Xx + NfFuQscpfyFi8ND2smQqUj/OHQhUNgPg7LRGNeUOV1Vbfb9xoH1iD45CNw4gkkQYTeiEy4inC0a5 + nvBXBXmpkpMsR2BlwriDvTo//+hutsb9dNIU/7YgJYnHQxcUC2WuPYlVj0EaSrXXEzCqigZCa7QB + pVuX8BYZQsqky+4m2GKlpEY0BnJ13un2rq9AIru1av366g2o5W8cWVnjNfpyoQb0iUijyKqFVebM + Pr8IjCh5EOWtfMcTPfEBF6QJThxUmaiqWCYMc9EZkzZ20LDjQ7Xqdg6HCX1wULq4sfiBhUQapGVI + dsKImb7kfInUKa9K8rWqqavxZ9wHMsGre1VnQ9qETTvnqImNuVM42vju6ISNT4J0e6cpumfIFXaW + ZOMbH7X502AGJg+nbvf+4VdltlcZsjE9HgLYu8uvtW/Vs7PG4dYUm+ev9i0OLIEu4P/Z2q6YJSih + 5tuuwpsQE75l909yqS5D+Py/Vp/40ZV3LUM181s9YCMBJJo91hzTEt9p2mC8VQJwCI4wJ1kG3hZM + YrukNVNyQXSMfYxc3vQMCvUbWxYvNa6d30T0evU8pwXeO0H29DrrXbOmmHVeOTP4mhsb4hLOsDi4 + 7YlVNiN/8hw56y9g4+SIyGaSgZKtVVTGdm5KI9S9DuW1bBtQUZEbabsEh7xEhJW2S3DISzxclv4B + AAD//8xcW1PbOBR+76/Q5IG0D1lizKYUZthJUqBlCsNssrT7lFEcJRaxLY8vEO/0x/c7smwrF7qB + 3Ycyw2DLsnR0dC7fOTqGhDM10lmoPMunoswchVNyAPHH2be/52409/54CulwN6vdTtZec4VtjKgd + 0zwPApAlRGT7oy3yDJHrTv24d7I66W4K83ovlWYdbQQrM1N9FuZqy9XeHT2X48Tn1lBtQj1gH0BT + NIHNaZ+P+wepX5yRX2NKf0vJAxhsdnjOLB/H3o7vTdT+rnra7x/EQZ6G0Zmqmo66zvvq+mOecE9i + 9Dx2z6Kq9dhlIcBidXvHy+nTquEizTj5278iSX/Wb+uhZaK/0a7ub3iWsVu5Ym+HdFKmkndY/SAp + gMJHwCfQJgZYGrGvMhUhGhm7FpBZyX02YmzoC8+XS7QOoVALvCKmUJdq8KscvNqaiV3LEN4OvjGA + Q1R4IqDO8JKf0pyNeRFY1PXhEjxeE88f5YwNcm8ZiKJq/FNAvrKaj9c8lAKE5XDnYHRYsL631Mu4 + heEI8KwfFBGDHsFHs1EmYh/Lu1GF7nMRhhzsD6GveCiw4LFAHEcLVNMCcD0IiD8Blwkmns0hzJol + 8zmIi6QI2B0UPpBxiuY7kXgF+1REImVffZmJkgm+eAIyCuOljKjXl1ymoGkqkgykikcxU+yaaDE8 + HSo9/4iHYG+WU9GWXtooA3VfhKjlIVGznLa2ZtdFCHcKvgKEsEu1otnhvwIsKRCPMiXjPX6CbkiR + +WyIizwpdMemQ72T/QNPxcUZTFjNaS3TGs/dg9FeI7CMXfIo6x9IsfKCsxRRHjZ5KAE9JWdALVbP + 72xorkPp1QQOFe5SEoyZBBiEEXmol3mV5HEjzt86N9i9W5hQ4HQTxB1SHGnpbSojFacybZ+PzFXN + oIjlEQvheRWlejEzAkONV/0cwo6/Hv0L0DzjpPTYxRS3oKZULP1M0nYVbM6DjBMv0DiXPPqHMxoa + O0yxQaboEY0D75uyiHuCvifk6B1OAa0SJqCsDOgnt/Qew8LkJ1QhST3FSn8VQzyMuVfqPpjJNR3o + oUmWFhtiYxHfNMa0CXDJLk58HsxN/YzuYsDmHqZ2l720oc7WYaiNelwbdW6/VVaImdd6FtY8Kt/b + oMw56a56NWWWK7AvfwprDR7W+LHjNqeUPZfyDtbBvIPbzbirVXP5v8aVQGqVCk+o0vKXCCh73S2w + v19EubED5f2L0gp2aOmZ+LHjHB36s+yxqeecO1RN6dR82KiRqETHia0yTopNq4iU9YkrUiWt862m + Bha/MhZeo/GopvFZovYImHd02ZvMvRh8vJPB7usZPJKLnP7vurA4XLc1tL8A6NmW500tZ41xs4Je + +/S9/NmOjknxfxIcs42fmsm7ElelufmXAgQ8HvBoediclx12uyQxvz3EC1Np0JQaP59UYDAVBK3r + YoQSvLccKt024L115HY3FkeGgTndZ1ZX58V3mtkNEXbd2lqWptqagX6PyzqX9YBza0qd9K1SQCEd + A5hkyT1ASMbT0yZ74jgnHz6YlO827c8ONKJkTjPK790uuxm8fJhLwF1ujdN933GcjobuZqztwUgq + +7PZ2AfMG+gKXDa4uPp8y3adbNpMh0GnymDEGipA3Mqq+1n57d9E70S9IWtlaZYQa6dp7HxZEuRQ + SZDrus/I9sbsZdHwhMorpkotJ4FcYtL59JQuTjEjokAYhbKXB7OQtcpcvMZY+0+QPQnxylcXSi0C + MaGICotvscWpuTylHB6kHjAyD184tl4KFUqZ+xiw3rBcD7RDcWr0uaU/lHbQfn/d1lgoaQ0OWVrX + I637f/LWZizIz5Q/KJ24JrMRLX4FnPEDAAD//+xcWVPbSBB+Jr9C6zwoVAHWYct2JaHKwWSXJZAs + kOJRJUsCCR8yssSRqv3vOz2aS4dBgJDJ2uEhYI3m6On5+utjnCJ6xhN4Rp7w5Tam4ATuHw9y56/Y + isDupJpmm/EwLKs0L25IkxRJTT2urJD4ZtFPy5LoRGAN9k4u1ZHBfElBPxrBZRGP+S+FE8p0zxMt + 9AnETSNrODchZzbDKa6N3DMxASZY+XjMmtAHOGXEDqMNBL3BM0jvUVO1sUuNIyJM2ABm0qxJH+m3 + NOGtJAhilXhLb+wCl/k+HedLnGiUiOZfi/RvgSjQlPMiEZupjH6hP+grOayXkrpQJtNUdkDbxqtm + asDdGA0fr7wjI9GtWZg9S1a4wdsxkUax1A9tz78JKCn5g0Ata/tzDhQGkSbkKMMGgE+NHGkcnoCw + 5jC2R/MtaQz1B8B6O6jtJfjm82xPnnUJeO3bI3DbTw8Pfkhnfx2cSv0B8plngQMjMPqEvHoyox0p + 21FmwQ+eu2yBNjlXKj9SvLcN3m9BBgIu839QNsVEhPAUQrhErXFeIn/3jLK+lGeQ5YZMgRB53yZv + CEegaL+QejOJlLnzw1qmcgFs7kIDlhIQhZ6E0iGSD5cnnpNl+SgMkYqAQ6ebqafsX8Er9II/vt4u + zCWKJ+5VEGKan/afmjgthW9M4hwRd6yIMJtKr9M2uib3DbYjujnb6jZ4WInV/bjxTpjRv+L0suF6 + YR3UuAj6KwZvnqjOKtfmlsDbs0qdT2UZWio6I5wKbGiw6W9wuMgaKl2B74XMWipy7zLxGiqgPWQU + kfaQTVLfAvHRlZwMn0J8HhXu64pQ+z+JMHuqyGOGGcnfBL8y7A4TE0aZkoMqSaJJ14pNukStPy/q + SUw3J0Tof8xM3qV3WUY8TJVpVit//cRgV0va5DQLoZv3X9tfjC9G7k5Jahvk3U9eiw4gtMT1EbeJ + vENko8dWKFRnqFDeJe8O9k/3+id/9k+lwcHJ/t5ZH5FuZJe+HRwffmp6LZGAQo0QI30yVBDIqSgv + LLTBr3XIxSqcpMGn5PLGvKlqPRMp8AiCKkxMVGPQFHO1aThq0caTJ7ubngOikNBfPINiwsIWOtTF + Z8s5Clu2GrtQB1L4rM0JL10qHxcvVdP9eyeybqfaVaeJOEBCAUxV0c3z8/Od4/3zH3tn6s7e96Od + 0AplCb4AkX1jpAwaKTOTJUvJd619ls0hmu6I79xJQngLZmgITAIxMBXzt8KWHUIr0YJgVERGTEgk + fZPJ+sTCDJnzIfwVCR8WbLRYC+FP7XHsuE3ryrpDXCEyJ4FjjfHtYGae558rkeJWr61stdvKZiMr + z4ShyXvBzEeMpi/9PSAVp24oE9cAdJfqoIhoYvhUfki7Z74dxSFS7isHajuSfhllWynxHvmzYHpf + vWQnuN+0dGlUh0BUFbCkGubIii78sVslMpEu64Ulug5Y563n3ynuJA6tixLbjXnDGpiQL1uNJMuf + nlUDpyWIeIkAVTWH0lVz4t5ZVSIV9Df38P2OOrEKVsqGxotFvHXmzvVWOLmbPq4Ea7BiJ+nFoix/ + lFYWrWqU8ZLgCn+Ugaw0xIj5jl4XgwpxlvnxkFl4mj0Uoh0P7Mtj9zsg/eOaeFdMdrHdVAlx4QEP + JNh8aWuB/Mpc2MBrLAhdyBC6kBeX11TJT7uKCTFUTONh6ypCfdpnjaAPhcpsKXbQvGhaF+N/zhTv + 18/uUYkTtAZ8qQoxlgei1QT7+uS7JKB/FV6qm2iuTujfuPNKYep2mnRaI06R5bKh8Yqdydz22tNr + QwtuHleCtTudZ08vl2f5k7WayLUEQS8RwiqALd0wQ2vmO5dw08aEz6rELt51veDFx0Vrj5oQZGl2 + DM1x2sNOT7NtrWVbXafl9jpDy3YR+XUtvaxmrCFNqkHK5c/fygLd2xD/kuDvt3TVtbftqlfMiLWO + meTekLJVbVhox/WalXi8EwVN7S4O4vHYXVsCBkUZwZRHj5UF72dLbEl4WxHdVNUWAYUwsEduVGUW + R+y3ZlwQVwS2OPK9mX2jD68vvLisyV2jiVSlOMufqNXFoHrlvETkqpjZqErnFRhNFKDf6gYuPChe + 5P2V1+vqode+1ow1GAmHZIGIyiv+CgPMi2W3JND4Ld3LdSb4mdj7JjLBzmAy+jXtHk7P+o/YXuvG + XwP0okzl08RYHohWE8Trk++SgP4/AAAA///snVt2gjAQhvfiAuRWEdfRBeRgCsUSuRgutatvEggK + RDlANBzbZ0NI8jGTGcafcCkN08xeSaiZ4KVRz7SkTBB57okrT2vxYE9bzQS+zfW8De2lFt9YYvEN + v99t7c1lW1rRbWnFvu++ENcqGErPvQra3HGxgtYtNyv4fdjVjvs3w0hX21Vn3xilXem4u662nbFI + JTw/axHjbWUuT6crMYtZLjnLprpddo6MbHq8X0X4qHE2Uzt6WhH4J+jo2dEvoxfitwE4I9Hx4Vs2 + PnrmDe1XIT4+hDU7ekLDH2V+/iygjnx/0pvN+RirGOI/fZORvnXLg1INw3wD1dMD4xzNrRLeMxD2 + aCqykcZE2CDWXq45trEPi/MOpkY4HEQrMqIHITdMs2buRo+iTXtWBPviENn06Ar4WhZ5aRJhD2EY + kzviPnNQMweEOZiQ3y8W919KK8alxi9D2AE+uT6QHtpUvSqkSydeTy0rNCe0UvS1TX50OK1iu1iC + hrUF7+yD9ziIMxKHTC7Ki0FCdEhKN4MBiWkU4SSLcD0KtgybXWKZtlvsSzRU7VS3C/8CAAD//8xd + /0/aUBD/mf4Vb+qkjYDQjSwTWYLCNhMVA2zMGGOqFCVDS9qSydD/fXf3Xvtev1GM/jATbem7d3e9 + u74vxXw+r3w9lf1y6kMMGiZFJAUZLg+icFPF3VsJUqhiD+I7NCn4OhRCTjGUx7oUqMqAInwDhCKx + 1Cd4oql1RY3/AzRRclfwEmQiTdkapCeKFbREMVVEHUkaMXwJevPgl8eOe58OGBuCoo8nj/YowruT + R7uD70qlFW4aQjaNWssiE0qo5XhhocJ7eBCimpTBkJKgZo7rrKt4UDUqURX5CBGMYozjgtcb85Mk + D6fLKYIp3OuiplmNeNHNWYQXvWY0ErzreR1eIqtgcr406KKQFcpwJNyKI3kGJXTv3a7gbMrMqzJ4 + 5vinMKd/lgTp9fesLvUU9u/M1UNU8tlVGcHOWr0WO+yeDo5Of7R67LjFgm/t4OSg02ed/gCu9zrf + jvqDXqvd3d+9M0PbsxTTKvSdLEa8gRg2lgqfde1MR40INucsCc0ZlDhhTdaz74yyppZ622wfdsy3 + qHYZ9tUQ8659O8GXb64X53C7ns5tRIjnk/YGn7Q3vvREB98m6HEBZc6cPJp36+bGHinkYSuNENeh + xTybOE3QDJJm+HN2OIf4WcGthZQZynSunlry+7+bqePZJ7bnwcSqG9KLueuBGzNnQmmJ8JeFI6mp + jE54nnyGcGwlgHZXPECUgXClGYTk9+RvrUrRiFOBIZGet0tOlvEcdws4wVjiW7nY7MKPBU18zkP+ + DPE+IchDwtBsW76lG0sOfoywnnSrPyeQL8f1S/xuw4+PfZqTSwtxJOGB41tTIUnnDa4NCbnQEWcM + Sgmvc4JT/hD7sHdNVoRKt8ewXBoVAwfwJ+JAM9m1XPvUkNJRB6Pi36lNyhMhGLgVeBWSjQUngnEs + 5hzb3mY5PSqwaoZDcGuxzmv2YtXsMKyjIjsqOb15nNQgZacjhaDNO1gMrNtTWP/oxWtntCgaF9XL + Fzq2nraoo/wgSrLp2dMxrZZ/dcdjz/bZ0xPTM2+cry2PYfTfCWXQmtJgNEj/Iq7/fH39A2eWqh6u + C+3yAWqeWP5d5d56zFNKIS2lqeUtkYQJM8rDubYdHuxUQ6IpmkxhyrX9ufvALt5gHLmETEOWw0EL + tt1/zrpnX7u9E93QlhrBEA+PTtvd4VXnuMOa8WGtwUXOoUXXdSl5UbvcNY1yzawabJeZgRwM54Pu + 2SrhHaafszLTP1arcM0wCAR4S9/YDBfpRmVsjeyjBx3WsqgXG+VS2KhYDzDQ+7a+5IsOqIQ9Yfe5 + pBED42juEqjxHpJdwLUCTBOzqe3beyFcs27gVnCJf561wjPYeZZRik5w2hJ3GikudueIUl2Anlth + JRgVZCVe6NIORnlLL27GtwelUF3RqBCgt9JpyTLtMXIWfiVGslaIcir3J4hW6wZ0yjB5exPk5+J7 + U4+30v9WrezHx5uMzrhTYewfAAAA///sXV1vgjAUfcZfQdwSMMwPQHQJYrKHPizZsgd5M8a4zUwS + NQbcksX438e9baG4EicRZ6I+EGxvWzicEs4t4eAm/fHu7PAd5mXMJSrbVJMfiiKYBGQlM42vZmxE + illL4XPH7vd742ekz8USPItDMDKpn8kHkAWJbDnOnzVyDoa7LwwJUbSosg/8k2B/Jl9OLoh9UegV + hc4ZKe50HpUHuX2JkAv3qGQnF/3ysG9fIvaV/0TcuSJ+YsQ7V8RPjHj3AhHf+/hyPMjBLWwX8vuz + g7zTKhtyxm88JzEp9hZFDO8beC+hvlp83dG9KNlbBepGyO+ia9eW9tfEDvkF4wOi1BBWc5jaSNRI + BQ9ljzUPBOIGBOkkDCffAz9WpMMRmOJAmf/iPzyNH33yPMaaFWRsH5drXWfRjfl0+bGe1Wq8xSvG + teBvIhLhDAc+Wv1scO0UAvnyk6dWqUNPLN90qAi8lhv0MiO7gWGgURB1COJNDU/VevOgr7nKr/I0 + A60Z7FiHwSiW14aW+I9mahyoga4kfSlpTjXTxsLekGxe1bSc1E7T7NrMoVM+iGyMmdXPBNtxMC4n + aK4sPAInyUyDNjag5VJImhNZX7imTcuBcijBKT3Xsd6GeayzcLzKW3alcWCSyxci4QuR8IXI+UKK + 84UchS8kly+kAF/IoXwhh/CFHMoXUgpfpnK+IEK3Ok2W1xoQKuRv1I2a3CBcevcwXc4Al9LDpKkc + RfkBAAD//6xdUWvbMBB+zn6F6WCxYZntJW43smaQwcAPCgGVvZWS0ng1pHEanKeQ/z6dJFuSpXNt + r4VAY+lO8vm7TyfpHGnIWy0x5PGSBvJWSxt5vJ6NvNVSIK8/8FbLBvBqy+wfvY/7iTT+agnGj+6D + L5uyPPpjhpPxZ63k631QGxc+Yfi4K15PWzgFb/N6ynX/W5M/mBlEUcMO7KJtCFHTtgS7PtQUTLRh + izBsumHT45gM5nKy6Ia7g+VcslR4l+5Eppg2lOf7rGBXlAfJmrULNY4WVmf5+qYAuFAgzgusRO42 + L5tP+zLfPbG4BBVMbMFfLNR5gtTJSsSUuIa+CQGZiiTPmZQuavvpLq8CLBEPxVMj4yExoi2+oZ9A + 4gBsPl85SWToE3MT0qDHiO+oV/cg76PeRtXvWZz6hfSniQ+vxXqzxBmfIqr1LARIPKuP1NPi06k7 + 4tXbvsLQijQqcIQ23N6YngXhAGIFUrcpOUCdCOo5pLBYeVzvcsRRFCEBic6JFOdE6uJE6uJEinAi + beVEPIaVfHh+iwQp7lK0lQQp5j2mWBsJ0r4kSIeSILVIcGSWtJDdxVMB6gB0EBwdxIUO4kIHQdBB + ho+YxBox3+ByjTvimTlz5jwOn2+dqZzguCP9qZxgYNR14VQ+AX6qyXyqkfl37ab5l8Fkrpvv/cgc + 59REJ3DShcD/i0U9g0ZfOjpKGOqusk7R2DJ1hJapI7JM3YFlOoRD12k3Cl2naFCSVla3k7/scCRF + ohGlxEmns4VVUZxkeTALxOzrYBPc6KKGv7zTY1OTK7Hepu+pV3PoMMwzn815bm+jABZ9ziP23fOb + onfFwQ+ChT9LWLXgXE2I5mK2FM8vfHwGVeuUq/L6qIIHPxeoqFSJfrHQQmo7e63KriOlDMh2Lmcv + pjrSVd2N6hsR6ohDHR2gjgp1tFYHT4HPYj11ZvOoWsiT+QXWUl7LWwRMyZY/5EZOt3on4AMvEAkL + v4uilJd/ZPz/BaxgGuoLddS8vfoJr6VAUrKx823lGrb8xIkErZWECIqzSQy5hz8j+Iulv0GBxxpQ + 3TFWto3OwWu7E9mC0UO7brHfPmTF6Vg+Oyqyqs9TNhMrt3+LYw4xD/tqq1O/BCLbnPAeuBXqFPUP + AAD//6Sd23KbMBBAn/MX+wOLwQmZ9qUzcexcOknrGXvyLhvZISXI4eJevr67AmRwoSPgJWOjXelo + tbuSPBLpMJOMwm1OFU5Mxqre+5PAsirkHGWSDbWLgco3kUQR7+mvPgOqf8X+YjRMUtFThRWK5IuS + sUoxkLglZ2gjWpQy/K/lb0nGGuxccQCfMRXyWfBYnfhm4q1uLXjS5dZs54qj2F6D/44kPMzLE8wD + 8GRM6ie6cQ6HlzXS++JQ9ampy/kwvsv5KOsda6PKd7CUvq1V41rlGyqmj8GQqGiojzSkyhICbonf + 71wwIHbP9EbipTIJZWtWWekSa6xCfMCoFgSNgCjq4hg4msHtCdKIgL4sdfcqXb6sdZBftegOYHvL + JV/7bBmpr7oEMpUkenKzxCrUDMnFMAcqsHhmTVXH/FTy3ZYiA0GN/ljiVO2ynyKpTVzLRFGyfSe0 + 8tbIqhSxRqwU2qLRAqk68SqieixyZpvXSspLqdZQdd0BDkdbrLDd4YoSa44XLd6dqPQ12ZanetfT + b122iCOxJUst1YECLZH9l2fW5olVxpeBUmOfb9UDW7tUCiNTuF6VbzNlQG6rB7YglcIAJ9nk7BSn + JVaefuQyEHBzFPEfynTWDP9ojrSKOIapwkjuRWTobvgZPPEz+E0+EoU0AILXmsskPAp9esUa2Kay + AQZNQ9r+iMPJrZ7FgWuNYMWXu6zxmmojjbmTMjBAd/TF3sm1tGkeegV/44h1WdAvHzzRvPFMef1F + ZSJQw7LBhYWBxFFkIkH3Ct0pTl3PNYeEjeuxAFibrZQ3hrNg2IiMmkqZg3yS4pncEXkvrRIKJ/TR + 9RhQ03lNuplWXXGL95UqwLrSBd8evLMqx+nTGfN6BtRrssm7SI4ySpFfgZGlqHZIS0YMUWKEwWQr + DryyUui53qQWOVoHbrQOqB2snAfn0Vk4T84csNY/z75/3ZX26p/r487D/QGzPPnIQ0HD4n5qDorr + w50H90tYFyLAIvag7ep9GEUcJOpdsu/8Ip+JBB6SXG4EWblwJPdzk9goACtAJKBQsGbuqqAP9bnn + ZK8SN+EeN9Qa0hfFvzRV/nLtXZ38Zf0qYRbuYUaSsNaSDS+5tjd+Z1X9vOS8LzLCLGQelPwyOuQX + U+W0HewIgEUEay0OCxanFXQhPtT3O+sb16uDTFJqlWJa33amFHbqz9Tza+t0LQjfd/BYCpY9cab2 + neiupFcnfB8DWrvRQNDm/kcYo+ejN9VhfJ5dfR/mYfG7x5JFrVHPFQ3fXwAAAP//tF1tb+M2DP6c + /QrCG2r7ErvNC7LbuSlw1253BXa9vaQYsMMwKI6SunUsw5LT64r+95GSnDhvbXLYgH5wFIomKYpk + bOrpoWl0Y3xrFv0bB9TLqTSR6n/MpDP8HbZqvo84sv/yaupDFjLVjzJnIkvMM00Mc5mIb/iqEKT9 + haXCC/iZwRVR7S/YTg6HCIsB4EaMRokKyiyYJ+yW457hEncQljerEuNmNaRwnYEmhSXp/mLvZHPY + dlFlxss8KFWCdTKXVIV0g3l7rUoaItV1DteWCogKkGp/cXdyOETYmM6VYjgal+ohGGERcxeIXAZJ + ErR7QbtNwnfWN/k5zqFq4ALnwDuaA59yCZeX+8u+k8Vhph7fImeBrix5FrMxz3C9g/ZrKv/IGqti + X2hi9McaMXhXJZ8LeFuOE+HvL/9OXofJTxvSPlUak7+z2QhTHRWvPxjLdze3pn1ERL93Pmj6/aXe + Pv0QganCuGcpBugpSszGtaK7G5z0Fx7TD066Jke0O2t+j2HgD8MBzUeoTLUEfYj37+Jz4ArYEBjM + MMEJGWOOD7x/eIFOxYo7LKKSQj34a6vAQM8Beoxm5oD3J84BmgN2zv6q7ORXU8Wg+D+b+p7Pfavv + S58nFfmDFQ+u+P0v50MyFRzReERh5vsQhgJ/Y0KqPYlOueAF1he8mNNvz3Ap0ikh94Dunxs4Or44 + Z+8LRs+CABcLwyy1UxUZpVkiXXu9+YIeWufFK2D7KneJ9TZZvOd94fTH8gh/wZni50LcJdzL2Iy3 + 5iwteWvMHqSv3+2DZ64bj6ZdY0wwPANAl4ILghfwo0aDxkLJ1TCZcU9/mNoPflNPf9Xpveqf0J9u + ZKA5xIt/yRO0IrV+RNWHgdPUHJR4/3H4uyrQ3+keTw0NqbI2y4kaC9SIWCtBoqEaTQf5aFWalryJ + t8iZuhkcO9HTQn9CIahpTyrTLej6x18tL2gCcotMswqDGjKJuWUoc0xInhu5KOdKAwuc4gTbGKPb + V8AaMUYuMfuc/IWGuL9JUg5eHMY3rHirvBN/MHDB9Q1RKMuRNFZot+KqySZq6JWJQ30e69PEMwL7 + MCBslwoZoz7ZENj5dUZPDUudlWlaswzWEpKvmWbTWxynFbT96GkJsnCaayAwgpgKlMg3sORglIr4 + jqCKqkD1LZGdmSMK9kSCCQM5cltWnXqHBlLgVsLQRPfQXTKJefGOoa+6U9Wl21m0jtU65AJqNXtD + 0GgkghV6ofSEIBY1xgSqWw5QUg2QEZKgUQ1ERgfGyLSBhIQ569XD7YTFfIRGMg/9cFV5of+PS4k+ + ielTjPn1b5fnAoN3hsy80m86R2r7d4q+yz+bbgk6NzDYHtbzPXotDLkGE3VajpELL5QQ6YgVg5OW + VEyVEi/MIZV+p28xUga9bt/xI+soE4Y7sbbk2zLOpgmsBY5SFZVFejRVkQMiiw1UVsV5af7aE+9Z + zgqVaDTOnyxb55kOrq83kPGt4+omGhCrOrDT69jGlO3ynNWfwn6VLxL8SOXq+j8HOatWVfeJwuC+ + NOh/qvPQctcq79KZk8qW0miss9EupTu9hdJdjRi3BrBYHfy07Z7aBDZtLZQi1F+WJzKcCoFVhFbr + Vh6TCoT4Et5KFFE+ZDGm5Qnmwkf0hukbcLl0azFppZFqGuRpKXF7OZTLGJYnmVB6m9Mx1cVwdTir + +3pRRFhlCQMNyxJK9i+csfzOc0O9lpvQNXxOPXzwaPCAtJUA470B4jH3xo89/ZHcBOjbWuuZnoFR + CstAfYlXx9BBYgymsE5s+CF1YM+c+ZYYd6IhxhpO6iiHgyJXUg+6NiC0XWhiOebauOACZkQrsRm3 + tkIyy9+OoyxETfRWLDNOCukvmqA7f79p1EMpCtUC1/q72wKSh1rnVsIPQfs0ltg+/wIAAP//vH37 + c9u4rvDP5/4VWc89lbRmVVJvJlEyfjbP5tXm0WzOjuM4iWPHTuzYcdL2/u0XAClbtuV655tv7pk9 + jSw+AIIgCIAgpKLdkPgrek4o2G3J/EzUoFq7edtUwt58GnReBqCxdTuY00hNUOfvYfelizqHIThG + 2eJLPFAGbRzeBbY/fgsrBXbGlx7V/mGoSkSF1ZVJ10wX1A0qUD+YoeGolwlQZjRvjERxBeaWoR9E + BjMA34YBv41fAPq/bfx8mIlhtci/qyspRDC3E1AV3q0Ytv1J/ZeWDnNfIFP4oMw2sDESEFobUES/ + rxuw+honoHROUkWt0HU+ykLVv/uoOpgkqXIxSRUmnvpXf1CvN/p96G7SEvQz2PD6DZVtClX/WrvR + A50qUZ1fBitIC2jSWEnyR4IF+scfhroulwkWE0G5KjmWqoGpUsc1KJh2DHiNnFgUpkl5rv71r3Sm + K/UpN2TMWgd0fwZSEazn/8LgWprybr+Jk/r3iI0fwXL4r39NCmKzTwm91cLFNF8mdQVPUxXfxhXV + SlI12y9JxbmFkitc92Az2iNfHPzUsjtPvedzydqEF9AJ/Ab9ZaC2+8nGfwMKcv2li6EsqAZQVCuU + 9ONOlwGFmu81sOPwBy3cXH4yLOgQF3nq1Vs+l6M0Yam1mV6GxswyNP6fdzDYBx6eB43em/3YvW5S + RrkBbggb/4eQr0f9dhMsQvux2fk/g10f9F+6jwvA0eZVv6VNMc6RsMwtEoDIuxfy3S/Eiq3G4fdF + v7DS7Kgy60fz1oQX2mSI49g0+cjhBRZa63wkCs4m/A5LTFqrZuDafkUwPgqq1kYsbFe6FXdT2J4T + VdxVUwjXZqHNw4pjWR8+YK9o9ZRA7QXLB/sVwmOub1vrMVSWzA8s7F0EAQuge3iKQujdBxvSIkyE + 7ciKyxwHW7iSua4tKgIaBXYQVBwmBLRz7aAiNrB1gXkSCl1hM+ObAT36NsPBVKA5FPvVTfhXIiDH + 81nIbQ86W4BptcqCwFoXjrdpSltKgBYpHIMqUsAHCgR2KCoOdhrg8D07gKEz15YRUkAPwWNYDiiE + HlIPcOeAt2etAhYS0a6EzJc4BmuTJhR6cqXtAqGF52eiJ5DkAEly6JUmSIRFZmw+w5jDaCM2IxeB + FoqKvAIIZQtAyrVWA99eN4UDONJECp8IFjCPxub4DhFsjH1oBwLpbHMXm284Qo0Bx+phAYc+TSdk + obSzUXUCm+F4AB5Nu2tHQB2AUqwCZC/CCWVoXa+aMiKshOtZG3gnAsYf2dYmUGHV9dZhMkVILQln + IXzGsZHtIymEJ+wE6ci3QzW6KjCOYwcAcNMDjRWHLnGAwsUePN/mCE9wNbG8hBMBvVyDJdz6NV4v + R7Pr5Wh2vYjAY55nrUc2R4YgTi4QvwSccBFuiDOKFOAjL0LcogrgEBEPMjeyI0AF6kcusixM7AbM + cejD8kIkHeAJbvsRsXxoO4ptj6aJ7ePoBRdzBaYpA+g0DC1aJVWiDLeAb4vequnZAgkYBNQtMI+w + I0VnmAccSjkAWQCTHDHkG0VkWHgZYEKcMtsDxkDZ4biVzdCxaWGExEVqHSNHEgWKIc4Ch9WKTBQo + npdBAiGcg8DVCPnsBG3PTtB2eoIA0+1ZTF1iD1eSjIuKgEZISEiQT55NdAokA47BSdvM5VZBB4Qh + bACP0lx6JIUESJqIOE2i/ALpxGCBYBNLYzoH2lcsCtwKiyrEOV+nOfFgKfm4ttSS5QBGgMgFxoB3 + QLTAReHHdbnjcSJgkRi3JBmwDXAMtx0P2U9LZhbCmqAKLq3qMjLNLCmwOaLgF7DHspbIZYBvrTrc + 3sD5Avkc0fiBFA85YAVACsQhtwWfjNWf61tNFwxDT5cx6DdW0GNVfzHWcN6e/fP4R27HL+RWx6bT + OTuzfmhj4Hw9PgO1MvclmqnB2pM6/zn7TxsrlRd384F6eZ/tZVLhT6rweXEPMBCqcrO4j6TKtbcE + zPfFFZI+3hZX0ST5triGGm1nOaZfsI/cTY4ZI2EsrEtVq4tJ85MqnP1uUFTjbjl1d5d2Uv8Nr1CF + 28VdbCg0Flf4SBUel7HJ41J+PV4+1MLSoR4trvGHrvKyjAnefscEVOP8N5xGFR7+ARoIJYfextel + pHn+HWkUEyyusaGm8JpGhaoSLMhlJDj5TXdUYes3OCsSPP2Gp1Qf+4v7SIhUX8Z3x8s493DxZCZA + +ktp93XZAtr/DUOoGlvL5VdjKR88LJPWjaUicLhMJhWWYjFYWuPb8qV8uGwJnSwdSmspHk/LxXmT + lmEDlmF36SL7vrg7xY1fsQJmzwORuoxltpfKstOlCB0u5dzScrYbLVtjneXC7GwpIkfLp+Lrcly7 + v1nuqkZ7uVC5WDbgyjLWM94Wbv1qckeLsVAgrpevkOd5/Y0NJ9X+PPuz/ecQK94sY7WDZePJ9ZaT + vry8SnM5o7wu76WylJd6Szfo4tLFtU3rvgnrvrZMqBaXbyHnS5dqaXENtMLUgl+MtVKiWsuEZnXZ + dljDCrkXGPbbsi3+fdls/iJzpO0V4nEt6we+Ooxzndxa8nLlyCTGpUP+OAc95FgLrDnfDiRZzAI9 + TQLsMDKiiiHsMDll1Luc7MRCaFnsFI9Ec6wcX16xQgxGkA3SlpXoCXQbthOPv/uy9tJ7+5GYubtx + +/IgKtgXUeHKtNhg7Q+zEJuDeNfuNEYvpmXZ917BWht3af0o20+D/r05sClYwloD03j44QMWw75m + lpOAgaF2eQAh6vjJRvNMjXE0Ice59WMnPgdiPky9K+G7tQczgbg2grZrvwD3Wrv9tvID0QegfxQ+ + fNi9NE/zWA8mLt+iJ1Ac84fWlUVFdXw0042hYcl6ue91X1d2ADU9ZeW15Gl6RmkG41w9x4YY0J5j + MEOdPk5Qrp1DmteukeY5PN4Esuc+5oDkuQHOxA78rQMn7ca5BrQYxLlujo3gx+NTDgacq+XYfpxb + ybHP8AydVeLcMMdu49w2MAdgWcDUH3azT3+BLBP2Wht/KwjHCyvH1BPIDq4fGvUXrDyufUQDUU1+ + qHFTJM7Xt6dGpdcDLjBv85X8Z6IdrHr6C0Zcfj//MKZs8nc0ftofPw30M7bZnWqBM7GTL0H5IdQ6 + zBfGMMr5Uz1boF/o9vi+Pm4/zLeTcsvCtfQLZnFyFvrGXiLWidQEtURsmAb7wmOjbbAG/LqBP/Cr + YLAjGRtrBruAXy+1a1wCPYOdQhU8ltoV5GirkPvOT9xI6FuteuTLc2xm3BvKkecXWSRhoZWh8ZvB + epLWqO9wtUh9YW2Y0o7QieFMfC5uxIy+6gHmJ3HJWawEvajPkbIvUWw8dgf9xuAJEE1+3HRfOwZr + ws+jO4MV4e+XV4Ode7Fxt3VW2r87KxrsDH6NoNYBVw5DRzJPkjMbPW5cCRCf25JcPMa7sWo65DmW + gXJeF9Bz7DJjgBgmrktyerIh9u1xbrA6PHnw9x7+6pTZBrvzAGSAnfna/1aMWISOHt92kAYGxz4j + 9DMy4drSRf+dEOSo3cwd59AhzZngwlqX7qZJpD42yOHFHKRQC8BJg9XgT+jAnMFf4ZCXymDH8MNx + vVEAz2VEL4jouQBUhboP8MqHX4gw0BDmHihbhD8jaAp/agbbQRYw2B6wxy0wArxsGuw7conBXuDl + NdBaorONs32oqo9g2C08M4O9wh99zGKwz1iOYQwGO8H3/f7xoN3oG+wb/MIDcoN1ZBxwNsJpEk6o + 5LZwidzANa7yZEa2G6A3zIQZY0aXpsQFskgH56NMjV1opzhV8sQfXShAG0l+PIYRWXgI4Lkbpk9T + HRb0cUiBGZ+gTxEAbwS2IxTbln1rE+QOcXiB/OAVANYFzD0YGY8dl53Av4I1Y8n6PBYhe45FwIqx + 8Nn3GBbLN3jpsnNAz6Ne0ctuR+Sa5Z5NzlgYj3CQG+jUogwAvgBp2TadZKCnFk9kiI3Q9emgU1Iq + X2hg0yFOGNqKKfZin71gM+7ayaGPR75rJqVNI5XKsxyhMxRdy+uxL/F91QWEHLWWS+iujhLHsVuB + hYlHAtAqRA8qToPFruOIncQee49ddgYsERnsCf6EBnsE8ghgty/w84yOwWC2X2PBLmScy7F+7LA6 + sJJtsCrQjrMu/ADOizn7Ck+fDHYIHXz6ZNBGjBJs4E1tgORzvtz2C1eXL9EV7ZD7XlqLKEWxeSis + /L3Mf+X5Erf3QGQeelCvMt2TKorP7WevAKWvU71U5XwvUGk018UjdgElJ4vQtN9v72q162Gjh59C + pO2bAj/FuD48a+3nDNam5KJ+y8OARzewFtux8frYrb07d0Ft1OSwVodpNAex2tbsp173pYvnkvZ9 + rX/w2jnsdZ8avZc3GyP0zREbWJujy8HV6gDA683x1iuYD1GikhxPtsXaS/caSi6Pr3QsZpfjB6Zw + BA3Tsh+6zQ6+gq1H6WUXgD7s+gfCrKOuVcSf5fg7/inEPXjLWiDU4z1hnlqw9XeEWbZg63/CCoN4 + W5g7rMQK7BhwACXgxxhBMOrMoWTHEaBG76f29p4q3Z2UDmEbRIwe4mG3ebNynPRzE036wfL9qZl6 + oCnZN9vWdP+daNI/tvqc0eozKV9YWgEMQEH5R7NRwdmo4Gw8sMN4kL9d04RvC/PQ0lGm5jFDLO5g + lFXOmtLcAcUlX+f5XWC2Rz5hnkeO+CQqay91MnN5BOxHxzO91PEMHTejsOEubC8cRSMerEh9IimK + WBjROWhv+njBteJYOGLuvWPpo5fe/HGEjJLDCNRKJ2hd9gg3xfQ61rk7eBlrMSttczKovcxB7U0N + Sji2Q1uHB7tm5NmbsGvC71W0Eap4nuODiIu08uELtc94JAxxvBUc797cMV5IJy7qXHTdBBWF4Rme + 2jXwGNFa9SPYpBxSXZhUB0x4vgsCVp0Z4xkXSGg8KkrOboiGewtouDdPQxPBw84kk5Ncx4WtEE/6 + 6CAL9Rl1tMU8HzcGB/YUoPuqsB08RIbBR3jaDaoXaRqbsCkAGWDkAUUP+HR2nj1Le0TsqRlqg+Ae + B6+u/TqHRUdB9Uk5rgiqotRqLP/1iz2nxN2zEgk0+acx6FG0asuwbzyN1DlVAVQO+oCE+lmaWnq7 + OpZnLEp3ZopVzE5SuhunxmOomGv9wUTjygQLagfE0VoJ/9m1MYzkQALKsKpSYjZhxE4mI3ZSjOh9 + +NBZsGo6C2a887tVk8K9QwPAL893bkr3zfYNoL8LxLXWMtaP3lDO45z6jEduTS21XOoXGG/36mmo + YzUTibkLUgeIgYqbrSPNwWb9+RPLRmKuyGznzyxdfOpPmuLtjGu8XvbGznVxgXru0pc4t2gaaefZ + tekLIi9fgAaw1Tx2hw0aIg6wbia89LtaLcVnp8h97ylmexcg2X+oQbqa1eqJ5U+/WsjddMMVjPY0 + AXEt1BMZlWaxOjHX2cQIbyeLYNxNi7AZjhcKmPpsO4UW7HraLcc0iFb8AJKc9a08/D3Tf9v671D/ + rcPfdJcPqY2Amo3Hepa/kGt0GYLQfBPmMNnq21biUZnnFg4MEZ/nhzA+oruGhc7CXgp92NVTsF4T + vtmG2T0D1c8i4hFc2EXboBTOgwQ6DomOdbM/s/X2qNGT1DzT9fHnmbQSQs330TLfrYnHArHdS2EL + msfYX2EINwgMzfWGkA43NE+MR3Hu4yiGmeDqGtwsykUaeULZ04w2p4SixrAOGHZSGHZSGAqpsROR + xuwEMTtbjz9e/w6lkxRKWPnld7jszVTeVpXLGZXL5vZM5T1VuZBRuWC+zFQ+UZVLGZVL5vVM5VdV + eSej8o75ZYbmDZqnY03z3Yw2u+Y5n2lUoEavutEgo9HA/Dbb6IRmt68bjTIajczvM23eqM27bvOQ + 0ebBLM6OiNqcZOqpda2nPs+0GdCA9jK11LrWUvuzA3qlRtu6USWjUcUczrR5pDYvus1tRpvbOSX6 + gAZ0rdscZrQ5NKuzyLUIUFM3OspodGSejBUMrHORUefC/MynF9xTasE9JSbXOXorHo1EqKIpd5Gq + h7bNePv/kt7+t5Pt/0s69kl++PBlej8PxuFbMwWRKvDmCjwV3+POFej4nrlwrItZvC6/JMhdpJAD + 3C7mUTAxzhN9e77yjDkqJtALlZZbCFTQJwYSBqRjehQ6uQE6p/CT4CfQbV1yWKEJITnz7ShQQakz + ENE94YPaieFTpu+Qn8YPxnFWwomYH6KXRlYwrDIiD88mhm+hvg0lkoI9QRe3A1cpw06EkXWiDBpt + QLGPIWnZphnYIerLoDZTgBxoYZ6ydiJ/HIPoeCX0AgoV4HcxT2+MiRUeBnfJiIwGolKFMy9AxHwX + AwS158QFdXo+mvEgk2sOpkIaBUWJShsdjIEOuOU4PkmOwkTt5yrMjyKEPWZ8JT+Y4zDfQ+wPMhiP + fJ+Rw0Dnx9haHwPpcMq8IMQZ0zPr2hQNJxUVDmanDAM4y2glhUDFUPnoNk0pbIq4RGcdWR8BHwcr + enO9eDoOTzLNYhZFuklgNdsJMdZVhdWWyAdL/doiQLoLmyMvbcQ411VEXrge8luunKOgXh6icaRt + MIF8iwHJKlIW7VxEPaxkjGzRemrOraeDZNqaqWmLPnxozpNKuCUmAu0+40XAA/mX4o0ZRhiaPqwo + jyv/Jhhxm2S9YUQosBEYrui181iAHjuc6wij/3AxkckuNWvDgFwW2JLogivQw7BtJBDS0UOnIqcA + ciAEtzagqYfeZ+GpSGBfrWcymF2a87mBOD5zKdJXzZPjVZmgpShc7XiE5SBVfKyyanHSm/MEplME + nNWAU5hnCMLBTdZ7BZprvyNFooOJPllAOBVnsbHX7Ay0XQjqWwETHzVvxhrcaz/R38jdqH60wH48 + OFHPp7GxX6snv8DKbB52byZm5mHtJjEy4cc9WEHq5w71V6qoX7skTlTwso6mVyHqQGYiiohsZgTo + Q4Y1huwYgNzhFMFpSpSvkZI3BYrtptDwdYy2dwKaN4yPdmCqPZJQLPAt5coaAFIdhcIIEFJPD4Sa + 66hf+zS+INpVPz/HxmFJPVZgaztUj7dYST0eUn00VNrqxRG9aHZeuv179eYintlKLkEwXrFOPLMi + Lpv4+p7Hl0fskKmzMovtX7E7ePXAzFF+kN/Nd4UFJgHbuWJb8Bo9feUrdhOXOWq193xy6dr6Ix5r + gC0+taXfKB2Xm6cpXWFrQduDjKYHZJElLe8WtCxkQS1w06znRzw/tFJdfNKM+Ml+afRfzItEoczq + YcCnFKM/bj58+ERcrRt3dOOdrMY7nFwqWj+5Af3kIKWfHJDhkAiu72nBVUxk1vdpHeD7vA5A6snM + +5De87n3Zkoeoa8NeFpsGt8NtQWySKhjvA3sFG9yCNq8iPndKl3EUNIiTC/zdtzlekVPkL8EyFeJ + UXbsp03LT6Y+W1gRIEl/Jj++fKXflqZrYsJNW51tbXU+4k37qb4iW6S7Cmx3tqdWRk8tE0zT2Z6m + +3Fm+znN6Oc0o59wuh8x2085o5+y+SRTxjDGahdTHFNMa7TnQZZuAm+novnx94xHS917mCnQsfZR + aKNOFalg+5B0DrytQWocy23liBl82CZB7IEWCPpgQCdankvR/Uo3ky61wz2Q4uhnYAmEJeXce65w + 8NXNKY8Oudxg03HxXoRDDtwCQnWk0ijpkoe1mYvpnM8RHPURxyX5HKCwdrxEOXHcAkM1mVQTl6MK + ApqPTLtPiaZpMQnYXV0a5JE0rtJGxvfUlHyfGCOpRCD44iz+eJ5k/3iHvemAHGem9akjk84w4OZA + piSCnFg2tdsBXTrVfemj2st+r/5nnKs9UWHuKtlb035Suo930mjTRUbjCkWQXohbHnpjynxyXjQW + Tm/20CtsttGLavcaT5hg2PykwXy6Y+fWKpUBwmfRBOGzCEVYOu5mGGS5WYcprhTAfMMZhuAkVvy5 + AkkudEeZL3jzolxiIZ5p2rBX4zU6NDaQz3gAfIFOcdCMgHkdNelaSYanMnJmchdoOM92pM6SilNk + UWBrhbaiecZTsQZKjQYNAddCyNV9F5OOZj1QeCtKG3JEhKaACoiYEpRaSiYOTDTxJtMGSF1NFnc9 + k4z1GTLWgxnx7no2kzyR4qG01b0bdbqCKxPv07n6YhJdGfQcrXwW1Tm1yz144XIkARgFsEro4GHV + dWy8VYZLhlYm6k1hsqTwetkoKgLIyKdTl00w1zw8woFNBCWBoAtv9fnJpd2rPj8f2PGMZl+fJshl + fYpg1UyCVWcIVl3Ed9UFqFV/i5peViVYVinEqig36leX38QVO1u0+Sg3+8l9o/HSx8on4ury/ery + M/x5FVe0NSU5Vqy1JOAMN5g/Jtd5Ekb61Y7bqQQ3r3T6OELPa+I2ftU66Wlavhl4WAzyAfSb0/hU + nxffws6a0LQcH7NCnHz3bY1c5hgKxwrWWhk/QaXH/x3Gf3oJmqHq3EiSxRgA477bfzGurCxH4lA7 + Eseu+GSYE1ewirCDur9+sXZK7rSjlFd49kKxXma5v3K7n7+L68cvvHYmB7ul1l3D5U/wN/wrl5sK + FmxlMk9rhnlaGcyD5irHG7VgYNFxoxsq4eEIqVcH2IVkHQVoNTgYNSStTSMyyGKg+462q/wtrQVM + 2PpH66OcOYhyahBg5JXn1QGTsFgH1dBRezbHk8gQ/QoOOoU826fbq47UEiJC90OEItaji25kA2k5 + 67jKYCfD0y+SwURbsIrjASqFoZaTZDv5JJBnsBofr5XnBz45XpvXDks23e5GrqJZnZGwrSmBUcsk + V21mzmuLBEZtwVzNvEcLOuJMnzJb655PD3iZlxRrIGdIpihqTxhp5yan1kLxkbp8WS6h8wH3M582 + sXWMJHI2wRp38L5rEJLy5VB8ktbR5/jjdEZ+1qbI0cgkR2OGHI1F5GgsIEdjfgbn5eedPyU/Gyg/ + T6fl57Sy3JqRn6dKfvavLs3PwkokaHmRBG1lnYG09BkIus5bcWtOnl6AkGvNytPSbw+o9wWegLZV + 1Z2Mql9BcuGBKNTNkMstAFKyU4fG5o6VPlQuB/OHyqVJbqpkbLguFpy9Qu1f00L2LHUoecanwr/3 + ay/39m27CwyD9HiPCia96tXAynk0LWaefTy3rPw5dMqaKa22KSfHuOPAnjNURe2XbpLXLkVZbfeN + v6vYHo+prs8NphqqfetCWjbwcqUGQ5naZEh7Hvd1Pu5rmMdg9vFPQBJn/hfrT4LBVvqeqa9fKJRy + ayvq0L0VYx48taPmOoPH60ZP/UzxKW5ww58/f/zS4mia3ZJ1V8pcd6XUuiMFky4+B0WQBSAAQZpW + OPnxUJ76JIGDiBRTm0S1zcEYQrEbhjZuMyiTSyhoS/NGHxmDM+897ftzPBckkb7jjVKJYlRA947U + mYGypxwXHZhhmAHADNChJjzQQHU8cZXusds8Qr0zt4f2pBeQrkgaOvo7CxEB8URSg/aXdVRulRLu + iLLCQ2j3RGRHdC1fxejI8SXq1GIBxK60iZ0s3aF975MWjrtG9xbexKcwAu3PSZtzO+OUjjupfI7I + xqfAxiV2LnGpqg7jHfIDlKAn4NJvX0uKUaFXKp16iaf07bgxn+xOy4zd+CzfyrfHInyArALcuJuP + 6/kBVRnFw8vB2NOyD5J0xBKFiiq28iNg6wKFm7B6SoeqR+k4gCn1FPS39gkYj7W7xuWZItswtQzR + LfE9tcC/S2yVFKYbn4McZt3Uiup6aeYvZDJ/IcX8sIUUFvBsYZ5n6WJ9YX7LmXCEEge52Lz8z9rV + n1YSTGP89dd/i7HiaG6u/ufn2oouracFN3R+ZT+SwET+OG7cVUZP5jB/PjGazcu/7P/e/BMW/l/m + X9Zfl39d/fXXX5/+yv/nygJDum1hvM1YoG3eNOYmv375emWtTq61/GLnKYfDuVBSGTeyCdXLnLgO + Z/4z8MC5/VK7+4JpKc+s9AWL5An6SO0JdJGCtVMz2k4cEadx6I9jvAYT33ujO/G83yRedwzkjjAu + jW4PkLqr1miituCZm82MoQrLV/LASljdaOiOBrHxOPabJ3FkD7HRq4295mxl7DFv1Mce8wdj7ZCb + dcnSzIw+sdRYrR/ni3ZD3LhgQ6jLGHq5i0xzxPMvki6RfOf5/fwuz+/J/EN+BM87Ij/Awl18zpfy + eNvjmOfLWGnELWuCwsROqV33u+3BS2N8/pGEzNXjr57d74JQSSOeNvLQgaojr87QH5Uv8vzZdCgW + Yk+Onj/GQUlbaCUlrHbtmT8oyyIqMbcvebPJoRcLk1bBK/g3P9QZslane4b3KnXhNAZDSvCFyK62 + f02c3JdXiMZQTIUdShXbVU1Jn2pkju3HVxCidZkRzbz26//DfKL7SVg/pgIdh4L2+rsUQncpkxIG + geZhGxlhoWet0G6Tc41lTNo5EiGlWKUE52FKwzrk6etYAFUxxrHmCh0KPYkEO8S4aXaepKzFcIkz + 8/xyeMWGOP+anB0kJxvLD6jWVlfb6oATqD2va2l8tlI0AIZJSef9TOm8nzYJQNzuzxs8lNkmkMnB + L/fRCwWGDt2ZwbhdR0XbKn/uOopte9OLVk2X65xZRcxqJCNyTKG1vPls4DULJ/GqoVdQomoR0a0G + 5uANHREwqc7cKd2SK211kltC75Tjoc4Q6ZM/cgv6lCCLKRN0bhiSgTayruJ2lUGPpjsKLpWGia6U + rPORh2fyDmWNChzMGqWMMrCnKfkXJU+yPYRqdChxk7oV45NVrW01PgefKxN41oa7zZyS22kb/3be + xqcg1pn3Yyv7NmPDjGYhjzIhj2aYYTRjH3qJHThb4CbjHv2jcZ9kQj9Ja8mBzYGgqG06tucjq0W2 + RzHTphMQA4TkqiRHLfMo0RXlEwoxPVCoPbkhy+3kLBUYgcEtHnlSTU8wrp3CFT+JtqfEYZgeC9jn + JMOvYqogArUHYvSFqyM4PK5dK44LSAqdAu5kfnooJRgBERgBwjcxVEKolSPcAmnG5BZ3AEFf6gh5 + T2IIAerFPnI+HsnMd6+O9yMHrxupZVIp0omJIHeNPmKROo1bKYQeg4wAmW7mxHTTE0NueU4JmNZj + mCXUDTCHlIqq8HEQYZn8RaIQIQquhyig/71KDn50jwQ4hO4i7popME3fUxElKD/QLnK1Az8EYRLR + 1K/6oY2UiyhoJYjoDCtUKxyWdsRUEM9kgXaz6EexPI5OBgasxcOKu+lyTkQLC8hm5PahS4muCt6J + yHTSIUwcrzaMc0PNEPcxk7iP06v9ccFqf8xiJwzKioDrI9uJ9DEw5ocLnIRjIm7DeEI6QrHmOskW + DW+ZaL7NiIa3RZM3WzBeOyC3PVdd8sQTadxE8DYGnmPASgpQxmL8WoC2KLnLcqOcjohCzyLZo2/z + A8gQL8+ZI3ieJvRzxhKHDYzD4oFFKjgekoZCBdrlYhAiYbCBBIdBUrSZsl7VEarwAgrVkxSHhwIG + kPZcHT/mBIpblZAQwLwwoBKt4uf5WSUZ/vy7iVJGDx1GFjHpNFiepXYTVKZjvFU91hB/oCqoXDpY + CzRO1AqVhz8qmFMuqiew7i7UiaZx9fNnSknaJ6+Uypz6tfs0U3o7W2qxtIY1ouI6ITff+GS+FJRF + ULZJr53CXKm4iHrdy0D9PBP1bgq5Pehgpvhxrnga+bcUehnNnzOKCf1foIW9pbTCNz5xXOW4AHno + B2Eka9d10OgSi/UiiTQ/mxyQgeKII97xUf97B0sGz2ja+XhIrAFsgaU1NA83Nup/XudPmEmXch3K + xYn2Gvf0cR0PxDisD8UoryqfPV11dTDtoJWf6rY87lbVtqaUzFpKyaylFO2Us6x+SadWqOH++cz6 + 1pU6J8Ug5MQywIhzPWqC+ZQqzF9jSHT+VavOaJyrDAMU/oz3AdmzNTnaamlanaNXlwFEa62F1MKy + maj7y9aVjvE4BvjYQdL4xsfGCQa6BzWOMyqCUfykYWyRAZdaoC2Ltf598ieOSDXYnW6wD3jRyYGu + 1TbTTlDWTrFLe8qIoPHeQOtzmIcq/A+IQu9eKJw7eZcmYwWnDqmjKvYpWmf885BucDxPfBb4sgov + h+vrz6z9QfcISDVSk9yI0ki5TrrxEOGtr58x4JeN9kdyPtykBnTDJ/dr8K5ZwkfchF7h3zZeljmH + VY93a1qw/OvwjJ18m/TxLd0FWJ9JJ9A3ovDgqysfP//n7AOYTlBVVUNvVcpZ9ftOvnnqrsnP9of/ + menk66STr7/v5EtU0D7m6R4eJz08Lu6h/R/z7Of/zLZtp9xFbTERJq7nepHv+0LLkFBEYRQ6/vjS + CqiYjuBuKPUqwiyl+jp+SR/+6aBHH/VqtIg833dcHnI6KIx87eUNI81irRi2Lyl8EXiq01PlWA4w + nlZnNsb6JZI1EXToB1zIyI2UX9dT0WoVT/dXjl0QTSL0PPpZiGEIrgt7vh5EKQaVypOOE0r1Yget + SwE40q9dqC89GQUBD+jFgNApUCZlDxEKCB+HHMwY8BxyjjQLMcOnrdIA2I6POlxoh2ESaQII4dmm + p842hdJAIn0MKqKAUr2G+gInCtIK3tR3fFcPaxT7IUwO9336+aCaUXZiUuYpUHWSvTdwYYzkfXds + F0PNwSal2BZqvY+x2niq7FIoFBLZYQGd8oIp/UbRfpizlNPFWFCwWejoxAQyUPoLtAgiCZAQBlor + kU0JHSiRdGhHggZOty9W8bU6Ba4GGoPPSoELKPId+lhHu0vb/xjkLTBHL+YTwZQalPVB5WgOQZ1T + JMXUsTBNLo88ZW1JIphb0hAqsZS+60aBZubb2Acu9BzfUd7Kw9hzRCT8yFUUPYoDj7uB50Uh/b7A + sxI5YzCGqMJFIQsD7khgFKIvQxNfT6QsUvi3uils/HvNWA24vYGpRgRmwt0E2zHR6tGy0Lh2gBqO + Q/aUEIJ8Iq6/ielzQwcQFjJESB5Zk24yifc8dv3Id6GKQy/ueBxEAvgaeI1ebPGY8kUgcfWdaBe2 + bDQnyPwIMOGIrZctOUSECtvBUCDphbCQPGUkKm71Kb+vH4HlVahQD9UCZvXVCN2AFg9cFwauwqfF + wc4InUjC2lOL6wBqwGKXDg/UJBRwDPDG9/VigyYRzLDL/UB1soN5JIAIsJ4D1ckW5p8B6xNzLFN8 + PBiKLCIvikOTEeJRON5DUJ6ikks87Dic8XGuakclig5h4SoD1nEd8kkpY8z3Nh2JvgCuU5ZgdLyW + VzIW0gHxEIauIvMzJgeBYTgRkIze1GTsAxtA96rGNdTwYAARaPWKu/Y5sYvnb+DZFwkUnYvYxZgp + WL6u8OnGTaQNVUwHr1FoSBJqAVg2irdPMWELrAbgX6kIewwYBLAyAs+NlFyTMQoPREm9KMsYBuGF + kasXQAXmIuIi4JEaxIOMQw4zGgVSQXmHCqEbSeALNTfbwHCeG4owFKrJEMbJAwmIJzxQAswCP5Sw + CvWMwwvHDXykl5K/A3jjg80Ps6yR30FcXQ+orwAfIVdwL4DhRarbfZwEyT0Okk69eSJ6Vkt0y0li + NmUldouwIMlGskWAG5NKuq0GDGCAExXqt9ijH3kwT0JN0S1OKwh3kKRCceerpKNWDxaMb6tD1RDP + O2FH0F4BTws5ZDivoDwiyiekq2B0ncPVcakgIRCoq1hSMs8PuQ8bm0WfBghUqFA4FtojwBAYDAQA + kIbe9HCBcc6BNo7C8DPUCQMPNgapBnGCnOF5PmwkriJuDRaUItkeJtaRtkPhJTbuBBvSlgH6XjAi + CTZAwDCiWy0CI2cF+V41Nn0J3CL9wAP+oBffgJ8iHoWBdNWLLq5TF6N7aMMvRvquCafU2AX0KlB2 + G+AfENOgD6z6dLkiAimrr4zBpkVmrlHHVPzcJi8UiljcAALbw00lJI8rpj1X2fQ1fq+0KB2cUakW + 4VeaPVEq0Ul5qQD0tlXum9DTogItGrxOg18pgKU6xo0u9njMVynDFYBHOQGgV31cQ+84Pd/Hj4q7 + 7+KPX9XTVvzxVU1BNe7KsZ3R0KZCC3TFBquNTYVGPn7W1gaP76ndoYzv6OFNxlv0cCPj6tp9/M28 + Z3dsi1VZ7bKRP75iL+zjN2mtVaGkylQZlrxesXPOPvahaAuKsAEWYlH/ivU52+PW2h2UqM7uqeT9 + itWg0Qk0moV0QpA+Z0DaI0g9Pg9omwB9HMl5SC8K0msGpGuEdMvnATXVkG4zhvRFQapkQHpSkPYz + IJ1zBHWUAeobV7B2MmB9V7AGGbCKBKtAoLpToGA69tjHEpGvOwUKiNRkH4dEvu4UIMD8O9umaepO + gYFZrwIG73wezh7BeciA8wXhVDLAFBHMx7Kch3Oi4OxmjKeJcI4zwHyn4ZzKeTjvBKeRAeea4Oxn + DAfnAcZzzecB9QlQLQPQCwJ6zqAbzjcOqEUD+jpLuBP2cYtG9HUKEGD3BJxAlPs6O0HPbECAvk4B + AiJ8BjgFPg/nleAczIM5QTCtDCgvCOXjzTyULwrKVgYUpNsJu+PzYI5pNPcZcN4JTmcezjbBuZiH + 0qSxHM0DQUIDlMN5IEUEcjsPo6/GUkEgj7MibhsEDwJ5nAICdPnC9hHE4+z6LMISQBiPUzBwilEc + zcNAfLfZYB7GO8L4uDsP5AsB2ZkH8qqAlOaBXCOMwjyMIsEoz8PYJhin8zBodjlrzcM4IWLV54E8 + EZDhPJA+AmnPw2iqcZwhjDYHIKfE5/B4xw5p0cHjFnujBQOPVXYjJ26+N2hh5eHfO/p3i/5Fv9Da + iWeaBQ/zXz3Qv4Vkk/3qxZdljx177NRjZs3Ln0kMbGh5+TvPYvfwriDydS8/9KwrdhzFr2w3ik/Y + UMZvdh8UsIcIHj7Dw1Dos3JWl5gothSxqmT3kh168VfOSjwucYrEq3jmm7U2AoQOeP7My597+WKU + b/J8M3FYvHnxRcSevfhLtHYvY0zvtrbvwT+v+I8+YX+A3ZwuzKRO2VWq2BNfl6SjGUhTkDN5id7F + VJaixF9TVkFZ49/DccwDfbRxr9l/sTFFY63Z6StIFoZATApVBIQuWkuX1G5uzLYwVeK7PIa22Z3u + q2lZGAuRciKzVpz4NEl3qZM/uaX9yc3bJJoz5Se1fpxd1q/os4lxVeZLgvylQFET30NLwLjZGTTW + fk3qUa6mX5SBbSqV8J1cfJtJxVwAD6nhbf7TiqsYH7VWmMzgM4zpTs5chXqempIyVsC6dDfhF5sp + onAb9d+4AxzLIEoPRpGUPNlRISM0F8unExQNKZEVXjNrT71XmTEA/XoK4/bk8gT2NFwajnxmlqJF + GbJ6madgvelTsN6C48aZ9+T/KZSYa0eUAhMtg4gsYMdljrWK/hIyGEplJm3XJ6ePYF6SrWKcftZV + J7CUom4GhHAc6qJACUHxI034VSG6UYEpE1Yxhh4/hebreA3H19nfvJCiRv2ArnpZU2dlKQL2MuKr + hzThQ7vbwU8uT830ojCk4Zjp2uM49yS5JHbSuKFvKqaiNnciFYtMcBqYzDgNSJeuUe5gtjPHbp8X + sdsK5oXRHGnUOt3OG2bkNWC5qys09T78OI0NSvJajo37Ru3GYAV40ey0DFaaBXQeGza2WXsYL3xk + 2+kEQA9AC7rbynZn3td73X7/oNe8a1JmTTaYKU/ucrBRBmANt3kT3xNUJPHn1MLAoK+pKLHfTQ+t + 24cluebY/lSFu8aLLu0X376qYEuoV7Yuj6/WRhgzbJo9iYGDZZE/ze8KDBk8xZ1vgNfZdzEYq4R7 + y4cP+zbI8kbvpUifEjUf2L592+z1Xwg/C0aZwWwkNs4iU5GeOOzM+lEV5gXHFgvG+jAjq9pxe9LF + 7zLRGckbIxUv3Y7jGGYKj6Z+/Q7kL4yPTtbAkffP1oAeCiyCh6xF8A9GmqyQqpil3JZYKJHBMqQq + +zI23j9SooFVgz3FxnX35aX7CM8VKKEPsMPzrcTVckuPmI15tGawV3iHB+kGG0lcQ7pqD8r/DcWf + 4aUKpzTYCTyPgyhvm6PGDVSooZdNMHTfuOQRcZwCUyEEng7IwTwV5LgMMdK0L2Op/8e+kRfEdTAR + iY+RPZuOoGwfDonTYtHawFud5HF0dTpvqqFuolGqzFgFuJGkrFaZ7pocYIIOSrwSplIG3Dvd2267 + 3X1d6QDf3t42eo0ePOIHWTEb+SuMWF2NMNhXqP3333/fdbsGe5Sxy1ktNn4a7D49Nb1p/WEstu4m + J1iXV6loyGM85UzrWWcqzPGcroTUG+YZN48n0ZLs1UpdG5kormdqLWylUXnixCHPUcF84sC+rIP/ + WWmsqupUDjbmyHyW7Dxfy5/B/9tanDSmpFkvkYKT9qfcHMur7xK6SG6y1Cz7sfaUFQo8ucXCvijd + Q/uN0nWBubU83BLpQFo5rSq8SVCnb2T8zipR/AiKjoy/SvbCU9ceJlcdWIfHetG/2QOvAAv/lW/S + 4+qNZE+p0p1JKTyuvkl2LSele9G4FB5XKxF7l0mY6xbIkWv5Z3wuKYpZ0QRWuvnCKb/wWluOs0ni + CG6jGGnI7kXcBk64jVjfYqMovheXaEBKfHgd34x4UlN5TD0eQzH2OJW6rAqdAKhRlH/iCdxUtR9E + 7M8aaD8ioJ9hABb7FsX96LJPsFQwBBR1ENhPSoJ4C/v+twiIaGkr4c0vqN7z1zjE9kQT7v12FzpG + ux/qNsyu1CZUFAOXf5MgBSz2SD/2YHFxi72lf9zQj2N2YrHryeP75PFo8tiL4ssTCYIq/xjle0AQ + mX+jh1eZv4nytxzEXv490gHk+SMAXJH5Iyp5yl/T332Z/xpB0VVanzLAAKngx97RGiEZcWW+eRmR + 8pksOFSErxPdh0j2Vow3JUBjqWvaUzADpThoKcKm1QEs7OJFZZwHNQ3vyTSlaiIG5fhcYPRTrQfg + WYPT5lVW2E3f4gLuPSepRdYFGPS/QAb16Iv25cZtbdDG8Kozuw8bAuaRrt2p76qDAR2Zi9Twi0w1 + /GJaDb+Yi3ikYFdyxRdU2LXnbApOadRWMWyU+XSehgmNsRIdddoC2+QqKqsH6NzMcTHWDr/JEqqb + qeR/x/T8+ju3pNhjnCTHk8WIvu45zlFf9Vk4PgT3MEcChq3SeSkWB1Ud0happFkqK8DFgpC2i9+F + tOn5SnHXRYa23lPmmU5pCzojXrjMx3dmL5rkQgf9ZCwZe/Ysj5rPKQ4d35bKPbbpmyn3L/TNlO4N + fTRFfTPljb6YUrru0jdTajf0yZTqPX4xxRzfa4O/eAMOE5xwtdMK/U1iM4mykmV96hxWMNkEHqh4 + 47kSBUlZ7DALe+6JPsDSr9P3V6r0/RWHvr9Sws+v4McIuErOElLiKvo0bqRzBIoiy7mqzwpeLww8 + DVVg4LEo6UjcALUOPJV18G5LnPt3jh3GgHAOybdCn5Y32FFsmDmDXYB63jBYJzbwSpSBSaYMVB0x + tZTRrRuYS8rovhrsBhQEsDBa8BP4f8VgB9CStExWgHeDF4MNOF4BAq1hh/QhOrPFwG6pDEbbwwwv + Opsepy+FCNuhlHM0huq4LvI8hRM7XoBfgFURt2wLv6MCkFvwdyWGh2c6ui2W1s2AZoE+8orpEglO + z8BwZbeyYboeU5cJiIwlDGyQ6nwZP0aiyG1LvPVoqWSIiI46nkcsqjB9KlwGkKgBcOA1g13DaIEu + +6g5GaxBqiKYZBLo7Zbwqyr/div4BIaZelIZD+A5x46n1YB3rowumS1Ny1KJ0woneVqWKFAfZFzh + uHlCY3gA2bpND/0rNuTJNt2eF3DtDAGn3m0/PjZumgB8uvBYmnjCsM3xMkrVfADonI49tJw+hM36 + iM85147U6wuepJOYHvKQ20r3pJEX5KzaD2bM8zidzqaxlg4KnaSsiJUamjfP6CbzGow8XREhgGTp + TpAtAlbvcuq+DfmB5pBLYKi8YhIapdWZnd/UHz9Cwx1pqk/UQ+MCKg4laZY5iq4FplAvbfRlDuYr + NAd4yW15+7XXBHbJuJl4Kq282ZD5fZ5vCEyrds3RoQsPoAvUZP6Z51tUesDzX+i/LZkHK/gUrF+O + V+MGPF+AOgIv0kEdrJlvUTdQeJPfou6g2R3H23RgPN/TG+i3k7/IH1l5PTmH+Qzs9AefbukTT6Px + p5rwL36EaTD+CBPW281Pau+MP9lUSpVNPhlVnmvxQB96ynpfzw/VW3Sr/m5OUruOslOvvVmGxc+l + BRGGvOMVbLz+gV9KwBAsw6IrlCLQ4Un47Q6jUChsF4/JdVMoVMhzUygU0XFjFPagsABSFB6hZDc2 + tnwoGeDnWj6BpQqvDw3YPQyqtR8bR4ViYRseP8fGQRmM3tjg7c9g5cYGAADJ3whQ3FMoHw+YS6FU + IOhckra0sQRFZtwpLPXt78ij692OV4GBqO85MOMGqwRKKQkDGAjsHo+1O7V/rKrNo9emvUPbuLh7 + 3DSHuH2kF8yB3uWva/XWHYWBb2M/JAtmMhImVd+30b6nGge/1bvxvK3FTTxcu6Gjg3tiYlgDikuP + kT+Bgy/wgzNH+qLokcQLolAEC+Aw3xX5W6E5BRh8F1rjnVL4B/5Ddh2go2gXePEB3+CNUvyamCp/ + knlMBjHrrEhlDzxzs5RGeJtOI+BwT0WmlPCOLoUjGnixDrc3ncuyWlI7J2XVKuI3loSLqW3VrqaT + YJXoNg52PqWCChVoIdwI1Bqo7NA9n4DpXK7qlkZYSX1IY6aLseo32zV9gYPjhQ8+CgP8lFGy8QLC + zAiRh0KdgM5DxVTYga+uGeGXptRdG1Gmqz6emPH4KpvjwK63QYzgSjW1c2gSLT5E2qo71//oKzGT + DPQz6QsV410Or2K8tbmGqQwx/PlXivlg7HN67NTVe/pk3MAzB5GV3sI60VVafujNqfkP3W2DiEzQ + qWQglvmjDya8x57hX+GGjgwFQ5PfZWjaC4YmvMvZZ/hxCSoC/DGMX8z4u3b/jg5j4+9W9/2t8Q5a + 7dr6J6WqbKyrvyt4yJH79Omx26vdDOx69zFJNreJufKaNzEBDHhu5ab2UvtYv6313zrQhD5lnVuh + XyuJYzCnQJpWbkX7SnMJbHi3MQb+vwAAAP//stFPyk+ptOOy0Qc1puwAAAAA//8DAMHUMxUU+wEA + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [Keep-Alive] + content-encoding: [gzip] + content-type: [text/html; charset=iso-8859-1] + date: ['Thu, 16 Nov 2017 12:47:46 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + keep-alive: ['timeout=5, max=9999'] + pragma: [no-cache] + server: [Apache] + vary: [Accept-Encoding] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [PHPSESSID=nmvvpb2fcps639eh9pl295kdh1] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 5698729e-cacc-11e7-8208-1c1b0d9d2a41)] + method: GET + uri: http://www.newpct.com/descargar-serievo/the-gifted/capitulo-13/ + response: + body: + string: !!binary | + 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 + tOOy0Qc1puwAAAAA//8DAHEYr5KF3gEA + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [Keep-Alive] + content-encoding: [gzip] + content-type: [text/html; charset=iso-8859-1] + date: ['Thu, 16 Nov 2017 12:47:46 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + keep-alive: ['timeout=5, max=9998'] + pragma: [no-cache] + server: [Apache] + vary: [Accept-Encoding] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/newpct/newpct_daily.yaml b/tests/providers/torrent/newpct/newpct_daily.yaml new file mode 100644 index 0000000000..d7c7db0025 --- /dev/null +++ b/tests/providers/torrent/newpct/newpct_daily.yaml @@ -0,0 +1,1299 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 702cbdde-ca34-11e7-a20a-1c1b0d9d2a41)] + method: GET + uri: http://www.newpct.com/ultimas-descargas + response: + body: + string: !!binary | + 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 + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [Keep-Alive] + content-encoding: [gzip] + content-type: [text/html; charset=iso-8859-1] + date: ['Wed, 15 Nov 2017 18:40:25 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + keep-alive: ['timeout=5, max=10000'] + pragma: [no-cache] + server: [Apache] + set-cookie: [PHPSESSID=nmvvpb2fcps639eh9pl295kdh1; path=/] + vary: [Accept-Encoding] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [PHPSESSID=nmvvpb2fcps639eh9pl295kdh1] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; 702cbdde-ca34-11e7-a20a-1c1b0d9d2a41)] + method: GET + uri: http://www.newpct.com/descargar-seriehd/erase-una-vez/capitulo-75/hdtv-720p-ac3-5-1/ + response: + body: + string: !!binary | + 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 + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [Keep-Alive] + content-encoding: [gzip] + content-type: [text/html; charset=iso-8859-1] + date: ['Wed, 15 Nov 2017 18:40:25 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + keep-alive: ['timeout=5, max=9999'] + pragma: [no-cache] + server: [Apache] + vary: [Accept-Encoding] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/newpct/newpct_test.yaml b/tests/providers/torrent/newpct/newpct_test.yaml new file mode 100644 index 0000000000..30558660c5 --- /dev/null +++ b/tests/providers/torrent/newpct/newpct_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 1 + pubdate: 2017-11-16 00:00:00 + title: Erase Una Vez - Temporada 7[HDTV 720p][Cap.705][AC3 5.1 Español Castellano] + leechers: 0 + link: http://www.newpct.com/descargar-torrent/097943_Erase Una Vez - Temporada 7[HDTV 720p][Cap.705][AC3 5.1 Español Castellano].html + size: 1717986918 + - seeders: 1 + pubdate: 2017-11-16 00:00:00 + title: Erase Una Vez Temporada 7 Capitulo 5 HDTV + leechers: 0 + link: http://www.newpct.com/descargar-torrent/097942_Erase Una Vez Temporada 7 Capitulo 5 HDTV.html + size: 503316480 + - seeders: 1 + pubdate: 2017-11-16 00:00:00 + title: Future Man - Temporada 1 Capitulos 1 al 13 HDTV + leechers: 0 + link: http://www.newpct.com/descargar-torrent/097941_Future Man - Temporada 1 Capitulos 1 al 13 HDTV.html + size: 4194304000 + +backlog: + search_strings: + Episode: ['The Gifted S01E03'] + results: + - seeders: 1 + pubdate: 2017-11-07 00:00:00 + title: The Gifted - Temporada 1[HDTV][Cap.103][Español Castellano] + leechers: 0 + link: http://www.newpct.com/descargar-torrent/097568_The Gifted - Temporada 1[HDTV][Cap.103][Español Castellano].html + size: 524288000 + - seeders: 1 + pubdate: 2017-11-07 00:00:00 + title: The Gifted - Temporada 1[HDTV 720p][Cap.103][AC3 5.1 Español Castellano] + leechers: 0 + link: http://www.newpct.com/descargar-torrent/097567_The Gifted - Temporada 1[HDTV 720p][Cap.103][AC3 5.1 Español Castellano].html + size: 1610612736 From b9ba81ce874a3ac19c4fe3e07221e91769e9c152 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 16 Nov 2017 20:11:47 +0100 Subject: [PATCH 18/25] Fix newpct for guessit --- medusa/providers/torrent/html/newpct.py | 5 +++-- tests/providers/torrent/newpct/newpct_test.yaml | 12 ++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/medusa/providers/torrent/html/newpct.py b/medusa/providers/torrent/html/newpct.py index 5354421168..5c5757db8d 100644 --- a/medusa/providers/torrent/html/newpct.py +++ b/medusa/providers/torrent/html/newpct.py @@ -47,7 +47,7 @@ def __init__(self): # Miscellaneous Options self.onlyspasearch = None - self.torrent_id_counter = 0 + self.torrent_id_counter = None # Torrent Stats @@ -108,6 +108,7 @@ def parse(self, data, mode): :return: A list of items found """ items = [] + self.torrent_id_counter = 0 with BS4Parser(data, 'html5lib') as html: torrent_table = html.find('div', class_='content') @@ -199,7 +200,7 @@ def _parse_download(self, torrent_content, mode): return torrent_h1 = torrent_content.find('h1') - title = torrent_h1.get_text(strip=True).split('/')[-1] + title = torrent_h1.get_text(' ', strip=True).split('/')[-1].strip() torrent_info = torrent_content.find('div', class_='entry-left') spans = torrent_info('span', class_='imp') diff --git a/tests/providers/torrent/newpct/newpct_test.yaml b/tests/providers/torrent/newpct/newpct_test.yaml index 30558660c5..0fe1d7f3e5 100644 --- a/tests/providers/torrent/newpct/newpct_test.yaml +++ b/tests/providers/torrent/newpct/newpct_test.yaml @@ -4,9 +4,9 @@ daily: results: - seeders: 1 pubdate: 2017-11-16 00:00:00 - title: Erase Una Vez - Temporada 7[HDTV 720p][Cap.705][AC3 5.1 Español Castellano] + title: Erase Una Vez - Temporada 7 [HDTV 720p][Cap.705][AC3 5.1 Español Castellano] leechers: 0 - link: http://www.newpct.com/descargar-torrent/097943_Erase Una Vez - Temporada 7[HDTV 720p][Cap.705][AC3 5.1 Español Castellano].html + link: http://www.newpct.com/descargar-torrent/097943_Erase Una Vez - Temporada 7 [HDTV 720p][Cap.705][AC3 5.1 Español Castellano].html size: 1717986918 - seeders: 1 pubdate: 2017-11-16 00:00:00 @@ -27,13 +27,13 @@ backlog: results: - seeders: 1 pubdate: 2017-11-07 00:00:00 - title: The Gifted - Temporada 1[HDTV][Cap.103][Español Castellano] + title: The Gifted - Temporada 1 [HDTV][Cap.103][Español Castellano] leechers: 0 - link: http://www.newpct.com/descargar-torrent/097568_The Gifted - Temporada 1[HDTV][Cap.103][Español Castellano].html + link: http://www.newpct.com/descargar-torrent/097568_The Gifted - Temporada 1 [HDTV][Cap.103][Español Castellano].html size: 524288000 - seeders: 1 pubdate: 2017-11-07 00:00:00 - title: The Gifted - Temporada 1[HDTV 720p][Cap.103][AC3 5.1 Español Castellano] + title: The Gifted - Temporada 1 [HDTV 720p][Cap.103][AC3 5.1 Español Castellano] leechers: 0 - link: http://www.newpct.com/descargar-torrent/097567_The Gifted - Temporada 1[HDTV 720p][Cap.103][AC3 5.1 Español Castellano].html + link: http://www.newpct.com/descargar-torrent/097567_The Gifted - Temporada 1 [HDTV 720p][Cap.103][AC3 5.1 Español Castellano].html size: 1610612736 From a30aa3885b8b019daec2f7df343f96042f0be962 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 16 Nov 2017 20:32:03 +0100 Subject: [PATCH 19/25] Added shanaproject --- medusa/providers/torrent/html/newpct.py | 1 - medusa/providers/torrent/html/shanaproject.py | 4 +- tests/providers/conftest.py | 6 +- .../shanaproject/shanaproject_backlog.yaml | 251 ++++++++++++++++ .../shanaproject/shanaproject_daily.yaml | 268 ++++++++++++++++++ .../shanaproject/shanaproject_test.yaml | 39 +++ 6 files changed, 563 insertions(+), 6 deletions(-) create mode 100644 tests/providers/torrent/shanaproject/shanaproject_backlog.yaml create mode 100644 tests/providers/torrent/shanaproject/shanaproject_daily.yaml create mode 100644 tests/providers/torrent/shanaproject/shanaproject_test.yaml diff --git a/medusa/providers/torrent/html/newpct.py b/medusa/providers/torrent/html/newpct.py index 5c5757db8d..91e9601380 100644 --- a/medusa/providers/torrent/html/newpct.py +++ b/medusa/providers/torrent/html/newpct.py @@ -8,7 +8,6 @@ import re from collections import OrderedDict - from medusa import tv from medusa.bs4_parser import BS4Parser from medusa.helper.common import convert_size, try_int diff --git a/medusa/providers/torrent/html/shanaproject.py b/medusa/providers/torrent/html/shanaproject.py index 693556fb78..c289e306fa 100644 --- a/medusa/providers/torrent/html/shanaproject.py +++ b/medusa/providers/torrent/html/shanaproject.py @@ -125,8 +125,8 @@ def parse(self, data, mode): download_url = urljoin(self.url, download_url) # Provider does not support seeders or leechers. - seeders = -1 - leechers = -1 + seeders = 1 + leechers = 0 torrent_size = first_cell.find('div', class_='release_size').get_text() match_size = ShanaProjectProvider.size_regex.match(torrent_size) diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index a763b1588e..02fd64b984 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,8 +5,8 @@ import os from collections import namedtuple -from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, thepiratebay, torrentz2, - zooqle) +from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, + thepiratebay, torrentz2, zooqle) import pytest @@ -16,7 +16,7 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, thepiratebay, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, thepiratebay, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/shanaproject/shanaproject_backlog.yaml b/tests/providers/torrent/shanaproject/shanaproject_backlog.yaml new file mode 100644 index 0000000000..7545055249 --- /dev/null +++ b/tests/providers/torrent/shanaproject/shanaproject_backlog.yaml @@ -0,0 +1,251 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=db770aad206624f57b3a5fb7f762e360f1510860221] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; a6672f0f-cb03-11e7-9526-1c1b0d9d2a41)] + method: GET + uri: https://www.shanaproject.com/search/1/?sort=date&dir=Descending&title=Yu-Gi-Oh%21+VRAINS + response: + body: + string: !!binary | + H4sIAAAAAAAAA+x9+3ebSLbuzzd/Beaso4ZrhIo3SMY5TuKe7nO6k54k/TjX4+VVVBUSHQRqQH6M + 5f/9rl2AhGzFTmJJnpHptToGqmrXa9f+vtq1QQd7b969/vi/vxwLo2IcC7/8+uqnH18LYrfX+914 + 3eu9+fhG+OOHjz//JGgqEj5mOMmjIkoTHPd6x29FQRwVxaTf611cXKgXhppmw97H971LkKVB4eqy + WzRKqrSg4uGLA17h5ThOcn+FGM3zvLK0KNAo88W4yEQhxsnQF1nS/fUDF8EwPTzISRZNCqG4mjBf + LNhl0fsTn+PyqXgoXUQJTS/Ut++Pf/15NpP4X//6RpbVOMWUZWckTcJo6F9fTiLaF3+9+Pvr3+L3 + H/52cfTff/w2Co6OjnzxZvA5KcrZWZKdZeyvaZQxP5wmBHopFQpTEvm6vhcyKZGvo1DaYyfJqXx9 + jjMh9eHav2aXkzQr8v71zc2gOElOT9CpSnAcS6laJSlzsawuyjNqpyfsdJCxYppBDelsxuQbJVXm + BeWbKhFqqh/eRKEk1hJF34dxS0Oh2Q+5KtZ8NgjTTCorR4P0IFFjlgyL0SDd35czKTlJT+V5U26k + a61/cs9gFPJ1kV1dE5WkSZ7GrNOpLtQ4HUqFfENwQUbQ3ZsbXqcS+YUkMibKCvYLSdNlhfjXNwOQ + kvpxSnD8oUgzPGTqkBU/Fmwsibz1YYyHuSir+SSOCklURFmZ17liFBrN6HSkefv8PaSkapRQdvku + lETKzkV5z/e7Gs9E2bm/h+RmjiQ7u5Upyd6U2erO5fL1TfW404nUNJHEKClYluC4y7IszcTFvBfy + dSYVal5g8km+kRVeZ10qTCB/M3c53pmU3CkhZZL49r1w9Lfjtx+FH98Kb45/O/7p3S8/w+3P794c + i7KSSSIftL4g7mOJLImVr6spLm5k9c80SiRREURZlm+U65tTRb9/0uGJkilpOfn0Je36Wj+SRN76 + k3Q2S9iF8GtC8HQ4Ko4vCZs0JJ3W40bK4pEkRmVBouRqkl5IsrKH5rmmoDplY1dMc9jphCqeTOIr + qRhFuYIlnA2nY5YUuSzfzNv8ubZcQyF1zPIcD5lfzGZinVPgMydcRMVISFIBU1pZPSFKwjQbY94O + hZfP02lG2K/vf/JZ+SCOEuYni+pTmPf5+BR1N09lvib4ihjhhMbzVWHAqqjXSQ5XpYkTZSX0KwuW + JryJytTf0xTqo0GuhgwX04zlKssy0PRC0mRlObuf8aVWjLL0QoBpOoan1VjH8rXIFU2MEiHudKRC + smSlkExZETGlx+csKX6K8oIlLIMspehOp5AMWcnVy1H2e4YnExzAoiwkW4bGIfmG1OqdFzgr7ir4 + tNOR6L6vlfp931KAnHyIeQcSvpylRF4umNBGQV5mr1Gm06GHCCrsNiu8b8UuNLRY1tBqtRgPmcja + 4jK/GLBOZ4+pI5y/u0h+ydIJy4oraSoPZOa/C/5kpAC790uWFimo+LtQYjKUSSUm31IookbJLzEm + TCqUk6lCTxWxKypRI1u0vNRPtFOucLhWLahKEhlMay6WKqdZsoQVMIJc7YZpznXuj59/+qEoJu/Z + X1OWF8rUv6sPCvXFjI3Tc7b8fMBqwPKxIi53DpSo7PVLKZNoSvjSBdNVqhZcheqkLiDL/cbd3UHs + dKR0XjJdLqlgmOfpvrhKCUs0TnwYIiXzcylRxCT7rwvQZrasTfPBLSROBFYYpUQtVzMfhxqClx5W + JitRFtbqplSQ65QPR79QFoL7yc1JLXpOE9hLIjEF9F1UkmkcK0xN8JjNZiJO0uRqnE5zUe4nN/KA + 637VFd5DP7uphoOuGg75mmdqFpvNuPJU+m7e1XdofLasVhkORVlJK53KZCXyxVJ9jpKotJ/fZ3jM + mgqScegtlbqcR+VEzMT9SBHH6T/f84sLFnyKivJ6nMPfUwUq6wLk8bUMNyt7hU79VII/5bjNF7D1 + MNxVxXGjeDnsyfKyXIKVYpRSPykxoYjGLHszzXjH/Sh/i99KMKjyS9Tf53p3twIOaUkDJRajy8XV + cGHJUgTLV8xZ8TEas3RaiErOb38Eu3aOY1EJfZHEDGfzDFN/PvnUF7vNeYgUfGceiMLljceMRrhg + 4qlC9qm8ImN+quSrU0KlbEJTSAhZOf/J96dKVl2T/amSVrNjPzQ78jWdV8WUEzFNMobpVV7ggpER + ToZQTzmiZGm2Sr0tuKorzJ8CS4R9h1TIg0LlQj6AkEODG+2M5Wl8zminIy1uAIKmKhsDKb0cZd36 + uaicnCqFLCu0YaYvVjQjAt0cqpNpPpIKWRl1OlLwMlCLEUskLPfPX57DH+nY7x4r71SKC+wfN7kN + lhYAU/hoUBwMa0pfcEp/cqoMT4pTeVA/73SkoX9y2pBBloCCLRLyMqGWnwhRIhQy3+/AzmVujG6A + AgwgSzjnLVM/LHX1cgSaSitNncpK7PNtl5oqEz9W//jhvTLyY/Xnd8rYj9Vf3ivnfqx++FG5AkC5 + NZHKhQ8TDHRIVMSK1PArHKSgylVipdjVHacEYppMsnSYsTznN0W1EE4VGI2G9k95Ry5rorWMfX7T + pJQ2G2jUhOtMdnVd60LCLrrQceWEnSpMVph6GzGlKyVV9rSa6CYlHa7L3yYksN2scmYLSiywm0EU + Srk0US5l5XIBeP5kcd1QwUYOWCgTloiwrBMKKwTay5VTmXI7Cs/5s5WIWS49JQJiUpcAgc0SmayM + ylEK/HGnM65XjSRDq/fOO529cZl+7GvKO79mACrJGC7YR3ZZvE0pk47lAQzySMKymgY5y86Z9E65 + JiOcYVKw7A0ucH8P3cg3NyzOmRCu5oIVCHQ68K/Kh8n3r2YzLM2hwHmIy1U8Dkz6BGd4nCuJX5v7 + LCI57xh/wBLKaIUF/NrfQ/PNd+ajQXZAB9n+vgym5g5vkqYn2Wm9nSgfgbJw8Uzlyg7So1BKVFrD + Ci7ZabfclsAcgLVXTN/3m/ZMvmaQWkxzv6guBiXGAIKVdeK8+BD9k/EKo05HStTsEh74kVztevCY + vcuiYVTBP8gasuI9yydpkrMfGGxYJPGP7lt28Z7FEekeTSZdmClRHuTchhJc+Pl8Ry+IsjpJJ5Jc + z+K8kWiQqCSArpRDXV4rYcPs0jRhQNDB5iqktDnKCexTl8fiVL65uQXYc/IH2snb/vFqwqDf4p85 + 53V+0ukA2O/5/tylwgblNIo4y/BVMA1DlvGss5kYxGlQX89FvFzI7zeqYpdFbUVhZd8h72XbconJ + SuYXlc4NMnWU5oWf8D/A+/bFvrifqGDAlEyd4GIET/1kfqkUjRnzk8bNYk9QbzKh73hpO1e2gyzt + VGGD4MLmYGHwT8TKMNdmuTbKC1tL/WkFQ0oMJSMqysoEsEGTlRH8RbIyXm17B3ixxb0cVVtcW1bK + 5T63uHctNOjAgKlFWuD4dZD7SGHcNcdoeVnqFlyyhPpZ+RcWrKYwqOlv04jm/vWNwuYLw+fsb9Lp + SJNDw5zNJgcakmezerc9YRmezYq7Rl9cYFCznQ3BRenPpDccHOre3TatS0ZtYY3865J29sHE3ShR + 6RbhRFNpmin/+uau6FvWEtRPXPKtwn6NQ3enI4KXdX6/7ILtdG5ZiE6HqTnYBj6NK0zDj29EZYUg + FSpZjMH9gFSt4kYnYcUAm05LBQBb2elkZc7Ih+U2KE1bUZu2m2VrURvUZTu8RAEAsys151YWUAX2 + odV81Jaa+xXLFSbu1flms7RWQ99P5+rJi5fE5TVPnc0Wm8G9epfJqiyy3OmkoK8AxEtUIvxCKnEz + RyXiowE5oAOyvy+vICzTE7ICkubTAzNDgi6s9buem4bh3vcLhb3kD5q99PdQv8zFb/d9TWncwqDx + fVQ1SLPZ3h0JKz3BSZVlNquRWEqW2wypXUwpo6tVShT3Y6mQ9/f2WLmZri1C7Viq70+S09o/1XjE + zVSz6ZWn61YDSg7w9U1Y0QLKYlYw4XbKciu6zVbcnupVpoAJUZIXOCEwquNOp1RmUHrOqZpo3BzR + k2pzq58CD57XuILyrKPS+Sh+ptrPOyFv1yTV24wS/6WGtjUXs+/70i1SKVeqVq3Phkq8Dj5A5bVZ + kZfataL3t8ot93e+1E6WaN8iu9JohcLKYbgpaa57l+Yu9j938fMWLz+OGdxJIhZlJamxGg5voJiS + wYEOU0cZC33ORtKs8Bn/M6gOzHhizfz6vZ4oD/bKjJ1OeqKBElfl4K7O2BNlGOPq7r9qvjiXI8oc + 52pBIgJTW97NZrVAfkaZw7ylJ+j0pWiahtgXXcTdRzWdghZWl7PZgmU1qRVbUKus3FWRNOYyFbFX + VVxlUGGjclRISC77VYsQe+L+4lauOPgem4ubzcQ+tLT5ZHENijm/UXCjzb6/mDKajnGJwLz7vAzM + RH3G16SFgIZ7za5jWckqlfHu3RnJ1yvcYFUVDe9p9QS47UlYnYKA14XgQiLNsxuFvQSC1a9cYAp7 + eZ5GVCgR4uZz5yZ65cQ2Kvd1w1+WYVKdnzRPU6alJ2IgThPKwihhdAEclVon7CIDjgJEobr0p+Vc + Uf8EfGK/4CH7LWIXb8Gbyb1kr6d5kY6PiiKLgmlRPeQnLT/w9gI1DqMkykdgqsD6fkw/QgtFRYwS + OD76ISrKhPcsZjgHD1bsi3gSdUVwmuyL0WXSFQdYordMxvSEgZcz3mfKHlKghFjuzzGl0NAjnpfn + EJceidzrP1V587OMJcX7dFow6FSZO6tvy5wLe1EPizJVOdXAZRV3ph3GT8jKCZFv+AiO/Kzhs7iu + tv18rvqrcPD6Bjgd6ETqr8B6Npgr2GS/nvO5pimFkpyCT6LRMnCelDZVSl+KYl9M0q4o7zdwYl46 + U9JTUMVUBnJVbwOXTh8X3vwwSnAcX11Xwuf2fa714NcF6oWB1hYwrErOirnKKDk+Z0o0TNKMKWly + nFBlyIrXpX9SYeWt2DwNXx6uUakGk32OffUMqUlaRIRxTVwy82JeZFEyXIxkAajlzw8IJfBkNk4w + w/kJZmkcNPSlgALb6hWVFdWmsN5e1/d8G16eiTTyl2IWa3ZOio9gM/6Kb8Y7naKJ6MspanBVsJ9u + 1bh4NviM+FdxGtySWz1Sc3CWzEXBHXfVrBTzfZqNwRFyS1T9WG4q2H9/ePdWLQcsCq+kQq4GZhFZ + UWYEZSqnQvvc8QxSUj/B59EQF2mmTnOWHQ0BIcZcUu/7KGNhennyj94/8lPpH3T/H+o/6L7ckwcp + wJa/n3J0bZzWVBXqDzvoy9V7AodroqhEfukIy0p3crkJkgolA3xMTqJTn0mZUpxkp7ISAVuul3Xp + q0jrk9LPHQUO7rbR+JIjHjabScxHsrIKDoADJn7xstbMPpIb3ryuBoPbZbMZUiKfK5uUHqCXqJ/K + g/397CAdyNFJBm5ztp/NHefRzd2mmvctpWt2GeVF3l+lVhVgTVjGIxQSwjqdu8/gJCpKhp3Ol4mo + squV4kRpwrllrWzWQ/7SsqN7UnFb2atcsHa4CYXN1AmuYiLSuVMpqvAc+3Aim3KeAsdZ5CElUHJ/ + TxusMkL8RKNuZNVsCGZZPCsdXyyrTogyBStEybl/H5fwk/lRg67A2duKnefLRMoULPeT2ez6plqw + oXwdS3ASJionIDc9VcipfDOV2L5YI079vDxRqFQF/Ksl1mAlq/fv3L8MoRy8fGmdoTSF0gqdw1CZ + zAEIknNInp8hwDy9LPpSqf4icPp6AE7wqV8oVCoWjxqpDW9lyIcxVSL5Op3NpBTEcITnIweHj11O + uRdUmC8e8O3mB6w29vn+vkx8BkeI2C/A25BJWJ7NJLj2Ewkr4Uuyn/ZTJVJI8xBsKlUBSWBzc4if + q5w8+SAHtzuPeSmhmGdU5r4SzOcDlwFNp/JN7kcNBzEttSUKpUrbyhVT61inUz3+xK5ybrVLQ9d4 + CudC8xCAMM2OMShBrYuJfL1SsAQqeT1kRf8ueYaDtxsgC/1mOGEj0WcKu7kB3GcLN08sgTm9mQf/ + laaX1KY3BdPLTlIwUI0IwMZRYAy1NMbxjlup6X6a6xZsvAo/lZWkPoPyQyVRITDNx0pSmRHGvmZz + 0UhjCxMj3LYw2cuiX7yEE0yiRHI/khr6klRqEJUaE9duutkskq9BUKVPcwuPfSalsM6he0ruk9qJ + HQKWHeSDEFT3JDxtrNFqjzA9uThJTucmn3Y6tDztPRlyrcOnsoIbOjcpde7qpDj14Ui43h81A4BG + jX5Dxtns5HSROm6kUhBDeRaIlFpkOq8MoVQ0qSOAjQ9RJJWjXVQuKo0ChZnOZhLfYJzw6Cfo3xVw + 8gv4Z+hfp0l/ooB29BPgp/2xUjsK8/5IqU7X+0wpj0v65wof9j5WquHv72k39TgNm0ch8+7wLcTy + 4bc0VfEkms2m9eEAqHLccLwqUz9WA0w+xekQQn1vSlcn4EnVJHE52qncSU6hUxT+if0FjKSSPFhI + m5b6O0zzL+EXUSjNuQ6T52wRgn9LFpGUB6NfaGuq8qsNCFR5fY7jKetnykUWFXCM099DCkumY5aV + d9oN7O/LVRvJ1zeNFvmZkn0r2yo35V8SQypfp2qpDBKc3WUQe8utS1limQuUO/l6x78UNpSpjPlp + WXtEv/AMt9pMVAq3B+Gf1U4DDvqazmS4f9nV+uA+KSnSS9THUqFEyl37nO7v39Qt1yDqKcn+K6Ii + 91CUKnZ3xEqHxANGECxVsL9fR61cqhCKWoVSwKXC/BjGqHLP5a+uPuIh7CwlsQqiB/cZjxeYxwnB + 4oGFohjMlJWSpqlxRFiSs/9hVzU7i0rX3o9vOp2F4lZFJXkQSheN2PYyWoqdctxmpz53t+eSOMbZ + J1FZhG9gSd6/VNMwzFlxWkZTlf6KQYmi8W13Y92LQaLmGak8eeA93C9UDFsZBZxy4LqAqAE1SnKW + Fa9YmGZMSgCfloN/RJKOJ+ApB2YSN87HO50lsADz02g+Tcd8H54U93Rh2URVA3asluy902kS7CS9 + ePkzLkZqlk4TKt1KkmS5LxGfZxjjS4k7Ud7AIT5MNcyiJAMX6tbNqKzbynz5kstsYehqsk0r7VZi + n6q1B1GZrIr2HPkiLgpMRvy5qIx9euu0VjkvYz7mdmNQRf341x8+9hcqqHz4sU/VZmyZ8vpjvxmr + pvzxw/v+WHl//Pc+VWvpx7/1qcorV35536fqL1k6jnKm/PyuT9WfpwVX2HdlsEhWepuu+DlK7aa+ + 8K8Dhkma9MUAj9Uk60JwlZqwQlQ4pXn1uVSua33xz7zLr+YuQpWk416SdTVkmuo4StQ/cxFwcdzp + nHc65yeT005nr/c6i9596KkFywtpxXZcVi4bcHNdTmqfKEl60cdKuQHqXyn1QXj/+kZpntT3hzeD + QvJkJT6ZnL6U4F9JfPPu50plf+JHy6ISwcmdQnlquRr5WZ7cl+KT0am0KoZOSaFAmVgVkZfWdRhl + eQFOFFEhd9dz4CPlGDTOLENt4B/lpHbFKrrinMqDg165xg9fCIIgHIxZgQVY5V14d+XcF6tedCFC + QxRIeVe9LATvGA1ge5Gzwp8WYdcVhd7hi/9zUERFzA4/MJyR0UGvvCvlx1HySchY7IsEomYjgmNR + 4OcWYvkSUz7CCZ5kKQdAmN2cS+m95FL8/512/xZ1343+U9f+U0e/vT/68e2HTj4NApb5vPJFLbVU + GNGI3BVM8rwHjnqVOoQGuulpLPRUkudi2cC8uIpZPmKsEJtvSPEMvcMXBz3+DtWLgyClV4cvDmh0 + LkTUFyfpZDoRDw96NDpvPB7xI3ixauDy07MinZwFuE6d5yAxznNfhEaeEQbkv5FjpRwYI/HwA3RV + +KXsa9WQ+4rF6TBK4K0wXA8af9ITD3+Cvwc9fCikmbBIztgQzFLWEw/fV5eQ6cWtuhq3zctbtY9Z + Ml1L70HQ7SzTePlBpR6Hi76Ihz+kY8abL6z4DyQsF+CDnMPgRHkhfOR3UPygF0efkbFUHvQRigPw + 3VPwoAc1r05allcuEHG+3vCXFsvTpCyWp8lXDEBVEjYavZc5HHFRiCyuBAkfRunFAwPyudbMR7UU + 9Y2js9ftCkK3+9AAjFg8gdln8eQrOs9LhWkcpxfQ2u/Lq6+Zfy6BxBFLip54+JpfCB9YMZ18tZSQ + MQqteDfNhPcfPgjfw/1XSKnpXBAVwZR8YgV/gbRpKcubbn0X5fmU5eLhq+kQ3mkln8qF/6WNzhhg + LLcacAEmKojZ+PGLoHoLNojT4V1DLx6+itPh6kp4BXetCrf9vhjGKS76QhYNR8VAmMA7acmwW6ST + vmBMLgfi4cGwP4mneZowAQ4gfBH41HQM5n+ecrjKAj9kKG/DRwW8TfxYaR+bKVAGRwnLzjSdv/Or + zU3ESDt8cTDpLecfZhE905AwyVgYXZ5pQj4N+QUUBoYsVOeMC5sjVK9ciH87/nir9jLLGRxhzmEv + SibT4laGErN4J6vLBdiKQnlqXyXwzbUv1hxgTyjxf4H7q+SX5KCsoL6+W0OdUlVxv8hgWhRpUovJ + p8E4KuZFyyGuKEI1lzB4i1uwTyyhgloNuFoPuFoPOLdeS1MJ3HxBKiZcOp8/EPYzjhKhImp3ipaV + 6OKSMsUxnuTsDMexKKQJiSPyyRfZ5QQn9CiOJXkgHpZ3Ao7jpi6ubk8jJStPz8+COCWfVqhrnZ6l + F2ecvt6G/Yi/1RaXQx0UiXi7ZNmwO+2uju2l78qS30Ef9m+vsxUN+WuK46i4OksgnvmwkwT5ZPAF + xdgkylPKxLmpSJOie8HAUvSFII3poNkxXFLKJC2Ro6a8t0htrdAdDqps0oHX949ywhKwO+Lh8TJQ + fUErq4VzTxtXlmKXxVllcfLHdoOn3e4JZ00rOvMFXapX6lP2qWzD7U594E+/sVfRP5lQ30Bg8gYV + K4TKbjf++yhmAsTkfqmKLZuAz3H8+Uq+nHeIRvkkxld9AVbcQLx/XLL0YhXrv5VLR+Lh38t1/Lnt + zooSy5m+ZSTPI8rS2yP5Gzy8wyi32i48pdGddh3Bw6dtV/ne/p11w59+e8uW180amgnbmduNrOCF + O/jubhcOovFwThLSrDjDGWiuwJ2mn3dBQNYuZTlRh1EoCjguGtTjC8fh7jr8QmxYXlqbm3R2WdwB + ssuCJXm0Ytf5Be2GVv2A89EXZI1ZWKTnLLulIQ+C/INj+hmWnrFYs3XbtMXP0aEvoUJ3xX2eBkHP + znjyZ+hQKeA2GbqPCI2oePjDmwcy1/TnUHceyFn5pL4Ak5vegCxieU/THMvoiYe39Ypv5fIJTm4L + nGRpGEFtjo4mBz3IsjyJq1oBBzm88up5NB6KQoGzISt8MYhx8klc3mUW6aertEjzUcoPgXqUFTiK + c3UymryMqK9plqUZnngoQapc7js/C5Kr2c1XDhcvVOBhzzAMsycevk2FBRn5isrvkJBDzdFUy/35 + VbPkHSNQ7oMap1a9y24QFUXKg1obqlmfkKcX3J99xh8zepawi0pRFSHEcc7kuVO4ztsr03vivPTK + MaoTxcM31VVNwfDdft/axXxuMV82197ZPUTmfiv7OVt2ENTcpX/QCw4FTXfRpaOjByZLRwIbT4or + LoBzjrL4g8V4AU4GygJHR6+/pqoSrb+wrlva9DY9VwXNVgQdaY4iGH3TESbqWP2MnM/Pz8pBvqe7 + c8Ap2z3+dH6PtKXuAtIsdfaLcWZ+Mw+h+5JVfdvWCV1BdwSpVgrhh+PfXuswZ7I6/nT+4s4G43MQ + PfdZYkrhMAXslGMZnTyiPliNzl++o6POxKcJ6eT+0dv/Xd3cCwhdqP2ejbX18Lzdt8osz1gnZFqe + 8TjItDzjuUGmhtwnxUzTtt0nwUydHwFlWRTE7MM0yB+NmZalqdaWINPyjHsh0/KMrUOm5RnbhsxS + dzeDl41iDdTcLmRaNWRqeh+ZLWYur+qT5vI9FVZD6AlXktP1oabe+cvX3I1C5gphJB2PVx8E3crB + B+mWMjUMdkbqPkYZ6fd6UUbULPpnmkDATW9UDWg+DXLx8D+WkOPsjIRnbIyj+OxMFCBGp0tCfu+L + AaM21QghhDqUUJ0GhJKAEkJDRh1CKPUQpBGTahR5iCIaECwenvDynf/QbDSA6CVGCkZP52iED+Go + cErjK4F/DzfGBaMCYPkkYzmcfVEhuBKKEROaqiB8jxOw81EyFD4yPFaF36I8KoR0mgkXLMijgglh + mglv3vwkQMhIrgg5GTE6jVmucPFQUV5ADGz+dQvufvuor5fs6I8lO3rrH9g213F2g+sYuqPq+tbI + jv4A2dGfgOzoWyY7pe4+A66TpOAgblnOV7Ec0I41k5wN+wX+7UgOMXCASaAFGsZYwyG2AxTYWAuQ + a2AcaBgxCmmBhwnE/mKK7cB5diRHWy/J0R5LcrSvITk5FQ8//OuTnKfhLtZucBfNdFXP3hp30R7g + LtoTcBdty9zFfDZ+Gq1vOQJu/TRfz2DM9btpPrxpCUzTS+PQkLrEIhZl1KIB1YlJdGoRM3QoIxY1 + PQ/SCKUu9TyPelQnxjMjMBpy10lgNOQ+jsBoyN2gl8ZuvTR3mI6u6/ZuRHHotqMa2/LSaMi9l+lo + yN0609GQ20ZxrJXqeIsgDgO1B1IPB3HYOx/EgWy0TsRENnocYiIbPTfEfOogDs1F2q4EcSDVcrYE + mchG90ImstHWIRPZqI3iWCtkus0gDqPFzK92DthtEMc23AO6bTLTs0zLNEPTNLFpWJZlmKZl2bYZ + WqZpIRfSLGJ6potc0zUNS39m7gFkeWslO5b3SLJjea17YLtcx/F2JGDV0F3V29ZLHsjy7uc6lrd9 + rmN5bRDHRqhOG8PxDSSnjeHY/BEIpRbVSUhCatKQatQljLg0JCyk1CQhZZ4BacShOjU8gxrUJd6z + 4zjuejmO+1iO424whsN+PjEcmuPZuxLD4amutTXq4j5AXdwnoC5uG8OxGS9NG8LxrQSmDeHYNH/x + 9BCHlCGGwiBEIQsdpjEnREyjehgwFGoBgTTmhjQkARAdh9nPi79otr5OHw2IexR/AQEb9NFYrY/m + NtExPcs2diSEw3JUx9sO0QFFvY/oQPq2iQ7U2YZwrJXp6DXTMftaexz1BSEc1q6HcGiWZa4TMS3L + fBxiWpb53BDziUM4TE9D5u6EcHhb8g2Apt4LmZZlbh0yLctsQzjW+4JHwzmAjNY58NXOAasN4diG + e8DRNE9jyECG5mqGRjUT6cjUDKQbmuYiQ9OtENJQoDEttEIt1ExkPTP3gGUZ6yU7xmPJjtG6B7bN + dYzd+Q6Hq22N6xgPcB3jCbiO0YZwbIbqoL7ltVTnW6hOG8ixcabDqGu5uhd6oWu6oau5rsc81w09 + hqlreqHLiAFpnuPqrkEM13Bd75kFcmiWpa+X6eiPZTr6BgM5rGcTyAEEZkfet4FAju3xF/0B/qI/ + AX/R2ziOjfEXt+Uv38Jf2jiOTdMXZNiBTRzN0Wxsa3Zo2w5ybFtzkGnY2NFspFNIczyb2FSnNrVt + 55l9Swx+UGOd9EWzrMfRF82yNuioMVtHzR2eY3uWtSuf4tBUbVtxHJpl3Ut0NMvaOtHRLKuN41gX + 03lHClXQnUUgh2W3TOfhQA5z5wM5kLNWyETOIyETOc8OMp86kMM29R0K5LC3hZnIuR8zkbN9zESO + 1QZyrBczrTaS43HuAbON5NjKix40tEKdhSwMzTAMtdBljLlhyBilocnCkAUGpDEn1EMjMEIjdNlz + O99AjrletmM+lu2YrYNg22RH36FfVNke2TEfIDvmE5Ads43k2BTXaYnOtxCdNo5j8wchmu3ZzDEc + w3Ztw6a26eiOaRuObmq26xi2roeQ5gQ2s0M9tEPbdJ5bxCpyjPXyHOOxPMfYYByH+XziOGxT36E4 + DtPaGn0xHqAvxhPQF6MN5NgQfWkjOb6VwbSRHBsnMKHt2MihDrVtm9oQvUEcbMNv3UJUB7WJrkGa + Y9nI1nR4ox07wfMiMMjW1/mJeBD3KAIDAjboqDFaR80dpgNsfjciOQzNVLUtfTUVFPU+pgPp22Y6 + UGcbybFWqqM1flXFdNpPcjwcyWHseiQHsqx1/pAqiHscZFqW9twg86kjOQzb2ZGfXLUsTTXNLWGm + Zd37k6uQvnXMtCytjeRYL2Y2P9iJzNY98NXuAaON5NiGg8AOkYOQRjWKbESRgbBGNIyoRvQQ2RpF + xNQgTbMQQpqpIQ1h7bk5CCwLrZftoMeyndZBsHWysyNhq/CzKs72yA56gOygJyA7qI3k2BTXaYnO + txCdNpJj4zwH6wQTShFFJCCIMOJQjToEUY3pJKCIaC6BNOoSSohLCCEOfWafJkeW6a2V55jeI3mO + 6W0wksN4PpEchu3syCfFeCSHvS36Ynr30xfT2z59Mb02kmND9AW1v63yjQymjeTYuKPGQSFyNUuz + EEMWCpCumZqOLM3UHcQ0C5mmB2kaRS7yTA95SNeMZ0ZgTG2dLxiDuMcRGFPb4AvGmtc6au4yHU1/ + oh+RM12rJx6+wp8Y/T7KR49mOqbuqNaWPj4Ginov0zG1rb9fDHXukKPmyaM45t/jcPraEx1ITcx/ + WZYzX7crKY7mVU6ak6Oj16fqeGKuieeYrvW0gRzIctaJmMhyHoeYyHI2eLSht4h5BzE1y92Vr1iZ + uuptCzGR5dyLmMhyto6YyHLa2Mf1oqaxiH209Db28eHYR33HYx8tzzPW+L4jF/cYyOQCnhtkPnXs + I7J35cMO/OfItvO+ANfUezCTp28ZM3mdbezjejGz+XtkZvtq5Nc71PU29nErLvUAGcjUPM1DOvIQ + uNFdjSFPc3Vwr3vINS1I0zRkIsu0ELjXw2flUgf7qK+X7eiPZTt66yDYMtnRvB36PTJra2RHf4Ds + 6E9AdvQ29nFzXKd9z+ObuE4b/rhxqkNszLAXmIGJQ2xijI3ACgxsBpZr4zAwscVcSAsI9rDLXOxi + I9CfHdXR1kt1tMdSHW2D4Y/68wl/RLbm7E74I7K3xmC0BxiM9gQMRmvDHzfHYPSWwXwLg2nDHzdN + YCzLoAbWHd0xiOEYnoF0W0eGo9uaZRDdMWwngDQ9NLAROIERGAi+XvisCIxlWuskMJZpPY7AWOaz + C3984pMpw3WtnTmZ0lRkbonqWKZ1L9WxTGvrVMcy299XWS/XsWuqY/UNqw3m+FqmA1GQ7bnU5rmO + iXRXDw3d0HVP13WiW4ZhWLpuGAjpnqHrhs0gzcB6qDOb6Uy3DPOZcR3T9tbJdUzbexzXMW1vg+dS + WnsudZfqWKazKz+/6m0rcJUr6r1Ux7S9rVMd0/bawNW1Up3558n1vmW2VOfhuFVt5+NWTcNdK2Ia + 7iMR03CfG2I+uXdAd3YklMMyPdXVtwWZhns/ZBru9iHTcFvvwFoh05wfhMAXO1vI/NpzEK31Dmzl + S1aEmMSgjDJiEUYQ8WhIPcJoyAixKCOhq0MatYlBdFcnOvGo+9y8A4azXq7jPJbrOK13YNtUx92d + L3ZuLebDNJwHqI7zBFTHaaNWN8V0tJbpfAvTaWNWN050QuzpnuW6rusZnuvZXuh6bui5rhdgz3Bd + z6MmpLnIszyTmp7phS57dkTHXi/RsR9LdOwNxqxqzyZmFfjLDsWsat7W+Iv9AH+xn4C/2G3M6mb4 + iw6/vdoSmG8gMG3I6sYdNZRYRKchDYlJQqIRlzLqkpAyRolJQ8JcA9KoQ3RiuAYxiEu9Z8ZfNH2t + jhpNf6SjRtM36ahBraPmDtGxPW9HfmUeHDX6tl4v1vT7HTWavn1Hjaa3jpp1EZ0PbFKogoEaVMf0 + 2rdzvprqoH9HX819iwyZaJ2IiUz0OMREJmq/cb1dxLSdHfm1cl33VH1bURzIRPciJjLR1hETme2v + la8ZMnWv8ZZHi5gPhz5q3s6HPiJtrZ/sRNojP9mJNKPdZW4XMy20M1+5NlTT2RZmavd/sRNp2/9i + J9KMFjPXjJnu4jPXbezjl7wugHYdM13PWufrAiDuUZgJAp4bZj716wK2ru/Ir17DxwT0LcXQgabe + B5qQvm3QhDrb1wXWDJpO48tJhtHuNL/FN9u+MbD5g2jPCcPQZRazQhZaYRDqzGR6aDGTOiFjVmgG + HqQxGrqhF3ihF+rsef10JBhIZ710x3ks3XE2GEiHnk8gna3ru/Tb19bWSIzzAIlxnoDEOG0g3eY4 + jN7++PU3cZg2lG7TDCawKKWYOMShhDrUo4jYBFGH2KFFCXGo7QWQRkKKaeAFNKCIPLOvP7oOWuer + ACDucQzGQXYbGLBVqmMha2feeXRUy9gS1XHQve8MQPrWqY6D7DaUbr1Ux2i+NWC1VOdbPv+4U6F0 + roOs9SKm9VjEtDa3538yxHwaINyhl+d0d2tAaD0AhNYTAKHV7vlbIPxXA8J/uz3/fWsMuev8li6I + exwOIneD39LV3HbneAcwdcc2dyM8TnN0FW1r54jce7+lC+lbB0zktt/SXTNiauYiPE5vfzjgC0LK + 3Z0Pj0OOuVbMdMxHYqZjbhAznRYz72KmZT9NSLluulZPPHyFPzH6fZSPHo2ZjqFvLzoOOeb9mOmY + 28dMx9whb+u/EF5qel97onewJua/7A5zvnJXby+dys96cnT0+lQdT8w17TFN13pSzHQ8b52YCeIe + hZkg4LntM586pFw37B35fTpN1Z2/bQUyQU/vg0xI3zZkQp1tQPmaYdNoBGOhNqD86x2zbhtQvo1w + LA07umPZru06huM6thPanh06ru1Z2DFs1/EME9Js5FiOaZiO6YT2M/syq+N5xnrJjvFYsmO0TvVt + c50d+bKZpZtbc6qDoj7AdownYDtGG461KbKD+lb7nZZvIjvtV+g3znUIxRbWgzAIsYlDrGE3YIGL + w4C5FJtBiBkzIC1wsI4NZmADu8Ez+4qr43n6ermO/liuo28wkM59PoF0umGj3aAwOjJVw9wahdEf + oDD6E1AYvQ2k2yCFcVsK8y0Upn15btMMxrE1psGXJk0t1EwNawaykKGZyDJsLUSmZlkupCGieZpr + uZqrGUh/ZgzGctb5KgCIexyDsRyrDefYKtVBrrMjXwg0NVd1tvTOACjqvVTHcrb+zgDU2YZArpfr + zD8QaEIEZMt0HoyAdHY9AtIxzXV+MQfEPQ4yTdN5bpD51NEcyDB25Ns68IFAb1vuAdO899s6kL51 + zDRNp43nWC9m2m04x+PcA04bzrGVr+sE1KAm8YhHdepRhzLiEkY94oYB1YlHXc+CNKJRk1qeRS3K + SPjMHASmaa+X7diPZTt26yDYNtnZoR+q89ytkR37AbJjPwHZab+uszGu0xKdbyE6bSjHxnmOgSzX + Ck3d1C3P0i1iWaZhWpZuGg6yPFO3DI1Bmomt0GIafDDZMs1nx3Os9fIc67E8Z5PfRHKeTygHMvQd + +TggfBPJ2R59sR6gL9YT0Jf2m0iboi+ob7WfQf4mBtNGcmyawJhY13XLcA1XN3RXt/XQ8IxQdw0P + Yd0wXN2zTUgzkG7ppg1MJzSe23s3CK31WAqhRx5LIbTJYym7PZa6Q3V013R25cUbS1PRln7yATT1 + XqqD0PaPpRBqj6XWxnWOpkNVMLSa69hwKtV+zOprqY79b3kqdf8is9cLmfZjIdN+bpD5tGcbgJg7 + 8p4H/HKAa24NMe0HENN+AsRszzY2B5h6C5jfApg79bsBDlrr7waAuMfi5SZ95Paz8ZHrrmnvzO8G + uKqzvY2j9QAMWk8Ag62PvIXBfzEY3KVfDbA9Z527RhD3KBQEAe2ucbtwqbv6brwypztItb3twCUo + 6n1wCenbhkuos31lbkN4afXNNijuC16Zs3fwlbnqz163K7CECuowi+iZpgvd7r2yJr3lZF5MF+Io + L84mGTuP0mkuHr7oJEE+GXymlruV8MduKYVMS6t1+OLDKL2AM9yM5dO4yAVNKFLBQl8ntWpbwi4L + 8bBuVgPocEZGPR1mpIiZf3v2O3g8GeRpVvgUF4zf0Sjz37CcsIRGyVA8fAvn7Z1hMYD/y6m4p333 + LzGeyof4tghQUBwlLKvnqAEntw1nmKYFYNidysY4Ss4InJtncyMK6t/FcTRM+kKZNLekVY4wTnHR + F2CNDRqotyp+IB/hBE+y9E9Giq+JH7CYTg3bCA1khDrTiaEZphEYVMcaMxydGNRBOjEc3TQ0AznI + QEag4y+IH2gOzXJ3smg4KgZCs/vlI/HwxVEc8wYKkyw9j2gZZXCA56Tk7AtYiXj4ER4IH+HJJ5zw + aIavlNGjaYILBsRGPOzExcDgfQoyoXf4AsgnRD48JDPkwRA0UEk67omHZWyE8OYVb1AltBykYX8S + T/M0YcsCLi4u1ObEVoIOevP8q7SRP8lJFk0KIc+IL/YITbpkGPXKh3kPMcsxA0Z7JE6nNIxxxrp5 + gYuI9Pi0dikjKWXqOErUP4FvVSUPa7FCRXxgDnt/4nNcPher+nqlsLtt/zPvwUpQsUuRY4UsNKgH + NQhkhLMcBnJahF23UeNSb7650tLYVP15ea41KzhY1CSF04QAi5MiJVdSZahkClbG8nV08t3f0nQY + s6MEx1dFRPJ3Acj/7tTPBtFJdurDP7PZvLx8DeLgofqXX/6ZzU5OZXUyzUcSzoZTiBjK5RuFJ8a+ + 9n8TdiG8wQWT5AH2c5VkDBfsOGaQUUpl5YUgjP1cHbKiepi/uvqIh2/xmEmpfIJOB1jF+VVCfG2A + VRiT4WCsTjCY9Lcwm1GSs6x4xcI0YxJ064Ug3MjSRZTQ9EKhKeFtUr4rx+M75btSAYe8411c95yP + 6eLuz/w75bsh/k4evBCEIZa+Kxv+nSJ89+tRV0e6ZXim2dXgwe2pWRTK2F/TKOOlKm4ZMlxMM5Yv + 8uQsoZBhgofsPGIXkHJnGj+jI8uzKwvXXK/OcSZMUsEX6s7fGvV6KOSBMElVkCz4wne3ZH/HE/nI + C75QZFM24MInKUwCFIDVnPd7PTyJ8mo4a8WsljGM4mDepLzZopXzPW8YTLuQf3aWJ6ki5HwAb2Tp + a4arVAr17fvjX3+ezST+17++kQf8iptI/1oMGCZpIvbFAI/VJOuC5QY0EhXxrymbso/RmIl9pIhx + RFiSs/9hV5CZ2QYxdGbaoiLiITCOvigqIg80w3yGoJNiX/x/f3/1e/CefP/7r69+//UY/fRHfPk/ + 5NPFT6/QW/z79+j3I80LXn9//Mfxhfbh/fHf6W9Hb//3j++9H/44+vvvv32f+yB/sTX78Y3YFw3P + 8zxHExWRZVmavfp8Dxoly35orn6zsIS9IKVXYHNHxTg+fPH/AQAA//8DAFF+/Kpm6wEA + headers: + cf-ray: [3becd3943ba51a93-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=utf-8] + date: ['Thu, 16 Nov 2017 19:23:45 GMT'] + server: [cloudflare-nginx] + vary: ['Cookie, Accept-Encoding'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/shanaproject/shanaproject_daily.yaml b/tests/providers/torrent/shanaproject/shanaproject_daily.yaml new file mode 100644 index 0000000000..f5c74e311b --- /dev/null +++ b/tests/providers/torrent/shanaproject/shanaproject_daily.yaml @@ -0,0 +1,268 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; a6672f0f-cb03-11e7-9526-1c1b0d9d2a41)] + method: GET + uri: https://www.shanaproject.com/search/1/ + response: + body: + string: !!binary | + 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 + 538AAAD//wMA3VHlzz3tAQA= + headers: + cf-ray: [3becd37f3b891adb-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=utf-8] + date: ['Thu, 16 Nov 2017 19:23:42 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=db770aad206624f57b3a5fb7f762e360f1510860221; expires=Fri, + 16-Nov-18 19:23:41 GMT; path=/; domain=.shanaproject.com; HttpOnly'] + vary: ['Cookie, Accept-Encoding'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/shanaproject/shanaproject_test.yaml b/tests/providers/torrent/shanaproject/shanaproject_test.yaml new file mode 100644 index 0000000000..dedeef5001 --- /dev/null +++ b/tests/providers/torrent/shanaproject/shanaproject_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 1 + pubdate: 2017-11-16 00:00:00 + title: '[HorribleSubs] Inuyashiki - 06 [1080p].mkv' + leechers: 0 + link: https://www.shanaproject.com/download/162660/ + size: 621165936 + - seeders: 1 + pubdate: 2017-11-16 00:00:00 + title: '[HorribleSubs] Inuyashiki - 06 [720p].mkv' + leechers: 0 + link: https://www.shanaproject.com/download/162659/ + size: 251333181 + - seeders: 1 + pubdate: 2017-11-16 00:00:00 + title: '[HorribleSubs] Inuyashiki - 06 [480p].mkv' + leechers: 0 + link: https://www.shanaproject.com/download/162658/ + size: 99530833 + +backlog: + search_strings: + Episode: ['Yu-Gi-Oh! VRAINS'] + results: + - seeders: 1 + pubdate: 2017-11-16 00:00:00 + title: Yu-Gi-Oh! VRAINS - 27 (1280x720 HEVC2 AAC).mkv + leechers: 0 + link: https://www.shanaproject.com/download/162646/ + size: 179914670 + - seeders: 1 + pubdate: 2017-11-15 00:00:00 + title: '[HorribleSubs] Yu-Gi-Oh! VRAINS - 27 [1080p].mkv' + leechers: 0 + link: https://www.shanaproject.com/download/162593/ + size: 578289664 From 41b96da4f7d4eb18002f5604431dd35d50296b72 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 16 Nov 2017 20:33:54 +0100 Subject: [PATCH 20/25] Set newpct as public --- medusa/providers/torrent/html/newpct.py | 1 + 1 file changed, 1 insertion(+) diff --git a/medusa/providers/torrent/html/newpct.py b/medusa/providers/torrent/html/newpct.py index 91e9601380..b100640231 100644 --- a/medusa/providers/torrent/html/newpct.py +++ b/medusa/providers/torrent/html/newpct.py @@ -31,6 +31,7 @@ def __init__(self): super(NewpctProvider, self).__init__('Newpct') # Credentials + self.public = True # URLs self.url = 'http://www.newpct.com' From d92a70039234d857b2e687cfa79115dc6e375b1d Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 16 Nov 2017 20:54:45 +0100 Subject: [PATCH 21/25] Added tokyotoshokan --- medusa/providers/torrent/html/thepiratebay.py | 4 +- .../providers/torrent/html/tokyotoshokan.py | 4 +- medusa/providers/torrent/html/zooqle.py | 4 +- tests/providers/conftest.py | 5 +- .../tokyotoshokan/tokyotoshokan_backlog.yaml | 86 ++++ .../tokyotoshokan/tokyotoshokan_daily.yaml | 387 ++++++++++++++++++ .../tokyotoshokan/tokyotoshokan_test.yaml | 39 ++ 7 files changed, 518 insertions(+), 11 deletions(-) create mode 100644 tests/providers/torrent/tokyotoshokan/tokyotoshokan_backlog.yaml create mode 100644 tests/providers/torrent/tokyotoshokan/tokyotoshokan_daily.yaml create mode 100644 tests/providers/torrent/tokyotoshokan/tokyotoshokan_test.yaml diff --git a/medusa/providers/torrent/html/thepiratebay.py b/medusa/providers/torrent/html/thepiratebay.py index 894df2a1b2..d8f9dbc94e 100644 --- a/medusa/providers/torrent/html/thepiratebay.py +++ b/medusa/providers/torrent/html/thepiratebay.py @@ -6,7 +6,6 @@ import logging import re -import traceback from medusa import tv from medusa.bs4_parser import BS4Parser @@ -184,8 +183,7 @@ def process_column_header(th): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/medusa/providers/torrent/html/tokyotoshokan.py b/medusa/providers/torrent/html/tokyotoshokan.py index ba77383a85..e8110b8381 100644 --- a/medusa/providers/torrent/html/tokyotoshokan.py +++ b/medusa/providers/torrent/html/tokyotoshokan.py @@ -6,7 +6,6 @@ import logging import re -import traceback from medusa import tv from medusa.bs4_parser import BS4Parser @@ -149,8 +148,7 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/medusa/providers/torrent/html/zooqle.py b/medusa/providers/torrent/html/zooqle.py index 0a9465859d..99803d5a8a 100644 --- a/medusa/providers/torrent/html/zooqle.py +++ b/medusa/providers/torrent/html/zooqle.py @@ -5,7 +5,6 @@ from __future__ import unicode_literals import logging -import traceback from medusa import tv from medusa.bs4_parser import BS4Parser @@ -162,8 +161,7 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index 02fd64b984..b28d9ac67d 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -6,7 +6,7 @@ from collections import namedtuple from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, - thepiratebay, torrentz2, zooqle) + thepiratebay, tokyotoshokan, torrentz2, zooqle) import pytest @@ -16,7 +16,8 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, thepiratebay, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, thepiratebay, tokyotoshokan, + torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/tokyotoshokan/tokyotoshokan_backlog.yaml b/tests/providers/torrent/tokyotoshokan/tokyotoshokan_backlog.yaml new file mode 100644 index 0000000000..aa460c41f7 --- /dev/null +++ b/tests/providers/torrent/tokyotoshokan/tokyotoshokan_backlog.yaml @@ -0,0 +1,86 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [lastvisit_session=1510861533; lastvisit=1510861533; __cfduid=da44a243da42480f632fb3aecb938556f1510861554] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; c07c3f9e-cb06-11e7-958f-1c1b0d9d2a41)] + method: GET + uri: http://tokyotosho.info/search.php?type=1&terms=Yu-Gi-Oh%21+VRAINS+27 + response: + body: + string: !!binary | + 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 + lXe7b15WO/tbb2z7K4R/WRBeuSuEQzn52SJ4/X9Wev66OF6260XbXg3kpa9A/msAeSJjQvR1fp/6 + AMdW5ZbgXl8T3OtfQmX+6uR1/d1R9eBw57i2+aL6crfc6ZxVK5t7L8/e1Z69+FqZf2GwXr4rrFc+ + 48K8+tkX5lalUdyorQB0q1mtfwX0X6cyr5VuB961NcG7mom25PK6FaW88jq6oObZRPqCWv6GRgCo + gqcr6YVwUXZMdcN0/Zbob90RnTZEs20GdZ9uT/svJ/J11mbIdBkSwjt0UfXvYvM6pjc0TNfply4x + rWiYLtItdUQXCZZaqosESz3TRYK0aVqYb5ouki12TRfHl9umS3Ne6lwuUiz1Ju8v9ibXa00qQrk8 + yYOx0Ku0Vzcr7fxu5d2blWv3Kq8zPuFYYf909Pr25VL30r6pfbnYvLTX6F4uNS/tnO5lVpGmuV0f + c7mFmNu7tPOal3P90lv3Kuc6nXZW8V1al7m/0Un6lvrnv7Nf7AwpVfD/u/v/59/rzP1UR80DTEr+ + PoZSS2b5C5nfIaOHcdCHEhjp8f3uRQUKl8oYikH7cb2x8QHVShAp6L39uGzVP6CqeimX4NFSj3X7 + A1SPVQQvMVjJEvH4gjCYFXoPCfRDqhuk1xLplvW4ulGeSi83KqnsWikVbW1cL7rR+PC7++nM9ihX + lY5oTmeMF6puiBGPxlzEfbL4g/3skPpHIEbGefJXZWhEQlArVYBpZTuAlK4G39IYYUbkP/oIYfXU + 70qZzKeNerHeKNqljaJVrqr0b+rfvqt/EeL8F+89hOLnMgAA + headers: + cache-control: [max-age=1800] + cf-ray: [3becf41e778e1aab-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['3342'] + content-type: [text/html; charset=UTF-8] + date: ['Thu, 16 Nov 2017 19:45:57 GMT'] + expires: ['Thu, 16 Nov 2017 20:15:36 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/tokyotoshokan/tokyotoshokan_daily.yaml b/tests/providers/torrent/tokyotoshokan/tokyotoshokan_daily.yaml new file mode 100644 index 0000000000..e95934b653 --- /dev/null +++ b/tests/providers/torrent/tokyotoshokan/tokyotoshokan_daily.yaml @@ -0,0 +1,387 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; c07c3f9e-cb06-11e7-958f-1c1b0d9d2a41)] + method: GET + uri: http://tokyotosho.info/search.php?type=1&terms= + response: + body: + string: !!binary | + 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 + dehX5hEDjfI/E1c5/fgTAAA= + headers: + cache-control: [max-age=1800] + cf-ray: [3becf40bc35d1ac3-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['1784'] + content-type: [text/html; charset=UTF-8] + date: ['Thu, 16 Nov 2017 19:45:54 GMT'] + expires: ['Thu, 16 Nov 2017 20:15:33 GMT'] + location: ['http://tokyotosho.info/?cat=1'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=da44a243da42480f632fb3aecb938556f1510861554; expires=Fri, + 16-Nov-18 19:45:54 GMT; path=/; domain=.tokyotosho.info; HttpOnly'] + vary: [Accept-Encoding] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=da44a243da42480f632fb3aecb938556f1510861554] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; c07c3f9e-cb06-11e7-958f-1c1b0d9d2a41)] + method: GET + uri: http://tokyotosho.info/?cat=1 + response: + body: + string: !!binary | + H4sIAAAAAAAACwMAAAAAAAAAAAA= + headers: + cf-ray: [3becf40c23901ac3-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-type: [text/html; charset=UTF-8] + date: ['Thu, 16 Nov 2017 19:45:54 GMT'] + location: ['https://www.tokyotosho.info/'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=da44a243da42480f632fb3aecb938556f1510861554] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; c07c3f9e-cb06-11e7-958f-1c1b0d9d2a41)] + method: GET + uri: https://www.tokyotosho.info/ + response: + body: + string: !!binary | + H4sIAAAAAAAAA+y9eXPbRrrw+/dJ1XyHDqd8Ip9IJLGTssQc7vu+SXS5Uk2iJSICAR4AlKzcubdM + KYuTONtkskwmnkxWO3GczTkTx9m+ywtTkmvmrfkKtxogJWqhIlEUTWmUShQQ6A3djV8//fTzdE89 + 6kt6c7MpP6hqNRGk8p5Y2AssEzZbkfLabL6cD8yEcvEYIKyEzeZPWIClqmn1SZttaWnJukRZZWXe + lsvYLuPoBIEjdK6tvMZbXI9MGQlfromSOr1HXMLpdJoxLDjQpAil+WkLkoyYCPKuqRrSIMARJ9D/ + NITFaYtXljQkaRO55TqygIr5a9qiocuaDSd0oVKFioq06YY2N+GwAJvrkSlN0ETkyskLyzLIyWpV + XoASmJwEv9fwLQ3fAf8NBKViVYSnZckqIQ0/zsmKgiQNxARVE6T5KZuZzpQoSAtAQeK0RdWWRaRW + EdIsQFuuo3Y5KqpqAVUFzZnvrE7abJpW4SWrIM3J+ClBWuvVugUYCU5bfGgONkTNKOx//EdX+lDU + kCJBDYF+c3pSkBaRoqJt+YXNe2Z+XdkJFVnqJC/U4Dyy1aX5fdKfg4s4itUIhdPalppalRWt0tCA + mez2VHAn2Kr97ckJFRknd9R6Ju0EZafthK0iCvX68lOqrdwQRL7902pEriFegLiexR05btb8ZqXt + 6D6ZbLaTt6Kq7eo1igbrdVGoQE2QJZuiqo9from7alpFUKlU94oh15FkPuWRWlGEOr5rprFnQTqF + sG3V5oQZ3yyTzfUfU2Y63TX3FFyE5l2L6xHbf4GpRy96fe6c+yL4L9sjAAAwNteQKjjrsfPg/zHu + 4H8WoQJUMA14udKoIUmzVhQENeQXEf419piZ5GPnx4HWHWoeae0gqmc5B+cTsIa2Al+0X7qwmYNq + xaUE0+CxHeV8rDsMVJelCpgGmtJA3fdVBd99rNMZYF2wzolQ0xRrRa7ZnlJtditrE2XIW59Sn6jJ + PJqGDU3uSlqz1iH+5hMyj6yCpCJF86A5WUFj6jjQzpsB/9/zY+cv4Fq7dMkF/ss2ZTNL6Jqymcwq + y/yya/9KB6pS2bPTmj19SdAqVaRYn1Itrq3keWERCPy0pQYFk5BEm2lTah1Kne4RgXUoIRVNgphQ + hsqyxdXpKlM2HA4Xk3A9YqRWEaGqTlsqSNKQgstoca1d/+b+vS9A6y931v5y98HHN6dsvLCIMyNd + U7AToUpaTCJNW+ZkSZtQhafRJHDiFzN7o6BUJm22bUTt6qAW1z7knbJB11RZMcBtvNfujBy4207B + rk8fV+J2mlhce9/HyYN94qpor5gq6h1vwgwiIW17zK37xiuZlf/IlK1K4uqkXG7gEbTOGLOtCf3S + vCio1cmtj9wVE8oKVJbbqYA5WQGdhgZxDLEpW5VyPfLIVEPsNFINSY0lBdbrSMG9RRS6H1i6WxNB + fpMuMVnVnthsRolHlw2OuEJyzayDsZ0RfxvsFlc2G8ORz4PJySmbKBygOGaqKtLw0Gvy1eVtqJpc + E542C3LIpER5XpDMdDJoXlA1pNhi+N7hEutAGIkiaKgAluWGBiDQ2u24hAAvS49pYEGSl8ynnQJI + aMnMPtso1wQNJNBSR8ToqwhFBOqKXIZlcRlU4SICS1WogWW58ZiCgCjLC4I0jzvKo1uVuTksuLLG + dV/5RhGqA1kCmlwH8hzQqgiPaQiqSN05Iroy2ezenaadVlIBTzVUDahyDe2T2JOVTsvv0RHOm7Q4 + 3Ev42mOTulk7tjqWO1w+uaL2VS1eXPuyAgReRGBJ0Kq4e8gSCGe8B6UiTqKvvMPaYyrQUBXUZElA + T2++Ei9jEcasM59x/Whf6ccQzqCKoALmFLmGO9lWvWEZHFa0dsuYP34jF1VTZGne9dskqSvCItSQ + gMcnCWmwUkGqagzmdTiPVFtdkTVU0SY0zWZxFVIJkEXKolBBbeKa2RyWFG2I44ZU6vPWXQNLmBdR + JhXsqyaTc3NAFQyBHmoNFeDX2JGv+WR3tlkzRgrOt1/PyNfWEF2PTNX3GsqnYEWRpeXaZg+VZYUX + cC/gQV4S8BwAiiAn1JDFNZbPec9P2doxXIC0E9wEQUwQLCCckzQDdiWGJE2BIshqUOKhwgOcAphg + q+fxR+CDy6IwX9VAFi5iDOFMwFgwngMTTPW8xTXWiZ7P9sqV2itXnMfjzqrFNWaMfnvG5YCdnqSZ + KVvd9bvu8VBCS6oF3xIF11TZZYS3sxMEN2Uru373CMZxJpsFcwjxAEo82GSOAgQVYJw36o+CXBUB + FdYQMGkK5hDUGgpSzQ+jbAiLACrIiFCXVVUoiwhoMmioCAjGvMEKwgbp2gGhtAwEVW0gdRzUDfQB + BdVlRcNhamZU6+8eMdp7R+mZCdJhlh4Xy0jERE82GzPewZjFqTZvNgskWQNLsmKMCmpVbog8KCMw + J1xGPC6rFXjlGn4mQg0pQKsKKsg2JB4ujwMIJLQEyrCygCQeVKGEvwxDBsG8Vs3hbE5WauNmvHby + c8JlI4D5cmbB8pkYQFJF5gVpfhzUoaIJlYYIFXHZfA7rMv5q61UB9X5pgtlqsnYztFtIlkRBatfB + FAR7EAWJUNWEirUiY3jwjYqm2tr32pMyl7/7J/7UHgXmcAkqcs0YNMz+0VVf44DHs3R8G/eh9kjb + q/x2Z6fRBBVUOk3RUNFcQ8S1rciiiJPWIO477WFxU/bU5PqTmoIbQ2mPsngk7twxqGT0RRwJvwkg + 7HY7wN8brlMwVkSgBhdwB8VfhlDbFGKkZSBiuYg3CGU937P4lFn8LB60lwSEP/6KLEgVgUeSBsUn + zgMJabiv4bHcwI3ZNVWEaojHPRrOzaGKBsKpRRrrcCRkzDVVUEbaEkISkBuKisRF1K5pUW7wcyJU + kBW4VQCNfgwVuSHx41jiqlShNI+LLRvfpSky4o/NuxkRZ2q8taB1MgQNFVdyOLXI4n6zPA5UTRBF + gDUmqibMQ81og6rQuyPaSbMmiuixRQQ0VKvLClQEcRlAnkc8II0Px+cBKlIwbnEpqkismx3UaCA8 + GQVZY0TY/CghKOMPCmIZ1fg2N/P/nQn8Xrw/6gg6JdTmARS1aUvKjAbC7XjAbUTsPXGtC/DJJYFH + HWWQOUTVXVOYCwAa7btNBAU1pFVlftoyj7U6uFx1baKjvLOY2jvX7x75jynzK6ggUVTrsCJgDaHd + YvyuQ57v/G7PEpcEXqtO4i5/7gJoP58oy5om1yYBgWoXQA0q84I0CewXjMFAU1xTGv6YcerStIWy + uLqnxrxZwRYXx4C4rGpAQfhOR95XwZhbFDsSqCDVGxrAc9RpC2vvVlVZgARrxrVSU3H1/M7QJEyp + SMQ9sf0QqzSNV5YNrQ9YhGID4bdzuUVxymbede14SlhcbknAk7Mez+0WV0KWJtqTyl7BKIsrDqV5 + 2Ou5w+LyKbDW8zlpccUbqlDp9dzZfg4KAo/kXqE4iysDl9Rej2mLK4QRI/R8WbITAowZtXK+Z0hq + K6Tx4r1D0lshg7CG1N4hCYvLA7VKz0omGIsr4i70esxYXEksF2w9t5kdBHdUo4v97pF2JzO7VqWK + Kgtl+XKne5mfF1avWTppYhWZxVAbdT80IiK+nQLiTe0nLCMRj+PbwranikYOUzYjDC7GLtXMIlQE + KGmTQK1BUZyowLp6weJKKm2VxYFK7jXH156F33x+sPJ3gru2D9+dt9is0q6INUGKe7DKzJzOZ4Wn + ERiLCxKIe85Pdr2++S6GNs6I0f7q6b0+evzoyZogbb6WZXe28DLOdiwOL++TkxHot3OCl7fltNdr + mjKbAbZs53J3pmZOBNlugs04e+TcULG6vKvfdUGuu93NRDZDZdt68E4p3aK4Jeg8UYHa9BbeuvVv + 5qOdZNsVYgtqux5t8WzXoy2U7Xq0k2K7AmwCbNeTLnbtfpM9sLU70B7E2h1oD1jtDrTFqd3POoja + 9WSLTvhRp1O159g5ud4WkpG6OfHuBNpKaGv8f2ILMdP4M/9PWKtf2PbZbt02Rs1pEcl1qPAWV/vC + VCzRdvr8YNJXIJ4fKp3WGyNpZkApy9Vl1eLCf9sp250DSrkqKwqeYKqNsvp4bWHR4uq+A2oLi2aO + hJMcUI7n/Ow5h+Oc037Oz5zzOM956HN+6pyDPOehjAvqnDPQvnBQ7UfugMW1dvW11g/f6St39NX3 + 9dVVfeWrdskYYoC1PGE24uZlOw9qUC1ZU6yPK3JZ1h5X7RSys4/XFbmOlHOcV0F1WFkwLqBocdUU + KzACAjMgMAP+wQz2BxyoXTaSbYuPA2ofxtP+PowKOMf4LK6L3Xcumfk6B9UFtSp6fE6EavXxc6SD + tBP0OdL5uGqn96sdPPMx4uBvgaDPAzN8z0py2s8PlCHtbtL9y8zIMSiY8BX1cRHNI4lXH5fnHtfk + mqwo8tJvdRu+ooJ2NGPe3472W52IG1T9zFVIi2uuQg442YrFZY6mYyw3qJLitXkX/ttOmOnMwrr/ + GouXUzaNx3+U7vleWycIF3dOHSnq3AVLO47G7/EQYLlnAorCvDQJOtPDraGyBpUFLHYoC8Bv6lwA + VEEWIXOh6Q9doyrWVeHgOIGgjJUDhvbKvLUVGgtfc7K4qZ/+vfHDhVV+AVk0x8H/lMpq/cJR/m6v + t/bb719N22pCwfre7orA+oVpwmgyLD5gYQ1d1gDHgP+c1y7g/0wdQadxpmzGTN81ZcMqA6OtzJm/ + WQbRtMLpMWnvlG5321wAZVnhkTKhyfVJQNQvA1UWBR6URVhZsOwUcuxGebEyb3pLGY3FzEVUKyMF + EKyhaN5Rck3Z1MdADc3LyvKTdqBWIY8sRkEVecksKNldQR1xy9C6tOObtjKGCibiLvRWt1Sg9uRT + cJHZrm7Z3mrYgAS/dVeeNTgvIW3yicvadEORJsuaUJ2MFv2edChE0aF4MB5mEgnWSxYS/hLrjweo + eNFrfnTKNC7FOcp9jgycIwNqYwGVkWBtqx2tS3PnKLfD4XCcIwNQkuSGVEF7RoSSgNeUazI6R7lZ + J+vcI0KD3wrfyaDeKItCpaxh1RXOyn7AeNiepixobX3NYWMLqiaLyCpoOyPhRSw8A25XtVpXBA1P + veYNM4BNSwtTiDZMfiR5ThZFeWkvo5/LE1tF3LkM1qlpaRlCqyrYeHlJwlpDG0k5HAxtt3biuWp8 + ecJhJ/fqCkuobPSCHSXZvu5kFWrzVVnVrJpctwm1+QkG2nkEGdJOc9BpNcz0XEVUxtrhnSzjkQYF + 0dBHPyHw0wTBMCSesPjM+4f8Xro7cFnWuiepW1nauoaPzvRzui7C5bK8bHG1L9rlzBp2I4TVyQQ9 + 4A/ABzU0uXONiwZ4dekPoD3gTIK4z4PrE7S+v3n/hzutT+60rv2oN2/pK1f1lZfu373dev6e3nx7 + 4+bnrTdf3bh574ntPQKjxewGTzyx2RwGmaYtJis7zKrIoqxMgt97PJ4LwNClzMGaIC5P4uVcGSs9 + scamnawGNdXiyk6CbRqYdhIK4i0ue8dIJHaQQN6DBAr7JkG7Sbda8ZE9m/E3gUfv/elUoDZRnTcU + Tl1fT59IS0fZHBkJpXxRNkQlGSbOxUrRkD8co8hMhA76+iZT3wzshgvieQHRVkk8GAHxdyEvqdX/ + sS4L2Gr2cNysyNgASG0oc0ixaguHiywihO3Q1Ik6VCAvqOjw+WP+GtdKOy5BUdwB4/LygtzVHsNj + brsrGCMtL9qcrJ0kLa6LlG8cZFLBS+CiW60K2DAZYiPHSlXg4aOXQLqBVA0YL9S+pnxgAmSxHWz7 + bwDVoIiAm19EEl42VkBWkCAoIMVKWO1EX+jeWeD2O3VKfRhgk4cB9lFRnUBLPgXOyxIWDNuX23FN + MlaCjPcENrET2O6GJoOOmpIH5WWwV/2cHhiTvwXjEyODRqhkNMAwhbyfzs/6woGZcCiXLCSzVCAa + Dbh9pTMZdIRlUMqxJYOKT/O1CbudHbAQ6nTyBMHYK30IocTICaH7yKD2nUiLlXxxXJ8gkcvoq1/o + K/f01Tf0lQ/11TvgXz//tbX6pt78svXpj3rzK1NMxT8/uaM3b7W+ut569S195YV95FK9+YvefFtv + vv+vn/96erBIHFlGffhAjMcywYKPznoiYdafSLvJvCdaisYzOSaTmM3N+M+AOMpA5LqAKC+iCcrh + HDAQHTwqlyHh6AOI9mEKeb+BQtrRk4WUYxcLkwU/rkqwfqOpN7/SV1/H/zZv6s0XW88+ozc/0FdW + 9ZU39OaXa2+8rK+8uA/4Wj9/qF9ZOT3Is58aSTAcSiQLxXikECuWovQslYj5IvmUP59L5nLJXCp3 + Br5RBh+7C3z0k8Sg0cfaEUk7mMOjz+4cPYVkb/4xPfhHA715T2++rzf/V28+rzc/oOz37937109N + x9qfVx689Qa59td31//3mVMDN2wtfeLlOTYTDISzNB2JMTOUJ1pKBkIemo6kI0lfoVCcyZ9hbZSx + Ru3CGjVgqHGQomhI0n1AzTFC8hzJ9uYZ2YNnFNBXftVXPm59/XrrkztAX/lCX/18/buvwYPP3l1/ + 82u9+aW+8qm+ckNf+UFfvcpQlRpY/+SvevNVvXlHX7mmN28++OKnjW9v3P/hzulhnmNAAt0wVluy + EX86FwmmM9E8E0qXAsVAbDaZ9oTCuVwwkkzEz1ZbzlZbDrfagpV2F82VlhyswZoMslqDF+RLwPRE + jWNPnq1FlMdUkJOXpEcBaaykkMewkoJLdBgoc8OXNH97PcVq741n0vlvvppi506BmBnwJehYkisW + Cu5MMkQFPGE2EcpGfKkol8mysyOiNjyauNiJhhptxtEMcdCogrQ8sVhX21nuKPLIiJvElrjZ+uSH + 9XefWfvq5fv3vl27/VHrvZsbX73ZeubX1u3X1t99pvXryxtXXttY/bn14l/A/bu31956vnX77dYP + bw5YOmWd9rLDMcf2IZ2yIyOdsjRlpZiey8nkLn3jAet+HzXjjjY5LaRkT4220ZuLxWg3PRsg3QU3 + l2DiTCY0E8/52Eh81pdOj8i68xkv9+elvZuX3z149/uN5lsbze83rjwLWp/cWXvzz627t8D6K9+2 + br8G1l652fr+ur7ynN58Tl958TipyVCwwnNsP3N6ZsQUlayDsxJcb3aSu9l5pHYYIVLKCt5cwOIi + +4QlcyIsJtlgKRDmcnmP2zeb9XGxQCwZDSbcpWwqQYYCmfzZHP5sDn+4ObydsrguehsYPY+pAPIN + UQMhBBeRdAmkFEHC20kAL34p6djsH3EZDoNderTsHwmHlXL0hu6I2z/uAmcPwM4rCO/4S/QrjdKn + RhrlQqkZKlYqhEoeNsoGwsVUMZsqpalsgCPjiciZNHoSpFHSuSWNrn31MrbHe/Wl+/fu6c2v1n75 + eO3664YZ38f6yh3DeO/m/Xv31r5+213A/iXPfK43v1y//dz9uy/pzbfXrtxY++7H45RQaWfFzlV4 + 1IeEOmq+PSxFW6nexuLELvXmAdtmn9n9gdtsBKVZuk/YUqdASVoIBiLBhJfh/NxsKZeP+OKBIBeN + p/NeXyFJujP/jmvxvyn0jgxeu2wrCad9wECkOJbl5mA/QCRHaBneSfdc5yF2uTlejLqLvgnW4bgE + KHvrtZdbr11r3f70Xz81W8/efLB688Hqz63nnm19/Uzr61fXP/vuXz81eyMRL8qvvIAn9SsvgIvd + ELw0olKno08Onh7Xm1LJmyy5SX/J686ySX9ghvYEosXA7Iw7EqQZ7t/S0vzk0LDL4JIYuJE5OUeX + IW+n+qDh6HndsFRvJu5SX16M5GcmOJq5BFqvXbt/76X1d59Zf+79ta9eBmtff3f/7ovrf/pm/d7n + a83/fUiUG4rm8jT40czkODLm5eLZTNHjiXBkKRFjQsVwPJHLcdGshzmj2yjTjeymm2PAdCPmKLrM + VOx90G2UXGicRG+u2XfLesWsb8Ju5y6B9V9eMS0uW8/fW/vpT+7C2q9X1laf/ddP1+7ffWXtzY9a + r76+fv1Kb1lv4/nbrdfvYDD+6Xu8In71m/Wr3/zrp6be/Fxvfn4SuNjvHHhAzjb7LesYOziSg1jY + 8SSjISbI5MJ0ZCbOeEvxKJOPROOFoi8VTJb8e092UXWTMMr8OTJAEDTp4OiHgohtZbHNI83WLo3N + XnbSHHKWyxTNERTHcjTjZMlymaah08mUsd0Kx9LOLmuai/rqB9jYePW91lu3Nq79ff3Nrzeev/3g + 5h/15itgTG8+Y7hVfKCvPK83nzt/CQRIMGHcfQb36pUXW+9/33rpz60v35kAYw9u/2ntzpvmJ6Sv + fo7/Xbmlr94y+v+XevOr8+CiL7b+wtVL1qeF+n7s6gkawnksDituCZ+YIDfUTYowtJWmeurO7Ibu + bNgTOOJgEziK6+srJpynwaskHA7QtJ+Ol8J5OhuIUP501EN6/EmPmw0HMzP/ls5yJ0a6IZzd0g03 + YOnGDhmKYnny0NIN4Rwlh5J9pBs720uT5bwEHtx6Z+3vN7H53uqza198+6+fmhvPfNN65ceNDz5a + f+Gz+z+/8eDza2u/7iPePGEKNODBG6tr791s/bq69s4nJ0GoYfrEoePUKLQ8qVg6lnd7/TPuDMMl + OZ8n7HUXZhPFZD7lKQQjDwGKZ1Q8OBUd3VRkR4eK3AnaR8a+S8m/8eGt9R9fX//p3dbN5zfuffWv + n66tffvB2nsvtF64sfbeF/jnjx+s/fjBPjx8sPrz2jtfbXz1zdrq62Djk1/Xrn+w9u2f139++yRQ + keqTikf3CbH3nuVJsoTwhrZHn+QV6dl0MRaOFXz5hLeUDJRmEpFwOlHKRMmIN+/fW8tlfH/beMdx + HHeMRmo4jlXVEBS1qlUVDgO9YdjkDY+Au8jn5Jx0t5PxRdPdzQMl/hKINp4SFIiP64rKCgRLEGTh + U3IDSALIa7ABJoCdBRc50l6/ZK3V6b5t6BYXjGOhVCPrJ8tQ4g8HyKF6emRzvgmPO+GzuDpX2+BI + 06TV3tsaxE7t5GPvShi1hcujaa8I5+lx3kj7Z1NMiIkEWTocyvh8IX/RM1vMsqFiPBOjI+6z2e8o + y3nddhwOZrByHo+cPMvbeboPOW/UXC8IK9d7kxj7Lg2/1+/2TRB2Dty/+3Lr1a/Wrlzf+PJLPA82 + tPtg/fY363/6Wm+uGJ4Xvz5kIw3imFnHnAIdX5LL+cIzoUI+F46GqUw2lAh7S3EykQkl07O5fPCM + cqNMuW32GfToUI4eIR0f08sywzHJULv5lvVNEKwDuAsPPn1r/cYVsP7LX9f+/hleiPzllfv37rU+ + /REY+5ri36d5bnp6/B6yyQIX8npz4WRkthSYcadmUxxdDOdiYTLN5DL/lieQnBjE2bcp7Aa8LxZf + KTOoTFbm+kDc6J0+wvbkHM30kOOcoPXLB60beMOBtuqNAffvvth65f37997b+OCj07wkcRp8DdhS + yVMM+QpJlktzXCBJZcOpmXixGMy6w8EZOnG2GDHSbNs2SSUHzTYaOsky5+iDbaPkbMA4emNtl/gW + SvgmSIoG63/5cu1vz9+/+wpht+PtSzfNx8D9u1fWrn9gmNN8jne5P7UGtoRzUE4EvZcYID5MeBAr + DBxVoGaSXCYRL6XdBW+iGCHDhXA6PlOaSYZnc4HBrzAcSeUv4JP/JKQtQUURZEW1Skg7nCf9EBz5 + h7/gsCigJXOxwW7bWmwItY8MzjbK6iUQlhrLUK0KC0J7ZYGwO4ylBfMs4X74t7S0ZO0+l9gYZQ8H + vMH5E7gbWlVWhKcR3/lY20FgQ6s+KS9YXLPGEdbGt3pgRlZVi6uqbiMj4yStlDN+cDZOwU1BRal0 + qlBQKpM2m6BUrIrwtCzhjmzrrkuL6/fdP/97W0ijPClFbvDiMtAUKKkixDsDQIkHdQWp+IBMY58A + fCBvdzcAASipjXJZkOZBDsGaFRQEVdCA3FDAktls+CB54PPF8JmlC+o4UCtVxDdEpI4byeOMVA1I + aEm1DgvahklgO40lhDOZBGXjrFTCTlAHsSfcM7KD6Bfwp8GDIhdMUdlgxlMiQ7lYIBQOeMjSbClE + M6WCe4YrkWeT81EWYLfpHwe8Ez9f5pxOzs4QfQiwo+RBwfbWP+4+Y87nzvomKIIEplPsptOEKdBi + C5kvP2t9cuf+T++sXbnSuv0mWLvzYevjdx88/8r6j29sfPDRaHvFHlWiPT3nkCT8PoYrRH2UP8Ul + 4rMZOhzzpd2+Ipn0e91+Lv1wsXdg4XhbLu1ibRqaCJJsEO9g0cje0UYGd8wW7papAW8OwEOec5IE + dfhdUAnH6B084nD2hB61eytoX2KCoAiw8e132Ntl5Y8bf34Pn4RsnB2nN58BrY9fXf/Ll62fP1t7 + 55PTpIN0nAYvkdmAJ+ku0GEy7Y/5MzHOk0nEU8liKEHnZoOZbOkMZaOIMroLZeSAPft55xzBOgia + 6QNlJ8I7xDFJcTshFsnPTpB2BuirH+urnxnsemb9l8/Wr/4d7wN1q2l4+X2I9yLVmy92HryJD5S7 + 0tRXVvTmcxs3vzGifWrs9fTmSTnw/UhbnRh+1ydFSzkbSXtL9EyJzkZLyXwsk0pQcV+CygXJdDiV + 5GbOtJQnSktJOg+upWzbPz9MJaWDO3lKSpJyWtneSkqKPVNSDlFJSTN9Kyk5wtkn34/u4zKM9adE + 2BtIzHBFdzSUzeU4LpoL533pRG4mOxMMZNJnZD9ZZHccnOz0w19+cgzCt2VoTHfSVid5hvQhI93i + IskD7llB9s3q0+O8E46FUpkC7UvPuGORYCDOFkv+bNYT9mYChXQyFx7o+QE9tsc/YStQe2kyRgjy + soSegouG+9y8rMk2zabytQZHsRYXQRBs+0ff7oldyXd2+N9M/zAoZ4azpQ5hpbjeyome/odbbwkm + QNYXz3MUCzbe/njtzodYGdG8ifUTE8CjIKhq6jjwNBYW4AIaBz4F1uA4SIlQkgRpfhxkK1VZFkFQ + UER181deEuZkpTYOsrIoL8nKwpARSVDMAU8DcBB9IvI0+PzEKdITKORCSSYboRJeJjwTSjOz0Ug8 + SvrJTChzBsfTAke6G4704OFIHw6OA3YL2hOL1GCwSIMCVAScNqxoClJVpIKJDgaDUBwHcVmrImVC + kCZEuNSNxqLAy0tDJp+TPiD46D79gRynxx8o547l48F0zBue8XhKBTpRYlNUiYyksrMzvplC7gx/ + pwV/TDf+mMHjjzkc/qhhyYb2fVbfyUNAkAGtZz5f+/Cm6fCI912dAFRqHNCpceAR5kFOwEKiV0Gw + VhewlIhQHeSqigw1g4Q+YV7QoAjisgqFyjbx8eEIiE7HATFJ9rnvo+M0eBUxvmLcH5nhWG8+TJNx + H8vl8mwgHgulWDLI+b1ngDz5gEQL/CJjd5iAbP8YJCA30z8MIMnjlw9J4qho9Ed9BcbuAA+ufrf2 + 3s31995vffwmnjPvwcMO5cZNhauqCosIxJE0jkNqyyDQqCyMg1xDk5VxUBCUeUECcSgNGYoO+0Fl + x34nzafnOJMwm/S604mYP05RSbeb9tDZ0KwvnYzOcu5k7AROnftah3oaKXYeLlsr1d6rTieOiLC+ + ULXTTovLnYqG7LRzkDTcTPswNCSGJS7S7FGZ2K4yvOv/xtffr733zYPnr4EJ4JWX5gVF7EZiAFYE + iFWGqWRhHGRFJPFIeYgKQ/aAaypMv2sqp8FJx4dlvxJVCiWDeV+c9mbYVJoM+Hykl/OlA1HfGfVO + LPUqSOVpjrG48M43NDfQSfJm2oehnn0IOkLmqLxrVxZ48P6v+sqL+sob+N4m40KNeQQ8DU0bB3Go + NRQEinINSt3yYLf8lxc1BU4YkbAAOWQE0gdcMnH0uUua4/Q47dDe2WA0lKCDjM/D0Iw3EnUXPN5U + KJlxB6moJ31iMGjOh611uV6RFWmi+zSWg9nHEw7SSnCslaCcVoJ0Hs6qfrSlwHKdZe1PkhZX+6rK + x1MDXTnZyuEQWOSGdFQLZ6WOPEF2e1IsaweZhgBCUEXzcAlumx/vRcFRPf7F2d+x8QR3Gjx76NyM + N88wkZInXihkSpw3kpqJJLxhKhryZwu+wBnvTgnviE3eEcfEO+KwvHMctxjIWdnBkI4AcUEGIUGC + GubczjWQzQlvBqmaAgVJGwfZ+DYKYsejkcQfTfY56+VOz3kvVIyMpzPBbDTHJEh3lMlE44F4PJ6m + vd4ZdygVOoPgKYEguQlB8pggSB4WgtxwhD6HlWUHgkISuAVFANnG041aQzGkPlFeGgdeWcUell0w + 3LYy8hSqaMKioC2P5Cnue/rDMGyfe1hw3CkQDLOsN1OMxZkQm8ywXDDo9hcSIU/A549x8bzXXTpj + 4ilhIrXJROqYmEgdlonscQuGtNW5Dw2Jg9OQAq3XXmh9f33jjS/xLQkbDe4FwP9pCIopK46wJGjv + VxI8PT4lobSHmy1mkhky6mfyXnwGTMQXCacKsWRhNpU4o95poJ6iygRH2GmLy53JJo3LQWNvK4vD + cG9IjiUsR1k5Jn5U/nXqDkyAOHZSRXxnDWT7isiWRWDX9HiIGOzg7aB2gfY+TWC40+A3QpXSpUAy + UUrNFCmfxx9jM8kclfCTHOd1lwKF/NlOP6O40w/VvdOPY9A7/bBzLOlwVg6/0w83SmfE7LfTD7H3 + Tj8caH30tb7yx9bz9/TmX/Tmu3rzVutvb+rND/Tm++s3muD/XHmz9fEtw3T6xsb31x/85UNCX/1A + X/1JX72qr95ae+/ztXtX9OaXvbb5ab31jt58Ze3q62vPfjiSm571uSDMnR5Pksisu+D1BBNUIurJ + pel8LjCbyOcToWyAyQW8UfpMIjwtniSkxWW6RJADlgY3kz8MOofkSEJaSeqoM+F2rW2zj0nGxkES + O8+BANIEtdotBhbkZdRQhiz+MQd2G+7TLYQ7DW4h0Uie5OKeHBVM+8hiqlDIJnLMTKaYDUcz2UI4 + cmYFeGIhV1Mu83aWsbjimRmfnR2oFeBm2och3BA8QfbbovZgbGtXFghBCYIQVBoS7OEI0vYbNmz8 + vDI2+nuYRjBtmrHOY/b74E6P34ebov00HfGWcrNpOhiNBkOZbIicYSgfG6GCntQZ+06ugFdFNN5B + Oxvy046Ben10Uj4M+Ibm9OFgjizaGRXW5RLsLjdUNA48CDY0Ya5h7g7T7Sm8wxq6s/AxbGnvwNxj + ++TeafD5ID0edsZX8mcz+VgqHvbnZn3ukD8VZyP+eIA5s3s5Fehb5Bd5lrJbXNmCr+BjKfugZ7eb + GRyGgcfuAkJa94Gf/WDwa1fYntvE0KHM49vEP7nSwGlBZXkcJBoKpmQG1tFDYOBhDaD7dfvgTo/b + RzYaSriz3hJHB31Bf5ROh7KeUsFTnGETIdo7Q56R8NSQkNgkIXE8JCQORULWOSxpkHMOCIjEnkA0 + RMJlkK3KdTwLrgmiYLQSFglVFc6j8a29AwtCGQ17+feAXsAG1fqhIXsa3EG4RMLnYRNhLj7rS6Q8 + sRDlzcZLYY/f7c3TbuqMg6eBg0sMicXBIkMOXBY0kz4M/hzHrwXk2CODD9fVNr1fWKogVevsELi1 + ujFkqh14bwNHn3sCsqfHy4NNJjMhT8GXnI2FAvFMPBmlZoqJAplzez35WGrmjG2ng22EyTbiGNh2 + SNGOG5Zo56QGQTgCuJchyEIV1oSOQNel4zP/du3vBwVRVkC2IWB3N0HVujd5GQc5tYH3fRm2nMdR + B5TznH2eZsWeBu8Or9sdjHGxMBv1eUslXyrkjjNkMR2NksVQoFAInri1jt+C0kDWSU4eDlVJsDPG + RgTZbCI8ga8DIZ+1Vh8sGreyOQweh+DmQR0djNlE2M7YQQJJCMzKalXQ4ALcA49+fGCPBgUJYzAq + qOo4SEBVWx7Hy8Z8RVawQlBQF5Y3t0rt8g9ZQlAbtnrwgKDsez58erxCkhwd8ZVmU3k3HQrQHBON + ebLkLB0LJOlIyOM+eVYxZ7TsTUuqi5bU8dHysE5x7JCcQygr4xgMMymQCScTe5Byaxa9C5BJRZgX + JCgCryyKsCwrbRViL3A+NMOaA1oTcv0KmafBl4ShqJlglPJyiXyMYrNMsRD15ELxYMRXCKRpf+wM + m6cIm3QXNunjwyZ9WGzSxy9kkmRPYJLOQwCTBrMNCOLCwt7z784+C+39VrfJm9tNrfem5bAn4gd1 + t+vT3po9RaeVxCl/ophlCow3V5oJM7mSz1+M0FTEy8YSlCd75nQ3ek53tNPR7XTHDdjpzsGwFZLn + 7Yd3umOPxXPkaK53vfno2NvzzgkeNF9pvfKj3rylN/90/+6P9+/dW7vxjt682Xr9J33lDb15wzit + 5P0nernWPfEEWPvgtdbfX8Kbtza/PE3edeyRPU243uctK3BpEKctxyP+jC8c9Ya5aIqNlLJU3pvJ + pJgYEw4GAxS5tx8xlnKsmtxYEKxKo+uTx51tzwgK2jzsWK5A8aFQYk5WGrXNUtuMd8AfR4cW0yxJ + OwkCEjRJczw9N0dyFP6yGcJRnoNlBO0VlkRzDG1xXcwgQQrISgVdAm5RqCCgyaAkNxR5oQHGPL6M + UAeEk7RfJuwOO7hMsjQIxNze832LWT3KfjjekCN7svFmdVpcm5c7zq63Mr3cgrlJ2tgWa9geGwc0 + 2vutval2JrdFjwF5bBw/Q4rpmDsZzvnoQiIYjPtz7GyikHJ7KLowGw56A/6jndi+HSTS5kyrutw5 + a/3gpwBBSVCQBA979tCRDojvOGpo8iicy74pGxlns9u3RKOLyeqyOpGBS3sczD7mnQEE6bBf5sg2 + ztxu7/nfmjjug6LBeVYcD5BwXVhc+O92DDlJK0HEe3GIJB4Ch4yTwg9CImefnmPs0T0oehMISkIN + DYJBZDQaSvgirNfjzxfy9EzKlwnlSnEvFZ+lgtFc6GgMGpSSyRi4VQ1BUataVWFoDBIRqlSRok7U + oQJ5QUV7G6E8ZBwRzi4cBRQEF7xKtuFpZC+BZEOFNQiCsIYwkjhwEYtWl6y1hcX+hSqcQ0VRG2Vr + WZTn1bpsHCtnO5xUdewOEiztsDqpntAh2J0zs4KgChqQGwrWRM2DOVkBPl8MiIK0oAKjl4Ai1CpV + kJREQUJAlfE+eKCGeAGCSZBbMooCtlRgmnnHqByjWdRG2U7i/fNQWZYXukIuLS1Z59q3jeBepSFV + qstqowyV8ohJaLt2Hj0kFwflVTEEOrKhdLro9bDsDFnIpv3ZmULCF4owBcqX4SjKz57R8QTQ0XEI + OnLkKMCRGZLPBOlgrazzDJHHtjraHyEZ50mQHEtUwsPQ6SAZdBcYPxOiwx6vl6KpXIjJ5eMJavBs + PBKsBLycJCFtCW/lKCudOfAhVjgPiLuj0H34qFwU0JKJSc62hcmQrChCWUTZRlntJUTW+wdl+3Ou + tnNRG2XVWHM6HCQdI6uXq6oWV3X7FJihSaujN2l3bVA/BTfX65RKp+4EpTJpswlKxaoIT8sS7sK2 + 7kq0uH7f/fO/t4U0ipNS5AYvLgNNgZIqQg3xAEo8qCtIRRL+VV4GWhWB7g4AAlBSG+WyIM2DHII1 + a9cwsGS21/aRYByolSriGyJSx43kcUaqBiS0pFqHSuq9972nyIOaUPc59WccJ0fE9UdIZpbLsNyM + 2xvPxiPFHOWJZAI5eiYWSJCp9BnGTxbG6UNgnCMfPsW5EVdp7sFyiiStzn3EZvsZzIcGc44+6C4Q + RJ8eggx3EqTxYDwfp8IRjiGLOTLqyRfogD+fZjwBKjVLuv2+M4yfLIxTh8A4PQLCOHuShHGCZq2M + 4wzgQwa4xUVSB6Q1QfVLa/bkiN75VDIWmqE8mWyajpMkE8q4U4nZSC5Ryga9lC/Tt3XjAAwGjrjy + 38NKfUBa66HYqZ8IjXe7NxgGu7xoczJOfOroRb8CBWylsmO4yFURcEtCzUh3myrnYrwhakJdRJir + mqCJ6GhqcNQpQB9DCTN8+87N+rK4Ni+3jRgs3Vvet+9Sk0dkQQINFQiSgWWfoFZkhQeyAnJIRPMK + rIFKFUoSErEB3IIkLwEoigbqJbSEaxZBvOmQPGfc0xCs4chmVeOEZWlLRY5TbWvRwR/ALjU5fh8r + fh/w/4FubTu+/2TnvrWGtt3gzRJb5+dtNapeiTRK4A/A3dBkoLar1Bib9uqFwzbjIA64WkkdzJ6M + JHYPKcxJmADE/KWZdCnujkXy3mI2kk9HadrjzwT9BToTZNmzweRsMOljMOEON5gYCqVRGkuGekDP + b44ieL2VY3sPJNTZQPLQBhKSPOBAwhxsIGHI3QPJoDy66N7jSXUeDmY8YbhIupDylGJ01hMIBNlU + YraUDWfCVIGJziYDs4P12Spr1oYkyFIdmb3KHFh+06q5p3tEv9w9POxHxV2L6TJz8aFFQVTBElLw + N1+rt7+yMhRFyGMYYKkD9qstEmrzKkK88fF3/LkqlIOxExzHHt6fi3kI/lxPwcWoIM1bXO2L7doh + O+G09jIcZCcZbiel11Y+f3D7T/rKHzc+f0dvPtf60zPABg7WBlardUS3RSGoPvdFYU6A91Y6lfFx + Pjfj8ZLeQq6QjcaZaJxLzjAlb45Mp6L/Rt5bDgqR1JyjQvB2R5km8YhPMhQFIcvxPIcQzVA8TSC4 + 3XvLi3cCbyhAkkECLmN/7oIsAnJknbiYk+zEZbX32uqdnWSoh+E7cWCG9D/pHpAX136iEu7DAjkI + niRzkXSRzMx4834uxqSiKY72ZmJcrliYCZfig3ZwR9XuLTHJAEHQJGOnjs9K+FinyKMiQNH0lgA1 + 5nWw58HFLKooSANZuSIgbRnEwVhU0GAVKhC4F4Tzl0BMVjVQhArwVhVZEiqiuVN4Q4MCyCsQ4zEr + N54SJEEC//j7lX9cuwL+8ceP/3n9HfDPb2//87lr/7x+F4zF5bJgTJYFDQQbEg9rT+6V8HlwMSor + CEqXwMX/e+3K/3nnuX+8/PU//nb1Hzeu/vPFjy9Znxbqg5ToyvwcZNiKvdyHREeMmETHUFa2t0BH + 0TsFunbzr994p/XVc+v/+9r6x7/EwVjr2tutV96/f++91t1ruO2T2RwoujPAG8okE2FvzJ8FG1f/ + 2nr1642PXtWbX669svrgzx/fv3cPjK199n7rpTfXrn7a+uiWvvKFvnpHX72ir/5t7eqnGzff6dHY + D95/o/WXn9d//XHj5p1Lwwa8fUBa1V4y4tF946h9wF6D0jwcBNdz0WwuGvCTs2l/hvUkI9ys203N + evNczON2+3zBIXCdIM64fjSuU93+H42aoKmNBQFz+RIgYr7o45EoCC8IElQE4JMbC8syiAuVShUu + NB4FIaipDeCvVKrCo48Cb9XKblJ48MAtQweEfD/AtQ9TzbkvaknCStC9UbtLw3nx/r1r9+++sPbe + Vb15XW8+t9Umxv4nL+vNz/WVF1uvXWt98+wTAOP4+pVHnwCtq9f1lZv66qq+2nz00SfA+hdfsBuf + fQPGvMl42Av0lQ/11RcxZzFtf9RXPzOv8SzFSnIPma7O490+hbGfJNE5RnnSdDDCeEoUkwqHUnFP + MMJ62LQ/44klUr7kMBDLniH2aIjt2g9hbP3GS63bH93/5aXWxzfWP7lN44/thW9a33zT+uTz1qtv + 6c0brZfvrF99bv1v3+lXVi4BffV1fbWpr36ir36ur/5kVEjr61dNpRowvvLb+upV4xte1VffNkSn + O/rKXX31hr56p/Xa1dZr18DY2vVv1t76IaXIT6GKdn7wcGbKdidDE4eHM+0cMWmY7G37xu5xbuYh + GxSM6StX9ZWX9ea754+pcYd9Bgl3rN5+9JG9/YYD6oAn6Hd78nHPTNadCUTinmAi7YvPZv0xaiaZ + p4rDALXzDNRHAjXVvVOEvvoq/u5WPtZXftRXbuGL1a/0lY/B2Nrf3l7721ut6yvnLwFvMhDw+9vO + vdmUOw7G9NV39dVb+srP+uqLzOBRW0EOJ8GhflDrGBk5mLOyRE/I7t41dUxvvqE3fzVQ+AXpPA/2 + aR195Tm9+ZHZRgdpoGHjkjpeXDpOknSbChcLuUTcn3R7KB+XI9N5dyZTSIbZCOP1h3yxIUCTPFMM + HxGaXSvrY5tiEEGcBxf9oG7KJGAsKFP4Y4QaSEEFSrIAO2JL/bhk0oqzTPGUw9kHKLmRk0np3lqD + 3Zuo9tMMD0l6PLBdUZ+qVJo7GeJjPMvkZkgmFWYSFBMLur3+EslFguH8rDvnjSajQyAhxZyR8Ggk + 5LqXyJzkeXAx7g6GvSDu9obCCX9mFoxlctbzl0A2HCv4MyCRzORCWLh5XV9Z0Ztf6qtv6qvG+sfK + vWPgIcFzTmqO7IOH7MgIjrTVvo/gyO5eqjpqMwz7nGL7gOwse/GQPUny4Uyk6HX7OI6ZCSZipZgn + wXojdCFfLGZ9s4VwfhgLTPSZfHhEKrK7qLj+3bMP3r+z8cK3YOzB89fWf3ll7eYP+pXm+jM/4U9v + 5evzl8D9X+/pzWvr739i7N/+vt58pnX3Vuva3/DnuXLLUIhdAWMBqCEQVLDbZlLhkTJ4aJbLkHSy + 9n5m28yoLfNb7c7e6KR7oHOgbWXrbqtROwH+iBs30szJkDTTIW7WV4hmwzl/zleI+6hYmk7kQ55I + iJ315tMzw2Dq2YrSEZnKbGMqnuRN3L/7wvqff2k9e7v1crN179MJMLb+558ffH+v9ezt9V9+xosN + K3cMBdorbd3Z6mv66k/6yj2wKItWOwX0K6+tv/bdxusvtG680Pr0h9bV62vvvb9x83bry3f11b/q + qy/hdQq8cnxLv/I6GCskw15/Jhn2HQN0WZIlnc4+rOVpemQkVcrqZHrjdteOZkdowHb7HbDxulsO + XPTF1l+4OnT7qWNe4qfpk7PLQdbD5rliLucOeSMUFyeDgVgpxflzpRLjSdNR3+j4mWKybgFrv9h7 + 5iot1VXrknpAT9qyRlorUEEilAw4WCvSqG2dSzm6KOzBZ7RIMohCSX5KBvMQxOFTQg2pjXlBaYBs + VcapV6pAgiCKpPYBCJunH4T8BS8J/G4vdf63nEH3gd9DcBVS5HmkWFzG/7a7CTF2K8X1ACAzSXMP + wzDffswiIHUSXOHz2UKU8wYL+UyOLnmpLEtlvTGPnw3kZn0Jd4k7I87oEqfLCD8qS3IVYpwIGmx7 + mO8EinmeSt88IYcpTO1DEtJKOUaLJMwBQdLnDqk0eXIEmAznCwWCTIAMkXE3k5vhfMxMLBb1xZIz + VC7g9p7hZHRx0mX7ncNm33VF3mvjigFjhRglMYV2WLl/M7iciJOXIsxsphBLJv3BcDyU9rNexpst + pULefDGYCyS9njOsjC5WyC2s5DPukDvjPhaO2EdCPCFZp5UmR4sg3DET5ASdUcQks6FgKFUsMGk6 + EUty2WIxQCXoFJWMRMPx2Jl4MsIcIbY4MtuYCAoTyeqjoJBxhxNZMAHIQQOFco6SYMIRvR0Rho2V + g26OckRjLWqHrb/xau2YSwKvVfHuM/ZzFlCRRRMpeMmsrABbd2PZNFgWkWvK+B+oIBGHrQjS/LTF + bjF+1yHPd37vkbyrk3W7biS4uDMcRZ27ADR0WZswan4SmDXfxbc6nEfThPHtYdTZLa4EuqwBjgH/ + Oa9dwP/t6GPtYv/ukak5WakBWMEfzbRlq9NYQA1pVZmftswjzQJgpYLq2kSlChUVadOWhjY34bDg + +O0Xb3dYvFWygotq6aMuLoD2c9ytNbk2CQhUuwBqUJkXpElgv2BmaFSXa0qEZSTi7ZWnLRpSaipp + cWWN4oMc/jk5ZTNC4CiCVG9oQOA3QwJVeBpNW1h7Bx1mkY2PxAxjAYtQbKBpiwXYcBIqErFNYzvE + ch0ZZZHrxrylHdRucblFccpm3t39nLC48FwH7RMCt5wsTfileVFQq70DYuN6BeJ9o3qFoCyuOHa9 + 7h2CtLjiDVWo9A7hbIeYKAg8knuH4yyujLG/Xq8AtMUVMhaV93l1wuLy4PPKegdhLK6kVsXo2gph + Mxum/WFutrXZqpUqqiyU5cudljW7dwLvytZJU1MamEs4IOLbMRBvMTrLVnAS94LuHtf9qNPtcB5d + na6bRAYPF6EiQLz6ptagKE5UYF29YHEllTaZDlT29greIYrfjtHjDTafdl6iYt7ovMdmtXbFrAlS + 3ENaXDlzuDSGEDAWF6T/HwAA//+EXcFq4zAQvRf6D0NOLaS2ZceNU1xBe2pgu4SmlyWYRXbUrCCW + jCSb7N8vkizX7qbtyXJG815Gw8wcLGbg+fF6CLtR0PUKfdAtzsWcEf2uGf8YdmNacrK0V8/k9CmT + 2/M9EzlNmM6Z6ZsiynhcYT+QOiIUn2PyZXfEZN3yjjtmHvvebRn0nGsmu4dMbtc+l5v2TDW+vDDL + Petw3vjE/CaENqX/8mIoGuNhfo1kHdHUT4Iw2V4p+5ncVBYVNlJoWukbrcMZzll9AHLU97ONU4N1 + rwcPVnEGSlbvBFpXe+76SDaMBA0/WFNMQfLm9M8XcTyaXvqd6aIvJPC2LqlU4OTrTbe4g3jxB3aL + eJ5FWQG3Uc047OJ5ki4LSO1LglYFILtcRQXcQAo1462mIHt40lFJDhR2aRYVnnu96W57dITmqVHt + 0ZNl7LFT5KFR/DV0lhTWDxb9SSg7T0DfDRaT6c0ERSUTrdJtSZW5SjI55q0TwquRfn64E4z/Tnlj + /taBcirtbAPGAa1qFTjhL9ECkRQqwTmttLHkTZoCnC2DZRbE0SpASQp5ibfbH3lY4rzEcLX9uQbV + No2Qmu6v7c9hg/OwFPu/OA/NfQr8DwAA//8DAE6PoIW1qwEA + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + cf-ray: [3becf40cfbca1a93-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Thu, 16 Nov 2017 19:45:54 GMT'] + expires: ['Mon, 26 Jul 1997 05:00:00 GMT'] + server: [cloudflare-nginx] + set-cookie: ['lastvisit=1510861533; expires=Thu, 30-Nov-2017 19:45:33 GMT; Max-Age=1209600; + path=/; domain=.tokyotosho.info', lastvisit_session=1510861533; path=/; + domain=.tokyotosho.info] + strict-transport-security: [max-age=86400] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/tokyotoshokan/tokyotoshokan_test.yaml b/tests/providers/torrent/tokyotoshokan/tokyotoshokan_test.yaml new file mode 100644 index 0000000000..55b313147b --- /dev/null +++ b/tests/providers/torrent/tokyotoshokan/tokyotoshokan_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 0 + pubdate: 2017-11-16 00:00:00 + title: mdb-802 + leechers: 0 + link: magnet:?xt=urn:btih:KWEBQHH34HMGMI5NN6C2VNEZ6EMF3MWC&tr=http + size: -1 + - seeders: 0 + pubdate: 2017-11-16 00:00:00 + title: '[3D, RPG] [Ashita ha docchida!] Quest & Quest 3D - Short Short Female Adventurer Sina Ver.1.01' + leechers: 0 + link: magnet:?xt=urn:btih:QK6T2JHPDK6H3O55M7LZKHEIL32RJ4GD&tr=http + size: -1 + - seeders: 0 + pubdate: 2017-11-16 00:00:00 + title: lzdm-006 + leechers: 0 + link: magnet:?xt=urn:btih:J3OKF55VUE4UYDIFXIHTOVOS3FKKFADZ&tr=http + size: -1 + +backlog: + search_strings: + Episode: ['Yu-Gi-Oh! VRAINS 27'] + results: + - seeders: 3 + pubdate: 2017-11-16 00:00:00 + title: Yu-Gi-Oh! VRAINS - 27 (1280x720 HEVC2 AAC).mkv + leechers: 3 + link: magnet:?xt=urn:btih:5OSHGHPWV5Q4NLO7SWWF3N4P3OJKIMLC&tr=http + size: -1 + - seeders: 95 + pubdate: 2017-11-16 00:00:00 + title: '[HorribleSubs] Yu-Gi-Oh! VRAINS - 27 [1080p].mkv' + leechers: 8 + link: magnet:?xt=urn:btih:GW4QGTAFSIQK2FM6QGNVT652YV3UP77L&tr=http + size: -1 From 8a7063f27cb44898f6e14612b9a7997022d298b6 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 16 Nov 2017 21:00:08 +0100 Subject: [PATCH 22/25] flake --- medusa/providers/torrent/html/newpct.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medusa/providers/torrent/html/newpct.py b/medusa/providers/torrent/html/newpct.py index b100640231..1986657030 100644 --- a/medusa/providers/torrent/html/newpct.py +++ b/medusa/providers/torrent/html/newpct.py @@ -6,8 +6,8 @@ import logging import re - from collections import OrderedDict + from medusa import tv from medusa.bs4_parser import BS4Parser from medusa.helper.common import convert_size, try_int From aa984919cd09d7c48b429b871b2d7ae29b01c188 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 17 Nov 2017 12:50:19 +0100 Subject: [PATCH 23/25] Fix torrent9 search and add tests --- medusa/providers/torrent/html/torrent9.py | 6 +- tests/providers/conftest.py | 4 +- .../torrent/torrent9/torrent9_backlog.yaml | 112 +++++++++++++ .../torrent/torrent9/torrent9_daily.yaml | 150 ++++++++++++++++++ .../torrent/torrent9/torrent9_test.yaml | 39 +++++ 5 files changed, 305 insertions(+), 6 deletions(-) create mode 100644 tests/providers/torrent/torrent9/torrent9_backlog.yaml create mode 100644 tests/providers/torrent/torrent9/torrent9_daily.yaml create mode 100644 tests/providers/torrent/torrent9/torrent9_test.yaml diff --git a/medusa/providers/torrent/html/torrent9.py b/medusa/providers/torrent/html/torrent9.py index 62b5d3607e..6314c733a4 100644 --- a/medusa/providers/torrent/html/torrent9.py +++ b/medusa/providers/torrent/html/torrent9.py @@ -5,7 +5,6 @@ from __future__ import unicode_literals import logging -import traceback from medusa import tv from medusa.bs4_parser import BS4Parser @@ -35,7 +34,7 @@ def __init__(self): # URLs self.url = 'http://www.torrents9.pe' self.urls = { - 'search': urljoin(self.url, '/search_torrent/{query}.html,trie-seeds-d'), + 'search': urljoin(self.url, '/search_torrent/{query}.html'), 'daily': urljoin(self.url, '/torrents_series.html,trie-date-d'), 'download': urljoin(self.url, '{link}.torrent'), } @@ -153,8 +152,7 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index b28d9ac67d..b1035a1e56 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -6,7 +6,7 @@ from collections import namedtuple from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, - thepiratebay, tokyotoshokan, torrentz2, zooqle) + thepiratebay, tokyotoshokan, torrent9, torrentz2, zooqle) import pytest @@ -17,7 +17,7 @@ PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, thepiratebay, tokyotoshokan, - torrentz2, zooqle) + torrent9, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/torrent9/torrent9_backlog.yaml b/tests/providers/torrent/torrent9/torrent9_backlog.yaml new file mode 100644 index 0000000000..115d405efd --- /dev/null +++ b/tests/providers/torrent/torrent9/torrent9_backlog.yaml @@ -0,0 +1,112 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d47f299e2936b076319ca2c735c8dc2d41510916082] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; b618ffb0-cb85-11e7-88d3-1c1b0d9d2a41)] + method: GET + uri: http://www.torrents9.pe/search_torrent/Les-Chroniques-de-Shannara-S01E06.html + response: + body: + string: !!binary | + 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 + headers: + cache-control: ['public, max-age=7200'] + cf-cache-status: [HIT] + cf-ray: [3bf2275af4fc1ac9-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Fri, 17 Nov 2017 10:54:44 GMT'] + expires: ['Fri, 17 Nov 2017 12:54:44 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + via: [1.1 varnish] + x-varnish: ['1418059275'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/torrent9/torrent9_daily.yaml b/tests/providers/torrent/torrent9/torrent9_daily.yaml new file mode 100644 index 0000000000..172ffd230d --- /dev/null +++ b/tests/providers/torrent/torrent9/torrent9_daily.yaml @@ -0,0 +1,150 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; b618ffb0-cb85-11e7-88d3-1c1b0d9d2a41)] + method: GET + uri: http://www.torrents9.pe/torrents_series.html,trie-date-d + response: + body: + string: !!binary | + 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 + headers: + age: ['223'] + cf-ray: [3bf2274961631ab1-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [text/html; charset=UTF-8] + date: ['Fri, 17 Nov 2017 10:54:42 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d47f299e2936b076319ca2c735c8dc2d41510916082; expires=Sat, + 17-Nov-18 10:54:42 GMT; path=/; domain=.torrents9.pe; HttpOnly'] + via: [1.1 varnish] + x-varnish: [1418069697 1418025918] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/torrent9/torrent9_test.yaml b/tests/providers/torrent/torrent9/torrent9_test.yaml new file mode 100644 index 0000000000..9163d325b8 --- /dev/null +++ b/tests/providers/torrent/torrent9/torrent9_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 9 + pubdate: + title: Marvel's The Punisher Saison 1 FRENCH BluRay 720p HDTV x264 + leechers: 0 + link: http://www.torrents9.pe/get_torrent/marvel-s-the-punisher-saison-1-french-bluray-720p-hdtv.torrent + size: 10737418240 + - seeders: 9 + pubdate: + title: Marvel's The Punisher Saison 1 VOSTFR BluRay 720p HDTV x264 + leechers: 2 + link: http://www.torrents9.pe/get_torrent/marvel-s-the-punisher-saison-1-vostfr-bluray-720p-hdtv.torrent + size: 10737418240 + - seeders: 7 + pubdate: + title: Peaky Blinders S04E01 VOSTFR HDTV x264 + leechers: 0 + link: http://www.torrents9.pe/get_torrent/peaky-blinders-s04e01-vostfr-hdtv.torrent + size: 551026688 + +backlog: + search_strings: + Episode: ['Les Chroniques de Shannara S01E06'] + results: + - seeders: 40 + pubdate: + title: Les Chroniques de Shannara S01E06 FRENCH HDTV x264 + leechers: 0 + link: http://www.torrents9.pe/get_torrent/les-chroniques-de-shannara-s01e06-french-hdtv.torrent + size: 331559731 + - seeders: 9 + pubdate: + title: Les Chroniques de Shannara S01E06 VOSTFR HDTV x264 + leechers: 2 + link: http://www.torrents9.pe/get_torrent/les-chroniques-de-shannara-s01e06-vostfr-hdtv.torrent + size: 341206630 From 29db9d05370252a5bd97f47b4f3f771cc21fa1c9 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 17 Nov 2017 17:24:22 +0100 Subject: [PATCH 24/25] Added rarbg tests --- medusa/providers/torrent/json/rarbg.py | 16 +- tests/providers/conftest.py | 6 +- .../torrent/rarbg/rarbg_backlog.yaml | 43 ++++ .../providers/torrent/rarbg/rarbg_daily.yaml | 224 ++++++++++++++++++ tests/providers/torrent/rarbg/rarbg_test.yaml | 39 +++ 5 files changed, 316 insertions(+), 12 deletions(-) create mode 100644 tests/providers/torrent/rarbg/rarbg_backlog.yaml create mode 100644 tests/providers/torrent/rarbg/rarbg_daily.yaml create mode 100644 tests/providers/torrent/rarbg/rarbg_test.yaml diff --git a/medusa/providers/torrent/json/rarbg.py b/medusa/providers/torrent/json/rarbg.py index ce0bca5371..00a8479bbf 100644 --- a/medusa/providers/torrent/json/rarbg.py +++ b/medusa/providers/torrent/json/rarbg.py @@ -7,7 +7,6 @@ import datetime import logging import time -import traceback from medusa import ( app, @@ -51,7 +50,7 @@ def __init__(self): self.minleech = None # Cache - self.cache = tv.Cache(self, min_time=10) # only poll RARBG every 10 minutes max + self.cache = tv.Cache(self, min_time=15) def search(self, search_strings, age=0, ep_obj=None): """ @@ -134,6 +133,7 @@ def search(self, search_strings, age=0, ep_obj=None): log_level = logging.WARNING else: log_level = logging.DEBUG + log.log(log_level, '{msg} Code: {code}', {'msg': error, 'code': error_code}) continue @@ -153,7 +153,6 @@ def parse(self, data, mode): items = [] torrent_rows = data.get('torrent_results', {}) - if not torrent_rows: log.debug('Data returned from provider does not contain any torrents') return items @@ -165,8 +164,8 @@ def parse(self, data, mode): if not all([title, download_url]): continue - seeders = row.pop('seeders') - leechers = row.pop('leechers') + seeders = row.pop('seeders', 0) + leechers = row.pop('leechers', 0) # Filter unseeded torrent if seeders < min(self.minseed, 1): @@ -176,8 +175,8 @@ def parse(self, data, mode): title, seeders) continue - torrent_size = row.pop('size', -1) - size = convert_size(torrent_size) or -1 + torrent_size = row.pop('size', None) + size = convert_size(torrent_size, default=-1) pubdate_raw = row.pop('pubdate', None) pubdate = self.parse_pubdate(pubdate_raw) @@ -196,8 +195,7 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index b1035a1e56..ff5b4cba3e 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,7 +5,7 @@ import os from collections import namedtuple -from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, +from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, rarbg, shanaproject, thepiratebay, tokyotoshokan, torrent9, torrentz2, zooqle) import pytest @@ -16,8 +16,8 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, shanaproject, thepiratebay, tokyotoshokan, - torrent9, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, rarbg, shanaproject, thepiratebay, + tokyotoshokan, torrent9, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/rarbg/rarbg_backlog.yaml b/tests/providers/torrent/rarbg/rarbg_backlog.yaml new file mode 100644 index 0000000000..a2e4539843 --- /dev/null +++ b/tests/providers/torrent/rarbg/rarbg_backlog.yaml @@ -0,0 +1,43 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d0ef242b77da9a14958ee9374ebe44de01510935073] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; ee483911-cbb1-11e7-90fd-1c1b0d9d2a41)] + method: GET + uri: http://torrentapi.org/pubapi_v2.php?ranked=0&sort=seeders&search_string=Lethal+Weapon+S02E05&format=json_extended&app_id=medusa&mode=search&min_leechers=0&limit=100&token=l2esh1av76&min_seeders=0&category=tv + response: + body: + string: !!binary | + H4sIAAAAAAAAA+2Xa0/jRhSG/wqyBF/KmjNn7pbQCgTtVqWrikW7UpeVNTcTi8SOnAlLi/jvnYRL + QhdzUekHUCzHI8/12POc128usth2XWhi2YXJdBgnWfH1Iot1HIasyA5CHJhh/iWYcdvknwD3gecf + 9o4+5+co2Lvffj042D/89LUzXTz7lm1mzsRw0nZ/paFHn9f2x/Wk9WGSGnz7vRm2xqeGkTlpQize + n8ftadcUNtaDAipGmNfGGsUqFxQE4zxY7QwFaRzVQTLlLN3wzfbTYlrnu/Oo1vneRuy2BzGO1+nO + Ov6cztgZdxq6/Lqs6vPctaPUrCC1mqZpp40Ls2FTvxil8zShPclHIVWhJNDXIbY9HdpxaHIfRm1T + 19crEkrl0prpTU1C8KFL24AENrNhCG4wvyUitdV/p12hhIDkhJLNbDy1Pr3y9FYRiHxHyDtQa4AF + qILLtZ8gHWnKcLUPZd1UbVZcZPXI2zQkRk4EI1qkLvGsMydpnmY6HM7u5h3SQlLPJoiDFPRZHea1 + QhIyG2Lq7t9ry/lizXSUKvn8Wcykba7ucTbPAqu1Oq4d1j5kl5tZZ5rTkNBIDzQLsRzPQ8lmezYp + jreOt64RNeM6b7uT460u+LoLLpaxnT9UPh6M38f2NDTbQwyTATFnUmyMt0nJSihVKdOVl+WCsrTq + I5BLhPHTSf+w9wzYpVNQSbQaAqWAnnMmhFdeU+OVBBOEQ5TM9MJ+f2yvn3jC6P3EE2TIJEdCH0Be + pAEr5JeRp2W5YO1x5AmoxNWX/d0rrI52XwZ3ZXlFpPLSWKSWSGmQqcpZqJAFRAaEh0qC6sX9x7je + AOqIy6gvSBeIAoQC3kc6KTgrcCXut6SLUqdrucDscdKfwvgzzIvQRAUvCEdVeWs89UC1kELTShkk + FrXFtLG9gL8xtIHcizYVAohG0WtbEtlQIFuRvUz2zLbc8vVE2/LiEk5kYMxqDiSVjloRdLCEsSoJ + Oa+MslZwpW142LG8Lcx1j4CnrxVRQjL9AOakQLXCfBlzUZYLyJ4k4If1+Iqmw53D3V/+g3xLSLLk + lNSGMVA+HcyjCswohxyNIdYLjVW/Hf8hmFdKtNR33De/FW7N2Cy/+8w3EUm1C1gJ9zXRusRUkmS+ + b8l6nOhUmdcxn4V4bXh3fv/z4w1be3t/JB98hdjHI/sioq6DNEZX4EAa4qoqBGoIw3SCYg6N06EK + 4EQv988K+fULvrjz51TdZAcKqbWSXLP+9ABesJXgL6UHTWW5APB56TE3E/93dlSEW6BKWUVBEMuN + APCaO2CKmIpSA8Y6XvVbnudE/PqTA8Wdb8etG+IUkFFE6EkOxAIw+f5VctwkB53/ygV/2eW3y38A + tjF9M6YXAAA= + headers: + cf-ray: [3bf3f738b7601a93-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [application/json] + date: ['Fri, 17 Nov 2017 16:11:25 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/rarbg/rarbg_daily.yaml b/tests/providers/torrent/rarbg/rarbg_daily.yaml new file mode 100644 index 0000000000..5b874f3b9b --- /dev/null +++ b/tests/providers/torrent/rarbg/rarbg_daily.yaml @@ -0,0 +1,224 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; ee483911-cbb1-11e7-90fd-1c1b0d9d2a41)] + method: GET + uri: http://torrentapi.org/pubapi_v2.php?format=json&get_token=get_token&app_id=medusa + response: + body: + string: !!binary | + H4sIAAAAAAAAA6tWKsnPTs1TslLKMUotzjBMLDM3U6oFAE7gksgWAAAA + headers: + cf-ray: [3bf3f6f072331adb-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [application/json] + date: ['Fri, 17 Nov 2017 16:11:13 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d0ef242b77da9a14958ee9374ebe44de01510935073; expires=Sat, + 17-Nov-18 16:11:13 GMT; path=/; domain=.torrentapi.org; HttpOnly'] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d0ef242b77da9a14958ee9374ebe44de01510935073] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; ee483911-cbb1-11e7-90fd-1c1b0d9d2a41)] + method: GET + uri: http://torrentapi.org/pubapi_v2.php?ranked=0&sort=last&search_string=&format=json_extended&app_id=medusa&mode=list&min_leechers=0&limit=100&token=l2esh1av76&min_seeders=0&category=tv + response: + body: + string: !!binary | + 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 + AA== + headers: + cf-ray: [3bf3f710112b1adb-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [application/json] + date: ['Fri, 17 Nov 2017 16:11:18 GMT'] + server: [cloudflare-nginx] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/rarbg/rarbg_test.yaml b/tests/providers/torrent/rarbg/rarbg_test.yaml new file mode 100644 index 0000000000..f71248cf70 --- /dev/null +++ b/tests/providers/torrent/rarbg/rarbg_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 5 + pubdate: 2017-11-17 00:00:00 + title: Ghost.Wars.S01E07.Whistle.Past.the.Graveyard.1080p.AMZN.WEBRip.DDP5.1.x264-NTb[rartv] + leechers: 11 + link: magnet:?xt=urn:btih:6dc059d532bf54ce5d4ac61aef31f2d601f5d328 + size: 1506137088 + - seeders: 3 + pubdate: 2017-11-17 00:00:00 + title: S.W.A.T.2017.S01E03.Pamilya.1080p.AMZN.WEBRip.DDP5.1.x264-NTb[rartv] + leechers: 12 + link: magnet:?xt=urn:btih:72736a12e182980ec2e4c8b4902874793ff0a71a + size: 2459813388 + - seeders: 10 + pubdate: 2017-11-17 00:00:00 + title: Pickle.and.Peanut.S02E31E32.Gregazoids-Meat.Ballers.720p.DSNY.WEBRip.AAC2.0.x264-TVSmash[rartv] + leechers: 11 + link: magnet:?xt=urn:btih:0e4241041713a8b058f4733fb7dd946c76f8b001 + size: 566841009 + +backlog: + search_strings: + Episode: ['Lethal Weapon S02E05'] + results: + - seeders: 210 + pubdate: 2017-11-08 00:00:00 + title: Lethal.Weapon.S02E05.HDTV.x264-KILLERS[rartv] + leechers: 16 + link: magnet:?xt=urn:btih:0f414d9aba84fce80eacd0b9ca307ac39e748cb3 + size: 311075131 + - seeders: 143 + pubdate: 2017-11-08 00:00:00 + title: Lethal.Weapon.S02E05.720p.HDTV.x264-KILLERS[rartv] + leechers: 16 + link: magnet:?xt=urn:btih:7c80f72b90e3302d55466d8d93ad870ae6c2274a + size: 1242475213 From 5f3b8636362281d10cf1e9e7507096c9263199f9 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 17 Nov 2017 17:41:14 +0100 Subject: [PATCH 25/25] Added nyaa tests --- medusa/providers/torrent/rss/nyaa.py | 6 +- tests/providers/conftest.py | 8 +- .../providers/torrent/nyaa/nyaa_backlog.yaml | 109 ++++++++++ tests/providers/torrent/nyaa/nyaa_daily.yaml | 203 ++++++++++++++++++ tests/providers/torrent/nyaa/nyaa_test.yaml | 39 ++++ 5 files changed, 357 insertions(+), 8 deletions(-) create mode 100644 tests/providers/torrent/nyaa/nyaa_backlog.yaml create mode 100644 tests/providers/torrent/nyaa/nyaa_daily.yaml create mode 100644 tests/providers/torrent/nyaa/nyaa_test.yaml diff --git a/medusa/providers/torrent/rss/nyaa.py b/medusa/providers/torrent/rss/nyaa.py index bcd87c5e38..b27ac749e3 100644 --- a/medusa/providers/torrent/rss/nyaa.py +++ b/medusa/providers/torrent/rss/nyaa.py @@ -5,7 +5,6 @@ from __future__ import unicode_literals import logging -import traceback from medusa import tv from medusa.helper.common import convert_size, try_int @@ -120,7 +119,7 @@ def parse(self, data, mode): " minimum seeders: {0}. Seeders: {1}", title, seeders) continue - size = convert_size(item['nyaa_size'], units=units) or -1 + size = convert_size(item['nyaa_size'], default=-1, units=units) pubdate = self.parse_pubdate(item['published']) @@ -138,8 +137,7 @@ def parse(self, data, mode): items.append(item) except (AttributeError, TypeError, KeyError, ValueError, IndexError): - log.error('Failed parsing provider. Traceback: {0!r}', - traceback.format_exc()) + log.exception('Failed parsing provider.') return items diff --git a/tests/providers/conftest.py b/tests/providers/conftest.py index ff5b4cba3e..4179a06ba3 100644 --- a/tests/providers/conftest.py +++ b/tests/providers/conftest.py @@ -5,8 +5,8 @@ import os from collections import namedtuple -from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, rarbg, shanaproject, - thepiratebay, tokyotoshokan, torrent9, torrentz2, zooqle) +from medusa.providers.torrent import (anidex, elitetorrent, horriblesubs, limetorrents, newpct, nyaa, rarbg, + shanaproject, thepiratebay, tokyotoshokan, torrent9, torrentz2, zooqle) import pytest @@ -16,8 +16,8 @@ __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, rarbg, shanaproject, thepiratebay, - tokyotoshokan, torrent9, torrentz2, zooqle) +PROVIDERS = (anidex, elitetorrent, horriblesubs, limetorrents, newpct, nyaa, rarbg, + shanaproject, thepiratebay, tokyotoshokan, torrent9, torrentz2, zooqle) @pytest.fixture(scope='session') diff --git a/tests/providers/torrent/nyaa/nyaa_backlog.yaml b/tests/providers/torrent/nyaa/nyaa_backlog.yaml new file mode 100644 index 0000000000..ea4dcba01c --- /dev/null +++ b/tests/providers/torrent/nyaa/nyaa_backlog.yaml @@ -0,0 +1,109 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + Cookie: [__cfduid=d31b020b259be3370f989f1bead8ae0851510936371] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; f4209fa1-cbb4-11e7-a59c-1c1b0d9d2a41)] + method: GET + uri: https://nyaa.si/?c=1_0&q=Dragon+Ball+Super+115&page=rss&f=0 + response: + body: + string: !!binary | + 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 + headers: + cache-control: [max-age=300] + cf-ray: [3bf416b429e01ae1-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [application/xml] + date: ['Fri, 17 Nov 2017 16:32:54 GMT'] + server: [cloudflare-nginx] + x-proxy-cache: [MISS] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/nyaa/nyaa_daily.yaml b/tests/providers/torrent/nyaa/nyaa_daily.yaml new file mode 100644 index 0000000000..f10a1279b8 --- /dev/null +++ b/tests/providers/torrent/nyaa/nyaa_daily.yaml @@ -0,0 +1,203 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: [!!python/unicode 'gzip,deflate'] + Connection: [keep-alive] + User-Agent: [!!python/unicode Medusa/0.0.1 (Windows; 10; f4209fa1-cbb4-11e7-a59c-1c1b0d9d2a41)] + method: GET + uri: https://nyaa.si/?c=1_0&q=&page=rss&f=0 + response: + body: + string: !!binary | + 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 + AAA= + headers: + cache-control: [max-age=300] + cf-ray: [3bf416a428f91a81-DUS] + connection: [keep-alive] + content-encoding: [gzip] + content-type: [application/xml] + date: ['Fri, 17 Nov 2017 16:32:52 GMT'] + server: [cloudflare-nginx] + set-cookie: ['__cfduid=d31b020b259be3370f989f1bead8ae0851510936371; expires=Sat, + 17-Nov-18 16:32:51 GMT; path=/; domain=.nyaa.si; HttpOnly'] + x-proxy-cache: [MISS] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/torrent/nyaa/nyaa_test.yaml b/tests/providers/torrent/nyaa/nyaa_test.yaml new file mode 100644 index 0000000000..fcdb541690 --- /dev/null +++ b/tests/providers/torrent/nyaa/nyaa_test.yaml @@ -0,0 +1,39 @@ +daily: + search_strings: + RSS: [''] + results: + - seeders: 0 + pubdate: 2017-11-17 00:00:00 + title: '[Sick-Fansubs] Boruto - Naruto Next Generations 33 [720p][EA92D113].mp4' + leechers: 4 + link: https://nyaa.si/download/979570.torrent + size: 364275302 + - seeders: 10 + pubdate: 2017-11-17 00:00:00 + title: '[PuyaSubs!] Net-Juu no Susume - 07 [720p][073ED4B2].mkv' + leechers: 25 + link: https://nyaa.si/download/979569.torrent + size: 337536614 + - seeders: 8 + pubdate: 2017-11-17 00:00:00 + title: '[PuyaSubs!] Net-Juu no Susume - 07 [1080p][CB41FA09].mkv' + leechers: 17 + link: https://nyaa.si/download/979568.torrent + size: 567594188 + +backlog: + search_strings: + Episode: ['Dragon Ball Super 115'] + results: + - seeders: 18 + pubdate: 2017-11-14 00:00:00 + title: '[SOFCJ-Raws] Dragon Ball Super - 115 (THK 1280x720 x264 AAC).mp4' + leechers: 5 + link: https://nyaa.si/download/978757.torrent + size: 678323814 + - seeders: 27 + pubdate: 2017-11-14 00:00:00 + title: '[SOFCJ-Raws] Dragon Ball Super - 115 (CX 1280x720 x264 AAC).mp4' + leechers: 8 + link: https://nyaa.si/download/978756.torrent + size: 620442419