sec_query 1.0.6 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d2dde810ce6cded495db60a0e15cf12db156d9d
4
- data.tar.gz: dfe37e5437bc0ec14d526c404700287023494101
3
+ metadata.gz: 8737019e7f023c021d4447299762541c8a22ff84
4
+ data.tar.gz: 36ae02d170ee5bdee64388b461c17c97ce194ba4
5
5
  SHA512:
6
- metadata.gz: c9ae3373495a35a87f297ca8fbba54d15eadf7013273ac98c22ef5c4a64a8015feab56bfe1b531dd56fcd2fed98a761aee4346ba80e91438e6fafdebab4b1beb
7
- data.tar.gz: e09c380cdcaf40ccff9deac2a5f24d7db825434d77f849993ced6396928b6df2a346fefa0546ea695876ce67fb8487e1e0414fa17e72e98eeff785ce1d9e0cf6
6
+ metadata.gz: 052b098f0b775cc653afaf7bd7037621a63fc407ee2fe1f638fe41b26da58b4337672c2a41b2f4ae80312d7523e4dd8270512e721152a523b9b234f701efcb37
7
+ data.tar.gz: 9737a9bbd4c194f58ad6850de0628052a0496ae8d7a5a79ef960e6db5e6e78069e4dc3af1f8a3321b7bccbb48c3b6881ec9e91123475459d38d825b222a039c9
data/Gemfile.lock ADDED
@@ -0,0 +1,59 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ sec_query (1.0.7)
5
+ addressable (~> 2.3)
6
+ nokogiri (~> 1.6)
7
+ rest-client (~> 1.6)
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ addressable (2.3.6)
13
+ ast (2.0.0)
14
+ crack (0.4.2)
15
+ safe_yaml (~> 1.0.0)
16
+ diff-lcs (1.2.5)
17
+ json (1.8.1)
18
+ mime-types (2.2)
19
+ mini_portile (0.5.3)
20
+ nokogiri (1.6.1)
21
+ mini_portile (~> 0.5.0)
22
+ parser (2.1.9)
23
+ ast (>= 1.1, < 3.0)
24
+ slop (~> 3.4, >= 3.4.5)
25
+ powerpack (0.0.9)
26
+ rainbow (2.0.0)
27
+ rest-client (1.6.7)
28
+ mime-types (>= 1.16)
29
+ rspec (2.14.1)
30
+ rspec-core (~> 2.14.0)
31
+ rspec-expectations (~> 2.14.0)
32
+ rspec-mocks (~> 2.14.0)
33
+ rspec-core (2.14.8)
34
+ rspec-expectations (2.14.5)
35
+ diff-lcs (>= 1.1.3, < 2.0)
36
+ rspec-mocks (2.14.6)
37
+ rubocop (0.21.0)
38
+ json (>= 1.7.7, < 2)
39
+ parser (~> 2.1.9)
40
+ powerpack (~> 0.0.6)
41
+ rainbow (>= 1.99.1, < 3.0)
42
+ ruby-progressbar (~> 1.4)
43
+ ruby-progressbar (1.4.2)
44
+ safe_yaml (1.0.3)
45
+ slop (3.5.0)
46
+ vcr (2.9.0)
47
+ webmock (1.17.4)
48
+ addressable (>= 2.2.7)
49
+ crack (>= 0.3.2)
50
+
51
+ PLATFORMS
52
+ ruby
53
+
54
+ DEPENDENCIES
55
+ rspec (~> 2.14)
56
+ rubocop (~> 0.20)
57
+ sec_query!
58
+ vcr (~> 2.9)
59
+ webmock (~> 1.17)
@@ -45,6 +45,50 @@ module SecQuery
45
45
  return
46
46
  end
47
47
 
48
+ def self.for_date(date, &blk)
49
+ ftp = Net::FTP.new('ftp.sec.gov')
50
+ ftp.login
51
+ file_name = ftp.nlst("edgar/daily-index/#{ date.to_sec_uri_format }*")[0]
52
+ ftp.close
53
+ open("ftp://ftp.sec.gov/#{ file_name }") do |file|
54
+ if file_name[-2..-1] == 'gz'
55
+ gz_reader = Zlib::GzipReader.new(file)
56
+ gz_reader.rewind
57
+ filings_for_index(gz_reader).each(&blk)
58
+ else
59
+ filings_for_index(file).each(&blk)
60
+ end
61
+ end
62
+ end
63
+
64
+ def self.filings_for_index(index)
65
+ [].tap do |filings|
66
+ content_section = false
67
+ index.each_line do |row|
68
+ content_section = true if row.include?('-------------')
69
+ next if !content_section || row.include?('------------')
70
+ filing = filing_for_index_row(row)
71
+ filings << filing unless filing.nil?
72
+ end
73
+ end
74
+ end
75
+
76
+ def self.filing_for_index_row(row)
77
+ data = row.split(/ /).reject(&:blank?).map(&:strip)
78
+ data = row.split(/ /).reject(&:blank?).map(&:strip) if data.count == 4
79
+ data.delete_at(1) if data[1][0] == '/'
80
+ return nil unless Regexp.new(/\d{8}/).match(data[3])
81
+ unless data[4][0..3] == 'http'
82
+ data[4] = "http://www.sec.gov/Archives/#{ data[4] }"
83
+ end
84
+ Filing.new(
85
+ term: data[1],
86
+ cik: data[2],
87
+ date: Date.parse(data[3]),
88
+ link: data[4]
89
+ )
90
+ end
91
+
48
92
  def self.uri_for_recent(start = 0, count = 100)
49
93
  SecURI.browse_edgar_uri(
50
94
  action: :getcurrent,
@@ -69,7 +113,7 @@ module SecQuery
69
113
  def self.parse_rss(rss, &blk)
70
114
  feed = RSS::Parser.parse(rss, false)
71
115
  feed.entries.each do |entry|
72
- filing = Filing.new({
116
+ filing = Filing.new(
73
117
  cik: entry.title.content.match(/\((\w{10})\)/)[1],
74
118
  file_id: entry.id.content.split('=').last,
75
119
  term: entry.category.term,
@@ -77,7 +121,7 @@ module SecQuery
77
121
  summary: entry.summary.content,
78
122
  date: DateTime.parse(entry.updated.content.to_s),
79
123
  link: entry.link.href.gsub('-index.htm', '.txt')
80
- })
124
+ )
81
125
  blk.call(filing)
82
126
  end
83
127
  end
@@ -111,5 +155,16 @@ module SecQuery
111
155
  end
112
156
  filings
113
157
  end
158
+
159
+ def content(&error_blk)
160
+ @content ||= RestClient.get(self.link)
161
+ rescue RestClient::ResourceNotFound => e
162
+ puts "404 Resource Not Found: Bad link #{ self.link }"
163
+ if block_given?
164
+ error_blk.call(e, self)
165
+ else
166
+ raise e
167
+ end
168
+ end
114
169
  end
115
170
  end
@@ -1,5 +1,20 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ class Date
4
+ def quarter
5
+ ((month / 3.0) - 0.1).floor + 1
6
+ end
7
+
8
+ def to_sec_uri_format
9
+ today = Date.today
10
+ if today.quarter == quarter && today.year == year
11
+ "company.#{ strftime("%Y%m%d") }.idx"
12
+ else
13
+ "#{ year }/QTR#{ quarter }/company.#{ strftime("%Y%m%d") }.idx"
14
+ end
15
+ end
16
+ end
17
+
3
18
  module SecQuery
4
19
  class SecURI
5
20
  attr_accessor :host, :scheme, :path, :query_values
@@ -8,6 +23,14 @@ module SecQuery
8
23
  build_with_path('/browse-edgar', args)
9
24
  end
10
25
 
26
+ def self.for_date(date)
27
+ instance = SecURI.new
28
+ instance.scheme = 'ftp'
29
+ instance.host = 'ftp.sec.gov'
30
+ instance.path = "edgar/daily-index/#{ date.to_sec_uri_format }"
31
+ instance
32
+ end
33
+
11
34
  def self.ownership_display_uri(args = nil)
12
35
  build_with_path('/own-disp', args)
13
36
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
  # => SecQuery::VERSION
3
3
  module SecQuery
4
- VERSION = "1.0.6"
4
+ VERSION = "1.0.8"
5
5
  end
data/lib/sec_query.rb CHANGED
@@ -4,6 +4,7 @@
4
4
  require 'active_support/all'
5
5
  require 'addressable/uri'
6
6
  require 'open-uri'
7
+ require 'net/ftp'
7
8
  require 'rest-client'
8
9
  require 'rss'
9
10
  require 'nokogiri'
data/sec_query.gemspec CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency 'vcr', '~> 2.9'
25
25
  s.add_development_dependency 'webmock', '~> 1.17'
26
26
  s.add_development_dependency 'rubocop', '~> 0.20'
27
- s.add_development_dependency 'addressable', '~> 2.3'
27
+ s.add_runtime_dependency 'addressable', '~> 2.3'
28
28
  s.add_runtime_dependency 'rest-client', '~> 1.6'
29
29
  s.add_runtime_dependency 'nokogiri', '~> 1.6'
30
30
  end
@@ -13,10 +13,53 @@ describe SecQuery::Filing do
13
13
  .to eq('http://www.sec.gov/cgi-bin/browse-edgar?CIK=testing&action=getcompany&company&count=100&output=atom&owner=include&start=0')
14
14
  end
15
15
 
16
+ describe '::filings_for_index' do
17
+ let(:index) { File.read('./spec/support/idx/test.idx') }
18
+ let(:filing1) { SecQuery::Filing.filings_for_index(index).first }
19
+
20
+ it 'parses all of the filings' do
21
+ expect(SecQuery::Filing.filings_for_index(index).count).to eq(4628)
22
+ end
23
+
24
+ it 'correctly parses out the link' do
25
+ expect(filing1.link)
26
+ .to eq('http://www.sec.gov/Archives/edgar/data/38723/0000038723-14-000001.txt')
27
+ end
28
+
29
+ it 'correctly parses out the cik' do
30
+ expect(filing1.cik).to eq('38723')
31
+ end
32
+
33
+ it 'correctly parses out the term' do
34
+ expect(filing1.term).to eq('424B3')
35
+ end
36
+ end
37
+
38
+ describe '::for_date' do
39
+ let(:filings) do
40
+ [].tap do |filings|
41
+ SecQuery::Filing.for_date(Date.parse('20121123')) do |f|
42
+ filings << f
43
+ end
44
+ end
45
+ end
46
+
47
+ let(:filing1) { filings.first }
48
+
49
+ it 'correctly parses a filing from a zipped company index' do
50
+ expect(filing1.term).to eq('4')
51
+ expect(filing1.cik).to eq('1551138')
52
+ expect(filing1.date).to eq(Date.parse('20121123'))
53
+ expect(filing1.link)
54
+ .to eq('http://www.sec.gov/Archives/edgar/data/1551138/0001144204-12-064668.txt')
55
+ end
56
+ end
57
+
16
58
  describe '::recent', vcr: { cassette_name: 'recent' } do
17
59
  let(:filings) { [] }
60
+
18
61
  before(:each) do
19
- SecQuery::Filing.recent({start: 0, count: 10, limit: 10}) do |filing|
62
+ SecQuery::Filing.recent(start: 0, count: 10, limit: 10) do |filing|
20
63
  filings.push filing
21
64
  end
22
65
  end
@@ -67,18 +110,33 @@ describe SecQuery::Filing do
67
110
  {cik: "0001007844", file_id: "0001104659-03-004723"}
68
111
  ]
69
112
  }}
70
-
113
+
71
114
  let(:entity) {SecQuery::Entity.find(query[:cik])}
72
-
115
+
73
116
  describe "Filings", vcr: { cassette_name: "Steve Jobs"} do
74
117
  it "should respond to filings" do
75
118
  entity.should respond_to(:filings)
76
119
  entity.filings.should be_kind_of(Array)
77
120
  end
78
-
121
+
79
122
  it "should be valid filing" do
80
123
  is_valid_filing?(entity.filings.first)
81
124
  end
82
125
  end
126
+
127
+ describe '#content', vcr: { cassette_name: 'content' } do
128
+ it 'returns content of the filing by requesting the link' do
129
+ f = Filing.new(
130
+ cik: 123,
131
+ title: 'test filing title',
132
+ summary: 'test filing',
133
+ link: 'http://www.sec.gov/Archives/edgar/data/1572871/000114036114019536/0001140361-14-019536.txt',
134
+ term: '4',
135
+ date: Date.today,
136
+ file_id: 1
137
+ )
138
+ expect(f.content).to eq(File.read('./spec/support/filings/filing.txt'))
139
+ end
140
+ end
83
141
  end
84
142
  end
@@ -34,4 +34,16 @@ describe SecQuery::SecURI do
34
34
  .to eq('http://www.sec.gov/cgi-bin/browse-edgar?company=Apple')
35
35
  end
36
36
  end
37
+
38
+ describe 'Date additions' do
39
+ subject(:d) { Date.parse('2012-04-26') }
40
+
41
+ it 'calculates the correct quarter' do
42
+ expect(d.quarter).to eq(2)
43
+ end
44
+
45
+ it 'calculates the correct sec formatted path uri for a date' do
46
+ expect(d.to_sec_uri_format).to eq('2012/QTR2/company.20120426.idx')
47
+ end
48
+ end
37
49
  end
@@ -0,0 +1,257 @@
1
+ <SEC-DOCUMENT>0001140361-14-019536.txt : 20140508
2
+ <SEC-HEADER>0001140361-14-019536.hdr.sgml : 20140508
3
+ <ACCEPTANCE-DATETIME>20140508143341
4
+ ACCESSION NUMBER: 0001140361-14-019536
5
+ CONFORMED SUBMISSION TYPE: 4
6
+ PUBLIC DOCUMENT COUNT: 2
7
+ CONFORMED PERIOD OF REPORT: 20140507
8
+ FILED AS OF DATE: 20140508
9
+ DATE AS OF CHANGE: 20140508
10
+
11
+ ISSUER:
12
+
13
+ COMPANY DATA:
14
+ COMPANY CONFORMED NAME: InfuSystem Holdings, Inc
15
+ CENTRAL INDEX KEY: 0001337013
16
+ STANDARD INDUSTRIAL CLASSIFICATION: SURGICAL & MEDICAL INSTRUMENTS & APPARATUS [3841]
17
+ IRS NUMBER: 203341405
18
+ STATE OF INCORPORATION: DE
19
+ FISCAL YEAR END: 1231
20
+
21
+ BUSINESS ADDRESS:
22
+ STREET 1: 31700 RESEARCH PARK DRIVE
23
+ CITY: MADISON HEIGHTS
24
+ STATE: MI
25
+ ZIP: 48071
26
+ BUSINESS PHONE: (248) 291-1210
27
+
28
+ MAIL ADDRESS:
29
+ STREET 1: 31700 RESEARCH PARK DRIVE
30
+ CITY: MADISON HEIGHTS
31
+ STATE: MI
32
+ ZIP: 48071
33
+
34
+ FORMER COMPANY:
35
+ FORMER CONFORMED NAME: HAPC, Inc.
36
+ DATE OF NAME CHANGE: 20060425
37
+
38
+ FORMER COMPANY:
39
+ FORMER CONFORMED NAME: Healthcare Acquisition Partners Corp.
40
+ DATE OF NAME CHANGE: 20050824
41
+
42
+ REPORTING-OWNER:
43
+
44
+ OWNER DATA:
45
+ COMPANY CONFORMED NAME: Steen Eric K
46
+ CENTRAL INDEX KEY: 0001572871
47
+
48
+ FILING VALUES:
49
+ FORM TYPE: 4
50
+ SEC ACT: 1934 Act
51
+ SEC FILE NUMBER: 001-35020
52
+ FILM NUMBER: 14824358
53
+
54
+ MAIL ADDRESS:
55
+ STREET 1: C/O INFUSYSTEM HOLDINGS, INC.
56
+ STREET 2: 31700 RESEARCH PARK DRIVE
57
+ CITY: MADISON HEIGHTS
58
+ STATE: MI
59
+ ZIP: 48071
60
+ </SEC-HEADER>
61
+ <DOCUMENT>
62
+ <TYPE>4
63
+ <SEQUENCE>1
64
+ <FILENAME>doc1.xml
65
+ <DESCRIPTION>FORM 4
66
+ <TEXT>
67
+ <XML>
68
+ <?xml version="1.0"?>
69
+ <ownershipDocument>
70
+
71
+ <schemaVersion>X0306</schemaVersion>
72
+
73
+ <documentType>4</documentType>
74
+
75
+ <periodOfReport>2014-05-07</periodOfReport>
76
+
77
+ <notSubjectToSection16>0</notSubjectToSection16>
78
+
79
+ <issuer>
80
+ <issuerCik>0001337013</issuerCik>
81
+ <issuerName>InfuSystem Holdings, Inc</issuerName>
82
+ <issuerTradingSymbol>INFU</issuerTradingSymbol>
83
+ </issuer>
84
+
85
+ <reportingOwner>
86
+ <reportingOwnerId>
87
+ <rptOwnerCik>0001572871</rptOwnerCik>
88
+ <rptOwnerName>Steen Eric K</rptOwnerName>
89
+ </reportingOwnerId>
90
+ <reportingOwnerAddress>
91
+ <rptOwnerStreet1>C/O INFUSYSTEM HOLDINGS, INC.</rptOwnerStreet1>
92
+ <rptOwnerStreet2>31700 RESEARCH PARK DRIVE</rptOwnerStreet2>
93
+ <rptOwnerCity>MADISON HEIGHTS</rptOwnerCity>
94
+ <rptOwnerState>MI</rptOwnerState>
95
+ <rptOwnerZipCode>48071</rptOwnerZipCode>
96
+ <rptOwnerStateDescription></rptOwnerStateDescription>
97
+ </reportingOwnerAddress>
98
+ <reportingOwnerRelationship>
99
+ <isDirector>1</isDirector>
100
+ <isOfficer>1</isOfficer>
101
+ <isTenPercentOwner>0</isTenPercentOwner>
102
+ <isOther>0</isOther>
103
+ <officerTitle>Chief Executive Officer</officerTitle>
104
+ <otherText></otherText>
105
+ </reportingOwnerRelationship>
106
+ </reportingOwner>
107
+
108
+ <nonDerivativeTable>
109
+ <nonDerivativeTransaction>
110
+ <securityTitle>
111
+ <value>Common Stock</value>
112
+ </securityTitle>
113
+ <transactionDate>
114
+ <value>2014-05-07</value>
115
+ </transactionDate>
116
+ <deemedExecutionDate></deemedExecutionDate>
117
+ <transactionCoding>
118
+ <transactionFormType>4</transactionFormType>
119
+ <transactionCode>P</transactionCode>
120
+ <equitySwapInvolved>0</equitySwapInvolved>
121
+ </transactionCoding>
122
+ <transactionAmounts>
123
+ <transactionShares>
124
+ <value>10000</value>
125
+ </transactionShares>
126
+ <transactionPricePerShare>
127
+ <value>2.80</value>
128
+ </transactionPricePerShare>
129
+ <transactionAcquiredDisposedCode>
130
+ <value>A</value>
131
+ </transactionAcquiredDisposedCode>
132
+ </transactionAmounts>
133
+ <postTransactionAmounts>
134
+ <sharesOwnedFollowingTransaction>
135
+ <value>25000</value>
136
+ </sharesOwnedFollowingTransaction>
137
+ </postTransactionAmounts>
138
+ <ownershipNature>
139
+ <directOrIndirectOwnership>
140
+ <value>D</value>
141
+ </directOrIndirectOwnership>
142
+ </ownershipNature>
143
+ </nonDerivativeTransaction>
144
+ </nonDerivativeTable>
145
+
146
+ <derivativeTable></derivativeTable>
147
+
148
+ <footnotes></footnotes>
149
+
150
+ <remarks>Exhibit 24.1- Limited Power of Attorney for Eric K. Steen</remarks>
151
+
152
+ <ownerSignature>
153
+ <signatureName>/s/ Erik K. Steen</signatureName>
154
+ <signatureDate>2014-05-08</signatureDate>
155
+ </ownerSignature>
156
+ </ownershipDocument>
157
+ </XML>
158
+ </TEXT>
159
+ </DOCUMENT>
160
+ <DOCUMENT>
161
+ <TYPE>EX-24.1
162
+ <SEQUENCE>2
163
+ <FILENAME>poa1.htm
164
+ <DESCRIPTION>POWER OF ATTORNEY
165
+ <TEXT>
166
+ <html>
167
+ <head>
168
+ <title>Unassociated Document</title>
169
+ <!--Licensed to: HB-->
170
+ <!--Document Created using EDGARizer 2020 5.4.6.0-->
171
+ <!--Copyright 1995 - 2014 Thomson Reuters. All rights reserved.-->
172
+ </head>
173
+ <body bgcolor="#ffffff" style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">
174
+ <div style="TEXT-ALIGN: right; TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt"><font style="DISPLAY: inline; FONT-FAMILY: times new roman; FONT-SIZE: 10pt; FONT-WEIGHT: bold; TEXT-DECORATION: underline">&#160;</font></div>
175
+
176
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="center"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">&#160;</font></div>
177
+
178
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="center"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">LIMITED POWER OF ATTORNEY FOR</font></div>
179
+
180
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="center"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">SECTION 16 REPORTING OBLIGATIONS</font></div>
181
+
182
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block"><br>
183
+ </div>
184
+
185
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
186
+
187
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">KNOW ALL BY THESE PRESENTS, that the undersigned hereby makes, constitutes and appoints each of Trent Smith and Jonathan Foster, signing singly, as the undersigned's true and lawful attorney-in-fact, with full power and authority as hereinafter described on behalf of and in the name, place and stead of the undersigned to:</font></div>
188
+
189
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
190
+
191
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(1) seek, obtain or maintain filing codes with the United States Securities and Exchange Commission, including submission of Form ID;</font></div>
192
+
193
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
194
+
195
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(2) prepare, execute, acknowledge, deliver and file Forms 3, 4, and 5 (including any amendments thereto) with respect to the securities of InfuSystem Holdings, Inc., a Delaware corporation (the "Company"), with the United States Securities and Exchange Commission, any national securities exchanges and the Company, as considered necessary or advisable under Section 16(a) of the Securities Exchange Act of 1934 and the rules and regulations promulgated thereunder, as amended from time to time (the "Exchange Act");</font></div>
196
+
197
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
198
+
199
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(3) seek or obtain, as the undersigned's representative and on the undersigned's behalf, information on transactions in the Company's securities from any third party, including brokers, employee benefit plan administrators and trustees, and the undersigned hereby authorizes any such person to release any such information to the undersigned and approves and ratifies any such release of information; and</font></div>
200
+
201
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
202
+
203
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(4) perform any and all other acts which in the discretion of such attorney-in-fact are necessary or desirable for and on behalf of the undersigned in connection with the foregoing.</font></div>
204
+
205
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
206
+
207
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">The undersigned acknowledges that:</font></div>
208
+
209
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
210
+
211
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(1) this Limited Power of Attorney authorizes, but does not require, such attorney-in-fact to act in their discretion on information provided to such attorney-in-fact without independent verification of such information;</font></div>
212
+
213
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
214
+
215
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(2) any documents prepared and/or executed by such attorney-in-fact on behalf of the undersigned pursuant to this Limited Power of Attorney will be in such form and will contain such information and disclosure as such attorney-in-fact, in his or her discretion, deems necessary or desirable;</font></div>
216
+
217
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
218
+
219
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(3) neither the Company nor such attorney-in-fact assumes (i) any liability for the undersigned's responsibility to comply with the requirement of the Exchange Act, (ii) any liability of the undersigned for any failure to comply with such requirements, or (iii) any obligation or liability of the undersigned for profit disgorgement under Section 16(b) of the Exchange Act; and</font></div>
220
+
221
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
222
+
223
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(4) this Limited Power of Attorney does not relieve the undersigned from responsibility for compliance with the undersigned's obligations under the Exchange Act, including without limitation the reporting requirements under Section 16 of the Exchange Act.</font></div>
224
+
225
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
226
+
227
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">The undersigned hereby gives and grants the foregoing attorney-in-fact full power and authority to do and perform all and every act and thing whatsoever requisite, necessary or appropriate to be done in and about the foregoing matters as fully to all intents and purposes as the undersigned might or could do if present, hereby ratifying all that such attorney-in-fact of, for and on behalf of the undersigned, shall lawfully do or cause to be done by virtue of this Limited Power of Attorney.</font></div>
228
+
229
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
230
+
231
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">This Limited Power of Attorney shall remain in full force and effect until revoked by the undersigned in a signed writing delivered to such attorney-in-fact.&#160;&#160;This Limited Power of Attorney shall be governed by, and construed in accordance with, the laws of the state of Delaware, excluding its conflicts of laws principles.</font></div>
232
+
233
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
234
+
235
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
236
+
237
+ <div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">IN WITNESS WHEREOF, the undersigned has caused this Limited Power of Attorney to be executed as of this 8th day of May, 2014.</font></div>
238
+
239
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
240
+
241
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
242
+
243
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block"><br>
244
+ </div>
245
+
246
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
247
+
248
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font style="TEXT-DECORATION: underline">/s/ Erik K. Steen</font>___________________</div>
249
+
250
+ <div style="TEXT-ALIGN: left; TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt">&#160;<font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font id="TAB2" style="LETTER-SPACING: 9pt">&#160;&#160;&#160;</font><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">Eric K. Steen</font></div>
251
+
252
+ <div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">&#160;</div>
253
+ </body>
254
+ </html>
255
+ </TEXT>
256
+ </DOCUMENT>
257
+ </SEC-DOCUMENT>