<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>148516</bug_id>
          
          <creation_ts>2015-08-26 23:31:06 -0700</creation_ts>
          <short_desc>AX: Fix accessibility/select-element-at-index.html test</short_desc>
          <delta_ts>2015-08-27 12:21:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=129039</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nan Wang">n_wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>n_wang</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1121224</commentid>
    <comment_count>0</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-08-26 23:31:06 -0700</bug_when>
    <thetext>Test is marked skip in TestExpectation file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121231</commentid>
    <comment_count>1</comment_count>
      <attachid>260042</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-08-26 23:46:45 -0700</bug_when>
    <thetext>Created attachment 260042
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121236</commentid>
    <comment_count>2</comment_count>
      <attachid>260043</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-08-26 23:56:24 -0700</bug_when>
    <thetext>Created attachment 260043
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121238</commentid>
    <comment_count>3</comment_count>
      <attachid>260045</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-08-27 00:06:50 -0700</bug_when>
    <thetext>Created attachment 260045
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121241</commentid>
    <comment_count>4</comment_count>
      <attachid>260045</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-08-27 00:16:30 -0700</bug_when>
    <thetext>Comment on attachment 260045
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=260045&amp;action=review

&gt; Tools/DumpRenderTree/AccessibilityUIElement.cpp:487
&gt; +    int indexNumber = -1;

can we make this unsigned then we don&apos;t have to worry about &gt;= 0

&gt; Tools/DumpRenderTree/AccessibilityUIElement.cpp:498
&gt; +    int indexNumber = -1;

ditto

&gt; Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm:1408
&gt; +    NSArray* selected = [m_element accessibilityAttributeValue:NSAccessibilitySelectedChildrenAttribute];

* is on wrong side because this is ObjC code. 
selected -&gt; selectedChildren

&gt; Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm:1409
&gt; +    NSArray* array = [NSArray arrayWithObject:element.platformUIElement()];

ditto about *

&gt; Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm:1420
&gt; +    NSArray* selected = [m_element accessibilityAttributeValue:NSAccessibilitySelectedChildrenAttribute];

ditto

&gt; Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm:1423
&gt; +    NSMutableArray* array = [NSMutableArray arrayWithArray:selected];

ditto

&gt; Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:1448
&gt; +    NSArray* array = [NSArray arrayWithObject:element-&gt;platformUIElement()];

ditto

&gt; Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:1459
&gt; +    NSArray* selected = [m_element accessibilityAttributeValue:NSAccessibilitySelectedChildrenAttribute];

ditto

&gt; Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:1464
&gt; +    [m_element accessibilitySetValue:array forAttribute:NSAccessibilitySelectedChildrenAttribute];

i see that when we use this it performs it async which makes testing hard. there is a method

- (void)_accessibilitySetValue:(id)value forAttribute:(NSString*)attributeName

that is not async</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121360</commentid>
    <comment_count>5</comment_count>
      <attachid>260070</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-08-27 10:56:52 -0700</bug_when>
    <thetext>Created attachment 260070
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121364</commentid>
    <comment_count>6</comment_count>
      <attachid>260070</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-08-27 11:07:03 -0700</bug_when>
    <thetext>Comment on attachment 260070
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=260070&amp;action=review

&gt; LayoutTests/accessibility/select-element-at-index.html:48
&gt; +        if (accessibilityController.platformName == &quot;mac&quot;) 

can you add a comment why this is necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121372</commentid>
    <comment_count>7</comment_count>
      <attachid>260072</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-08-27 11:20:19 -0700</bug_when>
    <thetext>Created attachment 260072
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121387</commentid>
    <comment_count>8</comment_count>
      <attachid>260075</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-08-27 12:04:51 -0700</bug_when>
    <thetext>Created attachment 260075
patch

Fix iOS build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121394</commentid>
    <comment_count>9</comment_count>
      <attachid>260075</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-27 12:21:46 -0700</bug_when>
    <thetext>Comment on attachment 260075
patch

Clearing flags on attachment: 260075

Committed r189044: &lt;http://trac.webkit.org/changeset/189044&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121395</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-27 12:21:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260042</attachid>
            <date>2015-08-26 23:46:45 -0700</date>
            <delta_ts>2015-08-26 23:50:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20214</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4OTAxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTI2ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwg
dGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50ZWQgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXggYW5kIHJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXggZm9yIG1hYy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwOgorICAgICAgICAoc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrKToKKyAgICAgICAg
KHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlU2VsZWN0
aW9uQXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKGVsZW1lbnRBdFBvaW50Q2FsbGJhY2spOgor
ICAgICAgICAoc2VudGVuY2VBdE9mZnNldENhbGxiYWNrKToKKyAgICAgICAgKHN0cmluZ0ZvclNl
bGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpT
Q2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rp
b25BdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxp
dHlWYWx1ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6d29yZEF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VudGVuY2VBdE9mZnNldCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0YWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
TXVsdGlTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2V0U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3Zl
U2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CisKIDIwMTUtMDgtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5j
aG9pQG5hdmVyY29ycC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYXR0ZW1w
dCBvbiBFRkwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgyLDYgKzQ4Miwy
OCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQ2FsbGJhCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIgPSAtMTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9
PSAxKQorICAgICAgICBpbmRleE51bWJlciA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAgCisgICAgaWYgKGluZGV4TnVtYmVyID49IDApCisg
ICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZXRTZWxlY3RlZENoaWxkQXRJbmRleChp
bmRleE51bWJlcik7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
fQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25BdEluZGV4Q2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGludCBpbmRleE51bWJlciA9IC0xOwor
ICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpCisgICAgICAgIGluZGV4TnVtYmVyID0gSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKyAgICAKKyAgICBp
ZiAoaW5kZXhOdW1iZXIgPj0gMCkKKyAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnJl
bW92ZVNlbGVjdGlvbkF0SW5kZXgoaW5kZXhOdW1iZXIpOworICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudEF0UG9p
bnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IHggPSAw
OwpAQCAtMTI5NCwyOCArMTMxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZz
ZXRDYWxsYmEKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgc2VudGVuY2VB
dE9mZnNldC5nZXQoKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNlbGVjdGVkQ2hpbGRB
dEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGludCBp
bmRleE51bWJlciA9IC0xOwotICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpOwotICAgICAgICBp
bmRleE51bWJlciA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2Vw
dGlvbik7Ci0KLSAgICBpZiAoaW5kZXhOdW1iZXIgPj0gMCkKLSAgICAgICAgdG9BWEVsZW1lbnQo
dGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVl
UmVmIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCi17Ci0gICAgaW50IGluZGV4TnVtYmVyID0gLTE7Ci0gICAgaWYgKGFyZ3VtZW50Q291
bnQgPT0gMSkKLSAgICAgICAgaW5kZXhOdW1iZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
YXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwotCi0gICAgaWYgKGluZGV4TnVtYmVyID49IDApCi0g
ICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KGlu
ZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19
Ci0KICNlbGlmIFBMQVRGT1JNKElPUykKIAogc3RhdGljIEpTVmFsdWVSZWYgc3RyaW5nRm9yU2Vs
ZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAt
MTY5Niw2ICsxNjk2LDggQEAgSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRK
UwogICAgICAgICB7ICJwcmV2aW91c1RleHRNYXJrZXIiLCBwcmV2aW91c1RleHRNYXJrZXJDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiLCBzdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxl
Y3RlZENoaWxkIiwgc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsg
InNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Iiwgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVTZWxlY3Rpb25BdEluZGV4IiwgcmVtb3ZlU2Vs
ZWN0aW9uQXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFZhbHVlIiwgc2V0
VmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxlY3RlZFZpc2libGVUZXh0
UmFuZ2UiLCBzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZWxlY3RlZENoaWxkQXRJbmRleCIsIHNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKQEAgLTE3MDUsOCArMTcwNyw2IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0SlMKICAgICAgICAgeyAid29yZEF0T2Zmc2V0Iiwgd29yZEF0T2Zmc2V0
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAibGluZUF0T2Zmc2V0IiwgbGluZUF0T2Zmc2V0
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2VudGVuY2VBdE9mZnNldCIsIHNlbnRlbmNl
QXRPZmZzZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkQXRJ
bmRleCIsIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAg
eyAicmVtb3ZlU2VsZWN0aW9uQXRJbmRleCIsIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgICAgICB7ICJsaW5rZWRFbGVtZW50
IiwgbGlua2VkRWxlbWVudENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImhlYWRlckVsZW1l
bnRBdEluZGV4IiwgaGVhZGVyRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0JKHJldmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzk5LDYgKzEz
OTksMzMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZAogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBlbGVt
ZW50ID0gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Kj4odGhpcyktPmdldENoaWxk
QXRJbmRleChpbmRleCk7CisgICAgaWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBOU0FycmF5KiBzZWxlY3RlZCA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdOworICAgIE5TQXJyYXkqIGFycmF5ID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmVs
ZW1lbnQucGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgaWYgKHNlbGVjdGVkKQorICAgICAgICBh
cnJheSA9IFtzZWxlY3RlZCBhcnJheUJ5QWRkaW5nT2JqZWN0c0Zyb21BcnJheTphcnJheV07Cisg
ICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6YXJyYXkgZm9yQXR0cmlidXRlOk5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOworICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxl
Y3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUworICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgZWxlbWVudCA9IGNvbnN0X2Nh
c3Q8QWNjZXNzaWJpbGl0eVVJRWxlbWVudCo+KHRoaXMpLT5nZXRDaGlsZEF0SW5kZXgoaW5kZXgp
OworICAgIE5TQXJyYXkqIHNlbGVjdGVkID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAg
aWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkgfHwgIXNlbGVjdGVkKQorICAgICAgICBy
ZXR1cm47CisgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5
V2l0aEFycmF5OnNlbGVjdGVkXTsKKyAgICBbYXJyYXkgcmVtb3ZlT2JqZWN0OmVsZW1lbnQucGxh
dGZvcm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6
YXJyYXkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwogSlNTdHJpbmdSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDYg
QEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSQogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsg
cmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpsaW5lQXRPZmZzZXQoaW50KSB7IHJldHVybiAwOyB9CiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpIHsgcmV0
dXJuIDA7IH0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0
SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
ZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KICNlbmRpZgogCiAjaWYg
KCFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkpIHx8
ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCkBAIC0xNDcsNiArMTQ1LDggQEAgYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkTwogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1NlbGVjdGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCopIGNvbnN0IHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRT
ZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9Cit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQog
dW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29u
c3QgeyByZXR1cm4gMDsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0V4cGFuZGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudE1hYy5tbQkocmV2aXNpb24gMTg4OTM0KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTQzOCw2ICsxNDM4LDMzIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2V0U2VsZWN0ZWQKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TICAgIAogfQog
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVu
c2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAg
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVtZW50ID0gY29uc3RfY2FzdDxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Kj4odGhpcyktPmNoaWxkQXRJbmRleChpbmRleCk7CisgICAgaWYg
KCFlbGVtZW50KQorICAgICAgICByZXR1cm47CisgICAgTlNBcnJheSogc2VsZWN0ZWQgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBOU0FycmF5KiBhcnJheSA9IFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDplbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpXTsKKyAgICBpZiAoc2VsZWN0
ZWQpCisgICAgICAgIGFycmF5ID0gW3NlbGVjdGVkIGFycmF5QnlBZGRpbmdPYmplY3RzRnJvbUFy
cmF5OmFycmF5XTsKKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTZXRWYWx1ZTphcnJheSBm
b3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorICAgIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAorewor
ICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBlbGVtZW50ID0gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Kj4odGhp
cyktPmNoaWxkQXRJbmRleChpbmRleCk7CisgICAgTlNBcnJheSogc2VsZWN0ZWQgPSBbbV9lbGVt
ZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENo
aWxkcmVuQXR0cmlidXRlXTsKKyAgICBpZiAoIWVsZW1lbnQgfHwgIXNlbGVjdGVkKQorICAgICAg
ICByZXR1cm47CisgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFy
cmF5V2l0aEFycmF5OnNlbGVjdGVkXTsKKyAgICBbYXJyYXkgcmVtb3ZlT2JqZWN0OmVsZW1lbnQt
PnBsYXRmb3JtVUlFbGVtZW50KCldOworICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNldFZh
bHVlOmFycmF5IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0
cmlidXRlXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5VmFsdWUoKSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4OTAx
MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0
IEBACisyMDE1LTA4LTI2ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwgdGVzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NTE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxNS0w
OC0yNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgd2F0Y2hkb2cg
bV9kaWRGaXJlIHN0YXRlIGVycm9uZW91c2x5IHJldGFpbmVkLgpJbmRleDogTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbAko
cmV2aXNpb24gMTg4OTM0KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxl
bWVudC1hdC1pbmRleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwzNiArMzAsNzYgQEAKICAg
ICAgICAgdmFyIG9wdGlvbjMgPSBzZWxlY3RFbGVtZW50LmNoaWxkQXRJbmRleCgyKTsKICAgICAg
ICAgdmFyIG9wdGlvbjQgPSBzZWxlY3RFbGVtZW50LmNoaWxkQXRJbmRleCgzKTsKIAotICAgICAg
ICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDApOwotICAgICAgICBzaG91
bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMSIpOwotICAgICAg
ICBzaG91bGRCZVRydWUoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOwotICAgICAgICBzaG91bGRCZVRy
dWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCkuaXNFcXVhbChvcHRpb24x
KSIpOwotCi0gICAgICAgIHNlbGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSk7
Ci0gICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIs
ICIyIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uMi5pc1NlbGVjdGVkIik7Ci0gICAg
ICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5p
c0VxdWFsKG9wdGlvbjIpIik7Ci0KLSAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uMy5pc1Nl
bGVjdGVkIik7Ci0KLSAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJbmRl
eCgzKTsKLSAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IiwgIjMiKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb240LmlzU2VsZWN0ZWQiKTsK
LSAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4
KDMpLmlzRXF1YWwob3B0aW9uNCkiKTsKLQotICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNl
bGVjdGlvbkF0SW5kZXgoMyk7Ci0gICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjQuaXNTZWxl
Y3RlZCIpOwotICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVu
Q291bnQiLCAiMiIpOwotCi0gICAgICAgIHNlbGVjdEVsZW1lbnQucmVtb3ZlU2VsZWN0aW9uQXRJ
bmRleCgxKTsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uMi5pc1NlbGVjdGVkIik7Ci0g
ICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIx
Iik7Ci0KLSAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KDApOwot
ICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24xLmlzU2VsZWN0ZWQiKTsKLSAgICAgICAgc2hv
dWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjAiKTsKLX0KLQor
ICAgICAgICBpZiAoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1lICE9ICJtYWMi
KSB7CisgICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDAp
OworICAgICAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IiwgIjEiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uMS5pc1NlbGVjdGVk
Iik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGls
ZEF0SW5kZXgoMCkuaXNFcXVhbChvcHRpb24xKSIpOworCisgICAgICAgICAgICBzZWxlY3RFbGVt
ZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDEpOworICAgICAgICAgICAgc2hvdWxkQmUoInNl
bGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjIiKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgib3B0aW9uMi5pc1NlbGVjdGVkIik7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSkuaXNFcXVhbChvcHRpb24y
KSIpOworCisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24zLmlzU2VsZWN0ZWQiKTsK
KworICAgICAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJbmRleCgzKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCIsICIzIik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxlY3RlZCIp
OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRB
dEluZGV4KDMpLmlzRXF1YWwob3B0aW9uNCkiKTsKKworICAgICAgICAgICAgc2VsZWN0RWxlbWVu
dC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KDMpOworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgi
b3B0aW9uNC5pc1NlbGVjdGVkIik7CisgICAgICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMiIpOworCisgICAgICAgICAgICBzZWxlY3RFbGVt
ZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgoMSk7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNl
KCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVt
ZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIxIik7CisKKyAgICAgICAgICAgIHNlbGVjdEVs
ZW1lbnQucmVtb3ZlU2VsZWN0aW9uQXRJbmRleCgwKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFs
c2UoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOworICAgICAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVs
ZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjAiKTsgCisKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIFNlbGVjdGlvbiBvcGVyYXRpb25zIGhhcHBlbiBhZnRlciBhIGRlbGF5
IHNvIHRoZXkgZG9uJ3QgaGFuZy4gQ2hlY2sgdGhlIHJlc3VsdCBvbiBhIHRpbWVvdXQuCisgICAg
ICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICBzZWxlY3RF
bGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgc2hvdWxkQmVj
b21lRXF1YWwoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjEuaXNTZWxlY3Rl
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3Rl
ZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIik7CisKKyAgICAgICAgICAgICAgICBz
ZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDEpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlY29tZUVxdWFsKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIs
ICIyIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0
aW9uMi5pc1NlbGVjdGVkIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2Vs
ZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5pc0VxdWFsKG9wdGlvbjIpIik7CisK
KyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uMy5pc1NlbGVjdGVkIik7
CisKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJ
bmRleCgzKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoInNlbGVjdEVs
ZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uNC5pc1NlbGVjdGVkIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRD
aGlsZEF0SW5kZXgoMikuaXNFcXVhbChvcHRpb240KSIpOworCisgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgoMyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENo
aWxkcmVuQ291bnQiLCAiMiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjQuaXNTZWxlY3RlZCIpOworCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJzZWxlY3RFbGVt
ZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIxIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjIuaXNTZWxlY3RlZCIp
OworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQucmVtb3Zl
U2VsZWN0aW9uQXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmVjb21lRXF1YWwoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjAi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRmFsc2UoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CiA8L3NjcmlwdD4KIAogPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE4ODkzNCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw5ICs0NCw2IEBAIGFjY2Vzc2liaWxpdHkvY2hpbGRyZW4tY2hhbmdlZC1zZW5k
cy1ub3QKIGFjY2Vzc2liaWxpdHkvbWVudS1saXN0LXNlbmRzLWNoYW5nZS1ub3RpZmljYXRpb24u
aHRtbAogYWNjZXNzaWJpbGl0eS9tdWx0aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0aXZlLW9wdGlv
bi5odG1sCiAKLSMgTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBzb21lIGZ1bmN0aW9ucyBpbiBt
YWMuCi13ZWJraXQub3JnL2IvMTI5MDM5IGFjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQt
aW5kZXguaHRtbCBbIFNraXAgXQotCiAjIGFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4IGlzIG5v
dCBpbXBsZW1lbnRlZCBpbiBtYWMKIHdlYmtpdC5vcmcvYi8xMjc5MDggYWNjZXNzaWJpbGl0eS9h
cmlhLWNvbnRyb2xzLmh0bWwgWyBTa2lwIF0KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisKK1Rlc3RzIHRoYXQg
Y2hlY2tzIHdoZXRoZXIgc2V0dGluZyBzZWxlY3Rpb24gYXQgdGhlIGdpdmVuIGluZGV4IHdvcmtz
IGNvcnJlY3RseQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzZWxlY3RF
bGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBpcyAwCitQQVNTIHNlbGVjdEVsZW1lbnQuc2Vs
ZWN0ZWRDaGlsZHJlbkNvdW50IGJlY2FtZSAxCitQQVNTIG9wdGlvbjEuaXNTZWxlY3RlZCBpcyB0
cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCkuaXNFcXVhbChv
cHRpb24xKSBpcyB0cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50
IGJlY2FtZSAyCitQQVNTIG9wdGlvbjIuaXNTZWxlY3RlZCBpcyB0cnVlCitQQVNTIHNlbGVjdEVs
ZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSkuaXNFcXVhbChvcHRpb24yKSBpcyB0cnVlCitQ
QVNTIG9wdGlvbjMuaXNTZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVj
dGVkQ2hpbGRyZW5Db3VudCBiZWNhbWUgMworUEFTUyBvcHRpb240LmlzU2VsZWN0ZWQgaXMgdHJ1
ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDIpLmlzRXF1YWwob3B0
aW9uNCkgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBi
ZWNhbWUgMgorUEFTUyBvcHRpb240LmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxl
bWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgYmVjYW1lIDEKK1BBU1Mgb3B0aW9uMi5pc1NlbGVj
dGVkIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGJl
Y2FtZSAwCitQQVNTIG9wdGlvbjEuaXNTZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260043</attachid>
            <date>2015-08-26 23:56:24 -0700</date>
            <delta_ts>2015-08-27 00:06:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20210</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4OTAxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTI2ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwg
dGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50ZWQgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXggYW5kIHJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXggZm9yIG1hYy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwOgorICAgICAgICAoc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrKToKKyAgICAgICAg
KHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlU2VsZWN0
aW9uQXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKGVsZW1lbnRBdFBvaW50Q2FsbGJhY2spOgor
ICAgICAgICAoc2VudGVuY2VBdE9mZnNldENhbGxiYWNrKToKKyAgICAgICAgKHN0cmluZ0ZvclNl
bGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpT
Q2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rp
b25BdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxp
dHlWYWx1ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6d29yZEF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VudGVuY2VBdE9mZnNldCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0YWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
TXVsdGlTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2V0U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3Zl
U2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CisKIDIwMTUtMDgtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5j
aG9pQG5hdmVyY29ycC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYXR0ZW1w
dCBvbiBFRkwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgyLDYgKzQ4Miwy
OCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQ2FsbGJhCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIgPSAtMTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9
PSAxKQorICAgICAgICBpbmRleE51bWJlciA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAgCisgICAgaWYgKGluZGV4TnVtYmVyID49IDApCisg
ICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZXRTZWxlY3RlZENoaWxkQXRJbmRleChp
bmRleE51bWJlcik7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
fQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25BdEluZGV4Q2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGludCBpbmRleE51bWJlciA9IC0xOwor
ICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpCisgICAgICAgIGluZGV4TnVtYmVyID0gSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKyAgICAKKyAgICBp
ZiAoaW5kZXhOdW1iZXIgPj0gMCkKKyAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnJl
bW92ZVNlbGVjdGlvbkF0SW5kZXgoaW5kZXhOdW1iZXIpOworICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudEF0UG9p
bnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IHggPSAw
OwpAQCAtMTI5NCwyOCArMTMxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZz
ZXRDYWxsYmEKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgc2VudGVuY2VB
dE9mZnNldC5nZXQoKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNlbGVjdGVkQ2hpbGRB
dEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGludCBp
bmRleE51bWJlciA9IC0xOwotICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpOwotICAgICAgICBp
bmRleE51bWJlciA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2Vw
dGlvbik7Ci0KLSAgICBpZiAoaW5kZXhOdW1iZXIgPj0gMCkKLSAgICAgICAgdG9BWEVsZW1lbnQo
dGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVl
UmVmIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCi17Ci0gICAgaW50IGluZGV4TnVtYmVyID0gLTE7Ci0gICAgaWYgKGFyZ3VtZW50Q291
bnQgPT0gMSkKLSAgICAgICAgaW5kZXhOdW1iZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
YXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwotCi0gICAgaWYgKGluZGV4TnVtYmVyID49IDApCi0g
ICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KGlu
ZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19
Ci0KICNlbGlmIFBMQVRGT1JNKElPUykKIAogc3RhdGljIEpTVmFsdWVSZWYgc3RyaW5nRm9yU2Vs
ZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAt
MTY5Niw2ICsxNjk2LDggQEAgSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRK
UwogICAgICAgICB7ICJwcmV2aW91c1RleHRNYXJrZXIiLCBwcmV2aW91c1RleHRNYXJrZXJDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiLCBzdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxl
Y3RlZENoaWxkIiwgc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsg
InNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Iiwgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVTZWxlY3Rpb25BdEluZGV4IiwgcmVtb3ZlU2Vs
ZWN0aW9uQXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFZhbHVlIiwgc2V0
VmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxlY3RlZFZpc2libGVUZXh0
UmFuZ2UiLCBzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZWxlY3RlZENoaWxkQXRJbmRleCIsIHNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKQEAgLTE3MDUsOCArMTcwNyw2IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0SlMKICAgICAgICAgeyAid29yZEF0T2Zmc2V0Iiwgd29yZEF0T2Zmc2V0
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAibGluZUF0T2Zmc2V0IiwgbGluZUF0T2Zmc2V0
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2VudGVuY2VBdE9mZnNldCIsIHNlbnRlbmNl
QXRPZmZzZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkQXRJ
bmRleCIsIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAg
eyAicmVtb3ZlU2VsZWN0aW9uQXRJbmRleCIsIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgICAgICB7ICJsaW5rZWRFbGVtZW50
IiwgbGlua2VkRWxlbWVudENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImhlYWRlckVsZW1l
bnRBdEluZGV4IiwgaGVhZGVyRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0JKHJldmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzk5LDYgKzEz
OTksMzMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZAogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBlbGVt
ZW50ID0gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Kj4odGhpcyktPmdldENoaWxk
QXRJbmRleChpbmRleCk7CisgICAgaWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBOU0FycmF5KiBzZWxlY3RlZCA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdOworICAgIE5TQXJyYXkqIGFycmF5ID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmVs
ZW1lbnQucGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgaWYgKHNlbGVjdGVkKQorICAgICAgICBh
cnJheSA9IFtzZWxlY3RlZCBhcnJheUJ5QWRkaW5nT2JqZWN0c0Zyb21BcnJheTphcnJheV07Cisg
ICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6YXJyYXkgZm9yQXR0cmlidXRlOk5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOworICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxl
Y3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUworICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgZWxlbWVudCA9IGNvbnN0X2Nh
c3Q8QWNjZXNzaWJpbGl0eVVJRWxlbWVudCo+KHRoaXMpLT5nZXRDaGlsZEF0SW5kZXgoaW5kZXgp
OworICAgIE5TQXJyYXkqIHNlbGVjdGVkID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAg
aWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkgfHwgIXNlbGVjdGVkKQorICAgICAgICBy
ZXR1cm47CisgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5
V2l0aEFycmF5OnNlbGVjdGVkXTsKKyAgICBbYXJyYXkgcmVtb3ZlT2JqZWN0OmVsZW1lbnQucGxh
dGZvcm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6
YXJyYXkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwogSlNTdHJpbmdSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDYg
QEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSQogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsg
cmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpsaW5lQXRPZmZzZXQoaW50KSB7IHJldHVybiAwOyB9CiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpIHsgcmV0
dXJuIDA7IH0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0
SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
ZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KICNlbmRpZgogCiAjaWYg
KCFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkpIHx8
ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCkBAIC0xNDcsNiArMTQ1LDggQEAgYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkTwogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1NlbGVjdGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCopIGNvbnN0IHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRT
ZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9Cit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQog
dW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29u
c3QgeyByZXR1cm4gMDsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0V4cGFuZGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudE1hYy5tbQkocmV2aXNpb24gMTg4OTM0KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTQzOCw2ICsxNDM4LDMzIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2V0U2VsZWN0ZWQKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TICAgIAogfQog
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVu
c2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAg
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVtZW50ID0gY29uc3RfY2FzdDxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Kj4odGhpcyktPmNoaWxkQXRJbmRleChpbmRleCk7CisgICAgaWYg
KCFlbGVtZW50KQorICAgICAgICByZXR1cm47CisgICAgTlNBcnJheSogc2VsZWN0ZWQgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBOU0FycmF5KiBhcnJheSA9IFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDplbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpXTsKKyAgICBpZiAoc2VsZWN0
ZWQpCisgICAgICAgIGFycmF5ID0gW3NlbGVjdGVkIGFycmF5QnlBZGRpbmdPYmplY3RzRnJvbUFy
cmF5OmFycmF5XTsKKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTZXRWYWx1ZTphcnJheSBm
b3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+
Y2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBOU0FycmF5KiBzZWxlY3RlZCA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRy
ZW5BdHRyaWJ1dGVdOworICAgIGlmICghZWxlbWVudCB8fCAhc2VsZWN0ZWQpCisgICAgICAgIHJl
dHVybjsKKyAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlX
aXRoQXJyYXk6c2VsZWN0ZWRdOworICAgIFthcnJheSByZW1vdmVPYmplY3Q6ZWxlbWVudC0+cGxh
dGZvcm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6
YXJyYXkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0
CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5MDEyKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTUtMDgtMjYgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
Rml4IGFjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbCB0ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg1MTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3QtZWxlbWVudC1hdC1pbmRleC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDE1LTA4LTI2
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICB3YXRjaGRvZyBtX2Rp
ZEZpcmUgc3RhdGUgZXJyb25lb3VzbHkgcmV0YWluZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sCShyZXZp
c2lvbiAxODg5MzQpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50
LWF0LWluZGV4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDM2ICszMCw3NiBAQAogICAgICAg
ICB2YXIgb3B0aW9uMyA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDIpOwogICAgICAgICB2
YXIgb3B0aW9uNCA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDMpOwogCi0gICAgICAgIHNl
bGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgIHNob3VsZEJl
KCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIxIik7Ci0gICAgICAgIHNo
b3VsZEJlVHJ1ZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgi
c2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIik7
Ci0KLSAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJbmRleCgxKTsKLSAg
ICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjIi
KTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKLSAgICAgICAg
c2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDEpLmlzRXF1
YWwob3B0aW9uMikiKTsKLQotICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24zLmlzU2VsZWN0
ZWQiKTsKLQotICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDMp
OwotICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQi
LCAiMyIpOwotICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxlY3RlZCIpOwotICAg
ICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMyku
aXNFcXVhbChvcHRpb240KSIpOwotCi0gICAgICAgIHNlbGVjdEVsZW1lbnQucmVtb3ZlU2VsZWN0
aW9uQXRJbmRleCgzKTsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uNC5pc1NlbGVjdGVk
Iik7Ci0gICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCIsICIyIik7Ci0KLSAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4
KDEpOwotICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKLSAgICAg
ICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiKTsK
LQotICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgoMCk7Ci0gICAg
ICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOwotICAgICAgICBzaG91bGRC
ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIpOwotfQotCisgICAg
ICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgIT0gIm1hYyIpIHsK
KyAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQi
LCAiMSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24xLmlzU2VsZWN0ZWQiKTsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJ
bmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIik7CisKKyAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQu
c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSk7CisgICAgICAgICAgICBzaG91bGRCZSgic2VsZWN0
RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMiIpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
c2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5pc0VxdWFsKG9wdGlvbjIpIik7
CisKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjMuaXNTZWxlY3RlZCIpOworCisg
ICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDMpOworICAg
ICAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50Iiwg
IjMiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uNC5pc1NlbGVjdGVkIik7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5k
ZXgoMykuaXNFcXVhbChvcHRpb240KSIpOworCisgICAgICAgICAgICBzZWxlY3RFbGVtZW50LnJl
bW92ZVNlbGVjdGlvbkF0SW5kZXgoMyk7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRp
b240LmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNl
bGVjdGVkQ2hpbGRyZW5Db3VudCIsICIyIik7CisKKyAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQu
cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCgxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm9w
dGlvbjIuaXNTZWxlY3RlZCIpOworICAgICAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiKTsKKworICAgICAgICAgICAgc2VsZWN0RWxlbWVu
dC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KDApOworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgi
b3B0aW9uMS5pc1NlbGVjdGVkIik7CisgICAgICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIpOyAKKworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgLy8gU2VsZWN0aW9uIG9wZXJhdGlvbnMgaGFwcGVuIGFmdGVyIGEgZGVsYXkgc28g
dGhleSBkb24ndCBoYW5nLiBDaGVjayB0aGUgcmVzdWx0IG9uIGEgdGltZW91dC4KKyAgICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbGVjdEVsZW1l
bnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICBzaG91bGRCZWNvbWVF
cXVhbCgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMSIsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hp
bGRBdEluZGV4KDApLmlzRXF1YWwob3B0aW9uMSkiKTsKKworICAgICAgICAgICAgICAgIHNlbGVj
dEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSk7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVjb21lRXF1YWwoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjIi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24y
LmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RF
bGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDEpLmlzRXF1YWwob3B0aW9uMikiKTsKKworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24zLmlzU2VsZWN0ZWQiKTsKKwor
ICAgICAgICAgICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4
KDMpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgic2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb240LmlzU2VsZWN0ZWQiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxk
QXRJbmRleCgyKS5pc0VxdWFsKG9wdGlvbjQpIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGVjdEVsZW1lbnQucmVtb3ZlU2VsZWN0aW9uQXRJbmRleCgzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRy
ZW5Db3VudCIsICIyIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmVGYWxzZSgib3B0aW9uNC5pc1NlbGVjdGVkIik7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgoMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoInNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uMi5pc1NlbGVjdGVkIik7CisK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxl
Y3Rpb25BdEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZWNvbWVFcXVhbCgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVG
YWxzZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KIDwvc2NyaXB0PgogCiA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTg4OTM0KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDkgKzQ0LDYgQEAgYWNjZXNzaWJpbGl0eS9jaGlsZHJlbi1jaGFuZ2VkLXNlbmRzLW5v
dAogYWNjZXNzaWJpbGl0eS9tZW51LWxpc3Qtc2VuZHMtY2hhbmdlLW5vdGlmaWNhdGlvbi5odG1s
CiBhY2Nlc3NpYmlsaXR5L211bHRpc2VsZWN0LWxpc3QtcmVwb3J0cy1hY3RpdmUtb3B0aW9uLmh0
bWwKIAotIyBNaXNzaW5nIGltcGxlbWVudGF0aW9uIG9mIHNvbWUgZnVuY3Rpb25zIGluIG1hYy4K
LXdlYmtpdC5vcmcvYi8xMjkwMzkgYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRl
eC5odG1sIFsgU2tpcCBdCi0KICMgYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXggaXMgbm90IGlt
cGxlbWVudGVkIGluIG1hYwogd2Via2l0Lm9yZy9iLzEyNzkwOCBhY2Nlc3NpYmlsaXR5L2FyaWEt
Y29udHJvbHMuaHRtbCBbIFNraXAgXQogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVs
ZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKworVGVzdHMgdGhhdCBjaGVj
a3Mgd2hldGhlciBzZXR0aW5nIHNlbGVjdGlvbiBhdCB0aGUgZ2l2ZW4gaW5kZXggd29ya3MgY29y
cmVjdGx5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNlbGVjdEVsZW1l
bnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDAKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3Rl
ZENoaWxkcmVuQ291bnQgYmVjYW1lIDEKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVkIGlzIHRydWUK
K1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKG9wdGlv
bjEpIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgYmVj
YW1lIDIKK1BBU1Mgb3B0aW9uMi5pc1NlbGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5pc0VxdWFsKG9wdGlvbjIpIGlzIHRydWUKK1BBU1Mg
b3B0aW9uMy5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRD
aGlsZHJlbkNvdW50IGJlY2FtZSAzCitQQVNTIG9wdGlvbjQuaXNTZWxlY3RlZCBpcyB0cnVlCitQ
QVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMikuaXNFcXVhbChvcHRpb240
KSBpcyB0cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGJlY2Ft
ZSAyCitQQVNTIG9wdGlvbjQuaXNTZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzZWxlY3RFbGVtZW50
LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBiZWNhbWUgMQorUEFTUyBvcHRpb24yLmlzU2VsZWN0ZWQg
aXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgYmVjYW1l
IDAKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260045</attachid>
            <date>2015-08-27 00:06:50 -0700</date>
            <delta_ts>2015-08-27 10:56:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20219</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4OTAxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTI3ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwg
dGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50ZWQgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXggYW5kIHJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXggZm9yIG1hYy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwOgorICAgICAgICAoc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrKToKKyAgICAgICAg
KHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlU2VsZWN0
aW9uQXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKGVsZW1lbnRBdFBvaW50Q2FsbGJhY2spOgor
ICAgICAgICAoc2VudGVuY2VBdE9mZnNldENhbGxiYWNrKToKKyAgICAgICAgKHN0cmluZ0ZvclNl
bGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpT
Q2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rp
b25BdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxp
dHlWYWx1ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6d29yZEF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VudGVuY2VBdE9mZnNldCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0YWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
TXVsdGlTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2V0U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3Zl
U2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CisKIDIwMTUtMDgtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5j
aG9pQG5hdmVyY29ycC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYXR0ZW1w
dCBvbiBFRkwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgyLDYgKzQ4Miwy
OCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQ2FsbGJhCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIgPSAtMTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9
PSAxKQorICAgICAgICBpbmRleE51bWJlciA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAgCisgICAgaWYgKGluZGV4TnVtYmVyID49IDApCisg
ICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZXRTZWxlY3RlZENoaWxkQXRJbmRleChp
bmRleE51bWJlcik7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
fQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25BdEluZGV4Q2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGludCBpbmRleE51bWJlciA9IC0xOwor
ICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpCisgICAgICAgIGluZGV4TnVtYmVyID0gSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKyAgICAKKyAgICBp
ZiAoaW5kZXhOdW1iZXIgPj0gMCkKKyAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnJl
bW92ZVNlbGVjdGlvbkF0SW5kZXgoaW5kZXhOdW1iZXIpOworICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudEF0UG9p
bnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IHggPSAw
OwpAQCAtMTI5NCwyOCArMTMxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZz
ZXRDYWxsYmEKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgc2VudGVuY2VB
dE9mZnNldC5nZXQoKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNlbGVjdGVkQ2hpbGRB
dEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGludCBp
bmRleE51bWJlciA9IC0xOwotICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpOwotICAgICAgICBp
bmRleE51bWJlciA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2Vw
dGlvbik7Ci0KLSAgICBpZiAoaW5kZXhOdW1iZXIgPj0gMCkKLSAgICAgICAgdG9BWEVsZW1lbnQo
dGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVl
UmVmIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCi17Ci0gICAgaW50IGluZGV4TnVtYmVyID0gLTE7Ci0gICAgaWYgKGFyZ3VtZW50Q291
bnQgPT0gMSkKLSAgICAgICAgaW5kZXhOdW1iZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
YXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwotCi0gICAgaWYgKGluZGV4TnVtYmVyID49IDApCi0g
ICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KGlu
ZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19
Ci0KICNlbGlmIFBMQVRGT1JNKElPUykKIAogc3RhdGljIEpTVmFsdWVSZWYgc3RyaW5nRm9yU2Vs
ZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAt
MTY5Niw2ICsxNjk2LDggQEAgSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRK
UwogICAgICAgICB7ICJwcmV2aW91c1RleHRNYXJrZXIiLCBwcmV2aW91c1RleHRNYXJrZXJDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiLCBzdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxl
Y3RlZENoaWxkIiwgc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsg
InNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Iiwgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVTZWxlY3Rpb25BdEluZGV4IiwgcmVtb3ZlU2Vs
ZWN0aW9uQXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFZhbHVlIiwgc2V0
VmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxlY3RlZFZpc2libGVUZXh0
UmFuZ2UiLCBzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZWxlY3RlZENoaWxkQXRJbmRleCIsIHNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKQEAgLTE3MDUsOCArMTcwNyw2IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0SlMKICAgICAgICAgeyAid29yZEF0T2Zmc2V0Iiwgd29yZEF0T2Zmc2V0
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAibGluZUF0T2Zmc2V0IiwgbGluZUF0T2Zmc2V0
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2VudGVuY2VBdE9mZnNldCIsIHNlbnRlbmNl
QXRPZmZzZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkQXRJ
bmRleCIsIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAg
eyAicmVtb3ZlU2VsZWN0aW9uQXRJbmRleCIsIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgICAgICB7ICJsaW5rZWRFbGVtZW50
IiwgbGlua2VkRWxlbWVudENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImhlYWRlckVsZW1l
bnRBdEluZGV4IiwgaGVhZGVyRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0JKHJldmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzk5LDYgKzEz
OTksMzMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZAogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBlbGVt
ZW50ID0gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Kj4odGhpcyktPmdldENoaWxk
QXRJbmRleChpbmRleCk7CisgICAgaWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBOU0FycmF5KiBzZWxlY3RlZCA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdOworICAgIE5TQXJyYXkqIGFycmF5ID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmVs
ZW1lbnQucGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgaWYgKHNlbGVjdGVkKQorICAgICAgICBh
cnJheSA9IFtzZWxlY3RlZCBhcnJheUJ5QWRkaW5nT2JqZWN0c0Zyb21BcnJheTphcnJheV07Cisg
ICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6YXJyYXkgZm9yQXR0cmlidXRlOk5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOworICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxl
Y3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUworICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgZWxlbWVudCA9IGNvbnN0X2Nh
c3Q8QWNjZXNzaWJpbGl0eVVJRWxlbWVudCo+KHRoaXMpLT5nZXRDaGlsZEF0SW5kZXgoaW5kZXgp
OworICAgIE5TQXJyYXkqIHNlbGVjdGVkID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAg
aWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkgfHwgIXNlbGVjdGVkKQorICAgICAgICBy
ZXR1cm47CisgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5
V2l0aEFycmF5OnNlbGVjdGVkXTsKKyAgICBbYXJyYXkgcmVtb3ZlT2JqZWN0OmVsZW1lbnQucGxh
dGZvcm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6
YXJyYXkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwogSlNTdHJpbmdSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDYg
QEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSQogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsg
cmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpsaW5lQXRPZmZzZXQoaW50KSB7IHJldHVybiAwOyB9CiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpIHsgcmV0
dXJuIDA7IH0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0
SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
ZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KICNlbmRpZgogCiAjaWYg
KCFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkpIHx8
ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCkBAIC0xNDcsNiArMTQ1LDggQEAgYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkTwogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1NlbGVjdGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCopIGNvbnN0IHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRT
ZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9Cit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQog
dW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29u
c3QgeyByZXR1cm4gMDsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0V4cGFuZGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudE1hYy5tbQkocmV2aXNpb24gMTg4OTM0KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTQzOCw2ICsxNDM4LDMzIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2V0U2VsZWN0ZWQKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TICAgIAogfQog
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVu
c2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAg
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVtZW50ID0gY29uc3RfY2FzdDxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Kj4odGhpcyktPmNoaWxkQXRJbmRleChpbmRleCk7CisgICAgaWYg
KCFlbGVtZW50KQorICAgICAgICByZXR1cm47CisgICAgTlNBcnJheSogc2VsZWN0ZWQgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBOU0FycmF5KiBhcnJheSA9IFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDplbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpXTsKKyAgICBpZiAoc2VsZWN0
ZWQpCisgICAgICAgIGFycmF5ID0gW3NlbGVjdGVkIGFycmF5QnlBZGRpbmdPYmplY3RzRnJvbUFy
cmF5OmFycmF5XTsKKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTZXRWYWx1ZTphcnJheSBm
b3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+
Y2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBOU0FycmF5KiBzZWxlY3RlZCA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRy
ZW5BdHRyaWJ1dGVdOworICAgIGlmICghZWxlbWVudCB8fCAhc2VsZWN0ZWQpCisgICAgICAgIHJl
dHVybjsKKyAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlX
aXRoQXJyYXk6c2VsZWN0ZWRdOworICAgIFthcnJheSByZW1vdmVPYmplY3Q6ZWxlbWVudC0+cGxh
dGZvcm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6
YXJyYXkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0
CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5MDEyKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTUtMDgtMjcgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
Rml4IGFjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbCB0ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg1MTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3QtZWxlbWVudC1hdC1pbmRleC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDE1LTA4LTI2
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICB3YXRjaGRvZyBtX2Rp
ZEZpcmUgc3RhdGUgZXJyb25lb3VzbHkgcmV0YWluZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sCShyZXZp
c2lvbiAxODg5MzQpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50
LWF0LWluZGV4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDM2ICszMCw3NiBAQAogICAgICAg
ICB2YXIgb3B0aW9uMyA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDIpOwogICAgICAgICB2
YXIgb3B0aW9uNCA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDMpOwogCi0gICAgICAgIHNl
bGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgIHNob3VsZEJl
KCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIxIik7Ci0gICAgICAgIHNo
b3VsZEJlVHJ1ZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgi
c2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIik7
Ci0KLSAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJbmRleCgxKTsKLSAg
ICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjIi
KTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKLSAgICAgICAg
c2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDEpLmlzRXF1
YWwob3B0aW9uMikiKTsKLQotICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24zLmlzU2VsZWN0
ZWQiKTsKLQotICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDMp
OwotICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQi
LCAiMyIpOwotICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxlY3RlZCIpOwotICAg
ICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMyku
aXNFcXVhbChvcHRpb240KSIpOwotCi0gICAgICAgIHNlbGVjdEVsZW1lbnQucmVtb3ZlU2VsZWN0
aW9uQXRJbmRleCgzKTsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uNC5pc1NlbGVjdGVk
Iik7Ci0gICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCIsICIyIik7Ci0KLSAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4
KDEpOwotICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKLSAgICAg
ICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiKTsK
LQotICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgoMCk7Ci0gICAg
ICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOwotICAgICAgICBzaG91bGRC
ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIpOwotfQotCisgICAg
ICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgIT0gIm1hYyIpIHsK
KyAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQi
LCAiMSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24xLmlzU2VsZWN0ZWQiKTsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJ
bmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIik7CisKKyAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQu
c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSk7CisgICAgICAgICAgICBzaG91bGRCZSgic2VsZWN0
RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMiIpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
c2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5pc0VxdWFsKG9wdGlvbjIpIik7
CisKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjMuaXNTZWxlY3RlZCIpOworCisg
ICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDMpOworICAg
ICAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50Iiwg
IjMiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uNC5pc1NlbGVjdGVkIik7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5k
ZXgoMykuaXNFcXVhbChvcHRpb240KSIpOworCisgICAgICAgICAgICBzZWxlY3RFbGVtZW50LnJl
bW92ZVNlbGVjdGlvbkF0SW5kZXgoMyk7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRp
b240LmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNl
bGVjdGVkQ2hpbGRyZW5Db3VudCIsICIyIik7CisKKyAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQu
cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCgxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm9w
dGlvbjIuaXNTZWxlY3RlZCIpOworICAgICAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiKTsKKworICAgICAgICAgICAgc2VsZWN0RWxlbWVu
dC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KDApOworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgi
b3B0aW9uMS5pc1NlbGVjdGVkIik7CisgICAgICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIpOyAKKworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgLy8gU2VsZWN0aW9uIG9wZXJhdGlvbnMgaGFwcGVuIGFmdGVyIGEgZGVsYXkgc28g
dGhleSBkb24ndCBoYW5nLiBDaGVjayB0aGUgcmVzdWx0IG9uIGEgdGltZW91dC4KKyAgICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbGVjdEVsZW1l
bnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICBzaG91bGRCZWNvbWVF
cXVhbCgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMSIsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hp
bGRBdEluZGV4KDApLmlzRXF1YWwob3B0aW9uMSkiKTsKKworICAgICAgICAgICAgICAgIHNlbGVj
dEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSk7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVjb21lRXF1YWwoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjIi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24y
LmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RF
bGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDEpLmlzRXF1YWwob3B0aW9uMikiKTsKKworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24zLmlzU2VsZWN0ZWQiKTsKKwor
ICAgICAgICAgICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4
KDMpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgic2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb240LmlzU2VsZWN0ZWQiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxk
QXRJbmRleCgyKS5pc0VxdWFsKG9wdGlvbjQpIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGVjdEVsZW1lbnQucmVtb3ZlU2VsZWN0aW9uQXRJbmRleCgzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRy
ZW5Db3VudCIsICIyIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmVGYWxzZSgib3B0aW9uNC5pc1NlbGVjdGVkIik7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgoMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoInNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uMi5pc1NlbGVjdGVkIik7CisK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxl
Y3Rpb25BdEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZWNvbWVFcXVhbCgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVG
YWxzZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KIDwvc2NyaXB0PgogCiA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTg5MDEyKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDkgKzQ0LDYgQEAgYWNjZXNzaWJpbGl0eS9jaGlsZHJlbi1jaGFuZ2VkLXNlbmRzLW5v
dAogYWNjZXNzaWJpbGl0eS9tZW51LWxpc3Qtc2VuZHMtY2hhbmdlLW5vdGlmaWNhdGlvbi5odG1s
CiBhY2Nlc3NpYmlsaXR5L211bHRpc2VsZWN0LWxpc3QtcmVwb3J0cy1hY3RpdmUtb3B0aW9uLmh0
bWwKIAotIyBNaXNzaW5nIGltcGxlbWVudGF0aW9uIG9mIHNvbWUgZnVuY3Rpb25zIGluIG1hYy4K
LXdlYmtpdC5vcmcvYi8xMjkwMzkgYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRl
eC5odG1sIFsgU2tpcCBdCi0KICMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVu
ZGVyVHJlZSB0byBoYW5kbGUgZXJyb3IgcGFnZXMKIGZhc3QvaGlzdG9yeS9iYWNrLWZvcndhcmQt
cmVzZXQtYWZ0ZXItZXJyb3ItaGFuZGxpbmcuaHRtbAogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
c2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5k
ZXgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKworVGVzdHMg
dGhhdCBjaGVja3Mgd2hldGhlciBzZXR0aW5nIHNlbGVjdGlvbiBhdCB0aGUgZ2l2ZW4gaW5kZXgg
d29ya3MgY29ycmVjdGx5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNl
bGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDAKK1BBU1Mgc2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkcmVuQ291bnQgYmVjYW1lIDEKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVk
IGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0Vx
dWFsKG9wdGlvbjEpIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVu
Q291bnQgYmVjYW1lIDIKK1BBU1Mgb3B0aW9uMi5pc1NlbGVjdGVkIGlzIHRydWUKK1BBU1Mgc2Vs
ZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5pc0VxdWFsKG9wdGlvbjIpIGlzIHRy
dWUKK1BBU1Mgb3B0aW9uMy5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IGJlY2FtZSAzCitQQVNTIG9wdGlvbjQuaXNTZWxlY3RlZCBp
cyB0cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMikuaXNFcXVh
bChvcHRpb240KSBpcyB0cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IGJlY2FtZSAyCitQQVNTIG9wdGlvbjQuaXNTZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzZWxl
Y3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBiZWNhbWUgMQorUEFTUyBvcHRpb24yLmlz
U2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291
bnQgYmVjYW1lIDAKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260070</attachid>
            <date>2015-08-27 10:56:52 -0700</date>
            <delta_ts>2015-08-27 11:20:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>16645</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4OTAxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTI3ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwg
dGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50ZWQgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXggYW5kIHJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXggZm9yIG1hYy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwOgorICAgICAgICAoc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrKToKKyAgICAgICAg
KHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlU2VsZWN0
aW9uQXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKGVsZW1lbnRBdFBvaW50Q2FsbGJhY2spOgor
ICAgICAgICAoc2VudGVuY2VBdE9mZnNldENhbGxiYWNrKToKKyAgICAgICAgKHN0cmluZ0ZvclNl
bGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpT
Q2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rp
b25BdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxp
dHlWYWx1ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6d29yZEF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VudGVuY2VBdE9mZnNldCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0YWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
TXVsdGlTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2V0U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3Zl
U2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CisKIDIwMTUtMDgtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5j
aG9pQG5hdmVyY29ycC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYXR0ZW1w
dCBvbiBFRkwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgyLDYgKzQ4Miwy
NCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQ2FsbGJhCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKSB7CisgICAgICAgIHVuc2lnbmVkIGlu
ZGV4TnVtYmVyID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0
aW9uKTsKKyAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRB
dEluZGV4KGluZGV4TnVtYmVyKTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25BdElu
ZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGlmIChhcmd1
bWVudENvdW50ID09IDEpIHsKKyAgICAgICAgdW5zaWduZWQgaW5kZXhOdW1iZXIgPSBKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworICAgICAgICB0b0FY
RWxlbWVudCh0aGlzT2JqZWN0KS0+cmVtb3ZlU2VsZWN0aW9uQXRJbmRleChpbmRleE51bWJlcik7
CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwog
c3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudEF0UG9pbnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgaW50IHggPSAwOwpAQCAtMTI5NCwyOCArMTMxMiw2IEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZzZXRDYWxsYmEKICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VTdHJpbmcoY29udGV4dCwgc2VudGVuY2VBdE9mZnNldC5nZXQoKSk7CiB9CiAKLXN0YXRp
YyBKU1ZhbHVlUmVmIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGludCBpbmRleE51bWJlciA9IC0xOwotICAgIGlmIChh
cmd1bWVudENvdW50ID09IDEpOwotICAgICAgICBpbmRleE51bWJlciA9IEpTVmFsdWVUb051bWJl
cihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7Ci0KLSAgICBpZiAoaW5kZXhOdW1i
ZXIgPj0gMCkKLSAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaW50IGluZGV4TnVt
YmVyID0gLTE7Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkKLSAgICAgICAgaW5kZXhOdW1i
ZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwot
Ci0gICAgaWYgKGluZGV4TnVtYmVyID49IDApCi0gICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmpl
Y3QpLT5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KICNlbGlmIFBMQVRGT1JNKElPUykKIAog
c3RhdGljIEpTVmFsdWVSZWYgc3RyaW5nRm9yU2VsZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtMTY5Niw2ICsxNjkyLDggQEAgSlNDbGFzc1Jl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKUwogICAgICAgICB7ICJwcmV2aW91c1RleHRN
YXJrZXIiLCBwcmV2aW91c1RleHRNYXJrZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
dHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiLCBzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkIiwgc2V0U2VsZWN0ZWRDaGls
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Iiwg
c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1v
dmVTZWxlY3Rpb25BdEluZGV4IiwgcmVtb3ZlU2VsZWN0aW9uQXRJbmRleENhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInNldFZhbHVlIiwgc2V0VmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2UiLCBzZXRTZWxlY3RlZFZpc2libGVU
ZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZWxlY3RlZENoaWxkQXRJbmRl
eCIsIHNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAgLTE3MDUsOCArMTcw
Myw2IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlMKICAgICAgICAg
eyAid29yZEF0T2Zmc2V0Iiwgd29yZEF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAibGluZUF0T2Zmc2V0IiwgbGluZUF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2VudGVuY2VBdE9mZnNldCIsIHNlbnRlbmNlQXRPZmZzZXRDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAot
ICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkQXRJbmRleCIsIHNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAicmVtb3ZlU2VsZWN0aW9uQXRJbmRleCIs
IHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogI2VsaWYgUExBVEZPUk0o
SU9TKQogICAgICAgICB7ICJsaW5rZWRFbGVtZW50IiwgbGlua2VkRWxlbWVudENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImhlYWRlckVsZW1lbnRBdEluZGV4IiwgaGVhZGVyRWxlbWVudEF0
SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHJldmlzaW9uIDE4ODkzNCkK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3Niw3IEBAIC0gKE5TQXJyYXkgKilhY2Nlc3NpYmls
aXR5QXJyYXlBdHRyaWJ1dGUKIC0gKE5TVUludGVnZXIpYWNjZXNzaWJpbGl0eUluZGV4T2ZDaGls
ZDooaWQpY2hpbGQ7CiAtIChOU1VJbnRlZ2VyKWFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZUNv
dW50OihOU1N0cmluZyAqKWF0dHJpYnV0ZTsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlTZXRUZXN0
VmFsdWU6KGlkKXZhbHVlIGZvckF0dHJpYnV0ZTooTlNTdHJpbmcqKWF0dHJpYnV0ZU5hbWU7Cist
ICh2b2lkKV9hY2Nlc3NpYmlsaXR5U2V0VmFsdWU6KGlkKXZhbHVlIGZvckF0dHJpYnV0ZTooTlNT
dHJpbmcqKWF0dHJpYnV0ZU5hbWU7CiBAZW5kCiAKIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCkKQEAgLTEzOTks
NiArMTQwMCwzMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkCiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUyAgICAKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sK
KyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+Z2V0
Q2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoIWVsZW1lbnQucGxhdGZvcm1VSUVsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIE5TQXJyYXkgKnNlbGVjdGVkQ2hpbGRyZW4gPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBOU0FycmF5ICphcnJheSA9IFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDplbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCldOworICAgIGlmIChzZWxlY3Rl
ZENoaWxkcmVuKQorICAgICAgICBhcnJheSA9IFtzZWxlY3RlZENoaWxkcmVuIGFycmF5QnlBZGRp
bmdPYmplY3RzRnJvbUFycmF5OmFycmF5XTsKKyAgICBbbV9lbGVtZW50IF9hY2Nlc3NpYmlsaXR5
U2V0VmFsdWU6YXJyYXkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRy
ZW5BdHRyaWJ1dGVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4
KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQgZWxlbWVudCA9IGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eVVJRWxlbWVudCo+
KHRoaXMpLT5nZXRDaGlsZEF0SW5kZXgoaW5kZXgpOworICAgIE5TQXJyYXkgKnNlbGVjdGVkQ2hp
bGRyZW4gPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBpZiAoIWVsZW1lbnQucGxhdGZv
cm1VSUVsZW1lbnQoKSB8fCAhc2VsZWN0ZWRDaGlsZHJlbikKKyAgICAgICAgcmV0dXJuOworICAg
IE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhBcnJheTpz
ZWxlY3RlZENoaWxkcmVuXTsKKyAgICBbYXJyYXkgcmVtb3ZlT2JqZWN0OmVsZW1lbnQucGxhdGZv
cm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBfYWNjZXNzaWJpbGl0eVNldFZhbHVlOmFy
cmF5IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRl
XTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKIEpTU3RyaW5nUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgLy8gRklY
TUU6IGltcGxlbWVudApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxODg5MzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw4ICs3OCw2IEBA
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUkKIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3b3JkQXRPZmZzZXQoaW50KSB7IHJl
dHVybiAwOyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50KSB7IHJldHVy
biAwOyB9Ci12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9CiAjZW5kaWYKIAogI2lmICgh
UExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpKSB8fCAh
SEFWRShBQ0NFU1NJQklMSVRZKQpAQCAtMTQ3LDYgKzE0NSw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNTZWxlY3RlZE8KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNT
ZWxlY3RhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogdm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQqKSBjb25zdCB7IH0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2Vs
ZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KIHVu
c2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0JKHJldmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDcgQEAgLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlB
cnJheUF0dHJpYnV0ZQogLSAoTlNVSW50ZWdlcilhY2Nlc3NpYmlsaXR5SW5kZXhPZkNoaWxkOihp
ZCljaGlsZDsKIC0gKE5TVUludGVnZXIpYWNjZXNzaWJpbGl0eUFycmF5QXR0cmlidXRlQ291bnQ6
KE5TU3RyaW5nICopYXR0cmlidXRlOwogLSAodm9pZClfYWNjZXNzaWJpbGl0eVNldFRlc3RWYWx1
ZTooaWQpdmFsdWUgZm9yQXR0cmlidXRlOihOU1N0cmluZyopYXR0cmlidXRlTmFtZTsKKy0gKHZv
aWQpX2FjY2Vzc2liaWxpdHlTZXRWYWx1ZTooaWQpdmFsdWUgZm9yQXR0cmlidXRlOihOU1N0cmlu
ZyopYXR0cmlidXRlTmFtZTsKIEBlbmQKIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0xNDM4LDYgKzE0
MzksMzMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZAogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+
Y2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBOU0FycmF5ICpzZWxlY3RlZENoaWxkcmVuID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07
CisgICAgTlNBcnJheSAqYXJyYXkgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6ZWxlbWVudC0+
cGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgaWYgKHNlbGVjdGVkQ2hpbGRyZW4pCisgICAgICAg
IGFycmF5ID0gW3NlbGVjdGVkQ2hpbGRyZW4gYXJyYXlCeUFkZGluZ09iamVjdHNGcm9tQXJyYXk6
YXJyYXldOworICAgIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlTZXRWYWx1ZTphcnJheSBmb3JB
dHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+Y2hp
bGRBdEluZGV4KGluZGV4KTsKKyAgICBOU0FycmF5ICpzZWxlY3RlZENoaWxkcmVuID0gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRD
aGlsZHJlbkF0dHJpYnV0ZV07CisgICAgaWYgKCFlbGVtZW50IHx8ICFzZWxlY3RlZENoaWxkcmVu
KQorICAgICAgICByZXR1cm47CisgICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJs
ZUFycmF5IGFycmF5V2l0aEFycmF5OnNlbGVjdGVkQ2hpbGRyZW5dOworICAgIFthcnJheSByZW1v
dmVPYmplY3Q6ZWxlbWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBf
YWNjZXNzaWJpbGl0eVNldFZhbHVlOmFycmF5IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9
CisKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nl
c3NpYmlsaXR5VmFsdWUoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE4OTAxMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA4LTI3ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0
LWluZGV4Lmh0bWwgdGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKwogMjAxNS0wOC0yNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgd2F0Y2hkb2cgbV9kaWRGaXJlIHN0YXRlIGVycm9uZW91c2x5IHJldGFpbmVkLgpJ
bmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1l
bnQtYXQtaW5kZXguaHRtbAkocmV2aXNpb24gMTg4OTM0KQorKysgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw3ICs0NSwxMCBAQAogICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDMpOwogICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVu
Q291bnQiLCAiMyIpOwogICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxlY3RlZCIp
OwotICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5k
ZXgoMykuaXNFcXVhbChvcHRpb240KSIpOworICAgICAgICBpZiAoYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIucGxhdGZvcm1OYW1lID09ICJtYWMiKSAKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
c2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgyKS5pc0VxdWFsKG9wdGlvbjQpIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5z
ZWxlY3RlZENoaWxkQXRJbmRleCgzKS5pc0VxdWFsKG9wdGlvbjQpIik7CiAKICAgICAgICAgc2Vs
ZWN0RWxlbWVudC5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KDMpOwogICAgICAgICBzaG91bGRCZUZh
bHNlKCJvcHRpb240LmlzU2VsZWN0ZWQiKTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxODkwMTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsNiBA
QCBhY2Nlc3NpYmlsaXR5L2NoaWxkcmVuLWNoYW5nZWQtc2VuZHMtbm90CiBhY2Nlc3NpYmlsaXR5
L21lbnUtbGlzdC1zZW5kcy1jaGFuZ2Utbm90aWZpY2F0aW9uLmh0bWwKIGFjY2Vzc2liaWxpdHkv
bXVsdGlzZWxlY3QtbGlzdC1yZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbAogCi0jIE1pc3Npbmcg
aW1wbGVtZW50YXRpb24gb2Ygc29tZSBmdW5jdGlvbnMgaW4gbWFjLgotd2Via2l0Lm9yZy9iLzEy
OTAzOSBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwgWyBTa2lwIF0K
LQogIyBOZWVkIHRvIGFkZCBmdW5jdGlvbmFsaXR5IHRvIER1bXBSZW5kZXJUcmVlIHRvIGhhbmRs
ZSBlcnJvciBwYWdlcwogZmFzdC9oaXN0b3J5L2JhY2stZm9yd2FyZC1yZXNldC1hZnRlci1lcnJv
ci1oYW5kbGluZy5odG1sCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1h
dC1pbmRleC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorCitUZXN0cyB0aGF0IGNoZWNrcyB3aGV0
aGVyIHNldHRpbmcgc2VsZWN0aW9uIGF0IHRoZSBnaXZlbiBpbmRleCB3b3JrcyBjb3JyZWN0bHkK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxl
Y3RlZENoaWxkcmVuQ291bnQgaXMgMAorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRy
ZW5Db3VudCBpcyAxCitQQVNTIG9wdGlvbjEuaXNTZWxlY3RlZCBpcyB0cnVlCitQQVNTIHNlbGVj
dEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCkuaXNFcXVhbChvcHRpb24xKSBpcyB0cnVl
CitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDIKK1BBU1Mgb3B0
aW9uMi5pc1NlbGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxk
QXRJbmRleCgxKS5pc0VxdWFsKG9wdGlvbjIpIGlzIHRydWUKK1BBU1Mgb3B0aW9uMy5pc1NlbGVj
dGVkIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlz
IDMKK1BBU1Mgb3B0aW9uNC5pc1NlbGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5z
ZWxlY3RlZENoaWxkQXRJbmRleCgyKS5pc0VxdWFsKG9wdGlvbjQpIGlzIHRydWUKK1BBU1Mgb3B0
aW9uNC5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGls
ZHJlbkNvdW50IGlzIDIKK1BBU1Mgb3B0aW9uMi5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHNl
bGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDEKK1BBU1Mgb3B0aW9uMS5pc1Nl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50
IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260072</attachid>
            <date>2015-08-27 11:20:19 -0700</date>
            <delta_ts>2015-08-27 12:04:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>16869</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4OTAxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTI3ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwg
dGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50ZWQgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXggYW5kIHJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXggZm9yIG1hYy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwOgorICAgICAgICAoc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrKToKKyAgICAgICAg
KHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlU2VsZWN0
aW9uQXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKGVsZW1lbnRBdFBvaW50Q2FsbGJhY2spOgor
ICAgICAgICAoc2VudGVuY2VBdE9mZnNldENhbGxiYWNrKToKKyAgICAgICAgKHN0cmluZ0ZvclNl
bGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpT
Q2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rp
b25BdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxp
dHlWYWx1ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6d29yZEF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VudGVuY2VBdE9mZnNldCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0YWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
TXVsdGlTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2V0U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3Zl
U2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CisKIDIwMTUtMDgtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5j
aG9pQG5hdmVyY29ycC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYXR0ZW1w
dCBvbiBFRkwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgyLDYgKzQ4Miwy
NCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQ2FsbGJhCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKSB7CisgICAgICAgIHVuc2lnbmVkIGlu
ZGV4TnVtYmVyID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0
aW9uKTsKKyAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRB
dEluZGV4KGluZGV4TnVtYmVyKTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25BdElu
ZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGlmIChhcmd1
bWVudENvdW50ID09IDEpIHsKKyAgICAgICAgdW5zaWduZWQgaW5kZXhOdW1iZXIgPSBKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworICAgICAgICB0b0FY
RWxlbWVudCh0aGlzT2JqZWN0KS0+cmVtb3ZlU2VsZWN0aW9uQXRJbmRleChpbmRleE51bWJlcik7
CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwog
c3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudEF0UG9pbnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgaW50IHggPSAwOwpAQCAtMTI5NCwyOCArMTMxMiw2IEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZzZXRDYWxsYmEKICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VTdHJpbmcoY29udGV4dCwgc2VudGVuY2VBdE9mZnNldC5nZXQoKSk7CiB9CiAKLXN0YXRp
YyBKU1ZhbHVlUmVmIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGludCBpbmRleE51bWJlciA9IC0xOwotICAgIGlmIChh
cmd1bWVudENvdW50ID09IDEpOwotICAgICAgICBpbmRleE51bWJlciA9IEpTVmFsdWVUb051bWJl
cihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7Ci0KLSAgICBpZiAoaW5kZXhOdW1i
ZXIgPj0gMCkKLSAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaW50IGluZGV4TnVt
YmVyID0gLTE7Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkKLSAgICAgICAgaW5kZXhOdW1i
ZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwot
Ci0gICAgaWYgKGluZGV4TnVtYmVyID49IDApCi0gICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmpl
Y3QpLT5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KICNlbGlmIFBMQVRGT1JNKElPUykKIAog
c3RhdGljIEpTVmFsdWVSZWYgc3RyaW5nRm9yU2VsZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtMTY5Niw2ICsxNjkyLDggQEAgSlNDbGFzc1Jl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKUwogICAgICAgICB7ICJwcmV2aW91c1RleHRN
YXJrZXIiLCBwcmV2aW91c1RleHRNYXJrZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
dHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiLCBzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkIiwgc2V0U2VsZWN0ZWRDaGls
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Iiwg
c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1v
dmVTZWxlY3Rpb25BdEluZGV4IiwgcmVtb3ZlU2VsZWN0aW9uQXRJbmRleENhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInNldFZhbHVlIiwgc2V0VmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2UiLCBzZXRTZWxlY3RlZFZpc2libGVU
ZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZWxlY3RlZENoaWxkQXRJbmRl
eCIsIHNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAgLTE3MDUsOCArMTcw
Myw2IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlMKICAgICAgICAg
eyAid29yZEF0T2Zmc2V0Iiwgd29yZEF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAibGluZUF0T2Zmc2V0IiwgbGluZUF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2VudGVuY2VBdE9mZnNldCIsIHNlbnRlbmNlQXRPZmZzZXRDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAot
ICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkQXRJbmRleCIsIHNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAicmVtb3ZlU2VsZWN0aW9uQXRJbmRleCIs
IHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogI2VsaWYgUExBVEZPUk0o
SU9TKQogICAgICAgICB7ICJsaW5rZWRFbGVtZW50IiwgbGlua2VkRWxlbWVudENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImhlYWRlckVsZW1lbnRBdEluZGV4IiwgaGVhZGVyRWxlbWVudEF0
SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHJldmlzaW9uIDE4ODkzNCkK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3Niw3IEBAIC0gKE5TQXJyYXkgKilhY2Nlc3NpYmls
aXR5QXJyYXlBdHRyaWJ1dGUKIC0gKE5TVUludGVnZXIpYWNjZXNzaWJpbGl0eUluZGV4T2ZDaGls
ZDooaWQpY2hpbGQ7CiAtIChOU1VJbnRlZ2VyKWFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZUNv
dW50OihOU1N0cmluZyAqKWF0dHJpYnV0ZTsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlTZXRUZXN0
VmFsdWU6KGlkKXZhbHVlIGZvckF0dHJpYnV0ZTooTlNTdHJpbmcqKWF0dHJpYnV0ZU5hbWU7Cist
ICh2b2lkKV9hY2Nlc3NpYmlsaXR5U2V0VmFsdWU6KGlkKXZhbHVlIGZvckF0dHJpYnV0ZTooTlNT
dHJpbmcqKWF0dHJpYnV0ZU5hbWU7CiBAZW5kCiAKIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCkKQEAgLTEzOTks
NiArMTQwMCwzMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkCiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUyAgICAKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sK
KyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+Z2V0
Q2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoIWVsZW1lbnQucGxhdGZvcm1VSUVsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIE5TQXJyYXkgKnNlbGVjdGVkQ2hpbGRyZW4gPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBOU0FycmF5ICphcnJheSA9IFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDplbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCldOworICAgIGlmIChzZWxlY3Rl
ZENoaWxkcmVuKQorICAgICAgICBhcnJheSA9IFtzZWxlY3RlZENoaWxkcmVuIGFycmF5QnlBZGRp
bmdPYmplY3RzRnJvbUFycmF5OmFycmF5XTsKKyAgICBbbV9lbGVtZW50IF9hY2Nlc3NpYmlsaXR5
U2V0VmFsdWU6YXJyYXkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRy
ZW5BdHRyaWJ1dGVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4
KSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQgZWxlbWVudCA9IGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eVVJRWxlbWVudCo+
KHRoaXMpLT5nZXRDaGlsZEF0SW5kZXgoaW5kZXgpOworICAgIE5TQXJyYXkgKnNlbGVjdGVkQ2hp
bGRyZW4gPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBpZiAoIWVsZW1lbnQucGxhdGZv
cm1VSUVsZW1lbnQoKSB8fCAhc2VsZWN0ZWRDaGlsZHJlbikKKyAgICAgICAgcmV0dXJuOworICAg
IE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhBcnJheTpz
ZWxlY3RlZENoaWxkcmVuXTsKKyAgICBbYXJyYXkgcmVtb3ZlT2JqZWN0OmVsZW1lbnQucGxhdGZv
cm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBfYWNjZXNzaWJpbGl0eVNldFZhbHVlOmFy
cmF5IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRl
XTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKIEpTU3RyaW5nUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgLy8gRklY
TUU6IGltcGxlbWVudApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxODg5MzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw4ICs3OCw2IEBA
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUkKIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3b3JkQXRPZmZzZXQoaW50KSB7IHJl
dHVybiAwOyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50KSB7IHJldHVy
biAwOyB9Ci12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9CiAjZW5kaWYKIAogI2lmICgh
UExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpKSB8fCAh
SEFWRShBQ0NFU1NJQklMSVRZKQpAQCAtMTQ3LDYgKzE0NSw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNTZWxlY3RlZE8KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNT
ZWxlY3RhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogdm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQqKSBjb25zdCB7IH0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2Vs
ZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KIHVu
c2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0JKHJldmlzaW9uIDE4ODkzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDcgQEAgLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlB
cnJheUF0dHJpYnV0ZQogLSAoTlNVSW50ZWdlcilhY2Nlc3NpYmlsaXR5SW5kZXhPZkNoaWxkOihp
ZCljaGlsZDsKIC0gKE5TVUludGVnZXIpYWNjZXNzaWJpbGl0eUFycmF5QXR0cmlidXRlQ291bnQ6
KE5TU3RyaW5nICopYXR0cmlidXRlOwogLSAodm9pZClfYWNjZXNzaWJpbGl0eVNldFRlc3RWYWx1
ZTooaWQpdmFsdWUgZm9yQXR0cmlidXRlOihOU1N0cmluZyopYXR0cmlidXRlTmFtZTsKKy0gKHZv
aWQpX2FjY2Vzc2liaWxpdHlTZXRWYWx1ZTooaWQpdmFsdWUgZm9yQXR0cmlidXRlOihOU1N0cmlu
ZyopYXR0cmlidXRlTmFtZTsKIEBlbmQKIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0xNDM4LDYgKzE0
MzksMzMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZAogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+
Y2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBOU0FycmF5ICpzZWxlY3RlZENoaWxkcmVuID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07
CisgICAgTlNBcnJheSAqYXJyYXkgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6ZWxlbWVudC0+
cGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgaWYgKHNlbGVjdGVkQ2hpbGRyZW4pCisgICAgICAg
IGFycmF5ID0gW3NlbGVjdGVkQ2hpbGRyZW4gYXJyYXlCeUFkZGluZ09iamVjdHNGcm9tQXJyYXk6
YXJyYXldOworICAgIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlTZXRWYWx1ZTphcnJheSBmb3JB
dHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+Y2hp
bGRBdEluZGV4KGluZGV4KTsKKyAgICBOU0FycmF5ICpzZWxlY3RlZENoaWxkcmVuID0gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRD
aGlsZHJlbkF0dHJpYnV0ZV07CisgICAgaWYgKCFlbGVtZW50IHx8ICFzZWxlY3RlZENoaWxkcmVu
KQorICAgICAgICByZXR1cm47CisgICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJs
ZUFycmF5IGFycmF5V2l0aEFycmF5OnNlbGVjdGVkQ2hpbGRyZW5dOworICAgIFthcnJheSByZW1v
dmVPYmplY3Q6ZWxlbWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBf
YWNjZXNzaWJpbGl0eVNldFZhbHVlOmFycmF5IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9
CisKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nl
c3NpYmlsaXR5VmFsdWUoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE4OTAxMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA4LTI3ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0
LWluZGV4Lmh0bWwgdGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKwogMjAxNS0wOC0yNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgd2F0Y2hkb2cgbV9kaWRGaXJlIHN0YXRlIGVycm9uZW91c2x5IHJldGFpbmVkLgpJ
bmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1l
bnQtYXQtaW5kZXguaHRtbAkocmV2aXNpb24gMTg4OTM0KQorKysgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw3ICs0NSwxNCBAQAogICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDMpOwogICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVu
Q291bnQiLCAiMyIpOwogICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxlY3RlZCIp
OwotICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5k
ZXgoMykuaXNFcXVhbChvcHRpb240KSIpOworICAgICAgICAKKyAgICAgICAgLy8gT24gbWFjLCBz
ZWxlY3RlZENoaWxkQXRJbmRleCBpcyB1c2luZyB0aGUgaW5kZXggdG8gcmV0cmlldmUgdGhlIGVs
ZW1lbnQKKyAgICAgICAgLy8gZnJvbSB0aGUgc2VsZWN0ZWQgY2hpbGRyZW4gYXJyYXkuIEhlcmUs
IHRoZSBzZWxlY3RlZCBjaGlsZHJlbiBhcnJheSBoYXMKKyAgICAgICAgLy8gc2l6ZSAzLCBzbyB0
aGUgaW5kZXggc2hvdWxkIGJlIDIuCisgICAgICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5wbGF0Zm9ybU5hbWUgPT0gIm1hYyIpIAorICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxl
Y3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDIpLmlzRXF1YWwob3B0aW9uNCkiKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVj
dGVkQ2hpbGRBdEluZGV4KDMpLmlzRXF1YWwob3B0aW9uNCkiKTsKIAogICAgICAgICBzZWxlY3RF
bGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgoMyk7CiAgICAgICAgIHNob3VsZEJlRmFsc2Uo
Im9wdGlvbjQuaXNTZWxlY3RlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE4OTAxMikKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5ICs0NCw2IEBAIGFj
Y2Vzc2liaWxpdHkvY2hpbGRyZW4tY2hhbmdlZC1zZW5kcy1ub3QKIGFjY2Vzc2liaWxpdHkvbWVu
dS1saXN0LXNlbmRzLWNoYW5nZS1ub3RpZmljYXRpb24uaHRtbAogYWNjZXNzaWJpbGl0eS9tdWx0
aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0aXZlLW9wdGlvbi5odG1sCiAKLSMgTWlzc2luZyBpbXBs
ZW1lbnRhdGlvbiBvZiBzb21lIGZ1bmN0aW9ucyBpbiBtYWMuCi13ZWJraXQub3JnL2IvMTI5MDM5
IGFjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbCBbIFNraXAgXQotCiAj
IE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVy
cm9yIHBhZ2VzCiBmYXN0L2hpc3RvcnkvYmFjay1mb3J3YXJkLXJlc2V0LWFmdGVyLWVycm9yLWhh
bmRsaW5nLmh0bWwKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWlu
ZGV4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisKK1Rlc3RzIHRoYXQgY2hlY2tzIHdoZXRoZXIg
c2V0dGluZyBzZWxlY3Rpb24gYXQgdGhlIGdpdmVuIGluZGV4IHdvcmtzIGNvcnJlY3RseQorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVk
Q2hpbGRyZW5Db3VudCBpcyAwCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IGlzIDEKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxl
bWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIGlzIHRydWUKK1BB
U1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMgorUEFTUyBvcHRpb24y
LmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDEpLmlzRXF1YWwob3B0aW9uMikgaXMgdHJ1ZQorUEFTUyBvcHRpb24zLmlzU2VsZWN0ZWQg
aXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMwor
UEFTUyBvcHRpb240LmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVj
dGVkQ2hpbGRBdEluZGV4KDIpLmlzRXF1YWwob3B0aW9uNCkgaXMgdHJ1ZQorUEFTUyBvcHRpb240
LmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVu
Q291bnQgaXMgMgorUEFTUyBvcHRpb24yLmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0
RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMQorUEFTUyBvcHRpb24xLmlzU2VsZWN0
ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMg
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260075</attachid>
            <date>2015-08-27 12:04:51 -0700</date>
            <delta_ts>2015-08-27 12:21:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>18267</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4OTAxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTI3ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IEZpeCBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwg
dGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50ZWQgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXggYW5kIHJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXggZm9yIG1hYy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwOgorICAgICAgICAoc2V0U2VsZWN0ZWRDaGlsZENhbGxiYWNrKToKKyAgICAgICAg
KHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlU2VsZWN0
aW9uQXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKGVsZW1lbnRBdFBvaW50Q2FsbGJhY2spOgor
ICAgICAgICAoc2VudGVuY2VBdE9mZnNldENhbGxiYWNrKToKKyAgICAgICAgKHN0cmluZ0ZvclNl
bGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpT
Q2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rp
b25BdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxp
dHlWYWx1ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6d29yZEF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZUF0T2Zmc2V0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VudGVuY2VBdE9mZnNldCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0YWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
TXVsdGlTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2V0U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3Zl
U2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CisKIDIwMTUtMDgtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5j
aG9pQG5hdmVyY29ycC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYXR0ZW1w
dCBvbiBFRkwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgyLDYgKzQ4Miwy
NCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQ2FsbGJhCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKSB7CisgICAgICAgIHVuc2lnbmVkIGlu
ZGV4TnVtYmVyID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0
aW9uKTsKKyAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRB
dEluZGV4KGluZGV4TnVtYmVyKTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25BdElu
ZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGlmIChhcmd1
bWVudENvdW50ID09IDEpIHsKKyAgICAgICAgdW5zaWduZWQgaW5kZXhOdW1iZXIgPSBKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworICAgICAgICB0b0FY
RWxlbWVudCh0aGlzT2JqZWN0KS0+cmVtb3ZlU2VsZWN0aW9uQXRJbmRleChpbmRleE51bWJlcik7
CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwog
c3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudEF0UG9pbnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgaW50IHggPSAwOwpAQCAtMTI5NCwyOCArMTMxMiw2IEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZzZXRDYWxsYmEKICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VTdHJpbmcoY29udGV4dCwgc2VudGVuY2VBdE9mZnNldC5nZXQoKSk7CiB9CiAKLXN0YXRp
YyBKU1ZhbHVlUmVmIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGludCBpbmRleE51bWJlciA9IC0xOwotICAgIGlmIChh
cmd1bWVudENvdW50ID09IDEpOwotICAgICAgICBpbmRleE51bWJlciA9IEpTVmFsdWVUb051bWJl
cihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7Ci0KLSAgICBpZiAoaW5kZXhOdW1i
ZXIgPj0gMCkKLSAgICAgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaW50IGluZGV4TnVt
YmVyID0gLTE7Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkKLSAgICAgICAgaW5kZXhOdW1i
ZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwot
Ci0gICAgaWYgKGluZGV4TnVtYmVyID49IDApCi0gICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmpl
Y3QpLT5yZW1vdmVTZWxlY3Rpb25BdEluZGV4KGluZGV4TnVtYmVyKTsKLSAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KICNlbGlmIFBMQVRGT1JNKElPUykKIAog
c3RhdGljIEpTVmFsdWVSZWYgc3RyaW5nRm9yU2VsZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtMTM4MCw2ICsxMzc2LDggQEAgSlNTdHJpbmdS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYQogSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmFuZ2VGb3JMaW5lKGludCBsaW5lKSB7IHJldHVybiAwOyB9CiBKU1N0cmlu
Z1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGludCwgaW50KSB7
IHJldHVybiAwOyB9CiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopIGNvbnN0IHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9Cit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWdu
ZWQpIGNvbnN0IHsgfQogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogQWNjZXNzaWJp
bGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dWlFbGVtZW50QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KQEAgLTE2OTYsNiArMTY5NCw4IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0SlMKICAgICAgICAgeyAicHJldmlvdXNUZXh0TWFya2VyIiwgcHJldmlv
dXNUZXh0TWFya2VyQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlIiwgc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0U2VsZWN0ZWRDaGlsZCIsIHNldFNlbGVjdGVkQ2hpbGRDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAorICAgICAgICB7ICJzZXRTZWxlY3RlZENoaWxkQXRJbmRleCIsIHNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicmVtb3ZlU2VsZWN0aW9uQXRJ
bmRleCIsIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRWYWx1ZSIsIHNldFZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2Vs
ZWN0ZWRWaXNpYmxlVGV4dFJhbmdlIiwgc2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJhbmdlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAic2VsZWN0ZWRDaGlsZEF0SW5kZXgiLCBzZWxlY3RlZENo
aWxkQXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkBAIC0xNzA1LDggKzE3MDUsNiBAQCBKU0NsYXNz
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTCiAgICAgICAgIHsgIndvcmRBdE9mZnNl
dCIsIHdvcmRBdE9mZnNldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImxpbmVBdE9mZnNl
dCIsIGxpbmVBdE9mZnNldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNlbnRlbmNlQXRP
ZmZzZXQiLCBzZW50ZW5jZUF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0
U2VsZWN0ZWRDaGlsZEF0SW5kZXgiLCBzZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCi0gICAgICAgIHsgInJlbW92ZVNlbGVjdGlvbkF0SW5kZXgiLCByZW1vdmVTZWxlY3Rp
b25BdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICNlbGlmIFBMQVRGT1JNKElPUykKICAgICAgICAg
eyAibGlua2VkRWxlbWVudCIsIGxpbmtlZEVsZW1lbnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJoZWFkZXJFbGVtZW50QXRJbmRleCIsIGhlYWRlckVsZW1lbnRBdEluZGV4Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQkod29ya2luZyBjb3B5
KQpAQCAtNzYsNiArNzYsNyBAQCAtIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eUFycmF5QXR0cmli
dXRlCiAtIChOU1VJbnRlZ2VyKWFjY2Vzc2liaWxpdHlJbmRleE9mQ2hpbGQ6KGlkKWNoaWxkOwog
LSAoTlNVSW50ZWdlcilhY2Nlc3NpYmlsaXR5QXJyYXlBdHRyaWJ1dGVDb3VudDooTlNTdHJpbmcg
KilhdHRyaWJ1dGU7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5U2V0VGVzdFZhbHVlOihpZCl2YWx1
ZSBmb3JBdHRyaWJ1dGU6KE5TU3RyaW5nKilhdHRyaWJ1dGVOYW1lOworLSAodm9pZClfYWNjZXNz
aWJpbGl0eVNldFZhbHVlOihpZCl2YWx1ZSBmb3JBdHRyaWJ1dGU6KE5TU3RyaW5nKilhdHRyaWJ1
dGVOYW1lOwogQGVuZAogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50KFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQpCkBAIC0xMzk5LDYgKzE0MDAsMzMgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZAogICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMgICAgCiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2Vs
ZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBlbGVtZW50ID0gY29u
c3RfY2FzdDxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Kj4odGhpcyktPmdldENoaWxkQXRJbmRleChp
bmRleCk7CisgICAgaWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBOU0FycmF5ICpzZWxlY3RlZENoaWxkcmVuID0gW21fZWxlbWVudCBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJp
YnV0ZV07CisgICAgTlNBcnJheSAqYXJyYXkgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6ZWxl
bWVudC5wbGF0Zm9ybVVJRWxlbWVudCgpXTsKKyAgICBpZiAoc2VsZWN0ZWRDaGlsZHJlbikKKyAg
ICAgICAgYXJyYXkgPSBbc2VsZWN0ZWRDaGlsZHJlbiBhcnJheUJ5QWRkaW5nT2JqZWN0c0Zyb21B
cnJheTphcnJheV07CisgICAgW21fZWxlbWVudCBfYWNjZXNzaWJpbGl0eVNldFZhbHVlOmFycmF5
IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsK
KyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGVs
ZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+Z2V0Q2hp
bGRBdEluZGV4KGluZGV4KTsKKyAgICBOU0FycmF5ICpzZWxlY3RlZENoaWxkcmVuID0gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRD
aGlsZHJlbkF0dHJpYnV0ZV07CisgICAgaWYgKCFlbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCkg
fHwgIXNlbGVjdGVkQ2hpbGRyZW4pCisgICAgICAgIHJldHVybjsKKyAgICBOU011dGFibGVBcnJh
eSAqYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQXJyYXk6c2VsZWN0ZWRDaGlsZHJl
bl07CisgICAgW2FycmF5IHJlbW92ZU9iamVjdDplbGVtZW50LnBsYXRmb3JtVUlFbGVtZW50KCld
OworICAgIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlTZXRWYWx1ZTphcnJheSBmb3JBdHRyaWJ1
dGU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAgRU5EX0FY
X09CSkNfRVhDRVBUSU9OUworfQorCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkocmV2aXNpb24gMTg4OTM0KQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsNiBAQCBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQogSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNl
dChpbnQpIHsgcmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZW50ZW5jZUF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQotdm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkg
Y29uc3QgeyB9Ci12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkF0
SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQogI2VuZGlmCiAKICNpZiAoIVBMQVRGT1JNKENPQ09B
KSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKSkgfHwgIUhBVkUoQUNDRVNTSUJJ
TElUWSkKQEAgLTE0Nyw2ICsxNDUsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
U2VsZWN0ZWRPCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVs
dGlTZWxlY3RhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIHZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikgY29u
c3QgeyB9Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9CiB1bnNpZ25lZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdCB7IHJldHVybiAw
OyB9CiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IHJldHVybiAwOyB9
CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9T
Lm1tCShyZXZpc2lvbiAxODg5MzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC03MzcsNiArNzM3LDE0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0
ZWQKIHsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAor
eworfQorCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Cklu
ZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHJldmlzaW9u
IDE4ODkzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDcg
QEAgLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZQogLSAoTlNVSW50ZWdl
cilhY2Nlc3NpYmlsaXR5SW5kZXhPZkNoaWxkOihpZCljaGlsZDsKIC0gKE5TVUludGVnZXIpYWNj
ZXNzaWJpbGl0eUFycmF5QXR0cmlidXRlQ291bnQ6KE5TU3RyaW5nICopYXR0cmlidXRlOwogLSAo
dm9pZClfYWNjZXNzaWJpbGl0eVNldFRlc3RWYWx1ZTooaWQpdmFsdWUgZm9yQXR0cmlidXRlOihO
U1N0cmluZyopYXR0cmlidXRlTmFtZTsKKy0gKHZvaWQpX2FjY2Vzc2liaWxpdHlTZXRWYWx1ZToo
aWQpdmFsdWUgZm9yQXR0cmlidXRlOihOU1N0cmluZyopYXR0cmlidXRlTmFtZTsKIEBlbmQKIAog
bmFtZXNwYWNlIFdUUiB7CkBAIC0xNDM4LDYgKzE0MzksMzMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZXRTZWxlY3RlZAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiB9
CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgo
dW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisg
ICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+Y2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBp
ZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBOU0FycmF5ICpzZWxlY3RlZENoaWxk
cmVuID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmls
aXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAgTlNBcnJheSAqYXJyYXkgPSBbTlNB
cnJheSBhcnJheVdpdGhPYmplY3Q6ZWxlbWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAg
aWYgKHNlbGVjdGVkQ2hpbGRyZW4pCisgICAgICAgIGFycmF5ID0gW3NlbGVjdGVkQ2hpbGRyZW4g
YXJyYXlCeUFkZGluZ09iamVjdHNGcm9tQXJyYXk6YXJyYXldOworICAgIFttX2VsZW1lbnQgX2Fj
Y2Vzc2liaWxpdHlTZXRWYWx1ZTphcnJheSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQor
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5z
aWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAg
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1lbnQgPSBjb25zdF9jYXN0PEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQqPih0aGlzKS0+Y2hpbGRBdEluZGV4KGluZGV4KTsKKyAgICBOU0Fy
cmF5ICpzZWxlY3RlZENoaWxkcmVuID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAgaWYg
KCFlbGVtZW50IHx8ICFzZWxlY3RlZENoaWxkcmVuKQorICAgICAgICByZXR1cm47CisgICAgTlNN
dXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aEFycmF5OnNlbGVj
dGVkQ2hpbGRyZW5dOworICAgIFthcnJheSByZW1vdmVPYmplY3Q6ZWxlbWVudC0+cGxhdGZvcm1V
SUVsZW1lbnQoKV07CisgICAgW21fZWxlbWVudCBfYWNjZXNzaWJpbGl0eVNldFZhbHVlOmFycmF5
IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsK
KyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4OTAxMikKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE1
LTA4LTI3ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEZpeCBh
Y2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwgdGVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NTE2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3Nl
bGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0
LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxNS0wOC0yNiAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgd2F0Y2hkb2cgbV9kaWRGaXJl
IHN0YXRlIGVycm9uZW91c2x5IHJldGFpbmVkLgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbAkocmV2aXNpb24g
MTg4OTM0KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1p
bmRleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSwxNCBAQAogICAgICAgICBzZWxl
Y3RFbGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDMpOwogICAgICAgICBzaG91bGRCZSgi
c2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMyIpOwogICAgICAgICBzaG91
bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxlY3RlZCIpOwotICAgICAgICBzaG91bGRCZVRydWUoInNl
bGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMykuaXNFcXVhbChvcHRpb240KSIpOwor
ICAgICAgICAKKyAgICAgICAgLy8gT24gbWFjLCBzZWxlY3RlZENoaWxkQXRJbmRleCBpcyB1c2lu
ZyB0aGUgaW5kZXggdG8gcmV0cmlldmUgdGhlIGVsZW1lbnQKKyAgICAgICAgLy8gZnJvbSB0aGUg
c2VsZWN0ZWQgY2hpbGRyZW4gYXJyYXkuIEhlcmUsIHRoZSBzZWxlY3RlZCBjaGlsZHJlbiBhcnJh
eSBoYXMKKyAgICAgICAgLy8gc2l6ZSAzLCBzbyB0aGUgaW5kZXggc2hvdWxkIGJlIDIuCisgICAg
ICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gIm1hYyIpIAor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDIpLmlzRXF1YWwob3B0aW9uNCkiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDMpLmlzRXF1YWwo
b3B0aW9uNCkiKTsKIAogICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXgoMyk7CiAgICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjQuaXNTZWxlY3RlZCIpOwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE4
OTAxMikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw5ICs0NCw2IEBAIGFjY2Vzc2liaWxpdHkvY2hpbGRyZW4tY2hhbmdl
ZC1zZW5kcy1ub3QKIGFjY2Vzc2liaWxpdHkvbWVudS1saXN0LXNlbmRzLWNoYW5nZS1ub3RpZmlj
YXRpb24uaHRtbAogYWNjZXNzaWJpbGl0eS9tdWx0aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0aXZl
LW9wdGlvbi5odG1sCiAKLSMgTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBzb21lIGZ1bmN0aW9u
cyBpbiBtYWMuCi13ZWJraXQub3JnL2IvMTI5MDM5IGFjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1l
bnQtYXQtaW5kZXguaHRtbCBbIFNraXAgXQotCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkg
dG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVycm9yIHBhZ2VzCiBmYXN0L2hpc3RvcnkvYmFj
ay1mb3J3YXJkLXJlc2V0LWFmdGVyLWVycm9yLWhhbmRsaW5nLmh0bWwKIApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVt
ZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBA
CisKK1Rlc3RzIHRoYXQgY2hlY2tzIHdoZXRoZXIgc2V0dGluZyBzZWxlY3Rpb24gYXQgdGhlIGdp
dmVuIGluZGV4IHdvcmtzIGNvcnJlY3RseQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBpcyAwCitQQVNTIHNl
bGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDEKK1BBU1Mgb3B0aW9uMS5pc1Nl
bGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgw
KS5pc0VxdWFsKG9wdGlvbjEpIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENo
aWxkcmVuQ291bnQgaXMgMgorUEFTUyBvcHRpb24yLmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBz
ZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDEpLmlzRXF1YWwob3B0aW9uMikgaXMg
dHJ1ZQorUEFTUyBvcHRpb24zLmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVu
dC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMworUEFTUyBvcHRpb240LmlzU2VsZWN0ZWQgaXMg
dHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDIpLmlzRXF1YWwo
b3B0aW9uNCkgaXMgdHJ1ZQorUEFTUyBvcHRpb240LmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mg
c2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMgorUEFTUyBvcHRpb24yLmlz
U2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291
bnQgaXMgMQorUEFTUyBvcHRpb24xLmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxl
bWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>