binarylogic-shippinglogic 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,96 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{shippinglogic}
5
+ s.version = "1.0.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Ben Johnson of Binary Logic"]
9
+ s.date = %q{2009-08-07}
10
+ s.description = %q{A simple and clean library to interface with shipping carriers}
11
+ s.email = %q{bjohnson@binarylogic.com}
12
+ s.extra_rdoc_files = [
13
+ "LICENSE",
14
+ "README.rdoc"
15
+ ]
16
+ s.files = [
17
+ ".document",
18
+ ".gitignore",
19
+ "LICENSE",
20
+ "README.rdoc",
21
+ "Rakefile",
22
+ "VERSION.yml",
23
+ "lib/shippinglogic.rb",
24
+ "lib/shippinglogic/fedex.rb",
25
+ "lib/shippinglogic/fedex/attributes.rb",
26
+ "lib/shippinglogic/fedex/cancel.rb",
27
+ "lib/shippinglogic/fedex/error.rb",
28
+ "lib/shippinglogic/fedex/rate.rb",
29
+ "lib/shippinglogic/fedex/request.rb",
30
+ "lib/shippinglogic/fedex/response.rb",
31
+ "lib/shippinglogic/fedex/service.rb",
32
+ "lib/shippinglogic/fedex/ship.rb",
33
+ "lib/shippinglogic/fedex/signature.rb",
34
+ "lib/shippinglogic/fedex/track.rb",
35
+ "lib/shippinglogic/fedex/validation.rb",
36
+ "shippinglogic.gemspec",
37
+ "spec/fedex/attributes_spec.rb",
38
+ "spec/fedex/cancel_spec.rb",
39
+ "spec/fedex/error_spec.rb",
40
+ "spec/fedex/rate_spec.rb",
41
+ "spec/fedex/service_spec.rb",
42
+ "spec/fedex/ship_spec.rb",
43
+ "spec/fedex/signature_spec.rb",
44
+ "spec/fedex/track_spec.rb",
45
+ "spec/fedex/validation_spec.rb",
46
+ "spec/fedex_credentials.example.yaml",
47
+ "spec/fedex_spec.rb",
48
+ "spec/lib/interceptor.rb",
49
+ "spec/responses/basic_rate.xml",
50
+ "spec/responses/basic_ship.xml",
51
+ "spec/responses/basic_signature.xml",
52
+ "spec/responses/basic_track.xml",
53
+ "spec/responses/blank.xml",
54
+ "spec/responses/cancel_not_found.xml",
55
+ "spec/responses/failed_authentication.xml",
56
+ "spec/responses/malformed.xml",
57
+ "spec/responses/unexpected.xml",
58
+ "spec/spec_helper.rb"
59
+ ]
60
+ s.homepage = %q{http://github.com/binarylogic/shippinglogic}
61
+ s.rdoc_options = ["--charset=UTF-8"]
62
+ s.require_paths = ["lib"]
63
+ s.rubyforge_project = %q{shippinglogic}
64
+ s.rubygems_version = %q{1.3.5}
65
+ s.summary = %q{A simple and clean library to interface with shipping carriers}
66
+ s.test_files = [
67
+ "spec/fedex/attributes_spec.rb",
68
+ "spec/fedex/cancel_spec.rb",
69
+ "spec/fedex/error_spec.rb",
70
+ "spec/fedex/rate_spec.rb",
71
+ "spec/fedex/service_spec.rb",
72
+ "spec/fedex/ship_spec.rb",
73
+ "spec/fedex/signature_spec.rb",
74
+ "spec/fedex/track_spec.rb",
75
+ "spec/fedex/validation_spec.rb",
76
+ "spec/fedex_spec.rb",
77
+ "spec/lib/interceptor.rb",
78
+ "spec/spec_helper.rb"
79
+ ]
80
+
81
+ if s.respond_to? :specification_version then
82
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
83
+ s.specification_version = 3
84
+
85
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
86
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.2.0"])
87
+ s.add_runtime_dependency(%q<httparty>, [">= 0.4.4"])
88
+ else
89
+ s.add_dependency(%q<activesupport>, [">= 2.2.0"])
90
+ s.add_dependency(%q<httparty>, [">= 0.4.4"])
91
+ end
92
+ else
93
+ s.add_dependency(%q<activesupport>, [">= 2.2.0"])
94
+ s.add_dependency(%q<httparty>, [">= 0.4.4"])
95
+ end
96
+ end
@@ -25,17 +25,17 @@ describe "FedEx Attributes" do
25
25
  end
26
26
 
27
27
  it "should implement defaults" do
28
- rates = new_fedex.rates
28
+ rates = new_fedex.rate
29
29
  rates.shipper_residential.should == false
30
30
  end
31
31
 
32
32
  it "should use blank array as defaults for arrays" do
33
- rates = new_fedex.rates
34
- rates.packages.should == []
33
+ rates = new_fedex.rate
34
+ rates.special_services_requested.should == []
35
35
  end
36
36
 
37
37
  it "should call procs during run time if a default is a proc" do
38
- rates = new_fedex.rates
38
+ rates = new_fedex.rate
39
39
  rates.ship_time.to_s.should == Time.now.to_s
40
40
  end
41
41
  end
@@ -0,0 +1,10 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "FedEx Track" do
4
+ it "should cancel the shipment" do
5
+ use_response(:cancel_not_found)
6
+ fedex = new_fedex
7
+ cancel = fedex.cancel(:tracking_number => fedex_tracking_number)
8
+ lambda { cancel.perform }.should raise_error(Shippinglogic::FedEx::Error, "Unable to retrieve record from database")
9
+ end
10
+ end
@@ -5,10 +5,11 @@ describe "FedEx Rate" do
5
5
  use_response(:basic_rate)
6
6
 
7
7
  fedex = new_fedex
8
- rates = fedex.rates
8
+ rates = fedex.rate
9
+
9
10
  rates.attributes = fedex_shipper
10
11
  rates.attributes = fedex_recipient
11
- rates.packages = [fedex_package]
12
+ rates.attributes = fedex_package
12
13
  rates.size.should == 6
13
14
 
14
15
  rate = rates.first
@@ -16,7 +17,7 @@ describe "FedEx Rate" do
16
17
  rate.type.should == "FIRST_OVERNIGHT"
17
18
  rate.saturday.should == false
18
19
  rate.deadline.should == Time.parse("Fri Aug 07 08:00:00 -0400 2009")
19
- rate.cost.should == BigDecimal("70.01")
20
+ rate.rate.should == 70.01
20
21
  rate.currency.should == "USD"
21
22
  end
22
23
  end
@@ -11,4 +11,9 @@ describe "FedEx Service" do
11
11
  use_response(:blank)
12
12
  lambda { new_fedex.track(:tracking_number => fedex_tracking_number).size }.should raise_error(Shippinglogic::FedEx::Error)
13
13
  end
14
+
15
+ it "should delegate the class method to the target" do
16
+ use_response(:basic_track)
17
+ new_fedex.track(:tracking_number => fedex_tracking_number).class.should == Array
18
+ end
14
19
  end
@@ -0,0 +1,22 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "FedEx Ship" do
4
+ it "should create a new shipment" do
5
+ use_response(:basic_ship)
6
+
7
+ fedex = new_fedex
8
+ shipment = fedex.ship
9
+
10
+ shipment.service_type = "FEDEX_2_DAY"
11
+ shipment.attributes = fedex_shipper
12
+ shipment.attributes = fedex_recipient
13
+ shipment.attributes = fedex_package
14
+
15
+ shipment.rate.should == 17.02
16
+ shipment.currency.should == "USD"
17
+ shipment.delivery_date.should == Date.parse("Tue, 11 Aug 2009")
18
+ shipment.tracking_number.should == "794797892957"
19
+ shipment.label.should_not be_nil
20
+ shipment.barcode.should_not be_nil
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "FedEx Signature" do
4
+ it "should return an image of the signature" do
5
+ use_response(:basic_signature)
6
+ fedex = new_fedex
7
+ signature = fedex.signature(:tracking_number => fedex_tracking_number)
8
+ signature.image.should_not be_nil
9
+ end
10
+ end
@@ -3,7 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
3
  describe "FedEx Validation" do
4
4
  it "should not be valid" do
5
5
  use_response(:blank)
6
- rates = new_fedex.rates
6
+ rates = new_fedex.rate
7
7
  rates.valid?.should == false
8
8
  rates.errors.should == ["The response from FedEx was blank."]
9
9
  end
File without changes
@@ -2,7 +2,7 @@ module HTTParty
2
2
  class Request
3
3
  def perform_actual_request
4
4
  response = http.request(@raw_request)
5
- if !FakeWeb.registered_uri?(:post, uri)
5
+ if !defined?(DONT_SAVE) && !FakeWeb.registered_uri?(:post, uri)
6
6
  File.open(File.dirname(__FILE__) + "/../responses/_new.xml", 'w') {|f| f.write(response.body) }
7
7
  raise FakeWeb::NetConnectNotAllowedError.new("You have not registered this response, the response has been put in responses/_new.xml")
8
8
  else
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <v6:ProcessShipmentReply xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v6="http://fedex.com/ws/ship/v6"><v6:HighestSeverity>SUCCESS</v6:HighestSeverity><v6:Notifications><v6:Severity>SUCCESS</v6:Severity><v6:Source>ship</v6:Source><v6:Code>0000</v6:Code><v6:Message>Success</v6:Message><v6:LocalizedMessage>Success</v6:LocalizedMessage></v6:Notifications><v6:Version>
3
+ <v6:ServiceId>ship</v6:ServiceId>
4
+ <v6:Major>6</v6:Major>
5
+ <v6:Intermediate>0</v6:Intermediate>
6
+ <v6:Minor>0</v6:Minor>
7
+ </v6:Version><v6:CompletedShipmentDetail><v6:UsDomestic>true</v6:UsDomestic><v6:CarrierCode>FDXE</v6:CarrierCode><v6:ServiceTypeDescription>** 2DAY **</v6:ServiceTypeDescription><v6:PackagingDescription>YOUR_PACKAGING</v6:PackagingDescription><v6:RoutingDetail><v6:UrsaPrefixCode>KE</v6:UrsaPrefixCode><v6:UrsaSuffixCode>RBDA </v6:UrsaSuffixCode><v6:OriginLocationId>FIDA </v6:OriginLocationId><v6:OriginServiceArea>A1</v6:OriginServiceArea><v6:DestinationLocationId>RBDA </v6:DestinationLocationId><v6:DestinationServiceArea>A1</v6:DestinationServiceArea><v6:DestinationLocationStateOrProvinceCode>TX </v6:DestinationLocationStateOrProvinceCode><v6:DeliveryDate>2009-08-11</v6:DeliveryDate><v6:DeliveryDay>TUE</v6:DeliveryDay><v6:CommitDate>2009-08-11</v6:CommitDate><v6:CommitDay>TUE</v6:CommitDay><v6:AstraPlannedServiceLevel>TUE - 11 AUG A1</v6:AstraPlannedServiceLevel><v6:AstraDescription>** 2DAY **</v6:AstraDescription><v6:PostalCode>75201</v6:PostalCode><v6:StateOrProvinceCode>TX </v6:StateOrProvinceCode><v6:CountryCode>US</v6:CountryCode><v6:AirportId>DFW</v6:AirportId></v6:RoutingDetail><v6:ShipmentRating><v6:ActualRateType>PAYOR_ACCOUNT</v6:ActualRateType><v6:ShipmentRateDetails><v6:RateType>PAYOR_ACCOUNT</v6:RateType><v6:RateScale>6068</v6:RateScale><v6:RateZone>6</v6:RateZone><v6:PricingCode>PACKAGE</v6:PricingCode><v6:DimDivisor>194</v6:DimDivisor><v6:FuelSurchargePercent>2.5</v6:FuelSurchargePercent><v6:TotalBillingWeight><v6:Units>LB</v6:Units><v6:Value>2.0</v6:Value></v6:TotalBillingWeight><v6:TotalBaseCharge><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:TotalBaseCharge><v6:TotalFreightDiscounts><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalFreightDiscounts><v6:TotalNetFreight><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:TotalNetFreight><v6:TotalSurcharges><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:TotalSurcharges><v6:TotalNetFedExCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:TotalNetFedExCharge><v6:TotalTaxes><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalTaxes><v6:TotalNetCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:TotalNetCharge><v6:TotalRebates><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalRebates><v6:Surcharges><v6:SurchargeType>FUEL</v6:SurchargeType><v6:Description>Fuel</v6:Description><v6:Amount><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:Amount></v6:Surcharges></v6:ShipmentRateDetails><v6:ShipmentRateDetails><v6:RateType>RATED_ACCOUNT</v6:RateType><v6:RateScale>6068</v6:RateScale><v6:RateZone>6</v6:RateZone><v6:PricingCode>PACKAGE</v6:PricingCode><v6:DimDivisor>194</v6:DimDivisor><v6:FuelSurchargePercent>2.5</v6:FuelSurchargePercent><v6:TotalBillingWeight><v6:Units>LB</v6:Units><v6:Value>2.0</v6:Value></v6:TotalBillingWeight><v6:TotalBaseCharge><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:TotalBaseCharge><v6:TotalFreightDiscounts><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalFreightDiscounts><v6:TotalNetFreight><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:TotalNetFreight><v6:TotalSurcharges><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:TotalSurcharges><v6:TotalNetFedExCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:TotalNetFedExCharge><v6:TotalTaxes><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalTaxes><v6:TotalNetCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:TotalNetCharge><v6:TotalRebates><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalRebates><v6:Surcharges><v6:SurchargeType>FUEL</v6:SurchargeType><v6:Description>Fuel</v6:Description><v6:Amount><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:Amount></v6:Surcharges></v6:ShipmentRateDetails></v6:ShipmentRating><v6:IneligibleForMoneyBackGuarantee>false</v6:IneligibleForMoneyBackGuarantee><v6:CompletedPackageDetails><v6:SequenceNumber>1</v6:SequenceNumber><v6:TrackingId><v6:FormId>0201</v6:FormId><v6:TrackingNumber>794797892957</v6:TrackingNumber></v6:TrackingId><v6:PackageRating><v6:ActualRateType>PAYOR_ACCOUNT</v6:ActualRateType><v6:PackageRateDetails><v6:RateType>PAYOR_ACCOUNT</v6:RateType><v6:RatedWeightMethod>ACTUAL</v6:RatedWeightMethod><v6:BillingWeight><v6:Units>LB</v6:Units><v6:Value>2.0</v6:Value></v6:BillingWeight><v6:BaseCharge><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:BaseCharge><v6:TotalFreightDiscounts><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalFreightDiscounts><v6:NetFreight><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:NetFreight><v6:TotalSurcharges><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:TotalSurcharges><v6:NetFedExCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:NetFedExCharge><v6:TotalTaxes><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalTaxes><v6:NetCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:NetCharge><v6:TotalRebates><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalRebates><v6:Surcharges><v6:SurchargeType>FUEL</v6:SurchargeType><v6:Description>Fuel</v6:Description><v6:Amount><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:Amount></v6:Surcharges></v6:PackageRateDetails><v6:PackageRateDetails><v6:RateType>RATED_ACCOUNT</v6:RateType><v6:RatedWeightMethod>ACTUAL</v6:RatedWeightMethod><v6:BillingWeight><v6:Units>LB</v6:Units><v6:Value>2.0</v6:Value></v6:BillingWeight><v6:BaseCharge><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:BaseCharge><v6:TotalFreightDiscounts><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalFreightDiscounts><v6:NetFreight><v6:Currency>USD</v6:Currency><v6:Amount>16.6</v6:Amount></v6:NetFreight><v6:TotalSurcharges><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:TotalSurcharges><v6:NetFedExCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:NetFedExCharge><v6:TotalTaxes><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalTaxes><v6:NetCharge><v6:Currency>USD</v6:Currency><v6:Amount>17.02</v6:Amount></v6:NetCharge><v6:TotalRebates><v6:Currency>USD</v6:Currency><v6:Amount>0.0</v6:Amount></v6:TotalRebates><v6:Surcharges><v6:SurchargeType>FUEL</v6:SurchargeType><v6:Description>Fuel</v6:Description><v6:Amount><v6:Currency>USD</v6:Currency><v6:Amount>0.42</v6:Amount></v6:Amount></v6:Surcharges></v6:PackageRateDetails></v6:PackageRating><v6:Barcodes><v6:AstraBarcode>37520125310000037947978929572010</v6:AstraBarcode><v6:Common2DBarcode>Wyk+HjAxHTAyNzUyMDEdODQwHTMxHTAwMDAwMDAwMDAwMDAyMDEdRkRFHTUxMDA4NzM2NB0yMTkdHTEvMR0yLjBMQh1OHTE1MDAgTWFyaWxsYSBTdHJlZXQdRGFsbGFzHVRYHSAeMDYdMTBaRUQwMDQdMTFaRGFsbGFzIENpdHkgSGFsbB0xMloyMjIyMjIyMjIyHTMwWjM3NTIwMTI1MDAwMDAzHB0xNFoqKlRFU1QgTEFCRUwgLSBETyBOT1QgU0hJUCoqHTE1WjExODUwMTEwMx0yMFocIB0yNlpiZDc3HB0eBA==</v6:Common2DBarcode></v6:Barcodes><v6:Label><v6:Type>OUTBOUND_LABEL</v6:Type><v6:CopiesToPrint>1</v6:CopiesToPrint><v6:Parts><v6:DocumentPartSequenceNumber>1</v6:DocumentPartSequenceNumber><v6:Image>JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMyAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL091dGxpbmVzCi9Db3VudCAwCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovQ291bnQgMQovS2lkcyBbMTggMCBSXQo+PgplbmRvYmoKNCAwIG9iagpbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KZW5kb2JqCjUgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCi9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZwo+PgplbmRvYmoKNiAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9IZWx2ZXRpY2EtQm9sZAovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjcgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhLU9ibGlxdWUKL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0hlbHZldGljYS1Cb2xkT2JsaXF1ZQovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjkgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvQ291cmllcgovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjEwIDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0NvdXJpZXItQm9sZAovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjExIDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0NvdXJpZXItT2JsaXF1ZQovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjEyIDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0NvdXJpZXItQm9sZE9ibGlxdWUKL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iagoxMyAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9UaW1lcy1Sb21hbgovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjE0IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1RpbWVzLUJvbGQKL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iagoxNSAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9UaW1lcy1JdGFsaWMKL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iagoxNiAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9UaW1lcy1Cb2xkSXRhbGljCi9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZwo+PgplbmRvYmoKMTcgMCBvYmogCjw8Ci9DcmVhdGlvbkRhdGUgKEQ6MjAwMykKL1Byb2R1Y2VyIChGZWRFeCBTZXJ2aWNlcykKL1RpdGxlIChGZWRFeCBTaGlwcGluZyBMYWJlbCkNL0NyZWF0b3IgKEZlZEV4IEN1c3RvbWVyIEF1dG9tYXRpb24pDS9BdXRob3IgKENMUyBWZXJzaW9uIDUxMjAxMzUpCj4+CmVuZG9iagoxOCAwIG9iago8PAovVHlwZSAvUGFnZQ0vUGFyZW50IDMgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgNCAwIFIgCiAvRm9udCA8PCAvRjEgNSAwIFIgCi9GMiA2IDAgUiAKL0YzIDcgMCBSIAovRjQgOCAwIFIgCi9GNSA5IDAgUiAKL0Y2IDEwIDAgUiAKL0Y3IDExIDAgUiAKL0Y4IDEyIDAgUiAKL0Y5IDEzIDAgUiAKL0YxMCAxNCAwIFIgCi9GMTEgMTUgMCBSIAovRjEyIDE2IDAgUiAKID4+Ci9YT2JqZWN0IDw8IC9GZWRFeEV4cHJlc3MgMjAgMCBSCi9FeHByZXNzRSAyMSAwIFIKL2JhcmNvZGUwIDIyIDAgUgovRW5nbGlzaEZvbGRpbmdFbmdsaXNoLnBuZyAyMyAwIFIKPj4KPj4KL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1RyaW1Cb3hbMCAwIDYxMiA3OTJdCi9Db250ZW50cyAxOSAwIFIKL1JvdGF0ZSAwPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9MZW5ndGggMzcyMAovRmlsdGVyIFsvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGVdIAo+PgpzdHJlYW0KR2F0PS9nTiF1dSZxLUFYcmgxTlxZbUptXlhCU2BxLThBdTMyJSpfSSI7J04uL0svLWRsQEs4QzEmTFg1PFJpIVpTWGhJNiNwWEVURklwY04KamVcdXRLZiVIWWFZQS4zRWZNSis0JzVHXXB1KEE2ZnJRImUkWFlRXztEMSI7cFhmZXRJTTptKEVJcSpXYi43SFArRz0sMWpLSUhvL3EyaVgKclJLb0pCNC8jSnJPMExUPHJaQUAwVmZpaW9RNSNNcEdyJ1wra15CWyMuZWt1XitlRy1nS149NzElay1ZRjhGa2ZfQWsyI1F0TTJ0NGhDNE0KR0whYSteR2tmVjEmWitMWVB1M3A9RkhHQkxSOVFYXCY9KyglIzAiJEZnJ1BKXSJcLi1qblpzV01fRmdmaXBeLS85QGlISi9ycmRsKzVdai4Kaj5oWURZLiovK0lKXHJxQkNrUDNvOkksS01nI0AyS0tEOixwTFZNOD4ybXEqTFZLNSxiTzNaWjNSOFJeNCRASUo0MFMlU3BXJ0RwUWNFYE8KYS5MVCllI1AuYS1pM1Q5alA8Mzs2dTElM05dM2pdZWY3dDRmJ0JDNk09YiRMNGFPSXIzKk1hNUhpIiZvYyIiKS1CalNHV1I7MThCTyFfME0KRFIrMjRWNXNXSz1oVVpeazpEIzhmLk9xZUklQE1iLjNBIyZuMUU3KVZna2ouP2QuQkthXyhNOVBNJjFXUiY/OHVsUSQrYDRRS2BOVmgzOzMKLGYrcFtwdXJoRyEuWiU8Y1dMNS1TIm1ISk5ZTDNgW0xxayZvblBqaF11dUY2ak9SVWAwVGZhVSxfVlBTYigsZDtGLEpANV5RIm86Z1ctTFkKRzRCUi8+dFRvTDtMcz9GayZUS21qLUcmXGJnYEoxKmQnQE9ZLj1VTS09XWxsOWtDQlFoZWYoRSdxOWFPbDI6TUhJWm9TS0lSIWRFUUgqKG0KLWNZMCZsYkQrbjVEYGc8MF9hRjJeJWxYP2A3NFIyXjshJFUrX2YyTjAlIiUvPjVzbnFqbHVSZ1AlRUwxSWgjaVBpLzBPTVxudCZCNSdxP1AKTDdhW2dVKWdtXmxRP0UoZiInTmpJUWZIaHA4TTVEM3VMQypsUkYzQEtaMWchZ3BxcTByNCtnS0dkMEFVRmpDZTVEc1tLJm8iUHVCJiJmNWEKXGdIWE9JMSFTJ2JNIixLXDQoLilkYlhTKzxqKiNeLU5SJVdnbTQzNmtzO1Yya0Y3Y3U+QVtMTTtDaixhKDNDQDMjYmJCRz1JNHEpWi4tISkKLWNOTj8xLjVJbEwtJio+XS1sTTFTci8mJllfNUJDRUVqbylWRyhqVjREc2ZbQ2EsPEhCdEchWVlDOnFGMmIlRSZKTzpEVG9rMkFJVyo6ZUIKRnJJQUFSZEgvbVxHOFgoMGMwSDQoJiNZPklrMiFrXWtiKj4zRWxnQ0lgVGsuWi5edCtUSEdzSVtPKUBmUVttJDgjW2xNXWR0PV90JWZTTmEKbFhRdEpiS0lqaFgoNTk5XUhiZEkqZSJ0Xm9cPms3MUJVJyU3SDM2XS07byFVXj1fNFM3WVpPamQ4aitwUmUqOWBfanNnVW0rMVcnTFklZmcKbjszMGs7UDVwW0NcTG9yaG9zIWgrSU84JHE0K0ROM146OlBvQ0RQUFJgKyNYO1ZFYkQ/WEAmJ2RsZy5VUGBiKShqNCxSRUg/ZyFeLU0sMT0KIzdIPC85NWBANiw9dCkrcVY8LFxWKFBaU0ZPP1cpIV5nZmxtZkxmVi88MWMmQCJKZmk7bCdOTEZtQFlNb2REUmlFP15OYEpRLDlCVkBtSVIKX2FbJDsjPGh1KTppcT1YYCxKbj5CXTRYXGduRk4sO0ZodUYiLF4nMFQ4RlhvSFxAVl5tL2VSXEw9PkVVQHJIKTVaMiE9LCg+Wm9bQzdUPWIKNGJQV1ErJzFrLS44Q2BsaFNQQVNxI05WJmNxLzZrYSFtIzIvUzIiMUpDJ15pUyRcVnJKNGVqSVJOU2ssI2RKbV5hXDxiUS0lYUwhOWg9cCsKZmg4QiZqNCRLTDZQaEVsbyExcUdgRyo2K1xRN20sNkUrYFRLLD4rPVchcyQhTC88IzhodV5HNU0/MVBFPjRZVl1EOmI/TTVkYVRxOWNVJlcKbnBVakU9MGVyUFlyNSZCNmsjdD84ai45JVhHcV5vTTVFNmE7NSE1TCEoQksnPC0nPDMlVEhCR18pTF0vKGRsM0cnazw6LGVQcHNXXUBodCQKUiYyaHAmSWZGcyMsXUtaLEM2VVFFTGBJJ3FndFxtTTgjYzoxR1BQZ1djaEgkR1koL1ArUCVtIjtcT2pDbTkwOGpGWmhTTk0rZT5WOWgkUUIKWXJzVmdfTXEhYyknI1RPNjVYYGFGZUxmaGM/YEVWZXAnJClbYF1Bb1dDLkY4QFE1cU9bPksxOFBfXi9POWJfcDdPcytRKD5IdCNwIU5OLD4KaGwqVzk1bWMlcUxmPWVdVjRxOyQlQlshLkknKDohJz5wZis7R1lYXyhbIi8qVTgnXEU4UUU2Nmc+NSlqT2pudU1hPm0haSdGKFlqVVtwNDYKQTMwdW9lKVlMVU4iUU9aPVksLlw1VjNfXF42S0wrIkpscFY4Sz1XVDhqZEAlN3VLbksvZVVsdUM4MCxZUVMpMTJRdDJwPzouc1piQTMzNCYKQFE2NUJtVFhXOkMoWyw3LjVFV05RSERSVT5UK1QmTik8aE8lJllGRV1pcFFfWFpTP25SJEsoWDQjOD41RSg/W2JXIjkzNldJLDYzNm5MXUYKQFU3dFEyOjhxJzknK080Lz01Jy5UVShKaGAmP0tyMyp1YD1XIl1JZGdRWU9cIXBWIVEyPXFIXmZNS2luUHNacXRDW2dfIjZcbFZNXDhXPFwKQ0hoInNnTkFzRlA2SDRxUmZSOUs9MT9oX1kqOmArSzlBVnVFTS9VKWFrLG9nJFhoOS4vQWtrIWonaDVCKHBsb0Bic0A7L0wvW0Q6SEtVYjwKQT0nVzkzSlB1cWpaJ2FzK09DZm9HdCk/KDVjc1EzcEEkPTJDMzYwZChERl0jZjJELStYcS1WVkw5PChGRmA8bCVHUW1zU0VAdUNzZiNxaWMKIjE/LSFWMm9oU1BiakdiMXJYbDNWcEo0ZiwqSEg4SDEvQjdeMks9ZVNWO0M8aXNoJTsvbzpkYT8kTSlzIlheYilBKydKKSksRCUtR19RSD8KUmttXSI7amBrXzRDNUBVLj9DO1JkN2RzXU5OY0ppTywyUTI3bmFDSyQ5VDpVJl5AcUNgayQmSjVjJDheT18rc0xXZTk9TjZuci4nN0MhaGEKLkBsWXFtbT0iPW8nI0NCXT4yPSc4cSQhSkhNb09MTUMmQjE0OkoqLjo1T0I/WXJVOW0uJ2NOVDhmJGJ0OSIqNWUiL1VeaD9vaktzZ1g/UDQKNC9CYVEia1JeXC9kL2ctN3NeZzJsczEvSE5QaStbaiIjKzdNNXFcUjhpMEo2ZW5BUlghaFg4XyJARGdQXzVVblpfbWpER1VEcVhGKDVbaCwKUF1pZjZdPSRyOUJgTGBTVDFNRVpWbUlHXklZYkldJzFGKlMzMlBfV2hfdGUvaCNgIyNcRTVha08rWjtZNV81cjFBMmFda1pNN2wpZGRCNCwKX15Uay8rL0tyUl41PjgtQDQ1XWdcX0xDKjdtZi8xQE5pIXJRbm0rJm1AZC8yNlhmO1c1W3VMPWBSc0ZAXmJVVG1EOHNsMCJJXmM1OTlbQ2AKXzNnLiVGX1ZfOyhmIl9PMFlZYic2JkdoMyQzOj8wWkxqMVBRQXUiVV9eV2hHRWFSWSpqRlhAJTFfWiovVCZbPVI2cSZFQTtOZylbTm1oLWoKKlI+JEs7amMhRjBtLD9mIUpaXCVVbV0qLDFvNDkiTVBWNWs7TFc0MyxuMnM5UyM5W0tTU1FZNU4wMFdsRXUlb1UwUC4mVjFgaS1cTktnXUQKNVt1TE1jMTJeTT1SJkFZajtKNk9mYU9RbUgyN1NiSWsrJkgqMmcuXk5yKkxATUVIMiE2XUwsakcvTWhtTT8jSm8sbnQsKWEoXkM3RG1UYkoKLEFcLDFSX2ouVkBWO1AvLy5BQ2QkMDBFT1RRSGckZlw6QThPc2M3L1RYaF1SNy1gOF06PD9GXFw7IUNvS21rOG85T1RzdClPMCJVNkdRRXIKQ15IOlhMRkpRYik5OSJENk9EVUJIJl1ZKW5QI19LaDcjJEBST0xwQTFPZFw0YkpJW0tSZnRsS0BNKUxnT0clMl9ANjBrXVMsL2guVWlxQFwKUSpiRkBFKFswakYnLyglZDxRO3JANXQpTSE5NElVZDosWDg9PyU6dEY6XDA6KG5SMUU9LE9AXjMub11GJzcxZyUxSF1uNG9rUT9DU1YoPHQKP1NIKGJROzpDXDFSTSZcMmlfQiZBImhoR1tMLVlkPXNEaV8ob1RtI1YhaiNlYGFMcC9lWllGTTFMdEhJPFlBUTQwV2QralttPG8/MGFGTTcKTlBma1xxIWtjNGo7bFdQTTFyZDE5PzJoWE8/L0pQN0c4cEUwVyElbDMwJ2kmO0xSImI8LzlHPjcmP005VXVdMF07QSYiRVNURih0Z2kiaXMKSDlGaD0jI2QhPVpaOVBPM0JARlZHRFYrNlBqNUxJIzZaKiY7YXN1RVNlaHVUVGhyJF0yYSlkbD10WWltUz4jS2oiJDAhcyMxTTZXYGtLQz0KT2JaUkZbQCtsV1E5USxobE01LylvdVpVNTgjXnFoYlBQVG1CamRbKCFgNllaZnRVQiJDI087bD1QRU1ccmNQbCFJc0o/LmdUUVZAVWpALlsKJ0RiZU4/cE5iR24sLTAxNnE5Q2IwTkBHb2o0MVVeLXNIbzVeRmFYIWlVJDNjbic8VzQ6LzNIK047a2hhXV9LaWZyWFkkI2ZaPX4+CmVuZHN0cmVhbQplbmRvYmoKMjAgMCBvYmoKPDwgL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0ltYWdlCi9XaWR0aCAxMTgKL0hlaWdodCA1MQovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA3NDYKL0ZpbHRlciBbL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlXQo+PnN0cmVhbQpHYiIvZ2ZwOU11JHEnampUNFpyK0VqLS9IIW1PUi0vXUcwWlJsJUlZayMiPms9MjdsX081dGU/X0RgYSRqRjlOYGhqYlxuKTtjWE46SVROOwpNWFlOPjcvMVdAWG5mYC4sLnEsXF9XTVNBKCNkdEAsVE9RYkMyWF1VOWN1cVgpbStkRzkmREBkK1cqO15BLnJCM2ZvW1A2RSVsR1QjaTk/LwpwW2VXT0FDbisicWpwWmZZRkA2Lm8vcDNCblwzJi5CR3IkZjZIMDBVaF00NSJaNW4sTFZKOEdKS3BmalJEVkAkL2A5UVFwUiJZYlxDVS43UApyNF5iQGVkNE9QI1ZmOUoxNm83MjAhIWcwZlgtKypcV0xIck9rQ1EjI05gMVonakN1ZEsmM2VgKSczLUZVNkw+UzsyZ0Z0YT5CO2kzPE5vUwpoNWlSO18tT2hiTy9zPjFSZ2hBQ1IsI09mcShRNlhVT3Q4T1hHJ0hxRHMsZCk7OXIjPGxdW0A9KmB1T15LMlsnWytJOWxXM0o9U1hfWj9OXwoiX2EjU0lKSmxIUGZeYEpiQ2c5QTBQQlhFKmRxJy4vcSpQSj1QVzprNkF1J1ZAPnJeMlFNMWciLjBcSi4kLlpnSTR0OFYtWj1jRD5LOFU3cgpXVnJXbytVPylPcTlnUSFnImgsVjdlaC4rTWIvWGhjTDFERUdibj0mIzhNTTVQdDI/YCRaYGcoY1FcbVssLnEtdC8pcEJgbzhOZCJQQUs1Uwo0Uz8sMmkzMGEvcnRIPGtKMFJZR0guaEJUN0AkKGdBRCt0Pl5FSkcmU3AjWlJdcCo+IWcja2BxUEZJNjc7cktPcjNxb1FUUVlXQjAjLCZQdQowU0IiLGFRY1pbS1U6OUJsTjUxZkFyZnQraHRRKEJPNllfU15SX2xfKE1OTVptMkJgZGRPZy4mNC9mVWNHSThePDs2Iz1iJEA3MiZgRjY3QApAR0BmI0lAXkI8aT84LFV+PgplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjw8IC9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9JbWFnZQovV2lkdGggNTQKL0hlaWdodCA1NAovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCAxMDgKL0ZpbHRlciBbL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlXQo+PnN0cmVhbQpHYiIwS0pJTVNqJHEzSlowP2pWRilBS2BrXnFbN1E4NWBWS1dVR1E0WUYqJCgrWCg5W1lkWUAqT0g+Um4/IiJqQjZHYSthSz1PNyNLUzUjMwpxaDNvNiNtbXFrIzlsOFpQYmRDdTgjbHJofj4KZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iago8PCAvVHlwZSAvWE9iamVjdAovU3VidHlwZSAvSW1hZ2UKL1dpZHRoIDI3NwovSGVpZ2h0IDY3Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0JpdHNQZXJDb21wb25lbnQgOAovTGVuZ3RoIDQ4MTUKL0ZpbHRlciBbL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlXQo+PnN0cmVhbQpHYiIvYTYnPEhhJUtsRCg6TVVKZmFhdVNjZEFpZVVOJSM6Q2JRbmdhUzlocmJjaEk2IWhyamxhVEM7QiJePGFSXEgnUlJtPTdRMChmaUw0ZwpdaHBSTEc8b3AtTGg6STpMP0lVUEhgSm1fM0NwTDM3IzdcPEVcay9pcFwmPG0lUFJpSE5MMT4iOT5CLyZgI08lX0FMbC1MQWMqYzxGa0RaLwooQ1pIb24+STRyTylzY2xgZyNZWloqLC9rUUQyT0hmV08sZFZnMT45cjtTVF84cERvY0IlSVc5alEyVy41VVZvZ05yW149MU5tK1o4Lk5KMgpBcD9NYl1zZW5ZU3FHJXNHKGB0VC5ROmtMSVcoa0BsMSI5RGR0ZkkzWjFPTWs4J0kqXjttbGF1ME1dTmFIJChkPzVTNW40WVxkIU9Mc1s8bwpkLzUiKyRMNCVnSzkqSFZDNmRNcVJWUFVYbEpIajkzVTwwdEw1IjhhXG89Q2AxY24sTUpndF9jKXFsLm8nSE1CYlhLQS5ERV5cQ1BYRzVqQgppRDxAc11IKUMsPnVSZlI8bjpNYywkNGZhVVghJCI0PyJoMGhVNylrMjVdJVUmZVMpb2UoYDZoOm9FTmUpZSpYZm0/OGNgYz1dIWs1NyEkcgpIS09WUVVbPUxSVjcqXGwpQUJbWDJdZCtlcVc+PXMrbmgzU1M+XDBlOjZDQCokQ25oY09zSHM0X2hQV0BuayxcQTcuIXRuWGFuMShbWlpTJQpYbG9Mbl5EWC5ASiE4dTc5b1dAbSRzRC4nMmwxRUJUIWc+SkFmNkNhcUwyLlI1WGdcWWdFRWFXUlNNQWghTCFdYipPXzVERkQzbmE4LExQRQoqVnU2VlFZVT9rPiU+WFpyalhEIlg3aW9TKSldVCZgNm48cDs/SkNoLGhXWlFWOXNDWnAoIUhAaTohblAsYm4jdUdzOXIjN2RKRllBQFlyRApqNDUsOVFNJjltV0VaZC4vXjEuciJzVCdLQ0ptZENVPTIhc2ZMcUZZZTFJYjJCbEsoVixGcGs4OFNOKWJMPC10PztpdWZQTyheLElCIWBQVQoiP2oyLHIrOWJVTTIuJzhYPUFtS0ZqZiZbXHJpcSJVZVstKGUxSWIyQmxLKFYsRnBrODhTTiliTDwtdD87aXVmUE8oXixJQiFgUFUiP2oyLApyKzliVU0yLic4WD1BbUtGamYmW1xyaXEiVWVbLShlMUliMkJsSyhWLEZwazg4U04pYkw8LXQ/O2l1ZlBPKF4sSUIhYFBVIj9qMixyKzliVQpNMi4nOFg9QW8hK2ZKTkpOQTR1XTtiQTwpbk1gQVY6Y0luUjZtamBiR1NnUiRWUTFXPUcxLDhBcS0wbS49MlI6ZWlkOV8tRUxLM0EjMScmMgpmWFFkWyFudUwwTCwjOj9dQlpgIjIlSy1jNm1qYGJHU2dSJFZRMVc9RzEsOEFxLTBtLj0yUjplaWQ5Xy1FTEszQSMxJyYyZlhRZFshbnVMMApMLCM6P11CWmAiMiVLLWM2bWpgYkdTZ1IkVlExVz1HMSw4QXEtMG0uPTJSOmVpZDlfLUVMSzNBIzEnJjJmT3RqODlZMCdWY2BTJGxjc1NdJApWJCsvQVVoYSxNcSwiU141TjdYTyUyV1N1XFV1L01XKCZSUTAwQmI8TUoyTS9ZKGY4WSNVRS9zUHEnLWAsT0QnIUNpRVBcTU47RjM5Km86Ygo4OWF0QmghaGs1NU43WE8lMldTdVxVdS9NVygmUlEwMEJiPE1KMk0vWShmOFkjVUUvc1BxJy1gLE9EJyFDaUVQXE1OO0YzOSpvOmI4OWF0QgpoIWhrNTVON1hPJTJXU3VcVXUvTVcoJlJRMDBCYjxNSjJNL1koZjhZI1VFL3NQcSctYD5TSC1KcC9iQ1lHMHI1JlMjNEAtT2IjRlBRcGo1TApNUTUoa10qQWo3SGRPY049T29tS1lzRiw1YSdTYDkwWT5hTXIndS4qR1ZsVDI5SEFeRE9JTWwpLnFuLz06Z2InWEZgM3BJM0ctW2JSJWU/LApnYkZeMmcoTz48J1VDVj1ELz48LWstOCJmNE5zcmIjNiw5Qi1RXk81IWBPbTQlSFFZYWo5Y2VkNFZYOFBFU1ZSSTtpWSNRMVQlKz4vcEdPNgpMcGRIZDJNR146QS9jSXVXLVJhWzU3YihOTlBVK19mODMjaFdrZCstZls7Vy42aTszYiRKSk0nVSxFOzxoR203czpFISZhOUxROk4+LWdgZgo9SSxbWDksX2pnZGkpUFRXY0MnQzw9cVA/Jzg8M3BdIj1fKCxYJCQ1USxlSi9SQ0NGKVk/RF5MNXA1cClAWiNXX0oyMVhaV2Y+TXM0YVAvUwonU1RgPVIpPjxCbjs6MjFfXCZsKiYtQTdKKjo7OzQqPktkX0U/aEpHKDNJWzJEPiY4KlpEXDM2XFRcY2VvVEtLRCtWUl5pVXQ0bls0LWxdawplPDdma2BqQ0olVW9HRHA4Nig8U2FALCEjWU86aFcmNHNvMy4qZVY/X1IiWz5UVlg2bVZYJ0pPLD4uSlU7TVRgSyUzOVJbYydxMGtgdFRiVgpnMGZSbD4lOzsjRD0iZixlPj9VJEJOWjdKVmpcNTs5TnAoV1BuN2kzLlw/b1sjZSZ0WTcwdW1xaGpIUCcxTVEnTy5yKm90LlFYRkQ9ayFYIwpbKl1kakhZSSE5QVlNKl1QIipYQyYzXFIuZk8zLkUlXWI4JTZXTnE9OmRfSF1mLXM9WmI1MEU1aUxgXC83cFQhYFZHWV9xYFE0YzMobmxyPwpSK2IxUEhTLHU+bCdGNTFRQTRWJlZTaVwmL11kXylYaT1tN0kxZioqTmQ7WWEvb1UhSFFDLWwjZ3FycE44STBkUnJSXWcuPkY7Nj1ObTprQApCJVtOUkc3MmlkcVlVYnBTaHVUXnJcZXFGOUUyQjs3L3UzXWVpdXFzbj9fTXNqdD48Jy84XUJLaFYnajE8ZiJDbU9OLGY1QilxViNPX2pRcwpaLS1BSlZeM1xkJiVBZUJHblBfJEQ+dUo7XyVwV3NNa2ZtcFkkJjIiak9HQjtELGNSLVFmaCkmODBdQVhaczpsOlliWjRUcyhNRFtfZjNuQApTNGEuIkwpdDVzRzxyamhBW1Y7JCZYcHNsUm1MMUtxYU1gNjsvZlc7bz1PQVtdVyRUPkFsUC0sUGFXSlUnRnMuRmMhUGM2YzhnbyskIjtINApfaT00PkJOTWRIKDghIUFaXkdgMWtYb1JILiJqKVglXWE+blFYLTFBWzRvVVokRj46XTFXLEJtQEpsbnI5K1NwI2EpTl5UbGwoMls7O01LRAo4c2UpZicxSFJtbzUraD8uSUEoLkUoLlQrOjRuNGZEMWIkSTkrZ15gM05mYycoW1wySVtBbUFPM3FdblchR286Sjg/OmdwWCdoYVJKUDVmVApQSWlAT1wjWiFFMjVaXExSWVwwLCdZM2IvW2xUYkhERF4qU2BqZSFoaFJGSm9hY0pEdVpLUURxQ0orY15FV3FQKmFkNilGOD8yaVpvJT5ANgo9VixJUDJ0Xm9aL1RFV1s/Yz1JN2olIiQxLXBjWyZbXzdXPkU/O2Y1MilwZENEOzhbTGwuIj1OIy1kMXIrS15lW1lDX207Izs1LEU6JSM7MApnb2JQW2VYMFAiQypMQkw7ZTVacylOQWIjbzM7R1Y+KztTKzFfP0VyLy9rcFNUQyUmY2dNdDtmXiM8KlkpYGksb0ZCQlZjPjkmcWRPaUZpPwo7VTRWbEg0S3RuJ3RwJzouRSFEZzFwc28nMkBmcjMvJmwhTiU1YnJ1ZF5nQHNBKWhNaTBUciwtZV4mdEYqQiJxaExYZC9xQVBKdSpENkIqWgpIXU9jOTVCMCxxayVZNy5MXmQoXERPQVpOIVYyK2ZmTGw9K1llSUtJYHJGW05nXl05UlcpV0dyVGk2X0BMXDUpYGBGMm1fQmwnN2hqaWxTVgprTzs4UGRBc2dINjdjUzU7ZSRfazg5Imd1S1w4ajJjKXJZQGlBZDBgJTdMXCoxOVs7WClNNVM0SGVTc29gYFFCPVpqWVNmPkdeY1JcOzQ1Rgo1SS03KWYyJ24jK15ERktINjInKS9eTEtrKlthSj9DOy4pKExaO1Z0MkFAbEZhaDMnVEJGKyRsbTs0WFkpSW0/PGRPbzM3RDNfXTlqISVmYApzMlpzQT9VJUQrS2xHUnNsP1MzQ1pva1BHSF5sKERYODE+QCowLCpuZk1LTF8tMWd1RFRIVWdMW15YTFhCb0o8NzkiVWElWzhsTStOZi8scwpyWmZWTUlKbFJJJ3VFcmk4cSM2KGJdaUA3O2dYZT9sQW1MNkhxVzE6cUUsVyE5W2xXKDRTSU1GMGMnXlg7dFRBTkhlYSdrZFNiSj5VN11LPgoxXkhIci5oSV5OKkV1SG0ralFBbVRBJD8lPC5BRXJrJC05M2FEam9gMyIkV1o3YypocWwlaElVcCQyQCJnalg9bTtMSGljVD8iVyUjWGB0aQomPDc1QD4+cCVxY0JdRUFnOGckL0lxMEdaPkxLRmpFRDZtJSRROmBoaFkmZWpMY2pEYWxNNWVeSVdOcThJKmVVW2ExWDs4NltVQnFOWGpVUApicFM7M2tQIl5ncTwocVU/NTtIWU1WRGVBV1ZITGVBaWpfISRvUiVuPUxdOEUnW1tJaDYxLzRPQmdfUTdxdSFvI0YiTDdtJExvKFNtNStgQApyO1RVIlNbOzFJKVklTW0+UmAnPEJTYFQwRzs4bSJVJik8SklUdWZeUURkbD1wbDQ7LCkxTy44SiNNJHFnKl03SXBiV2JoTChkITQ2cl5EOApDN2kpKzJvJT1dNi9eRCRyQnI5XCppSGMmNS04VFNEYzo+TkQ7ZSRFLXE9LiVuP1Q8KTI2XWUyVTomakRWdV48bFJWQzZDaXU3TSlDOmczSgpvL1pfZUBnJzJEW1woVzBnI01gIWNfa21wayV0SGJbNE5BVCZdS1JAKkY6WTRXczYiSDdeVWIkJmlDZD84MkcsWkYnTjUzNj5dZDxDZCpYUwpEMmItMmJPdVVbLiFxS2BycVdxKF83V0w5WipvPzIwcW9OVFwmNkQvRzFGQWRjJXNxcz5HOz1UIUdTRSpJdVw8Zz5IJFwhMys2ZCYwayhibQo7Z1RFYEtlXU9aQXVNMSZXQ1k0LGhTcm1PPVFCNCs0P05PYzQhOTQrJT1gXD5KaW9obGBbJUJtWzZcXGIjTVVpKUplO1dAalxXWCU1U0BqSQpqT1E7a19maix0SlYiKyJIaDAvaFU7ZSt0cFoncnNcKF5wLFVpLHRWPjgtJ0BtNGZxOjI2LjEsMUhhPC0mSl42YSw6U0U1L0hfLzw7Xjhjawo9V09xPGVkaUhPWWh0cVpZbm86S0dlUDlHTmthQlsjVSs/LlRBSCJaJXIlKFo4Wj5qME9JUDRGRylOOyxaWyptQjlbLD4pKy1oSUA6RD9RPgokKGdPSlg9ajFmbzVeZTwkbHVhUmBAVypHLCVnSklZb1JcSiZSYDhsRlBdMyhGOjdgaWdobV09LGstT2YhR15fUFlBKy5SRjZTT3VCZUAwLQpJP04tVzUnXkhFZVd1byhwOV8/K0Buam4jPzhdMGRtNG5hJXBSJzdcVmlHWUdJW10iQ1U0Tk8pTz1FTXQqOlskR0o3OixvOylrWyhHZF5EUgpdJHIrUmJHIVdGRk9abHRbcmVeLlIqaHRTRy1rT0VKRk9dMEgySCs9L15SOjddMSNdJyZecy0vS3FOWjAtXTIhTWxyYlBAJ20rWF07K1FadAoqNk5kbVBnJWVucUFZNVcjWVJtMiEsaWAuWlJGPz5RPy8pZj9oVmlvR1NwOGtCZis9VmJJSTRKVVZWZl1hQjwvOC82IWIhQGozUDdBYDZHaQplPWdFdVFJK01TJ0xHbzpKY2c4QEdhViIiW11sOUslL0AsYGsvNSpgVmIhU1ZESGssX2NQZDZmXUxVNy5DTGorP1RjRmVkXExlMkUxOCMrJwpGMS1jJCMsMltHO0ExJWM+SzRpOzkhc0I3Z2dlLWQ0WiI2JUwtQSVwaTIlYiRaOVpUPmZTX0wsQUQwTTVBXUg/PTNnN3VXRjJhRz5LNUxvZgpCJGsoKWclbj08TS9eJGVqTkNBIzIqdVFIZERIcCciIj9bLWkyKCVdQkdhbWxKOnIxTTpvLz9nMGhcIl1VYnBHJ1oiO0NXZ0IhTEBacmdQQApeNjMxU1M/PEB0MTZiZHUmNzBWUm46cDNuOHMoSEZXPlItJzdbPmJPQEdVdWBXRWpca2RcXGZMJTVfLiZmZWhvOV5nbjM0ZXM8R0FBPTxlJQpYJGFUMEFROXQuKEVQYFBVJithUGhyam43bWVJcyo2RStBfj4KZW5kc3RyZWFtCmVuZG9iagoyMyAwIG9iago8PCAvVHlwZSAvWE9iamVjdAovU3VidHlwZSAvSW1hZ2UKL1dpZHRoIDEzNjAKL0hlaWdodCA2MgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA5NjI0Ci9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KPj5zdHJlYW0KR2IiL2ZoMyZ0aiVZVC0tUWZfUEM+KUxzMWxdWi5eUiwuMWcnXEpURjdoMV9GVDgkYmtMMShwUkAyT2AtKGt1SDlMMShwUkAyT2AtKGt1SDkKTDEocFJAMk9gLUhqKFEnUTxXNFUoTURxLk9NVUVhXkxlPyMqKDNacENBVC9hPWtQIkw6PD4oNUQmTGo5LWUiX05kXG5zVGFsbSVfOUdGak0KQiJsRjBSSnNGMjVaKjhAWkBwMm44Pi5pOC4mZUBxWCprTEsnVidDXm90aW1pVTBZN1BRPDBiTk90YjNfKjVZQ2guaGRyY1gpLi8iQDVycDoKJj1xTzhOZTNkZjcsajs0LypTL21pUkpXZzg0XjVVZENuPG0wL3NYc0VaaTg8Qm4uYTtWMmpZYl9QIVE0XFNjW0Q3T29ubUwwKkkqTVlLT0gKVXFMQCNIMTo7LS9yNUlmOUMhallrR0dzOD4hLlhDKV0rJ2ldSGwlNU44MSFBLzFcVWo7Kll0LEo8M2FiLGUkRVg3VHJSOW1ZJVE/NilKIlkKYiQ1TGNUc2lQWkZJRU5aJEhkRTEoRl4tVl9iKjY9KjpdW288TWA2WycrU3FsbykuMjg1V2pjNzg8VlkiL1snOTAoREZYPVFWTFghJjxHVFkKZj9fdTJBQD1SanApIjlqXCMlQjM9M2klWWFnPyRkYlpbUkNcSEhpbCtxRCMqKkQiQHU9WjJrWCRQaWQyRjg1Ni8pQmQ1KUVcTHA2XF0kPFgKbmZdYUtHLzFMLW1hZkQ7OE9VRzRvQmM5YTdSUjwyQWAsbF8rQzleckBmNFUmcEVSIVhoTU9jYzVNTyYqW2o8Nz1dQ1duXVYoMUpINTg7LFYKRXVHMEAsTlpELj1yZlJdLXInc0pcajltcG9HaF8zUy5LKz42PjlAa2VfM1hLL0lMSThRLlRMNTshNCwmalwuRkJyI1JXVFY1aDNtLDotLWEKJG5YIWZIVSUtS2lbI1dObXBzKTo9WEhIaDsoRiZmT21IPHVocjZmVkBrNnJhTkpsZj84NkY/cD4uSFVVVW0qQElvOWxyJk4xc2lJZC9ccTQKazBGKWhoYk50bWBnM2ZhK1VTTyYuQWVwYCc7IzpkSTlxPk5ARWlwNChFXmxaNENjLW5tPDpsZTsqSmVVUy00PD5gSlIqRiUxXzY2bE5zLHAKYmdQKyVQaSJbXTBOMXVDTE5JbC9hWipcXV0xTzhFKzFDQVY+YVRDUyFhPTtNZmUhUWkjZURHPyZeQixbYTstVV1uaVxQNVlqRDIrVk1KKnEKJ0oha0kkYytORW5pWGJqWGFxMSJXVDA4ZzEoZF81JGJHPi81TGRmNTNNR1JHbTRtK2NwWDglRlVHQlRROzpMckZAU1NAMFV1aksvaVRsMCMKbChTQUFTQmkhcEFuJlY5WlZOISk+ZDwoNC5jJklzXFgnUEZsclxXPmtWVm9oU2ZcYCxpdU0nNlFFSk5hIy90ImRJOiE4bjgpXUlGbiVQKz0Kbj9LaERLKjBmLy1abT8mM1UsbyhJR0pqQWYtJEw0QGNUKHVXPjhAIWJXbWJNJCNUKWRcW0wwcDIxJTsmXSNgMDAmKiVWJyonYTY/cDZKX3MKPltrLkNHQSp1L2IoTy4+cnA0b3AyLEdRZytCbC4kNHU4XFdSWGFPVFskMkAkVU8oZUxqJDc3RDk8WzpQLStrJCpuYllRbFJOQj1LY0ZgI24KXTw7OC5UYSFLSGNQTGNNYEs1bT5DNzM6W00paicqZiI+KC0rNFZuakBjPEUjXlElT2kldVRfPiQoXiljTm49I1o9UytpVytNP01MR0QqbD8KWDA7c0FjUkxfZGlIXS4hKjBNKEdCRSdPXEFuMC5ZcFlQPypsU0JnNyZBSWVEKCpkSCgrLmRjOWZvVjwsViYlQStuaEw0dEQwZmYrIU9BJ1sKWyxrUyhCbnUkKF1yYkMzTGtLLyE2JFVtamgnTUltPWVjNjNxQkFmKkFJRyVFMDU+YixjZU5QVihMZTt0YjJzOEMwRmN1cFsjZS5RQWoqOFwKMSFnZXFmbCkibGJDbHJwSGs7N2lPTy4wQ1tjS1I5ZFBFYVg3TjIsPDNCR1BRJ1hmS0YqRjJJMlApKDRnXCVGKS07K3NWPWpRXFlnSk49dWEKNik6VyRNO1omaU1jWytvT2IubVtRS2BkPzJFM1Zmcj8xTlFVWmZyPEVMPyNWcjsxYlJPO3NFIUBBaWIja3VuK0JVblM6U0w3YFYpMTpcLXMKLiJGL1coQGdATyM3Y3E4Vy5kJThdUjpnaVd1YiUubGBaYCRJPGBwalouJSxNZzNHNyY9QGEtVC9na2M4WCQ/KkE9V2g5aFI5QW8tIjZbZ10KJFs1RT1BZjRiW15DISdYV0FyKmtuTXBcZDMsNVc/ZG4xTTNcLyNhVCU6ZG5gWUhRcVEuPVYpXyJldHJeZjMrIlE9TCswNUBaR1VnZWtkaEkKN2dUWGA9LlRXZ3BsJk5WPVlSOUgmNiFVOGMubVFFT2MvLF9NJDkiQWJYVnBLRG84YzFLbnBIIkdvPiQqcVEuXllSZWhKSGpoYVopO2Y8aS4KIS9JMHBLTEZkYSg8MFI3IzYoLSNKNjtudSI4WiZHKDk0YVhfcV1AWUo0NGk2TTk5PzVDPmhqIlpocS1WSFUsRDdlcz40MDIzNE1fImdJPDYKbXBXc1RRL1kvSC1KcjxJJi5bJS9dJEkvJCEoRmEycUoqNiNFbi9FRmssJGdRMnBCKVpgRzxrYWBjIj4xXi51VE9PYXMpPz5TZ1xUWydeRDoKPSRoPjZKXURuTkI3RDJfaDMlKTBcKGp1cUYsOyZxUl44STdrOCM5ZiU4ZzpnVXNQQ01Yb0AlPiFDYC8sWSZoJWZuYlRzMmovJiFbKnRiMC8KLmtkNFRbK2RkI2xZJDQxKz5eP1UnKjJSZktEaTdhPVZMUF5aSVdJcyslaTdfUj1TTyQnQUBoXj5zUGNeWj1haypqSGVvWW0ydWE8ITR0R2gKKmhKWTtPQ2RTXlA6Oi84NF89blQ9cTEkJm9RYShgQixSbWhRSD1UQG07QSQ8YEtuLEVUJ1IlUVldREZhVChwKlZdWTkrUD8tPydeWGxnOUsKQkwuUlE6XWxkRWdsREErYC9zQTZnQEMoO2RhSFJGXFttYF0xXiYoRi1QVSktbkRTTSQ1YHFrRFYvcmxXbmJUczJqLyEwVU1VJCgpQzhpbXQKK1trR1c6S2ZMXzNZbS1NcVZuOz01V09UTl1rJm1uKXNoYmIjdSpTXnIpVCc9Wz9qI28xLjNwMTFLdWIpUGhKYV8xQ0MoU0FYVj8hVT1iYEQKZTZHbTNWajYscS1wNnFqY2N0TCEhYl1kZ2I4JDdDXUlbJHIqND8hYihNRjk8US1EJ2VZL0VTZykhQkYkM3ItRDojKCgvVDRtKGJnNGhnLmsKO2w2OCNka1dHdVtBMmpJPlhMT0xNT2kxITdeM1prbTxtWFlUcFYkJFtDR3IuY2MkOV5wX3FJY0FGSSNQIixiPClgXUQzR2EvNlFtai8hLyYKcFk+RG0+UF4sa2g3ZDZdV18xbiUrY2g9XSlqJUwlUHF0NXBpRSdITFNFUkk+QSM+PystZSRYRTo1NSFsWFk+VFxCWCFeYVZAXDsjV3AyS3MKTytjZ0Vwbz0nIj80ImZXUkJvOEowRlQlOF0uZkJOJWM+QlFBWz4nYEAlcFt1XmtCJThPbzQkTGpbbVhhVkpAY0cjOzAraj5GVmFYTEUqVWEKZztrSCguYlYiQFIqP11lUFVEK05ebVZVaEhaLG1SOElpZEdSPiZJQkpYTlxsXTlvakIpLlNlO19DWlg3Syw6bG06Njs7JyY2RjVlaTw3RUsKKFNpV2YwZHNRQ0xISD5pWFtQaWFhSzo4IkJbMkBNciEqQ25hS1QmMikjRGN0Il9lYUxhSjpbbDlcLltLNXElKV0rWEczQCZBITlGWydMYGUKKShoQ0dFN3JjNllGSmpQKTEhOkgnU2c4IlU6QGpmQXFfTSlSMjpbSTsiL0AtKGIpWERyUEFyVFNaLjNeY0RQQzxVODpMYU5salAkXkMqbmAKJ2hbMS9fTUdSXmRQV1FlIzVLRy8rcCY2MyZBTWY8J3UqLnEvcT8hbmpvKWhCVkIiPj9qJzlJVD1NLF4qNG1fU1wvM0BMbCJdL1cxJCRDdCkKK1chKjFyUW87a3F0Zz5wUW1wSDZILEgkcUQpJV9xOnBYXEFiIVUjcUIhIk0lTT4xcj41KzEzLlNDSW4+aDRWaENkZ1ZHZiguLSNdLTdLX0MKOSs/KE1LcD1FOGE+NjpvTFpmLyVQZiFfPFs2MGM+T2czVGlESUdPQ2pIYFssPDZKYTw0UEBlMz9aQEYpMis2TkBlXDgxaS8nLUYzS2hESCoKNGYhXzFTZm1qQGR0SUx0JFZpM1ZwKSg/OEtoYm0wWGQtVigkUVsvYClNRWtsW0BWRy5fbUBMNW4maWUvKkJjRkMmaTU2UjxXTyFwJzJxWmcKXWo3ZWhfRWJjJGRsbSdjQFA4Qj1RUHIvYEFPKHQuMWBdI2A7b0QqK0pZaWpuMEZZaVElKVhiLV9fO006MEZZaVElKVhiLV9fO006MEZZaVEKJSlYYi1fXztNOjBGWWlRJSlYYi1fXztNOjBGWWlRJSlYYi1fXztNOjBGWWlRJSlYYi1fXztNOjBGWWlRJSlYYi1fXztNOjBGWWlRJSlYYi0KX187TTowRllpUSUpWGItajU3ZCI2PFVQQl1VKmQoQ0s5PygzI3A7MVErVU0lW1ZQJ0Vsb1JsK0EvVywxbUhja0wraE8iRDJ1Lj5gQUBPUEcKZzYhZSFgRFNVWzdXcChTITpkLDVhcnQiKUVSX1NVXWEvQypmQG5EPiNpUlU8U0BLayVBLEJFUitGZytyY2psdD0zVWBScj8/LUVGOEktVWIKJFZCSkpKazc3YUZYQVowNVAlbitfImdWdDJLMTRFbFBFMUEiWydUZUcrJGY6Mi9qaG5APEAtRjMpLldDNSVoT2goNlhnbCMvITldI2RaKDQKO0hyYF1OUXR0YCdpSUVaY2cnQzdFPHFQaic9XXBVcGM/cDxeQjE1OGtjbTZnN0ZZZiJwVmxCPSxvaCcxRyVSWGZwPTIldGs5RzlmVGtrUT0KLTYncitNX2RobjtKKGRwaz4nMzJfSFJYR0JnYyhIQTxeZUleVWdNOic5XCpNTG5pWSphPmtiZ3ExOiZYJjQtaWJcWmopczFlJFhXLnFnQlUKLilMUyVhSENHTyRMPiVFSDUlTThWS2JLVDhvJFBXJWdhUm80QjZCJzo9Li1WP2M3O1g2SkRudFkmS00qNnFeV1lkTGZGJFcwWkEwLEpmc3MKbC8kMTNkUzxvOklGYi8hT1lGYSEpWHFKcjFMRl8xQVxnV15hQzNYNzxnTFZyK14zPEMjZWNRPFxAJWtnU0JTWnIvUGAlcD5LQ2osNVdxZ00KQ3Nkcz9CS3FvYWliRFxAWydgckNZQDtyKVhDWWtIPU4iVnVRRWxtNmNOJ2VSUDlHa0ovUy47XDE4OyhHKi0vZkhnZUpuVWI+RUo+Ry1UZVQKXjlYcGkrXzZrN1s4cEZnVT41V09MJChOMWtALV9jOT1hbzgvVTdZSylGOFM0NTsvRFUmPFgpXFpFKU1eSDd0JXFEMlIsWz5ULGAqOVExa0UKOTM+dFgzbDxSLSo3QFAmVkdUTzZrQiRuKjJATnI+alFldWE4LilZRiNeNkIpTEgxPUIvJEhtIlgjTVdWZD8rYVI+LEleWHIiYmVqXChBTi4KaSsoJzBNPSVlOVsrXT9HRmdZTDpnKSMtb2NyckAnQU46dHVHblI1XUFmOjAoTGZBaShNOEUsRjoxcUZnQklBNzVGMmVgYGxZK2tkMnFbXU8KLmNxbmlIbnExZUAnRzchM2EtKXJHLDNHO1knWT1yXjRfZmclImhSWlV1OWlWLz1aMXRaTHFXYzkiL0dtTEk4WGUqdCQ8LzJrKltbVy83YFsKNiMxbVozNl5Gc2FuJT5tVVxHMmttR2VYMzw/RXRVcD03dSMuMC1yS0JkVyNyUSdfdE81SjgoSG1KNDJjcERUWFhwWiFPMV1tZDNAZnNHUTkKL05QOklqLDJRVipOXW5AQ0Y6RFVNYzhpUXFdb0BNKitsLFdcQ0JxVz1GJ2tRXVZET2owRl4xRlMyNVRvPnQ7NWVlY28/bUxxSVUyMEhYI2gKJE8vKnVYSjhkPUFPZyJSaU9XWzJqXCgrWUMwWSQqLU5vPnRXKlFjOiFlMXNGN29hbC0lOVpGSSlfUS9SYE9CPT5GP0lbXXFSWSJTPjtmNkoKMXI8SjJLJV1PPHJuSlgqZClwKiI1YyE3XzFIXk90Sj4qWj9aaEo8b1RYYDs9SyhBMTUqWylFbGMlKzQvI2pWYD0ncDlcOmxRdG9cVHFiTkgKPyslNmQkXCdgKSZOc2lLWkRkLzpMVSkyQ2g7VHVGWDhranVwOUlZMGxRWzwzaU50L2JgZUMxbWhmJydeSyNCRWAiRCldJEI+LS1rS0UxVyYKMkU9M2xHJDMwaS4tPjtEamMwSUZXQy9fZ1U/TElKNSF1JV5iKjVGUFQrYDNpLzchcS5MPSFnMm8ubCFjXV8iQikmaFpVKENWV0I5QUhRL0EKKyoqJj0zaDI6bCRTRFU9cTpcZU1VRHBQcDEtNlhcKC5JdWtvYmVCVlpyQj5vWiJsKCZDInJyTnIzUDV0VUxrI0FNU24mJlxDKkZBKE0pKzYKN1Ftal5uOCJgYm8pZVxlKi1TNjZsXjYnMz9fOkBMJDhSYExaXE5kIigqPmpQaUUpQy9hYy4paW0rZW0rLzwsR2U5bSNTVVJtdCR1ajIrW0YKbWw3ZFcvLUFDUiRWVys5M3EyZyRHMVIxc29laEBTLDhAIVFYSXVEb04mUXIrTVg4Ylc4IixbdEw3YFYpMU88KypAPT4tTkIqOFVGWWQwUCkKJjEvNWM+aUJ0PShIcytOXF8jV3VsQUcmTSVOL0wlOHI/WThSNnRbNlMkOTY3MV5HK0RVZS9bRnBmU0NxV3UmcylCNDI7NENDPVo6bSUjbHIKb1hNLGE8Lzonb3BuN2JgSiwsVS8nRCZzWWg7KVdVaTdEdXJURCYtOkgzcjovSG8lQmtiTyZ0TVQ2bEktX0dFJmRcZmU+cEYhSlpNQltPYj0KR28wPD1dP2lAUWs6WVM1aiFUPEsiIjRQcUJBSzltQi5cTGAiKDBDPkZjZDU9P1NmJiUsOEEiOE1qZmw5Zm9iREttSENaYFV1WVIoKDk0cigKVHNbU2wlZ1dbMjczdE1fNE9lZ2FVVWgubCtsMXBLXEFYSkxpKmt1Ii5INEJYamNbXDouQFkvbC9uMiMmcToyOyU8ZFlbX1pxXGdyYCpEaU8KY1w1TCZQL0ZFKS1bVElLVSZNVkZJXS9wUGIoZkVhSVF0dFxQaCxJLytSYGAkRC1vZiI6L21DWl01IiNbbT5JSiRpXGMiSihFMkpBNFFNXlQKWiRjMTglIXFhR2FOVFJHVidVczteWyFoa2VNIV9XVjxfZ0cxPjxyR1YkZmciTnNNUzJCUUhqRT4vJHMpYilTSVlhVGVHWlU7KmFkP25fXiUKNThVdUheXSZTMV1dOydeL0ZaX1xDV09oQ007aU9BPlwmI0ldcFRDJmlhbWMnPkRwaydGTVdmWFhoVW9PYFhCYTpvZVk0WzFlTSNzNiRKSCgKcDR0dDs1JENjaEwkbGdEbVdRO0xWJiw7VWZQZTxoUEErK15aQksrU2tMO2dbZzZaXDtgOGYyQGYtZFwmcDYvTi5aT0M4N0FadGdFR0hrZmsKJXFlWG8sP1FpcEBqW3VENkhXRUFOYjBrcSVDVVpLIXIrWj9PPTNgdUBnXUJ0VS1gamUnZ1NxLGhcNUhmYzxxIl9LMms3dUxPcFUuVFNvdG4KZCYtOy0uU0s2bjZbIl0qKFYpcGdOJy9bNG0udWlTK0s3ZmM8QEE/JidQNmduJEQ3U2RCPFsoLTArakRpZSs2Qi9lXltIOVIhIVBOKyQlOi8KKyIvUEBaa2twZVJmVi1dZ1JscVJGdSZIPERXcW5tOTxNSzYyMi86LmwkJkxgPCdIXSNOYHJdUGBTI1ZPPDldYHMvUXAuQ2lmcWZ0Ti0+ZkMKP1g5J1tLciFbVlxLYF5PWDwyOF9vZWVRaUhRLlVuTTZcISZmNVJuXkgiMD9sPjBIQWtwWFchaUNcRT5tZmg8Q2kxayRYWWJhYjNwOzsqPzIKVFxFLS5qVWM6ODxIYTluJ1VPU0E1YUsvI2VtZFxES1VTNTpPdFNFUShrb1YsaFkhRGVqKSFPXEVbXzQ8Y05dXG9YXTM6LzshNHBcXUhZSCsKVSpxSG8nOFNNM1huRFQ5bkVoZDpkUVM+TmhwMUgmSEA+XFM1Tzs7OGZNNi1dSFFPQiozL2pbYiZAbihGY2Q8ZUJEY2laWj4/azwhK3I4RyIKIm1FOF9PU149YVBYSlkvOVdvL1NtPi09Jz9eVW9CXDsoJ2A5O2VNIzdUJyNRLkdXNVE5QShxMFE/TEQ5TGhxTzAzQF0qKT5dPDU5bjAsVk4KJ1clUWpqdDMnVVcsKmo8RmItdF0ubSlmKWBUPyZWNWs1SC9aQE5tZytPVUcpPHVdYSw+Lk8wOzBHI0Z0aGUlbmtTLVFeZ1cpYHRpSmVzKzIKRjkwTUI0TT1sUWAjXFM5Um07XTksKy1dQyw/K1MmKFxuP2dVOm1VPFQtYkk6aDlvVzgwKk4wQltkOkJGXz87aigqNDJMJi5dXSEhYGY0VXMKUHB0c1piSzhrN2E9LSY0RTBVSkkoRGUyLENVJCpmKEJVRmpaOmxyLFApNCIvKzhSR2xuZHBLTFY1RW1TUSFMJ2gkUWJsJVhkK1EtWWU7bFwKZmImOzJjUmo7cTdpWGtLSyInTmhWRG9BY1BkYmk3UEpUalBWXG4oUVE8aUdeYFQ6UCVTOVRTUWBGTmFlWTkoQ2AoQEF1S0R1bl1kSzoqYDcKLWk7XC4tWmQ1YiQxQyc1LGswVFxLVXR1OEMmcEQiX2FCdU1sMDJgJyxQMi83LE8oJmM4K1I+WG9GL1ZrJSlYYi1fXztNOjBGWWlRJSlYYi0KX187TTowRllpUSUpWGItX187TTowRllpUSUpWGItX187TTowRllpUSUpWGItX187TTowRllpUSUpWGItX187TTowRllpUSUpWGItX187TToKMEZZaVElKVhiLV9fO006MEZZaVElKVhiLV9fO01aVD5maCRfSzBfbExxcjhcQFNtK09RIipJcEFUOmZwQzlHJmhVaTtkMnMvXU5xMmpvYjIKZ0Y6ZzQsPF9pbDhfOVcsJCpPUUlcaDtxJUNrQSVVb2s0ZFtBOCU6UEw6c15GcGxNXnEwN0o9VDUlS01wWmpsMF1HJSVnUVVTVCYxJSpZIz0KPjRzcjRfWlgtRjZaKHE0RDc2TDgtbT5uNi8nXT9tRmFZXihHZSUtVypwTmZoYGEnZUlAUT8iNEJbK25hQDJSI0FKYUEuZXItZzclbi0+LWsKUEAqZF83Mi0wW1FHbksuRXUzV0s1NCZCNiUoU1FkOU5kY3RjQVpoNmc3JCpZQ0pgPzE9Ml5IVjZoRy5vSyxEITtVN2tTS1IyLEZQOCQwPEEKOTcxOz1AZS9qTm5mXHN0cj5zODNtPVwsc09uMTkqTistMiddSFpvK1VYIlc/T0slNzFNI0VgXjBpZU5aUlkjVFEoPUhPYyREazE5XmsvZWYKUFNYTjooP2RTSVJsXCxTYVdqckRhPFlPPVpsPWEucihZN11qVFtzJ3FVW00iLkYoXG8hXG1eXUJXNC08ZzJCPmNqNUpnR0VmWFtdZWV0J0wKKFBvNmJEPUdaYz4pOmMrYChZREVJJCNnYjBpK1ldQG5YJTQ3KkJEdGhWRVhaWWBwa0g7ZCZoaj11KDczJipGPzpaJGFnWV90LXBlSyo0YD8KUTdYRXBbOk5lbkJmVCNlJEhtJihgRTg5Nk9rajtfMlw5Z15YIV1PQmQpdSk6TmE2OlxicGRNPHBBOSpQNS4zT0NsUWg3P0AyUWEiWTkxNz8KcEtARjlCYDIrSGBCLkEoIUFdUGlsNzZWaUluKS1qT20zXkhIUEdsJGE9VlY/S3RORG5CJVBhc1E5ZDU9P0JyNXM0W19EVlwiJkRkZmUiPVUKOSRGYFlrSiYqZkRHO2UjQTB0c1JMLmknXk1jXklxMTZJJkZFMzRdSFE4WEc1WF9pUF9IYmojVTlfIVxOUV1RTWdlMSlVKFY1J0g7b0FWPG4KXXRSXWktMik7T1Y6cSJpUnJiPDcwTHRGU0xQQjRTXkUpQlJkLmcsI1NAOUQ0SWJyRSQqclsxajI4IS1pbVNVP0w9NCVZYSRjW2ArQ2opcHAKZFNkMzckKlFzLjpjOWpXaDxoNFtEJWhlQ3E5PTRpZ1Y8PVdBbnIjJFwtbWIxMy87ajZRIjQ3Xl5yT2NbOkY3YG0tLDAnNUx1c29vXiNQV10KPEMiaSY4KWwyZm90MyUiYj9uNVg/bCRAXC1sOClsKShRVE5kNWtNIiUpWGNKLEtTYzhtLltqWkNcYmt0WWksR0ZnNztuSUdXUWljXGVsLUcKSFBHam9maEIlMiheRGgjZnNSLS5tViInND0vQFB1KV0hKVMlVic7XWVjTE4pJm1hMmVsM0dsYzUmXzxAU2pMYj4lVkw/LEtXYDlvLnJhSzoKV3VCJXAnKnJxZWRyIVM6cCM7OSxaJ1ZXKjxeRVRuV1MrSFoxMz4nJFksP1heMF5WMEIvOV1qZ2BGTyNvOSNPRS4rQy5nZDBGWWtvM3RWQkwKTDBuUlhnPm9vc2FUInJMcTNsRidHOWVgdDkjYiMhZGZyKkQmWylTXkpUUGA9WENcMkheSENcYVlFNTsjZW9LQiVaLmx1Uy5PU28tVjBEbDwKMWt0MjpCM2MoWyVPWy9GVHMvS0RRRF9mQDJNXFZQcDk3IzYlMEolLkxfaDg6LG9bbmdncl1iVUIiYnEmaiYudWFDKzFVYCZYTVpBW3EoXysKbTU9YFVnITBzMElVQV9SWSpQR2szKWgoYzRNY1ZrNi5wLG1MQEtJMXIrdWtXTUI/JWNaVE4uYFFBZ0UsVE46dCppLXVRS15HN1NdSzdcLSkKSEZXcV1gVHIrcStDMUg9Q1JVSjxKVEQlMDY1TG9QUjYxMWQ1cmZDLygoLU5fOjRGIjxpVkE4WyxYLW11X0xfWFNFKShVc1hXJF5FTD09UikKR1JtMiM0PWhSRHA2ZGFcOE1kYTE8Q3NQNi84My1SWUlLT21JQCItJ182NlpiLjJeIjtJLDtKPUBfdC0xTT41Rz9QailFcUhsN1pJcikyYU4KXURfJyVxLiEoQz5FKCFwbWpEbEVaTDQ/Pk1ncVA2Im0kZkM/TUgiUVwvUFwkWzVrSWc4UDpAQGNLLydqWDQuNUNxNlgxXShZQEtrUzxYUGwKOlchJVZSZUNuZlBJJ0siQW9tYiw4N2NSRDBRPTEnbi9kQyUwbkcsczIxI0JtbzUmaiU3PmpdQHFxUydbM2w/Oj1mV25RWmdCUm47WiVsVWoKMSZEcm43IW9oMi5XcSdDMkBSTHVGVTghSWtvWUNcKzpeajE1IUtfZik5IjkmVSJcKGkjMk9iJzgjZmNpbVchLlJFP1xeKl5tOzNfZ1JNRWkKLCheJDw5UiRfaF87U086ZjNLb0hjaVVbXT1zL19CYVBNOV9ASGF0ZFk9WUFAQ0EmO1I3QC88X0xGYmNRPXBrJj1HaTJhLVxMayI8Q29xT2QKKypSL1c2bl1FWzZGW2pEbCU1K0ElLm9hLD9NcW08USc+MGpNTkUmRUdMb3RZS2xeRWkqcmwycDQpcSc9Jm8zNTEociRRNVQ/P15wXUNrTCQKcyFcOTslcEdYYFBARU4uMU5NSmE6Zi1TYlM0b2Y6JC9HWzE8RyFYcSVda0B0Ym4yYmonajcwUzkoUUBcTSRRO3BUU3EiNCpIJlY7clFxIVQKNGMtYW1HVzpJMCwrRCdZSjFnJGk1IksoKTItWCJYUT5Cb0RDQ1NlN2w2MCM/MiZGamZEUyhJNVJzTCtXLl5vTDldRm08YCJlPSU+O0kwWlEKL1RrSUcwRlshbkBJUjNgckZkazJONE83MW47LidZbSdlUlNKZjdENTZ0NyQiU3NDOyNzLD9LUFRMRztETEBscUZaQT4vPjstQDNrP1gsVD8KJVhZVVREPzg4Ni5hXCUmbHRpYU0lSGcpY11APS4iLGpmcChmWGxwNF8yTGZhNkVZOThNXXNaMlxMTVo5USVlNCshWy5eaFckMUZgOy08Pk8KQ2siInJdaWExL3A5P3MkYD1wRjA4MEM2czpwU2hsYy9EOVxnW0loXWFVMUYoZCZDRmpgZzknak5rTVVSTyglZj4+PmdkaEApMnNGOWwtZlIKJEM1Wic5WyxHOVUjZ3QzQDUwdHROR0RtU1Y1blJuQlAmaTQuRWhHU19yQzdQQFE8J0ZTPUpFUFJaJ24zUDheVT1QViFeVUJvPyUkJC1VSlQKJyxkN1BIUGc/I0QvKkdUZVRwKFZtR05sQy9wME1OWFddJW9iPkFBOV4jL3BfRUhdVlZiISM8PStXR182WT9JV2ooRCpQdDd0V2d1UCwwOzYKZFc7Xl9iZksrX0ZEO1lJQDJPYC1yJmptYUJTS3E0TDEocFJAMk9haHBWSG1FRF0iNDsoa3VKczt0cUhkRVpdMH4+CmVuZHN0cmVhbQplbmRvYmoKeHJlZgowIDI0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDU4IDAwMDAwIG4gCjAwMDAwMDAxMDQgMDAwMDAgbiAKMDAwMDAwMDE2MiAwMDAwMCBuIAowMDAwMDAwMjE0IDAwMDAwIG4gCjAwMDAwMDAzMTIgMDAwMDAgbiAKMDAwMDAwMDQxNSAwMDAwMCBuIAowMDAwMDAwNTIxIDAwMDAwIG4gCjAwMDAwMDA2MzEgMDAwMDAgbiAKMDAwMDAwMDcyNyAwMDAwMCBuIAowMDAwMDAwODI5IDAwMDAwIG4gCjAwMDAwMDA5MzQgMDAwMDAgbiAKMDAwMDAwMTA0MyAwMDAwMCBuIAowMDAwMDAxMTQ0IDAwMDAwIG4gCjAwMDAwMDEyNDQgMDAwMDAgbiAKMDAwMDAwMTM0NiAwMDAwMCBuIAowMDAwMDAxNDUyIDAwMDAwIG4gCjAwMDAwMDE2MjIgMDAwMDAgbiAKMDAwMDAwMjAzNSAwMDAwMCBuIAowMDAwMDA1ODQ3IDAwMDAwIG4gCjAwMDAwMDY3NzggMDAwMDAgbiAKMDAwMDAwNzA3MCAwMDAwMCBuIAowMDAwMDEyMDcxIDAwMDAwIG4gCnRyYWlsZXIKPDwKL0luZm8gMTcgMCBSCi9TaXplIDI0Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgoyMTg4MgolJUVPRgo=</v6:Image></v6:Parts></v6:Label><v6:SignatureOption>SERVICE_DEFAULT</v6:SignatureOption></v6:CompletedPackageDetails></v6:CompletedShipmentDetail></v6:ProcessShipmentReply>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <v3:SignatureProofOfDeliveryReply xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v3="http://fedex.com/ws/track/v3"><v3:HighestSeverity>WARNING</v3:HighestSeverity><v3:Notifications><v3:Severity>WARNING</v3:Severity><v3:Source>trck</v3:Source><v3:Code>5530</v3:Code><v3:Message>Invalid language code. Language code SPOD must be EN (English) or FR (French).</v3:Message><v3:LocalizedMessage>Invalid language code. Language code SPOD must be EN (English) or FR (French).</v3:LocalizedMessage></v3:Notifications><v3:Version>
3
+ <v3:ServiceId>trck</v3:ServiceId>
4
+ <v3:Major>3</v3:Major>
5
+ <v3:Intermediate>0</v3:Intermediate>
6
+ <v3:Minor>0</v3:Minor>
7
+ </v3:Version><v3:Letter>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IFJdPj4KZW5kb2JqCjcgMCBvYmo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgNSAwIFI+PgplbmRvYmoKOCAwIG9iajw8L0NyZWF0aW9uRGF0ZShEOjIwMDkwODA3MTY1NDI0LTA2JzAwJykvUHJvZHVjZXIoaVRleHQxLjIgYnkgbG93YWdpZS5jb20gXChiYXNlZCBvbiBpdGV4dC1wYXVsby0xNDhcKSkvTW9kRGF0ZShEOjIwMDkwODA3MTY1NDI0LTA2JzAwJyk+PgplbmRvYmoKeHJlZgowIDkKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMTE1NzYgMDAwMDAgbiAKMDAwMDAwMjU1NCAwMDAwMCBuIAowMDAwMDEwNDQ5IDAwMDAwIG4gCjAwMDAwMTE2NjMgMDAwMDAgbiAKMDAwMDAxMTM4NiAwMDAwMCBuIAowMDAwMDExNzEzIDAwMDAwIG4gCjAwMDAwMTE3NTcgMDAwMDAgbiAKdHJhaWxlcgo8PC9JRCBbPDNiMDk3NjdkOWQxN2I3YjY2N2M4YzRhZWJmNGZiYTdjPjwzYjA5NzY3ZDlkMTdiN2I2NjdjOGM0YWViZjRmYmE3Yz5dL1Jvb3QgNyAwIFIvU2l6ZSA5L0luZm8gOCAwIFI+PgpzdGFydHhyZWYKMTE5MTAKJSVFT0YK</v3:Letter></v3:SignatureProofOfDeliveryReply>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <v6:ShipmentReply xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v6="http://fedex.com/ws/ship/v6"><v6:HighestSeverity>ERROR</v6:HighestSeverity><v6:Notifications><v6:Severity>ERROR</v6:Severity><v6:Source>ship</v6:Source><v6:Code>8149</v6:Code><v6:Message>Unable to retrieve record from database</v6:Message><v6:LocalizedMessage>Unable to retrieve record from database</v6:LocalizedMessage></v6:Notifications><v6:Version>
3
+ <v6:ServiceId>ship</v6:ServiceId>
4
+ <v6:Major>6</v6:Major>
5
+ <v6:Intermediate>0</v6:Intermediate>
6
+ <v6:Minor>0</v6:Minor>
7
+ </v6:Version></v6:ShipmentReply>
data/spec/spec_helper.rb CHANGED
@@ -46,6 +46,8 @@ Spec::Runner.configure do |config|
46
46
 
47
47
  def fedex_shipper
48
48
  {
49
+ :shipper_company_name => "Company",
50
+ :shipper_phone_number => "2222222222",
49
51
  :shipper_streets => "260 Broadway",
50
52
  :shipper_city => "New York",
51
53
  :shipper_state => "NY",
@@ -56,6 +58,8 @@ Spec::Runner.configure do |config|
56
58
 
57
59
  def fedex_recipient
58
60
  {
61
+ :recipient_company_name => "Dallas City Hall",
62
+ :recipient_phone_number => "2222222222",
59
63
  :recipient_streets => "1500 Marilla Street",
60
64
  :recipient_city => "Dallas",
61
65
  :recipient_state => "TX",
@@ -66,10 +70,10 @@ Spec::Runner.configure do |config|
66
70
 
67
71
  def fedex_package
68
72
  {
69
- :weight => 2,
70
- :length => 2,
71
- :width => 2,
72
- :height => 2
73
+ :package_weight => 2,
74
+ :package_length => 2,
75
+ :package_width => 2,
76
+ :package_height => 2
73
77
  }
74
78
  end
75
79
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binarylogic-shippinglogic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Johnson of Binary Logic
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-06 00:00:00 -07:00
12
+ date: 2009-08-07 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -51,25 +51,35 @@ files:
51
51
  - lib/shippinglogic.rb
52
52
  - lib/shippinglogic/fedex.rb
53
53
  - lib/shippinglogic/fedex/attributes.rb
54
+ - lib/shippinglogic/fedex/cancel.rb
54
55
  - lib/shippinglogic/fedex/error.rb
55
- - lib/shippinglogic/fedex/rates.rb
56
+ - lib/shippinglogic/fedex/rate.rb
56
57
  - lib/shippinglogic/fedex/request.rb
57
58
  - lib/shippinglogic/fedex/response.rb
58
59
  - lib/shippinglogic/fedex/service.rb
60
+ - lib/shippinglogic/fedex/ship.rb
61
+ - lib/shippinglogic/fedex/signature.rb
59
62
  - lib/shippinglogic/fedex/track.rb
60
63
  - lib/shippinglogic/fedex/validation.rb
64
+ - shippinglogic.gemspec
61
65
  - spec/fedex/attributes_spec.rb
66
+ - spec/fedex/cancel_spec.rb
62
67
  - spec/fedex/error_spec.rb
63
- - spec/fedex/rates_spec.rb
68
+ - spec/fedex/rate_spec.rb
64
69
  - spec/fedex/service_spec.rb
70
+ - spec/fedex/ship_spec.rb
71
+ - spec/fedex/signature_spec.rb
65
72
  - spec/fedex/track_spec.rb
66
73
  - spec/fedex/validation_spec.rb
67
74
  - spec/fedex_credentials.example.yaml
68
- - spec/fedex_spec_no.rb
75
+ - spec/fedex_spec.rb
69
76
  - spec/lib/interceptor.rb
70
77
  - spec/responses/basic_rate.xml
78
+ - spec/responses/basic_ship.xml
79
+ - spec/responses/basic_signature.xml
71
80
  - spec/responses/basic_track.xml
72
81
  - spec/responses/blank.xml
82
+ - spec/responses/cancel_not_found.xml
73
83
  - spec/responses/failed_authentication.xml
74
84
  - spec/responses/malformed.xml
75
85
  - spec/responses/unexpected.xml
@@ -103,11 +113,14 @@ specification_version: 3
103
113
  summary: A simple and clean library to interface with shipping carriers
104
114
  test_files:
105
115
  - spec/fedex/attributes_spec.rb
116
+ - spec/fedex/cancel_spec.rb
106
117
  - spec/fedex/error_spec.rb
107
- - spec/fedex/rates_spec.rb
118
+ - spec/fedex/rate_spec.rb
108
119
  - spec/fedex/service_spec.rb
120
+ - spec/fedex/ship_spec.rb
121
+ - spec/fedex/signature_spec.rb
109
122
  - spec/fedex/track_spec.rb
110
123
  - spec/fedex/validation_spec.rb
111
- - spec/fedex_spec_no.rb
124
+ - spec/fedex_spec.rb
112
125
  - spec/lib/interceptor.rb
113
126
  - spec/spec_helper.rb