astrotrain 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. data/.gitignore +26 -0
  2. data/LICENSE +20 -0
  3. data/README +47 -0
  4. data/Rakefile +122 -0
  5. data/VERSION +1 -0
  6. data/astrotrain.gemspec +129 -0
  7. data/config/sample.rb +12 -0
  8. data/lib/astrotrain.rb +53 -0
  9. data/lib/astrotrain/api.rb +52 -0
  10. data/lib/astrotrain/logged_mail.rb +46 -0
  11. data/lib/astrotrain/mapping.rb +157 -0
  12. data/lib/astrotrain/mapping/http_post.rb +18 -0
  13. data/lib/astrotrain/mapping/jabber.rb +28 -0
  14. data/lib/astrotrain/mapping/transport.rb +55 -0
  15. data/lib/astrotrain/message.rb +330 -0
  16. data/lib/astrotrain/tmail.rb +58 -0
  17. data/lib/astrotrain/worker.rb +65 -0
  18. data/lib/vendor/rest-client/README.rdoc +104 -0
  19. data/lib/vendor/rest-client/Rakefile +84 -0
  20. data/lib/vendor/rest-client/bin/restclient +65 -0
  21. data/lib/vendor/rest-client/foo.diff +66 -0
  22. data/lib/vendor/rest-client/lib/rest_client.rb +188 -0
  23. data/lib/vendor/rest-client/lib/rest_client/net_http_ext.rb +23 -0
  24. data/lib/vendor/rest-client/lib/rest_client/payload.rb +185 -0
  25. data/lib/vendor/rest-client/lib/rest_client/request_errors.rb +75 -0
  26. data/lib/vendor/rest-client/lib/rest_client/resource.rb +103 -0
  27. data/lib/vendor/rest-client/rest-client.gemspec +18 -0
  28. data/lib/vendor/rest-client/spec/base.rb +5 -0
  29. data/lib/vendor/rest-client/spec/master_shake.jpg +0 -0
  30. data/lib/vendor/rest-client/spec/payload_spec.rb +71 -0
  31. data/lib/vendor/rest-client/spec/request_errors_spec.rb +44 -0
  32. data/lib/vendor/rest-client/spec/resource_spec.rb +52 -0
  33. data/lib/vendor/rest-client/spec/rest_client_spec.rb +219 -0
  34. data/test/api_test.rb +28 -0
  35. data/test/fixtures/apple_multipart.txt +100 -0
  36. data/test/fixtures/bad_content_type.txt +27 -0
  37. data/test/fixtures/basic.txt +14 -0
  38. data/test/fixtures/custom.txt +15 -0
  39. data/test/fixtures/fwd.txt +0 -0
  40. data/test/fixtures/gb2312_encoding.txt +16 -0
  41. data/test/fixtures/gb2312_encoding_invalid.txt +15 -0
  42. data/test/fixtures/html.txt +16 -0
  43. data/test/fixtures/iso-8859-1.txt +13 -0
  44. data/test/fixtures/mapped.txt +13 -0
  45. data/test/fixtures/multipart.txt +213 -0
  46. data/test/fixtures/multipart2.txt +213 -0
  47. data/test/fixtures/multiple.txt +13 -0
  48. data/test/fixtures/multiple_delivered_to.txt +14 -0
  49. data/test/fixtures/multiple_with_body_recipients.txt +15 -0
  50. data/test/fixtures/reply.txt +16 -0
  51. data/test/fixtures/utf-8.txt +13 -0
  52. data/test/logged_mail_test.rb +67 -0
  53. data/test/mapping_test.rb +129 -0
  54. data/test/message_test.rb +440 -0
  55. data/test/test_helper.rb +57 -0
  56. data/test/transport_test.rb +111 -0
  57. metadata +225 -0
@@ -0,0 +1,28 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ class Astrotrain::ApiTest < Astrotrain::ApiTestCase
4
+ before :all do
5
+ @filename1 = Astrotrain::Message.queue("boo!")
6
+ @filename2 = Astrotrain::Message.queue("foo!")
7
+ end
8
+
9
+ it "counts queue" do
10
+ assert_equal '2', get("/queue_size").body
11
+ end
12
+
13
+ it "lists queue files" do
14
+ files = get("/queue").body.split("\n")
15
+ assert_equal 2, files.size
16
+ assert files.include?(File.basename(@filename1))
17
+ assert files.include?(File.basename(@filename2))
18
+ end
19
+
20
+ it "reads queue file" do
21
+ assert_equal 'boo!', get("/queue/#{File.basename(@filename1)}").body
22
+ end
23
+
24
+ it "does not read missing file" do
25
+ assert_equal "\"etc/passwd\" was not found.", get("/queue//etc/passwd").body
26
+ end
27
+ end
28
+
@@ -0,0 +1,100 @@
1
+ Message-Id: <4520EF24-6DA2-4011-8DF7-E7ACB4115848@entp.com>
2
+ From: bar@example.com
3
+ To: foo@example.com
4
+ In-Reply-To: <49920fc1c2ba0_91815ba96b4a6fc12194d@xc88-s00059.tmail>
5
+ Content-Type: multipart/mixed;
6
+ boundary=Apple-Mail-7-451386929
7
+ X-Smtp-Server: smtp.att.yahoo.com:foo@bar.net
8
+ Mime-Version: 1.0 (Apple Message framework v930.3)
9
+ Subject: Re: Email attachments and file upload [Suggestions]
10
+ Date: Tue, 10 Feb 2009 15:39:00 -0800
11
+ References: <49920fc1c2ba0_91815ba96b4a6fc12194d@xc88-s00059.tmail>
12
+
13
+
14
+ --Apple-Mail-7-451386929
15
+ Content-Type: text/plain;
16
+ charset=US-ASCII;
17
+ format=flowed
18
+ Content-Transfer-Encoding: 7bit
19
+
20
+ Let's have a test here:
21
+
22
+
23
+ --Apple-Mail-7-451386929
24
+ Content-Disposition: inline;
25
+ filename=logo.gif
26
+ Content-Type: image/gif;
27
+ x-mac-creator=3842494D;
28
+ x-unix-mode=0644;
29
+ x-mac-type=47494666;
30
+ name="logo.gif"
31
+ Content-Transfer-Encoding: base64
32
+
33
+ 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
73
+ QwgCADs=
74
+
75
+ --Apple-Mail-7-451386929
76
+ Content-Type: text/plain;
77
+ charset=US-ASCII;
78
+ format=flowed;
79
+ delsp=yes
80
+ Content-Transfer-Encoding: 7bit
81
+
82
+ Yum
83
+
84
+
85
+ On Feb 10, 2009, at 3:37 PM, Tender Support wrote:
86
+
87
+ > // Add your reply above here
88
+ > ==================================================
89
+ > From: Tyler Durden
90
+ > Subject: Email attachments and file upload
91
+ >
92
+ > not at the moment ... let me test
93
+ >
94
+ > View this Discussion online: http://foobar.com
95
+ > .
96
+
97
+
98
+
99
+
100
+ --Apple-Mail-7-451386929--
@@ -0,0 +1,27 @@
1
+ Delivered-To: "Processor" <processor@astrotrain.com>
2
+ Message-ID: <a16be7390810161014n52b603e9k1aa6bb803c6735aa@mail.gmail.com>
3
+ Date: Thu, 16 Oct 2008 10:14:18 -0700
4
+ From: Bob <user@example.com>
5
+ To: Processor <processor@astrotrain.com>
6
+ Subject: Fwd: blah blah
7
+ MIME-Version: 1.0
8
+ X-Custom: reply
9
+ Content-Type: multipart/mixed; boundary="====boundary===="
10
+ Content-Transfer-Encoding: 7bit
11
+ Content-Disposition: inline
12
+
13
+ --====boundary====
14
+ Content-Type: text/plain; charset="us-ascii"
15
+
16
+ This message is being generated automatically to notify you
17
+ that PowerMTA has crashed on mtasv.net.
18
+
19
+ As the information below is likely to be essential for debugging
20
+ the problem, please forward this message to <support@port25.com>.
21
+ Thank you.
22
+
23
+ --====boundary====
24
+ Content-Type: text/plain; charset="us-ascii"
25
+
26
+ Yo
27
+ --====boundary====--
@@ -0,0 +1,14 @@
1
+ Delivered-To: "Processor" <processor@astrotrain.com>
2
+ Message-ID: <a16be7390810161014n52b603e9k1aa6bb803c6735aa@mail.gmail.com>
3
+ Date: Thu, 16 Oct 2008 10:14:18 -0700
4
+ From: Bob <user@example.com>
5
+ To: Processor <processor@astrotrain.com>
6
+ Subject: Fwd: blah blah
7
+ MIME-Version: 1.0
8
+ X-Custom: reply
9
+ Content-Type: text/plain; charset=ISO-8859-1
10
+ Content-Transfer-Encoding: 7bit
11
+ Content-Disposition: inline
12
+
13
+ ---------- Forwarded message ----------
14
+ blah blah
@@ -0,0 +1,15 @@
1
+ X-Original-To: processor-reply-57@custom.com
2
+ Delivered-To: processor-delivered@astrotrain.com
3
+ Message-ID: <a16be7390810161014n52b603e9k1aa6bb803c6735aa@mail.gmail.com>
4
+ Date: Thu, 16 Oct 2008 10:14:18 -0700
5
+ Reply-To: reply-to-me@example.com
6
+ From: user@example.com, boss@example.com
7
+ To: processor@astrotrain.com
8
+ Subject: Fwd: blah blah
9
+ MIME-Version: 1.0
10
+ Content-Type: text/plain; charset=ISO-8859-1
11
+ Content-Transfer-Encoding: 7bit
12
+ Content-Disposition: inline
13
+
14
+ ---------- Forwarded message ----------
15
+ blah blah
File without changes
@@ -0,0 +1,16 @@
1
+ Sender: sender@example.com
2
+ Message-ID: <20090702215301207766@188.com>
3
+ From: "2009-07-02 21:53:01" <sender@example.com>
4
+ To: <info@example.com>
5
+ Subject: spam
6
+ Date: Thu, 2 Jul 2009 21:52:54 +0800
7
+ MIME-Version: 1.0
8
+ charset="gb2312"
9
+ Content-Type: text/plain; charset="gb2312"
10
+ Content-Transfer-Encoding: base64
11
+
12
+ RGVhciBTaXJzLCANCldlIGFyZSBnaXZlbiB0byB1bmRlcnN0YW5kIHRoYXQg
13
+ eW91IGFyZSAgTWFudWZhY3R1cmVyIG9mICBwbHN0aWMgIEJvdHRsZXMNCkFk
14
+ ZKO6IGJsYWggQ2hpbmE=
15
+
16
+
@@ -0,0 +1,15 @@
1
+ Sender: sender@example.com
2
+ Message-ID: <20090702215301207766@188.com>
3
+ From: "2009-07-02 21:53:01" <sender@example.com>
4
+ To: <info@example.com>
5
+ Subject: spam
6
+ Date: Thu, 2 Jul 2009 21:52:54 +0800
7
+ MIME-Version: 1.0
8
+ charset="gb2312"
9
+ Content-Transfer-Encoding: base64
10
+
11
+ RGVhciBTaXJzLCANCldlIGFyZSBnaXZlbiB0byB1bmRlcnN0YW5kIHRoYXQg
12
+ eW91IGFyZSAgTWFudWZhY3R1cmVyIG9mICBwbHN0aWMgIEJvdHRsZXMNCkFk
13
+ ZKO6IGJsYWggQ2hpbmE=
14
+
15
+
@@ -0,0 +1,16 @@
1
+ Delivered-To:
2
+ From: abc@astrotrain.com
3
+ To: xyz@astrotrain.com
4
+ Message-ID: <11644553.1741252281981737.JavaMail.root@astrotrain>
5
+ Subject: ABC DEF
6
+ MIME-Version: 1.0
7
+ Content-Type: multipart/mixed;
8
+ boundary="----=_Part_1695_189596019.1252281981305"
9
+ X-Mailer: Railo Mail
10
+
11
+ ------=_Part_1695_189596019.1252281981305
12
+ Content-Type: text/html; charset=UTF-8
13
+ Content-Transfer-Encoding: quoted-printable
14
+
15
+ <p>ABC</p>
16
+ ------=_Part_1695_189596019.1252281981305--
@@ -0,0 +1,13 @@
1
+ Delivered-To: "Processor" <processor@astrotrain.com>
2
+ Message-ID: <a16be7390810161014n52b603e9k1aa6bb803c6735aa@mail.gmail.com>
3
+ Date: Thu, 16 Oct 2008 10:14:18 -0700
4
+ From: =?ISO-8859-1?Q?Matth=E9w?= <user@example.com>
5
+ To: Processor <processor@astrotrain.com>
6
+ Subject: Fwd: blah blah
7
+ MIME-Version: 1.0
8
+ Content-Type: text/plain; charset=ISO-8859-1
9
+ Content-Transfer-Encoding: 7bit
10
+ Content-Disposition: inline
11
+
12
+ ---------- Forwarded message ----------
13
+ blah blah
@@ -0,0 +1,13 @@
1
+ Delivered-To: xyz@astrotrain.com
2
+ Message-ID: <a16be7390810161014n52b603e9k1aa6bb803c6735aa@mail.gmail.com>
3
+ Date: Thu, 16 Oct 2008 10:14:18 -0700
4
+ From: user@example.com
5
+ To: processor@astrotrain.com
6
+ Subject: Fwd: blah blah
7
+ MIME-Version: 1.0
8
+ Content-Type: text/plain; charset=ISO-8859-1
9
+ Content-Transfer-Encoding: 7bit
10
+ Content-Disposition: inline
11
+
12
+ ---------- Forwarded message ----------
13
+ blah blah
@@ -0,0 +1,213 @@
1
+ Delivered-To: foo@example.com
2
+ Received: by ewy14 with SMTP id 14so339326ewy.0
3
+ for <foo@example.com>; Tue, 09 Dec 2008 15:03:18 -0800 (PST)
4
+ Message-ID: <ddf0a08f0812091503x4696425eid0fa5910ad39bce1@mail.examle.com>
5
+ Date: Tue, 9 Dec 2008 15:03:18 -0800
6
+ From: "Rick Olson" <rick@example.com>
7
+ To: foo@example.com
8
+ Subject: testing
9
+ MIME-Version: 1.0
10
+ Content-Type: multipart/mixed;
11
+ boundary="----=_Part_98510_7267541.1228863798546"
12
+
13
+ ------=_Part_98510_7267541.1228863798546
14
+ Content-Type: multipart/alternative;
15
+ boundary="----=_Part_98511_30821043.1228863798546"
16
+
17
+ ------=_Part_98511_30821043.1228863798546
18
+ Content-Type: text/plain; charset=ISO-8859-1
19
+ Content-Transfer-Encoding: 7bit
20
+ Content-Disposition: inline
21
+
22
+ Testing out rich emails with attachments!
23
+ This one has a name property on Content-Type.
24
+ [state:hold responsible:rick]
25
+
26
+ ------=_Part_98511_30821043.1228863798546
27
+ Content-Type: text/html; charset=ISO-8859-1
28
+ Content-Transfer-Encoding: 7bit
29
+ Content-Disposition: inline
30
+
31
+ Testing out <span class="Apple-style-span" style="font-weight: bold;">rich</span> emails with attachments!<div><br></div><div>[state:hold responsible:rick]</div>
32
+
33
+ ------=_Part_98511_30821043.1228863798546--
34
+
35
+ ------=_Part_98510_7267541.1228863798546
36
+ Content-Type: image/jpeg; name=bandit.jpg
37
+ Content-Transfer-Encoding: base64
38
+ X-Attachment-Id: f_foj5r58f0
39
+ Content-Disposition: attachment; filename=bandit.jpg
40
+
41
+ /9j/4AAQSkZJRgABAQAAAQABAAD/4hEsSUNDX1BST0ZJTEUAAQEAABEcYXBwbAIAAABtbnRyUkdC
42
+ IFhZWiAH2AAKAB4ADgAsABlhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAA
43
+ AADTLWFwcGzyFHiLXl6eOdbNyU72rSSJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5y
44
+ WFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAABfAAA
45
+ ACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAABhJuZGluAAAH
46
+ 7AAABj5kZXNjAAAOLAAAAGRkc2NtAAAOkAAAAj5tbW9kAAAQ0AAAAChjcHJ0AAAQ+AAAACRYWVog
47
+ AAAAAAAAX3kAADZCAAAG6VhZWiAAAAAAAABvXQAAswsAABt5WFlaIAAAAAAAACgAAAAWzQAAsMNY
48
+ WVogAAAAAAAA81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAA
49
+ A9wAAMBsY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNn
50
+ dAAAAAAAAAAAAAMBAAACAAAAEQA6AHkAygEfAWsBwwInApgDFgOpBEkE+AW7BokHZwhTCUoKVAtu
51
+ DJANtQ7ZEAQRNBJnE6EU3RYfF2wYuRoLG2EcwB4dH38g5iJFI7wlOSayKC8ppysgLJQuBy92MOMy
52
+ TTOwNQ42aTe+ORI6YjutPPU+OT+JQNxCLEN1RL1F/0dASHpJtUroTBVNQU5oT4pQqlHHUuJT/VUV
53
+ Vi1XQ1haWXFagluXXKlduV7JX9dg5GHzYv5kCGUTZiBnKmg2aT5qRWsybBRs823VbrpvoHCGcXBy
54
+ XnNPdD91MnYndx54FXkOegl7BHv+fPR94X7Nf7qApYGPgneDYIRLhTOGG4cDh+uI1Im8iqWLjox2
55
+ jV+OVY92kOKSTZOwlRCWbJe7mP2aOpttnJidtZ7Jn9ig3aHgotyj06TKpcOm1KfsqQaqH6s3rE2t
56
+ Ya5wr3+wjrGXsp+zpbSrtay2r7exuKy5rLqlu4u8a71Mvi6/D7/twMzBr8KRw3PEWMU/xifHEsgA
57
+ yPDJ4crVy8nMss2KzmDPNNAG0NjRpdJw0zvUB9TU1Z/WbNc62ArY3tmy2ojbYdwi3MTdSt3L3lHe
58
+ 2d9p3/rgkuEt4cribeMT47zkZuUT5cDmbOcY58Xoa+kM6aLqNurI61vr7uyK7Svt1e6P71jwNfEv
59
+ 8k7zmfUY9vb5if0Q//8AAAALACYAUACGAMgBFAFlAcACKQKkAy8DzQR7BTkGBAbiB88IxQnICtcL
60
+ 6gz9DhUPMRBQEXISnRPLFPsWNxd0GLIZ+RtHHJId4x82IIkh6SNVJLwmJieMKPIqVSu1LRYuby/I
61
+ MRwyazO1NPo2Pzd+OLo58TspPGs9sD7wQC5BZ0KcQ85E/0YtR1JIdEmTSq9LxUzZTetO+1ALURhS
62
+ JFMuVDdVQVZIV1JYWFldWmVbaVxsXXRedl93YHxhgmKDY4hkiGWIZnNnU2gwaQ9p8mrWa7tso22O
63
+ bnxvaXBZcUtyP3MzdCp1InYadxF4BXj0eeJ60Xu+fKp9lH5+f2yAVoE+giaDD4P5hOGFyYayh5qI
64
+ golxioiL4I00joCPzJESkk+ThJS1lduW+5gTmSSaMJs3nDqdOZ41nzCgNaFOonSjn6TEpeynEKgx
65
+ qU2qaauFrJutsK7Br9Kw4bHwsv20B7UStiG3NrhMuWO6e7uRvKO9tb7Kv9rA5sH0wv3EBcUKxg/H
66
+ EsgTyRHKDcsBy+rMz82xzpHPbtBH0R/R9dLJ06DUdNVJ1iDW99fV2LDZj9pw20/cJtz53cremd9p
67
+ 4DrhC+Hc4q3jfuRP5SLl9ubL56Hod+lO6ibq/+vV7J7tXu4Z7srvefAn8NPxg/I38vHzt/SM9XP2
68
+ cveQ+Nb6YPwz/mP//wAAAAoAJABLAH0AuwEDATkBdQG4AgECWwK8AyYDnwQgBLAFSAXoBpYHTQgJ
69
+ CMQJgwpFCwkLzwyaDWkOOw8TD+0QyBGoEo0TcxRbFUUWLRclGCUZIBohGxwcGR0RHgwfBR/5IPAh
70
+ 4SLQI70kpyWQJnYnWyg+KR4qDisBK/Es4C3MLrcvnzCGMWwyUDMvNA006DXCNpo3cjhHOR458TrD
71
+ O5Q8ZT02PgU+1j+mQHVBRUIUQuNDskSARUxGGUbnR7NIf0lJShJK0EuJTEBM+U21TnJPL0/vULJR
72
+ d1I6Uv9TxlSNVVRWHVblV61YdVk9Wgda01uhXG5dOl4FXtFfnmBrYTViAGLMY5hkYmUtZfhmwmeM
73
+ aFhpH2njaqZrZ2wqbOxtrG5obyNv3HCScUJx73KZcz5z4HSAdRt1tnZUdw531XijeXJ6Rnsbe/B8
74
+ x32ifoB/XYA7gRuB+4Lbg7yEnYV4hliHQohHiVSKYYtzjIKNjo6ej7GQw5HVkuqT/5UVliyXRJhe
75
+ mXeakJupnLmdvJ69n76gvaG9orujt6S4pbmmwKfHqNKp5Kr3rBGtLq5Or3SwmbHAsum0FLU/tm63
76
+ n7jVugy7RryCvb6/AMBEwYrCz8QYxV3GpsfvyULKpcwCzVTOpc/00VDSttQq1a/XVtkj2xXdRN+/
77
+ 4pnl6Ooa75j33P//AABuZGluAAAAAAAABjYAAJh/AABX2wAAVCwAAJANAAAoXwAAFWAAAFANAABU
78
+ OQAB+uEAAePXAAEeuAADAQAAAgAAAC8AdwC8APsBOAFyAawB5AIdAlQCigLAAvcDMANrA6YD4gQf
79
+ BF0EmwTbBRsFWgWbBd0GHwZiBqQG6ActB3IHuAf+CEgIjgjUCRoJYgmrCfQKPwqLCtgLJwt3C8gM
80
+ GwxvDMUNHA12DdEOLw6ODvAPUw+4EB8QiBD0EWER0RI+EqsTGROKE/4UchTqFWUV4BZgFt8XYxfr
81
+ GHYZAhmSGiYavBtVG/Ecjh0uHdEedR8cH8QgbSEcIckieiMuI+QkmyVXJhIm0CeSKFYpGinfKqgr
82
+ cSw/LQ8t/C71L/Ew6THiMt0z1jTNNcI2ujexOKg5nzqYO488hz2CPn8/iECbQatCwEPYRPZGE0cw
83
+ SFRJekqhS8lM9U4hT09QgFGyUtJTwlSGVU1WF1bnV7hYi1liWkFbKFwUXQVd/17/YAthImI+Y2dk
84
+ lGXKZwpoTGmRarlr22z6bhxvQHBmcZByvnP0dSh2X3efeOF6J3tvfL5+DH9dgLmCEYNzhPiGhogT
85
+ iaGLOYzQjmOP+pGRkySUt5ZIl9SZXprnnG+d95+UoVajHqTspsCooaqIrHGuWrBIsjO0HrX/t+O5
86
+ wbucvh3BSMRQxzDJ78yXzynRrNQo1qHZIduj3knhM+Q25znqE+y27xXxN/MV9Lv2L/d9+K35p/qa
87
+ +1P8Dfyo/Sf9pv4l/sH/YP//AAAARwCVANoBGQFVAZAByQIBAjoCcgKqAuQDIANdA5sD2gQbBFwE
88
+ nQTgBSQFZwWrBfEGNwZ9BsMHCwdUB50H5wgzCH4IyAkRCV0JqQn2CkUKlQrmCzkLjgvjDDoMlAzu
89
+ DUsNqg4LDm4O1A88D6UQERB/EPARYxHXEkkSuhMuE6UUHRSYFRYVlhYZFp0XJBewGD8Y0RllGf4a
90
+ mhs5G9scfx0kHc4eeh8oH9kgiyFBIfYisCNsJCgk6CWrJmwnMyf9KMYpjypeKysr/yzRLbsusy+x
91
+ MK0xpzKkM6A0mjWSNo03hziBOXs6djtwPGs9aT5pP3BAgEGOQqBDtUTQRexHBkgnSUxKckuZTMNN
92
+ 8E8eUE9Rg1KuU61Uf1VUVixXC1foWMpZsVqfW5Ncil2LXpFfn2C2YdNi+GQkZVNmjGfIaQVqMWtH
93
+ bFltaG5/b5NwrXHJcut0EnU5dmJ3k3jGef57N3x2fbV+9oA+gYeC0IQQhU6GkIfQiRCKVouijO2O
94
+ N4+IkOCSNZOUlPSWWpfCmS2anpwTnY2fEaCuolWkA6W5p3epQasPrOSut7CSsmi0QrYPt+G5rrt1
95
+ vVC/P8E0wzDFKcclySPLI80nzyjRKNMn1SfXJtkn2yTdK99c4a7kKOax6Ujrze438H7ykPRv9iD3
96
+ o/j++i77PPw3/Qf9zf7K//8AAABMAMEBKAGGAd4CNQKIAtwDNAOOA+sESgSqBQwFbgXSBjgGngcF
97
+ B28H2QhICLIJGgmHCfMKZArWC00LxAw/DL4NPg3EDk0O2g9rEAAQmBE1EdYSbhMHE6QURRTpFZIW
98
+ PhbtF6EYWxkYGdsaohttHD0dDh3mHsIfoSCDIWoiUSM+JCwlHiYTJwsoCSkIKgorECwcLS0uVi+I
99
+ MLgx5zMZNEc1czakN9Q5BTo5O2w8pD3fPx1AWkGUQtJEFEVbRqBH6Uk5SopL200zTotP6FFJUqhU
100
+ FFWIVwVYf1oAW45dIl7CYHViN2QQZfpn+2n3a5ZtIm6tcDBxs3M4dLh2M3eyeS96rXwtfa1/L4C9
101
+ gkaDuYUBhk2HmYjhii6LgIzPjhqPaZC6kgeTV5SnlfeXSJiXmeebOZyMneGfP6Czoiyjp6UlpqSo
102
+ KKmwqzKst64zr7GxLLKdtBG1e7bjuEq5rbsKvGy9zb8swIrB6sNIxKLF/cdUyKvKAMtUzKnN/c9N
103
+ 0JzR69M51IrV1tcn2HrZydsa3Gjdp97d4B7haeK35AblWeah5+PpH+pT637sou207rnvsfCe8Yjy
104
+ XvMv8+/0pfVY9fn2mvc09734RvjP+T75rPoa+on64fs2+4v74Pw1/H38tPzr/SL9Wf2R/cj9//43
105
+ /nD+qf7i/xv/VP+N/8b//wAAZGVzYwAAAAAAAAAKQ29sb3IgTENEAAAAAAAAAAAAAAAAAAAAAAAA
106
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
107
+ AAAAAG1sdWMAAAAAAAAAEgAAAAxuYk5PAAAAEgAAAOhwdFBUAAAAFgAAAPpzdlNFAAAAEAAAARBm
108
+ aUZJAAAAEAAAASBkYURLAAAAHAAAATB6aENOAAAADAAAAUxmckZSAAAAEgAAAVhqYUpQAAAADgAA
109
+ AWplblVTAAAAEgAAAXhwbFBMAAAAEgAAAYpwdEJSAAAAGAAAAZxlc0VTAAAAEgAAAbR6aFRXAAAA
110
+ DgAAAcZydVJVAAAAJAAAAdRrb0tSAAAADAAAAfhkZURFAAAAEAAAAgRubE5MAAAAFgAAAhRpdElU
111
+ AAAAFAAAAioARgBhAHIAZwBlAC0ATABDAEQATABDAEQAIABhACAAQwBvAHIAZQBzAEYA5AByAGcA
112
+ LQBMAEMARABWAOQAcgBpAC0ATABDAEQATABDAEQALQBmAGEAcgB2AGUAcwBrAOYAcgBtX2mCcgAg
113
+ AEwAQwBEAMkAYwByAGEAbgAgAEwAQwBEMKsw6TD8ACAATABDAEQAQwBvAGwAbwByACAATABDAEQA
114
+ SwBvAGwAbwByACAATABDAEQATABDAEQAIABDAG8AbABvAHIAaQBkAG8ATABDAEQAIABjAG8AbABv
115
+ AHJfaYJybbJmdphveTpWaAQmBDIENQRCBD0EPgQ5ACAEFgQaAC0ENAQ4BEEEPwQ7BDUEOc7st+wA
116
+ IABMAEMARABGAGEAcgBiAC0ATABDAEQASwBsAGUAdQByAGUAbgAtAEwAQwBEAEwAQwBEACAAYwBv
117
+ AGwAbwByAGkAAG1tb2QAAAAAAAAGEAAAnIUAAAAAxHyvAAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAA
118
+ AENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOAD/4QBARXhpZgAATU0AKgAAAAgAAYdpAAQAAAAB
119
+ AAAAGgAAAAAAAqACAAQAAAABAAAAS6ADAAQAAAABAAAASwAAAAD/2wBDAAIBAQEBAQIBAQECAgIC
120
+ AgQDAgICAgUDBAMEBgUGBgYFBQUGBwkIBgcIBwUFCAsICAkJCgoKBgcLDAsKDAkKCgr/2wBDAQIC
121
+ AgICAgUDAwUKBgUGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
122
+ CgoKCgr/wAARCABLAEsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL
123
+ /8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2Jy
124
+ ggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
125
+ h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo
126
+ 6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQD
127
+ BAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRom
128
+ JygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaX
129
+ mJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6
130
+ /9oADAMBAAIRAxEAPwBf2p/+Dhn4o/tYfs5+NP2btc/Yr0vw3ZeN/D1xo9/q0Pjv+1mtIZRh3SIw
131
+ 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
213
+ ------=_Part_98510_7267541.1228863798546--