<?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>144238</bug_id>
          
          <creation_ts>2015-04-26 16:00:05 -0700</creation_ts>
          <short_desc>Class contructor and methods shouldn&apos;t have &quot;arguments&quot; and &quot;caller&quot;</short_desc>
          <delta_ts>2016-05-05 22:23:06 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>140491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1088865</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-04-26 16:00:05 -0700</bug_when>
    <thetext>Apparently ES6 gutted &quot;arguments&quot; property from class constructors and methods.
Authors should also be able to define a property named &quot;arguments&quot;;
e.g.
class A {
  static arguments() {}
}
class B {
  static get arguments() {}
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088873</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-04-26 16:46:13 -0700</bug_when>
    <thetext>Same goes for &quot;caller&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189187</commentid>
    <comment_count>2</comment_count>
      <attachid>277849</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-05-01 02:36:14 -0700</bug_when>
    <thetext>Created attachment 277849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189188</commentid>
    <comment_count>3</comment_count>
      <attachid>277850</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-05-01 02:56:59 -0700</bug_when>
    <thetext>Created attachment 277850
Patch

Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189189</commentid>
    <comment_count>4</comment_count>
      <attachid>277851</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-05-01 03:06:31 -0700</bug_when>
    <thetext>Created attachment 277851
Patch

Small improvement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189193</commentid>
    <comment_count>5</comment_count>
      <attachid>277854</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-05-01 03:26:45 -0700</bug_when>
    <thetext>Created attachment 277854
Patch

Remove debug code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189195</commentid>
    <comment_count>6</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-05-01 03:40:05 -0700</bug_when>
    <thetext>I think define arguments property should be fixed in separate patch, we already has one https://bugs.webkit.org/show_bug.cgi?id=152985</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189243</commentid>
    <comment_count>7</comment_count>
      <attachid>277854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-01 14:52:07 -0700</bug_when>
    <thetext>Comment on attachment 277854
Patch

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

&gt; LayoutTests/js/script-tests/class-method-and-constructor-properties.js:55
&gt; +  caller() { return &apos;value&apos;; }

How about staric ones?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189244</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-01 14:53:16 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 277854 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277854&amp;action=review
&gt; 
&gt; &gt; LayoutTests/js/script-tests/class-method-and-constructor-properties.js:55
&gt; &gt; +  caller() { return &apos;value&apos;; }
&gt; 
&gt; How about staric ones?

Oh, never mind. Didn&apos;t see the comment there</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189245</commentid>
    <comment_count>9</comment_count>
      <attachid>277854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-01 14:54:21 -0700</bug_when>
    <thetext>Comment on attachment 277854
Patch

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

&gt; Source/JavaScriptCore/runtime/JSFunction.cpp:371
&gt; +                GetterSetter* errorGetterSetter = thisObject-&gt;jsExecutable()-&gt;isClassConstructorFunction() || thisObject-&gt;jsExecutable()-&gt;parseMode() == SourceParseMode::MethodMode

Please add a static local helper function instead of duplicating the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189375</commentid>
    <comment_count>10</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-05-02 05:46:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 277854 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277854&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSFunction.cpp:371
&gt; &gt; +                GetterSetter* errorGetterSetter = thisObject-&gt;jsExecutable()-&gt;isClassConstructorFunction() || thisObject-&gt;jsExecutable()-&gt;parseMode() == SourceParseMode::MethodMode
&gt; 
&gt; Please add a static local helper function instead of duplicating the code.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189376</commentid>
    <comment_count>11</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-05-02 05:47:28 -0700</bug_when>
    <thetext>Committed r 200321: &lt;http://trac.webkit.org/changeset/200321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190616</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-05 22:22:30 -0700</bug_when>
    <thetext>Closing the bug since the patch was landed in http://trac.webkit.org/changeset/200321.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277849</attachid>
            <date>2016-05-01 02:36:14 -0700</date>
            <delta_ts>2016-05-01 02:56:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144238-20160501123647.patch</filename>
            <type>text/plain</type>
            <size>18208</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YTc4YzdkZjNhZGI3YzZlOWM5MGRhNTZkYjlhMGM5YzFiODQ2MTAyLi5iNjZiYjJiYmI3NDk5OGNj
NDEwZGEyYTI0ZjViODNiMmIzZjE3ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNi0wNS0wMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBDbGFzcyBjb250cnVjdG9yIGFuZCBtZXRob2RzIHNob3VsZG4n
dCBoYXZlICJhcmd1bWVudHMiIGFuZCAiY2FsbGVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgVHlwZUVycm9yIHRoYXQgaXMgcmFpc2VkIGlu
IGNhc2Ugb2YgYWNjZXNzIHRvIHByb3BlcnRpZXMgJ2FyZ3VtZW50cycgb3IgJ2NhbGxlcicKKyAg
ICAgICAgb2YgY29uc3RydWN0b3Igb3IgbWV0aG9kIG9mIGNsYXNzLgorCisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIpOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpnbG9i
YWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlZmluZU93bkluZGV4ZWRQcm9wZXJ0eSk6
CisgICAgICAgIChKU0M6OnZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IpOgorCiAy
MDE2LTA0LTI4ICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAg
ICAgICAgIENyYXNoIGZvciBub24tc3RhdGljIHN1cGVyIHByb3BlcnR5IGNhbGwgaW4gZGVyaXZl
ZCBjbGFzcyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAppbmRleCAyYzdjMmU4MmU0YjEzMjAyYjczMDgzZjkyNWNiNmMyMjFlOGRjNjcw
Li4zNGE1NGJmNjUwMzkxNTUwMzhlZWE3NjJmYzk4MjU0ZDRkMjc4N2EzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzY1LDEwICszNjUsMTMg
QEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKHRoaXNP
YmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgeworICAgICAgICBpZiAodGhp
c09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpIHx8IHRoaXNPYmplY3QtPmpz
RXhlY3V0YWJsZSgpLT5pc0NsYXNzKCkgfHwgdGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPnBh
cnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZSkgewogICAgICAgICAgICAg
Ym9vbCByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAg
ICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgcHJvcGVydHlOYW1l
LCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIo
ZXhlYy0+dm0oKSksIERvbnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKKyAgICAgICAg
ICAgICAgICBHZXR0ZXJTZXR0ZXIqIGVycm9yR2V0dGVyU2V0dGVyID0gdGhpc09iamVjdC0+anNF
eGVjdXRhYmxlKCktPmlzQ2xhc3MoKSB8fCB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+cGFy
c2VNb2RlKCkgPT0gU291cmNlUGFyc2VNb2RlOjpNZXRob2RNb2RlCisgICAgICAgICAgICAgICAg
ICAgID8gdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yQXJndW1lbnRz
QW5kQ2FsbGVyR2V0dGVyU2V0dGVyKGV4ZWMtPnZtKCkpCisgICAgICAgICAgICAgICAgICAgIDog
dGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKGV4
ZWMtPnZtKCkpOworICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdEFjY2Vzc29y
KGV4ZWMsIHByb3BlcnR5TmFtZSwgZXJyb3JHZXR0ZXJTZXR0ZXIsIERvbnREZWxldGUgfCBEb250
RW51bSB8IEFjY2Vzc29yKTsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAg
ICAgICAgICAgICBBU1NFUlQocmVzdWx0KTsKICAgICAgICAgICAgIH0KQEAgLTM3OSwxMCArMzgy
LDE0IEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAgfQogCiAgICAgaWYgKHByb3BlcnR5
TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKSB7Ci0gICAgICAgIGlmICh0aGlz
T2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpIHsKKyAgICAgICAgaWYgKHRo
aXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSB8fCB0aGlzT2JqZWN0LT5q
c0V4ZWN1dGFibGUoKS0+aXNDbGFzcygpKSB7CiAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzT2Jq
ZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3QtPmds
b2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVjLT52bSgpKSwgRG9u
dERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOworICAgICAgICAgICAgICAgIEdldHRlclNl
dHRlciogZXJyb3JHZXR0ZXJTZXR0ZXIgPSB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXND
bGFzcygpIHx8IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5wYXJzZU1vZGUoKSA9PSBTb3Vy
Y2VQYXJzZU1vZGU6Ok1ldGhvZE1vZGUKKyAgICAgICAgICAgICAgICAgICAgPyB0aGlzT2JqZWN0
LT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJT
ZXR0ZXIoZXhlYy0+dm0oKSkKKyAgICAgICAgICAgICAgICAgICAgOiB0aGlzT2JqZWN0LT5nbG9i
YWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYy0+dm0oKSk7CisKKyAg
ICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0
eU5hbWUsIGVycm9yR2V0dGVyU2V0dGVyLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBBY2Nlc3Nv
cik7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKHJlc3VsdCk7CiAgICAgICAgICAgICB9CkBAIC01MDksNyArNTE2LDcgQEAgYm9vbCBKU0Z1
bmN0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmEKICAgICAgCiAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJl
c2VudCgpICYmIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpIHsKICAgICAgICAgaWYgKHRocm93
RXhjZXB0aW9uKQotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJBdHRlbXB0aW5nIHRvIGNoYW5nZSBj
b25maWd1cmFibGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpKSk7Cisg
ICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHRpbmcgdG8gY2hhbmdlIGNvbmZpZ3VyYWJsZSBh
dHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuMSIpKSk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgaWYgKGRlc2NyaXB0b3IuZW51bWVyYWJsZVByZXNlbnQoKSAm
JiBkZXNjcmlwdG9yLmVudW1lcmFibGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDM2YmJlZDQ1MmY3YTZhZmQ0MWU5NmFh
NzA2Y2YyZjhhYWQyZjIyYTcuLjhlMjM3Y2Y5MTBiYmI3MDY2M2M1ZmNlZjE4NWQyZWYxZDM5NDI1
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKQEAgLTg5MSw2ICs4OTEsMTUgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhy
b3dUeXBlRXJyb3IoVk0mIHZtKQogICAgIG1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIuc2V0
KHZtLCB0aGlzLCBnZXR0ZXJTZXR0ZXIpOwogfQogCit2b2lkIEpTR2xvYmFsT2JqZWN0OjpjcmVh
dGVUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlcihWTSYgdm0pCit7CisgICAgSlNGdW5j
dGlvbiogdGhyb3dlciA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCks
IGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlcik7CisgICAgR2V0dGVy
U2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgdGhpcyk7Cisg
ICAgZ2V0dGVyU2V0dGVyLT5zZXRHZXR0ZXIodm0sIHRoaXMsIHRocm93ZXIpOworICAgIGdldHRl
clNldHRlci0+c2V0U2V0dGVyKHZtLCB0aGlzLCB0aHJvd2VyKTsKKyAgICBtX3Rocm93VHlwZUVy
cm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyLnNldCh2bSwgdGhpcywgZ2V0dGVyU2V0
dGVyKTsKK30KKwogLy8gU2V0IHByb3RvdHlwZSwgYW5kIGFsc28gaW5zZXJ0IHRoZSBvYmplY3Qg
cHJvdG90eXBlIGF0IHRoZSBlbmQgb2YgdGhlIGNoYWluLgogdm9pZCBKU0dsb2JhbE9iamVjdDo6
cmVzZXRQcm90b3R5cGUoVk0mIHZtLCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKQEAgLTk0MCw2ICs5
NDksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1f
bmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbik7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNP
YmplY3QtPm1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKTsK
KyAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV90aHJvd1R5cGVFcnJvckFyZ3VtZW50
c0FuZENhbGxlckdldHRlclNldHRlcik7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3Qt
Pm1fbW9kdWxlTG9hZGVyKTsKIAogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX29i
amVjdFByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAppbmRleCA0ZDEwMDJlODgxYTgzNDc1MmNjMTRlNzMwZDk0ODNkNTY3MzcwNjEw
Li5mNThjNTI3NGJmZDI0YjZlNTNmZWRjNGMwOWI1MDRkZGQyOGM3OGNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTIzNCw2ICsyMzQs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX3JlZ0V4cFByb3Rv
R2xvYmFsR2V0dGVyOwogICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbV9yZWdFeHBQcm90b1Vu
aWNvZGVHZXR0ZXI7CiAgICAgV3JpdGVCYXJyaWVyPEdldHRlclNldHRlcj4gbV90aHJvd1R5cGVF
cnJvckdldHRlclNldHRlcjsKKyAgICBXcml0ZUJhcnJpZXI8R2V0dGVyU2V0dGVyPiBtX3Rocm93
VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyOwogCiAgICAgV3JpdGVCYXJy
aWVyPE1vZHVsZUxvYWRlck9iamVjdD4gbV9tb2R1bGVMb2FkZXI7CiAKQEAgLTQ2OCw2ICs0Njks
MTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV90aHJvd1R5cGVFcnJvckdldHRlclNldHRl
ci5nZXQoKTsKICAgICB9CiAKKyAgICBHZXR0ZXJTZXR0ZXIqIHRocm93VHlwZUVycm9yQXJndW1l
bnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKFZNJiB2bSkKKyAgICB7CisgICAgICAgIGlmICghbV90
aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRlcikKKyAgICAgICAgICAg
IGNyZWF0ZVRocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyKHZtKTsKKyAgICAgICAgcmV0
dXJuIG1fdGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIuZ2V0KCk7
CisgICAgfQorICAgIAogICAgIE1vZHVsZUxvYWRlck9iamVjdCogbW9kdWxlTG9hZGVyKCkgY29u
c3QgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIE9iamVjdFByb3RvdHlw
ZSogb2JqZWN0UHJvdG90eXBlKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCk7IH0KQEAgLTczMyw2ICs3NDEsNyBAQCBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgaW5pdChWTSYpOwogCiAgICAgdm9pZCBjcmVhdGVUaHJvd1R5cGVFcnJvcihWTSYpOwor
ICAgIHZvaWQgY3JlYXRlVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIoVk0mKTsKIAog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGNsZWFyUmFyZURhdGEoSlNDZWxsKik7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDM4MTNmYWY2YzQzZTcwODlhYTgzNGU5MmVmN2Ri
ODg3NmJkNzc2ZWMuLjZiYmFhYzllMDMxYWJhMTQzYTU2Y2M2ZDI1YzFmZDE5OGJkZjRkZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKQEAgLTc4MSw2ICs3ODEsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogewog
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogfQorICAgIAorRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxs
ZXIoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
ICInY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNv
bnRleHQuIik7Cit9CiAKIGNsYXNzIEdsb2JhbEZ1bmNQcm90b0dldHRlckZ1bmN0b3IgewogcHVi
bGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggYjkyOWY1MTQzMmEzZjM5OGYzOTdiM2M4OTY3MTJiMWNk
ZjhjODI4OS4uNTJjNTA3ZmNjYjE0MWVhMWFkZmJjYjRjMTFmMGYwMDhhNGNiMDVkYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oCkBAIC00OSw2ICs0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2xvYmFsRnVuY0VuY29kZVVSSUNvbXBvbmVudChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VzY2FwZShFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1VuZXNjYXBlKEV4ZWNTdGF0ZSopOwogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRl
Kik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
ckFyZ3VtZW50c0FuZENhbGxlcihFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0dGVyKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9TZXR0ZXIoRXhlY1N0YXRlKik7CiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNCdWlsdGluTG9nKEV4ZWNTdGF0ZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDIwMDg2YzIx
NmVkZjZjYTYxMjhmNzg3NGRiMzIxNjcwZDQyNjEyMzcuLjIzYjk1ZDUxNTRhZDUwOWFjY2U4MjNj
YTZiM2FhMjgwOGIyMzRhYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAKQEAgLTIxMDMsNyArMjEwMyw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93bklu
ZGV4ZWRQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBjb25zdCBQCiAg
ICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgpKSB7CiAgICAgICAgIC8vIDcuYS4gUmVqZWN0
LCBpZiB0aGUgW1tDb25maWd1cmFibGVdXSBmaWVsZCBvZiBEZXNjIGlzIHRydWUuCiAgICAgICAg
IGlmIChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZVByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmNvbmZp
Z3VyYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIHJlamVjdChleGVjLCB0aHJvd0V4Y2VwdGlv
biwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25m
aWd1cmFibGUgcHJvcGVydHkuIik7CisgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHRo
cm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxlIGF0dHJpYnV0
ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4yIik7CiAgICAgICAgIC8vIDcuYi4gUmVqZWN0
LCBpZiB0aGUgW1tFbnVtZXJhYmxlXV0gZmllbGQgb2YgRGVzYyBpcyBwcmVzZW50IGFuZCB0aGUg
W1tFbnVtZXJhYmxlXV0gZmllbGRzIG9mIGN1cnJlbnQgYW5kIERlc2MgYXJlIHRoZSBCb29sZWFu
IG5lZ2F0aW9uIG9mIGVhY2ggb3RoZXIuCiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFi
bGVQcmVzZW50KCkgJiYgY3VycmVudC5lbnVtZXJhYmxlKCkgIT0gZGVzY3JpcHRvci5lbnVtZXJh
YmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHRocm93RXhjZXB0aW9uLCAi
QXR0ZW1wdGluZyB0byBjaGFuZ2UgZW51bWVyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFi
bGUgcHJvcGVydHkuIik7CkBAIC0yOTY2LDcgKzI5NjYsNyBAQCBib29sIHZhbGlkYXRlQW5kQXBw
bHlQcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBQ
cm9wZQogICAgIGlmICghY3VycmVudC5jb25maWd1cmFibGUoKSkgewogICAgICAgICBpZiAoZGVz
Y3JpcHRvci5jb25maWd1cmFibGUoKSkgewogICAgICAgICAgICAgaWYgKHRocm93RXhjZXB0aW9u
KQotICAgICAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmln
dXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKSkpOworICAgICAg
ICAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxlIGF0
dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4zIikpKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxl
UHJlc2VudCgpICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpICE9IGN1cnJlbnQuZW51bWVyYWJs
ZSgpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggN2E1MzdlNmVjZmVmNjk1YTk0NTU3YWI4Y2M1OGM5YTc3MTdhMzUzYi4u
YjQzN2UwNTYxM2Y2YjhlM2I4NjNhMDhhY2YxNTY0ZGVhNTA4ZTZkOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE2LTA1LTAxICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwu
Y29tPgorCisgICAgICAgIENsYXNzIGNvbnRydWN0b3IgYW5kIG1ldGhvZHMgc2hvdWxkbid0IGhh
dmUgImFyZ3VtZW50cyIgYW5kICJjYWxsZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQyMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGpzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2NsYXNzLW1ldGhvZC1h
bmQtY29uc3RydWN0b3ItcHJvcGVydGllcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3Jp
cHQtdGVzdHMvY2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLmpzOiBBZGRl
ZC4KKwogMjAxNi0wNC0yOCAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdtYWlsLmNv
bT4KIAogICAgICAgICBDcmFzaCBmb3Igbm9uLXN0YXRpYyBzdXBlciBwcm9wZXJ0eSBjYWxsIGlu
IGRlcml2ZWQgY2xhc3MgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Ns
YXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIwZWVkZjQ1NDI0NzFkZmYxODdhMmUwYmY5OGY0YmZkY2ZmMDY0
NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1tZXRob2QtYW5kLWNv
bnN0cnVjdG9yLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3Rz
IGZvciBFUzYgY2xhc3MgbWV0aG9kIGFuZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIChuZXcgQSgpKS5jb25zdHJ1Y3Rvci5jYWxs
ZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNz
ZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBBKCkpLmNvbnN0cnVjdG9yLmFyZ3VtZW50
czo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3Nl
ZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEIoKSkuY29uc3RydWN0b3IuY2FsbGVyOjo6
VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGlu
IGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgQigpKS5jb25zdHJ1Y3Rvci5hcmd1bWVudHM6OjpU
eXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4g
Y2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBDKCkpLmNvbnN0cnVjdG9yLmNhbGxlcjo6OlR5cGVF
cnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFz
cyBjb250ZXh0LgorUEFTUyAobmV3IEMoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzOjo6VHlwZUVy
cm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNz
IGNvbnRleHQuCitQQVNTIChuZXcgRCgpKS5jb25zdHJ1Y3Rvci5jYWxsZXI6OjpUeXBlRXJyb3I6
ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29u
dGV4dC4KK1BBU1MgKG5ldyBEKCkpLmNvbnN0cnVjdG9yLmFyZ3VtZW50czo6OlR5cGVFcnJvcjog
J2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250
ZXh0LgorUEFTUyAobmV3IEUoKSkuZ2V0SXRlbS5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXIn
IGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BB
U1MgKG5ldyBFKCkpLmdldEl0ZW0uYXJndW1lbnRzOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQg
J2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChu
ZXcgRigpKS5nZXRJdGVtLmNhbGxlcjo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVu
dHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEYoKSku
Z2V0SXRlbS5hcmd1bWVudHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBj
YW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBGKCkpLmdldEVs
ZW1lbnQuY2FsbGVyOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90
IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgRigpKS5nZXRFbGVtZW50
LmFyZ3VtZW50czo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBi
ZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEcoKSkuaXRlbS5jYWxsZXI6
Ojp1bmRlZmluZWQKK1BBU1MgKG5ldyBHKCkpLml0ZW0uYXJndW1lbnRzOjo6dW5kZWZpbmVkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZDo6OnRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRp
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJv
cGVydGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4ZDQ2OWY4ZTY1N2I3YzI4NzU3MzgzMWMyOTdmOWM4
OGMwN2JiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1tZXRob2Qt
YW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jbGFzcy1tZXRo
b2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLW1ldGhvZC1h
bmQtY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTIwOGM2ODI4ZWQ2MjU2YTk5MzI2MDFmNzcxNTJkODdhNjg0YTNmZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVj
dG9yLXByb3BlcnRpZXMuanMKQEAgLTAsMCArMSw1NCBAQAorCitkZXNjcmlwdGlvbignVGVzdHMg
Zm9yIEVTNiBjbGFzcyBtZXRob2QgYW5kIGNvbnN0cnVjdG9yIHByb3BlcnRpZXMnKTsKKworZnVu
Y3Rpb24gc2hvdWxkVGhyb3cocywgbWVzc2FnZSkgeworICAgIHZhciB0aHJldyA9IGZhbHNlOwor
ICAgIHRyeSB7CisgICAgICAgIGV2YWwocyk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRo
cmV3ID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFtZXNzYWdlIHx8IGUudG9TdHJpbmcoKSA9PT0gZXZh
bChtZXNzYWdlKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQocyArICI6OjoiICsgZS50b1N0cmlu
ZygpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZChzKTsKKyAgICB9Cisg
ICAgaWYgKCF0aHJldykKKyAgICAgICAgdGVzdEZhaWxlZChzKTsKK30KKworZnVuY3Rpb24gc2hv
dWxkQmUoYSwgYikgeworICAgIHZhciByMSA9IGV2YWwoYSk7CisgICAgdmFyIHIyID0gZXZhbChi
KQorICAgIGlmIChyMSA9PT0gcjIpCisgICAgICAgIHRlc3RQYXNzZWQoYSArICI6OjoiICsgYik7
CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHIxICsgIjo6OiIgKyByMik7Cit9CisKK2Ns
YXNzIEEgeyB9OworY2xhc3MgQiBleHRlbmRzIEEgeyB9OworY2xhc3MgQyBleHRlbmRzIEEgeyBj
b25zdHJ1Y3RvciAoKSB7c3VwZXIoKTt9fQorY2xhc3MgRCB7IGNvbnN0cnVjdG9yICgpIHt9fQor
Y2xhc3MgRSB7IGdldEl0ZW0oKSB7IHJldHVybiAndGV4dCc7fSB9CitjbGFzcyBGIGV4dGVuZHMg
RSB7IGdldEVsZW1lbnQoKSB7IHJldHVybiAndGV4dCd9fQorY2xhc3MgRyBleHRlbmRzIEUgeyBn
ZXQgaXRlbSgpIHsgcmV0dXJuICd0ZXh0J30gfQorCitzaG91bGRUaHJvdygnKG5ldyBBKCkpLmNv
bnN0cnVjdG9yLmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50
c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93
KCcobmV3IEEoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVy
XCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQu
IicpOworc2hvdWxkVGhyb3coJyhuZXcgQigpKS5jb25zdHJ1Y3Rvci5jYWxsZXInLCAnIlR5cGVF
cnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4g
Y2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBCKCkpLmNvbnN0cnVjdG9yLmFy
Z3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5v
dCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEMo
KSkuY29uc3RydWN0b3IuY2FsbGVyJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJn
dW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxk
VGhyb3coJyhuZXcgQygpKS5jb25zdHJ1Y3Rvci5hcmd1bWVudHMnLCAnIlR5cGVFcnJvcjogXCdj
YWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29u
dGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBEKCkpLmNvbnN0cnVjdG9yLmNhbGxlcicsICci
VHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3Nl
ZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEQoKSkuY29uc3RydWN0
b3IuYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcg
Y2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhu
ZXcgRSgpKS5nZXRJdGVtLmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2Fy
Z3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3Vs
ZFRocm93KCcobmV3IEUoKSkuZ2V0SXRlbS5hcmd1bWVudHMnLCAnIlR5cGVFcnJvcjogXCdjYWxs
ZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4
dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBGKCkpLmdldEl0ZW0uY2FsbGVyJywgJyJUeXBlRXJy
b3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNs
YXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgRigpKS5nZXRJdGVtLmFyZ3VtZW50
cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBh
Y2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEYoKSkuZ2V0
RWxlbWVudC5jYWxsZXInLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNc
JyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygn
KG5ldyBGKCkpLmdldEVsZW1lbnQuYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcg
YW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicp
OworCitzaG91bGRCZSgnKG5ldyBHKCkpLml0ZW0uY2FsbGVyJywgJ3VuZGVmaW5lZCcpOworc2hv
dWxkQmUoJyhuZXcgRygpKS5pdGVtLmFyZ3VtZW50cycsICd1bmRlZmluZWQnKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277850</attachid>
            <date>2016-05-01 02:56:59 -0700</date>
            <delta_ts>2016-05-01 03:06:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144238-20160501125733.patch</filename>
            <type>text/plain</type>
            <size>19403</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YTc4YzdkZjNhZGI3YzZlOWM5MGRhNTZkYjlhMGM5YzFiODQ2MTAyLi5iNjZiYjJiYmI3NDk5OGNj
NDEwZGEyYTI0ZjViODNiMmIzZjE3ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNi0wNS0wMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBDbGFzcyBjb250cnVjdG9yIGFuZCBtZXRob2RzIHNob3VsZG4n
dCBoYXZlICJhcmd1bWVudHMiIGFuZCAiY2FsbGVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgVHlwZUVycm9yIHRoYXQgaXMgcmFpc2VkIGlu
IGNhc2Ugb2YgYWNjZXNzIHRvIHByb3BlcnRpZXMgJ2FyZ3VtZW50cycgb3IgJ2NhbGxlcicKKyAg
ICAgICAgb2YgY29uc3RydWN0b3Igb3IgbWV0aG9kIG9mIGNsYXNzLgorCisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIpOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpnbG9i
YWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlZmluZU93bkluZGV4ZWRQcm9wZXJ0eSk6
CisgICAgICAgIChKU0M6OnZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IpOgorCiAy
MDE2LTA0LTI4ICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAg
ICAgICAgIENyYXNoIGZvciBub24tc3RhdGljIHN1cGVyIHByb3BlcnR5IGNhbGwgaW4gZGVyaXZl
ZCBjbGFzcyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAppbmRleCAyYzdjMmU4MmU0YjEzMjAyYjczMDgzZjkyNWNiNmMyMjFlOGRjNjcw
Li5kYzA1MmNjNjk1MWE1M2Y4ZTI3NjJiYmEyMjFiYjczYzRkNGRlZjgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzY1LDEwICszNjUsMTMg
QEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKHRoaXNP
YmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgeworICAgICAgICBpZiAodGhp
c09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpIHx8IHRoaXNPYmplY3QtPmpz
RXhlY3V0YWJsZSgpLT5pc0NsYXNzQ29uc3RydWN0b3JGdW5jdGlvbigpIHx8IHRoaXNPYmplY3Qt
PmpzRXhlY3V0YWJsZSgpLT5wYXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1vZGU6Ok1ldGhvZE1v
ZGUpIHsKICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgICAgICBpZiAo
IXJlc3VsdCkgewotICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdEFjY2Vzc29y
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlw
ZUVycm9yR2V0dGVyU2V0dGVyKGV4ZWMtPnZtKCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBB
Y2Nlc3Nvcik7CisgICAgICAgICAgICAgICAgR2V0dGVyU2V0dGVyKiBlcnJvckdldHRlclNldHRl
ciA9IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc0NsYXNzQ29uc3RydWN0b3JGdW5jdGlv
bigpIHx8IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5wYXJzZU1vZGUoKSA9PSBTb3VyY2VQ
YXJzZU1vZGU6Ok1ldGhvZE1vZGUKKyAgICAgICAgICAgICAgICAgICAgPyB0aGlzT2JqZWN0LT5n
bG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0
ZXIoZXhlYy0+dm0oKSkKKyAgICAgICAgICAgICAgICAgICAgOiB0aGlzT2JqZWN0LT5nbG9iYWxP
YmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYy0+dm0oKSk7CisgICAgICAg
ICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgcHJvcGVydHlOYW1l
LCBlcnJvckdldHRlclNldHRlciwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOwog
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIEFTU0VSVChy
ZXN1bHQpOwogICAgICAgICAgICAgfQpAQCAtMzc5LDEwICszODIsMTQgQEAgYm9vbCBKU0Z1bmN0
aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU4KICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5jYWxsZXIpIHsKLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJs
ZSgpLT5pc1N0cmljdE1vZGUoKSkgeworICAgICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRh
YmxlKCktPmlzU3RyaWN0TW9kZSgpIHx8IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc0Ns
YXNzQ29uc3RydWN0b3JGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzT2Jq
ZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3QtPmds
b2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVjLT52bSgpKSwgRG9u
dERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOworICAgICAgICAgICAgICAgIEdldHRlclNl
dHRlciogZXJyb3JHZXR0ZXJTZXR0ZXIgPSB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXND
bGFzc0NvbnN0cnVjdG9yRnVuY3Rpb24oKSB8fCB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+
cGFyc2VNb2RlKCkgPT0gU291cmNlUGFyc2VNb2RlOjpNZXRob2RNb2RlCisgICAgICAgICAgICAg
ICAgICAgID8gdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yQXJndW1l
bnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKGV4ZWMtPnZtKCkpCisgICAgICAgICAgICAgICAgICAg
IDogdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVy
KGV4ZWMtPnZtKCkpOworCisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0QWNj
ZXNzb3IoZXhlYywgcHJvcGVydHlOYW1lLCBlcnJvckdldHRlclNldHRlciwgRG9udERlbGV0ZSB8
IERvbnRFbnVtIHwgQWNjZXNzb3IpOwogICAgICAgICAgICAgICAgIHJlc3VsdCA9IEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
ICAgICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQpOwogICAgICAgICAgICAgfQpAQCAtNTA5LDcg
KzUxNiw3IEBAIGJvb2wgSlNGdW5jdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hCiAgICAgIAogICAgIGlmIChkZXNjcmlw
dG9yLmNvbmZpZ3VyYWJsZVByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpKSB7
CiAgICAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikKLSAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhy
b3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXR0
ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJs
ZSBwcm9wZXJ0eS4iKSkpOworICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJBdHRlbXB0aW5nIHRvIGNo
YW5nZSBjb25maWd1cmFibGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LjEi
KSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmIChkZXNjcmlwdG9yLmVu
dW1lcmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAzNmJi
ZWQ0NTJmN2E2YWZkNDFlOTZhYTcwNmNmMmY4YWFkMmYyMmE3Li44ZTIzN2NmOTEwYmJiNzA2NjNj
NWZjZWYxODVkMmVmMWQzOTQyNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC04OTEsNiArODkxLDE1IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OmNyZWF0ZVRocm93VHlwZUVycm9yKFZNJiB2bSkKICAgICBtX3Rocm93VHlwZUVy
cm9yR2V0dGVyU2V0dGVyLnNldCh2bSwgdGhpcywgZ2V0dGVyU2V0dGVyKTsKIH0KIAordm9pZCBK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIoVk0m
IHZtKQoreworICAgIEpTRnVuY3Rpb24qIHRocm93ZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRD
YWxsZXIpOworICAgIEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gR2V0dGVyU2V0dGVyOjpj
cmVhdGUodm0sIHRoaXMpOworICAgIGdldHRlclNldHRlci0+c2V0R2V0dGVyKHZtLCB0aGlzLCB0
aHJvd2VyKTsKKyAgICBnZXR0ZXJTZXR0ZXItPnNldFNldHRlcih2bSwgdGhpcywgdGhyb3dlcik7
CisgICAgbV90aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRlci5zZXQo
dm0sIHRoaXMsIGdldHRlclNldHRlcik7Cit9CisKIC8vIFNldCBwcm90b3R5cGUsIGFuZCBhbHNv
IGluc2VydCB0aGUgb2JqZWN0IHByb3RvdHlwZSBhdCB0aGUgZW5kIG9mIHRoZSBjaGFpbi4KIHZv
aWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0UHJvdG90eXBlKFZNJiB2bSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiB7CkBAIC05NDAsNiArOTQ5LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBw
ZW5kKCZ0aGlzT2JqZWN0LT5tX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24pOwogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV90aHJvd1R5cGVF
cnJvckdldHRlclNldHRlcik7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fdGhy
b3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIpOwogICAgIHZpc2l0b3Iu
YXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21vZHVsZUxvYWRlcik7CiAKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9vYmplY3RQcm90b3R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggNGQxMDAyZTg4MWE4MzQ3NTJjYzE0
ZTczMGQ5NDgzZDU2NzM3MDYxMC4uZjU4YzUyNzRiZmQyNGI2ZTUzZmVkYzRjMDliNTA0ZGRkMjhj
NzhjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCkBAIC0yMzQsNiArMjM0LDcgQEAgcHJvdGVjdGVkOgogICAgIFdyaXRlQmFycmllcjxKU09i
amVjdD4gbV9yZWdFeHBQcm90b0dsb2JhbEdldHRlcjsKICAgICBXcml0ZUJhcnJpZXI8SlNPYmpl
Y3Q+IG1fcmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyOwogICAgIFdyaXRlQmFycmllcjxHZXR0ZXJT
ZXR0ZXI+IG1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXI7CisgICAgV3JpdGVCYXJyaWVyPEdl
dHRlclNldHRlcj4gbV90aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRl
cjsKIAogICAgIFdyaXRlQmFycmllcjxNb2R1bGVMb2FkZXJPYmplY3Q+IG1fbW9kdWxlTG9hZGVy
OwogCkBAIC00NjgsNiArNDY5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fdGhyb3dU
eXBlRXJyb3JHZXR0ZXJTZXR0ZXIuZ2V0KCk7CiAgICAgfQogCisgICAgR2V0dGVyU2V0dGVyKiB0
aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRlcihWTSYgdm0pCisgICAg
eworICAgICAgICBpZiAoIW1fdGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJT
ZXR0ZXIpCisgICAgICAgICAgICBjcmVhdGVUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxl
cih2bSk7CisgICAgICAgIHJldHVybiBtX3Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVy
R2V0dGVyU2V0dGVyLmdldCgpOworICAgIH0KKyAgICAKICAgICBNb2R1bGVMb2FkZXJPYmplY3Qq
IG1vZHVsZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyLmdldCgpOyB9CiAK
ICAgICBPYmplY3RQcm90b3R5cGUqIG9iamVjdFByb3RvdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpOyB9CkBAIC03MzMsNiArNzQxLDcgQEAgcHJpdmF0ZToKICAg
ICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGluaXQoVk0mKTsKIAogICAgIHZvaWQgY3JlYXRlVGhy
b3dUeXBlRXJyb3IoVk0mKTsKKyAgICB2b2lkIGNyZWF0ZVRocm93VHlwZUVycm9yQXJndW1lbnRz
QW5kQ2FsbGVyKFZNJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBjbGVh
clJhcmVEYXRhKEpTQ2VsbCopOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCAzODEzZmFmNmM0
M2U3MDg5YWE4MzRlOTJlZjdkYjg4NzZiZDc3NmVjLi42YmJhYWM5ZTAzMWFiYTE0M2E1NmNjNmQy
NWMxZmQxOThiZGY0ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC03ODEsNiArNzgxLDExIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIH0K
KyAgICAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVy
cm9yQXJndW1lbnRzQW5kQ2FsbGVyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCAiJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBh
Y2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiIpOworfQogCiBjbGFzcyBHbG9iYWxGdW5jUHJvdG9H
ZXR0ZXJGdW5jdG9yIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGI5MjlmNTE0MzJhM2Yz
OThmMzk3YjNjODk2NzEyYjFjZGY4YzgyODkuLjUyYzUwN2ZjY2IxNDFlYTFhZGZiY2I0YzExZjBm
MDA4YTRjYjA1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaApAQCAtNDksNiArNDksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQoRXhlY1N0YXRl
Kik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0
YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShF
eGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93
VHlwZUVycm9yKEV4ZWNTdGF0ZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9i
YWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIoRXhlY1N0YXRlKik7CiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihFeGVjU3RhdGUq
KTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEV4
ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jQnVpbHRp
bkxvZyhFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcAppbmRleCAyMDA4NmMyMTZlZGY2Y2E2MTI4Zjc4NzRkYjMyMTY3MGQ0MjYxMjM3Li4yM2I5
NWQ1MTU0YWQ1MDlhY2NlODIzY2E2YjNhYTI4MDhiMjM0YWIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0yMTAzLDcgKzIxMDMsNyBAQCBib29sIEpT
T2JqZWN0OjpkZWZpbmVPd25JbmRleGVkUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpbmRleCwgY29uc3QgUAogICAgIGlmICghY3VycmVudC5jb25maWd1cmFibGUoKSkgewogICAg
ICAgICAvLyA3LmEuIFJlamVjdCwgaWYgdGhlIFtbQ29uZmlndXJhYmxlXV0gZmllbGQgb2YgRGVz
YyBpcyB0cnVlLgogICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGVQcmVzZW50KCkg
JiYgZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiByZWplY3Qo
ZXhlYywgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSBjb25maWd1cmFibGUg
YXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOworICAgICAgICAgICAgcmV0
dXJuIHJlamVjdChleGVjLCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIGNv
bmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuMiIpOwogICAg
ICAgICAvLyA3LmIuIFJlamVjdCwgaWYgdGhlIFtbRW51bWVyYWJsZV1dIGZpZWxkIG9mIERlc2Mg
aXMgcHJlc2VudCBhbmQgdGhlIFtbRW51bWVyYWJsZV1dIGZpZWxkcyBvZiBjdXJyZW50IGFuZCBE
ZXNjIGFyZSB0aGUgQm9vbGVhbiBuZWdhdGlvbiBvZiBlYWNoIG90aGVyLgogICAgICAgICBpZiAo
ZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpICYmIGN1cnJlbnQuZW51bWVyYWJsZSgpICE9
IGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHJlamVjdChleGVj
LCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIGVudW1lcmFibGUgYXR0cmli
dXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOwpAQCAtMjk2Niw3ICsyOTY2LDcgQEAg
Ym9vbCB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIG9iamVjdCwgUHJvcGUKICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkp
IHsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpIHsKICAgICAgICAgICAg
IGlmICh0aHJvd0V4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHRp
bmcgdG8gY2hhbmdlIGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJv
cGVydHkuIikpKTsKKyAgICAgICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4
ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHRpbmcgdG8gY2hh
bmdlIGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuMyIp
KSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRl
c2NyaXB0b3IuZW51bWVyYWJsZVByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmVudW1lcmFibGUoKSAh
PSBjdXJyZW50LmVudW1lcmFibGUoKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdhNTM3ZTZlY2ZlZjY5NWE5NDU1N2Fi
OGNjNThjOWE3NzE3YTM1M2IuLmI0MzdlMDU2MTNmNmI4ZTNiODYzYTA4YWNmMTU2NGRlYTUwOGU2
ZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNS0wMSAgU2thY2hrb3YgT2xla3NhbmRy
ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KKworICAgICAgICBDbGFzcyBjb250cnVjdG9yIGFuZCBt
ZXRob2RzIHNob3VsZG4ndCBoYXZlICJhcmd1bWVudHMiIGFuZCAiY2FsbGVyIgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9jbGFzcy1tZXRob2Qt
YW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBqcy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3It
cHJvcGVydGllcy5qczogQWRkZWQuCisKIDIwMTYtMDQtMjggIFNrYWNoa292IE9sZWtzYW5kciAg
PGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAgICAgQ3Jhc2ggZm9yIG5vbi1zdGF0aWMgc3Vw
ZXIgcHJvcGVydHkgY2FsbCBpbiBkZXJpdmVkIGNsYXNzIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvY2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rv
ci1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjQzZjc4N2ViNTczMDZlNGI4
OWUyYmZjNGU4MTcyYTAzZjM0ZWZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
Y2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMxIEBACitUZXN0cyBmb3IgRVM2IGNsYXNzIG1ldGhvZCBhbmQgY29uc3RydWN0b3Ig
cHJvcGVydGllcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAobmV3IEEo
KSkuY29uc3RydWN0b3IuY2FsbGVyOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50
cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgQSgpKS5j
b25zdHJ1Y3Rvci5hcmd1bWVudHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRz
JyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBCKCkpLmNv
bnN0cnVjdG9yLmNhbGxlcjo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNh
bm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEIoKSkuY29uc3Ry
dWN0b3IuYXJndW1lbnRzOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fu
bm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgQygpKS5jb25zdHJ1
Y3Rvci5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3Qg
YmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBDKCkpLmNvbnN0cnVjdG9y
LmFyZ3VtZW50czo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBi
ZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEQoKSkuY29uc3RydWN0b3Iu
Y2FsbGVyOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFj
Y2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgRCgpKS5jb25zdHJ1Y3Rvci5hcmd1
bWVudHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNj
ZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBFKCkpLmdldEl0ZW0uY2FsbGVyOjo6
VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGlu
IGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgRSgpKS5nZXRJdGVtLmFyZ3VtZW50czo6OlR5cGVF
cnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFz
cyBjb250ZXh0LgorUEFTUyAobmV3IEYoKSkuZ2V0SXRlbS5jYWxsZXI6OjpUeXBlRXJyb3I6ICdj
YWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4
dC4KK1BBU1MgKG5ldyBGKCkpLmdldEl0ZW0uYXJndW1lbnRzOjo6VHlwZUVycm9yOiAnY2FsbGVy
JyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQ
QVNTIChuZXcgRigpKS5nZXRFbGVtZW50LmNhbGxlcjo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5k
ICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAo
bmV3IEYoKSkuZ2V0RWxlbWVudC5hcmd1bWVudHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAn
YXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5l
dyBHKCkpLml0ZW0uY2FsbGVyOjo6dW5kZWZpbmVkCitQQVNTIChuZXcgRygpKS5pdGVtLmFyZ3Vt
ZW50czo6OnVuZGVmaW5lZAorUEFTUyBILmNhbGxlcjo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5k
ICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyBI
LmFyZ3VtZW50czo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBi
ZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEgoKSkuY2FsbGVyKCk6Ojoi
dmFsdWUiCitQQVNTIChuZXcgSCgpKS5hcmd1bWVudHMoKTo6OiJ2YWx1ZSIKK1BBU1MgKG5ldyBI
KCkpLmNhbGxlci5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBj
YW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBIKCkpLmNhbGxl
ci5hcmd1bWVudHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3Qg
YmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkOjo6
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2NsYXNz
LW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvanMv
Y2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzhkNDY5ZjhlNjU3YjdjMjg3NTczODMxYzI5N2Y5Yzg4YzA3YmIwMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGll
cy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVy
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVz
LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3Ry
dWN0b3ItcHJvcGVydGllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjg0OTg2YjQxNDljNmJjMzI2NjQ1YjIx
MWI2NGQ3MmZhZjdiOGJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy5qcwpAQCAtMCww
ICsxLDY5IEBACisKK2Rlc2NyaXB0aW9uKCdUZXN0cyBmb3IgRVM2IGNsYXNzIG1ldGhvZCBhbmQg
Y29uc3RydWN0b3IgcHJvcGVydGllcycpOworCitmdW5jdGlvbiBzaG91bGRUaHJvdyhzLCBtZXNz
YWdlKSB7CisgICAgdmFyIHRocmV3ID0gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChz
KTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGhyZXcgPSB0cnVlOworICAgICAgICBpZiAo
IW1lc3NhZ2UgfHwgZS50b1N0cmluZygpID09PSBldmFsKG1lc3NhZ2UpKQorICAgICAgICAgICAg
dGVzdFBhc3NlZChzICsgIjo6OiIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKHMpOworICAgIH0KKyAgICBpZiAoIXRocmV3KQorICAgICAgICB0
ZXN0RmFpbGVkKHMpOworfQorCitmdW5jdGlvbiBzaG91bGRCZShhLCBiKSB7CisgICAgdmFyIHIx
ID0gZXZhbChhKTsKKyAgICB2YXIgcjIgPSBldmFsKGIpCisgICAgaWYgKHIxID09PSByMikKKyAg
ICAgICAgdGVzdFBhc3NlZChhICsgIjo6OiIgKyBiKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RG
YWlsZWQocjEgKyAiOjo6IiArIHIyKTsKK30KKworY2xhc3MgQSB7IH07CitjbGFzcyBCIGV4dGVu
ZHMgQSB7IH07CitjbGFzcyBDIGV4dGVuZHMgQSB7IGNvbnN0cnVjdG9yICgpIHtzdXBlcigpO319
CitjbGFzcyBEIHsgY29uc3RydWN0b3IgKCkge319CitjbGFzcyBFIHsgZ2V0SXRlbSgpIHsgcmV0
dXJuICd0ZXh0Jzt9IH0KK2NsYXNzIEYgZXh0ZW5kcyBFIHsgZ2V0RWxlbWVudCgpIHsgcmV0dXJu
ICd0ZXh0J319CitjbGFzcyBHIGV4dGVuZHMgRSB7IGdldCBpdGVtKCkgeyByZXR1cm4gJ3RleHQn
fSB9CisKK3Nob3VsZFRocm93KCcobmV3IEEoKSkuY29uc3RydWN0b3IuY2FsbGVyJywgJyJUeXBl
RXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGlu
IGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgQSgpKS5jb25zdHJ1Y3Rvci5h
cmd1bWVudHMnLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5u
b3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBC
KCkpLmNvbnN0cnVjdG9yLmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2Fy
Z3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3Vs
ZFRocm93KCcobmV3IEIoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwn
Y2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNv
bnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgQygpKS5jb25zdHJ1Y3Rvci5jYWxsZXInLCAn
IlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNz
ZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBDKCkpLmNvbnN0cnVj
dG9yLmFyZ3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wn
IGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCco
bmV3IEQoKSkuY29uc3RydWN0b3IuY2FsbGVyJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5k
IFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOwor
c2hvdWxkVGhyb3coJyhuZXcgRCgpKS5jb25zdHJ1Y3Rvci5hcmd1bWVudHMnLCAnIlR5cGVFcnJv
cjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xh
c3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBFKCkpLmdldEl0ZW0uY2FsbGVyJywg
JyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vz
c2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgRSgpKS5nZXRJdGVt
LmFyZ3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNh
bm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3
IEYoKSkuZ2V0SXRlbS5jYWxsZXInLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1
bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRU
aHJvdygnKG5ldyBGKCkpLmdldEl0ZW0uYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVy
XCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQu
IicpOworc2hvdWxkVGhyb3coJyhuZXcgRigpKS5nZXRFbGVtZW50LmNhbGxlcicsICciVHlwZUVy
cm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBj
bGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEYoKSkuZ2V0RWxlbWVudC5hcmd1
bWVudHMnLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3Qg
YmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CisKK3Nob3VsZEJlKCcobmV3IEcoKSku
aXRlbS5jYWxsZXInLCAndW5kZWZpbmVkJyk7CitzaG91bGRCZSgnKG5ldyBHKCkpLml0ZW0uYXJn
dW1lbnRzJywgJ3VuZGVmaW5lZCcpOworCitjbGFzcyBIIHsKKyAgY2FsbGVyKCkgeyByZXR1cm4g
J3ZhbHVlJzsgfQorICBhcmd1bWVudHMoKSB7IHJldHVybiAndmFsdWUnOyB9Cit9CisKK3Nob3Vs
ZFRocm93KCdILmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50
c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93
KCdILmFyZ3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wn
IGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKKworc2hvdWxkQmUoJyhu
ZXcgSCgpKS5jYWxsZXIoKScsICcidmFsdWUiJyk7CitzaG91bGRCZSgnKG5ldyBIKCkpLmFyZ3Vt
ZW50cygpJywgJyJ2YWx1ZSInKTsKKworc2hvdWxkVGhyb3coJyhuZXcgSCgpKS5jYWxsZXIuY2Fs
bGVyJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJl
IGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgSCgpKS5j
YWxsZXIuYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRz
XCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworCisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277851</attachid>
            <date>2016-05-01 03:06:31 -0700</date>
            <delta_ts>2016-05-01 03:26:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144238-20160501130705.patch</filename>
            <type>text/plain</type>
            <size>19329</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YTc4YzdkZjNhZGI3YzZlOWM5MGRhNTZkYjlhMGM5YzFiODQ2MTAyLi5iNjZiYjJiYmI3NDk5OGNj
NDEwZGEyYTI0ZjViODNiMmIzZjE3ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNi0wNS0wMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBDbGFzcyBjb250cnVjdG9yIGFuZCBtZXRob2RzIHNob3VsZG4n
dCBoYXZlICJhcmd1bWVudHMiIGFuZCAiY2FsbGVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgVHlwZUVycm9yIHRoYXQgaXMgcmFpc2VkIGlu
IGNhc2Ugb2YgYWNjZXNzIHRvIHByb3BlcnRpZXMgJ2FyZ3VtZW50cycgb3IgJ2NhbGxlcicKKyAg
ICAgICAgb2YgY29uc3RydWN0b3Igb3IgbWV0aG9kIG9mIGNsYXNzLgorCisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIpOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpnbG9i
YWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlZmluZU93bkluZGV4ZWRQcm9wZXJ0eSk6
CisgICAgICAgIChKU0M6OnZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IpOgorCiAy
MDE2LTA0LTI4ICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAg
ICAgICAgIENyYXNoIGZvciBub24tc3RhdGljIHN1cGVyIHByb3BlcnR5IGNhbGwgaW4gZGVyaXZl
ZCBjbGFzcyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAppbmRleCAyYzdjMmU4MmU0YjEzMjAyYjczMDgzZjkyNWNiNmMyMjFlOGRjNjcw
Li5lMTA4NWMxODk1MDZmYjIyN2YyZDk1MjA0ODUzM2M2MTA5YjE1MjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzY1LDEwICszNjUsMTMg
QEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKHRoaXNP
YmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgeworICAgICAgICBpZiAodGhp
c09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpIHx8IHRoaXNPYmplY3QtPmpz
RXhlY3V0YWJsZSgpLT5pc0NsYXNzQ29uc3RydWN0b3JGdW5jdGlvbigpKSB7CiAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAg
ICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5h
bWUsIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRl
cihleGVjLT52bSgpKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOworICAgICAg
ICAgICAgICAgIEdldHRlclNldHRlciogZXJyb3JHZXR0ZXJTZXR0ZXIgPSB0aGlzT2JqZWN0LT5q
c0V4ZWN1dGFibGUoKS0+aXNDbGFzc0NvbnN0cnVjdG9yRnVuY3Rpb24oKSB8fCB0aGlzT2JqZWN0
LT5qc0V4ZWN1dGFibGUoKS0+cGFyc2VNb2RlKCkgPT0gU291cmNlUGFyc2VNb2RlOjpNZXRob2RN
b2RlCisgICAgICAgICAgICAgICAgICAgID8gdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRo
cm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKGV4ZWMtPnZtKCkpCisg
ICAgICAgICAgICAgICAgICAgIDogdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlw
ZUVycm9yR2V0dGVyU2V0dGVyKGV4ZWMtPnZtKCkpOworICAgICAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZXJyb3JHZXR0ZXJTZXR0
ZXIsIERvbnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKICAgICAgICAgICAgICAgICBBU1NFUlQocmVzdWx0KTsKICAgICAgICAg
ICAgIH0KQEAgLTM3OSwxMCArMzgyLDE0IEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAg
fQogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVy
KSB7Ci0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2Rl
KCkpIHsKKyAgICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1v
ZGUoKSB8fCB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNDbGFzc0NvbnN0cnVjdG9yRnVu
Y3Rpb24oKSkgewogICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgICAg
IGlmICghcmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0QWNj
ZXNzb3IoZXhlYywgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+dGhy
b3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYy0+dm0oKSksIERvbnREZWxldGUgfCBEb250RW51
bSB8IEFjY2Vzc29yKTsKKyAgICAgICAgICAgICAgICBHZXR0ZXJTZXR0ZXIqIGVycm9yR2V0dGVy
U2V0dGVyID0gdGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzQ2xhc3NDb25zdHJ1Y3RvckZ1
bmN0aW9uKCkgfHwgdGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPnBhcnNlTW9kZSgpID09IFNv
dXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZQorICAgICAgICAgICAgICAgICAgICA/IHRoaXNPYmpl
Y3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRl
clNldHRlcihleGVjLT52bSgpKQorICAgICAgICAgICAgICAgICAgICA6IHRoaXNPYmplY3QtPmds
b2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVjLT52bSgpKTsKKwor
ICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgZXJyb3JHZXR0ZXJTZXR0ZXIsIERvbnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vz
c29yKTsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgICAgICAgICBB
U1NFUlQocmVzdWx0KTsKICAgICAgICAgICAgIH0KQEAgLTUwOSw3ICs1MTYsNyBAQCBib29sIEpT
RnVuY3Rpb246OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYQogICAgICAKICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGVQ
cmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkgewogICAgICAgICBpZiAodGhy
b3dFeGNlcHRpb24pCi0gICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHRpbmcgdG8gY2hhbmdl
IGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuIikpKTsK
KyAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlwZUVy
cm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxl
IGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4xIikpKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgp
ICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMzZiYmVkNDUyZjdhNmFmZDQxZTk2
YWE3MDZjZjJmOGFhZDJmMjJhNy4uOGUyMzdjZjkxMGJiYjcwNjYzYzVmY2VmMTg1ZDJlZjFkMzk0
MjU3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtODkxLDYgKzg5MSwxNSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVU
aHJvd1R5cGVFcnJvcihWTSYgdm0pCiAgICAgbV90aHJvd1R5cGVFcnJvckdldHRlclNldHRlci5z
ZXQodm0sIHRoaXMsIGdldHRlclNldHRlcik7CiB9CiAKK3ZvaWQgSlNHbG9iYWxPYmplY3Q6OmNy
ZWF0ZVRocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyKFZNJiB2bSkKK3sKKyAgICBKU0Z1
bmN0aW9uKiB0aHJvd2VyID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmco
KSwgZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyKTsKKyAgICBHZXR0
ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCB0aGlzKTsK
KyAgICBnZXR0ZXJTZXR0ZXItPnNldEdldHRlcih2bSwgdGhpcywgdGhyb3dlcik7CisgICAgZ2V0
dGVyU2V0dGVyLT5zZXRTZXR0ZXIodm0sIHRoaXMsIHRocm93ZXIpOworICAgIG1fdGhyb3dUeXBl
RXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIuc2V0KHZtLCB0aGlzLCBnZXR0ZXJT
ZXR0ZXIpOworfQorCiAvLyBTZXQgcHJvdG90eXBlLCBhbmQgYWxzbyBpbnNlcnQgdGhlIG9iamVj
dCBwcm90b3R5cGUgYXQgdGhlIGVuZCBvZiB0aGUgY2hhaW4uCiB2b2lkIEpTR2xvYmFsT2JqZWN0
OjpyZXNldFByb3RvdHlwZShWTSYgdm0sIEpTVmFsdWUgcHJvdG90eXBlKQogewpAQCAtOTQwLDYg
Kzk0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAg
dmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIp
OworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Rocm93VHlwZUVycm9yQXJndW1l
bnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVj
dC0+bV9tb2R1bGVMb2FkZXIpOwogCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1f
b2JqZWN0UHJvdG90eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCmluZGV4IDRkMTAwMmU4ODFhODM0NzUyY2MxNGU3MzBkOTQ4M2Q1NjczNzA2
MTAuLmY1OGM1Mjc0YmZkMjRiNmU1M2ZlZGM0YzA5YjUwNGRkZDI4Yzc4Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMjM0LDYgKzIz
NCw3IEBAIHByb3RlY3RlZDoKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1fcmVnRXhwUHJv
dG9HbG9iYWxHZXR0ZXI7CiAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX3JlZ0V4cFByb3Rv
VW5pY29kZUdldHRlcjsKICAgICBXcml0ZUJhcnJpZXI8R2V0dGVyU2V0dGVyPiBtX3Rocm93VHlw
ZUVycm9yR2V0dGVyU2V0dGVyOworICAgIFdyaXRlQmFycmllcjxHZXR0ZXJTZXR0ZXI+IG1fdGhy
b3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXI7CiAKICAgICBXcml0ZUJh
cnJpZXI8TW9kdWxlTG9hZGVyT2JqZWN0PiBtX21vZHVsZUxvYWRlcjsKIApAQCAtNDY4LDYgKzQ2
OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0
dGVyLmdldCgpOwogICAgIH0KIAorICAgIEdldHRlclNldHRlciogdGhyb3dUeXBlRXJyb3JBcmd1
bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIoVk0mIHZtKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X3Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKQorICAgICAgICAg
ICAgY3JlYXRlVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIodm0pOworICAgICAgICBy
ZXR1cm4gbV90aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRlci5nZXQo
KTsKKyAgICB9CisgICAgCiAgICAgTW9kdWxlTG9hZGVyT2JqZWN0KiBtb2R1bGVMb2FkZXIoKSBj
b25zdCB7IHJldHVybiBtX21vZHVsZUxvYWRlci5nZXQoKTsgfQogCiAgICAgT2JqZWN0UHJvdG90
eXBlKiBvYmplY3RQcm90b3R5cGUoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFByb3RvdHlwZS5n
ZXQoKTsgfQpAQCAtNzMzLDYgKzc0MSw3IEBAIHByaXZhdGU6CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBpbml0KFZNJik7CiAKICAgICB2b2lkIGNyZWF0ZVRocm93VHlwZUVycm9yKFZNJik7
CisgICAgdm9pZCBjcmVhdGVUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlcihWTSYpOwog
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgY2xlYXJSYXJlRGF0YShKU0NlbGwq
KTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggMzgxM2ZhZjZjNDNlNzA4OWFhODM0ZTkyZWY3
ZGI4ODc2YmQ3NzZlYy4uNmJiYWFjOWUwMzFhYmExNDNhNTZjYzZkMjVjMWZkMTk4YmRmNGRmMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtNzgxLDYgKzc4MSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiB9CisgICAgCitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENh
bGxlcihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgIidjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3Mg
Y29udGV4dC4iKTsKK30KIAogY2xhc3MgR2xvYmFsRnVuY1Byb3RvR2V0dGVyRnVuY3RvciB7CiBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuaAppbmRleCBiOTI5ZjUxNDMyYTNmMzk4ZjM5N2IzYzg5NjcxMmIx
Y2RmOGM4Mjg5Li41MmM1MDdmY2NiMTQxZWExYWRmYmNiNGMxMWYwZjAwOGE0Y2IwNWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2NhcGUoRXhlY1N0YXRlKik7CiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvcihFeGVjU3Rh
dGUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVy
cm9yQXJndW1lbnRzQW5kQ2FsbGVyKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9HZXR0ZXIoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b1NldHRlcihFeGVjU3RhdGUqKTsKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0aW5Mb2coRXhlY1N0YXRlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggMjAwODZj
MjE2ZWRmNmNhNjEyOGY3ODc0ZGIzMjE2NzBkNDI2MTIzNy4uMjNiOTVkNTE1NGFkNTA5YWNjZTgy
M2NhNmIzYWEyODA4YjIzNGFiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcApAQCAtMjEwMyw3ICsyMTAzLDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3du
SW5kZXhlZFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIGNvbnN0IFAK
ICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKICAgICAgICAgLy8gNy5hLiBSZWpl
Y3QsIGlmIHRoZSBbW0NvbmZpZ3VyYWJsZV1dIGZpZWxkIG9mIERlc2MgaXMgdHJ1ZS4KICAgICAg
ICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0b3IuY29u
ZmlndXJhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHRocm93RXhjZXB0
aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNv
bmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKTsKKyAgICAgICAgICAgIHJldHVybiByZWplY3QoZXhlYywg
dGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSBjb25maWd1cmFibGUgYXR0cmli
dXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LjIiKTsKICAgICAgICAgLy8gNy5iLiBSZWpl
Y3QsIGlmIHRoZSBbW0VudW1lcmFibGVdXSBmaWVsZCBvZiBEZXNjIGlzIHByZXNlbnQgYW5kIHRo
ZSBbW0VudW1lcmFibGVdXSBmaWVsZHMgb2YgY3VycmVudCBhbmQgRGVzYyBhcmUgdGhlIEJvb2xl
YW4gbmVnYXRpb24gb2YgZWFjaCBvdGhlci4KICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZW51bWVy
YWJsZVByZXNlbnQoKSAmJiBjdXJyZW50LmVudW1lcmFibGUoKSAhPSBkZXNjcmlwdG9yLmVudW1l
cmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXhlYywgdGhyb3dFeGNlcHRpb24s
ICJBdHRlbXB0aW5nIHRvIGNoYW5nZSBlbnVtZXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3Vy
YWJsZSBwcm9wZXJ0eS4iKTsKQEAgLTI5NjYsNyArMjk2Niw3IEBAIGJvb2wgdmFsaWRhdGVBbmRB
cHBseVByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3Qs
IFByb3BlCiAgICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgpKSB7CiAgICAgICAgIGlmIChk
ZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpKSB7CiAgICAgICAgICAgICBpZiAodGhyb3dFeGNlcHRp
b24pCi0gICAgICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJBdHRlbXB0aW5nIHRvIGNoYW5nZSBjb25m
aWd1cmFibGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpKSk7CisgICAg
ICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUeXBlRXJy
b3IoZXhlYywgQVNDSUlMaXRlcmFsKCJBdHRlbXB0aW5nIHRvIGNoYW5nZSBjb25maWd1cmFibGUg
YXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LjMiKSkpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFi
bGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkgIT0gY3VycmVudC5lbnVtZXJh
YmxlKCkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA3YTUzN2U2ZWNmZWY2OTVhOTQ1NTdhYjhjYzU4YzlhNzcxN2EzNTNi
Li5iNDM3ZTA1NjEzZjZiOGUzYjg2M2EwOGFjZjE1NjRkZWE1MDhlNmQ5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTYtMDUtMDEgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2FjaGtvdkBnbWFp
bC5jb20+CisKKyAgICAgICAgQ2xhc3MgY29udHJ1Y3RvciBhbmQgbWV0aG9kcyBzaG91bGRuJ3Qg
aGF2ZSAiYXJndW1lbnRzIiBhbmQgImNhbGxlciIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDIzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICoganMvY2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvY2xhc3MtbWV0aG9k
LWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3Nj
cmlwdC10ZXN0cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuanM6IEFk
ZGVkLgorCiAyMDE2LTA0LTI4ICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwu
Y29tPgogCiAgICAgICAgIENyYXNoIGZvciBub24tc3RhdGljIHN1cGVyIHByb3BlcnR5IGNhbGwg
aW4gZGVyaXZlZCBjbGFzcyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
Y2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI0M2Y3ODdlYjU3MzA2ZTRiODllMmJmYzRlODE3MmEwM2Yz
NGVmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2NsYXNzLW1ldGhvZC1hbmQt
Y29uc3RydWN0b3ItcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGVz
dHMgZm9yIEVTNiBjbGFzcyBtZXRob2QgYW5kIGNvbnN0cnVjdG9yIHByb3BlcnRpZXMKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgKG5ldyBBKCkpLmNvbnN0cnVjdG9yLmNh
bGxlcjo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nl
c3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEEoKSkuY29uc3RydWN0b3IuYXJndW1l
bnRzOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vz
c2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgQigpKS5jb25zdHJ1Y3Rvci5jYWxsZXI6
OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQg
aW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBCKCkpLmNvbnN0cnVjdG9yLmFyZ3VtZW50czo6
OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBp
biBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEMoKSkuY29uc3RydWN0b3IuY2FsbGVyOjo6VHlw
ZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNs
YXNzIGNvbnRleHQuCitQQVNTIChuZXcgQygpKS5jb25zdHJ1Y3Rvci5hcmd1bWVudHM6OjpUeXBl
RXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xh
c3MgY29udGV4dC4KK1BBU1MgKG5ldyBEKCkpLmNvbnN0cnVjdG9yLmNhbGxlcjo6OlR5cGVFcnJv
cjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBj
b250ZXh0LgorUEFTUyAobmV3IEQoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzOjo6VHlwZUVycm9y
OiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNv
bnRleHQuCitQQVNTIChuZXcgRSgpKS5nZXRJdGVtLmNhbGxlcjo6OlR5cGVFcnJvcjogJ2NhbGxl
cicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0Lgor
UEFTUyAobmV3IEUoKSkuZ2V0SXRlbS5hcmd1bWVudHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFu
ZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1Mg
KG5ldyBGKCkpLmdldEl0ZW0uY2FsbGVyOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3Vt
ZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgRigp
KS5nZXRJdGVtLmFyZ3VtZW50czo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMn
IGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEYoKSkuZ2V0
RWxlbWVudC5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5u
b3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBGKCkpLmdldEVsZW1l
bnQuYXJndW1lbnRzOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90
IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgRygpKS5pdGVtLmNhbGxl
cjo6OnVuZGVmaW5lZAorUEFTUyAobmV3IEcoKSkuaXRlbS5hcmd1bWVudHM6Ojp1bmRlZmluZWQK
K1BBU1MgSC5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5u
b3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgSC5hcmd1bWVudHM6OjpUeXBl
RXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xh
c3MgY29udGV4dC4KK1BBU1MgKG5ldyBIKCkpLmNhbGxlcigpOjo6InZhbHVlIgorUEFTUyAobmV3
IEgoKSkuYXJndW1lbnRzKCk6OjoidmFsdWUiCitQQVNTIChuZXcgSCgpKS5jYWxsZXIuY2FsbGVy
Ojo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2Vk
IGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgSCgpKS5jYWxsZXIuYXJndW1lbnRzOjo6VHlw
ZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNs
YXNzIGNvbnRleHQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZDo6OnRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0
cnVjdG9yLXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLW1ldGhvZC1hbmQt
Y29uc3RydWN0b3ItcHJvcGVydGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4ZDQ2OWY4ZTY1N2I3YzI4
NzU3MzgzMWMyOTdmOWM4OGMwN2JiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuaHRtbApAQCAtMCwwICsx
LDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyBiL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2I4NDk4NmI0MTQ5YzZiYzMyNjY0NWIyMTFiNjRkNzJmYWY3YjhiZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1tZXRo
b2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuanMKQEAgLTAsMCArMSw2OSBAQAorCitkZXNj
cmlwdGlvbignVGVzdHMgZm9yIEVTNiBjbGFzcyBtZXRob2QgYW5kIGNvbnN0cnVjdG9yIHByb3Bl
cnRpZXMnKTsKKworZnVuY3Rpb24gc2hvdWxkVGhyb3cocywgbWVzc2FnZSkgeworICAgIHZhciB0
aHJldyA9IGZhbHNlOworICAgIHRyeSB7CisgICAgICAgIGV2YWwocyk7CisgICAgfSBjYXRjaChl
KSB7CisgICAgICAgIHRocmV3ID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFtZXNzYWdlIHx8IGUudG9T
dHJpbmcoKSA9PT0gZXZhbChtZXNzYWdlKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQocyArICI6
OjoiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxl
ZChzKTsKKyAgICB9CisgICAgaWYgKCF0aHJldykKKyAgICAgICAgdGVzdEZhaWxlZChzKTsKK30K
KworZnVuY3Rpb24gc2hvdWxkQmUoYSwgYikgeworICAgIHZhciByMSA9IGV2YWwoYSk7CisgICAg
dmFyIHIyID0gZXZhbChiKQorICAgIGlmIChyMSA9PT0gcjIpCisgICAgICAgIHRlc3RQYXNzZWQo
YSArICI6OjoiICsgYik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHIxICsgIjo6OiIg
KyByMik7Cit9CisKK2NsYXNzIEEgeyB9OworY2xhc3MgQiBleHRlbmRzIEEgeyB9OworY2xhc3Mg
QyBleHRlbmRzIEEgeyBjb25zdHJ1Y3RvciAoKSB7c3VwZXIoKTt9fQorY2xhc3MgRCB7IGNvbnN0
cnVjdG9yICgpIHt9fQorY2xhc3MgRSB7IGdldEl0ZW0oKSB7IHJldHVybiAndGV4dCc7fSB9Citj
bGFzcyBGIGV4dGVuZHMgRSB7IGdldEVsZW1lbnQoKSB7IHJldHVybiAndGV4dCd9fQorY2xhc3Mg
RyBleHRlbmRzIEUgeyBnZXQgaXRlbSgpIHsgcmV0dXJuICd0ZXh0J30gfQorCitzaG91bGRUaHJv
dygnKG5ldyBBKCkpLmNvbnN0cnVjdG9yLmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2NhbGxlclwn
IGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiIn
KTsKK3Nob3VsZFRocm93KCcobmV3IEEoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzJywgJyJUeXBl
RXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGlu
IGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgQigpKS5jb25zdHJ1Y3Rvci5j
YWxsZXInLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3Qg
YmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBCKCkp
LmNvbnN0cnVjdG9yLmFyZ3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2Fy
Z3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3Vs
ZFRocm93KCcobmV3IEMoKSkuY29uc3RydWN0b3IuY2FsbGVyJywgJyJUeXBlRXJyb3I6IFwnY2Fs
bGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRl
eHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgQygpKS5jb25zdHJ1Y3Rvci5hcmd1bWVudHMnLCAn
IlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNz
ZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBEKCkpLmNvbnN0cnVj
dG9yLmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNh
bm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3
IEQoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5k
IFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOwor
c2hvdWxkVGhyb3coJyhuZXcgRSgpKS5nZXRJdGVtLmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2Nh
bGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250
ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEUoKSkuZ2V0SXRlbS5hcmd1bWVudHMnLCAnIlR5
cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQg
aW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBGKCkpLmdldEl0ZW0uY2Fs
bGVyJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJl
IGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgRigpKS5n
ZXRJdGVtLmFyZ3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50
c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93
KCcobmV3IEYoKSkuZ2V0RWxlbWVudC5jYWxsZXInLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBh
bmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7
CitzaG91bGRUaHJvdygnKG5ldyBGKCkpLmdldEVsZW1lbnQuYXJndW1lbnRzJywgJyJUeXBlRXJy
b3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNs
YXNzIGNvbnRleHQuIicpOworCitzaG91bGRCZSgnKG5ldyBHKCkpLml0ZW0uY2FsbGVyJywgJ3Vu
ZGVmaW5lZCcpOworc2hvdWxkQmUoJyhuZXcgRygpKS5pdGVtLmFyZ3VtZW50cycsICd1bmRlZmlu
ZWQnKTsKKworY2xhc3MgSCB7CisgIGNhbGxlcigpIHsgcmV0dXJuICd2YWx1ZSc7IH0KKyAgYXJn
dW1lbnRzKCkgeyByZXR1cm4gJ3ZhbHVlJzsgfQorfQorCitzaG91bGRUaHJvdygnSC5jYWxsZXIn
LCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNj
ZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnSC5hcmd1bWVudHMnLCAn
IlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNz
ZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CisKK3Nob3VsZEJlKCcobmV3IEgoKSkuY2FsbGVyKCkn
LCAnInZhbHVlIicpOworc2hvdWxkQmUoJyhuZXcgSCgpKS5hcmd1bWVudHMoKScsICcidmFsdWUi
Jyk7CisKK3Nob3VsZFRocm93KCcobmV3IEgoKSkuY2FsbGVyLmNhbGxlcicsICciVHlwZUVycm9y
OiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFz
cyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEgoKSkuY2FsbGVyLmFyZ3VtZW50cycs
ICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nl
c3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277854</attachid>
            <date>2016-05-01 03:26:45 -0700</date>
            <delta_ts>2016-05-05 22:22:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144238-20160501132719.patch</filename>
            <type>text/plain</type>
            <size>16830</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YTc4YzdkZjNhZGI3YzZlOWM5MGRhNTZkYjlhMGM5YzFiODQ2MTAyLi44NzI1YTMwMTI3OGIzYTRi
NGMzNGExNGNlZGJhNmUyOGUzM2ViNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNi0wNS0wMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBDbGFzcyBjb250cnVjdG9yIGFuZCBtZXRob2RzIHNob3VsZG4n
dCBoYXZlICJhcmd1bWVudHMiIGFuZCAiY2FsbGVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgVHlwZUVycm9yIHRoYXQgaXMgcmFpc2VkIGlu
IGNhc2Ugb2YgYWNjZXNzIHRvIHByb3BlcnRpZXMgJ2FyZ3VtZW50cycgb3IgJ2NhbGxlcicKKyAg
ICAgICAgb2YgY29uc3RydWN0b3Igb3IgbWV0aG9kIG9mIGNsYXNzLiBBY3R1YWxseSBUeXBlRXJy
b3IgYWxyZWFkeSByYWlzZWQgZm9yIG1vc3QgY2FzZXMsIGV4Y2VwdAorICAgICAgICBjYXNlIHdp
dGggdW5kZWNsYXJlZCBjb25zdHJ1Y3RvciBlLiBnLiAKKyAgICAgICAgY2xhc3MgQSB7fQorICAg
ICAgICAobmV3IEEpLmNvbnN0cnVjdG9yLmNhbGxlciAKKyAgICAgICAgKG5ldyBBKS5jb25zdHJ1
Y3Rvci5hcmd1bWVudHMKKworICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojpj
cmVhdGVUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlcik6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp0aHJvd1R5cGVFcnJvckFy
Z3VtZW50c0FuZENhbGxlckdldHRlclNldHRlcik6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVF
cnJvckFyZ3VtZW50c0FuZENhbGxlcik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5oOgorCiAyMDE2LTA0LTI4ICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hr
b3ZAZ21haWwuY29tPgogCiAgICAgICAgIENyYXNoIGZvciBub24tc3RhdGljIHN1cGVyIHByb3Bl
cnR5IGNhbGwgaW4gZGVyaXZlZCBjbGFzcyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAyYzdjMmU4MmU0YjEzMjAyYjczMDgz
ZjkyNWNiNmMyMjFlOGRjNjcwLi42M2VmN2ZiZDk5ZDhmODI1YTk4ZDEwYzhmMzI2Njc4NzAyMGIz
YmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApA
QCAtMzY1LDEwICszNjUsMTMgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICB9CiAKICAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsK
LSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkg
eworICAgICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgp
IHx8IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc0NsYXNzQ29uc3RydWN0b3JGdW5jdGlv
bigpKSB7CiAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEJhc2U6OmdldE93blByb3BlcnR5U2xv
dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICAgICAgaWYg
KCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RBY2Nlc3Nv
cihleGVjLCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5
cGVFcnJvckdldHRlclNldHRlcihleGVjLT52bSgpKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwg
QWNjZXNzb3IpOworICAgICAgICAgICAgICAgIEdldHRlclNldHRlciogZXJyb3JHZXR0ZXJTZXR0
ZXIgPSB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNDbGFzc0NvbnN0cnVjdG9yRnVuY3Rp
b24oKSB8fCB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+cGFyc2VNb2RlKCkgPT0gU291cmNl
UGFyc2VNb2RlOjpNZXRob2RNb2RlCisgICAgICAgICAgICAgICAgICAgID8gdGhpc09iamVjdC0+
Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0
dGVyKGV4ZWMtPnZtKCkpCisgICAgICAgICAgICAgICAgICAgIDogdGhpc09iamVjdC0+Z2xvYmFs
T2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKGV4ZWMtPnZtKCkpOworICAgICAg
ICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZXJyb3JHZXR0ZXJTZXR0ZXIsIERvbnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsK
ICAgICAgICAgICAgICAgICByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgICAgICAgICBBU1NFUlQo
cmVzdWx0KTsKICAgICAgICAgICAgIH0KQEAgLTM3OSwxMCArMzgyLDE0IEBAIGJvb2wgSlNGdW5j
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOCiAgICAgfQogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuY2FsbGVyKSB7Ci0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5qc0V4ZWN1dGFi
bGUoKS0+aXNTdHJpY3RNb2RlKCkpIHsKKyAgICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0
YWJsZSgpLT5pc1N0cmljdE1vZGUoKSB8fCB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXND
bGFzc0NvbnN0cnVjdG9yRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgdGhpc09i
amVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5n
bG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYy0+dm0oKSksIERv
bnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKKyAgICAgICAgICAgICAgICBHZXR0ZXJT
ZXR0ZXIqIGVycm9yR2V0dGVyU2V0dGVyID0gdGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlz
Q2xhc3NDb25zdHJ1Y3RvckZ1bmN0aW9uKCkgfHwgdGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCkt
PnBhcnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZQorICAgICAgICAgICAg
ICAgICAgICA/IHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckFyZ3Vt
ZW50c0FuZENhbGxlckdldHRlclNldHRlcihleGVjLT52bSgpKQorICAgICAgICAgICAgICAgICAg
ICA6IHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRl
cihleGVjLT52bSgpKTsKKworICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdEFj
Y2Vzc29yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZXJyb3JHZXR0ZXJTZXR0ZXIsIERvbnREZWxldGUg
fCBEb250RW51bSB8IEFjY2Vzc29yKTsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
ICAgICAgICAgICAgICAgICBBU1NFUlQocmVzdWx0KTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAzNmJi
ZWQ0NTJmN2E2YWZkNDFlOTZhYTcwNmNmMmY4YWFkMmYyMmE3Li44ZTIzN2NmOTEwYmJiNzA2NjNj
NWZjZWYxODVkMmVmMWQzOTQyNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC04OTEsNiArODkxLDE1IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OmNyZWF0ZVRocm93VHlwZUVycm9yKFZNJiB2bSkKICAgICBtX3Rocm93VHlwZUVy
cm9yR2V0dGVyU2V0dGVyLnNldCh2bSwgdGhpcywgZ2V0dGVyU2V0dGVyKTsKIH0KIAordm9pZCBK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIoVk0m
IHZtKQoreworICAgIEpTRnVuY3Rpb24qIHRocm93ZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRD
YWxsZXIpOworICAgIEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gR2V0dGVyU2V0dGVyOjpj
cmVhdGUodm0sIHRoaXMpOworICAgIGdldHRlclNldHRlci0+c2V0R2V0dGVyKHZtLCB0aGlzLCB0
aHJvd2VyKTsKKyAgICBnZXR0ZXJTZXR0ZXItPnNldFNldHRlcih2bSwgdGhpcywgdGhyb3dlcik7
CisgICAgbV90aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRlci5zZXQo
dm0sIHRoaXMsIGdldHRlclNldHRlcik7Cit9CisKIC8vIFNldCBwcm90b3R5cGUsIGFuZCBhbHNv
IGluc2VydCB0aGUgb2JqZWN0IHByb3RvdHlwZSBhdCB0aGUgZW5kIG9mIHRoZSBjaGFpbi4KIHZv
aWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0UHJvdG90eXBlKFZNJiB2bSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiB7CkBAIC05NDAsNiArOTQ5LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBw
ZW5kKCZ0aGlzT2JqZWN0LT5tX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24pOwogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV90aHJvd1R5cGVF
cnJvckdldHRlclNldHRlcik7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fdGhy
b3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIpOwogICAgIHZpc2l0b3Iu
YXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21vZHVsZUxvYWRlcik7CiAKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9vYmplY3RQcm90b3R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggNGQxMDAyZTg4MWE4MzQ3NTJjYzE0
ZTczMGQ5NDgzZDU2NzM3MDYxMC4uZjU4YzUyNzRiZmQyNGI2ZTUzZmVkYzRjMDliNTA0ZGRkMjhj
NzhjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCkBAIC0yMzQsNiArMjM0LDcgQEAgcHJvdGVjdGVkOgogICAgIFdyaXRlQmFycmllcjxKU09i
amVjdD4gbV9yZWdFeHBQcm90b0dsb2JhbEdldHRlcjsKICAgICBXcml0ZUJhcnJpZXI8SlNPYmpl
Y3Q+IG1fcmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyOwogICAgIFdyaXRlQmFycmllcjxHZXR0ZXJT
ZXR0ZXI+IG1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXI7CisgICAgV3JpdGVCYXJyaWVyPEdl
dHRlclNldHRlcj4gbV90aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRl
cjsKIAogICAgIFdyaXRlQmFycmllcjxNb2R1bGVMb2FkZXJPYmplY3Q+IG1fbW9kdWxlTG9hZGVy
OwogCkBAIC00NjgsNiArNDY5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fdGhyb3dU
eXBlRXJyb3JHZXR0ZXJTZXR0ZXIuZ2V0KCk7CiAgICAgfQogCisgICAgR2V0dGVyU2V0dGVyKiB0
aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNldHRlcihWTSYgdm0pCisgICAg
eworICAgICAgICBpZiAoIW1fdGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJT
ZXR0ZXIpCisgICAgICAgICAgICBjcmVhdGVUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxl
cih2bSk7CisgICAgICAgIHJldHVybiBtX3Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVy
R2V0dGVyU2V0dGVyLmdldCgpOworICAgIH0KKyAgICAKICAgICBNb2R1bGVMb2FkZXJPYmplY3Qq
IG1vZHVsZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyLmdldCgpOyB9CiAK
ICAgICBPYmplY3RQcm90b3R5cGUqIG9iamVjdFByb3RvdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpOyB9CkBAIC03MzMsNiArNzQxLDcgQEAgcHJpdmF0ZToKICAg
ICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGluaXQoVk0mKTsKIAogICAgIHZvaWQgY3JlYXRlVGhy
b3dUeXBlRXJyb3IoVk0mKTsKKyAgICB2b2lkIGNyZWF0ZVRocm93VHlwZUVycm9yQXJndW1lbnRz
QW5kQ2FsbGVyKFZNJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBjbGVh
clJhcmVEYXRhKEpTQ2VsbCopOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCAzODEzZmFmNmM0
M2U3MDg5YWE4MzRlOTJlZjdkYjg4NzZiZDc3NmVjLi42YmJhYWM5ZTAzMWFiYTE0M2E1NmNjNmQy
NWMxZmQxOThiZGY0ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC03ODEsNiArNzgxLDExIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIH0K
KyAgICAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVy
cm9yQXJndW1lbnRzQW5kQ2FsbGVyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCAiJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBh
Y2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiIpOworfQogCiBjbGFzcyBHbG9iYWxGdW5jUHJvdG9H
ZXR0ZXJGdW5jdG9yIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGI5MjlmNTE0MzJhM2Yz
OThmMzk3YjNjODk2NzEyYjFjZGY4YzgyODkuLjUyYzUwN2ZjY2IxNDFlYTFhZGZiY2I0YzExZjBm
MDA4YTRjYjA1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaApAQCAtNDksNiArNDksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQoRXhlY1N0YXRl
Kik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0
YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShF
eGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93
VHlwZUVycm9yKEV4ZWNTdGF0ZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9i
YWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXIoRXhlY1N0YXRlKik7CiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihFeGVjU3RhdGUq
KTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEV4
ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jQnVpbHRp
bkxvZyhFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YTUzN2U2ZWNmZWY2OTVhOTQ1NTdhYjhjYzU4Yzlh
NzcxN2EzNTNiLi5iNDM3ZTA1NjEzZjZiOGUzYjg2M2EwOGFjZjE1NjRkZWE1MDhlNmQ5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUtMDEgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2Fj
aGtvdkBnbWFpbC5jb20+CisKKyAgICAgICAgQ2xhc3MgY29udHJ1Y3RvciBhbmQgbWV0aG9kcyBz
aG91bGRuJ3QgaGF2ZSAiYXJndW1lbnRzIiBhbmQgImNhbGxlciIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDIzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvY2xhc3MtbWV0aG9kLWFuZC1jb25z
dHJ1Y3Rvci1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvY2xh
c3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL3NjcmlwdC10ZXN0cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRp
ZXMuanM6IEFkZGVkLgorCiAyMDE2LTA0LTI4ICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hr
b3ZAZ21haWwuY29tPgogCiAgICAgICAgIENyYXNoIGZvciBub24tc3RhdGljIHN1cGVyIHByb3Bl
cnR5IGNhbGwgaW4gZGVyaXZlZCBjbGFzcyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvY2xhc3MtbWV0aG9kLWFuZC1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVy
dGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI0M2Y3ODdlYjU3MzA2ZTRiODllMmJmYzRl
ODE3MmEwM2YzNGVmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2NsYXNzLW1l
dGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
MSBAQAorVGVzdHMgZm9yIEVTNiBjbGFzcyBtZXRob2QgYW5kIGNvbnN0cnVjdG9yIHByb3BlcnRp
ZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgKG5ldyBBKCkpLmNvbnN0
cnVjdG9yLmNhbGxlcjo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5v
dCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEEoKSkuY29uc3RydWN0
b3IuYXJndW1lbnRzOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90
IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgQigpKS5jb25zdHJ1Y3Rv
ci5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUg
YWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBCKCkpLmNvbnN0cnVjdG9yLmFy
Z3VtZW50czo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBh
Y2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEMoKSkuY29uc3RydWN0b3IuY2Fs
bGVyOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vz
c2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgQygpKS5jb25zdHJ1Y3Rvci5hcmd1bWVu
dHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNz
ZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBEKCkpLmNvbnN0cnVjdG9yLmNhbGxlcjo6
OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBp
biBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3IEQoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzOjo6
VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGlu
IGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgRSgpKS5nZXRJdGVtLmNhbGxlcjo6OlR5cGVFcnJv
cjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBj
b250ZXh0LgorUEFTUyAobmV3IEUoKSkuZ2V0SXRlbS5hcmd1bWVudHM6OjpUeXBlRXJyb3I6ICdj
YWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4
dC4KK1BBU1MgKG5ldyBGKCkpLmdldEl0ZW0uY2FsbGVyOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBh
bmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNT
IChuZXcgRigpKS5nZXRJdGVtLmFyZ3VtZW50czo6OlR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdh
cmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LgorUEFTUyAobmV3
IEYoKSkuZ2V0RWxlbWVudC5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1l
bnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBGKCkp
LmdldEVsZW1lbnQuYXJndW1lbnRzOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50
cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgRygpKS5p
dGVtLmNhbGxlcjo6OnVuZGVmaW5lZAorUEFTUyAobmV3IEcoKSkuaXRlbS5hcmd1bWVudHM6Ojp1
bmRlZmluZWQKK1BBU1MgSC5jYWxsZXI6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1l
bnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgSC5hcmd1bWVu
dHM6OjpUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNz
ZWQgaW4gY2xhc3MgY29udGV4dC4KK1BBU1MgKG5ldyBIKCkpLmNhbGxlcigpOjo6InZhbHVlIgor
UEFTUyAobmV3IEgoKSkuYXJndW1lbnRzKCk6OjoidmFsdWUiCitQQVNTIChuZXcgSCgpKS5jYWxs
ZXIuY2FsbGVyOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJl
IGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIChuZXcgSCgpKS5jYWxsZXIuYXJndW1l
bnRzOjo6VHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vz
c2VkIGluIGNsYXNzIGNvbnRleHQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZDo6OnRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1tZXRob2Qt
YW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLW1l
dGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4ZDQ2OWY4
ZTY1N2I3YzI4NzU3MzgzMWMyOTdmOWM4OGMwN2JiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuaHRtbApA
QCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2NsYXNzLW1ldGhvZC1hbmQtY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyBiL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXBy
b3BlcnRpZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NDk4NmI0MTQ5YzZiYzMyNjY0NWIyMTFiNjRkNzJm
YWY3YjhiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9j
bGFzcy1tZXRob2QtYW5kLWNvbnN0cnVjdG9yLXByb3BlcnRpZXMuanMKQEAgLTAsMCArMSw2OSBA
QAorCitkZXNjcmlwdGlvbignVGVzdHMgZm9yIEVTNiBjbGFzcyBtZXRob2QgYW5kIGNvbnN0cnVj
dG9yIHByb3BlcnRpZXMnKTsKKworZnVuY3Rpb24gc2hvdWxkVGhyb3cocywgbWVzc2FnZSkgewor
ICAgIHZhciB0aHJldyA9IGZhbHNlOworICAgIHRyeSB7CisgICAgICAgIGV2YWwocyk7CisgICAg
fSBjYXRjaChlKSB7CisgICAgICAgIHRocmV3ID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFtZXNzYWdl
IHx8IGUudG9TdHJpbmcoKSA9PT0gZXZhbChtZXNzYWdlKSkKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQocyArICI6OjoiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGVzdEZhaWxlZChzKTsKKyAgICB9CisgICAgaWYgKCF0aHJldykKKyAgICAgICAgdGVzdEZhaWxl
ZChzKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmUoYSwgYikgeworICAgIHZhciByMSA9IGV2YWwo
YSk7CisgICAgdmFyIHIyID0gZXZhbChiKQorICAgIGlmIChyMSA9PT0gcjIpCisgICAgICAgIHRl
c3RQYXNzZWQoYSArICI6OjoiICsgYik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHIx
ICsgIjo6OiIgKyByMik7Cit9CisKK2NsYXNzIEEgeyB9OworY2xhc3MgQiBleHRlbmRzIEEgeyB9
OworY2xhc3MgQyBleHRlbmRzIEEgeyBjb25zdHJ1Y3RvciAoKSB7c3VwZXIoKTt9fQorY2xhc3Mg
RCB7IGNvbnN0cnVjdG9yICgpIHt9fQorY2xhc3MgRSB7IGdldEl0ZW0oKSB7IHJldHVybiAndGV4
dCc7fSB9CitjbGFzcyBGIGV4dGVuZHMgRSB7IGdldEVsZW1lbnQoKSB7IHJldHVybiAndGV4dCd9
fQorY2xhc3MgRyBleHRlbmRzIEUgeyBnZXQgaXRlbSgpIHsgcmV0dXJuICd0ZXh0J30gfQorCitz
aG91bGRUaHJvdygnKG5ldyBBKCkpLmNvbnN0cnVjdG9yLmNhbGxlcicsICciVHlwZUVycm9yOiBc
J2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBj
b250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEEoKSkuY29uc3RydWN0b3IuYXJndW1lbnRz
JywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFj
Y2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgQigpKS5jb25z
dHJ1Y3Rvci5jYWxsZXInLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNc
JyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygn
KG5ldyBCKCkpLmNvbnN0cnVjdG9yLmFyZ3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwn
IGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiIn
KTsKK3Nob3VsZFRocm93KCcobmV3IEMoKSkuY29uc3RydWN0b3IuY2FsbGVyJywgJyJUeXBlRXJy
b3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNs
YXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgQygpKS5jb25zdHJ1Y3Rvci5hcmd1
bWVudHMnLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3Qg
YmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBEKCkp
LmNvbnN0cnVjdG9yLmNhbGxlcicsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3Vt
ZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRo
cm93KCcobmV3IEQoKSkuY29uc3RydWN0b3IuYXJndW1lbnRzJywgJyJUeXBlRXJyb3I6IFwnY2Fs
bGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRl
eHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcgRSgpKS5nZXRJdGVtLmNhbGxlcicsICciVHlwZUVy
cm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBj
bGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEUoKSkuZ2V0SXRlbS5hcmd1bWVu
dHMnLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUg
YWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBGKCkpLmdl
dEl0ZW0uY2FsbGVyJywgJyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcg
Y2Fubm90IGJlIGFjY2Vzc2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhu
ZXcgRigpKS5nZXRJdGVtLmFyZ3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBc
J2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3No
b3VsZFRocm93KCcobmV3IEYoKSkuZ2V0RWxlbWVudC5jYWxsZXInLCAnIlR5cGVFcnJvcjogXCdj
YWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29u
dGV4dC4iJyk7CitzaG91bGRUaHJvdygnKG5ldyBGKCkpLmdldEVsZW1lbnQuYXJndW1lbnRzJywg
JyJUeXBlRXJyb3I6IFwnY2FsbGVyXCcgYW5kIFwnYXJndW1lbnRzXCcgY2Fubm90IGJlIGFjY2Vz
c2VkIGluIGNsYXNzIGNvbnRleHQuIicpOworCitzaG91bGRCZSgnKG5ldyBHKCkpLml0ZW0uY2Fs
bGVyJywgJ3VuZGVmaW5lZCcpOworc2hvdWxkQmUoJyhuZXcgRygpKS5pdGVtLmFyZ3VtZW50cycs
ICd1bmRlZmluZWQnKTsKKworY2xhc3MgSCB7CisgIGNhbGxlcigpIHsgcmV0dXJuICd2YWx1ZSc7
IH0KKyAgYXJndW1lbnRzKCkgeyByZXR1cm4gJ3ZhbHVlJzsgfQorfQorCitzaG91bGRUaHJvdygn
SC5jYWxsZXInLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5u
b3QgYmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnSC5hcmd1
bWVudHMnLCAnIlR5cGVFcnJvcjogXCdjYWxsZXJcJyBhbmQgXCdhcmd1bWVudHNcJyBjYW5ub3Qg
YmUgYWNjZXNzZWQgaW4gY2xhc3MgY29udGV4dC4iJyk7CisKK3Nob3VsZEJlKCcobmV3IEgoKSku
Y2FsbGVyKCknLCAnInZhbHVlIicpOworc2hvdWxkQmUoJyhuZXcgSCgpKS5hcmd1bWVudHMoKScs
ICcidmFsdWUiJyk7CisKK3Nob3VsZFRocm93KCcobmV3IEgoKSkuY2FsbGVyLmNhbGxlcicsICci
VHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5vdCBiZSBhY2Nlc3Nl
ZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCcobmV3IEgoKSkuY2FsbGVyLmFy
Z3VtZW50cycsICciVHlwZUVycm9yOiBcJ2NhbGxlclwnIGFuZCBcJ2FyZ3VtZW50c1wnIGNhbm5v
dCBiZSBhY2Nlc3NlZCBpbiBjbGFzcyBjb250ZXh0LiInKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="301995"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>