<html 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" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=ProgId content=Word.Document><meta name=Generator content="Microsoft Word 14"><meta name=Originator content="Microsoft Word 14"><link rel=File-List href="cid:filelist.xml@01CE8867.C612E860"><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<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>ZH-CN</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
</w:Compatibility>
<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 Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;
        mso-font-alt:"Arial Rounded MT Bold";
        mso-font-charset:0;
        mso-generic-font-family:swiss;
        mso-font-pitch:variable;
        mso-font-signature:-520092929 1073786111 9 0 415 0;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;
        mso-font-alt:Arial;
        mso-font-charset:0;
        mso-generic-font-family:swiss;
        mso-font-pitch:variable;
        mso-font-signature:-520081665 -1073717157 41 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-unhide:no;
        mso-style-qformat:yes;
        mso-style-parent:"";
        margin:0in;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        mso-fareast-font-family:Calibri;}
a:link, span.MsoHyperlink
        {mso-style-noshow:yes;
        mso-style-priority:99;
        color:blue;
        text-decoration:underline;
        text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-noshow:yes;
        mso-style-priority:99;
        color:purple;
        text-decoration:underline;
        text-underline:single;}
p
        {mso-style-noshow:yes;
        mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        mso-fareast-font-family:Calibri;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        mso-style-noshow:yes;
        mso-style-unhide:no;
        mso-ansi-font-size:11.0pt;
        mso-bidi-font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-ascii-font-family:Calibri;
        mso-fareast-font-family:Calibri;
        mso-hansi-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-default-props:yes;
        font-family:"Calibri","sans-serif";
        mso-ascii-font-family:Calibri;
        mso-fareast-font-family:Calibri;
        mso-hansi-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@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;}
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:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-ascii-font-family:Calibri;
        mso-hansi-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
</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 lang=EN-US link=blue vlink=purple style='tab-interval:.5in'><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";mso-bidi-font-family:"Times New Roman";color:#1F497D'>It is NOT a closed topic at this point – the TC list is not closed and they have been included.<span style='mso-spacerun:yes'>  </span>Please circulate.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";mso-bidi-font-family:"Times New Roman";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-font-family:"Times New Roman"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-font-family:"Times New Roman"'> Boris Renski [mailto:brenski@mirantis.com] <br><b>Sent:</b> Wednesday, July 24, 2013 11:41 AM<br><b>To:</b> Hirschfeld, Rob<br><b>Cc:</b> openstack-tc@lists.openstack.org; foundation-board@lists.openstack.org<br><b>Subject:</b> Re: [Foundation Board] Update on Spider "What is Core" Discussion > F2F meetings at OSCON<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Rob, team - are we treating this as a clcosed board discussion at this point or am I free to bring along our Fuel product manager with me to listen in? <o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal>On Tue, Jul 23, 2013 at 6:53 AM, <<a href="mailto:Rob_Hirschfeld@dell.com" target="_blank">Rob_Hirschfeld@dell.com</a>> wrote:<o:p></o:p></p><div><div><p>Board & TC,<o:p></o:p></p><p> <o:p></o:p></p><p>We has a meeting on 7/15 to continue the dialog that I felt was highly productive and incorporated the feedback you’d provided on the email lists.  As a consequence, we’ve improved the language and expanded the number of positions to 12.   We tried to add new at the bottom but there were edits to every position during discussion.<o:p></o:p></p><p> <o:p></o:p></p><p>I’m including the positions below, but I encourage you to review on the etherpad, fix typos and make adjustments.  Of course, dialog on email is welcome too!<o:p></o:p></p><p> <o:p></o:p></p><p>OSCON Face to Face Discussions are our next step before the next board meeting and expanding to the Community.<o:p></o:p></p><p> <o:p></o:p></p><p>* OSCON Wednesday 4PM just before OpenStack birthday party in Expo Hall (watch Twitter for info)<o:p></o:p></p><p>* OSCON Thursday 8PM at Birds of a Feather session (just after the "Distro Smackdown")<o:p></o:p></p><p> <o:p></o:p></p><p>Of course, I'm happy to have 1x1 discussions about this too.  I’ve started a blog series to try an capture the background and process: <a href="http://wp.me/pF6d2-CN" target="_blank">http://wp.me/pF6d2-CN</a> <o:p></o:p></p><p> <o:p></o:p></p><p>Here are the current positions:<o:p></o:p></p><p> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>SINGLE API / MULTIPLE IMPLEMENTATION MODEL (aka PLUG-IN) DESIRED FOR PROJECTS</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>OpenStack will require an open source reference base plug-in implementation for projects (if not part of OpenStack, license model for reference plug-in must be compatible).</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Definition of a plug-in: alternate backend implementations with a common API framework that uses common _code_ to implement the API</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This expects that projects (where technically feasible) are expected to implement a plug-in architecture.  </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This is already in place for several projects and addresses around ecosystem support, enabling innovation</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>5.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Reference plug-ins are, by definition, the complete capability set.  It is not acceptable to have "core" features that are not functional in the reference plug-in</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>API EXTENSION MODEL EXPECTED  FOR PROJECTS</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>OpenStack will follow architectures patterns that enable API extensions.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This will enable plug-ins to offer innovative or differentiated features without forcing changes to the reference plug-in implementation</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This will enable the reference to expand without forcing other plug-ins to match all features and recertify</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>COMMUNITY MAINTAINED TESTS (TEMPEST?) USED AS BASIS FOR OPENSTACK MARK</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Vendor OpenStack implementations must achieve 100% of must-have coverage? </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Implemented tests can be flagged as may-have requires list  [Joshua McKenty]</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Certifiers will be required to disclose their testing gaps.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This will put a lot of pressure on the Tempest project</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>5.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Maintenance of the testing suite to become a core Foundation responsibility.  This may require additional resources</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>VALIDIBLE REMOTE SELF-CERTIFICATION (ON DEMAND TESTING) </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Plug-in certification is driven by Tempest self-certification model </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Self-certifiers are required to publish their results</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Self-certified are required to publish enough information that a 3rd party could build the reference implementation to pass the tests.  </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Self-certified must include the operating systems that have been certified</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>5.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>It is prefered for self-certified implementation to reference an OpenStack reference architecture "flavor" instead of defining their own reference.  (a way to publish and agree on flavors is needed)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>6.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>The Foundation needs to define a mechanism of dispute resolution. (A trust but verify model) </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>5.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> SUBSTITUTE PLUG-IN IMPLEMENTATIONS OK</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>If a vendor plug-in passes all relevant tests then it can be considered a full substitute for the reference plug-in</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>If a vendor plug-in does NOT pass all relevant test then the vendor is required to include the open source reference in the implementation.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>From the may have pick list - must have all must haves. Must haves are 'core' See number 12</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>6.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>TESTING CERTIFICATION BY PLUG-IN IF >1 REFERENCE PLUG-IN</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Looking forward to having multiple reference plug-ins, Tempest may to distinguish between multiple reference plug-ins.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>You can pass certification by passing just one reference test suite + the project tests.   </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>The objective for this position is to allow for future OpenStack functions that requires breaking changes to implementation</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>7.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>OPENSTACK DEFINITIONS APPLY EQUALLY TO ALL DEPLOYMENTS</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>There should not be multiple definitions of OpenStack depending on the operator (public, private, community, etc)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>While expected that each deployement is identifical, the differences must be quantifiable.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>8.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>DISCOVERABLITY OF COMPABILITY (VARIATION IS OK)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Implementations and products are allowed to have variation based on publication of compatabliity</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Consumers must have a way to determine how the system is different from reference (posted, discovered, etc)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Testing must respond in an appropriate way on BOTH pass and fail (the wrong return rejects the entire suite)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>We are NOT stating which projects are required in this position</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>9.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>MUST USE OPENSTACK API IMPLEMENTATION CODE</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Implementation's claiming the OpenStack Mark must use the API  framework code</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>You are not OpenStack, if you pass all the tests but do not use the API framework</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This prevents people from using the API without joining the community</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This also surfaces bit-rot in "PLUGINS" to the larger community</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>5.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This behavior improves interoperability because there is more shared code between implementation</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>10.</span><span style='font-size:7.0pt'>   </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>API CONSUMERS SELF-CERTIFY AGAINST THE REFERENCE IMPLEMENTATION</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>As an ecosystem partner, you have a need to make a "works against OpenStack" statement that is supportable</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>API consumer can claim working against the OpenStack API if it works against any implementation passing all the "must have" tests(YES)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>API consumers can state they are working against the OpenStack API with some "may have" items as requirements </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>API consumers are expected to write tests that validate their required behaviors (submitted as "may have" tests)</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>5.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>The TC will decide which tests are elevated from may-have to must-have</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.25in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>11.</span><span style='font-size:7.0pt'>   </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>THE "MUST-HAVE" TESTS DEFINE "OPENSTACK CORE"</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>We are NOT defining which items are on the list in this effort, just making the position that it is how we will define core</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>May-have tests include items in the integrated release, but which are not core.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>We will have a process by which tests are elevated from may to must lists</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Potentially: the User Committee will nominate tests that elevated to the board</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>5.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Must haves - must comply with the Core criteria defined from the IncUp committee results</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>6.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>The OpenStack board owns the responsibility to define 'core' - to approve 'musts'</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>7.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Projects in Incubation or pre-Incubation are not to be included in the 'may' list</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>12. SPIDER AND CORE DEFINE A SUBSET OF ALL OPENSTACK TRADEMARKS</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>1.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>a. There may be other marks that are managed separately by the foundation, and available for the platform ecosystem as per the Boards discretion</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>2.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>"OpenStack API Compatible " MARK NOT GRANTED</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>3.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This topic is difficult to close at this time and requires a breath of testing that does not yet exist</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in;line-height:12.0pt'><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>4.</span><span style='font-size:7.0pt'>     </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>This is a temporary working position that may be revisited</span><o:p></o:p></p><p> <o:p></o:p></p><p> <o:p></o:p></p><p>Rob<o:p></o:p></p><p>______________________________<o:p></o:p></p><p>Rob Hirschfeld<o:p></o:p></p><p>Sr. Distinguished Cloud Solution Architect<o:p></o:p></p><p>Dell | Cloud Edge, Data Center Solutions<o:p></o:p></p><p>blog <a href="http://robhirschfeld.com" target="_blank">robhirschfeld.com</a>, twitter @zehicle<o:p></o:p></p><p>Please note, I am based in the CENTRAL (-6) time zone <o:p></o:p></p><p> <o:p></o:p></p><p> <o:p></o:p></p></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>_______________________________________________<br>Foundation-board mailing list<br><a href="mailto:Foundation-board@lists.openstack.org">Foundation-board@lists.openstack.org</a><br><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/foundation-board" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/foundation-board</a><o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>