<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:m = 
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=ProgId content=Word.Document>
<META name=GENERATOR content="MSHTML 8.00.6001.19170">
<META name=Originator content="Microsoft Word 14"><LINK rel=File-List 
href="cid:filelist.xml@01CCD6AC.4EDE4410"><LINK rel=Edit-Time-Data 
href="cid:editdata.mso"><!--[if !mso]>
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]--><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:Zoom>113</w:Zoom>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<STYLE>@font-face {
        font-family: Wingdings;
}
@font-face {
        font-family: Wingdings;
}
@font-face {
        font-family: Calibri;
}
@font-face {
        font-family: Tahoma;
}
@page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; mso-header-margin: .5in; mso-footer-margin: .5in; mso-paper-source: 0; }
P.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
LI.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
DIV.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single; mso-style-noshow: yes
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single; mso-style-noshow: yes
}
P {
        FONT-FAMILY: "Times New Roman","serif"; MARGIN-LEFT: 0in; FONT-SIZE: 12pt; MARGIN-RIGHT: 0in; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto
}
P.MsoAcetate {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text Char"
}
LI.MsoAcetate {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text Char"
}
DIV.MsoAcetate {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text Char"
}
P.MsoListParagraph {
        MARGIN: 0in 0in 0pt 0.5in; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 34; mso-style-noshow: yes
}
LI.MsoListParagraph {
        MARGIN: 0in 0in 0pt 0.5in; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 34; mso-style-noshow: yes
}
DIV.MsoListParagraph {
        MARGIN: 0in 0in 0pt 0.5in; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 34; mso-style-noshow: yes
}
SPAN.BalloonTextChar {
        FONT-FAMILY: "Tahoma","sans-serif"; mso-bidi-font-family: Tahoma; mso-style-unhide: no; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text"; mso-style-name: "Balloon Text Char"; mso-style-locked: yes; mso-ansi-font-size: 8.0pt; mso-bidi-font-size: 8.0pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma
}
SPAN.EmailStyle21 {
        FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal; mso-text-animation: none; text-line-through: none
}
SPAN.messagesmall1 {
        FONT-FAMILY: "Times New Roman","serif"; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-name: messagesmall1; mso-ansi-font-size: 4.5pt; mso-bidi-font-size: 4.5pt; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"
}
SPAN.EmailStyle23 {
        FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal; mso-text-animation: none; text-line-through: none
}
SPAN.EmailStyle24 {
        FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal; mso-text-animation: none; text-line-through: none
}
SPAN.EmailStyle25 {
        FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal-reply; text-line-through: none
}
SPAN.SpellE {
        mso-style-name: ""; mso-spl-e: yes
}
.MsoChpDefault {
        FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: export-only; mso-default-props: yes
}
DIV.WordSection1 {
        page: WordSection1
}
</STYLE>
<!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:"Table Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-priority:99;
        mso-style-parent:"";
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-para-margin:0in;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Calibri","sans-serif";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></HEAD>
<BODY style="tab-interval: .5in" lang=EN-US link=blue vLink=purple>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff 
size=2 face=Arial>Thanks a lot, Paul.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff 
size=2 face=Arial>I am in the middle of wrapping Format NVM codes up. Could you 
please modify it when you have chance?</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff 
size=2 face=Arial>Alex</FONT></SPAN>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> Luse, Paul E 
[mailto:paul.e.luse@intel.com] <BR><B>Sent:</B> Thursday, January 19, 2012 12:15 
PM<BR><B>To:</B> Chang, Alex; nvmewin@lists.openfabrics.org<BR><B>Subject:</B> 
RE: ProcessIO Function<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=WordSection1>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Yes, 
that’s what I meant below in my last sentence, we need to complete to storport 
in both of those cases and use SRB_STATUS_ERROR for those cases.<SPAN 
style="mso-spacerun: yes">  </SPAN>If you want to implement this that’d be 
great (maybe just have one storport completion at the bottom of the function and 
set the error in earlier places; to avoid <SPAN class=SpellE>goto</SPAN> please 
use try/finally in this routine.<SPAN style="mso-spacerun: yes">  </SPAN>Or 
if you want to focus on the <SPAN class=SpellE>formatNVM</SPAN> I’ll clean this 
up as well as check the callers for <SPAN class=SpellE>mis</SPAN>-use of 
procession failures.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Thx<BR>Paul<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV 
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<P class=MsoNormal><B><FONT size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-fareast-font-family: 'Times New Roman'">From:</SPAN></FONT></B><FONT 
size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"> 
Chang, Alex [mailto:Alex.Chang@idt.com] <BR><B><SPAN 
style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19, 2012 12:58 
PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Luse, Paul E; 
nvmewin@lists.openfabrics.org<BR><B><SPAN 
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO 
Function<o:p></o:p></SPAN></FONT></P></DIV></DIV>
<P class=MsoNormal><FONT size=2 face=Calibri><SPAN 
style="FONT-SIZE: 11pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Yes, I'd 
agree make it as simple as possible. However, there are two places in ProcessIo 
returning FALSE without calling StorPortNotification to complete the 
request:</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Failure 
on calling storportGetCurrentProcessorNumber.</SPAN></FONT><FONT size=3 
face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Failure 
on calling NVMeMapCore2Queue.</SPAN></FONT><FONT size=3 
face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">We 
should complete the request when either one happens?</SPAN></FONT><FONT size=3 
face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Thanks,</SPAN></FONT><FONT 
size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Alex</SPAN></FONT><FONT 
size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
<DIV style="TEXT-ALIGN: center" class=MsoNormal align=center><FONT size=3 
face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt">
<HR align=center SIZE=3 width="100%">
</SPAN></FONT></DIV>
<P style="MARGIN-BOTTOM: 12pt; mso-outline-level: 1" class=MsoNormal><B><FONT 
size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold">From:</SPAN></FONT></B><FONT 
size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt"> Luse, Paul E <A 
href="mailto:[mailto:paul.e.luse@intel.com]">[mailto:paul.e.luse@intel.com]</A> 
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19, 
2012 11:46 AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Chang, Alex; 
<A 
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN 
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO 
Function</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Ahh, OK 
thanks.<SPAN style="mso-spacerun: yes">  </SPAN>I’d prefer we simply have 
it by rule:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -0.25in" class=MsoListParagraph><FONT color=#1f497d 
size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">-</SPAN></FONT><FONT 
color=#1f497d size=1 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; COLOR: #1f497d; FONT-SIZE: 7pt">         
</SPAN></FONT><FONT color=#1f497d size=2><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">If 
process IO fails then the IO is complete to storport (if it had an SRB) with the 
appropriate status<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -0.25in" class=MsoListParagraph><FONT color=#1f497d 
size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">-</SPAN></FONT><FONT 
color=#1f497d size=1 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; COLOR: #1f497d; FONT-SIZE: 7pt">         
</SPAN></FONT><FONT color=#1f497d size=2><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">If 
process IO succeeds then the IO is in flight<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">If we add 
this flag then we also have to change the return value for process IO so the 
caller know why it failed so it can return the IO, if needed to storport.<SPAN 
style="mso-spacerun: yes">  </SPAN>No point in having every caller 
implement code for ‘return status busy’ when it can be done in one central 
location where the error happens. Make sense?<SPAN 
style="mso-spacerun: yes">  </SPAN><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Thx<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Paul<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV 
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<P style="mso-outline-level: 1" class=MsoNormal><B><FONT size=2 
face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-fareast-font-family: 'Times New Roman'">From:</SPAN></FONT></B><FONT 
size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"> 
Chang, Alex <A 
href="mailto:[mailto:Alex.Chang@idt.com]">[mailto:Alex.Chang@idt.com]</A> 
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19, 
2012 12:27 PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Luse, Paul E; 
<A 
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN 
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO 
Function<o:p></o:p></SPAN></FONT></P></DIV></DIV>
<P class=MsoNormal><FONT size=2 face=Calibri><SPAN 
style="FONT-SIZE: 11pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Hi 
Paul,</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Sorry, I 
did not mean init state machine. It's the new Format NVM state machine. 
After Format NVM command completes successfully, Identify commands are 
being issued to re-fetch the structures. We all call ProcessIo to issue the 
commands and its return type is BOOLEAN, which only indicates whether the 
command had been issued or not. In some error cases, such as failure on getting 
CmdID, ProcessIo calls StorPortNotification to complete the request and callers 
have no way to tell if the request had been completed or not. To avoid complete 
the request twice, I'd like to suggest adding one extra parameter in ProcessIO 
like:</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">BOOLEAN<BR>ProcessIo(<BR>    
__in PNVME_DEVICE_EXTENSION pAdapterExtension,<BR>    __in 
PNVME_SRB_EXTENSION pSrbExtension,<BR>    __in NVME_QUEUE_TYPE 
QueueType,<BR>    </SPAN></FONT><FONT color=red size=2 
face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt">__out 
RequestCompleted<BR></SPAN></FONT><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">)</SPAN></FONT><o:p></o:p></P>
<P><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Thanks,</SPAN></FONT><o:p></o:p></P>
<P><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Alex</SPAN></FONT><o:p></o:p></P>
<DIV style="TEXT-ALIGN: center" class=MsoNormal align=center><FONT size=3 
face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt">
<HR align=center SIZE=3 width="100%">
</SPAN></FONT></DIV>
<P style="MARGIN-BOTTOM: 12pt; mso-outline-level: 1" class=MsoNormal><B><FONT 
size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold">From:</SPAN></FONT></B><FONT 
size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt"> Luse, Paul E <A 
href="mailto:[mailto:paul.e.luse@intel.com]">[mailto:paul.e.luse@intel.com]</A> 
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19, 
2012 11:06 AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Chang, Alex; 
<A 
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN 
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO 
Function</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Hi 
Alex-<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">I’m not 
totally sure I understand what you are trying to say but I think I do.<SPAN 
style="mso-spacerun: yes">  </SPAN>What does “In SNTI codes” mean?<SPAN 
style="mso-spacerun: yes">  </SPAN>I assume you’re saying that there’s some 
inconsistency with what some callers are assuming about the return value from 
ProcessIO() and, if so, good catch!<SPAN style="mso-spacerun: yes">  
</SPAN>Clearly we cannot complete the same IO twice </SPAN></FONT><FONT 
color=#1f497d size=2 face=Wingdings><SPAN 
style="FONT-FAMILY: Wingdings; COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN 
style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN></FONT><FONT 
color=#1f497d size=2><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><SPAN 
style="mso-spacerun: yes">  </SPAN>Haven’t seen your formatNVM code yet but 
if any of the sub-commands you need to issue as art of handling formatNVM fails 
then you should fail the whole command gracefully.<SPAN 
style="mso-spacerun: yes">  </SPAN>Also, how does any of this relate to 
init state machine?<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">We may 
not have time to talk about this in the meeting so if you could reply and 
identify specific cases where you see callers of ProcessIO doing the wrong thing 
and propose a fix that would be great.<SPAN style="mso-spacerun: yes">  
</SPAN>I don’t believe we want the caller to have to complete the IO if 
processIO fails, procession should do that however just looking at the code 
doesn’t consistently do that.<SPAN style="mso-spacerun: yes">  </SPAN>We 
should scrub it so that callers know that if procession fails that the IO has 
been completed and if it completes the IO has been issued.<SPAN 
style="mso-spacerun: yes">  </SPAN>We should also fix procession to 
complete all failures with appropriate error codes.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Thanks<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Paul<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN 
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV 
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<P style="mso-outline-level: 1" class=MsoNormal><B><FONT size=2 
face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-fareast-font-family: 'Times New Roman'">From:</SPAN></FONT></B><FONT 
size=2 face=Tahoma><SPAN 
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"> 
Chang, Alex <A 
href="mailto:[mailto:Alex.Chang@idt.com]">[mailto:Alex.Chang@idt.com]</A> 
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19, 
2012 11:40 AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Luse, Paul E; 
<A 
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN 
style="FONT-WEIGHT: bold">Subject:</SPAN></B> ProcessIO 
Function<o:p></o:p></SPAN></FONT></P></DIV></DIV>
<P class=MsoNormal><FONT size=2 face=Calibri><SPAN 
style="FONT-SIZE: 11pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Hi 
all</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">I tested 
Format NVM last night and it basically works fine. However, when I re-visited 
the state machine, there is potential problem related to ProcessIo function, 
which completes the request back to Storport in error cases. The return value of 
ProcessIo only indicates whether the command had been issued to controller or 
not. It does NOT tell if it completes the request. In SNTI codes, Ray 
re-uses the Srb Extension to issue command(s). If ProcessIO fails, ASSERTION is 
called. Should I do the same if it fails when re-fetching Identify structures 
after Format NVM succeeds? Question is we don't want to complete the same 
request twice. We should talk about this later.</SPAN></FONT><FONT size=3 
face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Thanks,</SPAN></FONT><FONT 
size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN 
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Alex</SPAN></FONT><FONT 
size=3 face="Times New Roman"><SPAN 
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV></DIV></BODY></HTML>