<?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>65347</bug_id>
          
          <creation_ts>2011-07-28 16:02:37 -0700</creation_ts>
          <short_desc>Refactor JS objects to allocate in static create methods rather than constructors</short_desc>
          <delta_ts>2011-09-20 14:59:47 -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>
          <dependson>65288</dependson>
    
    <dependson>66265</dependson>
    
    <dependson>66567</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443690</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-07-28 16:02:37 -0700</bug_when>
    <thetext>Now that we have static create methods and we can assert that we allocate only when we&apos;re not initializing another object, we want to move as much of the allocation done inside of constructors as possible into their static create methods.  Currently we clear the m_initializingObject flag inside of JSGlobalData if we do any sort of nested allocation within a constructor and then set it back to its original value after that allocation is complete.  Ideally, we wouldn&apos;t have to do this at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449563</commentid>
    <comment_count>1</comment_count>
      <attachid>103570</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-10 19:25:48 -0700</bug_when>
    <thetext>Created attachment 103570
Moved all allocation out of initialization lists in subclass of JSCell</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449809</commentid>
    <comment_count>2</comment_count>
      <attachid>103633</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-11 09:00:53 -0700</bug_when>
    <thetext>Created attachment 103633
Fixing build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449814</commentid>
    <comment_count>3</comment_count>
      <attachid>103633</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-11 09:16:05 -0700</bug_when>
    <thetext>Comment on attachment 103633
Fixing build errors

Attachment 103633 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9357258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449859</commentid>
    <comment_count>4</comment_count>
      <attachid>103642</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-11 10:12:37 -0700</bug_when>
    <thetext>Created attachment 103642
Fixing build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450777</commentid>
    <comment_count>5</comment_count>
      <attachid>103642</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-08-12 18:17:59 -0700</bug_when>
    <thetext>Comment on attachment 103642
Fixing build errors

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

The rest of this patch looks good. But let&apos;s get rid of that cast.

&gt; Source/WebCore/bindings/js/JSDOMBinding.h:91
&gt; -        return cacheDOMStructure(globalObject, WrapperClass::createStructure(exec-&gt;globalData(), WrapperClass::createPrototype(exec, globalObject)), &amp;WrapperClass::s_info);
&gt; +        return cacheDOMStructure(globalObject, WrapperClass::createStructure(exec-&gt;globalData(), JSC::JSValue((JSC::JSCell*)WrapperClass::createPrototype(exec, globalObject))), &amp;WrapperClass::s_info);

Let&apos;s find the missing #include that necessitated this cast. I&apos;d rather not add a cast like this if we don&apos;t have to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451097</commentid>
    <comment_count>6</comment_count>
      <attachid>103920</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-15 09:57:34 -0700</bug_when>
    <thetext>Created attachment 103920
Revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451101</commentid>
    <comment_count>7</comment_count>
      <attachid>103920</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-15 10:08:57 -0700</bug_when>
    <thetext>Comment on attachment 103920
Revised patch

Attachment 103920 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9379723</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451152</commentid>
    <comment_count>8</comment_count>
      <attachid>103928</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-15 11:06:09 -0700</bug_when>
    <thetext>Created attachment 103928
Fixing qt build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451245</commentid>
    <comment_count>9</comment_count>
      <attachid>103928</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-08-15 13:02:16 -0700</bug_when>
    <thetext>Comment on attachment 103928
Fixing qt build

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451274</commentid>
    <comment_count>10</comment_count>
      <attachid>103928</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 14:12:26 -0700</bug_when>
    <thetext>Comment on attachment 103928
Fixing qt build

Clearing flags on attachment: 103928

Committed r93059: &lt;http://trac.webkit.org/changeset/93059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451275</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 14:12:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451287</commentid>
    <comment_count>12</comment_count>
      <attachid>103952</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-15 14:23:51 -0700</bug_when>
    <thetext>Created attachment 103952
Moving all allocation in constructors into finishAllocations() method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451308</commentid>
    <comment_count>13</comment_count>
      <attachid>103958</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-15 14:50:26 -0700</bug_when>
    <thetext>Created attachment 103958
Fixing build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451351</commentid>
    <comment_count>14</comment_count>
      <attachid>103970</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-15 16:01:20 -0700</bug_when>
    <thetext>Created attachment 103970
Fixing build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451396</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-15 16:52:57 -0700</bug_when>
    <thetext>Reopening this bug because its description/goal is not yet complete.  Also opening other bugs to resolve this discrepancy a step at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470374</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-20 14:59:47 -0700</bug_when>
    <thetext>All subtasks complete, closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103570</attachid>
            <date>2011-08-10 19:25:48 -0700</date>
            <delta_ts>2011-08-11 09:00:18 -0700</delta_ts>
            <desc>Moved all allocation out of initialization lists in subclass of JSCell</desc>
            <filename>bug-65347-20110810192547.patch</filename>
            <type>text/plain</type>
            <size>36252</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTEtMDgtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZWZhY3RvciBKUyBvYmplY3RzIHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUg
bWV0aG9kcyByYXRoZXIgdGhhbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBhbnkgYWxsb2NhdGlvbiB0aGF0IHdhcyB0YWtp
bmcgcGxhY2UgaW4gdGhlIGluaXRpYWxpemF0aW9uIGxpc3RzIG9mIGFueSBvYmplY3RzIHRoYXQg
CisgICAgICAgIGluaGVyaXQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBmcm9tIEpTQ2VsbCBvdXQg
aW50byB0aGVpciBzdGF0aWMgY3JlYXRlIG1ldGhvZHMuICBUaGlzIGlzIAorICAgICAgICBwYXJ0
IG9mIGEgbGFyZ2VyIHJlZmFjdG9yaW5nIHRvIG1pbmltaXplIG9yIGVsaW1pbmF0ZSB0aGUgdXNl
IG9mIGNvbnN0cnVjdG9ycyBpbiB0aGVzZSAKKyAgICAgICAgY2xhc3Nlcy4KKworICAgICAgICAq
IEpTUnVuLmNwcDoKKyAgICAgICAgKEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2Jq
ZWN0KToKKyAgICAgICAgKiBKU1J1bi5oOgorICAgICAgICAoSlNHbHVlR2xvYmFsT2JqZWN0Ojpj
cmVhdGUpOgorCiAyMDExLTA4LTA5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIFBhcmVudENsYXNzIHR5cGVkZWYgaW4gYWxsIEpTQyBjbGFz
c2VzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAJKHJldmlzaW9uIDkyNzI1KQorKysgU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMz
LDEwIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xvYmFsT2JqZWN0OjpKU0ds
dWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNGbGFncyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cnVj
dHVyZSogdXNlck9iamVjdFN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykKICAgICA6IEpTR2xvYmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fZmxhZ3MoZmxhZ3MpCi0gICAg
LCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgVXNlck9iamVjdEltcDo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVj
dHVyZShnbG9iYWxEYXRhLCB1c2VyT2JqZWN0U3RydWN0dXJlKQogewogfQogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dEdsdWUvSlNSdW4uaAkocmV2aXNpb24gOTI3MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdEdsdWUv
SlNSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1N0cm9uZy5oPgogI2luY2x1ZGUgIkpTQmFzZS5oIgogI2luY2x1ZGUgIkpTVXRp
bHMuaCIKKyNpbmNsdWRlICJVc2VyT2JqZWN0SW1wLmgiCiAKIGNsYXNzIEpTR2x1ZUdsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgcHVibGljOgpAQCAtMzksMTQgKzQw
LDE1IEBAIGNsYXNzIEpTR2x1ZUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2IKIAogICAgICAg
ICBzdGF0aWMgSlNHbHVlR2xvYmFsT2JqZWN0KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncyA9IGtKU0ZsYWdOb25lKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNHbHVlR2xv
YmFsT2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlLCBmbGFncyk7CisgICAgICAgICAgICBTdHJ1Y3R1cmUqIHVzZXJPYmplY3RT
dHJ1Y3R1cmUgPSBVc2VyT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNO
dWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTR2x1ZUdsb2Jh
bE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNHbHVlR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVyZSwgZmxhZ3MpOwogICAgICAgICB9CiAKICAg
ICAgICAgSlNGbGFncyBGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KICAgICAgICAg
U3RydWN0dXJlKiB1c2VyT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV91c2VyT2Jq
ZWN0U3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBKU0dsdWVHbG9i
YWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNGbGFncyA9IGtKU0ZsYWdOb25l
KTsKKyAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSos
IFN0cnVjdHVyZSosIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CiAgICAgICAgIAogICAgICAgICBK
U0ZsYWdzIG1fZmxhZ3M7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1fdXNlck9iamVjdFN0
cnVjdHVyZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyODE0KQorKysgU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTEtMDgtMTAg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZh
Y3RvciBKUyBvYmplY3RzIHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUgbWV0aG9kcyByYXRo
ZXIgdGhhbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIE1vdmUgYW55IGFsbG9jYXRpb24g
dGhhdCB3YXMgdGFraW5nIHBsYWNlIGluIHRoZSBpbml0aWFsaXphdGlvbiBsaXN0cyBvZiBhbnkg
b2JqZWN0cyB0aGF0IAorICAgICAgICBpbmhlcml0IGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgZnJv
bSBKU0NlbGwgb3V0IGludG8gdGhlaXIgc3RhdGljIGNyZWF0ZSBtZXRob2RzLiAgVGhpcyBpcyAK
KyAgICAgICAgcGFydCBvZiBhIGxhcmdlciByZWZhY3RvcmluZyB0byBtaW5pbWl6ZSBvciBlbGlt
aW5hdGUgdGhlIHVzZSBvZiBjb25zdHJ1Y3RvcnMgaW4gdGhlc2UgCisgICAgICAgIGNsYXNzZXMu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldERPTVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVPYmplY3Q6OkNSdW50aW1lT2Jq
ZWN0KToKKyAgICAgICAgKiBicmlkZ2UvYy9DUnVudGltZU9iamVjdC5oOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6Q1J1bnRpbWVPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogYnJpZGdlL2Mv
Y19pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVudGltZU1ldGhvZDo6
Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lTWV0aG9kOjpDUnVudGlt
ZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcDoK
KyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9kOjpjcmVhdGUpOgorICAgICAgICAoSmF2YVJ1bnRp
bWVNZXRob2Q6OkphdmFSdW50aW1lTWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9K
YXZhUnVudGltZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGlt
ZU9iamVjdDo6SmF2YVJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0ph
dmFSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGltZU9i
amVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5o
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqQ1J1bnRpbWVPYmplY3Q6OmNyZWF0ZSk6Cisg
ICAgICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QubW06CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpPYmpDUnVudGltZU9iamVjdDo6T2JqQ1J1bnRpbWVPYmplY3QpOgorICAgICAg
ICAqIGJyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpDUnVudGltZU1l
dGhvZDo6Y3JlYXRlKToKKyAgICAgICAgKE9iakNSdW50aW1lTWV0aG9kOjpPYmpDUnVudGltZU1l
dGhvZCk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmNyZWF0ZSk6CisgICAgICAgICog
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2Jq
Y0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXApOgorICAgICAgICAqIGJy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRp
bWVPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVPYmpl
Y3Q6OlF0UnVudGltZU9iamVjdCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRp
bWUuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRQaXhtYXBSdW50aW1lT2JqZWN0Ojpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRQaXhtYXBSdW50aW1lT2JqZWN0OjpR
dFBpeG1hcFJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGhvZDo6UXRSdW50aW1lTWV0
aG9kKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVu
dGltZU1ldGFNZXRob2QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZDo6UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZCk6CisgICAgICAgICogYnJpZGdl
L3F0L3F0X3J1bnRpbWUuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFN
ZXRob2Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kOjpjcmVhdGUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoK
KyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpSdW50aW1lQXJyYXkpOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRl
KToKKwogMjAxMS0wOC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBTVkdBRWxlbWVudCBjaGVjayBmb3IgaW50ZXJuYWwgbm9uLXZpZXcgYW5jaG9y
cyBpcyBpbnNpZGUgRU5BQkxFKFNWR19BTklNQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkocmV2aXNpb24gOTI3MjUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNyAr
ODgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IGdldENhY2hlZERPTVN0cnVjdHVyZShnbG9iYWxPYmplY3QsICZX
cmFwcGVyQ2xhc3M6OnNfaW5mbykpCiAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlOwotICAg
ICAgICByZXR1cm4gY2FjaGVET01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xhc3M6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIFdyYXBwZXJDbGFzczo6Y3JlYXRl
UHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCkpLCAmV3JhcHBlckNsYXNzOjpzX2luZm8pOwor
ICAgICAgICByZXR1cm4gY2FjaGVET01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xh
c3M6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIEpTQzo6SlNWYWx1ZSgoSlND
OjpKU0NlbGwqKVdyYXBwZXJDbGFzczo6Y3JlYXRlUHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVj
dCkpKSwgJldyYXBwZXJDbGFzczo6c19pbmZvKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjbGFz
cyBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6OlN0cnVjdHVyZSogZGVwcmVjYXRlZEdldERPTVN0
cnVjdHVyZShKU0M6OkV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5jcHAJKHJldmlzaW9uIDkyNzI1KQorKysgU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMCArMzcsMTAgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9
IHsgIlJ1bnRpbWVBcnJheSIsICZKU0FycmF5OjpzX2luZm8sIDAsIDAgfTsKIAotUnVudGltZUFy
cmF5OjpSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5
KQorUnVudGltZUFycmF5OjpSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgQmluZGluZ3M6OkFycmF5KiBhcnJheSkKICAgICAvLyBGSVhNRTogZGVwcmVj
YXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBn
bG9iYWwgb2JqZWN0CiAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwg
b2JqZWN0IGZvciAiYXJyYXkiLgotICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIGRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UnVudGltZUFycmF5PihleGVjKSkKKyAgICA6IEpTQXJy
YXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgQVNTRVJUKGluaGVyaXRz
KCZzX2luZm8pKTsKICAgICBzZXRTdWJjbGFzc0RhdGEoYXJyYXkpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCShyZXZpc2lvbiA5MjcyNSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgUlVOVElNRV9BUlJBWV9IXwogCiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgiCisj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSA8cnVudGltZS9BcnJheVByb3RvdHlw
ZS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM3LDcgKzM4LDggQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFJ1bnRpbWVBcnJheSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgQmluZGluZ3M6OkFy
cmF5KiBhcnJheSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxSdW50
aW1lQXJyYXk+KCpleGVjLT5oZWFwKCkpKSBSdW50aW1lQXJyYXkoZXhlYywgYXJyYXkpOworICAg
ICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmU8UnVudGltZUFycmF5PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2Nh
dGVDZWxsPFJ1bnRpbWVBcnJheT4oKmV4ZWMtPmhlYXAoKSkpIFJ1bnRpbWVBcnJheShleGVjLCBk
b21TdHJ1Y3R1cmUsIGFycmF5KTsKICAgICB9CiAKICAgICB0eXBlZGVmIEJpbmRpbmdzOjpBcnJh
eSBCaW5kaW5nc0FycmF5OwpAQCAtNzMsNyArNzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTQXJyYXk6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgotICAgIFJ1bnRpbWVBcnJheShFeGVjU3RhdGUqLCBCaW5kaW5nczo6QXJy
YXkqKTsKKyAgICBSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgQmluZGluZ3M6
OkFycmF5Kik7CiAgICAgc3RhdGljIEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpT
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKICAgICBzdGF0aWMgSlNWYWx1ZSBpbmRleEdldHRl
cihFeGVjU3RhdGUqLCBKU1ZhbHVlLCB1bnNpZ25lZCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcAkocmV2aXNpb24gOTI3MjUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDEwICszNyw4IEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKIGNvbnN0IENsYXNzSW5mbyBD
UnVudGltZU9iamVjdDo6c19pbmZvID0geyAiQ1J1bnRpbWVPYmplY3QiLCAmUnVudGltZU9iamVj
dDo6c19pbmZvLCAwLCAwIH07CiAKLUNSdW50aW1lT2JqZWN0OjpDUnVudGltZU9iamVjdChFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8Q0lu
c3RhbmNlPiBpbnN0YW5jZSkKLSAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVy
ZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAg
Ly8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCi0g
ICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViQ29yZTo6ZGVwcmVjYXRl
ZEdldERPTVN0cnVjdHVyZTxDUnVudGltZU9iamVjdD4oZXhlYyksIGluc3RhbmNlKQorQ1J1bnRp
bWVPYmplY3Q6OkNSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8Q0luc3RhbmNl
PiBpbnN0YW5jZSkKKyAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIGluc3RhbmNlKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgJKHJldmlzaW9uIDky
NzI1KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCiAKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJydW50aW1lX29iamVj
dC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQxLDcgKzQyLDEwIEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBDUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lT2JqZWN0PigqZXhl
Yy0+aGVhcCgpKSkgQ1J1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnN0YW5jZSk7
CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHBy
b3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAgICAgLy8gV2UgbmVl
ZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCisgICAgICAgIFN0
cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVy
ZTxDUnVudGltZU9iamVjdD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxDUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIENSdW50aW1lT2JqZWN0KGV4ZWMsIGds
b2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBpbnN0YW5jZSk7CiAgICAgfQogCiAgICAgdmlydHVh
bCB+Q1J1bnRpbWVPYmplY3QoKTsKQEAgLTU2LDcgKzYwLDcgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBDUnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCos
IFBhc3NSZWZQdHI8Q0luc3RhbmNlPik7CisgICAgQ1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPENJbnN0YW5jZT4pOwogfTsK
IAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAJKHJldmlzaW9u
IDkyNzI1KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExNSw3ICsxMTUsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIENSdW50
aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlz
dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxDUnVudGltZU1ldGhv
ZD4oKmV4ZWMtPmhlYXAoKSkpIENSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFt
ZSwgbGlzdCk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVz
ZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAgICAg
Ly8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCisg
ICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERP
TVN0cnVjdHVyZTxDUnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFs
bG9jYXRlQ2VsbDxDUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIENSdW50aW1lTWV0aG9k
KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBuYW1lLCBsaXN0KTsKICAgICB9CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTEyNiwxMCArMTI5LDggQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiBwcml2YXRlOgotICAgIENSdW50
aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCi0gICAg
ICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlw
ZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAgICAgLy8gV2UgbmVlZCB0byBw
YXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCi0gICAgICAgIDogUnVudGlt
ZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1
Y3R1cmU8Q1J1bnRpbWVNZXRob2Q+KGV4ZWMpLCBuYW1lLCBsaXN0KQorICAgIENSdW50aW1lTWV0
aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RM
aXN0JiBsaXN0KQorICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dHJ1Y3R1cmUsIG5hbWUsIGxpc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJ
bnN0YW5jZUpTQy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9q
c2MvSmF2YUluc3RhbmNlSlNDLmNwcAkocmV2aXNpb24gOTI3MjUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjAsNyArMTIwLDEwIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKYXZhUnVudGltZU1ldGhvZCog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCiAgICAgewot
ICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVNZXRob2Q+KCpleGVj
LT5oZWFwKCkpKSBKYXZhUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIG5hbWUsIGxp
c3QpOworICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRo
ZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8vIFdl
IG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgorICAgICAg
ICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1
Y3R1cmU8SmF2YVJ1bnRpbWVNZXRob2Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8SmF2YVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBKYXZhUnVudGltZU1l
dGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwgbGlzdCk7CiAgICAg
fQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMzEsMTAgKzEzNCw4IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToKLSAgICBK
YXZhUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0
KQotICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBw
cm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgICAgIC8vIFdlIG5l
ZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgICAgICA6
IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlPEphdmFSdW50aW1lTWV0aG9kPihleGVjKSwgbmFtZSwgbGlzdCkKKyAgICBK
YXZhUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5k
aW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBsaXN0KQogICAgIHsKICAgICAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwCShyZXZpc2lvbiA5MjcyNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzUsMTAgKzM1LDggQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAog
Y29uc3QgQ2xhc3NJbmZvIEphdmFSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJKYXZhUnVudGlt
ZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAotSmF2YVJ1bnRpbWVP
YmplY3Q6OkphdmFSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+IGluc3RhbmNlKQotICAgIC8v
IEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYg
b2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhl
IHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KLSAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPEphdmFSdW50
aW1lT2JqZWN0PihleGVjKSwgaW5zdGFuY2UpCitKYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRp
bWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+IGluc3RhbmNlKQor
ICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFu
Y2UpCiB7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAkocmV2aXNp
b24gOTI3MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEphdmFSdW50
aW1lT2JqZWN0X2gKICNkZWZpbmUgSmF2YVJ1bnRpbWVPYmplY3RfaAogCisjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAicnVudGltZV9vYmplY3QuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC0zOSw3ICs0MCwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSmF2YVJ1bnRpbWVP
YmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFBhc3NSZWZQdHI8SmF2YUluc3RhbmNlPiBqYXZhSW5zdCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkp
IEphdmFSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgamF2YUluc3QpOworICAgICAg
ICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUg
b2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFz
cyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgorICAgICAgICBTdHJ1Y3R1cmUq
IGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1
bnRpbWVPYmplY3Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SmF2
YVJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKYXZhUnVudGltZU9iamVjdChleGVjLCBn
bG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgamF2YUluc3QpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgfkphdmFSdW50aW1lT2JqZWN0KCk7CkBAIC01NCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgSmF2YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4pOworICAgIEphdmFSdW50aW1lT2JqZWN0
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxKYXZh
SW5zdGFuY2U+KTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09i
akNSdW50aW1lT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvT2JqQ1J1bnRpbWVPYmplY3QuaAkocmV2aXNpb24gOTI3MjUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIE9iakNSdW50aW1lT2JqZWN0X2gKICNkZWZpbmUgT2JqQ1J1bnRp
bWVPYmplY3RfaAogCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAicnVudGlt
ZV9vYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zOSw3ICs0MCwxMCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgT2JqQ1J1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8T2JqY0luc3RhbmNlPiBp
bnN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPE9iakNSdW50aW1l
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgT2JqQ1J1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBpbnN0KTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUg
dXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAg
ICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4K
KyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlPE9iakNSdW50aW1lT2JqZWN0PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPE9iakNSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgT2JqQ1J1
bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3QpOwogICAg
IH0KIAogICAgIHZpcnR1YWwgfk9iakNSdW50aW1lT2JqZWN0KCk7CkBAIC01NCw3ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgT2JqQ1J1bnRpbWVPYmplY3QoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPE9iamNJbnN0YW5jZT4pOworICAgIE9i
akNSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
UGFzc1JlZlB0cjxPYmpjSW5zdGFuY2U+KTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCShyZXZpc2lvbiA5MjcyNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSwxMCArMzUsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBjb25z
dCBDbGFzc0luZm8gT2JqQ1J1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIk9iakNSdW50aW1lT2Jq
ZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCi1PYmpDUnVudGltZU9iamVj
dDo6T2JqQ1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQYXNzUmVmUHRyPE9iamNJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgLy8gRklY
TUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0
aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmln
aHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9i
YWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2JqQ1J1bnRpbWVP
YmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK09iakNSdW50aW1lT2JqZWN0OjpPYmpDUnVudGltZU9i
amVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPE9iamNJbnN0YW5jZT4gaW5zdGFuY2UpCisgICAg
OiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkK
IHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCShyZXZpc2lvbiA5MjcyNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE3NCw3ICsxNzQsMTAgQEAgY2xhc3MgT2JqQ1J1bnRpbWVNZXRob2QgOiBwdWJsaWMgUnVu
dGltZQogcHVibGljOgogICAgIHN0YXRpYyBPYmpDUnVudGltZU1ldGhvZCogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCiAgICAgewotICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8T2JqQ1J1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBP
YmpDUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIG5hbWUsIGxpc3QpOworICAgICAg
ICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUg
b2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFz
cyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgorICAgICAgICBTdHJ1Y3R1cmUq
IGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2JqQ1J1
bnRpbWVNZXRob2Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8T2Jq
Q1J1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBPYmpDUnVudGltZU1ldGhvZChleGVjLCBn
bG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwgbGlzdCk7CiAgICAgfQogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xODUsMTAgKzE4OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToKLSAgICBPYmpDUnVudGltZU1l
dGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAgICAv
LyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2Zm
IG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBp
biB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgICAgICA6IFJ1bnRpbWVNZXRo
b2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
PE9iakNSdW50aW1lTWV0aG9kPihleGVjKSwgbmFtZSwgbGlzdCkKKyAgICBPYmpDUnVudGltZU1l
dGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9k
TGlzdCYgbGlzdCkKKyAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlLCBuYW1lLCBsaXN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZz
X2luZm8pKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUuaAkocmV2aXNpb24gOTI3MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBL
SlNfQklORElOR1NfT0JKQ19SVU5USU1FX0gKIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgorI2lu
Y2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIm9iamNfaGVhZGVyLmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0Lmg+CkBAIC05Niw3ICs5Nyw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBPYmpjRmFsbGJhY2tPYmplY3RJbXAqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIE9iamNJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxPYmpjRmFsbGJhY2tPYmplY3RJbXA+KCpleGVjLT5oZWFwKCkpKSBPYmpjRmFsbGJhY2tP
YmplY3RJbXAoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnN0YW5jZSwgcHJvcGVydHlOYW1lKTsKKyAg
ICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90
eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAgICBTdHJ1Y3R1cmUqIGRv
bVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2JqY0ZhbGxi
YWNrT2JqZWN0SW1wPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPE9i
amNGYWxsYmFja09iamVjdEltcD4oKmV4ZWMtPmhlYXAoKSkpIE9iamNGYWxsYmFja09iamVjdElt
cChnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFuY2UsIHByb3BlcnR5TmFtZSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0xMTQsNyArMTE3
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBPYmpjRmFsbGJhY2tPYmplY3RJ
bXAoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpOworICAgIE9iamNGYWxsYmFja09iamVjdEltcChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwog
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5t
bQkocmV2aXNpb24gOTI3MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5Nyw5ICsxOTcsOCBAQCB1bnNpZ25lZCBpbnQg
T2JqY0FycmF5OjpnZXRMZW5ndGgoKSBjb25zCiAKIGNvbnN0IENsYXNzSW5mbyBPYmpjRmFsbGJh
Y2tPYmplY3RJbXA6OnNfaW5mbyA9IHsgIk9iamNGYWxsYmFja09iamVjdCIsICZKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCi1PYmpjRmFsbGJhY2tPYmplY3RJbXA6
Ok9iamNGYWxsYmFja09iamVjdEltcChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIE9iamNJbnN0YW5jZSogaSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKQotICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHBy
b3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICA6IEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2Jq
Y0ZhbGxiYWNrT2JqZWN0SW1wPihleGVjKSkKK09iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0Zh
bGxiYWNrT2JqZWN0SW1wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBPYmpjSW5zdGFuY2UqIGksIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKKyAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSkKICAgICAsIF9pbnN0YW5jZShpKQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogewpJbmRl
eDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCShyZXZpc2lvbiA5Mjcy
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDcgKzU0LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFF0UnVudGltZU9i
amVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgewotICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgUXRSdW50
aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5zdGFuY2UpOworICAgICAgICBTdHJ1Y3R1
cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRS
dW50aW1lT2JqZWN0PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0
UnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGltZU9iamVjdChleGVjLCBnbG9i
YWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFuY2UpOwogICAgIH0KICAgICAKICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTc2LDEzICs3NywxMyBAQCBwcm90ZWN0ZWQ6
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gUnVudGltZU9iamVj
dDo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuOwogCiBwcml2YXRlOgot
ICAgIFF0UnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFBhc3NSZWZQ
dHI8SW5zdGFuY2U+KTsKKyAgICBRdFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CiB9OwogCiBjb25zdCBD
bGFzc0luZm8gUXRSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJRdFJ1bnRpbWVPYmplY3QiLCAm
UnVudGltZU9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAKLVF0UnVudGltZU9iamVjdDo6UXRSdW50
aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMs
IGdsb2JhbE9iamVjdCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFJ1bnRp
bWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK1F0UnVudGltZU9iamVjdDo6UXRSdW50aW1lT2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQorICAgIDogUnVu
dGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5j
cHAJKHJldmlzaW9uIDkyNzI1KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1h
cHJ1bnRpbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAi
SFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIklu
dFNpemUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSW1h
Z2VEYXRhLmgiCkBAIC0yMDIsNyArMjAzLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFF0UGl4
bWFwUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgewotICAg
ICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRQaXhtYXBSdW50aW1lT2JqZWN0PigqZXhl
Yy0+aGVhcCgpKSkgUXRQaXhtYXBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5z
dGFuY2UpOworICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRQaXhtYXBSdW50aW1lT2JqZWN0PihleGVjKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UGl4bWFwUnVudGltZU9iamVjdD4oKmV4ZWMt
PmhlYXAoKSkpIFF0UGl4bWFwUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0
cnVjdHVyZSwgaW5zdGFuY2UpOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8g
c19pbmZvOwpAQCAtMjE2LDExICsyMTgsMTEgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IFJ1bnRpbWVPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbjsKIAogcHJpdmF0ZToKLSAgICBRdFBpeG1hcFJ1bnRp
bWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPEluc3RhbmNl
Pik7CisgICAgUXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOwogfTsKIAotUXRQaXhtYXBSdW50
aW1lT2JqZWN0OjpRdFBpeG1hcFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSkKLSAg
ICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVk
R2V0RE9NU3RydWN0dXJlPFF0UGl4bWFwUnVudGltZU9iamVjdD4oZXhlYyksIGluc3RhbmNlKQor
UXRQaXhtYXBSdW50aW1lT2JqZWN0OjpRdFBpeG1hcFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAkocmV2aXNpb24gOTI3MjUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
MDYsOCArMTAwNiw4IEBAIEpTVmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1ZShFeGVjU3RhdGUK
IAogY29uc3QgQ2xhc3NJbmZvIFF0UnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUXRSdW50aW1l
TWV0aG9kIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwgMCB9OwogCi1RdFJ1bnRpbWVN
ZXRob2Q6OlF0UnVudGltZU1ldGhvZChRdFJ1bnRpbWVNZXRob2REYXRhKiBkZCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBp
bnN0KQotICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCksIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1l
TWV0aG9kPihleGVjKSwgaWRlbnQpCitRdFJ1bnRpbWVNZXRob2Q6OlF0UnVudGltZU1ldGhvZChR
dFJ1bnRpbWVNZXRob2REYXRhKiBkZCwgRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5z
dCkKKyAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJ1Y3R1cmUsIGlkZW50KQogICAgICwgZF9wdHIoZGQpCiB7
CiAgICAgUVdfRChRdFJ1bnRpbWVNZXRob2QpOwpAQCAtMTQyMCw4ICsxNDIwLDggQEAgc3RhdGlj
IGludCBmaW5kU2lnbmFsSW5kZXgoY29uc3QgUU1ldGFPYgogICAgIHJldHVybiBpbmRleDsKIH0K
IAotUXRSdW50aW1lTWV0YU1ldGhvZDo6UXRSdW50aW1lTWV0YU1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3Qs
IGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0
ZSkKLSAgICA6IFF0UnVudGltZU1ldGhvZCAobmV3IFF0UnVudGltZU1ldGFNZXRob2REYXRhKCks
IGV4ZWMsIGlkZW50LCBpbnN0KQorUXRSdW50aW1lTWV0YU1ldGhvZDo6UXRSdW50aW1lTWV0YU1l
dGhvZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0
IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpCisgICAgOiBRdFJ1bnRp
bWVNZXRob2QgKG5ldyBRdFJ1bnRpbWVNZXRhTWV0aG9kRGF0YSgpLCBleGVjLCBzdHJ1Y3R1cmUs
IGlkZW50LCBpbnN0KQogewogICAgIFFXX0QoUXRSdW50aW1lTWV0YU1ldGhvZCk7CiAgICAgZC0+
bV9zaWduYXR1cmUgPSBzaWduYXR1cmU7CkBAIC0xNTY0LDggKzE1NjQsOCBAQCBKU1ZhbHVlIFF0
UnVudGltZU1ldGFNZXRob2Q6OmRpc2Nvbm5lY3RHCiAKIFFNdWx0aU1hcDxRT2JqZWN0KiwgUXRD
b25uZWN0aW9uT2JqZWN0Kj4gUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y29ubmVjdGlvbnM7
CiAKLVF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgYm9vbCBpc0Nvbm5lY3Qs
IFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5
JiBzaWduYXR1cmUpCi0gICAgOiBRdFJ1bnRpbWVNZXRob2QgKG5ldyBRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kRGF0YSgpLCBleGVjLCBpZGVudCwgaW5zdCkKK1F0UnVudGltZUNvbm5lY3Rpb25N
ZXRob2Q6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIGJvb2wgaXNDb25uZWN0LCBQ
YXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYg
c2lnbmF0dXJlKQorICAgIDogUXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50aW1lQ29ubmVjdGlv
bk1ldGhvZERhdGEoKSwgZXhlYywgc3RydWN0dXJlLCBpZGVudCwgaW5zdCkKIHsKICAgICBRV19E
KFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfcnVudGltZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmgJKHJldmlzaW9uIDkyNzI1KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3J1bnRpbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDE4ICsxNDUsMTggQEAgcHJv
dGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBJbnRl
cm5hbEZ1bmN0aW9uOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW47CiAK
ICAgICBRdFJ1bnRpbWVNZXRob2REYXRhICpkX2Z1bmMoKSBjb25zdCB7cmV0dXJuIGRfcHRyO30K
LSAgICBRdFJ1bnRpbWVNZXRob2QoUXRSdW50aW1lTWV0aG9kRGF0YSAqZGQsIEV4ZWNTdGF0ZSAq
ZXhlYywgY29uc3QgSWRlbnRpZmllciAmbiwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0KTsK
KyAgICBRdFJ1bnRpbWVNZXRob2QoUXRSdW50aW1lTWV0aG9kRGF0YSAqZGQsIEV4ZWNTdGF0ZSAq
LCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyICZuYW1lLCBQYXNzUmVmUHRyPFF0SW5zdGFu
Y2U+KTsKICAgICBRdFJ1bnRpbWVNZXRob2REYXRhICpkX3B0cjsKIH07CiAKLWNsYXNzIFF0UnVu
dGltZU1ldGFNZXRob2QgOiBwdWJsaWMgUXRSdW50aW1lTWV0aG9kCi17CitjbGFzcyBRdFJ1bnRp
bWVNZXRhTWV0aG9kIDogcHVibGljIFF0UnVudGltZU1ldGhvZCB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBRdFJ1bnRpbWVNZXRob2QgQmFzZTsKIAogICAgIHN0YXRpYyBRdFJ1bnRpbWVNZXRhTWV0
aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuLCBQYXNzUmVm
UHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0
dXJlLCBib29sIGFsbG93UHJpdmF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxRdFJ1bnRpbWVNZXRhTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lTWV0
YU1ldGhvZChleGVjLCBuLCBpbnN0LCBpbmRleCwgc2lnbmF0dXJlLCBhbGxvd1ByaXZhdGUpOwor
ICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRE
T01TdHJ1Y3R1cmU8UXRSdW50aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPFF0UnVudGltZU1ldGFNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRp
bWVNZXRhTWV0aG9kKGV4ZWMsIGRvbVN0cnVjdHVyZSwgbiwgaW5zdCwgaW5kZXgsIHNpZ25hdHVy
ZSwgYWxsb3dQcml2YXRlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CkBA
IC0xNjksNyArMTY5LDcgQEAgcHJvdGVjdGVkOgogICAgIFF0UnVudGltZU1ldGFNZXRob2REYXRh
KiBkX2Z1bmMoKSBjb25zdCB7cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRSdW50aW1lTWV0YU1l
dGhvZERhdGEqPihkX3B0cik7fQogCiBwcml2YXRlOgotICAgIFF0UnVudGltZU1ldGFNZXRob2Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4sIGlu
dCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYsIGJvb2wgYWxsb3dQcml2YXRlKTsKKyAgICBRdFJ1
bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmLCBi
b29sIGFsbG93UHJpdmF0ZSk7CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENh
bGxEYXRhJik7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChF
eGVjU3RhdGUqIGV4ZWMpOwpAQCAtMTg1LDcgKzE4NSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBuLCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBp
bnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kPigq
ZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChleGVjLCBuLCBpc0Nvbm5l
Y3QsIGluc3QsIGluZGV4LCBzaWduYXR1cmUpOworICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVj
dHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lTWV0aG9k
PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZUNvbm5l
Y3Rpb25NZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKGV4
ZWMsIGRvbVN0cnVjdHVyZSwgbiwgaXNDb25uZWN0LCBpbnN0LCBpbmRleCwgc2lnbmF0dXJlKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CkBAIC0xOTYsNyArMTk3LDcgQEAg
cHJvdGVjdGVkOgogICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKiBkX2Z1bmMoKSBj
b25zdCB7cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERh
dGEqPihkX3B0cik7fQogCiBwcml2YXRlOgotICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRy
PFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmKTsKKyAgICBRdFJ1bnRp
bWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZp
ZXImLCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBj
b25zdCBRQnl0ZUFycmF5Jik7CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENh
bGxEYXRhJik7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChF
eGVjU3RhdGUqIGV4ZWMpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4MTQpCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
OSBAQAorMjAxMS0wOC0xMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZmFjdG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4gc3RhdGljIGNy
ZWF0ZSBtZXRob2RzIHJhdGhlciB0aGFuIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzNDcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGFueSBhbGxvY2F0aW9uIHRoYXQgd2Fz
IHRha2luZyBwbGFjZSBpbiB0aGUgaW5pdGlhbGl6YXRpb24gbGlzdHMgb2YgYW55IG9iamVjdHMg
dGhhdCAKKyAgICAgICAgaW5oZXJpdCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGZyb20gSlNDZWxs
IG91dCBpbnRvIHRoZWlyIHN0YXRpYyBjcmVhdGUgbWV0aG9kcy4gIFRoaXMgaXMgCisgICAgICAg
IHBhcnQgb2YgYSBsYXJnZXIgcmVmYWN0b3JpbmcgdG8gbWluaW1pemUgb3IgZWxpbWluYXRlIHRo
ZSB1c2Ugb2YgY29uc3RydWN0b3JzIGluIHRoZXNlIAorICAgICAgICBjbGFzc2VzLgorCisgICAg
ICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYktpdDo6
UHJveHlSdW50aW1lTWV0aG9kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRp
bWVNZXRob2Q6OlByb3h5UnVudGltZU1ldGhvZCk6CisKIDIwMTEtMDgtMTAgIERhdmlkIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NjAwNApJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCShyZXZpc2lvbiA5MjcyNSkKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE4Myw3ICsxODMsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFByb3h5UnVudGltZU1l
dGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCiAg
ICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lTWV0aG9k
PigqZXhlYy0+aGVhcCgpKSkgUHJveHlSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwg
bmFtZSwgbGlzdCk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
IHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAg
ICAgLy8gZXhlYy1nbG9iYWxEYXRhKCkgaXMgYWxzbyBsaWtlbHkgd3JvbmcuCisgICAgICAgIFN0
cnVjdHVyZSogZG9tU3RydWN0dXJlID0gZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxQcm94eVJ1
bnRpbWVNZXRob2Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UHJv
eHlSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUHJveHlSdW50aW1lTWV0aG9kKGV4ZWMs
IGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBuYW1lLCBsaXN0KTsKICAgICB9CiAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTE5NCwxMCArMTk3LDggQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiBwcml2YXRlOgotICAgIFByb3h5UnVudGlt
ZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAg
ICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUg
b2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgICAgIC8vIGV4ZWMtZ2xvYmFsRGF0
YSgpIGlzIGFsc28gbGlrZWx5IHdyb25nLgotICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFByb3h5UnVudGltZU1ldGhv
ZD4oZXhlYyksIG5hbWUsIGxpc3QpCisgICAgUHJveHlSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQorICAg
ICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUs
IGxpc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103633</attachid>
            <date>2011-08-11 09:00:53 -0700</date>
            <delta_ts>2011-08-11 10:12:34 -0700</delta_ts>
            <desc>Fixing build errors</desc>
            <filename>bug-65347-20110811090045.patch</filename>
            <type>text/plain</type>
            <size>28993</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4MTgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTEtMDgtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZWZhY3RvciBKUyBvYmplY3RzIHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUg
bWV0aG9kcyByYXRoZXIgdGhhbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBhbnkgYWxsb2NhdGlvbiB0aGF0IHdhcyB0YWtp
bmcgcGxhY2UgaW4gdGhlIGluaXRpYWxpemF0aW9uIGxpc3RzIG9mIGFueSBvYmplY3RzIHRoYXQg
CisgICAgICAgIGluaGVyaXQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBmcm9tIEpTQ2VsbCBvdXQg
aW50byB0aGVpciBzdGF0aWMgY3JlYXRlIG1ldGhvZHMuICBUaGlzIGlzIAorICAgICAgICBwYXJ0
IG9mIGEgbGFyZ2VyIHJlZmFjdG9yaW5nIHRvIG1pbmltaXplIG9yIGVsaW1pbmF0ZSB0aGUgdXNl
IG9mIGNvbnN0cnVjdG9ycyBpbiB0aGVzZSAKKyAgICAgICAgY2xhc3Nlcy4KKworICAgICAgICAq
IEpTUnVuLmNwcDoKKyAgICAgICAgKEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2Jq
ZWN0KToKKyAgICAgICAgKiBKU1J1bi5oOgorICAgICAgICAoSlNHbHVlR2xvYmFsT2JqZWN0Ojpj
cmVhdGUpOgorCiAyMDExLTA4LTA5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIFBhcmVudENsYXNzIHR5cGVkZWYgaW4gYWxsIEpTQyBjbGFz
c2VzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAJKHJldmlzaW9uIDkyODE4KQorKysgU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMz
LDEwIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xvYmFsT2JqZWN0OjpKU0ds
dWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNGbGFncyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cnVj
dHVyZSogdXNlck9iamVjdFN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykKICAgICA6IEpTR2xvYmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fZmxhZ3MoZmxhZ3MpCi0gICAg
LCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgVXNlck9iamVjdEltcDo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVj
dHVyZShnbG9iYWxEYXRhLCB1c2VyT2JqZWN0U3RydWN0dXJlKQogewogfQogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dEdsdWUvSlNSdW4uaAkocmV2aXNpb24gOTI4MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdEdsdWUv
SlNSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1N0cm9uZy5oPgogI2luY2x1ZGUgIkpTQmFzZS5oIgogI2luY2x1ZGUgIkpTVXRp
bHMuaCIKKyNpbmNsdWRlICJVc2VyT2JqZWN0SW1wLmgiCiAKIGNsYXNzIEpTR2x1ZUdsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgcHVibGljOgpAQCAtMzksMTQgKzQw
LDE1IEBAIGNsYXNzIEpTR2x1ZUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2IKIAogICAgICAg
ICBzdGF0aWMgSlNHbHVlR2xvYmFsT2JqZWN0KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncyA9IGtKU0ZsYWdOb25lKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNHbHVlR2xv
YmFsT2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlLCBmbGFncyk7CisgICAgICAgICAgICBTdHJ1Y3R1cmUqIHVzZXJPYmplY3RT
dHJ1Y3R1cmUgPSBVc2VyT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNO
dWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTR2x1ZUdsb2Jh
bE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNHbHVlR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVyZSwgZmxhZ3MpOwogICAgICAgICB9CiAKICAg
ICAgICAgSlNGbGFncyBGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KICAgICAgICAg
U3RydWN0dXJlKiB1c2VyT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV91c2VyT2Jq
ZWN0U3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBKU0dsdWVHbG9i
YWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNGbGFncyA9IGtKU0ZsYWdOb25l
KTsKKyAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSos
IFN0cnVjdHVyZSosIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CiAgICAgICAgIAogICAgICAgICBK
U0ZsYWdzIG1fZmxhZ3M7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1fdXNlck9iamVjdFN0
cnVjdHVyZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CShyZXZpc2lvbiA5MjgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICB7CiAgICAgICAgIGlmIChKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2V0Q2Fj
aGVkRE9NU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgJldyYXBwZXJDbGFzczo6c19pbmZvKSkKICAg
ICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmU7Ci0gICAgICAgIHJldHVybiBjYWNoZURPTVN0cnVj
dHVyZShnbG9iYWxPYmplY3QsIFdyYXBwZXJDbGFzczo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgV3JhcHBlckNsYXNzOjpjcmVhdGVQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KSksICZXcmFwcGVyQ2xhc3M6OnNfaW5mbyk7CisgICAgICAgIHJldHVybiBjYWNoZURPTVN0
cnVjdHVyZShnbG9iYWxPYmplY3QsIFdyYXBwZXJDbGFzczo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgSlNDOjpKU1ZhbHVlKChKU0M6OkpTQ2VsbCopV3JhcHBlckNsYXNzOjpj
cmVhdGVQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0KSkpLCAmV3JhcHBlckNsYXNzOjpzX2lu
Zm8pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcz4gaW5saW5lIEpT
Qzo6U3RydWN0dXJlKiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlKEpTQzo6RXhlY1N0YXRlKiBl
eGVjKQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAkocmV2aXNp
b24gOTI4MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDEwICszNywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3Qg
Q2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGltZUFycmF5IiwgJkpTQXJy
YXk6OnNfaW5mbywgMCwgMCB9OwogCi1SdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3Rh
dGUqIGV4ZWMsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCitSdW50aW1lQXJyYXk6OlJ1bnRpbWVB
cnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJy
YXkqIGFycmF5KQogICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMg
dGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKICAgICAvLyBXZSBu
ZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJhcnJheSIuCi0gICAg
OiBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxS
dW50aW1lQXJyYXk+KGV4ZWMpKQorICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIHN0
cnVjdHVyZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNs
YXNzRGF0YShhcnJheSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgJ
KHJldmlzaW9uIDkyODE4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBSVU5USU1FX0FSUkFZ
X0hfCiAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0FycmF5UHJvdG90eXBlLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtMzcsNyArMzgsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUnVudGltZUFycmF5KiBjcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFJ1bnRpbWVBcnJheT4oKmV4ZWMtPmhlYXAoKSkp
IFJ1bnRpbWVBcnJheShleGVjLCBhcnJheSk7CisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0
dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxSdW50aW1lQXJyYXk+KGV4
ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UnVudGltZUFycmF5PigqZXhl
Yy0+aGVhcCgpKSkgUnVudGltZUFycmF5KGV4ZWMsIGRvbVN0cnVjdHVyZSwgYXJyYXkpOwogICAg
IH0KIAogICAgIHR5cGVkZWYgQmluZGluZ3M6OkFycmF5IEJpbmRpbmdzQXJyYXk7CkBAIC03Myw3
ICs3NSw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6Ci0gICAgUnVudGlt
ZUFycmF5KEV4ZWNTdGF0ZSosIEJpbmRpbmdzOjpBcnJheSopOworICAgIFJ1bnRpbWVBcnJheShF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6QXJyYXkqKTsKICAgICBzdGF0aWMgSlNW
YWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYp
OwogICAgIHN0YXRpYyBKU1ZhbHVlIGluZGV4R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIHVu
c2lnbmVkKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmpl
Y3QuY3BwCShyZXZpc2lvbiA5MjgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50
aW1lT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTAgKzM3LDggQEAgbmFtZXNwYWNl
IEJpbmRpbmdzIHsKIAogY29uc3QgQ2xhc3NJbmZvIENSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7
ICJDUnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAotQ1J1
bnRpbWVPYmplY3Q6OkNSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQotICAgIC8v
IEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYg
b2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhl
IHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KLSAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1l
T2JqZWN0PihleGVjKSwgaW5zdGFuY2UpCitDUnVudGltZU9iamVjdDo6Q1J1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQorICAgIDogUnVudGlt
ZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL0NSdW50aW1lT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdl
L2MvQ1J1bnRpbWVPYmplY3QuaAkocmV2aXNpb24gOTI4MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAorI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgogI2luY2x1ZGUgInJ1bnRpbWVfb2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtNDEsNyArNDIsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIENSdW50aW1lT2JqZWN0KiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNz
UmVmUHRyPENJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8Q1J1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBDUnVudGltZU9iamVj
dChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3Jvbmcg
Z2xvYmFsIG9iamVjdAorICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGds
b2JhbCBvYmplY3QgZm9yICJpIi4KKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBX
ZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1lT2JqZWN0PihleGVjKTsK
KyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lT2JqZWN0PigqZXhlYy0+
aGVhcCgpKSkgQ1J1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUs
IGluc3RhbmNlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5DUnVudGltZU9iamVjdCgpOwpAQCAt
NTYsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIENSdW50aW1lT2Jq
ZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+KTsK
KyAgICBDUnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIFBhc3NSZWZQdHI8Q0luc3RhbmNlPik7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcAkocmV2aXNpb24gOTI4MTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDcgKzExNSwx
MCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgQ1J1bnRpbWVNZXRob2QqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRp
bWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBuYW1lLCBsaXN0KTsKKyAgICAgICAgLy8gRklY
TUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0
aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhl
IHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1
Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1lTWV0aG9k
PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lTWV0aG9k
PigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21T
dHJ1Y3R1cmUsIG5hbWUsIGxpc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQpAQCAtMTI2LDEwICsxMjksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5m
byBzX2luZm87CiAKIHByaXZhdGU6Ci0gICAgQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBC
aW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRH
ZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFs
IG9iamVjdAotICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBv
YmplY3QgZm9yICJpIi4KLSAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVj
dCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxDUnVudGltZU1ldGhvZD4oZXhl
YyksIG5hbWUsIGxpc3QpCisgICAgQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCisgICAgICAgIDogUnVu
dGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbmFtZSwgbGlzdCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCShy
ZXZpc2lvbiA5MjgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0
YW5jZUpTQy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsMTAgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIEphdmFSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5k
aW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxKYXZhUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lTWV0
aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZSwgbGlzdCk7CisgICAgICAgIC8vIEZJWE1FOiBk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdy
b25nIGdsb2JhbCBvYmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdo
dCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJl
ID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxKYXZhUnVudGltZU1ldGhvZD4o
ZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU1ldGhv
ZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwg
ZG9tU3RydWN0dXJlLCBuYW1lLCBsaXN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3Rv
dHlwZSkKQEAgLTEzMSwxMCArMTM0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8gc19pbmZvOwogCiBwcml2YXRlOgotICAgIEphdmFSdW50aW1lTWV0aG9kKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYg
bmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKLSAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBn
bG9iYWwgb2JqZWN0IGZvciAiaSIuCi0gICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9i
YWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVN
ZXRob2Q+KGV4ZWMpLCBuYW1lLCBsaXN0KQorICAgIEphdmFSdW50aW1lTWV0aG9kKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQor
ICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5h
bWUsIGxpc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVu
dGltZU9iamVjdC5jcHAJKHJldmlzaW9uIDkyODE4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCAr
MzUsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBjb25zdCBDbGFzc0luZm8gSmF2YVJ1bnRp
bWVPYmplY3Q6OnNfaW5mbyA9IHsgIkphdmFSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6
OnNfaW5mbywgMCwgMCB9OwogCi1KYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PEphdmFJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVj
dAotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3Ig
ImkiLgotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5j
ZSkKK0phdmFSdW50aW1lT2JqZWN0OjpKYXZhUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNz
UmVmUHRyPEphdmFJbnN0YW5jZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YVJ1bnRpbWVPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2pzYy9KYXZhUnVudGltZU9iamVjdC5oCShyZXZpc2lvbiA5MjgxOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSmF2YVJ1bnRpbWVPYmplY3RfaAogI2RlZmluZSBKYXZh
UnVudGltZU9iamVjdF9oCiAKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJy
dW50aW1lX29iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM5LDcgKzQwLDEwIEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKYXZhUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxKYXZhSW5zdGFu
Y2U+IGphdmFJbnN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEph
dmFSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSmF2YVJ1bnRpbWVPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBqYXZhSW5zdCk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBv
YmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2Jq
ZWN0IGZvciAiaSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxKYXZhUnVudGltZU9iamVjdD4oZXhlYyk7CisgICAg
ICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU9iamVjdD4oKmV4ZWMtPmhl
YXAoKSkpIEphdmFSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJl
LCBqYXZhSW5zdCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+SmF2YVJ1bnRpbWVPYmplY3QoKTsK
QEAgLTU0LDcgKzU4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBKYXZhUnVu
dGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8SmF2YUlu
c3RhbmNlPik7CisgICAgSmF2YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4pOwogfTsKIAogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgJKHJldmlzaW9uIDky
ODE4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgS0pTX0JJTkRJTkdTX09CSkNfUlVO
VElNRV9ICiAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJvYmpjX2hlYWRlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgpA
QCAtOTYsNyArOTcsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgT2JqY0ZhbGxiYWNrT2JqZWN0
SW1wKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBPYmpjSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
CiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8T2JqY0ZhbGxiYWNrT2Jq
ZWN0SW1wPigqZXhlYy0+aGVhcCgpKSkgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgaW5zdGFuY2UsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3Jl
OjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPE9iamNGYWxsYmFja09iamVjdEltcD4oZXhlYyk7
CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpjRmFsbGJhY2tPYmplY3RJbXA+
KCpleGVjLT5oZWFwKCkpKSBPYmpjRmFsbGJhY2tPYmplY3RJbXAoZ2xvYmFsT2JqZWN0LCBkb21T
dHJ1Y3R1cmUsIGluc3RhbmNlLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KIAogICAgIHN0YXRpYyBj
b25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtMTE0LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KiwgT2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKKyAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0JKHJldmlzaW9uIDkyODE4KQor
KysgU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTcsOSArMTk3LDggQEAgdW5zaWduZWQgaW50IE9iamNBcnJheTo6Z2V0TGVuZ3Ro
KCkgY29ucwogCiBjb25zdCBDbGFzc0luZm8gT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpzX2luZm8g
PSB7ICJPYmpjRmFsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2lu
Zm8sIDAsIDAgfTsKIAotT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJ
bXAoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmpjSW5z
dGFuY2UqIGksIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLSAgICAvLyBGSVhNRTog
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3
cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0LCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPE9iamNGYWxsYmFja09iamVjdEltcD4o
ZXhlYykpCitPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdEltcChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgT2JqY0luc3Rh
bmNlKiBpLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisgICAgOiBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBfaW5zdGFuY2Uo
aSkKICAgICAsIF9pdGVtKHByb3BlcnR5TmFtZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3F0L3F0X2luc3RhbmNlLmNwcAkocmV2aXNpb24gOTI4MTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw4
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBRdFJ1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFu
Y2U+IGluc3RhbmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0
UnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGltZU9iamVjdChleGVjLCBnbG9i
YWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBX
ZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU9iamVjdD4oZXhlYyk7
CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVPYmplY3Q+KCpleGVj
LT5oZWFwKCkpKSBRdFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1
cmUsIGluc3RhbmNlKTsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CkBAIC03NiwxMyArNzcsMTMgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IFJ1bnRpbWVPYmplY3Q6OlN0cnVjdHVyZUZsYWdzIHwg
T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbjsKIAogcHJpdmF0ZToKLSAgICBRdFJ1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CisgICAg
UXRSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
UGFzc1JlZlB0cjxJbnN0YW5jZT4pOwogfTsKIAogY29uc3QgQ2xhc3NJbmZvIFF0UnVudGltZU9i
amVjdDo6c19pbmZvID0geyAiUXRSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5m
bywgMCwgMCB9OwogCi1RdFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFuY2U+
IGluc3RhbmNlKQotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNv
cmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lT2JqZWN0PihleGVjKSwgaW5z
dGFuY2UpCitRdFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNz
UmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSkKKyAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGluc3RhbmNlKQogewogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCShyZXZpc2lvbiA5MjgxOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJK
U0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgpAQCAtMjAyLDcg
KzIwMyw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBRdFBpeG1hcFJ1bnRpbWVPYmplY3QqIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NS
ZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPFF0UGl4bWFwUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UGl4bWFw
UnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgU3Ry
dWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
PFF0UGl4bWFwUnVudGltZU9iamVjdD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxRdFBpeG1hcFJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBRdFBpeG1hcFJ1
bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsK
ICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTIxNiwxMSAr
MjE4LDExIEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBSdW50aW1lT2JqZWN0OjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW47CiAKIHByaXZhdGU6Ci0gICAgUXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOworICAgIFF0UGl4bWFwUnVu
dGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NS
ZWZQdHI8SW5zdGFuY2U+KTsKIH07CiAKLVF0UGl4bWFwUnVudGltZU9iamVjdDo6UXRQaXhtYXBS
dW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFBp
eG1hcFJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK1F0UGl4bWFwUnVudGltZU9iamVj
dDo6UXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+
IGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSwgaW5zdGFuY2UpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
cnVudGltZS5jcHAJKHJldmlzaW9uIDkyODE4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA2LDggKzEwMDYsOCBAQCBKU1Zh
bHVlIGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoRXhlY1N0YXRlCiAKIGNvbnN0IENsYXNzSW5mbyBR
dFJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIlF0UnVudGltZU1ldGhvZCIsICZJbnRlcm5hbEZ1
bmN0aW9uOjpzX2luZm8sIDAsIDAgfTsKIAotUXRSdW50aW1lTWV0aG9kOjpRdFJ1bnRpbWVNZXRo
b2QoUXRSdW50aW1lTWV0aG9kRGF0YSogZGQsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnQsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCkKLSAgICA6IEludGVybmFs
RnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU1ldGhvZD4oZXhlYyksIGlkZW50
KQorUXRSdW50aW1lTWV0aG9kOjpRdFJ1bnRpbWVNZXRob2QoUXRSdW50aW1lTWV0aG9kRGF0YSog
ZGQsIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QpCisgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwg
c3RydWN0dXJlLCBpZGVudCkKICAgICAsIGRfcHRyKGRkKQogewogICAgIFFXX0QoUXRSdW50aW1l
TWV0aG9kKTsKQEAgLTE0MjAsOCArMTQyMCw4IEBAIHN0YXRpYyBpbnQgZmluZFNpZ25hbEluZGV4
KGNvbnN0IFFNZXRhT2IKICAgICByZXR1cm4gaW5kZXg7CiB9CiAKLVF0UnVudGltZU1ldGFNZXRo
b2Q6OlF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFC
eXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpCi0gICAgOiBRdFJ1bnRpbWVN
ZXRob2QgKG5ldyBRdFJ1bnRpbWVNZXRhTWV0aG9kRGF0YSgpLCBleGVjLCBpZGVudCwgaW5zdCkK
K1F0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiBleGVj
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIFBhc3NSZWZQ
dHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1
cmUsIGJvb2wgYWxsb3dQcml2YXRlKQorICAgIDogUXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50
aW1lTWV0YU1ldGhvZERhdGEoKSwgZXhlYywgc3RydWN0dXJlLCBpZGVudCwgaW5zdCkKIHsKICAg
ICBRV19EKFF0UnVudGltZU1ldGFNZXRob2QpOwogICAgIGQtPm1fc2lnbmF0dXJlID0gc2lnbmF0
dXJlOwpAQCAtMTU2NCw4ICsxNTY0LDggQEAgSlNWYWx1ZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpk
aXNjb25uZWN0RwogCiBRTXVsdGlNYXA8UU9iamVjdCosIFF0Q29ubmVjdGlvbk9iamVjdCo+IFF0
UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNvbm5lY3Rpb25zOwogCi1RdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgaWRlbnQsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFu
Y2U+IGluc3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlKQotICAgIDog
UXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERhdGEoKSwgZXhl
YywgaWRlbnQsIGluc3QpCitRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpRdFJ1bnRpbWVDb25u
ZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50LCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNl
PiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKKyAgICA6IFF0
UnVudGltZU1ldGhvZCAobmV3IFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKCksIGV4ZWMs
IHN0cnVjdHVyZSwgaWRlbnQsIGluc3QpCiB7CiAgICAgUVdfRChRdFJ1bnRpbWVDb25uZWN0aW9u
TWV0aG9kKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCShyZXZp
c2lvbiA5MjgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE0NSwxOCArMTQ1LDE4IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0
dXJlRmxhZ3MgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuOwogCiAgICAgUXRSdW50aW1lTWV0aG9k
RGF0YSAqZF9mdW5jKCkgY29uc3Qge3JldHVybiBkX3B0cjt9Ci0gICAgUXRSdW50aW1lTWV0aG9k
KFF0UnVudGltZU1ldGhvZERhdGEgKmRkLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZp
ZXIgJm4sIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCk7CisgICAgUXRSdW50aW1lTWV0aG9k
KFF0UnVudGltZU1ldGhvZERhdGEgKmRkLCBFeGVjU3RhdGUgKiwgU3RydWN0dXJlKiwgY29uc3Qg
SWRlbnRpZmllciAmbmFtZSwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPik7CiAgICAgUXRSdW50aW1l
TWV0aG9kRGF0YSAqZF9wdHI7CiB9OwogCi1jbGFzcyBRdFJ1bnRpbWVNZXRhTWV0aG9kIDogcHVi
bGljIFF0UnVudGltZU1ldGhvZAoteworY2xhc3MgUXRSdW50aW1lTWV0YU1ldGhvZCA6IHB1Ymxp
YyBRdFJ1bnRpbWVNZXRob2QgewogcHVibGljOgogICAgIHR5cGVkZWYgUXRSdW50aW1lTWV0aG9k
IEJhc2U7CiAKICAgICBzdGF0aWMgUXRSdW50aW1lTWV0YU1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbiwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0
LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZh
dGUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lTWV0
YU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGltZU1ldGFNZXRob2QoZXhlYywgbiwgaW5z
dCwgaW5kZXgsIHNpZ25hdHVyZSwgYWxsb3dQcml2YXRlKTsKKyAgICAgICAgU3RydWN0dXJlKiBk
b21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGlt
ZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRp
bWVNZXRhTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lTWV0YU1ldGhvZChleGVjLCBk
b21TdHJ1Y3R1cmUsIG4sIGluc3QsIGluZGV4LCBzaWduYXR1cmUsIGFsbG93UHJpdmF0ZSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpAQCAtMTY5LDcgKzE2OSw3IEBAIHBy
b3RlY3RlZDoKICAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kRGF0YSogZF9mdW5jKCkgY29uc3Qge3Jl
dHVybiByZWludGVycHJldF9jYXN0PFF0UnVudGltZU1ldGFNZXRob2REYXRhKj4oZF9wdHIpO30K
IAogcHJpdmF0ZToKLSAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRl
QXJyYXkmLCBib29sIGFsbG93UHJpdmF0ZSk7CisgICAgUXRSdW50aW1lTWV0YU1ldGhvZChFeGVj
U3RhdGUqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgUGFzc1JlZlB0cjxRdEluc3Rh
bmNlPiwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiwgYm9vbCBhbGxvd1ByaXZhdGUpOwog
CiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGwoRXhlY1N0YXRlKiBleGVjKTsKQEAg
LTE4NSw3ICsxODUsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUXRSdW50aW1lQ29ubmVjdGlv
bk1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbiwgYm9v
bCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25z
dCBRQnl0ZUFycmF5JiBzaWduYXR1cmUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVu
dGltZUNvbm5lY3Rpb25NZXRob2QoZXhlYywgbiwgaXNDb25uZWN0LCBpbnN0LCBpbmRleCwgc2ln
bmF0dXJlKTsKKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kPigqZXhlYy0+
aGVhcCgpKSkgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChleGVjLCBkb21TdHJ1Y3R1cmUsIG4s
IGlzQ29ubmVjdCwgaW5zdCwgaW5kZXgsIHNpZ25hdHVyZSk7CiAgICAgfQogCiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwpAQCAtMTk2LDcgKzE5Nyw3IEBAIHByb3RlY3RlZDoKICAgICBRdFJ1
bnRpbWVDb25uZWN0aW9uTWV0aG9kRGF0YSogZF9mdW5jKCkgY29uc3Qge3JldHVybiByZWludGVy
cHJldF9jYXN0PFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKj4oZF9wdHIpO30KIAogcHJp
dmF0ZToKLSAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiwgaW50IGlu
ZGV4LCBjb25zdCBRQnl0ZUFycmF5Jik7CisgICAgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCBpc0Nvbm5lY3Qs
IFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYpOwog
CiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGwoRXhlY1N0YXRlKiBleGVjKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyODE4KQorKysgU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMTAgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3Rv
ciBKUyBvYmplY3RzIHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUgbWV0aG9kcyByYXRoZXIg
dGhhbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSBhbnkgYWxsb2NhdGlvbiB0aGF0IHdhcyB0YWtpbmcgcGxhY2UgaW4gdGhl
IGluaXRpYWxpemF0aW9uIGxpc3RzIG9mIGFueSBvYmplY3RzIHRoYXQgCisgICAgICAgIGluaGVy
aXQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBmcm9tIEpTQ2VsbCBvdXQgaW50byB0aGVpciBzdGF0
aWMgY3JlYXRlIG1ldGhvZHMuICBUaGlzIGlzIAorICAgICAgICBwYXJ0IG9mIGEgbGFyZ2VyIHJl
ZmFjdG9yaW5nIHRvIG1pbmltaXplIG9yIGVsaW1pbmF0ZSB0aGUgdXNlIG9mIGNvbnN0cnVjdG9y
cyBpbiB0aGVzZSAKKyAgICAgICAgY2xhc3Nlcy4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVk
L1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU1ldGhvZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9kOjpQcm94eVJ1bnRp
bWVNZXRob2QpOgorCiAyMDExLTA4LTEwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4K
IAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMDQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0
YW5jZS5tbQkocmV2aXNpb24gOTI4MTgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Qcm94eUluc3RhbmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsNyArMTgzLDEwIEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBQcm94eVJ1bnRpbWVNZXRob2QqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IG5ldyAoYWxsb2NhdGVDZWxsPFByb3h5UnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFBy
b3h5UnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIG5hbWUsIGxpc3QpOworICAgICAg
ICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUg
b2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8vIGV4ZWMtZ2xvYmFsRGF0
YSgpIGlzIGFsc28gbGlrZWx5IHdyb25nLgorICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVy
ZSA9IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJveHlSdW50aW1lTWV0aG9kPihleGVjKTsK
KyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFByb3h5UnVudGltZU1ldGhvZD4oKmV4
ZWMtPmhlYXAoKSkpIFByb3h5UnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0
cnVjdHVyZSwgbmFtZSwgbGlzdCk7CiAgICAgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUp
CkBAIC0xOTQsMTAgKzE5Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKIAogcHJpdmF0ZToKLSAgICBQcm94eVJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
LCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0
ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xv
YmFsIG9iamVjdAotICAgICAgICAvLyBleGVjLWdsb2JhbERhdGEoKSBpcyBhbHNvIGxpa2VseSB3
cm9uZy4KLSAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgZGVwcmVj
YXRlZEdldERPTVN0cnVjdHVyZTxQcm94eVJ1bnRpbWVNZXRob2Q+KGV4ZWMpLCBuYW1lLCBsaXN0
KQorICAgIFByb3h5UnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBu
YW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAgICAgOiBSdW50aW1lTWV0aG9k
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBsaXN0KQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103642</attachid>
            <date>2011-08-11 10:12:37 -0700</date>
            <delta_ts>2011-08-15 09:57:31 -0700</delta_ts>
            <desc>Fixing build errors</desc>
            <filename>bug-65347-20110811101237.patch</filename>
            <type>text/plain</type>
            <size>29166</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4NTgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTEtMDgtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZWZhY3RvciBKUyBvYmplY3RzIHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUg
bWV0aG9kcyByYXRoZXIgdGhhbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBhbnkgYWxsb2NhdGlvbiB0aGF0IHdhcyB0YWtp
bmcgcGxhY2UgaW4gdGhlIGluaXRpYWxpemF0aW9uIGxpc3RzIG9mIGFueSBvYmplY3RzIHRoYXQg
CisgICAgICAgIGluaGVyaXQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBmcm9tIEpTQ2VsbCBvdXQg
aW50byB0aGVpciBzdGF0aWMgY3JlYXRlIG1ldGhvZHMuICBUaGlzIGlzIAorICAgICAgICBwYXJ0
IG9mIGEgbGFyZ2VyIHJlZmFjdG9yaW5nIHRvIG1pbmltaXplIG9yIGVsaW1pbmF0ZSB0aGUgdXNl
IG9mIGNvbnN0cnVjdG9ycyBpbiB0aGVzZSAKKyAgICAgICAgY2xhc3Nlcy4KKworICAgICAgICAq
IEpTUnVuLmNwcDoKKyAgICAgICAgKEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2Jq
ZWN0KToKKyAgICAgICAgKiBKU1J1bi5oOgorICAgICAgICAoSlNHbHVlR2xvYmFsT2JqZWN0Ojpj
cmVhdGUpOgorCiAyMDExLTA4LTA5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIFBhcmVudENsYXNzIHR5cGVkZWYgaW4gYWxsIEpTQyBjbGFz
c2VzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAJKHJldmlzaW9uIDkyODU4KQorKysgU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMz
LDEwIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xvYmFsT2JqZWN0OjpKU0ds
dWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNGbGFncyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cnVj
dHVyZSogdXNlck9iamVjdFN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykKICAgICA6IEpTR2xvYmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fZmxhZ3MoZmxhZ3MpCi0gICAg
LCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgVXNlck9iamVjdEltcDo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVj
dHVyZShnbG9iYWxEYXRhLCB1c2VyT2JqZWN0U3RydWN0dXJlKQogewogfQogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dEdsdWUvSlNSdW4uaAkocmV2aXNpb24gOTI4NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdEdsdWUv
SlNSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1N0cm9uZy5oPgogI2luY2x1ZGUgIkpTQmFzZS5oIgogI2luY2x1ZGUgIkpTVXRp
bHMuaCIKKyNpbmNsdWRlICJVc2VyT2JqZWN0SW1wLmgiCiAKIGNsYXNzIEpTR2x1ZUdsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgcHVibGljOgpAQCAtMzksMTQgKzQw
LDE1IEBAIGNsYXNzIEpTR2x1ZUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2IKIAogICAgICAg
ICBzdGF0aWMgSlNHbHVlR2xvYmFsT2JqZWN0KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncyA9IGtKU0ZsYWdOb25lKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNHbHVlR2xv
YmFsT2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlLCBmbGFncyk7CisgICAgICAgICAgICBTdHJ1Y3R1cmUqIHVzZXJPYmplY3RT
dHJ1Y3R1cmUgPSBVc2VyT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNO
dWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTR2x1ZUdsb2Jh
bE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNHbHVlR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVyZSwgZmxhZ3MpOwogICAgICAgICB9CiAKICAg
ICAgICAgSlNGbGFncyBGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KICAgICAgICAg
U3RydWN0dXJlKiB1c2VyT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV91c2VyT2Jq
ZWN0U3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBKU0dsdWVHbG9i
YWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNGbGFncyA9IGtKU0ZsYWdOb25l
KTsKKyAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSos
IFN0cnVjdHVyZSosIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CiAgICAgICAgIAogICAgICAgICBK
U0ZsYWdzIG1fZmxhZ3M7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1fdXNlck9iamVjdFN0
cnVjdHVyZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CShyZXZpc2lvbiA5Mjg1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICB7CiAgICAgICAgIGlmIChKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2V0Q2Fj
aGVkRE9NU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgJldyYXBwZXJDbGFzczo6c19pbmZvKSkKICAg
ICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmU7Ci0gICAgICAgIHJldHVybiBjYWNoZURPTVN0cnVj
dHVyZShnbG9iYWxPYmplY3QsIFdyYXBwZXJDbGFzczo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgV3JhcHBlckNsYXNzOjpjcmVhdGVQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KSksICZXcmFwcGVyQ2xhc3M6OnNfaW5mbyk7CisgICAgICAgIHJldHVybiBjYWNoZURPTVN0
cnVjdHVyZShnbG9iYWxPYmplY3QsIFdyYXBwZXJDbGFzczo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgSlNDOjpKU1ZhbHVlKChKU0M6OkpTQ2VsbCopV3JhcHBlckNsYXNzOjpj
cmVhdGVQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0KSkpLCAmV3JhcHBlckNsYXNzOjpzX2lu
Zm8pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcz4gaW5saW5lIEpT
Qzo6U3RydWN0dXJlKiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlKEpTQzo6RXhlY1N0YXRlKiBl
eGVjKQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAkocmV2aXNp
b24gOTI4NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDEwICszNywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3Qg
Q2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGltZUFycmF5IiwgJkpTQXJy
YXk6OnNfaW5mbywgMCwgMCB9OwogCi1SdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3Rh
dGUqIGV4ZWMsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCitSdW50aW1lQXJyYXk6OlJ1bnRpbWVB
cnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJy
YXkqIGFycmF5KQogICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMg
dGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKICAgICAvLyBXZSBu
ZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJhcnJheSIuCi0gICAg
OiBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxS
dW50aW1lQXJyYXk+KGV4ZWMpKQorICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIHN0
cnVjdHVyZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNs
YXNzRGF0YShhcnJheSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgJ
KHJldmlzaW9uIDkyODU4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBSVU5USU1FX0FSUkFZ
X0hfCiAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0FycmF5UHJvdG90eXBlLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtMzcsNyArMzgsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUnVudGltZUFycmF5KiBjcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFJ1bnRpbWVBcnJheT4oKmV4ZWMtPmhlYXAoKSkp
IFJ1bnRpbWVBcnJheShleGVjLCBhcnJheSk7CisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0
dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxSdW50aW1lQXJyYXk+KGV4
ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UnVudGltZUFycmF5PigqZXhl
Yy0+aGVhcCgpKSkgUnVudGltZUFycmF5KGV4ZWMsIGRvbVN0cnVjdHVyZSwgYXJyYXkpOwogICAg
IH0KIAogICAgIHR5cGVkZWYgQmluZGluZ3M6OkFycmF5IEJpbmRpbmdzQXJyYXk7CkBAIC03Myw3
ICs3NSw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6Ci0gICAgUnVudGlt
ZUFycmF5KEV4ZWNTdGF0ZSosIEJpbmRpbmdzOjpBcnJheSopOworICAgIFJ1bnRpbWVBcnJheShF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6QXJyYXkqKTsKICAgICBzdGF0aWMgSlNW
YWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYp
OwogICAgIHN0YXRpYyBKU1ZhbHVlIGluZGV4R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIHVu
c2lnbmVkKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmpl
Y3QuY3BwCShyZXZpc2lvbiA5Mjg1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50
aW1lT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTAgKzM3LDggQEAgbmFtZXNwYWNl
IEJpbmRpbmdzIHsKIAogY29uc3QgQ2xhc3NJbmZvIENSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7
ICJDUnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAotQ1J1
bnRpbWVPYmplY3Q6OkNSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQotICAgIC8v
IEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYg
b2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhl
IHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KLSAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1l
T2JqZWN0PihleGVjKSwgaW5zdGFuY2UpCitDUnVudGltZU9iamVjdDo6Q1J1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQorICAgIDogUnVudGlt
ZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL0NSdW50aW1lT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdl
L2MvQ1J1bnRpbWVPYmplY3QuaAkocmV2aXNpb24gOTI4NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAorI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgogI2luY2x1ZGUgInJ1bnRpbWVfb2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtNDEsNyArNDIsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIENSdW50aW1lT2JqZWN0KiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNz
UmVmUHRyPENJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8Q1J1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBDUnVudGltZU9iamVj
dChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3Jvbmcg
Z2xvYmFsIG9iamVjdAorICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGds
b2JhbCBvYmplY3QgZm9yICJpIi4KKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBX
ZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1lT2JqZWN0PihleGVjKTsK
KyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lT2JqZWN0PigqZXhlYy0+
aGVhcCgpKSkgQ1J1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUs
IGluc3RhbmNlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5DUnVudGltZU9iamVjdCgpOwpAQCAt
NTYsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIENSdW50aW1lT2Jq
ZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+KTsK
KyAgICBDUnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIFBhc3NSZWZQdHI8Q0luc3RhbmNlPik7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcAkocmV2aXNpb24gOTI4NTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDcgKzExNSwx
MCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgQ1J1bnRpbWVNZXRob2QqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRp
bWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBuYW1lLCBsaXN0KTsKKyAgICAgICAgLy8gRklY
TUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0
aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhl
IHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1
Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1lTWV0aG9k
PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lTWV0aG9k
PigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21T
dHJ1Y3R1cmUsIG5hbWUsIGxpc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQpAQCAtMTI2LDEwICsxMjksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5m
byBzX2luZm87CiAKIHByaXZhdGU6Ci0gICAgQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBC
aW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRH
ZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFs
IG9iamVjdAotICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBv
YmplY3QgZm9yICJpIi4KLSAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVj
dCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxDUnVudGltZU1ldGhvZD4oZXhl
YyksIG5hbWUsIGxpc3QpCisgICAgQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCisgICAgICAgIDogUnVu
dGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbmFtZSwgbGlzdCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCShy
ZXZpc2lvbiA5Mjg1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0
YW5jZUpTQy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsMTAgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIEphdmFSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5k
aW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxKYXZhUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lTWV0
aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZSwgbGlzdCk7CisgICAgICAgIC8vIEZJWE1FOiBk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdy
b25nIGdsb2JhbCBvYmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdo
dCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJl
ID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxKYXZhUnVudGltZU1ldGhvZD4o
ZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU1ldGhv
ZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwg
ZG9tU3RydWN0dXJlLCBuYW1lLCBsaXN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3Rv
dHlwZSkKQEAgLTEzMSwxMCArMTM0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8gc19pbmZvOwogCiBwcml2YXRlOgotICAgIEphdmFSdW50aW1lTWV0aG9kKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYg
bmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKLSAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBn
bG9iYWwgb2JqZWN0IGZvciAiaSIuCi0gICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9i
YWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVN
ZXRob2Q+KGV4ZWMpLCBuYW1lLCBsaXN0KQorICAgIEphdmFSdW50aW1lTWV0aG9kKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQor
ICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5h
bWUsIGxpc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVu
dGltZU9iamVjdC5jcHAJKHJldmlzaW9uIDkyODU4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCAr
MzUsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBjb25zdCBDbGFzc0luZm8gSmF2YVJ1bnRp
bWVPYmplY3Q6OnNfaW5mbyA9IHsgIkphdmFSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6
OnNfaW5mbywgMCwgMCB9OwogCi1KYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PEphdmFJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVj
dAotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3Ig
ImkiLgotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5j
ZSkKK0phdmFSdW50aW1lT2JqZWN0OjpKYXZhUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNz
UmVmUHRyPEphdmFJbnN0YW5jZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YVJ1bnRpbWVPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2pzYy9KYXZhUnVudGltZU9iamVjdC5oCShyZXZpc2lvbiA5Mjg1OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSmF2YVJ1bnRpbWVPYmplY3RfaAogI2RlZmluZSBKYXZh
UnVudGltZU9iamVjdF9oCiAKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJy
dW50aW1lX29iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM5LDcgKzQwLDEwIEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKYXZhUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxKYXZhSW5zdGFu
Y2U+IGphdmFJbnN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEph
dmFSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSmF2YVJ1bnRpbWVPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBqYXZhSW5zdCk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBv
YmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2Jq
ZWN0IGZvciAiaSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxKYXZhUnVudGltZU9iamVjdD4oZXhlYyk7CisgICAg
ICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU9iamVjdD4oKmV4ZWMtPmhl
YXAoKSkpIEphdmFSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJl
LCBqYXZhSW5zdCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+SmF2YVJ1bnRpbWVPYmplY3QoKTsK
QEAgLTU0LDcgKzU4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBKYXZhUnVu
dGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8SmF2YUlu
c3RhbmNlPik7CisgICAgSmF2YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4pOwogfTsKIAogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgJKHJldmlzaW9uIDky
ODU4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgS0pTX0JJTkRJTkdTX09CSkNfUlVO
VElNRV9ICiAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJvYmpjX2hlYWRlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgpA
QCAtOTYsNyArOTcsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgT2JqY0ZhbGxiYWNrT2JqZWN0
SW1wKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBPYmpjSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
CiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8T2JqY0ZhbGxiYWNrT2Jq
ZWN0SW1wPigqZXhlYy0+aGVhcCgpKSkgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgaW5zdGFuY2UsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3Jl
OjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPE9iamNGYWxsYmFja09iamVjdEltcD4oZXhlYyk7
CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpjRmFsbGJhY2tPYmplY3RJbXA+
KCpleGVjLT5oZWFwKCkpKSBPYmpjRmFsbGJhY2tPYmplY3RJbXAoZ2xvYmFsT2JqZWN0LCBkb21T
dHJ1Y3R1cmUsIGluc3RhbmNlLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KIAogICAgIHN0YXRpYyBj
b25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtMTE0LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KiwgT2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKKyAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0JKHJldmlzaW9uIDkyODU4KQor
KysgU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTcsOSArMTk3LDggQEAgdW5zaWduZWQgaW50IE9iamNBcnJheTo6Z2V0TGVuZ3Ro
KCkgY29ucwogCiBjb25zdCBDbGFzc0luZm8gT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpzX2luZm8g
PSB7ICJPYmpjRmFsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2lu
Zm8sIDAsIDAgfTsKIAotT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJ
bXAoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmpjSW5z
dGFuY2UqIGksIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLSAgICAvLyBGSVhNRTog
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3
cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0LCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPE9iamNGYWxsYmFja09iamVjdEltcD4o
ZXhlYykpCitPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdEltcChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgT2JqY0luc3Rh
bmNlKiBpLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisgICAgOiBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBfaW5zdGFuY2Uo
aSkKICAgICAsIF9pdGVtKHByb3BlcnR5TmFtZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3F0L3F0X2luc3RhbmNlLmNwcAkocmV2aXNpb24gOTI4NTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw4
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBRdFJ1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFu
Y2U+IGluc3RhbmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0
UnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGltZU9iamVjdChleGVjLCBnbG9i
YWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBX
ZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU9iamVjdD4oZXhlYyk7
CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVPYmplY3Q+KCpleGVj
LT5oZWFwKCkpKSBRdFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1
cmUsIGluc3RhbmNlKTsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CkBAIC03NiwxMyArNzcsMTMgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IFJ1bnRpbWVPYmplY3Q6OlN0cnVjdHVyZUZsYWdzIHwg
T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbjsKIAogcHJpdmF0ZToKLSAgICBRdFJ1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CisgICAg
UXRSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
UGFzc1JlZlB0cjxJbnN0YW5jZT4pOwogfTsKIAogY29uc3QgQ2xhc3NJbmZvIFF0UnVudGltZU9i
amVjdDo6c19pbmZvID0geyAiUXRSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5m
bywgMCwgMCB9OwogCi1RdFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFuY2U+
IGluc3RhbmNlKQotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNv
cmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lT2JqZWN0PihleGVjKSwgaW5z
dGFuY2UpCitRdFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNz
UmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSkKKyAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGluc3RhbmNlKQogewogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCShyZXZpc2lvbiA5Mjg1OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJK
U0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgpAQCAtMjAyLDcg
KzIwMyw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBRdFBpeG1hcFJ1bnRpbWVPYmplY3QqIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NS
ZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPFF0UGl4bWFwUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UGl4bWFw
UnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgU3Ry
dWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
PFF0UGl4bWFwUnVudGltZU9iamVjdD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxRdFBpeG1hcFJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBRdFBpeG1hcFJ1
bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsK
ICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTIxNiwxMSAr
MjE4LDExIEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBSdW50aW1lT2JqZWN0OjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW47CiAKIHByaXZhdGU6Ci0gICAgUXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOworICAgIFF0UGl4bWFwUnVu
dGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NS
ZWZQdHI8SW5zdGFuY2U+KTsKIH07CiAKLVF0UGl4bWFwUnVudGltZU9iamVjdDo6UXRQaXhtYXBS
dW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFBp
eG1hcFJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK1F0UGl4bWFwUnVudGltZU9iamVj
dDo6UXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+
IGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSwgaW5zdGFuY2UpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
cnVudGltZS5jcHAJKHJldmlzaW9uIDkyODU4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA2LDggKzEwMDYsOCBAQCBKU1Zh
bHVlIGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoRXhlY1N0YXRlCiAKIGNvbnN0IENsYXNzSW5mbyBR
dFJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIlF0UnVudGltZU1ldGhvZCIsICZJbnRlcm5hbEZ1
bmN0aW9uOjpzX2luZm8sIDAsIDAgfTsKIAotUXRSdW50aW1lTWV0aG9kOjpRdFJ1bnRpbWVNZXRo
b2QoUXRSdW50aW1lTWV0aG9kRGF0YSogZGQsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnQsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCkKLSAgICA6IEludGVybmFs
RnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU1ldGhvZD4oZXhlYyksIGlkZW50
KQorUXRSdW50aW1lTWV0aG9kOjpRdFJ1bnRpbWVNZXRob2QoUXRSdW50aW1lTWV0aG9kRGF0YSog
ZGQsIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QpCisgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwg
c3RydWN0dXJlLCBpZGVudCkKICAgICAsIGRfcHRyKGRkKQogewogICAgIFFXX0QoUXRSdW50aW1l
TWV0aG9kKTsKQEAgLTE0MjAsOCArMTQyMCw4IEBAIHN0YXRpYyBpbnQgZmluZFNpZ25hbEluZGV4
KGNvbnN0IFFNZXRhT2IKICAgICByZXR1cm4gaW5kZXg7CiB9CiAKLVF0UnVudGltZU1ldGFNZXRo
b2Q6OlF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFC
eXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpCi0gICAgOiBRdFJ1bnRpbWVN
ZXRob2QgKG5ldyBRdFJ1bnRpbWVNZXRhTWV0aG9kRGF0YSgpLCBleGVjLCBpZGVudCwgaW5zdCkK
K1F0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiBleGVj
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIFBhc3NSZWZQ
dHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1
cmUsIGJvb2wgYWxsb3dQcml2YXRlKQorICAgIDogUXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50
aW1lTWV0YU1ldGhvZERhdGEoKSwgZXhlYywgc3RydWN0dXJlLCBpZGVudCwgaW5zdCkKIHsKICAg
ICBRV19EKFF0UnVudGltZU1ldGFNZXRob2QpOwogICAgIGQtPm1fc2lnbmF0dXJlID0gc2lnbmF0
dXJlOwpAQCAtMTU2NCw4ICsxNTY0LDggQEAgSlNWYWx1ZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpk
aXNjb25uZWN0RwogCiBRTXVsdGlNYXA8UU9iamVjdCosIFF0Q29ubmVjdGlvbk9iamVjdCo+IFF0
UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNvbm5lY3Rpb25zOwogCi1RdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgaWRlbnQsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFu
Y2U+IGluc3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlKQotICAgIDog
UXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERhdGEoKSwgZXhl
YywgaWRlbnQsIGluc3QpCitRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpRdFJ1bnRpbWVDb25u
ZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50LCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNl
PiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKKyAgICA6IFF0
UnVudGltZU1ldGhvZCAobmV3IFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKCksIGV4ZWMs
IHN0cnVjdHVyZSwgaWRlbnQsIGluc3QpCiB7CiAgICAgUVdfRChRdFJ1bnRpbWVDb25uZWN0aW9u
TWV0aG9kKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCShyZXZp
c2lvbiA5Mjg1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgQklORElOR1NfUVRfUlVOVElN
RV9IXwogCiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgogI2luY2x1ZGUgIldlYWsuaCIKICNpbmNsdWRlICJx
dF9pbnN0YW5jZS5oIgpAQCAtMTQ1LDE4ICsxNDYsMTggQEAgcHJvdGVjdGVkOgogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1
Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW47CiAKICAgICBRdFJ1bnRpbWVNZXRo
b2REYXRhICpkX2Z1bmMoKSBjb25zdCB7cmV0dXJuIGRfcHRyO30KLSAgICBRdFJ1bnRpbWVNZXRo
b2QoUXRSdW50aW1lTWV0aG9kRGF0YSAqZGQsIEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRp
ZmllciAmbiwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0KTsKKyAgICBRdFJ1bnRpbWVNZXRo
b2QoUXRSdW50aW1lTWV0aG9kRGF0YSAqZGQsIEV4ZWNTdGF0ZSAqLCBTdHJ1Y3R1cmUqLCBjb25z
dCBJZGVudGlmaWVyICZuYW1lLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+KTsKICAgICBRdFJ1bnRp
bWVNZXRob2REYXRhICpkX3B0cjsKIH07CiAKLWNsYXNzIFF0UnVudGltZU1ldGFNZXRob2QgOiBw
dWJsaWMgUXRSdW50aW1lTWV0aG9kCi17CitjbGFzcyBRdFJ1bnRpbWVNZXRhTWV0aG9kIDogcHVi
bGljIFF0UnVudGltZU1ldGhvZCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBRdFJ1bnRpbWVNZXRo
b2QgQmFzZTsKIAogICAgIHN0YXRpYyBRdFJ1bnRpbWVNZXRhTWV0aG9kKiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGlu
c3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJp
dmF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVN
ZXRhTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lTWV0YU1ldGhvZChleGVjLCBuLCBp
bnN0LCBpbmRleCwgc2lnbmF0dXJlLCBhbGxvd1ByaXZhdGUpOworICAgICAgICBTdHJ1Y3R1cmUq
IGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50
aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVu
dGltZU1ldGFNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRpbWVNZXRhTWV0aG9kKGV4ZWMs
IGRvbVN0cnVjdHVyZSwgbiwgaW5zdCwgaW5kZXgsIHNpZ25hdHVyZSwgYWxsb3dQcml2YXRlKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CkBAIC0xNjksNyArMTcwLDcgQEAg
cHJvdGVjdGVkOgogICAgIFF0UnVudGltZU1ldGFNZXRob2REYXRhKiBkX2Z1bmMoKSBjb25zdCB7
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRSdW50aW1lTWV0YU1ldGhvZERhdGEqPihkX3B0cik7
fQogCiBwcml2YXRlOgotICAgIFF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5
dGVBcnJheSYsIGJvb2wgYWxsb3dQcml2YXRlKTsKKyAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4
ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImLCBQYXNzUmVmUHRyPFF0SW5z
dGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmLCBib29sIGFsbG93UHJpdmF0ZSk7
CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChFeGVjU3RhdGUqIGV4ZWMpOwpA
QCAtMTg1LDcgKzE4Niw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuLCBi
b29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNv
bnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFs
bG9jYXRlQ2VsbDxRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUXRS
dW50aW1lQ29ubmVjdGlvbk1ldGhvZChleGVjLCBuLCBpc0Nvbm5lY3QsIGluc3QsIGluZGV4LCBz
aWduYXR1cmUpOworICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q+KCpleGVj
LT5oZWFwKCkpKSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKGV4ZWMsIGRvbVN0cnVjdHVyZSwg
biwgaXNDb25uZWN0LCBpbnN0LCBpbmRleCwgc2lnbmF0dXJlKTsKICAgICB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CkBAIC0xOTYsNyArMTk4LDcgQEAgcHJvdGVjdGVkOgogICAgIFF0
UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKiBkX2Z1bmMoKSBjb25zdCB7cmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERhdGEqPihkX3B0cik7fQogCiBw
cml2YXRlOgotICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQg
aW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmKTsKKyAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9k
KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImLCBib29sIGlzQ29ubmVj
dCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5Jik7
CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChFeGVjU3RhdGUqIGV4ZWMpOwpJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4NTgpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wOC0xMCAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFj
dG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4gc3RhdGljIGNyZWF0ZSBtZXRob2RzIHJhdGhl
ciB0aGFuIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjUzNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIGFueSBhbGxvY2F0aW9uIHRoYXQgd2FzIHRha2luZyBwbGFjZSBpbiB0
aGUgaW5pdGlhbGl6YXRpb24gbGlzdHMgb2YgYW55IG9iamVjdHMgdGhhdCAKKyAgICAgICAgaW5o
ZXJpdCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGZyb20gSlNDZWxsIG91dCBpbnRvIHRoZWlyIHN0
YXRpYyBjcmVhdGUgbWV0aG9kcy4gIFRoaXMgaXMgCisgICAgICAgIHBhcnQgb2YgYSBsYXJnZXIg
cmVmYWN0b3JpbmcgdG8gbWluaW1pemUgb3IgZWxpbWluYXRlIHRoZSB1c2Ugb2YgY29uc3RydWN0
b3JzIGluIHRoZXNlIAorICAgICAgICBjbGFzc2VzLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRob2Q6OlByb3h5UnVu
dGltZU1ldGhvZCk6CisKIDIwMTEtMDgtMTAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAw
NApJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUlu
c3RhbmNlLm1tCShyZXZpc2lvbiA5Mjg1OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL1Byb3h5SW5zdGFuY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsxODMsMTAg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIFByb3h5UnVudGltZU1ldGhvZCogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCiAgICAgewotICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkg
UHJveHlSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZSwgbGlzdCk7CisgICAg
ICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlw
ZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAgICAgLy8gZXhlYy1nbG9iYWxE
YXRhKCkgaXMgYWxzbyBsaWtlbHkgd3JvbmcuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0
dXJlID0gZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxQcm94eVJ1bnRpbWVNZXRob2Q+KGV4ZWMp
OworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lTWV0aG9kPigq
ZXhlYy0+aGVhcCgpKSkgUHJveHlSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9t
U3RydWN0dXJlLCBuYW1lLCBsaXN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlw
ZSkKQEAgLTE5NCwxMCArMTk3LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwogCiBwcml2YXRlOgotICAgIFByb3h5UnVudGltZU1ldGhvZChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAgICAvLyBGSVhNRTogZGVwcmVj
YXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBn
bG9iYWwgb2JqZWN0Ci0gICAgICAgIC8vIGV4ZWMtZ2xvYmFsRGF0YSgpIGlzIGFsc28gbGlrZWx5
IHdyb25nLgotICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlPFByb3h5UnVudGltZU1ldGhvZD4oZXhlYyksIG5hbWUsIGxp
c3QpCisgICAgUHJveHlSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQorICAgICAgICA6IFJ1bnRpbWVNZXRo
b2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103920</attachid>
            <date>2011-08-15 09:57:34 -0700</date>
            <delta_ts>2011-08-15 11:06:06 -0700</delta_ts>
            <desc>Revised patch</desc>
            <filename>bug-65347-20110815095733.patch</filename>
            <type>text/plain</type>
            <size>32912</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IGUz
YTcwNGFmZTUzYjcyNzZkMGZlMWUxYWE4MDkwOWJlZTM2MzdmYmYuLmNkMTY3YjI4OGRjZDNiNTNl
YTY5NjEyMzhiNmQ3NzY4OTEzNWU2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDExLTA4LTE1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgSlMgb2JqZWN0cyB0byBhbGxvY2F0ZSBpbiBzdGF0
aWMgY3JlYXRlIG1ldGhvZHMgcmF0aGVyIHRoYW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgYWxsIGNhbGxzIHRvIGRl
cHJlY2F0ZWRHZXRET01PYmplY3QgZnJvbSBpbml0aWFsaXphdGlvbiBsaXN0cyBhcyBwYXJ0IG9m
IGEgCisgICAgICAgIGxhcmdlciByZWZhY3RvcmluZyB0byBnZXQgcmlkIG9mIGFsbCBhbGxvY2F0
aW9uIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAqIEpTUnVuLmNwcDoKKyAgICAg
ICAgKEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBK
U1J1bi5oOgorICAgICAgICAoSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGUpOgorCiAyMDExLTA4
LTEyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQmUgbW9yZSBmb3J3
YXJkLWxvb2tpbmcgaW4gdGhlIGNob2ljZSBvZiBjb21waWxlci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4u
Y3BwCmluZGV4IDZhMzFhNzk5ODYxM2IzYzNhZDU3M2ViOTc5NmI5ZjRkNTQ4YjgyMDkuLjhjODhm
ODVmMzIwZTNlZTBjMjljMWQ5ZTI0NjEwYjE0MjYyZDM4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVu
LmNwcApAQCAtMzMsMTAgKzMzLDEwIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxl
dGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVl
R2xvYmFsT2JqZWN0OjpKU0dsdWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVj
dDo6SlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogdXNlck9iamVjdFN0cnVjdHVyZSwgSlNGbGFncyBmbGFn
cykKICAgICA6IEpTR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1f
ZmxhZ3MoZmxhZ3MpCi0gICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgVXNl
ck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgpKSkKKyAgICAs
IG1fdXNlck9iamVjdFN0cnVjdHVyZShnbG9iYWxEYXRhLCB1c2VyT2JqZWN0U3RydWN0dXJlKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCmluZGV4IGFhZWNjYWVhMjJhMGVkYWJhNjA2MDFkNjQx
YWI1MDA1OTdmZTE2OTQuLjJmZDIzODcyM2IzNzU2ZDVlYzc1MDc0NjQxZmIyNGNhYTBhNjAxYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1J1bi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU3Ryb25nLmg+CiAjaW5jbHVkZSAiSlNCYXNlLmgiCiAjaW5jbHVkZSAiSlNVdGls
cy5oIgorI2luY2x1ZGUgIlVzZXJPYmplY3RJbXAuaCIKIAogY2xhc3MgSlNHbHVlR2xvYmFsT2Jq
ZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKICAgICBwdWJsaWM6CkBAIC0zOSwxNCArNDAs
MTUgQEAgY2xhc3MgSlNHbHVlR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsK
IAogICAgICAgICBzdGF0aWMgSlNHbHVlR2xvYmFsT2JqZWN0KiBjcmVhdGUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncyA9IGtKU0Zs
YWdOb25lKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNHbHVlR2xvYmFsT2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0dsdWVHbG9iYWxPYmplY3Qo
Z2xvYmFsRGF0YSwgc3RydWN0dXJlLCBmbGFncyk7CisgICAgICAgICAgICBTdHJ1Y3R1cmUqIHVz
ZXJPYmplY3RTdHJ1Y3R1cmUgPSBVc2VyT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
RGF0YSwganNOdWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpT
R2x1ZUdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNHbHVlR2xvYmFsT2JqZWN0KGds
b2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVyZSwgZmxhZ3MpOwogICAgICAg
ICB9CiAKICAgICAgICAgSlNGbGFncyBGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0K
ICAgICAgICAgU3RydWN0dXJlKiB1c2VyT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4g
bV91c2VyT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBK
U0dsdWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNGbGFncyA9IGtK
U0ZsYWdOb25lKTsKKyAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSosIFN0cnVjdHVyZSosIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CiAgICAgICAgIAog
ICAgICAgICBKU0ZsYWdzIG1fZmxhZ3M7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1fdXNl
ck9iamVjdFN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YWZkYmEyNGM4ODVjNWRlYmMwYTE4NDg0
MWNjOGNiOTIyYTdjZTJmLi42ZTk0YTZiNGQzYTQyOWY3MTQ5M2JmNzI4NzE2N2MzODQ1NTQxZTAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMDgtMTUgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBKUyBvYmplY3Rz
IHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUgbWV0aG9kcyByYXRoZXIgdGhhbiBjb25zdHJ1
Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLgorCisgICAgICAgIFJlbW92ZWQgYWxsIGNhbGxzIHRvIGRlcHJlY2F0ZWRHZXRE
T01PYmplY3QgZnJvbSBpbml0aWFsaXphdGlvbiBsaXN0cyBhcyBwYXJ0IG9mIGEgCisgICAgICAg
IGxhcmdlciByZWZhY3RvcmluZyB0byBnZXQgcmlkIG9mIGFsbCBhbGxvY2F0aW9uIGR1cmluZyBp
bml0aWFsaXphdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgor
ICAgICAgICAqIGJyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OkNSdW50aW1lT2JqZWN0OjpDUnVudGltZU9iamVjdCk6CisgICAgICAgICogYnJpZGdl
L2MvQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lT2Jq
ZWN0OjpjcmVhdGUpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVNZXRob2Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpDUnVudGltZU1ldGhvZDo6Q1J1bnRpbWVNZXRob2QpOgorICAgICAgICAqIGJy
aWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAgIChKYXZhUnVudGltZU1l
dGhvZDo6Y3JlYXRlKToKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9kOjpKYXZhUnVudGltZU1l
dGhvZCk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVPYmplY3Q6OkphdmFSdW50aW1lT2Jq
ZWN0KToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAg
ICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpP
YmpjRmFsbGJhY2tPYmplY3RJbXA6OmNyZWF0ZSk6CisgICAgICAgICogYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0
SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXApOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9pbnN0
YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVPYmplY3Q6OmNyZWF0
ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9i
amVjdCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UXRQaXhtYXBSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UXRQaXhtYXBSdW50aW1lT2JqZWN0OjpRdFBpeG1hcFJ1bnRpbWVP
YmplY3QpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGhvZDo6UXRSdW50aW1lTWV0aG9kKToKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVudGltZU1ldGFNZXRob2Qp
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6UXRS
dW50aW1lQ29ubmVjdGlvbk1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUu
aDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFNZXRob2Q6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpjcmVh
dGUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6
UnVudGltZUFycmF5OjpSdW50aW1lQXJyYXkpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorCiAyMDExLTA4LTEzICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGZvcndhcmQgZGVjbGFyYXRpb24gb2YgLVtX
ZWJVbmRlZmluZWQgZGVhbGxvY10gdG8gYXBwZWFzZSB0aGUgYm90IGdvZHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDFjZDJkN2NmZTUxN2E2YzMwMmI5
ZjYxNDIzMGU5M2ZiZTE3YzM5ZDIuLmVmMmJkMTkyZjg5N2I4NjdhMGE5OTA1MWRkODFjY2E0ODVj
ZDRmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU3R5bGVCYXNlLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFr
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9Mb29rdXAuaD4KKyNpbmNsdWRlIDxydW50aW1lL09iamVj
dFByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50
aW1lT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNw
cAppbmRleCBkMzIyZGY0MDVjYTg4OGZhOTNhYWU0NTZkYjQ2ODg0ZmRkMGRhZTc1Li5jNjNlNTg2
ZDIxYzFlMmFjNjY3OTI2MzE4NjMzMmIwYzUwMTE1OGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2MvQ1J1bnRpbWVPYmplY3QuY3BwCkBAIC0zNywxMCArMzcsOCBAQCBuYW1lc3BhY2UgQmlu
ZGluZ3MgewogCiBjb25zdCBDbGFzc0luZm8gQ1J1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIkNS
dW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCi1DUnVudGlt
ZU9iamVjdDo6Q1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPENJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgLy8gRklY
TUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0
aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmln
aHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9i
YWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8Q1J1bnRpbWVPYmpl
Y3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK0NSdW50aW1lT2JqZWN0OjpDUnVudGltZU9iamVjdChFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBQYXNzUmVmUHRyPENJbnN0YW5jZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2Jq
ZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKICAgICBBU1NF
UlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2MvQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1l
T2JqZWN0LmgKaW5kZXggZmJmYjViZTdlYzZkMWYxMjFjN2I4MzExMjA5N2RmMjRkNTgwMGFmOC4u
NzljMzI4ZjY4ZGJjMDY5MTI5MzQ4NjgxMGRlZDdiMWE2ODFlMjY5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2lu
Y2x1ZGUgInJ1bnRpbWVfb2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDEsNyArNDIs
MTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIENSdW50aW1lT2JqZWN0KiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPENJbnN0
YW5jZT4gaW5zdGFuY2UpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
Q1J1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBDUnVudGltZU9iamVjdChleGVjLCBnbG9i
YWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVj
dAorICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3Qg
Zm9yICJpIi4KKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1lT2JqZWN0PihleGVjKTsKKyAgICAgICAgcmV0
dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgQ1J1
bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIH5DUnVudGltZU9iamVjdCgpOwpAQCAtNTYsNyArNjAsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIENSdW50aW1lT2JqZWN0KEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+KTsKKyAgICBDUnVudGlt
ZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NSZWZQ
dHI8Q0luc3RhbmNlPik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2Uu
Y3BwCmluZGV4IGQyMjgwYzVjMzdmM2VhODI4NjVmZDMxMTMyZGViZmY0N2IwZjEzMDUuLjM2Y2E4
MjkzNmU3NzgwODU4NDU2MDRhNjg0ODkxNTRkZjQ0YjE5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC0xMTUsNyArMTE1LDEwIEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBDUnVudGltZU1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhv
ZExpc3QmIGxpc3QpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8Q1J1
bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBDUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxP
YmplY3QsIG5hbWUsIGxpc3QpOworICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0
cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0
CisgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBm
b3IgImkiLgorICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmU8Q1J1bnRpbWVNZXRob2Q+KGV4ZWMpOworICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8Q1J1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBDUnVu
dGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwgbGlzdCk7
CiAgICAgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMjYsMTAgKzEyOSw4IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToK
LSAgICBDUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBs
aXN0KQotICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRo
ZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgICAgIC8vIFdl
IG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgICAg
ICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVk
R2V0RE9NU3RydWN0dXJlPENSdW50aW1lTWV0aG9kPihleGVjKSwgbmFtZSwgbGlzdCkKKyAgICBD
UnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5n
czo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBsaXN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGlu
aGVyaXRzKCZzX2luZm8pKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAppbmRleCA1YTllZGJiOGQ3NzhkNzQxNmI4MWFjYmY0
ZGVlNWRlYjhlMDIyNDc0Li40OGMyNmYzNTMxODE0ODlhN2U3MmNmM2U3NjQ3NzYyY2Y4OWE0YmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VK
U0MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpT
Qy5jcHAKQEAgLTEyMCw3ICsxMjAsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEphdmFSdW50
aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlz
dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU1l
dGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVj
dCwgbmFtZSwgbGlzdCk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0
dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAg
ICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAi
aSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRl
ZEdldERPTVN0cnVjdHVyZTxKYXZhUnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJldHVy
biBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEph
dmFSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBuYW1lLCBs
aXN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTEzMSwxMCArMTM0
LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiBwcml2
YXRlOgotICAgIEphdmFSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhv
ZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
IHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAg
ICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIu
Ci0gICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVNZXRob2Q+KGV4ZWMpLCBuYW1lLCBs
aXN0KQorICAgIEphdmFSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQorICAgICAgICA6IFJ1bnRpbWVNZXRo
b2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcAppbmRleCAwNzdjZWE5
NDE1ZGRkOWYzYmM1NjcxMTUxZmRhZDZhZGIwODUzMzAxLi5mZmZlODU2ZGEwZDVlNTFiNjgyOGYy
NmY1ZGExMWUxNmE3MTU4ZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwCkBAIC0zNSwxMCArMzUsOCBAQCBuYW1lc3BhY2Ug
QmluZGluZ3MgewogCiBjb25zdCBDbGFzc0luZm8gSmF2YVJ1bnRpbWVPYmplY3Q6OnNfaW5mbyA9
IHsgIkphdmFSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9Owog
Ci1KYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gaW5z
dGFuY2UpCi0gICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUg
cHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgIC8vIFdlIG5lZWQg
dG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgIDogUnVudGlt
ZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1
Y3R1cmU8SmF2YVJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK0phdmFSdW50aW1lT2Jq
ZWN0OjpKYXZhUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5j
ZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlLCBpbnN0YW5jZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgK
aW5kZXggMGYzMDdjYjk0N2EyNGYzMGM3MzdjNTI0MTJhNWQxZDc3NjFkNDkwNC4uODhlMWUzYjgy
YTI1OGEwNTkwYWZhN2YzZTQxYmJjOWQwYjE0OGVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aWZuZGVmIEphdmFSdW50aW1lT2JqZWN0X2gKICNkZWZpbmUgSmF2YVJ1bnRpbWVPYmplY3RfaAog
CisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAicnVudGltZV9vYmplY3QuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zOSw3ICs0MCwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgSmF2YVJ1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SmF2YUluc3RhbmNlPiBqYXZhSW5zdCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU9iamVjdD4o
KmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgamF2
YUluc3QpOworICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2Vz
IHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8v
IFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgorICAg
ICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmU8SmF2YVJ1bnRpbWVPYmplY3Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKYXZhUnVudGlt
ZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgamF2YUluc3QpOwogICAg
IH0KIAogICAgIHZpcnR1YWwgfkphdmFSdW50aW1lT2JqZWN0KCk7CkBAIC01NCw3ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgSmF2YVJ1bnRpbWVPYmplY3QoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4pOworICAgIEph
dmFSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
UGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+KTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggNTc0YzNjN2Q5MDI1MmQ3NjcwNGQ2MGQzOWRmMzAw
NWE4YTNmNWM0MS4uZDgwMTkwMTA2NzU5ZTMxNjBkZjUzZThiM2IxZGYwNzQ2NTBjNzZlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgS0pTX0JJTkRJTkdTX09CSkNfUlVOVElNRV9ICiAKICNpbmNsdWRlICJCcmlk
Z2VKU0MuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJvYmpjX2hlYWRl
ci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgpAQCAtOTYsNyArOTcsOSBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmpjSW5zdGFuY2UqIGluc3RhbmNl
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgewotICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8T2JqY0ZhbGxiYWNrT2JqZWN0SW1wPigqZXhlYy0+aGVhcCgpKSkg
T2JqY0ZhbGxiYWNrT2JqZWN0SW1wKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5zdGFuY2UsIHByb3Bl
cnR5TmFtZSk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVz
ZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAgICAg
U3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0
dXJlPE9iamNGYWxsYmFja09iamVjdEltcD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFs
bG9jYXRlQ2VsbDxPYmpjRmFsbGJhY2tPYmplY3RJbXA+KCpleGVjLT5oZWFwKCkpKSBPYmpjRmFs
bGJhY2tPYmplY3RJbXAoZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlLCBwcm9w
ZXJ0eU5hbWUpOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpA
QCAtMTE0LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgT2JqY0Zh
bGxiYWNrT2JqZWN0SW1wKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgT2JqY0luc3RhbmNl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKKyAgICBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1
Y3R1cmVGbGFnczsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5tbQppbmRleCAyMjYyY2Q2OTk4ODkwMjM1NzY3Y2VmYTZmMzIxZjY1ZTZmNmIwZmYzLi43
NTBiYzdlZWZkZTFlMzhhMTM2NzZjZWFmMDkyMmRlNzFmODU5OWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVk
ZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJv
dG90eXBlLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTE5Nyw5ICsxOTYsOCBAQCB1bnNpZ25lZCBpbnQgT2JqY0FycmF5OjpnZXRM
ZW5ndGgoKSBjb25zdAogCiBjb25zdCBDbGFzc0luZm8gT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpz
X2luZm8gPSB7ICJPYmpjRmFsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
OjpzX2luZm8sIDAsIDAgfTsKIAotT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tP
YmplY3RJbXAoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBP
YmpjSW5zdGFuY2UqIGksIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLSAgICAvLyBG
SVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9m
IHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qo
Z2xvYmFsT2JqZWN0LCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPE9iamNGYWxsYmFja09iamVj
dEltcD4oZXhlYykpCitPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdElt
cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgT2Jq
Y0luc3RhbmNlKiBpLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisgICAgOiBKU09i
amVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBfaW5z
dGFuY2UoaSkKICAgICAsIF9pdGVtKHByb3BlcnR5TmFtZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfaW5zdGFuY2UuY3BwCmluZGV4IGE5Y2E0ODBmMDI2ODZjMmUyOGMxOTk3NGZmNzY0
NWM1MTQ1MGQwMGYuLjIwOWQ1ZWNhOWJlMzVjMDkzYThhZjE1MzdjOTg2YjVhNDVjM2Q4ZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcApAQCAtNTQsNyArNTQsOCBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUXRSdW50aW1lT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPEluc3RhbmNl
PiBpbnN0YW5jZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1
bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFs
T2JqZWN0LCBpbnN0YW5jZSk7CisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2Vi
Q29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFJ1bnRpbWVPYmplY3Q+KGV4ZWMpOwor
ICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lT2JqZWN0PigqZXhlYy0+
aGVhcCgpKSkgUXRSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJl
LCBpbnN0YW5jZSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19p
bmZvOwpAQCAtNzYsMTMgKzc3LDEzIEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBSdW50aW1lT2JqZWN0OjpTdHJ1Y3R1cmVGbGFncyB8IE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW47CiAKIHByaXZhdGU6Ci0gICAgUXRSdW50aW1lT2JqZWN0KEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOworICAgIFF0
UnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBh
c3NSZWZQdHI8SW5zdGFuY2U+KTsKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBRdFJ1bnRpbWVPYmpl
Y3Q6OnNfaW5mbyA9IHsgIlF0UnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8s
IDAsIDAgfTsKIAotUXRSdW50aW1lT2JqZWN0OjpRdFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPEluc3RhbmNlPiBp
bnN0YW5jZSkKLSAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJDb3Jl
OjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU9iamVjdD4oZXhlYyksIGluc3Rh
bmNlKQorUXRSdW50aW1lT2JqZWN0OjpRdFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1Jl
ZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCmluZGV4IDM3OGU2YzNjNzU4M2IzNTdiNjli
NjdhOWQ1MWY2ODZlNTBiNWU3MjcuLjRmYWM1MjAxZDZkZDMxNWQzMGU5ZmY5MzI4ODMwM2FlNzIy
MDdjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50
aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNIVE1M
SW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIKQEAgLTIwMiw3ICsyMDMs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUXRQaXhtYXBSdW50aW1lT2JqZWN0KiBjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PEluc3RhbmNlPiBpbnN0YW5jZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxRdFBpeG1hcFJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBRdFBpeG1hcFJ1bnRp
bWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnN0YW5jZSk7CisgICAgICAgIFN0cnVjdHVy
ZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFBp
eG1hcFJ1bnRpbWVPYmplY3Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8UXRQaXhtYXBSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgUXRQaXhtYXBSdW50aW1l
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBpbnN0YW5jZSk7CiAgICAg
fQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0yMTYsMTEgKzIxOCwx
MSBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gUnVudGltZU9iamVjdDo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVu
OwogCiBwcml2YXRlOgotICAgIFF0UGl4bWFwUnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCosIFBhc3NSZWZQdHI8SW5zdGFuY2U+KTsKKyAgICBRdFBpeG1hcFJ1bnRpbWVP
YmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRy
PEluc3RhbmNlPik7CiB9OwogCi1RdFBpeG1hcFJ1bnRpbWVPYmplY3Q6OlF0UGl4bWFwUnVudGlt
ZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBh
c3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQotICAgIDogUnVudGltZU9iamVjdChleGVjLCBn
bG9iYWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRQaXhtYXBS
dW50aW1lT2JqZWN0PihleGVjKSwgaW5zdGFuY2UpCitRdFBpeG1hcFJ1bnRpbWVPYmplY3Q6OlF0
UGl4bWFwUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPEluc3RhbmNlPiBpbnN0
YW5jZSkKKyAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUs
IGluc3RhbmNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAK
aW5kZXggMzMwZjRjYjNlMzMzMjE0Y2RjMzBmZjU5MzUyMzQ0ZmRkOTAxNTFkNi4uODJlYmQ5ODNj
OWE2OWI4YmUxZGVkMDk0YWNlODY4YTI3MDM3ZmNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcApAQCAtMTAwNiw4ICsxMDA2LDggQEAgSlNWYWx1ZSBjb252ZXJ0UVZh
cmlhbnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290
LCBjb24KIAogY29uc3QgQ2xhc3NJbmZvIFF0UnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUXRS
dW50aW1lTWV0aG9kIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwgMCB9OwogCi1RdFJ1
bnRpbWVNZXRob2Q6OlF0UnVudGltZU1ldGhvZChRdFJ1bnRpbWVNZXRob2REYXRhKiBkZCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgUGFzc1JlZlB0cjxRdEluc3Rh
bmNlPiBpbnN0KQotICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRS
dW50aW1lTWV0aG9kPihleGVjKSwgaWRlbnQpCitRdFJ1bnRpbWVNZXRob2Q6OlF0UnVudGltZU1l
dGhvZChRdFJ1bnRpbWVNZXRob2REYXRhKiBkZCwgRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIFBhc3NSZWZQdHI8UXRJbnN0YW5j
ZT4gaW5zdCkKKyAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJ1Y3R1cmUsIGlkZW50KQogICAgICwgZF9wdHIo
ZGQpCiB7CiAgICAgUVdfRChRdFJ1bnRpbWVNZXRob2QpOwpAQCAtMTQyMCw4ICsxNDIwLDggQEAg
c3RhdGljIGludCBmaW5kU2lnbmFsSW5kZXgoY29uc3QgUU1ldGFPYmplY3QqIG1ldGEsIGludCBp
bml0aWFsSW5kZXgsIFFCeXRlQXJyYXkKICAgICByZXR1cm4gaW5kZXg7CiB9CiAKLVF0UnVudGlt
ZU1ldGFNZXRob2Q6OlF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgs
IGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpCi0gICAgOiBR
dFJ1bnRpbWVNZXRob2QgKG5ldyBRdFJ1bnRpbWVNZXRhTWV0aG9kRGF0YSgpLCBleGVjLCBpZGVu
dCwgaW5zdCkKK1F0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0
YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQs
IFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5
JiBzaWduYXR1cmUsIGJvb2wgYWxsb3dQcml2YXRlKQorICAgIDogUXRSdW50aW1lTWV0aG9kIChu
ZXcgUXRSdW50aW1lTWV0YU1ldGhvZERhdGEoKSwgZXhlYywgc3RydWN0dXJlLCBpZGVudCwgaW5z
dCkKIHsKICAgICBRV19EKFF0UnVudGltZU1ldGFNZXRob2QpOwogICAgIGQtPm1fc2lnbmF0dXJl
ID0gc2lnbmF0dXJlOwpAQCAtMTU2NCw4ICsxNTY0LDggQEAgSlNWYWx1ZSBRdFJ1bnRpbWVNZXRh
TWV0aG9kOjpkaXNjb25uZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFz
ZSwKIAogUU11bHRpTWFwPFFPYmplY3QqLCBRdENvbm5lY3Rpb25PYmplY3QqPiBRdFJ1bnRpbWVD
b25uZWN0aW9uTWV0aG9kOjpjb25uZWN0aW9uczsKIAotUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhv
ZDo6UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50LCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0
LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKLSAgICA6IFF0UnVudGlt
ZU1ldGhvZCAobmV3IFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKCksIGV4ZWMsIGlkZW50
LCBpbnN0KQorUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6UXRSdW50aW1lQ29ubmVjdGlvbk1l
dGhvZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudCwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwg
aW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUpCisgICAgOiBRdFJ1bnRpbWVN
ZXRob2QgKG5ldyBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kRGF0YSgpLCBleGVjLCBzdHJ1Y3R1
cmUsIGlkZW50LCBpbnN0KQogewogICAgIFFXX0QoUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCmluZGV4IDJiZTQyZjRhMjE5N2Rh
YThlMDYyOGQwODE1M2EyZWRkNDEwNTk3NDQuLmQ0OTdlY2E5NTUyNTJmYmE1Yjk2ZGVkODkwODI4
MGQ1ZWZjYzU0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaApAQCAtMjEs
NiArMjEsNyBAQAogI2RlZmluZSBCSU5ESU5HU19RVF9SVU5USU1FX0hfCiAKICNpbmNsdWRlICJC
cmlkZ2VKU0MuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKYXZhU2Ny
aXB0LmgiCiAjaW5jbHVkZSAiV2Vhay5oIgogI2luY2x1ZGUgInF0X2luc3RhbmNlLmgiCkBAIC0x
NDUsMTggKzE0NiwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyB8IEludGVybmFsRnVuY3Rpb246OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbjsKIAogICAgIFF0UnVudGltZU1ldGhvZERhdGEgKmRfZnVuYygpIGNv
bnN0IHtyZXR1cm4gZF9wdHI7fQotICAgIFF0UnVudGltZU1ldGhvZChRdFJ1bnRpbWVNZXRob2RE
YXRhICpkZCwgRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZuLCBQYXNzUmVmUHRy
PFF0SW5zdGFuY2U+IGluc3QpOworICAgIFF0UnVudGltZU1ldGhvZChRdFJ1bnRpbWVNZXRob2RE
YXRhICpkZCwgRXhlY1N0YXRlICosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXIgJm5hbWUs
IFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4pOwogICAgIFF0UnVudGltZU1ldGhvZERhdGEgKmRfcHRy
OwogfTsKIAotY2xhc3MgUXRSdW50aW1lTWV0YU1ldGhvZCA6IHB1YmxpYyBRdFJ1bnRpbWVNZXRo
b2QKLXsKK2NsYXNzIFF0UnVudGltZU1ldGFNZXRob2QgOiBwdWJsaWMgUXRSdW50aW1lTWV0aG9k
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFF0UnVudGltZU1ldGhvZCBCYXNlOwogCiAgICAgc3Rh
dGljIFF0UnVudGltZU1ldGFNZXRob2QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIG4sIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25z
dCBRQnl0ZUFycmF5JiBzaWduYXR1cmUsIGJvb2wgYWxsb3dQcml2YXRlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZU1ldGFNZXRob2Q+KCpleGVjLT5o
ZWFwKCkpKSBRdFJ1bnRpbWVNZXRhTWV0aG9kKGV4ZWMsIG4sIGluc3QsIGluZGV4LCBzaWduYXR1
cmUsIGFsbG93UHJpdmF0ZSk7CisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2Vi
Q29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFJ1bnRpbWVNZXRob2Q+KGV4ZWMpOwor
ICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lTWV0YU1ldGhvZD4oKmV4
ZWMtPmhlYXAoKSkpIFF0UnVudGltZU1ldGFNZXRob2QoZXhlYywgZG9tU3RydWN0dXJlLCBuLCBp
bnN0LCBpbmRleCwgc2lnbmF0dXJlLCBhbGxvd1ByaXZhdGUpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTE2OSw3ICsxNzAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUXRS
dW50aW1lTWV0YU1ldGhvZERhdGEqIGRfZnVuYygpIGNvbnN0IHtyZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxRdFJ1bnRpbWVNZXRhTWV0aG9kRGF0YSo+KGRfcHRyKTt9CiAKIHByaXZhdGU6Ci0gICAg
UXRSdW50aW1lTWV0YU1ldGhvZChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUGFzc1Jl
ZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiwgYm9vbCBhbGxv
d1ByaXZhdGUpOworICAgIFF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiwgU3RydWN0dXJl
KiwgY29uc3QgSWRlbnRpZmllciYsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4sIGludCBpbmRleCwg
Y29uc3QgUUJ5dGVBcnJheSYsIGJvb2wgYWxsb3dQcml2YXRlKTsKIAogICAgIHZpcnR1YWwgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsKEV4ZWNTdGF0ZSogZXhlYyk7CkBAIC0xODUsNyArMTg2LDggQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QqIGNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG4sIGJvb2wgaXNDb25uZWN0LCBQYXNz
UmVmUHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2ln
bmF0dXJlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGlt
ZUNvbm5lY3Rpb25NZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0
aG9kKGV4ZWMsIG4sIGlzQ29ubmVjdCwgaW5zdCwgaW5kZXgsIHNpZ25hdHVyZSk7CisgICAgICAg
IFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVj
dHVyZTxRdFJ1bnRpbWVNZXRob2Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0
ZUNlbGw8UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGlt
ZUNvbm5lY3Rpb25NZXRob2QoZXhlYywgZG9tU3RydWN0dXJlLCBuLCBpc0Nvbm5lY3QsIGluc3Qs
IGluZGV4LCBzaWduYXR1cmUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
QEAgLTE5Niw3ICsxOTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUXRSdW50aW1lQ29ubmVjdGlvbk1l
dGhvZERhdGEqIGRfZnVuYygpIGNvbnN0IHtyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxRdFJ1bnRp
bWVDb25uZWN0aW9uTWV0aG9kRGF0YSo+KGRfcHRyKTt9CiAKIHByaXZhdGU6Ci0gICAgUXRSdW50
aW1lQ29ubmVjdGlvbk1ldGhvZChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCBp
c0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5dGVB
cnJheSYpOworICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoRXhlY1N0YXRlKiwgU3RydWN0
dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5z
dGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmKTsKIAogICAgIHZpcnR1YWwgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsKEV4ZWNTdGF0ZSogZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5jcHAKaW5kZXggZTNjOGY1NzM3ZTMyYjkyMjAzZGU5NTgwZDVlZmI5Y2Y1
YmI4M2ZjNi4uZDA1NjQ5NGVkODBhYTFkMzkxZmRlMGFiZDA5ZWRhNDIwNDI5MWI1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtMzcsMTAgKzM3LDEwIEBAIG5h
bWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7
ICJSdW50aW1lQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCAwIH07CiAKLVJ1bnRpbWVBcnJh
eTo6UnVudGltZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgQmluZGluZ3M6OkFycmF5KiBhcnJheSkK
K1J1bnRpbWVBcnJheTo6UnVudGltZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCiAgICAgLy8gRklYTUU6IGRlcHJlY2F0
ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xv
YmFsIG9iamVjdAogICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9i
amVjdCBmb3IgImFycmF5Ii4KLSAgICA6IEpTQXJyYXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlPFJ1bnRpbWVBcnJheT4oZXhlYykpCisgICAgOiBKU0FycmF5
KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAgICAgc2V0U3ViY2xhc3NEYXRhKGFycmF5KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oCmluZGV4IDI1NzI4ZmI2NjkxZTBjNjdlMzQ5OTBhM2QzMGY2Y2FiZDgw
NDI4NzAuLjQ5ZTM5M2Y4NzlmNzZkN2FjM2UwYzg1ZDMwNzM2YTZkNzU2NjZmZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBS
VU5USU1FX0FSUkFZX0hfCiAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKKyNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKICNpbmNsdWRlIDxydW50aW1lL0FycmF5UHJvdG90eXBlLmg+CiAKIG5hbWVz
cGFjZSBKU0MgewpAQCAtMzcsNyArMzgsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUnVudGlt
ZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFJ1bnRpbWVBcnJheT4oKmV4
ZWMtPmhlYXAoKSkpIFJ1bnRpbWVBcnJheShleGVjLCBhcnJheSk7CisgICAgICAgIFN0cnVjdHVy
ZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxSdW50
aW1lQXJyYXk+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UnVudGlt
ZUFycmF5PigqZXhlYy0+aGVhcCgpKSkgUnVudGltZUFycmF5KGV4ZWMsIGRvbVN0cnVjdHVyZSwg
YXJyYXkpOwogICAgIH0KIAogICAgIHR5cGVkZWYgQmluZGluZ3M6OkFycmF5IEJpbmRpbmdzQXJy
YXk7CkBAIC03Myw3ICs3NSw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6
Ci0gICAgUnVudGltZUFycmF5KEV4ZWNTdGF0ZSosIEJpbmRpbmdzOjpBcnJheSopOworICAgIFJ1
bnRpbWVBcnJheShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6QXJyYXkqKTsKICAg
ICBzdGF0aWMgSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3Qg
SWRlbnRpZmllciYpOwogICAgIHN0YXRpYyBKU1ZhbHVlIGluZGV4R2V0dGVyKEV4ZWNTdGF0ZSos
IEpTVmFsdWUsIHVuc2lnbmVkKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA1N2Q1YWFiYzAxNTUzOTBlZmQwM2FkNWI3YjgzNzFhOWE2Y2UyYzA5Li5m
NGQwYmFkZTVlOGJmYWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJydW50aW1lX21ldGhvZC5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvRXJyb3IuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc0MTI5MzUyNGU5
NjAyMjhlNTQyNjI1ZTcyYjQyMDA4ZTA4YTI2NzYuLjQ3OTc0ZDlhZGU2MGU2MmFhZmM4YTgwZmEz
NmM2MTM3ZDdhYmM5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0w
OC0xNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAg
IFJlZmFjdG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4gc3RhdGljIGNyZWF0ZSBtZXRob2Rz
IHJhdGhlciB0aGFuIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjUzNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBjYWxscyB0byBkZXByZWNhdGVkR2V0RE9NT2Jq
ZWN0IGZyb20gaW5pdGlhbGl6YXRpb24gbGlzdHMgYXMgcGFydCBvZiBhIAorICAgICAgICBsYXJn
ZXIgcmVmYWN0b3JpbmcgdG8gZ2V0IHJpZCBvZiBhbGwgYWxsb2NhdGlvbiBkdXJpbmcgaW5pdGlh
bGl6YXRpb24uCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRob2Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlByb3h5UnVudGltZU1ldGhvZDo6UHJveHlSdW50aW1lTWV0aG9kKToKKwogMjAxMS0w
OC0xMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5nZWQg
dGhlIHZhbHVlIG9mIFdlYktpdFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0UHJlZmVyZW5j
ZUtleSB0byBtYXRjaCB0aGUgbmFtaW5nIGV2ZXJ5d2hlcmUgZWxzZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCmluZGV4IGIwYWNjYTE3
N2U4MmY2YmU0YWU2MzE2OGZlMzZjNzhiMTIxODI4OWMuLmViNDljZjM0ODdhODU1NDUwOWU2ZTIx
MjYyNGJiNTg5NTFmMzhiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMTgzLDcgKzE4MywxMCBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgUHJveHlSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5n
czo6TWV0aG9kTGlzdCYgbGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxQcm94eVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBQcm94eVJ1bnRpbWVNZXRo
b2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBuYW1lLCBsaXN0KTsKKyAgICAgICAgLy8gRklYTUU6IGRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3Jv
bmcgZ2xvYmFsIG9iamVjdAorICAgICAgICAvLyBleGVjLWdsb2JhbERhdGEoKSBpcyBhbHNvIGxp
a2VseSB3cm9uZy4KKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBkZXByZWNhdGVk
R2V0RE9NU3RydWN0dXJlPFByb3h5UnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJldHVy
biBuZXcgKGFsbG9jYXRlQ2VsbDxQcm94eVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBQ
cm94eVJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIG5hbWUs
IGxpc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTk0LDEwICsx
OTcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKIHBy
aXZhdGU6Ci0gICAgUHJveHlSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1l
dGhvZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0
dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAg
ICAgICAgLy8gZXhlYy1nbG9iYWxEYXRhKCkgaXMgYWxzbyBsaWtlbHkgd3JvbmcuCi0gICAgICAg
IDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRlcHJlY2F0ZWRHZXRET01TdHJ1
Y3R1cmU8UHJveHlSdW50aW1lTWV0aG9kPihleGVjKSwgbmFtZSwgbGlzdCkKKyAgICBQcm94eVJ1
bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6
Ok1ldGhvZExpc3QmIGxpc3QpCisgICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSwgbmFtZSwgbGlzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103928</attachid>
            <date>2011-08-15 11:06:09 -0700</date>
            <delta_ts>2011-08-15 14:23:47 -0700</delta_ts>
            <desc>Fixing qt build</desc>
            <filename>bug-65347-20110815110615.patch</filename>
            <type>text/plain</type>
            <size>32887</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwNDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IGUz
YTcwNGFmZTUzYjcyNzZkMGZlMWUxYWE4MDkwOWJlZTM2MzdmYmYuLmNkMTY3YjI4OGRjZDNiNTNl
YTY5NjEyMzhiNmQ3NzY4OTEzNWU2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDExLTA4LTE1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgSlMgb2JqZWN0cyB0byBhbGxvY2F0ZSBpbiBzdGF0
aWMgY3JlYXRlIG1ldGhvZHMgcmF0aGVyIHRoYW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgYWxsIGNhbGxzIHRvIGRl
cHJlY2F0ZWRHZXRET01PYmplY3QgZnJvbSBpbml0aWFsaXphdGlvbiBsaXN0cyBhcyBwYXJ0IG9m
IGEgCisgICAgICAgIGxhcmdlciByZWZhY3RvcmluZyB0byBnZXQgcmlkIG9mIGFsbCBhbGxvY2F0
aW9uIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAqIEpTUnVuLmNwcDoKKyAgICAg
ICAgKEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBK
U1J1bi5oOgorICAgICAgICAoSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGUpOgorCiAyMDExLTA4
LTEyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQmUgbW9yZSBmb3J3
YXJkLWxvb2tpbmcgaW4gdGhlIGNob2ljZSBvZiBjb21waWxlci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4u
Y3BwCmluZGV4IDZhMzFhNzk5ODYxM2IzYzNhZDU3M2ViOTc5NmI5ZjRkNTQ4YjgyMDkuLjhjODhm
ODVmMzIwZTNlZTBjMjljMWQ5ZTI0NjEwYjE0MjYyZDM4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVu
LmNwcApAQCAtMzMsMTAgKzMzLDEwIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxl
dGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVl
R2xvYmFsT2JqZWN0OjpKU0dsdWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVj
dDo6SlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogdXNlck9iamVjdFN0cnVjdHVyZSwgSlNGbGFncyBmbGFn
cykKICAgICA6IEpTR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1f
ZmxhZ3MoZmxhZ3MpCi0gICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgVXNl
ck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgpKSkKKyAgICAs
IG1fdXNlck9iamVjdFN0cnVjdHVyZShnbG9iYWxEYXRhLCB1c2VyT2JqZWN0U3RydWN0dXJlKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCmluZGV4IGFhZWNjYWVhMjJhMGVkYWJhNjA2MDFkNjQx
YWI1MDA1OTdmZTE2OTQuLjJmZDIzODcyM2IzNzU2ZDVlYzc1MDc0NjQxZmIyNGNhYTBhNjAxYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1J1bi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU3Ryb25nLmg+CiAjaW5jbHVkZSAiSlNCYXNlLmgiCiAjaW5jbHVkZSAiSlNVdGls
cy5oIgorI2luY2x1ZGUgIlVzZXJPYmplY3RJbXAuaCIKIAogY2xhc3MgSlNHbHVlR2xvYmFsT2Jq
ZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKICAgICBwdWJsaWM6CkBAIC0zOSwxNCArNDAs
MTUgQEAgY2xhc3MgSlNHbHVlR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsK
IAogICAgICAgICBzdGF0aWMgSlNHbHVlR2xvYmFsT2JqZWN0KiBjcmVhdGUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncyA9IGtKU0Zs
YWdOb25lKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNHbHVlR2xvYmFsT2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0dsdWVHbG9iYWxPYmplY3Qo
Z2xvYmFsRGF0YSwgc3RydWN0dXJlLCBmbGFncyk7CisgICAgICAgICAgICBTdHJ1Y3R1cmUqIHVz
ZXJPYmplY3RTdHJ1Y3R1cmUgPSBVc2VyT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
RGF0YSwganNOdWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpT
R2x1ZUdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNHbHVlR2xvYmFsT2JqZWN0KGds
b2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVyZSwgZmxhZ3MpOwogICAgICAg
ICB9CiAKICAgICAgICAgSlNGbGFncyBGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0K
ICAgICAgICAgU3RydWN0dXJlKiB1c2VyT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4g
bV91c2VyT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBK
U0dsdWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNGbGFncyA9IGtK
U0ZsYWdOb25lKTsKKyAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSosIFN0cnVjdHVyZSosIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CiAgICAgICAgIAog
ICAgICAgICBKU0ZsYWdzIG1fZmxhZ3M7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1fdXNl
ck9iamVjdFN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZGI3ODJmZmFjZGQ3Njk4OTg2ZDBhNmM5
MDNlNjQ4NzdkNDRjYzM4Li45MzFlODRlNmIwM2JmNGUwOTk1NDE5NGE0MTcwMmEwNDQ1MTBiZTc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMDgtMTUgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBKUyBvYmplY3Rz
IHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUgbWV0aG9kcyByYXRoZXIgdGhhbiBjb25zdHJ1
Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLgorCisgICAgICAgIFJlbW92ZWQgYWxsIGNhbGxzIHRvIGRlcHJlY2F0ZWRHZXRE
T01PYmplY3QgZnJvbSBpbml0aWFsaXphdGlvbiBsaXN0cyBhcyBwYXJ0IG9mIGEgCisgICAgICAg
IGxhcmdlciByZWZhY3RvcmluZyB0byBnZXQgcmlkIG9mIGFsbCBhbGxvY2F0aW9uIGR1cmluZyBp
bml0aWFsaXphdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgor
ICAgICAgICAqIGJyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OkNSdW50aW1lT2JqZWN0OjpDUnVudGltZU9iamVjdCk6CisgICAgICAgICogYnJpZGdl
L2MvQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lT2Jq
ZWN0OjpjcmVhdGUpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVNZXRob2Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpDUnVudGltZU1ldGhvZDo6Q1J1bnRpbWVNZXRob2QpOgorICAgICAgICAqIGJy
aWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAgIChKYXZhUnVudGltZU1l
dGhvZDo6Y3JlYXRlKToKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9kOjpKYXZhUnVudGltZU1l
dGhvZCk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVPYmplY3Q6OkphdmFSdW50aW1lT2Jq
ZWN0KToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAg
ICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpP
YmpjRmFsbGJhY2tPYmplY3RJbXA6OmNyZWF0ZSk6CisgICAgICAgICogYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0
SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXApOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9pbnN0
YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVPYmplY3Q6OmNyZWF0
ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9i
amVjdCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UXRQaXhtYXBSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UXRQaXhtYXBSdW50aW1lT2JqZWN0OjpRdFBpeG1hcFJ1bnRpbWVP
YmplY3QpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGhvZDo6UXRSdW50aW1lTWV0aG9kKToKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVudGltZU1ldGFNZXRob2Qp
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6UXRS
dW50aW1lQ29ubmVjdGlvbk1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUu
aDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFNZXRob2Q6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpjcmVh
dGUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6
UnVudGltZUFycmF5OjpSdW50aW1lQXJyYXkpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorCiAyMDExLTA4LTE1ICBBZGFtIFJvYmVuICA8YXJv
YmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgYW4gaW5zdGFuY2Ugb2YgcGFnZVNjYWxl
RmFjdG9yQ2hhbmdlZCBJIG1pc3NlZCBpbiByOTMwNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKaW5kZXggMWNkMmQ3Y2ZlNTE3YTZjMzAyYjlmNjE0MjMwZTkzZmJl
MTdjMzlkMi4uZGI1MmQ5NmY0ZTMyMzIzYjY3NWQxM2RhZjY0MDIzN2IzYjBlNzA4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTI5LDcgKzI5LDkgQEAK
ICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVCYXNlLmgiCiAjaW5jbHVkZSA8
aGVhcC9XZWFrLmg+CisjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+CisjaW5jbHVkZSA8cnVudGltZS9PYmplY3RQcm90b3R5
cGUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAKaW5kZXgg
ZDMyMmRmNDA1Y2E4ODhmYTkzYWFlNDU2ZGI0Njg4NGZkZDBkYWU3NS4uYzYzZTU4NmQyMWMxZTJh
YzY2NzkyNjMxODYzMzJiMGM1MDExNThjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2MvQ1J1bnRpbWVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NS
dW50aW1lT2JqZWN0LmNwcApAQCAtMzcsMTAgKzM3LDggQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsK
IAogY29uc3QgQ2xhc3NJbmZvIENSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJDUnVudGltZU9i
amVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAotQ1J1bnRpbWVPYmplY3Q6
OkNSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQotICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2Jh
bCBvYmplY3QgZm9yICJpIi4KLSAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0
LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1lT2JqZWN0PihleGVj
KSwgaW5zdGFuY2UpCitDUnVudGltZU9iamVjdDo6Q1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdChleGVj
LCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7CiAgICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NS
dW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5o
CmluZGV4IGZiZmI1YmU3ZWM2ZDFmMTIxYzdiODMxMTIwOTdkZjI0ZDU4MDBhZjguLjc5YzMyOGY2
OGRiYzA2OTEyOTM0ODY4MTBkZWQ3YjFhNjgxZTI2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2MvQ1J1bnRpbWVPYmplY3QuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJy
dW50aW1lX29iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQxLDcgKzQyLDEwIEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBDUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGlu
c3RhbmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1l
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0
LCBpbnN0YW5jZSk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
IHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAg
ICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIu
CisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdl
dERPTVN0cnVjdHVyZTxDUnVudGltZU9iamVjdD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxDUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIENSdW50aW1lT2Jq
ZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBpbnN0YW5jZSk7CiAgICAgfQog
CiAgICAgdmlydHVhbCB+Q1J1bnRpbWVPYmplY3QoKTsKQEAgLTU2LDcgKzYwLDcgQEAgcHVibGlj
OgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBDUnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCosIFBhc3NSZWZQdHI8Q0luc3RhbmNlPik7CisgICAgQ1J1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPENJbnN0
YW5jZT4pOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19p
bnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRl
eCBkMjI4MGM1YzM3ZjNlYTgyODY1ZmQzMTEzMmRlYmZmNDdiMGYxMzA1Li4zNmNhODI5MzZlNzc4
MDg1ODQ1NjA0YTY4NDg5MTU0ZGY0NGIxOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2lu
c3RhbmNlLmNwcApAQCAtMTE1LDcgKzExNSwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgQ1J1
bnRpbWVNZXRob2QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBs
aXN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lTWV0
aG9kPigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBu
YW1lLCBsaXN0KTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUg
dXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAg
ICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4K
KyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlPENSdW50aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPENSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRpbWVNZXRo
b2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpOwogICAgIH0K
IAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTI2LDEwICsxMjksOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKIHByaXZhdGU6Ci0gICAgQ1J1
bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAg
ICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90
eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgICAgICAvLyBXZSBuZWVkIHRv
IHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KLSAgICAgICAgOiBSdW50
aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0
cnVjdHVyZTxDUnVudGltZU1ldGhvZD4oZXhlYyksIG5hbWUsIGxpc3QpCisgICAgQ1J1bnRpbWVN
ZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhv
ZExpc3QmIGxpc3QpCisgICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgbmFtZSwgbGlzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9q
c2MvSmF2YUluc3RhbmNlSlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFJbnN0YW5jZUpTQy5jcHAKaW5kZXggNWE5ZWRiYjhkNzc4ZDc0MTZiODFhY2JmNGRlZTVkZWI4
ZTAyMjQ3NC4uNDhjMjZmMzUzMTgxNDg5YTdlNzJjZjNlNzY0Nzc2MmNmODlhNGJmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCkBA
IC0xMjAsNyArMTIwLDEwIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKYXZhUnVudGltZU1ldGhv
ZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCiAgICAg
ewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVNZXRob2Q+KCpl
eGVjLT5oZWFwKCkpKSBKYXZhUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIG5hbWUs
IGxpc3QpOworICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2Vz
IHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8v
IFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgorICAg
ICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmU8SmF2YVJ1bnRpbWVNZXRob2Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBKYXZhUnVudGlt
ZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwgbGlzdCk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMzEsMTAgKzEzNCw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToKLSAg
ICBKYXZhUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBs
aXN0KQotICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRo
ZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgICAgIC8vIFdl
IG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgICAg
ICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVk
R2V0RE9NU3RydWN0dXJlPEphdmFSdW50aW1lTWV0aG9kPihleGVjKSwgbmFtZSwgbGlzdCkKKyAg
ICBKYXZhUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBC
aW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBsaXN0KQogICAgIHsKICAgICAgICAgQVNT
RVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAKaW5kZXggMDc3Y2VhOTQxNWRkZDlm
M2JjNTY3MTE1MWZkYWQ2YWRiMDg1MzMwMS4uZmZmZTg1NmRhMGQ1ZTUxYjY4MjhmMjZmNWRhMTFl
MTZhNzE1OGZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YVJ1bnRpbWVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFSdW50aW1lT2JqZWN0LmNwcApAQCAtMzUsMTAgKzM1LDggQEAgbmFtZXNwYWNlIEJpbmRpbmdz
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEphdmFSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJKYXZh
UnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAotSmF2YVJ1
bnRpbWVPYmplY3Q6OkphdmFSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+IGluc3RhbmNlKQot
ICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlw
ZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3Mg
aW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KLSAgICA6IFJ1bnRpbWVPYmplY3Qo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPEph
dmFSdW50aW1lT2JqZWN0PihleGVjKSwgaW5zdGFuY2UpCitKYXZhUnVudGltZU9iamVjdDo6SmF2
YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+IGluc3Rh
bmNlKQorICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
aW5zdGFuY2UpCiB7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCmluZGV4IDBm
MzA3Y2I5NDdhMjRmMzBjNzM3YzUyNDEyYTVkMWQ3NzYxZDQ5MDQuLjg4ZTFlM2I4MmEyNThhMDU5
MGFmYTdmM2U0MWJiYzlkMGIxNDhlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBK
YXZhUnVudGltZU9iamVjdF9oCiAjZGVmaW5lIEphdmFSdW50aW1lT2JqZWN0X2gKIAorI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgInJ1bnRpbWVfb2JqZWN0LmgiCiAKIG5hbWVz
cGFjZSBKU0MgewpAQCAtMzksNyArNDAsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEphdmFS
dW50aW1lT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gamF2YUluc3QpCiAgICAgewotICAg
ICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVPYmplY3Q+KCpleGVjLT5o
ZWFwKCkpKSBKYXZhUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGphdmFJbnN0KTsK
KyAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJv
dG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAgICAvLyBXZSBuZWVk
IHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KKyAgICAgICAgU3Ry
dWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
PEphdmFSdW50aW1lT2JqZWN0PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVD
ZWxsPEphdmFSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSmF2YVJ1bnRpbWVPYmplY3Qo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGphdmFJbnN0KTsKICAgICB9CiAKICAg
ICB2aXJ0dWFsIH5KYXZhUnVudGltZU9iamVjdCgpOwpAQCAtNTQsNyArNTgsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIEphdmFSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+KTsKKyAgICBKYXZhUnVudGlt
ZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NSZWZQ
dHI8SmF2YUluc3RhbmNlPik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCmluZGV4IDU3NGMzYzdkOTAyNTJkNzY3MDRkNjBkMzlkZjMwMDVhOGEzZjVj
NDEuLmQ4MDE5MDEwNjc1OWUzMTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVm
aW5lIEtKU19CSU5ESU5HU19PQkpDX1JVTlRJTUVfSAogCiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgi
CisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAib2JqY19oZWFkZXIuaCIKICNp
bmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuaD4KQEAgLTk2LDcgKzk3LDkgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIE9iamNGYWxsYmFja09iamVjdEltcCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqY0luc3RhbmNlKiBpbnN0YW5jZSwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPE9iamNGYWxsYmFja09iamVjdEltcD4oKmV4ZWMtPmhlYXAoKSkpIE9iamNGYWxs
YmFja09iamVjdEltcChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlLCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBw
cm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIFN0cnVjdHVy
ZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpj
RmFsbGJhY2tPYmplY3RJbXA+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8T2JqY0ZhbGxiYWNrT2JqZWN0SW1wPigqZXhlYy0+aGVhcCgpKSkgT2JqY0ZhbGxiYWNrT2Jq
ZWN0SW1wKGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBpbnN0YW5jZSwgcHJvcGVydHlOYW1l
KTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTExNCw3
ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE9iamNGYWxsYmFja09i
amVjdEltcChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIE9iamNJbnN0YW5jZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CisgICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgT2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxh
Z3M7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0K
aW5kZXggMjI2MmNkNjk5ODg5MDIzNTc2N2NlZmE2ZjMyMWY2NWU2ZjZiMGZmMy4uNzUwYmM3ZWVm
ZGUxZTM4YTEzNjc2Y2VhZjA5MjJkZTcxZjg1OTlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPHJ1bnRp
bWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CkBAIC0xOTcsOSArMTk2LDggQEAgdW5zaWduZWQgaW50IE9iamNBcnJheTo6Z2V0TGVuZ3RoKCkg
Y29uc3QKIAogY29uc3QgQ2xhc3NJbmZvIE9iamNGYWxsYmFja09iamVjdEltcDo6c19pbmZvID0g
eyAiT2JqY0ZhbGxiYWNrT2JqZWN0IiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZv
LCAwLCAwIH07CiAKLU9iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1w
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqY0luc3Rh
bmNlKiBpLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi0gICAgLy8gRklYTUU6IGRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3Jv
bmcgZ2xvYmFsIG9iamVjdAotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9i
amVjdCwgZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpjRmFsbGJhY2tPYmplY3RJbXA+KGV4
ZWMpKQorT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE9iamNJbnN0YW5j
ZSogaSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgIDogSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgX2luc3RhbmNlKGkp
CiAgICAgLCBfaXRlbShwcm9wZXJ0eU5hbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X2luc3RhbmNlLmNwcAppbmRleCBhOWNhNDgwZjAyNjg2YzJlMjhjMTk5NzRmZjc2NDVjNTE0NTBk
MDBmLi4yMDlkNWVjYTliZTM1YzA5M2E4YWYxNTM3Yzk4NmI1YTQ1YzNkOGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKQEAgLTU0LDcgKzU0LDggQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIFF0UnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFu
Y2UpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lT2Jq
ZWN0PigqZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwg
aW5zdGFuY2UpOworICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lT2JqZWN0PihleGVjKTsKKyAgICAgICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkp
IFF0UnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFu
Y2UpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAg
LTc2LDEzICs3NywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gUnVudGltZU9iamVjdDo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuOwogCiBwcml2YXRlOgotICAgIFF0UnVudGltZU9iamVjdChFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8SW5zdGFuY2U+KTsKKyAgICBRdFJ1bnRpbWVP
YmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRy
PEluc3RhbmNlPik7CiB9OwogCiBjb25zdCBDbGFzc0luZm8gUXRSdW50aW1lT2JqZWN0OjpzX2lu
Zm8gPSB7ICJRdFJ1bnRpbWVPYmplY3QiLCAmUnVudGltZU9iamVjdDo6c19pbmZvLCAwLCAwIH07
CiAKLVF0UnVudGltZU9iamVjdDo6UXRSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2Up
Ci0gICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViQ29yZTo6ZGVwcmVj
YXRlZEdldERPTVN0cnVjdHVyZTxRdFJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK1F0
UnVudGltZU9iamVjdDo6UXRSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5z
dGFuY2U+IGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9waXhtYXBydW50aW1lLmNwcAppbmRleCAzNzhlNmMzYzc1ODNiMzU3YjY5YjY3YTlkNTFm
Njg2ZTUwYjVlNzI3Li40ZmFjNTIwMWQ2ZGQzMTVkMzBlOWZmOTMyODgzMDNhZTcyMjA3YzFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCkBAIC0y
Myw2ICsyMyw3IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIklt
YWdlRGF0YS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTSFRNTEltYWdlRWxl
bWVudC5oIgogI2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmgiCkBAIC0yMDIsNyArMjAzLDggQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIFF0UGl4bWFwUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxJbnN0YW5j
ZT4gaW5zdGFuY2UpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRQ
aXhtYXBSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgUXRQaXhtYXBSdW50aW1lT2JqZWN0
KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5zdGFuY2UpOworICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0
cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRQaXhtYXBSdW50
aW1lT2JqZWN0PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UGl4
bWFwUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UGl4bWFwUnVudGltZU9iamVjdChl
eGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFuY2UpOwogICAgIH0KIAogICAg
IHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtMjE2LDExICsyMTgsMTEgQEAgcHJv
dGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IFJ1bnRp
bWVPYmplY3Q6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbjsKIAogcHJp
dmF0ZToKLSAgICBRdFBpeG1hcFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CisgICAgUXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxJbnN0YW5j
ZT4pOwogfTsKIAotUXRQaXhtYXBSdW50aW1lT2JqZWN0OjpRdFBpeG1hcFJ1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PEluc3RhbmNlPiBpbnN0YW5jZSkKLSAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UGl4bWFwUnVudGltZU9i
amVjdD4oZXhlYyksIGluc3RhbmNlKQorUXRQaXhtYXBSdW50aW1lT2JqZWN0OjpRdFBpeG1hcFJ1
bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCisg
ICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5j
ZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IDMz
MGY0Y2IzZTMzMzIxNGNkYzMwZmY1OTM1MjM0NGZkZDkwMTUxZDYuLjgyZWJkOTgzYzlhNjliOGJl
MWRlZDA5NGFjZTg2OGEyNzAzN2ZjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVu
dGltZS5jcHAKQEAgLTEwMDYsOCArMTAwNiw4IEBAIEpTVmFsdWUgY29udmVydFFWYXJpYW50VG9W
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdCwgY29uCiAK
IGNvbnN0IENsYXNzSW5mbyBRdFJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIlF0UnVudGltZU1l
dGhvZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIDAsIDAgfTsKIAotUXRSdW50aW1lTWV0
aG9kOjpRdFJ1bnRpbWVNZXRob2QoUXRSdW50aW1lTWV0aG9kRGF0YSogZGQsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5z
dCkKLSAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU1l
dGhvZD4oZXhlYyksIGlkZW50KQorUXRSdW50aW1lTWV0aG9kOjpRdFJ1bnRpbWVNZXRob2QoUXRS
dW50aW1lTWV0aG9kRGF0YSogZGQsIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3Qp
CisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSwgc3RydWN0dXJlLCBpZGVudCkKICAgICAsIGRfcHRyKGRkKQogewog
ICAgIFFXX0QoUXRSdW50aW1lTWV0aG9kKTsKQEAgLTE0MjAsOCArMTQyMCw4IEBAIHN0YXRpYyBp
bnQgZmluZFNpZ25hbEluZGV4KGNvbnN0IFFNZXRhT2JqZWN0KiBtZXRhLCBpbnQgaW5pdGlhbElu
ZGV4LCBRQnl0ZUFycmF5CiAgICAgcmV0dXJuIGluZGV4OwogfQogCi1RdFJ1bnRpbWVNZXRhTWV0
aG9kOjpRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnQsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBR
Qnl0ZUFycmF5JiBzaWduYXR1cmUsIGJvb2wgYWxsb3dQcml2YXRlKQotICAgIDogUXRSdW50aW1l
TWV0aG9kIChuZXcgUXRSdW50aW1lTWV0YU1ldGhvZERhdGEoKSwgZXhlYywgaWRlbnQsIGluc3Qp
CitRdFJ1bnRpbWVNZXRhTWV0aG9kOjpRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSogZXhl
YywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBQYXNzUmVm
UHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0
dXJlLCBib29sIGFsbG93UHJpdmF0ZSkKKyAgICA6IFF0UnVudGltZU1ldGhvZCAobmV3IFF0UnVu
dGltZU1ldGFNZXRob2REYXRhKCksIGV4ZWMsIHN0cnVjdHVyZSwgaWRlbnQsIGluc3QpCiB7CiAg
ICAgUVdfRChRdFJ1bnRpbWVNZXRhTWV0aG9kKTsKICAgICBkLT5tX3NpZ25hdHVyZSA9IHNpZ25h
dHVyZTsKQEAgLTE1NjQsOCArMTU2NCw4IEBAIEpTVmFsdWUgUXRSdW50aW1lTWV0YU1ldGhvZDo6
ZGlzY29ubmVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsCiAKIFFN
dWx0aU1hcDxRT2JqZWN0KiwgUXRDb25uZWN0aW9uT2JqZWN0Kj4gUXRSdW50aW1lQ29ubmVjdGlv
bk1ldGhvZDo6Y29ubmVjdGlvbnM7CiAKLVF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVu
dGltZUNvbm5lY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBp
ZGVudCwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGlu
ZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUpCi0gICAgOiBRdFJ1bnRpbWVNZXRob2Qg
KG5ldyBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kRGF0YSgpLCBleGVjLCBpZGVudCwgaW5zdCkK
K1F0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoRXhl
Y1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRl
bnQsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRl
eCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlKQorICAgIDogUXRSdW50aW1lTWV0aG9kIChu
ZXcgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERhdGEoKSwgZXhlYywgc3RydWN0dXJlLCBpZGVu
dCwgaW5zdCkKIHsKICAgICBRV19EKFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAppbmRleCAyYmU0MmY0YTIxOTdkYWE4ZTA2Mjhk
MDgxNTNhMmVkZDQxMDU5NzQ0Li5kNDk3ZWNhOTU1MjUyZmJhNWI5NmRlZDg5MDgyODBkNWVmY2M1
NGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKQEAgLTIxLDYgKzIxLDcg
QEAKICNkZWZpbmUgQklORElOR1NfUVRfUlVOVElNRV9IXwogCiAjaW5jbHVkZSAiQnJpZGdlSlND
LmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgog
I2luY2x1ZGUgIldlYWsuaCIKICNpbmNsdWRlICJxdF9pbnN0YW5jZS5oIgpAQCAtMTQ1LDE4ICsx
NDYsMTggQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMgfCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW47CiAKICAgICBRdFJ1bnRpbWVNZXRob2REYXRhICpkX2Z1bmMoKSBjb25zdCB7cmV0
dXJuIGRfcHRyO30KLSAgICBRdFJ1bnRpbWVNZXRob2QoUXRSdW50aW1lTWV0aG9kRGF0YSAqZGQs
IEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmbiwgUGFzc1JlZlB0cjxRdEluc3Rh
bmNlPiBpbnN0KTsKKyAgICBRdFJ1bnRpbWVNZXRob2QoUXRSdW50aW1lTWV0aG9kRGF0YSAqZGQs
IEV4ZWNTdGF0ZSAqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyICZuYW1lLCBQYXNzUmVm
UHRyPFF0SW5zdGFuY2U+KTsKICAgICBRdFJ1bnRpbWVNZXRob2REYXRhICpkX3B0cjsKIH07CiAK
LWNsYXNzIFF0UnVudGltZU1ldGFNZXRob2QgOiBwdWJsaWMgUXRSdW50aW1lTWV0aG9kCi17Citj
bGFzcyBRdFJ1bnRpbWVNZXRhTWV0aG9kIDogcHVibGljIFF0UnVudGltZU1ldGhvZCB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBRdFJ1bnRpbWVNZXRob2QgQmFzZTsKIAogICAgIHN0YXRpYyBRdFJ1
bnRpbWVNZXRhTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBuLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRleCwgY29uc3QgUUJ5dGVB
cnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVNZXRhTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkg
UXRSdW50aW1lTWV0YU1ldGhvZChleGVjLCBuLCBpbnN0LCBpbmRleCwgc2lnbmF0dXJlLCBhbGxv
d1ByaXZhdGUpOworICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZU1ldGFNZXRob2Q+KCpleGVjLT5oZWFw
KCkpKSBRdFJ1bnRpbWVNZXRhTWV0aG9kKGV4ZWMsIGRvbVN0cnVjdHVyZSwgbiwgaW5zdCwgaW5k
ZXgsIHNpZ25hdHVyZSwgYWxsb3dQcml2YXRlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CkBAIC0xNjksNyArMTcwLDcgQEAgcHJvdGVjdGVkOgogICAgIFF0UnVudGltZU1l
dGFNZXRob2REYXRhKiBkX2Z1bmMoKSBjb25zdCB7cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRS
dW50aW1lTWV0YU1ldGhvZERhdGEqPihkX3B0cik7fQogCiBwcml2YXRlOgotICAgIFF0UnVudGlt
ZU1ldGFNZXRob2QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBhc3NSZWZQdHI8UXRJ
bnN0YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYsIGJvb2wgYWxsb3dQcml2YXRl
KTsKKyAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0
IElkZW50aWZpZXImLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFC
eXRlQXJyYXkmLCBib29sIGFsbG93UHJpdmF0ZSk7CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdl
dENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbChFeGVjU3RhdGUqIGV4ZWMpOwpAQCAtMTg1LDcgKzE4Niw4IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuLCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxR
dEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChleGVj
LCBuLCBpc0Nvbm5lY3QsIGluc3QsIGluZGV4LCBzaWduYXR1cmUpOworICAgICAgICBTdHJ1Y3R1
cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRS
dW50aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0
UnVudGltZUNvbm5lY3Rpb25NZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kKGV4ZWMsIGRvbVN0cnVjdHVyZSwgbiwgaXNDb25uZWN0LCBpbnN0LCBpbmRleCwg
c2lnbmF0dXJlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CkBAIC0xOTYs
NyArMTk4LDcgQEAgcHJvdGVjdGVkOgogICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRh
KiBkX2Z1bmMoKSBjb25zdCB7cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZERhdGEqPihkX3B0cik7fQogCiBwcml2YXRlOgotICAgIFF0UnVudGltZUNvbm5l
Y3Rpb25NZXRob2QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgaXNDb25uZWN0
LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmKTsK
KyAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNv
bnN0IElkZW50aWZpZXImLCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiwg
aW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5Jik7CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdl
dENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbChFeGVjU3RhdGUqIGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuY3BwCmluZGV4IGUzYzhmNTczN2UzMmI5MjIwM2RlOTU4MGQ1ZWZiOWNmNWJiODNmYzYu
LmQwNTY0OTRlZDgwYWExZDM5MWZkZTBhYmQwOWVkYTQyMDQyOTFiNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTM3LDEwICszNywxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGlt
ZUFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgMCB9OwogCi1SdW50aW1lQXJyYXk6OlJ1bnRp
bWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCitSdW50aW1l
QXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmpl
Y3QKICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9y
ICJhcnJheSIuCi0gICAgOiBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgZGVwcmVjYXRlZEdl
dERPTVN0cnVjdHVyZTxSdW50aW1lQXJyYXk+KGV4ZWMpKQorICAgIDogSlNBcnJheShleGVjLT5n
bG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogICAgIHNldFN1YmNsYXNzRGF0YShhcnJheSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaAppbmRleCAyNTcyOGZiNjY5MWUwYzY3ZTM0OTkwYTNkMzBmNmNhYmQ4MDQyODcwLi40
OWUzOTNmODc5Zjc2ZDdhYzNlMGM4NWQzMDczNmE2ZDc1NjY2ZmRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUlVOVElNRV9B
UlJBWV9IXwogCiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9BcnJheVByb3RvdHlwZS5oPgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTM3LDcgKzM4LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFJ1bnRpbWVBcnJheSog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgQmluZGluZ3M6OkFycmF5KiBhcnJheSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxSdW50aW1lQXJyYXk+KCpleGVjLT5oZWFw
KCkpKSBSdW50aW1lQXJyYXkoZXhlYywgYXJyYXkpOworICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0
cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UnVudGltZUFycmF5
PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFJ1bnRpbWVBcnJheT4o
KmV4ZWMtPmhlYXAoKSkpIFJ1bnRpbWVBcnJheShleGVjLCBkb21TdHJ1Y3R1cmUsIGFycmF5KTsK
ICAgICB9CiAKICAgICB0eXBlZGVmIEJpbmRpbmdzOjpBcnJheSBCaW5kaW5nc0FycmF5OwpAQCAt
NzMsNyArNzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEpTQXJyYXk6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgotICAgIFJ1
bnRpbWVBcnJheShFeGVjU3RhdGUqLCBCaW5kaW5nczo6QXJyYXkqKTsKKyAgICBSdW50aW1lQXJy
YXkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgQmluZGluZ3M6OkFycmF5Kik7CiAgICAgc3RhdGlj
IEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZp
ZXImKTsKICAgICBzdGF0aWMgSlNWYWx1ZSBpbmRleEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVl
LCB1bnNpZ25lZCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
aW5kZXggNTdkNWFhYmMwMTU1MzkwZWZkMDNhZDViN2I4MzcxYTlhNmNlMmMwOS4uZjRkMGJhZGU1
ZThiZmFhNTlkM2I5MTcwMDFhM2U0MDZiZjU5NTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCiAjaW5jbHVkZSAicnVudGltZV9tZXRob2QuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9PYmplY3RQcm90b3R5cGUuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxZjExMjNhYjFlOWFlMGJmYmY3
OWUyMmVmYjUzYzcyNzk0NmI5ZTYwLi5hY2VjNDYzNjM1YzhkZTkxYWFhYjI2ZTk2ZWZkNTI0Nzdh
ZjQ3OGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDgtMTUgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3Rv
ciBKUyBvYmplY3RzIHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUgbWV0aG9kcyByYXRoZXIg
dGhhbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlZCBhbGwgY2FsbHMgdG8gZGVwcmVjYXRlZEdldERPTU9iamVjdCBmcm9t
IGluaXRpYWxpemF0aW9uIGxpc3RzIGFzIHBhcnQgb2YgYSAKKyAgICAgICAgbGFyZ2VyIHJlZmFj
dG9yaW5nIHRvIGdldCByaWQgb2YgYWxsIGFsbG9jYXRpb24gZHVyaW5nIGluaXRpYWxpemF0aW9u
LgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbToKKyAgICAgICAg
KFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQ
cm94eVJ1bnRpbWVNZXRob2Q6OlByb3h5UnVudGltZU1ldGhvZCk6CisKIDIwMTEtMDgtMTAgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFyIHVwIHNjYWxlIGZh
Y3RvciB0ZXJtaW5vbG9neQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvUHJveHlJbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L1Byb3h5SW5zdGFuY2UubW0KaW5kZXggYjBhY2NhMTc3ZTgyZjZiZTRhZTYzMTY4ZmUzNmM3OGIx
MjE4Mjg5Yy4uZWI0OWNmMzQ4N2E4NTU0NTA5ZTZlMjEyNjI0YmI1ODk1MWYzOGJlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBA
IC0xODMsNyArMTgzLDEwIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQcm94eVJ1bnRpbWVNZXRo
b2QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFByb3h5UnVudGltZU1ldGhvZD4o
KmV4ZWMtPmhlYXAoKSkpIFByb3h5UnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIG5h
bWUsIGxpc3QpOworICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1
c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAg
IC8vIGV4ZWMtZ2xvYmFsRGF0YSgpIGlzIGFsc28gbGlrZWx5IHdyb25nLgorICAgICAgICBTdHJ1
Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJveHlSdW50
aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFByb3h5
UnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFByb3h5UnVudGltZU1ldGhvZChleGVjLCBn
bG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwgbGlzdCk7CiAgICAgfQogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xOTQsMTAgKzE5Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToKLSAgICBQcm94eVJ1bnRpbWVN
ZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAg
Ly8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9m
ZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgICAgICAvLyBleGVjLWdsb2JhbERhdGEo
KSBpcyBhbHNvIGxpa2VseSB3cm9uZy4KLSAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGds
b2JhbE9iamVjdCwgZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxQcm94eVJ1bnRpbWVNZXRob2Q+
KGV4ZWMpLCBuYW1lLCBsaXN0KQorICAgIFByb3h5UnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAg
ICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBs
aXN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103952</attachid>
            <date>2011-08-15 14:23:51 -0700</date>
            <delta_ts>2011-08-15 14:50:22 -0700</delta_ts>
            <desc>Moving all allocation in constructors into finishAllocations() method</desc>
            <filename>bug-65347-20110815142357.patch</filename>
            <type>text/plain</type>
            <size>71612</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwNDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCmluZGV4IGU1NWY2OWQ5ZTNhNGUxOTFkYTY2MGI0NWY4OGNmYjI2ZDViYWRhYTMu
LmYwYmJjYzQwZTI2MzA4MDQ3NWQwOWRhYTZmODRkNDA2NzU5NDFmM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTUxLDcgKzE1MSw3IEBAIF9fWk4zSlND
MTJTdHJpbmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3
UHJvcGVydHlOYW1lQXJyCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlE
ZXNjcmlwdG9yRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNK
U0MxMlN0cmluZ09iamVjdDZzX2luZm9FCi1fX1pOM0pTQzEyU3RyaW5nT2JqZWN0QzJFUE5TXzlF
eGVjU3RhdGVFUE5TXzlTdHJ1Y3R1cmVFUktOU183VVN0cmluZ0UKK19fWk4zSlNDMTJTdHJpbmdP
YmplY3RDMkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUE5TXzhKU1N0cmluZ0UK
IF9fWk4zSlNDMTNTYW1wbGluZ0ZsYWdzNHN0b3BFdgogX19aTjNKU0MxM1NhbXBsaW5nRmxhZ3M1
c3RhcnRFdgogX19aTjNKU0MxM1NhbXBsaW5nRmxhZ3M3c19mbGFnc0UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKaW5kZXggYWZlYjVkOWQxMTM5NmE0OWFmNGFmZmMxM2MzNDU4ODVjOWIyYTEzMS4uZGUzMjhj
YThmMjcxZGYyODY5NjQ1Y2I3MDRlZDQ2MWI3ZjgyOGUyNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
QEAgLTE1NSwzNiArMTU1LDQyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2Nh
dGVDZWxsPEdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgR2xvYmFsT2JqZWN0KGdsb2Jh
bERhdGEsIHN0cnVjdHVyZSwgYXJndW1lbnRzKTsKICAgICB9CiAgICAgdmlydHVhbCBVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9Ci19OwotQ09NUElMRV9BU1NF
UlQoIUlzSW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxP
YmplY3RfZmFsc2UpOwotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwog
Ci1HbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKLSAg
ICA6IEpTR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLXsKLSAgICBwdXREaXJl
Y3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCks
IHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAi
ZGVidWciKSwgZnVuY3Rpb25EZWJ1ZykpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4
ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1
Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJwcmludCIpLCBmdW5jdGlvblBy
aW50KSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpj
cmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVudGlm
aWVyKGdsb2JhbEV4ZWMoKSwgInF1aXQiKSwgZnVuY3Rpb25RdWl0KSk7Ci0gICAgcHV0RGlyZWN0
RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0
aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImdj
IiksIGZ1bmN0aW9uR0MpKTsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25z
KGNvbnN0IFZlY3RvcjxVU3RyaW5nPiYgYXJndW1lbnRzKQorICAgIHsKKyAgICAgICAgcHV0RGly
ZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygp
LCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwg
ImRlYnVnIiksIGZ1bmN0aW9uRGVidWcpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xv
YmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlv
blN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInByaW50IiksIGZ1bmN0
aW9uUHJpbnQpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1
bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAw
LCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInF1aXQiKSwgZnVuY3Rpb25RdWl0KSk7CisgICAg
ICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGds
b2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmllcihnbG9i
YWxFeGVjKCksICJnYyIpLCBmdW5jdGlvbkdDKSk7CiAjaWZuZGVmIE5ERUJVRwotICAgIHB1dERp
cmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMo
KSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCks
ICJyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSIpLCBmdW5jdGlvblJlbGVhc2VFeGVjdXRhYmxlTWVt
b3J5KSk7CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlv
bjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRl
bnRpZmllcihnbG9iYWxFeGVjKCksICJyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSIpLCBmdW5jdGlv
blJlbGVhc2VFeGVjdXRhYmxlTWVtb3J5KSk7CiAjZW5kaWYKLSAgICBwdXREaXJlY3RGdW5jdGlv
bihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1
bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAidmVyc2lvbiIp
LCBmdW5jdGlvblZlcnNpb24pKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCks
IEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJl
KCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicnVuIiksIGZ1bmN0aW9uUnVuKSk7Ci0g
ICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xv
YmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2Jh
bEV4ZWMoKSwgImxvYWQiKSwgZnVuY3Rpb25Mb2FkKSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24o
Z2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5j
dGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImNoZWNrU3ludGF4
IiksIGZ1bmN0aW9uQ2hlY2tTeW50YXgpKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxF
eGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3Ry
dWN0dXJlKCksIDAsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicmVhZGxpbmUiKSwgZnVuY3Rp
b25SZWFkbGluZSkpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5j
dGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwg
SWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJwcmVjaXNlVGltZSIpLCBmdW5jdGlvblByZWNpc2VU
aW1lKSk7CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlv
bjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRl
bnRpZmllcihnbG9iYWxFeGVjKCksICJ2ZXJzaW9uIiksIGZ1bmN0aW9uVmVyc2lvbikpOworICAg
ICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShn
bG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xv
YmFsRXhlYygpLCAicnVuIiksIGZ1bmN0aW9uUnVuKSk7CisgICAgICAgIHB1dERpcmVjdEZ1bmN0
aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywg
ZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJsb2FkIiks
IGZ1bmN0aW9uTG9hZCkpOworICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCks
IEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJl
KCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiY2hlY2tTeW50YXgiKSwgZnVuY3Rpb25D
aGVja1N5bnRheCkpOworICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpT
RnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCks
IDAsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicmVhZGxpbmUiKSwgZnVuY3Rpb25SZWFkbGlu
ZSkpOworICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246
OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIElkZW50
aWZpZXIoZ2xvYmFsRXhlYygpLCAicHJlY2lzZVRpbWUiKSwgZnVuY3Rpb25QcmVjaXNlVGltZSkp
OwogCiAjaWYgRU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGds
b2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rp
b25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJzZXRTYW1wbGluZ0Zs
YWdzIiksIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncykpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9u
KGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVu
Y3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJjbGVhclNhbXBs
aW5nRmxhZ3MiKSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpKTsKKyAgICAgICAgcHV0RGly
ZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygp
LCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwg
InNldFNhbXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25TZXRTYW1wbGluZ0ZsYWdzKSk7CisgICAgICAg
IHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2Jh
bEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxF
eGVjKCksICJjbGVhclNhbXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3Mp
KTsKICNlbmRpZgogCi0gICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShn
bG9iYWxFeGVjKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNpemUo
KTsgKytpKQotICAgICAgICBhcnJheS0+cHV0KGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmcoZ2xv
YmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKLSAgICBwdXREaXJlY3QoZ2xvYmFsRXhlYygpLT5n
bG9iYWxEYXRhKCksIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5
KTsKKyAgICAgICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxF
eGVjKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy5zaXplKCk7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5wdXQoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmluZyhn
bG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOworICAgICAgICBwdXREaXJlY3QoZ2xvYmFsRXhl
YygpLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiks
IGFycmF5KTsKKyAgICB9Cit9OworQ09NUElMRV9BU1NFUlQoIUlzSW50ZWdlcjxHbG9iYWxPYmpl
Y3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxPYmplY3RfZmFsc2UpOworQVNTRVJUX0NM
QVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOworCitHbG9iYWxPYmplY3Q6Okdsb2JhbE9i
amVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKKyAgICA6IEpTR2xvYmFsT2JqZWN0KGdsb2Jh
bERhdGEsIHN0cnVjdHVyZSkKK3sKKyAgICBmaW5pc2hBbGxvY2F0aW9ucyhhcmd1bWVudHMpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnQoRXhlY1N0YXRl
KiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJ
bnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmNwcAppbmRleCAwNDM1MzcyZjEyNjM5YmFiZDY0MTBkY2ZlMDM0ODFmYTkyMjJkOWFhLi5hMWY5
MWNkNjk5ZTM3N2I5M2VjNjhlNDIwZmJkNDJjNjI2ZmZiMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMzAsNyArMzAsNyBAQCBF
cnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgLCBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkK
IHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHB1dERpcmVjdChnbG9iYWxE
YXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKCZnbG9iYWxE
YXRhLCAiIiksIERvbnRFbnVtKTsKKyAgICBmaW5pc2hBbGxvY2F0aW9ucyhnbG9iYWxEYXRhKTsK
IH0KIAogRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGQ2MWVlOTc1
ZWMxMGRmZDc4NDc3NWU3M2I1YTE4MjExZjhjMDk0NzguLmIzMjkwODJiNGZlNjM0NGFkM2M4Mzk1
N2I3ZjA4ODhiYjEwMzY4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckluc3RhbmNlLmgKQEAgLTUwLDYgKzUwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogICAg
ICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNv
bnN0IFVTdHJpbmcmKTsKIAorICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgcHV0RGlyZWN0KGdsb2Jh
bERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwganNTdHJpbmcoJmdsb2Jh
bERhdGEsICIiKSwgRG9udEVudW0pOworICAgICAgICB9CisKICAgICAgICAgYm9vbCBtX2FwcGVu
ZFNvdXJjZVRvTWVzc2FnZTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggM2E2OWRkOTBlMjJmNDljZThhZTA2M2Ix
ZmZlOTRiNjYxOTJmNDE0ZS4uODlhM2Y0MDlkZTQzYmYyOTAwZTMyNjE4MzZiZWE5OTRhMzFmYTEz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBl
LmNwcApAQCAtNTMsOSArNTMsOCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEVycm9yUHJv
dG90eXBlKTsKIEVycm9yUHJvdG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAg
IDogRXJyb3JJbnN0YW5jZShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBw
dXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwg
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250RW51bSk7Ci0KICAgICBBU1NF
UlQoaW5oZXJpdHMoJnNfaW5mbykpOworICAgIGZpbmlzaEFsbG9jYXRpb25zKGV4ZWMpOwogICAg
IHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxP
YmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90
b3R5cGUuaAppbmRleCA0MDUyODM2MWFiYjIxMmEzYjQ2NjViYTQ0MWYyYTIwNTFhOGUwYTJlLi5k
NDhjZDc0NTIxNjk2OTQ0YWE3MDdhYjA5NjEwN2JjOGJiMzUzMjk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTQ1LDYgKzQ1LDExIEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBFcnJvclByb3RvdHlw
ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgICAgICB2b2lk
IGZpbmlzaEFsbG9jYXRpb25zKEV4ZWNTdGF0ZSogZXhlYykKKyAgICAgICAgeworICAgICAgICAg
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLm5h
bWUsIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCAiRXJyb3IiKSwgRG9udEVudW0pOworICAgICAg
ICB9CisKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBFcnJv
ckluc3RhbmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDY3N2E4OWJmMzc1NDM4YmU5NDAwMDRj
NTJmZWUwN2QzYThiODBkZTYuLjcyN2Y4YjE2ZDEwZjg4YmMxMDg5ODk5MWI2OWYxODBhNjAyZDY5
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBA
IC0xNDQsNyArMTQ0LDcgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWUKIHsKICAgICBtX2ZpcnN0
TGluZSA9IGZpcnN0TGluZTsKICAgICBtX2xhc3RMaW5lID0gbGFzdExpbmU7Ci0gICAgbV9uYW1l
VmFsdWUuc2V0KGdsb2JhbERhdGEsIHRoaXMsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLnVz
dHJpbmcoKSkpOworICAgIGZpbmlzaEFsbG9jYXRpb25zKGdsb2JhbERhdGEsIG5hbWUpOwogfQog
CiBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBm
b3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBp
blN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKQEAgLTE1Nyw3ICsx
NTcsNyBAQCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsCiB7CiAgICAgbV9maXJzdExpbmUgPSBmaXJz
dExpbmU7CiAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOwotICAgIG1fbmFtZVZhbHVlLnNldChl
eGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGpzU3RyaW5nKCZleGVjLT5nbG9iYWxEYXRhKCksIG5h
bWUudXN0cmluZygpKSk7CisgICAgZmluaXNoQWxsb2NhdGlvbnMoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBuYW1lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmgKaW5kZXggYmFiMzJiMjk4NzVjZGI0YTk1NjEzN2IwNzM3ZDIyOWE4NzFhYTZkOS4uOWU4ZjNi
NDQ4YmZlNTBjOGE4NTZhZDRjODdjYTNiYzZmZWViYTliNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtNTA0LDYgKzUwNCwxMiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgbV9uYW1lVmFsdWUuc2V0KGdsb2JhbERhdGEsIHRoaXMsIGpzU3RyaW5nKCZnbG9i
YWxEYXRhLCBuYW1lLnVzdHJpbmcoKSkpOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAg
ICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYg
bmFtZSwgY29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlv
blBhcmFtZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwogICAgICAg
ICBGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
Y29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFt
ZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCBjM2Iw
N2Y4Mjk3MDI4ZTk2ZjJmZjUwM2Q5NTE3OGYxY2NmOThmNmFlLi43MGEwNjIwYTNhZmU0YWI5ZDM5
ZjNhNDYwOWFkYmY3YjFiZGIxYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQCBJbnRlcm5hbEZ1
bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsbwogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0
RGlyZWN0KCpnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0
cmluZyhnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERv
bnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBmaW5pc2hBbGxvY2F0aW9ucygq
Z2xvYmFsRGF0YSwgbmFtZSk7CiB9CiAKIGNvbnN0IFVTdHJpbmcmIEludGVybmFsRnVuY3Rpb246
Om5hbWUoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDgzMjQzYjNmZGZmNmQ0Y2Y4YmYzNGZjMTc0NWRm
NTY1YjlmNGY3ZGYuLjEyOTlhM2JmZjFlNzc5NjNiOWI0OWMzMWQ0NWNhZjg5NTAwMmEwZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgK
QEAgLTU0LDYgKzU0LDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEludGVybmFsRnVu
Y3Rpb24oSlNHbG9iYWxEYXRhKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAKKyAgICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm5h
bWUsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJp
bmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICAgICAgfQorCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0
YSYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
Y3BwCmluZGV4IGQ5MjRhN2ExYjM4OGNiNWM1MTJiOThkMzMxZDVjNTA0NjdmYTllNDQuLjAwZGQ4
Y2ZkNmU5MmU5MjI4MzEyZjI1MDlkZWUxOThiNDczYzNlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgSlNCeXRl
QXJyYXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEJ5dGVBcnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcihtX3N0b3JhZ2UtPmxlbmd0aCgpKSwgUmVhZE9ubHkgfCBEb250RGVs
ZXRlKTsKKyAgICBmaW5pc2hBbGxvY2F0aW9ucyhleGVjKTsKIH0KICAgICAgICAgCiBKU0J5dGVB
cnJheSogSlNCeXRlQXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBCeXRlQXJyYXkqIHN0b3JhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCeXRlQXJyYXkuaAppbmRleCA4NjkxNTY5YjUyZjYxZWY1NzI4MDI3ODZhZTI3OTgxMzg0
MDUwM2E0Li4xM2Q3NDdkZDhlODMwMmI0ZmY3NDY5ZDFmZDY0NWIzZWNjODY0Njg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTEwNCw2ICsxMDQs
MTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwog
CisgICAgICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRlKiBleGVjKQorICAgICAg
ICB7CisgICAgICAgICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9i
YWxEYXRhKCkucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcihtX3N0b3JhZ2UtPmxlbmd0
aCgpKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlKTsKKyAgICAgICAgfQorCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgSlNCeXRlQXJyYXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCiAgICAgICAgICAgICA6
IEpTTm9uRmluYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggMTNmMWVhYjUyMWRlZDVhZGFjMWM3Mjkw
ODA2NzM0YjY0MDJiMGE0Zi4uZDliNDNmYzQzM2EzYTk1MjhkZGFmNDM3MTc4MmYwYWNiMjI5YmIx
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAg
LTYzLDI1ICs2MywyMyBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tU
eXBlKQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIHRodW5rKQogICAgIDogQmFz
ZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKLSAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIHRodW5rKQorICAgICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2Nv
cGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2Nv
cGVDaGFpbigpKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0RGly
ZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMt
Pm5hbWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygp
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxl
bmd0aCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKworICAgIGZpbmlzaEFs
bG9jYXRpb25zKGV4ZWMsIGxlbmd0aCwgbmFtZSwgdGh1bmspOwogfQogCiBKU0Z1bmN0aW9uOjpK
U0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IE5hdGl2ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
KQorICAgICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxE
YXRhKCksIHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewogICAgIEFT
U0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgCiAgICAgLy8gQ2FuJ3QgZG8gdGhpcyBkdXJp
bmcgaW5pdGlhbGl6YXRpb24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQgZG8gYSBHQyBh
bGxvY2F0aW9uLgotICAgIG1fZXhlY3V0YWJsZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlz
LCBleGVjLT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKGZ1bmMpKTsKLSAgICAKLSAgICBw
dXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlO
YW1lcy0+bmFtZSwganNTdHJpbmcoZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3Ry
aW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1i
ZXIobGVuZ3RoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIGZpbmlz
aEFsbG9jYXRpb25zKGV4ZWMsIGxlbmd0aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRI
b3N0RnVuY3Rpb24oZnVuYykpOwogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSog
c2NvcGVDaGFpbk5vZGUpCkBAIC05NCw2ICs5MiwxMyBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNo
YQogICAgIHB1dERpcmVjdE9mZnNldChleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2Rl
LT5nbG9iYWxPYmplY3QtPmZ1bmN0aW9uTmFtZU9mZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFs
dWUoKSk7CiB9CiAKK2lubGluZSB2b2lkIEpTRnVuY3Rpb246OmZpbmlzaEFsbG9jYXRpb25zKEV4
ZWNTdGF0ZSogZXhlYywgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0
YWJsZUJhc2UqIGV4ZWN1dGFibGUpCit7CisgICAgbV9leGVjdXRhYmxlLnNldChleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpOworICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxE
YXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZyhl
eGVjLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBS
ZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihsZW5ndGgpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkgfCBEb250RW51bSk7Cit9CisKIEpTRnVuY3Rpb246On5KU0Z1bmN0aW9uKCkK
IHsKICAgICBBU1NFUlQodnB0cigpID09IEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDI5Y2JmZDBm
NGY2YWUyMjc0ODZkYjAyNTY2YzQ5MjU0ZDc0MjJkYjQuLjI1MzI1MzUxYjJhZDBkNTcxMDIyZDZk
OGVlMDNjZTUyMWJkNWQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOwogCisgICAgICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRl
KiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqKTsK
KwogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5n
SGFja1R5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaAppbmRleCA1OWNhZDUwYWMzNGFlOWRjNzBjNDZmMDAxODIwNDM4MDBkOGRlN2U0Li4x
ZmJmMGE2OWU3N2I3OTc0MDA4MTFhMmFhZjAxMThmNDdhMTgwYzE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE2MSw3ICsxNjEsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQo
SlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9o
YXNfb25seV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1Zh
bHVlKDApOwotICAgICAgICAgICAgaW5pdCh0aGlzKTsKKyAgICAgICAgICAgIGZpbmlzaEFsbG9j
YXRpb25zKHRoaXMpOwogICAgICAgICB9CiAKICAgICAgICAgSlNHbG9iYWxPYmplY3QoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHRoaXNW
YWx1ZSkKQEAgLTE3Myw2ICsxNzMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291
bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7CiAgICAgICAg
ICAgICBwdXRUaGlzVG9Bbm9ueW1vdXNWYWx1ZSgwKTsKKyAgICAgICAgICAgIGZpbmlzaEFsbG9j
YXRpb25zKHRoaXNWYWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGZpbmlzaEFsbG9j
YXRpb25zKEpTT2JqZWN0KiB0aGlzVmFsdWUpCisgICAgICAgIHsKICAgICAgICAgICAgIGluaXQo
dGhpc1ZhbHVlKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4IDgwMTJlOWRkMTE1
NmE3Njg4YWQyMGRjMTE1OTlmMmEyZDUyZDhmODIuLmIyYzEzNjc5YmU4ZTY0ZWVmMGU5ZmUzMjRm
ZGNmZWVjMWNmZDZiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC00Myw5ICs0Myw3IEBAIGlubGlu
ZSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOCiAgICAgLCBtX2pzU3RyaW5nc1NpemUocHJvcGVydHlOYW1lQXJy
YXlEYXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCkpCiAgICAgLCBtX2pzU3RyaW5ncyhh
ZG9wdEFycmF5UHRyKG5ldyBXcml0ZUJhcnJpZXI8VW5rbm93bj5bbV9qc1N0cmluZ3NTaXplXSkp
CiB7Ci0gICAgUHJvcGVydHlOYW1lQXJyYXlEYXRhOjpQcm9wZXJ0eU5hbWVWZWN0b3ImIHByb3Bl
cnR5TmFtZVZlY3RvciA9IHByb3BlcnR5TmFtZUFycmF5RGF0YS0+cHJvcGVydHlOYW1lVmVjdG9y
KCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2pzU3RyaW5nc1NpemU7ICsraSkKLSAg
ICAgICAgbV9qc1N0cmluZ3NbaV0uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywganNPd25l
ZFN0cmluZyhleGVjLCBwcm9wZXJ0eU5hbWVWZWN0b3JbaV0udXN0cmluZygpKSk7CisgICAgZmlu
aXNoQWxsb2NhdGlvbnMoZXhlYywgcHJvcGVydHlOYW1lQXJyYXlEYXRhKTsKIH0KIAogSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKaW5kZXggZDJiNjExZGY2YjMyMGIwOWNh
NTNlYThiNzg5MDFiNTZlMGJmZWZiNy4uODZlZGM3NDIwY2ExOWNlMTY3ZTA2YWYzMGI4ODBmNzQ3
MDc0NGUyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvcGVydHlOYW1lSXRlcmF0b3IuaApAQCAtODQsNiArODQsMTQgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAorICAg
IHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmFtZUFycmF5RGF0YSogcHJvcGVydHlOYW1lQXJyYXlEYXRhKQorICAgICAg
ICB7CisgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheURhdGE6OlByb3BlcnR5TmFtZVZlY3Rv
ciYgcHJvcGVydHlOYW1lVmVjdG9yID0gcHJvcGVydHlOYW1lQXJyYXlEYXRhLT5wcm9wZXJ0eU5h
bWVWZWN0b3IoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9qc1N0cmlu
Z3NTaXplOyArK2kpCisgICAgICAgICAgICAgICAgbV9qc1N0cmluZ3NbaV0uc2V0KGV4ZWMtPmds
b2JhbERhdGEoKSwgdGhpcywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0eU5hbWVWZWN0b3Jb
aV0udXN0cmluZygpKSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXlEYXRhKiBwcm9w
ZXJ0eU5hbWVBcnJheURhdGEsIHNpemVfdCBudW1DYWNoZWFibGVTbG90KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggMzE3MTE3NTc2MWYzZThiNzY1Nzhm
ZGNhNGQwZjRkNTMzYzAzMmVmMi4uYWIzZWRkNTYyYzdjZjQyYWZiNmNiMmMyMmIwMWI3ODUxZTFk
MGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0yNjcs
MTEgKzI2Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBtX2xlbmd0aCgwKQog
ICAgICAgICAgICAgLCBtX2ZpYmVyQ291bnQoc19tYXhJbnRlcm5hbFJvcGVMZW5ndGgpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKLSAgICAgICAgICAgIGFwcGVu
ZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYxKTsKLSAg
ICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywg
aW5kZXgsIHYyKTsKLSAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1l
bnRMZW5ndGgoZXhlYywgaW5kZXgsIHYzKTsKLSAgICAgICAgICAgIEFTU0VSVChpbmRleCA9PSBz
X21heEludGVybmFsUm9wZUxlbmd0aCk7CisgICAgICAgICAgICBmaW5pc2hBbGxvY2F0aW9ucyhl
eGVjLCB2MSwgdjIsIHYzKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRoaXMgY29uc3RydWN0
b3IgY29uc3RydWN0cyBhIG5ldyBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB1MSAmIHUyLgpAQCAt
Mjk5LDYgKzI5NSwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEFTU0VSVChpbmRl
eCA8PSBzX21heEludGVybmFsUm9wZUxlbmd0aCk7CiAgICAgICAgIH0KIAorICAgIHByb3RlY3Rl
ZDoKKyAgICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdjEsIEpTVmFsdWUgdjIsIEpTVmFsdWUgdjMpCisgICAgICAgIHsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGluZGV4ID0gMDsKKyAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJ
bmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYxKTsKKyAgICAgICAgICAgIGFwcGVuZFZhbHVl
SW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYyKTsKKyAgICAgICAg
ICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgs
IHYzKTsKKyAgICAgICAgICAgIEFTU0VSVChpbmRleCA9PSBzX21heEludGVybmFsUm9wZUxlbmd0
aCk7CisgICAgICAgIH0KKwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTU3RyaW5nKiBj
cmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiB2YWx1ZSkKICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA4NWZmMGE4MmJhMjI0NDBjNWZiMzg3M2JlNGZi
ZjI2NGFkZjJmNmEzLi5mNzZlNDUxNWEzM2YyYzBkNzIwODdkYzVhYzFmZWY5MjljMDIzNTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtMzcsMTMgKzM3LDcgQEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KgogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKLSAgICBOYXRpdmVFcnJvclBy
b3RvdHlwZSogcHJvdG90eXBlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZShleGVjLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZVN0cnVjdHVyZSwgbmFtZUFuZE1lc3NhZ2UsIHRoaXMpOwot
Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsg
Ly8gRUNNQSAxNS4xMS43LjUKLSAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFk
T25seSB8IERvbnRFbnVtKTsKLSAgICBtX2Vycm9yU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxE
YXRhKCksIHRoaXMsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxE
YXRhKCksIHByb3RvdHlwZSkpOwotICAgIEFTU0VSVChtX2Vycm9yU3RydWN0dXJlKTsKLSAgICBB
U1NFUlQobV9lcnJvclN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gT2JqZWN0VHlwZSk7
CisgICAgZmluaXNoQWxsb2NhdGlvbnMoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVTdHJ1
Y3R1cmUsIG5hbWVBbmRNZXNzYWdlKTsKIH0KIAogdm9pZCBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDNl
YWJjN2E1NWNhZmNhN2M5ZjAzZTEyNjgyOGVlYTJjZTFjNTI4NzUuLmQyY2IxMjhhZWJmNDEyYjZk
MTRkMDljYWU5NDAyZDk1NmQyODMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTIyLDYgKzIyLDcgQEAK
ICNkZWZpbmUgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcl9oCiAKICNpbmNsdWRlICJJbnRlcm5hbEZ1
bmN0aW9uLmgiCisjaW5jbHVkZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKQEAgLTQ3LDYgKzQ4LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgp
OyB9CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHBy
b3RvdHlwZVN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UpCisgICAgICAg
IHsKKyAgICAgICAgICAgIE5hdGl2ZUVycm9yUHJvdG90eXBlKiBwcm90b3R5cGUgPSBOYXRpdmVF
cnJvclByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlU3RydWN0
dXJlLCBuYW1lQW5kTWVzc2FnZSwgdGhpcyk7CisKKyAgICAgICAgICAgIHB1dERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7IC8vIEVDTUEgMTUuMTEuNy41Cisg
ICAgICAgICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRF
bnVtKTsKKyAgICAgICAgICAgIG1fZXJyb3JTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgcHJvdG90eXBlKSk7CisgICAgICAgICAgICBBU1NFUlQobV9lcnJvclN0cnVjdHVyZSk7Cisg
ICAgICAgICAgICBBU1NFUlQobV9lcnJvclN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0g
T2JqZWN0VHlwZSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBT
dHJ1Y3R1cmUqIHByb3RvdHlwZVN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYpOwogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxk
cmVuIHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAKaW5kZXgg
NjgzMDY2MDEyN2FmMzJiZTBmYjI4NzhlNDA5ZWNkNDgyZDlkMjgxYi4uODJkOWI4NDNmNzJmZGQx
Y2MyNWQ5MmE3Y2MzNjA4YzVjODI3NzBhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcApAQCAtMzMsNiArMzMsMTEg
QEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChOYXRpdmVFcnJvclByb3RvdHlwZSk7CiBOYXRp
dmVFcnJvclByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3Qg
VVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UsIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IqIGNvbnN0cnVj
dG9yKQogICAgIDogRXJyb3JQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUp
CiB7CisgICAgZmluaXNoQWxsb2NhdGlvbnMoZXhlYywgbmFtZUFuZE1lc3NhZ2UsIGNvbnN0cnVj
dG9yKTsKK30KKworaW5saW5lIHZvaWQgTmF0aXZlRXJyb3JQcm90b3R5cGU6OmZpbmlzaEFsbG9j
YXRpb25zKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UsIE5h
dGl2ZUVycm9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yKQorewogICAgIHB1dERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc1N0cmluZyhleGVj
LCBuYW1lQW5kTWVzc2FnZSksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubWVzc2FnZSwganNTdHJpbmcoZXhlYywgbmFt
ZUFuZE1lc3NhZ2UpLCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RvciwgRG9udEVu
dW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
UHJvdG90eXBlLmgKaW5kZXggMWJiMjMwOTAzMzU0ZmNhN2MxMGEwNTZmNTQ5NWY2MzY5NTQ3Y2Q1
OS4uMDQ0ZTg1YmY5ODQxNWRkNjg5NmQyMzM4MjU4ZjgyODQzOWUwNDMxYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5oCkBA
IC0zNyw2ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXJyb3JQcm90b3R5cGU+KCpleGVjLT5oZWFw
KCkpKSBOYXRpdmVFcnJvclByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
bmFtZUFuZE1lc3NhZ2UsIGNvbnN0cnVjdG9yKTsKICAgICAgICAgfQorCisgICAgcHJvdGVjdGVk
OgorICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEV4ZWNTdGF0ZSosIGNvbnN0IFVTdHJp
bmcmIG5hbWVBbmRNZXNzYWdlLCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKik7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmNwcAppbmRleCA2N2RjMjkxYjA5ZWNmN2Q3ZWJhODhhYWYyOTZmYTUzNDhlYzIy
Y2Y5Li4xZDBjN2FiZjk4ZDA4N2MwYjUxN2I1MjAyNDZlMmE4ZWZlYjMwNzY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTI5LDEzICsy
OSw2IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoU3RyaW5nT2JqZWN0KTsKIAogY29uc3Qg
Q2xhc3NJbmZvIFN0cmluZ09iamVjdDo6c19pbmZvID0geyAiU3RyaW5nIiwgJkpTV3JhcHBlck9i
amVjdDo6c19pbmZvLCAwLCAwIH07CiAKLVN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4ZWNT
dGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dyYXBwZXJPYmplY3Qo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCi17Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZz
X2luZm8pKTsKLSAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNFbXB0
eVN0cmluZyhleGVjKSk7Ci19Ci0KIFN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU3RyaW5nKiBzdHJpbmcp
CiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewpAQCAtNDMs
MTMgKzM2LDYgQEAgU3RyaW5nT2JqZWN0OjpTdHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHIKICAgICBzZXRJbnRlcm5hbFZhbHVl
KGdsb2JhbERhdGEsIHN0cmluZyk7CiB9CiAKLVN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIHN0cmlu
ZykKLSAgICA6IEpTV3JhcHBlck9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkK
LXsKLSAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldEludGVybmFsVmFsdWUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc1N0cmluZyhleGVjLCBzdHJpbmcpKTsKLX0KLQogYm9vbCBT
dHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChp
bnRlcm5hbFZhbHVlKCktPmdldFN0cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApp
bmRleCA4MGU1YmVjNTc3Nzc1NTFhYTIxOTc3NDUwNTdhZTE5MDkyOGE3MTZlLi43ZDEzNWMxZTQx
MjJmYWU3ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtMzIsMTQgKzMyLDE1IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nT2Jq
ZWN0KGV4ZWMsIHN0cnVjdHVyZSk7ICAKKyAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBq
c0VtcHR5U3RyaW5nKGV4ZWMpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxs
PFN0cmluZ09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFN0cmluZ09iamVjdChleGVjLT5nbG9iYWxE
YXRhKCksIHN0cnVjdHVyZSwgc3RyaW5nKTsgIAogICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBT
dHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBVU3RyaW5nJiBzdHIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxTdHJpbmdPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3Qo
ZXhlYywgc3RydWN0dXJlLCBzdHIpOyAgCisgICAgICAgICAgICBKU1N0cmluZyogc3RyaW5nID0g
anNTdHJpbmcoZXhlYywgc3RyKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxTdHJpbmdPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBzdHJ1Y3R1cmUsIHN0cmluZyk7CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIFN0
cmluZ09iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcq
KTsKLSAgICAgICAgCiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CkBAIC01OSw4ICs2MCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFN0cmlu
Z09iamVjdChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgU3RyaW5nT2JqZWN0KEV4
ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IFVTdHJpbmcmKTsKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTV3JhcHBlck9iamVjdDo6U3RydWN0dXJl
RmxhZ3M7CiAgICAgICAgIFN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBK
U1N0cmluZyopOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQuaAppbmRleCBkNDIzMGVhOGY0NTMxZDRjZTg4NGYwYmExNTc0ODkwZjYxYTQ0ODEyLi42OTQz
NmQ3ZTM2ZjQ4MTA2MjkwZmI4Y2VmNjZlOWQ2NmQ3OTY3YzRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVm
aW5lZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRo
YXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTM0LDEzICszNCwxNCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykKICAg
ICAgICAgeworICAgICAgICAgICAgSlNTdHJpbmcqIG5ld1N0cmluZyA9IGpzU3RyaW5nKGV4ZWMs
IHN0cmluZyk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nT2Jq
ZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmpl
Y3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLAotICAgICAgICAgICAgICAgIGNyZWF0
ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+c3RyaW5nUHJvdG90eXBlKCkpLCBzdHJpbmcpOworICAgICAgICAgICAgICAgIGNyZWF0ZVN0
cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
c3RyaW5nUHJvdG90eXBlKCkpLCBuZXdTdHJpbmcpOwogICAgICAgICB9CiAKICAgICBwcml2YXRl
OgotICAgICAgICBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChFeGVjU3Rh
dGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBzdHJpbmcpCi0g
ICAgICAgICAgICA6IFN0cmluZ09iamVjdChleGVjLCBzdHJ1Y3R1cmUsIHN0cmluZykKKyAgICAg
ICAgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoRXhlY1N0YXRlKiBleGVj
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIHN0cmluZykKKyAgICAgICAgICAgIDog
U3RyaW5nT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBzdHJpbmcpCiAgICAg
ICAgIHsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCA0Mjg3ZDNhZmViNTQ4OWI2M2Y5MTRkNmVlYTkwMTE2
NGQ1N2U4NDU2Li4wZmM2MDZmNzQ3M2Y4OTk1YTNmNGE4ZGFmZDYzYjAwOTc0ZmNlZDU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAK
QEAgLTEzMSw4ICsxMzEsOCBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nUHJvdG90eXBlOjpzX2lu
Zm8gPSB7ICJTdHJpbmciLCAmU3RyaW5nT2JqZWN0OjpzX2luZm8sIDAsCiAqLwogCiAvLyBFQ01B
IDE1LjUuNAotU3RyaW5nUHJvdG90eXBlOjpTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICA6IFN0cmluZ09iamVjdChleGVjLCBzdHJ1Y3R1cmUpCitTdHJpbmdQcm90b3R5cGU6OlN0cmlu
Z1Byb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1N0cmluZyogbmFtZUFuZE1lc3NhZ2UpCisgICAgOiBT
dHJpbmdPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG5hbWVBbmRNZXNzYWdl
KQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5kZXggMDNhNjdkOGM1ZWNlMTg0
YzY0NWEyMWE0NWU1M2FlYzUyOTE2ODYyMC4uMjE3NTg1ZmE2MGQ2YjkyNzA0N2VmZTk0OTA1NDI0
NDMzYzdmZDBmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmgKQEAgLTI5LDE0ICsyOSwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNs
YXNzIFN0cmluZ1Byb3RvdHlwZSA6IHB1YmxpYyBTdHJpbmdPYmplY3QgewogICAgIHByaXZhdGU6
Ci0gICAgICAgIFN0cmluZ1Byb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSopOworICAgICAgICBTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBKU1N0cmluZyopOwogCiAgICAgcHVibGljOgogICAgICAgICB0
eXBlZGVmIFN0cmluZ09iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBTdHJpbmdQcm90b3R5
cGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3
IChhbGxvY2F0ZUNlbGw8U3RyaW5nUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nUHJv
dG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIEpTU3Ry
aW5nKiBuYW1lQW5kTWVzc2FnZSA9IGpzRW1wdHlTdHJpbmcoZXhlYyk7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkg
U3RyaW5nUHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lQW5kTWVz
c2FnZSk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCBlM2E3MDRhZmU1M2I3Mjc2ZDBmZTFl
MWFhODA5MDliZWUzNjM3ZmJmLi5jZDZhNGNmYzViYTU0YjVhZjBiOTM5ZjhiZWYxY2M2ZjUzNWRl
NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wOC0x
NSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJl
ZmFjdG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4gc3RhdGljIGNyZWF0ZSBtZXRob2RzIHJh
dGhlciB0aGFuIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjUzNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlZCBhbGwgYWxsb2NhdGlvbiB0aGF0IG5lZWRzIHRvIHRha2UgcGxh
Y2UgYWZ0ZXIgdGhlIGNvbnN0cnVjdG9yIGhhcyBydW4gaW50byBhIAorICAgICAgICBmaW5pc2hB
bGxvY2F0aW9ucygpIG1ldGhvZC4gIFRoaXMgbWV0aG9kIGlzIHN0aWxsIGNhbGxlZCBmcm9tIHRo
ZSBjb25zdHJ1Y3Rvci4gIAorICAgICAgICBFdmVudHVhbGx5LCBpdCB3aWxsIGJlIG1vdmVkIG91
dHNpZGUgdGhlIGNvbnN0cnVjdG9yIGFuZCBjYWxscyB0byBwYXJlbnQgY2xhc3NlcycKKyAgICAg
ICAgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgYWRkZWQuICAKKworICAgICAgICAqIEpTUnVuLmNw
cDoKKyAgICAgICAgKEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKiBKU1J1bi5oOgorICAgICAgICAoSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGUpOgor
CiAyMDExLTA4LTEyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQmUg
bW9yZSBmb3J3YXJkLWxvb2tpbmcgaW4gdGhlIGNob2ljZSBvZiBjb21waWxlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvSlNSdW4uY3BwCmluZGV4IDZhMzFhNzk5ODYxM2IzYzNhZDU3M2ViOTc5NmI5ZjRkNTQ4Yjgy
MDkuLjhjODhmODVmMzIwZTNlZTBjMjljMWQ5ZTI0NjEwYjE0MjYyZDM4MmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL0pTUnVuLmNwcApAQCAtMzMsMTAgKzMzLDEwIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4K
IAotSlNHbHVlR2xvYmFsT2JqZWN0OjpKU0dsdWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykKK0pTR2x1ZUds
b2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogdXNlck9iamVjdFN0cnVjdHVyZSwgSlNG
bGFncyBmbGFncykKICAgICA6IEpTR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkK
ICAgICAsIG1fZmxhZ3MoZmxhZ3MpCi0gICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFs
RGF0YSwgVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgp
KSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVjdHVyZShnbG9iYWxEYXRhLCB1c2VyT2JqZWN0U3Ry
dWN0dXJlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCmluZGV4IGFhZWNjYWVhMjJhMGVkYWJh
NjA2MDFkNjQxYWI1MDA1OTdmZTE2OTQuLjJmZDIzODcyM2IzNzU2ZDVlYzc1MDc0NjQxZmIyNGNh
YTBhNjAxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CiAjaW5jbHVkZSAiSlNCYXNlLmgiCiAjaW5jbHVk
ZSAiSlNVdGlscy5oIgorI2luY2x1ZGUgIlVzZXJPYmplY3RJbXAuaCIKIAogY2xhc3MgSlNHbHVl
R2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKICAgICBwdWJsaWM6CkBAIC0z
OSwxNCArNDAsMTUgQEAgY2xhc3MgSlNHbHVlR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFs
T2JqZWN0IHsKIAogICAgICAgICBzdGF0aWMgSlNHbHVlR2xvYmFsT2JqZWN0KiBjcmVhdGUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGbGFncyBmbGFn
cyA9IGtKU0ZsYWdOb25lKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8SlNHbHVlR2xvYmFsT2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0dsdWVHbG9i
YWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBmbGFncyk7CisgICAgICAgICAgICBTdHJ1
Y3R1cmUqIHVzZXJPYmplY3RTdHJ1Y3R1cmUgPSBVc2VyT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1
cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2Nh
dGVDZWxsPEpTR2x1ZUdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNHbHVlR2xvYmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVyZSwgZmxhZ3Mp
OwogICAgICAgICB9CiAKICAgICAgICAgSlNGbGFncyBGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1f
ZmxhZ3M7IH0KICAgICAgICAgU3RydWN0dXJlKiB1c2VyT2JqZWN0U3RydWN0dXJlKCkgY29uc3Qg
eyByZXR1cm4gbV91c2VyT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBKU0dsdWVHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNG
bGFncyA9IGtKU0ZsYWdOb25lKTsKKyAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFs
RGF0YSYsIFN0cnVjdHVyZSosIFN0cnVjdHVyZSosIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CiAg
ICAgICAgIAogICAgICAgICBKU0ZsYWdzIG1fZmxhZ3M7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1
cmU+IG1fdXNlck9iamVjdFN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZGI3ODJmZmFjZGQ3Njk4
OTg2ZDBhNmM5MDNlNjQ4NzdkNDRjYzM4Li5kNjA3MmQ4NDNhMDgzNTkyYThhMWIyZjI4M2NiYmQ5
MjJjODg5NDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDgtMTUgIE1hcmsg
SGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBK
UyBvYmplY3RzIHRvIGFsbG9jYXRlIGluIHN0YXRpYyBjcmVhdGUgbWV0aG9kcyByYXRoZXIgdGhh
biBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY1MzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIE1vdmVkIGFsbCBhbGxvY2F0aW9uIHRoYXQg
bmVlZHMgdG8gdGFrZSBwbGFjZSBhZnRlciB0aGUgY29uc3RydWN0b3IgaGFzIHJ1biBpbnRvIGEg
CisgICAgICAgIGZpbmlzaEFsbG9jYXRpb25zKCkgbWV0aG9kLiAgVGhpcyBtZXRob2QgaXMgc3Rp
bGwgY2FsbGVkIGZyb20gdGhlIGNvbnN0cnVjdG9yLiAgCisgICAgICAgIEV2ZW50dWFsbHksIGl0
IHdpbGwgYmUgbW92ZWQgb3V0c2lkZSB0aGUgY29uc3RydWN0b3IgYW5kIGNhbGxzIHRvIHBhcmVu
dCBjbGFzc2VzJworICAgICAgICBpbXBsZW1lbnRhdGlvbnMgd2lsbCBiZSBhZGRlZC4gIAorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgICogYnJpZGdlL2Mv
Q1J1bnRpbWVPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVPYmpl
Y3Q6OkNSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKiBicmlkZ2UvYy9DUnVudGltZU9iamVjdC5o
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVPYmplY3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogYnJpZGdlL2MvY19pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpD
UnVudGltZU1ldGhvZDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1l
TWV0aG9kOjpDUnVudGltZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2YUlu
c3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9kOjpjcmVhdGUpOgorICAg
ICAgICAoSmF2YVJ1bnRpbWVNZXRob2Q6OkphdmFSdW50aW1lTWV0aG9kKToKKyAgICAgICAgKiBi
cmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpKYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJy
aWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpKYXZhUnVudGltZU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdElt
cDo6Y3JlYXRlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAg
ICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09i
amVjdEltcCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcDoKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6OlF0UnVudGltZU9iamVjdDo6UXRSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKiBi
cmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpR
dFBpeG1hcFJ1bnRpbWVPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpR
dFBpeG1hcFJ1bnRpbWVPYmplY3Q6OlF0UGl4bWFwUnVudGltZU9iamVjdCk6CisgICAgICAgICog
YnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50
aW1lTWV0aG9kOjpRdFJ1bnRpbWVNZXRob2QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRS
dW50aW1lTWV0YU1ldGhvZDo6UXRSdW50aW1lTWV0YU1ldGhvZCk6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0
aG9kKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5oOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6UXRSdW50aW1lTWV0YU1ldGhvZDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNyZWF0ZSk6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OlJ1bnRp
bWVBcnJheSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKEpT
Qzo6UnVudGltZUFycmF5OjpjcmVhdGUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVj
dC5jcHA6CisKIDIwMTEtMDgtMTUgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBhbiBpbnN0YW5jZSBvZiBwYWdlU2NhbGVGYWN0b3JDaGFuZ2VkIEkgbWlz
c2VkIGluIHI5MzA0MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApp
bmRleCAxY2QyZDdjZmU1MTdhNmMzMDJiOWY2MTQyMzBlOTNmYmUxN2MzOWQyLi5kYjUyZDk2ZjRl
MzIzMjNiNjc1ZDEzZGFmNjQwMjM3YjNiMGU3MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKICNpbmNsdWRlICJTdHlsZUJhc2UuaCIKICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KKyNpbmNs
dWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Mb29r
dXAuaD4KKyNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcAppbmRleCBkMzIyZGY0MDVjYTg4OGZhOTNh
YWU0NTZkYjQ2ODg0ZmRkMGRhZTc1Li5jNjNlNTg2ZDIxYzFlMmFjNjY3OTI2MzE4NjMzMmIwYzUw
MTE1OGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuY3BwCkBA
IC0zNywxMCArMzcsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBjb25zdCBDbGFzc0luZm8g
Q1J1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIkNSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmpl
Y3Q6OnNfaW5mbywgMCwgMCB9OwogCi1DUnVudGltZU9iamVjdDo6Q1J1bnRpbWVPYmplY3QoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPENJ
bnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1
cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAg
IC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgot
ICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0
ZWRHZXRET01TdHJ1Y3R1cmU8Q1J1bnRpbWVPYmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK0NSdW50
aW1lT2JqZWN0OjpDUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPENJbnN0YW5j
ZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlLCBpbnN0YW5jZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKaW5kZXggZmJmYjViZTdlYzZk
MWYxMjFjN2I4MzExMjA5N2RmMjRkNTgwMGFmOC4uNzljMzI4ZjY4ZGJjMDY5MTI5MzQ4NjgxMGRl
ZDdiMWE2ODFlMjY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRp
bWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5o
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAor
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgInJ1bnRpbWVfb2JqZWN0LmgiCiAK
IG5hbWVzcGFjZSBKU0MgewpAQCAtNDEsNyArNDIsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IENSdW50aW1lT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPENJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgewotICAg
ICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8Q1J1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFw
KCkpKSBDUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAg
ICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBl
IG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAgICAvLyBXZSBuZWVkIHRvIHBh
c3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KKyAgICAgICAgU3RydWN0dXJl
KiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50
aW1lT2JqZWN0PihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPENSdW50
aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5DUnVu
dGltZU9iamVjdCgpOwpAQCAtNTYsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIENSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUGFzc1Jl
ZlB0cjxDSW5zdGFuY2U+KTsKKyAgICBDUnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8Q0luc3RhbmNlPik7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCmluZGV4IGQyMjgwYzVjMzdmM2VhODI4
NjVmZDMxMTMyZGViZmY0N2IwZjEzMDUuLjM2Y2E4MjkzNmU3NzgwODU4NDU2MDRhNjg0ODkxNTRk
ZjQ0YjE5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC0xMTUs
NyArMTE1LDEwIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBDUnVudGltZU1ldGhvZCogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8Q1J1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkp
KSBDUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIG5hbWUsIGxpc3QpOworICAgICAg
ICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUg
b2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFz
cyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgorICAgICAgICBTdHJ1Y3R1cmUq
IGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8Q1J1bnRp
bWVNZXRob2Q+KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8Q1J1bnRp
bWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBDUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmpl
Y3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwgbGlzdCk7CiAgICAgfQogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90b3R5cGUpCkBAIC0xMjYsMTAgKzEyOSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
Q2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToKLSAgICBDUnVudGltZU1ldGhvZChFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAgICAvLyBGSVhNRTogZGVw
cmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9u
ZyBnbG9iYWwgb2JqZWN0Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQg
Z2xvYmFsIG9iamVjdCBmb3IgImkiLgotICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xv
YmFsT2JqZWN0LCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPENSdW50aW1lTWV0
aG9kPihleGVjKSwgbmFtZSwgbGlzdCkKKyAgICBDUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAg
ICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBs
aXN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApp
bmRleCA1YTllZGJiOGQ3NzhkNzQxNmI4MWFjYmY0ZGVlNWRlYjhlMDIyNDc0Li40OGMyNmYzNTMx
ODE0ODlhN2U3MmNmM2U3NjQ3NzYyY2Y4OWE0YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKQEAgLTEyMCw3ICsxMjAsMTAgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEphdmFSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBu
YW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBu
ZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFS
dW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZSwgbGlzdCk7CisgICAgICAgIC8v
IEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYg
b2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGlu
IHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9t
U3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxKYXZhUnVudGlt
ZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKYXZhUnVu
dGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgZG9tU3RydWN0dXJlLCBuYW1lLCBsaXN0KTsKICAgICB9CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKQEAgLTEzMSwxMCArMTM0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdCBDbGFzc0luZm8gc19pbmZvOwogCiBwcml2YXRlOgotICAgIEphdmFSdW50aW1lTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJ
WE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2Yg
dGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRo
ZSByaWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCi0gICAgICAgIDogUnVudGltZU1ldGhvZChl
eGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2
YVJ1bnRpbWVNZXRob2Q+KGV4ZWMpLCBuYW1lLCBsaXN0KQorICAgIEphdmFSdW50aW1lTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0
JiBsaXN0KQorICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIG5hbWUsIGxpc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFSdW50aW1lT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFS
dW50aW1lT2JqZWN0LmNwcAppbmRleCAwNzdjZWE5NDE1ZGRkOWYzYmM1NjcxMTUxZmRhZDZhZGIw
ODUzMzAxLi5mZmZlODU2ZGEwZDVlNTFiNjgyOGYyNmY1ZGExMWUxNmE3MTU4ZmQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3Bw
CkBAIC0zNSwxMCArMzUsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBjb25zdCBDbGFzc0lu
Zm8gSmF2YVJ1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIkphdmFSdW50aW1lT2JqZWN0IiwgJlJ1
bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCi1KYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1
bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgLy8gRklYTUU6IGRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3Jvbmcg
Z2xvYmFsIG9iamVjdAotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFs
IG9iamVjdCBmb3IgImkiLgotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3Qs
IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVPYmplY3Q+KGV4
ZWMpLCBpbnN0YW5jZSkKK0phdmFSdW50aW1lT2JqZWN0OjpKYXZhUnVudGltZU9iamVjdChFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gaW5zdGFuY2UpCisgICAgOiBSdW50aW1l
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgKaW5kZXggMGYzMDdjYjk0N2EyNGYzMGM3Mzdj
NTI0MTJhNWQxZDc3NjFkNDkwNC4uODhlMWUzYjgyYTI1OGEwNTkwYWZhN2YzZTQxYmJjOWQwYjE0
OGVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRp
bWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGlt
ZU9iamVjdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEphdmFSdW50aW1lT2JqZWN0X2gK
ICNkZWZpbmUgSmF2YVJ1bnRpbWVPYmplY3RfaAogCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAicnVudGltZV9vYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zOSw3
ICs0MCwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSmF2YVJ1bnRpbWVPYmplY3QqIGNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQ
dHI8SmF2YUluc3RhbmNlPiBqYXZhSW5zdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFs
bG9jYXRlQ2VsbDxKYXZhUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1l
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgamF2YUluc3QpOworICAgICAgICAvLyBGSVhNRTog
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3
cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmln
aHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgorICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVy
ZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVPYmplY3Q+
KGV4ZWMpOworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVPYmpl
Y3Q+KCpleGVjLT5oZWFwKCkpKSBKYXZhUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3Qs
IGRvbVN0cnVjdHVyZSwgamF2YUluc3QpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkphdmFSdW50
aW1lT2JqZWN0KCk7CkBAIC01NCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgSmF2YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBQYXNz
UmVmUHRyPEphdmFJbnN0YW5jZT4pOworICAgIEphdmFSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+KTsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50
aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVj
dC5oCmluZGV4IDY0Y2NmZjZlYWFmY2NjYjU1MWMwZDVkYTcwZjI0NjEzYWNhZTI1NjEuLmE4ODEz
ZmUzZjc4ZThmYTUzZTIzYzNiYWFiOTcwYzQzMmRlMGZmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaApAQCAtMzksNiArMzksOCBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgT2JqQ1J1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8T2JqY0luc3RhbmNl
PiBpbnN0KQogICAgIHsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1
cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAg
ICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJp
Ii4KICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlPE9iakNSdW50aW1lT2JqZWN0PihleGVjKTsKICAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPE9iakNSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgT2JqQ1J1
bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnN0LCBzdHJ1Y3R1cmUpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0
Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QubW0KaW5k
ZXggNTg0OGZlMzAzN2ExZmU1NjU1MGRjMDIyYTU3ZDBjZTU0MDY1YzZlNC4uZWE4NjI2MzJkZWM0
Y2ZlN2FlZGQ2MWRlNTg0YmIyZDVjMGViOGZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QubW0KQEAgLTM2LDggKzM2LDYgQEAgbmFtZXNwYWNl
IEJpbmRpbmdzIHsKIGNvbnN0IENsYXNzSW5mbyBPYmpDUnVudGltZU9iamVjdDo6c19pbmZvID0g
eyAiT2JqQ1J1bnRpbWVPYmplY3QiLCAmUnVudGltZU9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAK
IE9iakNSdW50aW1lT2JqZWN0OjpPYmpDUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8T2JqY0luc3RhbmNlPiBpbnN0
YW5jZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRE
T01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9i
amVjdAotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBm
b3IgImkiLgogICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSwgaW5zdGFuY2UpCiB7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IDA0MWY5MjM3NzZiYTVk
ODAxZjVkNzhmMzgyOGJkOWRlNGZkZTc2MjcuLmRjZGM3YjZhNjhiM2JkNjQ4NjcxYmVkZTY3ZDVi
OTliN2Q2MWYwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
aW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5j
ZS5tbQpAQCAtMTc1LDcgKzE3NSwxMCBAQCBjbGFzcyBPYmpDUnVudGltZU1ldGhvZCA6IHB1Ymxp
YyBSdW50aW1lTWV0aG9kIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgT2JqQ1J1bnRpbWVNZXRob2Qq
IGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPE9iakNSdW50aW1lTWV0aG9kPigqZXhl
Yy0+aGVhcCgpKSkgT2JqQ1J1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBuYW1lLCBs
aXN0KTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0
aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAgICAvLyBX
ZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KKyAgICAg
ICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3Ry
dWN0dXJlPE9iakNSdW50aW1lTWV0aG9kPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPE9iakNSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgT2JqQ1J1bnRpbWVN
ZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpOwogICAg
IH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTg2LDEwICsxODksOCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKIHByaXZhdGU6Ci0gICAg
T2JqQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlz
dCkKLSAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUg
cHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgICAgICAvLyBXZSBu
ZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KLSAgICAgICAg
OiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdl
dERPTVN0cnVjdHVyZTxPYmpDUnVudGltZU1ldGhvZD4oZXhlYyksIG5hbWUsIGxpc3QpCisgICAg
T2JqQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmlu
ZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCisgICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbmFtZSwgbGlzdCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUuaAppbmRleCA1NzRjM2M3ZDkwMjUyZDc2NzA0ZDYwZDM5ZGYzMDA1YThhM2Y1
YzQxLi5kODAxOTAxMDY3NTllMzE2MGRmNTNlOGIzYjFkZjA3NDY1MGM3NmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMjcsNiArMjcsNyBAQAogI2Rl
ZmluZSBLSlNfQklORElOR1NfT0JKQ19SVU5USU1FX0gKIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5o
IgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIm9iamNfaGVhZGVyLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg+CkBAIC05Niw3ICs5Nyw5IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBPYmpjRmFsbGJhY2tPYmplY3RJbXAqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE9iamNJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFs
bG9jYXRlQ2VsbDxPYmpjRmFsbGJhY2tPYmplY3RJbXA+KCpleGVjLT5oZWFwKCkpKSBPYmpjRmFs
bGJhY2tPYmplY3RJbXAoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnN0YW5jZSwgcHJvcGVydHlOYW1l
KTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUg
cHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAorICAgICAgICBTdHJ1Y3R1
cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2Jq
Y0ZhbGxiYWNrT2JqZWN0SW1wPihleGVjKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVD
ZWxsPE9iamNGYWxsYmFja09iamVjdEltcD4oKmV4ZWMtPmhlYXAoKSkpIE9iamNGYWxsYmFja09i
amVjdEltcChnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFuY2UsIHByb3BlcnR5TmFt
ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0xMTQs
NyArMTE3LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBPYmpjRmFsbGJhY2tP
YmplY3RJbXAoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBPYmpjSW5zdGFuY2UqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOworICAgIE9iamNGYWxsYmFja09iamVjdEltcChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZs
YWdzOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
CmluZGV4IDIyNjJjZDY5OTg4OTAyMzU3NjdjZWZhNmYzMjFmNjVlNmY2YjBmZjMuLjc1MGJjN2Vl
ZmRlMWUzOGExMzY3NmNlYWYwOTIyZGU3MWY4NTk5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlIDxydW50
aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9PYmplY3RQcm90b3R5cGUu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtMTk3LDkgKzE5Niw4IEBAIHVuc2lnbmVkIGludCBPYmpjQXJyYXk6OmdldExlbmd0aCgp
IGNvbnN0CiAKIGNvbnN0IENsYXNzSW5mbyBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnNfaW5mbyA9
IHsgIk9iamNGYWxsYmFja09iamVjdCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5m
bywgMCwgMCB9OwogCi1PYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdElt
cChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE9iamNJbnN0
YW5jZSogaSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotICAgIC8vIEZJWE1FOiBk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdy
b25nIGdsb2JhbCBvYmplY3QKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxP
YmplY3QsIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2JqY0ZhbGxiYWNrT2JqZWN0SW1wPihl
eGVjKSkKK09iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBPYmpjSW5zdGFu
Y2UqIGksIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKKyAgICA6IEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIF9pbnN0YW5jZShp
KQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9pbnN0YW5jZS5jcHAKaW5kZXggYTljYTQ4MGYwMjY4NmMyZTI4YzE5OTc0ZmY3NjQ1YzUxNDUw
ZDAwZi4uMjA5ZDVlY2E5YmUzNWMwOTNhOGFmMTUzN2M5ODZiNWE0NWMzZDhmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCkBAIC01NCw3ICs1NCw4IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBRdFJ1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3Rh
bmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZU9i
amVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3Qs
IGluc3RhbmNlKTsKKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU9iamVjdD4oZXhlYyk7CisgICAgICAg
IHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkp
KSBRdFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3Rh
bmNlKTsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBA
IC03NiwxMyArNzcsMTMgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IFJ1bnRpbWVPYmplY3Q6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbjsKIAogcHJpdmF0ZToKLSAgICBRdFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CisgICAgUXRSdW50aW1l
T2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0
cjxJbnN0YW5jZT4pOwogfTsKIAogY29uc3QgQ2xhc3NJbmZvIFF0UnVudGltZU9iamVjdDo6c19p
bmZvID0geyAiUXRSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9
OwogCi1RdFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNl
KQotICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIFdlYkNvcmU6OmRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lT2JqZWN0PihleGVjKSwgaW5zdGFuY2UpCitR
dFJ1bnRpbWVPYmplY3Q6OlF0UnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPElu
c3RhbmNlPiBpbnN0YW5jZSkKKyAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIGluc3RhbmNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXggMzc4ZTZjM2M3NTgzYjM1N2I2OWI2N2E5ZDUx
ZjY4NmU1MGI1ZTcyNy4uNGZhYzUyMDFkNmRkMzE1ZDMwZTlmZjkzMjg4MzAzYWU3MjIwN2MxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcApAQCAt
MjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJJ
bWFnZURhdGEuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgpAQCAtMjAyLDcgKzIwMyw4IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBRdFBpeG1hcFJ1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFu
Y2U+IGluc3RhbmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0
UGl4bWFwUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UGl4bWFwUnVudGltZU9iamVj
dChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKTsKKyAgICAgICAgU3RydWN0dXJlKiBkb21T
dHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UGl4bWFwUnVu
dGltZU9iamVjdD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFBp
eG1hcFJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBRdFBpeG1hcFJ1bnRpbWVPYmplY3Qo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTIxNiwxMSArMjE4LDExIEBAIHBy
b3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBSdW50
aW1lT2JqZWN0OjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW47CiAKIHBy
aXZhdGU6Ci0gICAgUXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0KiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOworICAgIFF0UGl4bWFwUnVudGltZU9iamVjdChF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8SW5zdGFu
Y2U+KTsKIH07CiAKLVF0UGl4bWFwUnVudGltZU9iamVjdDo6UXRQaXhtYXBSdW50aW1lT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0
cjxJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9i
amVjdCwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFBpeG1hcFJ1bnRpbWVP
YmplY3Q+KGV4ZWMpLCBpbnN0YW5jZSkKK1F0UGl4bWFwUnVudGltZU9iamVjdDo6UXRQaXhtYXBS
dW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQor
ICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFu
Y2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCAz
MzBmNGNiM2UzMzMyMTRjZGMzMGZmNTkzNTIzNDRmZGQ5MDE1MWQ2Li44MmViZDk4M2M5YTY5Yjhi
ZTFkZWQwOTRhY2U4NjhhMjcwMzdmY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1
bnRpbWUuY3BwCkBAIC0xMDA2LDggKzEwMDYsOCBAQCBKU1ZhbHVlIGNvbnZlcnRRVmFyaWFudFRv
VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3QsIGNvbgog
CiBjb25zdCBDbGFzc0luZm8gUXRSdW50aW1lTWV0aG9kOjpzX2luZm8gPSB7ICJRdFJ1bnRpbWVN
ZXRob2QiLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAwLCAwIH07CiAKLVF0UnVudGltZU1l
dGhvZDo6UXRSdW50aW1lTWV0aG9kKFF0UnVudGltZU1ldGhvZERhdGEqIGRkLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGlu
c3QpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSwgZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFJ1bnRpbWVN
ZXRob2Q+KGV4ZWMpLCBpZGVudCkKK1F0UnVudGltZU1ldGhvZDo6UXRSdW50aW1lTWV0aG9kKFF0
UnVudGltZU1ldGhvZERhdGEqIGRkLCBFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0
KQorICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIHN0cnVjdHVyZSwgaWRlbnQpCiAgICAgLCBkX3B0cihkZCkKIHsK
ICAgICBRV19EKFF0UnVudGltZU1ldGhvZCk7CkBAIC0xNDIwLDggKzE0MjAsOCBAQCBzdGF0aWMg
aW50IGZpbmRTaWduYWxJbmRleChjb25zdCBRTWV0YU9iamVjdCogbWV0YSwgaW50IGluaXRpYWxJ
bmRleCwgUUJ5dGVBcnJheQogICAgIHJldHVybiBpbmRleDsKIH0KIAotUXRSdW50aW1lTWV0YU1l
dGhvZDo6UXRSdW50aW1lTWV0YU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRleCwgY29uc3Qg
UUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0ZSkKLSAgICA6IFF0UnVudGlt
ZU1ldGhvZCAobmV3IFF0UnVudGltZU1ldGFNZXRob2REYXRhKCksIGV4ZWMsIGlkZW50LCBpbnN0
KQorUXRSdW50aW1lTWV0YU1ldGhvZDo6UXRSdW50aW1lTWV0YU1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgUGFzc1Jl
ZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25h
dHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpCisgICAgOiBRdFJ1bnRpbWVNZXRob2QgKG5ldyBRdFJ1
bnRpbWVNZXRhTWV0aG9kRGF0YSgpLCBleGVjLCBzdHJ1Y3R1cmUsIGlkZW50LCBpbnN0KQogewog
ICAgIFFXX0QoUXRSdW50aW1lTWV0YU1ldGhvZCk7CiAgICAgZC0+bV9zaWduYXR1cmUgPSBzaWdu
YXR1cmU7CkBAIC0xNTY0LDggKzE1NjQsOCBAQCBKU1ZhbHVlIFF0UnVudGltZU1ldGFNZXRob2Q6
OmRpc2Nvbm5lY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLAogCiBR
TXVsdGlNYXA8UU9iamVjdCosIFF0Q29ubmVjdGlvbk9iamVjdCo+IFF0UnVudGltZUNvbm5lY3Rp
b25NZXRob2Q6OmNvbm5lY3Rpb25zOwogCi1RdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpRdFJ1
bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
aWRlbnQsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBp
bmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlKQotICAgIDogUXRSdW50aW1lTWV0aG9k
IChuZXcgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERhdGEoKSwgZXhlYywgaWRlbnQsIGluc3Qp
CitRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50LCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5k
ZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKKyAgICA6IFF0UnVudGltZU1ldGhvZCAo
bmV3IFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKCksIGV4ZWMsIHN0cnVjdHVyZSwgaWRl
bnQsIGluc3QpCiB7CiAgICAgUVdfRChRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggMmJlNDJmNGEyMTk3ZGFhOGUwNjI4
ZDA4MTUzYTJlZGQ0MTA1OTc0NC4uZDQ5N2VjYTk1NTI1MmZiYTViOTZkZWQ4OTA4MjgwZDVlZmNj
NTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0yMSw2ICsyMSw3
IEBACiAjZGVmaW5lIEJJTkRJTkdTX1FUX1JVTlRJTUVfSF8KIAogI2luY2x1ZGUgIkJyaWRnZUpT
Qy5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIK
ICNpbmNsdWRlICJXZWFrLmgiCiAjaW5jbHVkZSAicXRfaW5zdGFuY2UuaCIKQEAgLTE0NSwxOCAr
MTQ2LDE4IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzIHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNWaXNp
dENoaWxkcmVuOwogCiAgICAgUXRSdW50aW1lTWV0aG9kRGF0YSAqZF9mdW5jKCkgY29uc3Qge3Jl
dHVybiBkX3B0cjt9Ci0gICAgUXRSdW50aW1lTWV0aG9kKFF0UnVudGltZU1ldGhvZERhdGEgKmRk
LCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJm4sIFBhc3NSZWZQdHI8UXRJbnN0
YW5jZT4gaW5zdCk7CisgICAgUXRSdW50aW1lTWV0aG9kKFF0UnVudGltZU1ldGhvZERhdGEgKmRk
LCBFeGVjU3RhdGUgKiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciAmbmFtZSwgUGFzc1Jl
ZlB0cjxRdEluc3RhbmNlPik7CiAgICAgUXRSdW50aW1lTWV0aG9kRGF0YSAqZF9wdHI7CiB9Owog
Ci1jbGFzcyBRdFJ1bnRpbWVNZXRhTWV0aG9kIDogcHVibGljIFF0UnVudGltZU1ldGhvZAotewor
Y2xhc3MgUXRSdW50aW1lTWV0YU1ldGhvZCA6IHB1YmxpYyBRdFJ1bnRpbWVNZXRob2QgewogcHVi
bGljOgogICAgIHR5cGVkZWYgUXRSdW50aW1lTWV0aG9kIEJhc2U7CiAKICAgICBzdGF0aWMgUXRS
dW50aW1lTWV0YU1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgbiwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRl
QXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpCiAgICAgewotICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lTWV0YU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkp
IFF0UnVudGltZU1ldGFNZXRob2QoZXhlYywgbiwgaW5zdCwgaW5kZXgsIHNpZ25hdHVyZSwgYWxs
b3dQcml2YXRlKTsKKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAgICAg
IHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVNZXRhTWV0aG9kPigqZXhlYy0+aGVh
cCgpKSkgUXRSdW50aW1lTWV0YU1ldGhvZChleGVjLCBkb21TdHJ1Y3R1cmUsIG4sIGluc3QsIGlu
ZGV4LCBzaWduYXR1cmUsIGFsbG93UHJpdmF0ZSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwpAQCAtMTY5LDcgKzE3MCw3IEBAIHByb3RlY3RlZDoKICAgICBRdFJ1bnRpbWVN
ZXRhTWV0aG9kRGF0YSogZF9mdW5jKCkgY29uc3Qge3JldHVybiByZWludGVycHJldF9jYXN0PFF0
UnVudGltZU1ldGFNZXRob2REYXRhKj4oZF9wdHIpO30KIAogcHJpdmF0ZToKLSAgICBRdFJ1bnRp
bWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQYXNzUmVmUHRyPFF0
SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmLCBib29sIGFsbG93UHJpdmF0
ZSk7CisgICAgUXRSdW50aW1lTWV0YU1ldGhvZChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBjb25zdCBR
Qnl0ZUFycmF5JiwgYm9vbCBhbGxvd1ByaXZhdGUpOwogCiAgICAgdmlydHVhbCBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGwoRXhlY1N0YXRlKiBleGVjKTsKQEAgLTE4NSw3ICsxODYsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbiwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8
UXRJbnN0YW5jZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUp
CiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoZXhl
YywgbiwgaXNDb25uZWN0LCBpbnN0LCBpbmRleCwgc2lnbmF0dXJlKTsKKyAgICAgICAgU3RydWN0
dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0
UnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxR
dFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZChleGVjLCBkb21TdHJ1Y3R1cmUsIG4sIGlzQ29ubmVjdCwgaW5zdCwgaW5kZXgs
IHNpZ25hdHVyZSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpAQCAtMTk2
LDcgKzE5OCw3IEBAIHByb3RlY3RlZDoKICAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kRGF0
YSogZF9mdW5jKCkgY29uc3Qge3JldHVybiByZWludGVycHJldF9jYXN0PFF0UnVudGltZUNvbm5l
Y3Rpb25NZXRob2REYXRhKj4oZF9wdHIpO30KIAogcHJpdmF0ZToKLSAgICBRdFJ1bnRpbWVDb25u
ZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBib29sIGlzQ29ubmVj
dCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5Jik7
CisgICAgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBj
b25zdCBJZGVudGlmaWVyJiwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4s
IGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYpOwogCiAgICAgdmlydHVhbCBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGwoRXhlY1N0YXRlKiBleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcAppbmRleCBlM2M4ZjU3MzdlMzJiOTIyMDNkZTk1ODBkNWVmYjljZjViYjgzZmM2
Li5iNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2NTdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0zNywxMCArMzcsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGlt
ZUFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgMCB9OwogCi1SdW50aW1lQXJyYXk6OlJ1bnRp
bWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCi0gICAgLy8g
RklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBv
ZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUg
cmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImFycmF5Ii4KLSAgICA6IEpTQXJyYXkoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFJ1bnRpbWVBcnJheT4oZXhlYykp
CitSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQorICAgIDogSlNBcnJheShleGVjLT5n
bG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogICAgIHNldFN1YmNsYXNzRGF0YShhcnJheSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaAppbmRleCAyNTcyOGZiNjY5MWUwYzY3ZTM0OTkwYTNkMzBmNmNhYmQ4MDQyODcwLi5j
YjdiYzYzNTc3NmQ4ZWJjOTEwMzk1MzIwYWVmZGU0MmJjYjkwNmQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUlVOVElNRV9B
UlJBWV9IXwogCiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9BcnJheVByb3RvdHlwZS5oPgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTM3LDcgKzM4LDEwIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSdW50aW1lQXJyYXkq
IGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCiAgICAgewot
ICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UnVudGltZUFycmF5PigqZXhlYy0+aGVh
cCgpKSkgUnVudGltZUFycmF5KGV4ZWMsIGFycmF5KTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3Jvbmcg
Z2xvYmFsIG9iamVjdAorICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGds
b2JhbCBvYmplY3QgZm9yICJhcnJheSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJl
ID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxSdW50aW1lQXJyYXk+KGV4ZWMp
OworICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UnVudGltZUFycmF5PigqZXhlYy0+
aGVhcCgpKSkgUnVudGltZUFycmF5KGV4ZWMsIGRvbVN0cnVjdHVyZSwgYXJyYXkpOwogICAgIH0K
IAogICAgIHR5cGVkZWYgQmluZGluZ3M6OkFycmF5IEJpbmRpbmdzQXJyYXk7CkBAIC03Myw3ICs3
Nyw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6Ci0gICAgUnVudGltZUFy
cmF5KEV4ZWNTdGF0ZSosIEJpbmRpbmdzOjpBcnJheSopOworICAgIFJ1bnRpbWVBcnJheShFeGVj
U3RhdGUqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6QXJyYXkqKTsKICAgICBzdGF0aWMgSlNWYWx1
ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOwog
ICAgIHN0YXRpYyBKU1ZhbHVlIGluZGV4R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIHVuc2ln
bmVkKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA1
N2Q1YWFiYzAxNTUzOTBlZmQwM2FkNWI3YjgzNzFhOWE2Y2UyYzA5Li5mNGQwYmFkZTVlOGJmYWE1
OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJydW50aW1lX21ldGhvZC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4K
LSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFmMTEyM2FiMWU5YWUwYmZiZjc5ZTIyZWZi
NTNjNzI3OTQ2YjllNjAuLjgwZDM3MjRkOGFiNGFkNjdiYTE4YzE5ODAyY2FjYjE4YmUyYTIxYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wOC0xNSAgTWFyayBIYWhu
ZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIEpTIG9i
amVjdHMgdG8gYWxsb2NhdGUgaW4gc3RhdGljIGNyZWF0ZSBtZXRob2RzIHJhdGhlciB0aGFuIGNv
bnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjUzNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb3ZlZCBhbGwgYWxsb2NhdGlvbiB0aGF0IG5lZWRzIHRvIHRha2UgcGxhY2UgYWZ0ZXIgdGhl
IGNvbnN0cnVjdG9yIGhhcyBydW4gaW50byBhIAorICAgICAgICBmaW5pc2hBbGxvY2F0aW9ucygp
IG1ldGhvZC4gIFRoaXMgbWV0aG9kIGlzIHN0aWxsIGNhbGxlZCBmcm9tIHRoZSBjb25zdHJ1Y3Rv
ci4gIAorICAgICAgICBFdmVudHVhbGx5LCBpdCB3aWxsIGJlIG1vdmVkIG91dHNpZGUgdGhlIGNv
bnN0cnVjdG9yIGFuZCBjYWxscyB0byBwYXJlbnQgY2xhc3NlcycKKyAgICAgICAgaW1wbGVtZW50
YXRpb25zIHdpbGwgYmUgYWRkZWQuICAKKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5
SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU1ldGhvZDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9kOjpQcm94eVJ1bnRpbWVNZXRo
b2QpOgorCiAyMDExLTA4LTEwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDbGVhciB1cCBzY2FsZSBmYWN0b3IgdGVybWlub2xvZ3kKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCmluZGV4IGIwYWNjYTE3N2U4
MmY2YmU0YWU2MzE2OGZlMzZjNzhiMTIxODI4OWMuLmViNDljZjM0ODdhODU1NDUwOWU2ZTIxMjYy
NGJiNTg5NTFmMzhiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMTgzLDcgKzE4MywxMCBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgUHJveHlSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6
TWV0aG9kTGlzdCYgbGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxQcm94eVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBQcm94eVJ1bnRpbWVNZXRob2Qo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBuYW1lLCBsaXN0KTsKKyAgICAgICAgLy8gRklYTUU6IGRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3Jvbmcg
Z2xvYmFsIG9iamVjdAorICAgICAgICAvLyBleGVjLWdsb2JhbERhdGEoKSBpcyBhbHNvIGxpa2Vs
eSB3cm9uZy4KKyAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlPFByb3h5UnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAgICAgIHJldHVybiBu
ZXcgKGFsbG9jYXRlQ2VsbDxQcm94eVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBQcm94
eVJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIG5hbWUsIGxp
c3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTk0LDEwICsxOTcs
OCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKIHByaXZh
dGU6Ci0gICAgUHJveHlSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhv
ZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJl
IHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAg
ICAgLy8gZXhlYy1nbG9iYWxEYXRhKCkgaXMgYWxzbyBsaWtlbHkgd3JvbmcuCi0gICAgICAgIDog
UnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1
cmU8UHJveHlSdW50aW1lTWV0aG9kPihleGVjKSwgbmFtZSwgbGlzdCkKKyAgICBQcm94eVJ1bnRp
bWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1l
dGhvZExpc3QmIGxpc3QpCisgICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgbmFtZSwgbGlzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103958</attachid>
            <date>2011-08-15 14:50:26 -0700</date>
            <delta_ts>2011-08-15 16:01:17 -0700</delta_ts>
            <desc>Fixing build errors</desc>
            <filename>bug-65347-20110815145033.patch</filename>
            <type>text/plain</type>
            <size>44734</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJl
MzZhMDcyYjNjYjMyMWNhZTdjMTAxYjVmNmVhZjUxYWY4MzMzM2EuLjNiOWU2MmNjMjlkOTZlNDg1
YWUzMDMwMTczZjdkNjcxNWZjODk1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDcyIEBACisyMDExLTA4LTE1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgSlMgb2JqZWN0cyB0byBhbGxvY2F0ZSBpbiBzdGF0
aWMgY3JlYXRlIG1ldGhvZHMgcmF0aGVyIHRoYW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbmV4dCBwYXRjaCBpcyB0aGUg
cmVmYWN0b3JpbmcgdG8gcHV0IGFsbCBhbGxvY2F0aW9ucyB0aGF0IG5lZWQgdG8gYmUgZG9uZSBh
ZnRlciAKKyAgICAgICAgdGhlIG9iamVjdCdzIGluaXRpYWxpemF0aW9uIGxpc3QgaGFzIGV4ZWN1
dGVkIGJ1dCBiZWZvcmUgdGhlIG9iamVjdCBpcyByZWFkeSBmb3IgdXNlIAorICAgICAgICBpbnRv
IGEgc2VwYXJhdGUgZmluaXNoQWxsb2NhdGlvbnMoKSBtZXRob2QuICBUaGlzIG1ldGhvZCBpcyBz
dGlsbCBjYWxsZWQgYnkgdGhlIGNvbnN0cnVjdG9yLCAKKyAgICAgICAgc28gdGhlIHBhdGNoIGRv
ZXNuJ3QgcmVzb2x2ZSBhbnkgcG90ZW50aWFsIGlzc3VlcywgaXQncyBqdXN0IHRvIHNldCB1cCB0
aGUgY29kZSBmb3IgZnVydGhlciByZWZhY3RvcmluZy4KKworICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoR2xvYmFsT2JqZWN0OjpmaW5p
c2hBbGxvY2F0aW9ucyk6CisgICAgICAgIChHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJ
bnN0YW5jZTo6RXJyb3JJbnN0YW5jZSk6CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNl
Lmg6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmZpbmlzaEFsbG9jYXRpb25zKToKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQ
cm90b3R5cGU6OkVycm9yUHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90
eXBlLmg6CisgICAgICAgIChKU0M6OkVycm9yUHJvdG90eXBlOjpmaW5pc2hBbGxvY2F0aW9ucyk6
CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rp
b25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhl
Y3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmZpbmlzaEFsbG9j
YXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlv
bjo6ZmluaXNoQWxsb2NhdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3Bw
OgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6SlNCeXRlQXJyYXkpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmZpbmlzaEFs
bG9jYXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6
ZmluaXNoQWxsb2NhdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZp
bmlzaEFsbG9jYXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6ZmluaXNoQWxsb2NhdGlv
bnMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6Um9wZUJ1
aWxkZXI6OkpTU3RyaW5nKToKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OmZpbmlzaEFsbG9j
YXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAg
ICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQWxsb2NhdGlvbnMpOgorICAg
ICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpO
YXRpdmVFcnJvclByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUpOgorICAgICAgICAoSlND
OjpOYXRpdmVFcnJvclByb3RvdHlwZTo6ZmluaXNoQWxsb2NhdGlvbnMpOgorICAgICAgICAqIHJ1
bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKEpT
Qzo6U3RyaW5nT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0
VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaDoKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0
VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cmlu
Z09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3RvdHlwZSk6CisgICAg
ICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJv
dG90eXBlOjpjcmVhdGUpOgorCiAyMDExLTA4LTE1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJh
Y2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBhY2Nlc3Npbmcgc3RhdGljIHByb3Bl
cnR5IG9uIHNlYWxlZCBvYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZXhwCmluZGV4IGU1NWY2OWQ5ZTNhNGUxOTFkYTY2MGI0NWY4OGNmYjI2ZDViYWRhYTMuLmYwYmJj
YzQwZTI2MzA4MDQ3NWQwOWRhYTZmODRkNDA2NzU5NDFmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTUxLDcgKzE1MSw3IEBAIF9fWk4zSlNDMTJTdHJp
bmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVy
dHlOYW1lQXJyCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlw
dG9yRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0
cmluZ09iamVjdDZzX2luZm9FCi1fX1pOM0pTQzEyU3RyaW5nT2JqZWN0QzJFUE5TXzlFeGVjU3Rh
dGVFUE5TXzlTdHJ1Y3R1cmVFUktOU183VVN0cmluZ0UKK19fWk4zSlNDMTJTdHJpbmdPYmplY3RD
MkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUE5TXzhKU1N0cmluZ0UKIF9fWk4z
SlNDMTNTYW1wbGluZ0ZsYWdzNHN0b3BFdgogX19aTjNKU0MxM1NhbXBsaW5nRmxhZ3M1c3RhcnRF
dgogX19aTjNKU0MxM1NhbXBsaW5nRmxhZ3M3c19mbGFnc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggYWZlYjVkOWQxMTM5NmE0OWFmNGFmZmMxM2MzNDU4ODVjOWIyYTEzMS4uZGUzMjhjYThmMjcx
ZGYyODY5NjQ1Y2I3MDRlZDQ2MWI3ZjgyOGUyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE1
NSwzNiArMTU1LDQyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxs
PEdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSwgYXJndW1lbnRzKTsKICAgICB9CiAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNz
TmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9Ci19OwotQ09NUElMRV9BU1NFUlQoIUlz
SW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxPYmplY3Rf
ZmFsc2UpOwotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwogCi1HbG9i
YWxPYmplY3Q6Okdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKLSAgICA6IEpT
R2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLXsKLSAgICBwdXREaXJlY3RGdW5j
dGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMs
IGZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiZGVidWci
KSwgZnVuY3Rpb25EZWJ1ZykpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUo
KSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJwcmludCIpLCBmdW5jdGlvblByaW50KSk7
Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
Z2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVudGlmaWVyKGds
b2JhbEV4ZWMoKSwgInF1aXQiKSwgZnVuY3Rpb25RdWl0KSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rp
b24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBm
dW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImdjIiksIGZ1
bmN0aW9uR0MpKTsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKGNvbnN0
IFZlY3RvcjxVU3RyaW5nPiYgYXJndW1lbnRzKQorICAgIHsKKyAgICAgICAgcHV0RGlyZWN0RnVu
Y3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlz
LCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImRlYnVn
IiksIGZ1bmN0aW9uRGVidWcpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhl
YygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVj
dHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInByaW50IiksIGZ1bmN0aW9uUHJp
bnQpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9u
OjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVu
dGlmaWVyKGdsb2JhbEV4ZWMoKSwgInF1aXQiKSwgZnVuY3Rpb25RdWl0KSk7CisgICAgICAgIHB1
dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4
ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmllcihnbG9iYWxFeGVj
KCksICJnYyIpLCBmdW5jdGlvbkdDKSk7CiAjaWZuZGVmIE5ERUJVRwotICAgIHB1dERpcmVjdEZ1
bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhp
cywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJyZWxl
YXNlRXhlY3V0YWJsZU1lbW9yeSIpLCBmdW5jdGlvblJlbGVhc2VFeGVjdXRhYmxlTWVtb3J5KSk7
CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmll
cihnbG9iYWxFeGVjKCksICJyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSIpLCBmdW5jdGlvblJlbGVh
c2VFeGVjdXRhYmxlTWVtb3J5KSk7CiAjZW5kaWYKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9i
YWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9u
U3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAidmVyc2lvbiIpLCBmdW5j
dGlvblZlcnNpb24pKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEs
IElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicnVuIiksIGZ1bmN0aW9uUnVuKSk7Ci0gICAgcHV0
RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhl
YygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMo
KSwgImxvYWQiKSwgZnVuY3Rpb25Mb2FkKSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFs
RXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0
cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImNoZWNrU3ludGF4IiksIGZ1
bmN0aW9uQ2hlY2tTeW50YXgpKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCks
IEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJl
KCksIDAsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicmVhZGxpbmUiKSwgZnVuY3Rpb25SZWFk
bGluZSkpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRp
ZmllcihnbG9iYWxFeGVjKCksICJwcmVjaXNlVGltZSIpLCBmdW5jdGlvblByZWNpc2VUaW1lKSk7
CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmll
cihnbG9iYWxFeGVjKCksICJ2ZXJzaW9uIiksIGZ1bmN0aW9uVmVyc2lvbikpOworICAgICAgICBw
dXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxF
eGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhl
YygpLCAicnVuIiksIGZ1bmN0aW9uUnVuKSk7CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGds
b2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rp
b25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJsb2FkIiksIGZ1bmN0
aW9uTG9hZCkpOworICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEs
IElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiY2hlY2tTeW50YXgiKSwgZnVuY3Rpb25DaGVja1N5
bnRheCkpOworICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rp
b246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIElk
ZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicmVhZGxpbmUiKSwgZnVuY3Rpb25SZWFkbGluZSkpOwor
ICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0
ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIElkZW50aWZpZXIo
Z2xvYmFsRXhlYygpLCAicHJlY2lzZVRpbWUiKSwgZnVuY3Rpb25QcmVjaXNlVGltZSkpOwogCiAj
aWYgRU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4
ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1
Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJzZXRTYW1wbGluZ0ZsYWdzIiks
IGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncykpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2Jh
bEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25T
dHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJjbGVhclNhbXBsaW5nRmxh
Z3MiKSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVu
Y3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlz
LCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInNldFNh
bXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25TZXRTYW1wbGluZ0ZsYWdzKSk7CisgICAgICAgIHB1dERp
cmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMo
KSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCks
ICJjbGVhclNhbXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpKTsKICNl
bmRpZgogCi0gICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxF
eGVjKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNpemUoKTsgKytp
KQotICAgICAgICBhcnJheS0+cHV0KGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhl
YygpLCBhcmd1bWVudHNbaV0pKTsKLSAgICBwdXREaXJlY3QoZ2xvYmFsRXhlYygpLT5nbG9iYWxE
YXRhKCksIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5KTsKKyAg
ICAgICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxFeGVjKCkp
OworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy5zaXplKCk7ICsraSkK
KyAgICAgICAgICAgIGFycmF5LT5wdXQoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxF
eGVjKCksIGFyZ3VtZW50c1tpXSkpOworICAgICAgICBwdXREaXJlY3QoZ2xvYmFsRXhlYygpLT5n
bG9iYWxEYXRhKCksIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5
KTsKKyAgICB9Cit9OworQ09NUElMRV9BU1NFUlQoIUlzSW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2
YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxPYmplY3RfZmFsc2UpOworQVNTRVJUX0NMQVNTX0ZJ
VFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOworCitHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBWZWN0
b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKKyAgICA6IEpTR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkKK3sKKyAgICBmaW5pc2hBbGxvY2F0aW9ucyhhcmd1bWVudHMpOwogfQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnQoRXhlY1N0YXRlKiBleGVj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5j
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApp
bmRleCAwNDM1MzcyZjEyNjM5YmFiZDY0MTBkY2ZlMDM0ODFmYTkyMjJkOWFhLi5hMWY5MWNkNjk5
ZTM3N2I5M2VjNjhlNDIwZmJkNDJjNjI2ZmZiMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMzAsNyArMzAsNyBAQCBFcnJvcklu
c3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgLCBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkKIHsKICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBn
bG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCAi
IiksIERvbnRFbnVtKTsKKyAgICBmaW5pc2hBbGxvY2F0aW9ucyhnbG9iYWxEYXRhKTsKIH0KIAog
RXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGQ2MWVlOTc1ZWMxMGRm
ZDc4NDc3NWU3M2I1YTE4MjExZjhjMDk0NzguLmIzMjkwODJiNGZlNjM0NGFkM2M4Mzk1N2I3ZjA4
ODhiYjEwMzY4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKQEAgLTUwLDYgKzUwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBleHBs
aWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogICAgICAgICBl
eHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IFVT
dHJpbmcmKTsKIAorICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEs
IGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwganNTdHJpbmcoJmdsb2JhbERhdGEs
ICIiKSwgRG9udEVudW0pOworICAgICAgICB9CisKICAgICAgICAgYm9vbCBtX2FwcGVuZFNvdXJj
ZVRvTWVzc2FnZTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggM2E2OWRkOTBlMjJmNDljZThhZTA2M2IxZmZlOTRi
NjYxOTJmNDE0ZS4uODlhM2Y0MDlkZTQzYmYyOTAwZTMyNjE4MzZiZWE5OTRhMzFmYTEzZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApA
QCAtNTMsOSArNTMsOCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEVycm9yUHJvdG90eXBl
KTsKIEVycm9yUHJvdG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogRXJy
b3JJbnN0YW5jZShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250RW51bSk7Ci0KICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOworICAgIGZpbmlzaEFsbG9jYXRpb25zKGV4ZWMpOwogICAgIHB1dEFu
b255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3Qp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUu
aAppbmRleCA0MDUyODM2MWFiYjIxMmEzYjQ2NjViYTQ0MWYyYTIwNTFhOGUwYTJlLi5kNDhjZDc0
NTIxNjk2OTQ0YWE3MDdhYjA5NjEwN2JjOGJiMzUzMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTQ1LDYgKzQ1LDExIEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBFcnJvclByb3RvdHlwZShFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgICAgICB2b2lkIGZpbmlz
aEFsbG9jYXRpb25zKEV4ZWNTdGF0ZSogZXhlYykKKyAgICAgICAgeworICAgICAgICAgICAgcHV0
RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLm5hbWUsIGpz
Tm9udHJpdmlhbFN0cmluZyhleGVjLCAiRXJyb3IiKSwgRG9udEVudW0pOworICAgICAgICB9CisK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBFcnJvckluc3Rh
bmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDY3N2E4OWJmMzc1NDM4YmU5NDAwMDRjNTJmZWUw
N2QzYThiODBkZTYuLjcyN2Y4YjE2ZDEwZjg4YmMxMDg5ODk5MWI2OWYxODBhNjAyZDY5MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0xNDQs
NyArMTQ0LDcgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWUKIHsKICAgICBtX2ZpcnN0TGluZSA9
IGZpcnN0TGluZTsKICAgICBtX2xhc3RMaW5lID0gbGFzdExpbmU7Ci0gICAgbV9uYW1lVmFsdWUu
c2V0KGdsb2JhbERhdGEsIHRoaXMsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLnVzdHJpbmco
KSkpOworICAgIGZpbmlzaEFsbG9jYXRpb25zKGdsb2JhbERhdGEsIG5hbWUpOwogfQogCiBGdW5j
dGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVz
ZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmlj
dENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsCiB7CiAgICAgbV9maXJzdExpbmUgPSBmaXJzdExpbmU7
CiAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOwotICAgIG1fbmFtZVZhbHVlLnNldChleGVjLT5n
bG9iYWxEYXRhKCksIHRoaXMsIGpzU3RyaW5nKCZleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUudXN0
cmluZygpKSk7CisgICAgZmluaXNoQWxsb2NhdGlvbnMoZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1l
KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5k
ZXggYmFiMzJiMjk4NzVjZGI0YTk1NjEzN2IwNzM3ZDIyOWE4NzFhYTZkOS4uOWU4ZjNiNDQ4YmZl
NTBjOGE4NTZhZDRjODdjYTNiYzZmZWViYTliNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaApAQCAtNTA0LDYgKzUwNCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCisgICAg
cHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgbV9uYW1lVmFsdWUuc2V0KGdsb2JhbERhdGEsIHRoaXMsIGpzU3RyaW5nKCZnbG9iYWxEYXRh
LCBuYW1lLnVzdHJpbmcoKSkpOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
Y29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFt
ZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwogICAgICAgICBGdW5j
dGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3Qg
U291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMq
LCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCBjM2IwN2Y4Mjk3
MDI4ZTk2ZjJmZjUwM2Q5NTE3OGYxY2NmOThmNmFlLi43MGEwNjIwYTNhZmU0YWI5ZDM5ZjNhNDYw
OWFkYmY3YjFiZGIxYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQCBJbnRlcm5hbEZ1bmN0aW9u
OjpJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsbwogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0RGlyZWN0
KCpnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZyhn
bG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBmaW5pc2hBbGxvY2F0aW9ucygqZ2xvYmFs
RGF0YSwgbmFtZSk7CiB9CiAKIGNvbnN0IFVTdHJpbmcmIEludGVybmFsRnVuY3Rpb246Om5hbWUo
RXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDgzMjQzYjNmZGZmNmQ0Y2Y4YmYzNGZjMTc0NWRmNTY1Yjlm
NGY3ZGYuLjEyOTlhM2JmZjFlNzc5NjNiOWI0OWMzMWQ0NWNhZjg5NTAwMmEwZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTU0
LDYgKzU0LDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb24o
SlNHbG9iYWxEYXRhKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlm
aWVyJik7CiAKKyAgICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpz
U3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICAgICAgfQorCiAgICAgcHJp
dmF0ZToKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmlu
ZGV4IGQ5MjRhN2ExYjM4OGNiNWM1MTJiOThkMzMxZDVjNTA0NjdmYTllNDQuLjAwZGQ4Y2ZkNmU5
MmU5MjI4MzEyZjI1MDlkZWUxOThiNDczYzNlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgSlNCeXRlQXJyYXk6
OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5dGVB
cnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBwdXREaXJlY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcihtX3N0b3JhZ2UtPmxlbmd0aCgpKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlKTsK
KyAgICBmaW5pc2hBbGxvY2F0aW9ucyhleGVjKTsKIH0KICAgICAgICAgCiBKU0J5dGVBcnJheSog
SlNCeXRlQXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBCeXRlQXJyYXkqIHN0b3JhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuaAppbmRleCA4NjkxNTY5YjUyZjYxZWY1NzI4MDI3ODZhZTI3OTgxMzg0MDUwM2E0
Li4xM2Q3NDdkZDhlODMwMmI0ZmY3NDY5ZDFmZDY0NWIzZWNjODY0Njg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTEwNCw2ICsxMDQsMTEgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCisgICAg
ICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRlKiBleGVjKQorICAgICAgICB7Cisg
ICAgICAgICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRh
KCkucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcihtX3N0b3JhZ2UtPmxlbmd0aCgpKSwg
UmVhZE9ubHkgfCBEb250RGVsZXRlKTsKKyAgICAgICAgfQorCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgSlNCeXRlQXJyYXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCiAgICAgICAgICAgICA6IEpTTm9u
RmluYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggMTNmMWVhYjUyMWRlZDVhZGFjMWM3MjkwODA2NzM0
YjY0MDJiMGE0Zi4uZDliNDNmYzQzM2EzYTk1MjhkZGFmNDM3MTc4MmYwYWNiMjI5YmIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTYzLDI1
ICs2MywyMyBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKQog
CiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIHRodW5rKQogICAgIDogQmFzZShnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSkKLSAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIHRodW5rKQorICAgICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFp
bihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFp
bigpKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0RGlyZWN0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5hbWUs
IGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdChleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0aCks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKworICAgIGZpbmlzaEFsbG9jYXRp
b25zKGV4ZWMsIGxlbmd0aCwgbmFtZSwgdGh1bmspOwogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorICAg
ICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCks
IHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgCiAgICAgLy8gQ2FuJ3QgZG8gdGhpcyBkdXJpbmcgaW5p
dGlhbGl6YXRpb24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQgZG8gYSBHQyBhbGxvY2F0
aW9uLgotICAgIG1fZXhlY3V0YWJsZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBleGVj
LT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKGZ1bmMpKTsKLSAgICAKLSAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+
bmFtZSwganNTdHJpbmcoZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVu
Z3RoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIGZpbmlzaEFsbG9j
YXRpb25zKGV4ZWMsIGxlbmd0aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVu
Y3Rpb24oZnVuYykpOwogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVD
aGFpbk5vZGUpCkBAIC05NCw2ICs5MiwxMyBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYQogICAg
IHB1dERpcmVjdE9mZnNldChleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9i
YWxPYmplY3QtPmZ1bmN0aW9uTmFtZU9mZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFsdWUoKSk7
CiB9CiAKK2lubGluZSB2b2lkIEpTRnVuY3Rpb246OmZpbmlzaEFsbG9jYXRpb25zKEV4ZWNTdGF0
ZSogZXhlYywgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJh
c2UqIGV4ZWN1dGFibGUpCit7CisgICAgbV9leGVjdXRhYmxlLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIGV4ZWN1dGFibGUpOworICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZyhleGVjLCBu
YW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihsZW5ndGgpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBEb250RW51bSk7Cit9CisKIEpTRnVuY3Rpb246On5KU0Z1bmN0aW9uKCkKIHsKICAg
ICBBU1NFUlQodnB0cigpID09IEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDI5Y2JmZDBmNGY2YWUy
Mjc0ODZkYjAyNTY2YzQ5MjU0ZDc0MjJkYjQuLjI1MzI1MzUxYjJhZDBkNTcxMDIyZDZkOGVlMDNj
ZTUyMWJkNWQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVy
ZUZsYWdzOwogCisgICAgICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRlKiwgaW50
IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqKTsKKwogICAg
IHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5
cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aAppbmRleCA1OWNhZDUwYWMzNGFlOWRjNzBjNDZmMDAxODIwNDM4MDBkOGRlN2U0Li4xZmJmMGE2
OWU3N2I3OTc0MDA4MTFhMmFhZjAxMThmNDdhMTgwYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoSlNHbG9i
YWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9oYXNfb25s
eV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDAp
OwotICAgICAgICAgICAgaW5pdCh0aGlzKTsKKyAgICAgICAgICAgIGZpbmlzaEFsbG9jYXRpb25z
KHRoaXMpOwogICAgICAgICB9CiAKICAgICAgICAgSlNHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkK
QEAgLTE3Myw2ICsxNzMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0g
MSwgSlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7CiAgICAgICAgICAgICBw
dXRUaGlzVG9Bbm9ueW1vdXNWYWx1ZSgwKTsKKyAgICAgICAgICAgIGZpbmlzaEFsbG9jYXRpb25z
KHRoaXNWYWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25z
KEpTT2JqZWN0KiB0aGlzVmFsdWUpCisgICAgICAgIHsKICAgICAgICAgICAgIGluaXQodGhpc1Zh
bHVlKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4IDgwMTJlOWRkMTE1NmE3Njg4
YWQyMGRjMTE1OTlmMmEyZDUyZDhmODIuLmIyYzEzNjc5YmU4ZTY0ZWVmMGU5ZmUzMjRmZGNmZWVj
MWNmZDZiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC00Myw5ICs0Myw3IEBAIGlubGluZSBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOCiAgICAgLCBtX2pzU3RyaW5nc1NpemUocHJvcGVydHlOYW1lQXJyYXlEYXRh
LT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCkpCiAgICAgLCBtX2pzU3RyaW5ncyhhZG9wdEFy
cmF5UHRyKG5ldyBXcml0ZUJhcnJpZXI8VW5rbm93bj5bbV9qc1N0cmluZ3NTaXplXSkpCiB7Ci0g
ICAgUHJvcGVydHlOYW1lQXJyYXlEYXRhOjpQcm9wZXJ0eU5hbWVWZWN0b3ImIHByb3BlcnR5TmFt
ZVZlY3RvciA9IHByb3BlcnR5TmFtZUFycmF5RGF0YS0+cHJvcGVydHlOYW1lVmVjdG9yKCk7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2pzU3RyaW5nc1NpemU7ICsraSkKLSAgICAgICAg
bV9qc1N0cmluZ3NbaV0uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywganNPd25lZFN0cmlu
ZyhleGVjLCBwcm9wZXJ0eU5hbWVWZWN0b3JbaV0udXN0cmluZygpKSk7CisgICAgZmluaXNoQWxs
b2NhdGlvbnMoZXhlYywgcHJvcGVydHlOYW1lQXJyYXlEYXRhKTsKIH0KIAogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKaW5kZXggZDJiNjExZGY2YjMyMGIwOWNhNTNlYThi
Nzg5MDFiNTZlMGJmZWZiNy4uODZlZGM3NDIwY2ExOWNlMTY3ZTA2YWYzMGI4ODBmNzQ3MDc0NGUy
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuaApAQCAtODQsNiArODQsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAorICAgIHByb3Rl
Y3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZUFycmF5RGF0YSogcHJvcGVydHlOYW1lQXJyYXlEYXRhKQorICAgICAgICB7Cisg
ICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheURhdGE6OlByb3BlcnR5TmFtZVZlY3RvciYgcHJv
cGVydHlOYW1lVmVjdG9yID0gcHJvcGVydHlOYW1lQXJyYXlEYXRhLT5wcm9wZXJ0eU5hbWVWZWN0
b3IoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9qc1N0cmluZ3NTaXpl
OyArK2kpCisgICAgICAgICAgICAgICAgbV9qc1N0cmluZ3NbaV0uc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0eU5hbWVWZWN0b3JbaV0udXN0
cmluZygpKSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXlEYXRhKiBwcm9wZXJ0eU5h
bWVBcnJheURhdGEsIHNpemVfdCBudW1DYWNoZWFibGVTbG90KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggMzE3MTE3NTc2MWYzZThiNzY1NzhmZGNhNGQw
ZjRkNTMzYzAzMmVmMi4uYWIzZWRkNTYyYzdjZjQyYWZiNmNiMmMyMmIwMWI3ODUxZTFkMGZiYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0yNjcsMTEgKzI2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBtX2xlbmd0aCgwKQogICAgICAg
ICAgICAgLCBtX2ZpYmVyQ291bnQoc19tYXhJbnRlcm5hbFJvcGVMZW5ndGgpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKLSAgICAgICAgICAgIGFwcGVuZFZhbHVl
SW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYxKTsKLSAgICAgICAg
ICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgs
IHYyKTsKLSAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5n
dGgoZXhlYywgaW5kZXgsIHYzKTsKLSAgICAgICAgICAgIEFTU0VSVChpbmRleCA9PSBzX21heElu
dGVybmFsUm9wZUxlbmd0aCk7CisgICAgICAgICAgICBmaW5pc2hBbGxvY2F0aW9ucyhleGVjLCB2
MSwgdjIsIHYzKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRoaXMgY29uc3RydWN0b3IgY29u
c3RydWN0cyBhIG5ldyBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB1MSAmIHUyLgpAQCAtMjk5LDYg
KzI5NSwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEFTU0VSVChpbmRleCA8PSBz
X21heEludGVybmFsUm9wZUxlbmd0aCk7CiAgICAgICAgIH0KIAorICAgIHByb3RlY3RlZDoKKyAg
ICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdjEs
IEpTVmFsdWUgdjIsIEpTVmFsdWUgdjMpCisgICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVk
IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1l
bnRMZW5ndGgoZXhlYywgaW5kZXgsIHYxKTsKKyAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25z
dHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYyKTsKKyAgICAgICAgICAgIGFw
cGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYzKTsK
KyAgICAgICAgICAgIEFTU0VSVChpbmRleCA9PSBzX21heEludGVybmFsUm9wZUxlbmd0aCk7Cisg
ICAgICAgIH0KKwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTU3RyaW5nKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiB2YWx1ZSkKICAgICAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmNwcAppbmRleCA4NWZmMGE4MmJhMjI0NDBjNWZiMzg3M2JlNGZiZjI2NGFk
ZjJmNmEzLi5mNzZlNDUxNWEzM2YyYzBkNzIwODdkYzVhYzFmZWY5MjljMDIzNTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmNwcApAQCAtMzcsMTMgKzM3LDcgQEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0Kgogewog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKLSAgICBOYXRpdmVFcnJvclByb3RvdHlw
ZSogcHJvdG90eXBlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZShleGVjLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZVN0cnVjdHVyZSwgbmFtZUFuZE1lc3NhZ2UsIHRoaXMpOwotCi0gICAg
cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8gRUNN
QSAxNS4xMS43LjUKLSAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25seSB8
IERvbnRFbnVtKTsKLSAgICBtX2Vycm9yU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IHRoaXMsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IHByb3RvdHlwZSkpOwotICAgIEFTU0VSVChtX2Vycm9yU3RydWN0dXJlKTsKLSAgICBBU1NFUlQo
bV9lcnJvclN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gT2JqZWN0VHlwZSk7CisgICAg
ZmluaXNoQWxsb2NhdGlvbnMoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVTdHJ1Y3R1cmUs
IG5hbWVBbmRNZXNzYWdlKTsKIH0KIAogdm9pZCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjp2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDNlYWJjN2E1
NWNhZmNhN2M5ZjAzZTEyNjgyOGVlYTJjZTFjNTI4NzUuLmQyY2IxMjhhZWJmNDEyYjZkMTRkMDlj
YWU5NDAyZDk1NmQyODMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZp
bmUgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcl9oCiAKICNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9u
LmgiCisjaW5jbHVkZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKQEAgLTQ3LDYgKzQ4LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CiAK
KyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHByb3RvdHlw
ZVN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIE5hdGl2ZUVycm9yUHJvdG90eXBlKiBwcm90b3R5cGUgPSBOYXRpdmVFcnJvclBy
b3RvdHlwZTo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlU3RydWN0dXJlLCBu
YW1lQW5kTWVzc2FnZSwgdGhpcyk7CisKKyAgICAgICAgICAgIHB1dERpcmVjdChleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7IC8vIEVDTUEgMTUuMTEuNy41CisgICAgICAg
ICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsK
KyAgICAgICAgICAgIG1fZXJyb3JTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJv
dG90eXBlKSk7CisgICAgICAgICAgICBBU1NFUlQobV9lcnJvclN0cnVjdHVyZSk7CisgICAgICAg
ICAgICBBU1NFUlQobV9lcnJvclN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gT2JqZWN0
VHlwZSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1
cmUqIHByb3RvdHlwZVN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYpOwogICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwg
SW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAKaW5kZXggNjgzMDY2
MDEyN2FmMzJiZTBmYjI4NzhlNDA5ZWNkNDgyZDlkMjgxYi4uODJkOWI4NDNmNzJmZGQxY2MyNWQ5
MmE3Y2MzNjA4YzVjODI3NzBhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcApAQCAtMzMsNiArMzMsMTEgQEAgQVNT
RVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChOYXRpdmVFcnJvclByb3RvdHlwZSk7CiBOYXRpdmVFcnJv
clByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmlu
ZyYgbmFtZUFuZE1lc3NhZ2UsIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yKQog
ICAgIDogRXJyb3JQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Cisg
ICAgZmluaXNoQWxsb2NhdGlvbnMoZXhlYywgbmFtZUFuZE1lc3NhZ2UsIGNvbnN0cnVjdG9yKTsK
K30KKworaW5saW5lIHZvaWQgTmF0aXZlRXJyb3JQcm90b3R5cGU6OmZpbmlzaEFsbG9jYXRpb25z
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UsIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yKQorewogICAgIHB1dERpcmVjdChleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc1N0cmluZyhleGVjLCBuYW1l
QW5kTWVzc2FnZSksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubWVzc2FnZSwganNTdHJpbmcoZXhlYywgbmFtZUFuZE1l
c3NhZ2UpLCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RvciwgRG9udEVudW0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90
b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90
eXBlLmgKaW5kZXggMWJiMjMwOTAzMzU0ZmNhN2MxMGEwNTZmNTQ5NWY2MzY5NTQ3Y2Q1OS4uMDQ0
ZTg1YmY5ODQxNWRkNjg5NmQyMzM4MjU4ZjgyODQzOWUwNDMxYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5oCkBAIC0zNyw2
ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXJyb3JQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBO
YXRpdmVFcnJvclByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbmFtZUFu
ZE1lc3NhZ2UsIGNvbnN0cnVjdG9yKTsKICAgICAgICAgfQorCisgICAgcHJvdGVjdGVkOgorICAg
ICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEV4ZWNTdGF0ZSosIGNvbnN0IFVTdHJpbmcmIG5h
bWVBbmRNZXNzYWdlLCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKik7CiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2Jq
ZWN0LmNwcAppbmRleCA2N2RjMjkxYjA5ZWNmN2Q3ZWJhODhhYWYyOTZmYTUzNDhlYzIyY2Y5Li4x
ZDBjN2FiZjk4ZDA4N2MwYjUxN2I1MjAyNDZlMmE4ZWZlYjMwNzY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTI5LDEzICsyOSw2IEBA
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoU3RyaW5nT2JqZWN0KTsKIAogY29uc3QgQ2xhc3NJ
bmZvIFN0cmluZ09iamVjdDo6c19pbmZvID0geyAiU3RyaW5nIiwgJkpTV3JhcHBlck9iamVjdDo6
c19pbmZvLCAwLCAwIH07CiAKLVN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSog
ZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCi17Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKLSAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNFbXB0eVN0cmlu
ZyhleGVjKSk7Ci19Ci0KIFN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU3RyaW5nKiBzdHJpbmcpCiAgICAg
OiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewpAQCAtNDMsMTMgKzM2
LDYgQEAgU3RyaW5nT2JqZWN0OjpTdHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHIKICAgICBzZXRJbnRlcm5hbFZhbHVlKGdsb2Jh
bERhdGEsIHN0cmluZyk7CiB9CiAKLVN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykKLSAg
ICA6IEpTV3JhcHBlck9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKLXsKLSAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBqc1N0cmluZyhleGVjLCBzdHJpbmcpKTsKLX0KLQogYm9vbCBTdHJpbmdP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChpbnRlcm5h
bFZhbHVlKCktPmdldFN0cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA4
MGU1YmVjNTc3Nzc1NTFhYTIxOTc3NDUwNTdhZTE5MDkyOGE3MTZlLi43ZDEzNWMxZTQxMjJmYWU3
ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuaApAQCAtMzIsMTQgKzMyLDE1IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8U3RyaW5nT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nT2JqZWN0KGV4
ZWMsIHN0cnVjdHVyZSk7ICAKKyAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBqc0VtcHR5
U3RyaW5nKGV4ZWMpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0cmlu
Z09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFN0cmluZ09iamVjdChleGVjLT5nbG9iYWxEYXRhKCks
IHN0cnVjdHVyZSwgc3RyaW5nKTsgIAogICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBTdHJpbmdP
YmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBVU3RyaW5nJiBzdHIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxTdHJpbmdPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3QoZXhlYywg
c3RydWN0dXJlLCBzdHIpOyAgCisgICAgICAgICAgICBKU1N0cmluZyogc3RyaW5nID0ganNTdHJp
bmcoZXhlYywgc3RyKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJp
bmdPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUsIHN0cmluZyk7CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIFN0cmluZ09i
amVjdCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKLSAg
ICAgICAgCiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CkBAIC01OSw4ICs2MCw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFN0cmluZ09iamVj
dChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgU3RyaW5nT2JqZWN0KEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSosIGNvbnN0IFVTdHJpbmcmKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTV3JhcHBlck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7
CiAgICAgICAgIFN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBKU1N0cmlu
ZyopOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaApp
bmRleCBkNDIzMGVhOGY0NTMxZDRjZTg4NGYwYmExNTc0ODkwZjYxYTQ0ODEyLi42OTQzNmQ3ZTM2
ZjQ4MTA2MjkwZmI4Y2VmNjZlOWQ2NmQ3OTY3YzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTM0LDEzICszNCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQq
IGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykKICAgICAgICAg
eworICAgICAgICAgICAgSlNTdHJpbmcqIG5ld1N0cmluZyA9IGpzU3RyaW5nKGV4ZWMsIHN0cmlu
Zyk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nT2JqZWN0VGhh
dE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3RUaGF0
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLAotICAgICAgICAgICAgICAgIGNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3Ry
aW5nUHJvdG90eXBlKCkpLCBzdHJpbmcpOworICAgICAgICAgICAgICAgIGNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5n
UHJvdG90eXBlKCkpLCBuZXdTdHJpbmcpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChFeGVjU3RhdGUqIGV4
ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBzdHJpbmcpCi0gICAgICAg
ICAgICA6IFN0cmluZ09iamVjdChleGVjLCBzdHJ1Y3R1cmUsIHN0cmluZykKKyAgICAgICAgU3Ry
aW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoRXhlY1N0YXRlKiBleGVjLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIHN0cmluZykKKyAgICAgICAgICAgIDogU3RyaW5n
T2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBzdHJpbmcpCiAgICAgICAgIHsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAppbmRleCA0Mjg3ZDNhZmViNTQ4OWI2M2Y5MTRkNmVlYTkwMTE2NGQ1N2U4
NDU2Li4wZmM2MDZmNzQ3M2Y4OTk1YTNmNGE4ZGFmZDYzYjAwOTc0ZmNlZDU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTEz
MSw4ICsxMzEsOCBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJTdHJpbmciLCAmU3RyaW5nT2JqZWN0OjpzX2luZm8sIDAsCiAqLwogCiAvLyBFQ01BIDE1LjUu
NAotU3RyaW5nUHJvdG90eXBlOjpTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IFN0
cmluZ09iamVjdChleGVjLCBzdHJ1Y3R1cmUpCitTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3Rv
dHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU1N0cmluZyogbmFtZUFuZE1lc3NhZ2UpCisgICAgOiBTdHJpbmdP
YmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG5hbWVBbmRNZXNzYWdlKQogewog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5kZXggMDNhNjdkOGM1ZWNlMTg0YzY0NWEy
MWE0NWU1M2FlYzUyOTE2ODYyMC4uMjE3NTg1ZmE2MGQ2YjkyNzA0N2VmZTk0OTA1NDI0NDMzYzdm
ZDBmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmgKQEAgLTI5LDE0ICsyOSwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFN0
cmluZ1Byb3RvdHlwZSA6IHB1YmxpYyBTdHJpbmdPYmplY3QgewogICAgIHByaXZhdGU6Ci0gICAg
ICAgIFN0cmluZ1Byb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOworICAgICAgICBTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBKU1N0cmluZyopOwogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVm
IFN0cmluZ09iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBTdHJpbmdQcm90b3R5cGUqIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8U3RyaW5nUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nUHJvdG90eXBl
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIEpTU3RyaW5nKiBu
YW1lQW5kTWVzc2FnZSA9IGpzRW1wdHlTdHJpbmcoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkgU3RyaW5n
UHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lQW5kTWVzc2FnZSk7
CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZTJlZDJlNjhhODNhNjY0YmY5OGVjN2E1NTA1MTcxYTYzOTEwNzBjZi4u
NGYxMWJhODlmN2M3NmEzMTk3ZWIyNjA4MzYyMjlkNjk4ZTZkMTU5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
Myw2ICszLDMwIEBACiAgICAgICAgIFJlZmFjdG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4g
c3RhdGljIGNyZWF0ZSBtZXRob2RzIHJhdGhlciB0aGFuIGNvbnN0cnVjdG9ycwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzNDcKIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAg
ICAgICAgVGhpcyBuZXh0IHBhdGNoIGlzIHRoZSByZWZhY3RvcmluZyB0byBwdXQgYWxsIGFsbG9j
YXRpb25zIHRoYXQgbmVlZCB0byBiZSBkb25lIGFmdGVyIAorICAgICAgICB0aGUgb2JqZWN0J3Mg
aW5pdGlhbGl6YXRpb24gbGlzdCBoYXMgZXhlY3V0ZWQgYnV0IGJlZm9yZSB0aGUgb2JqZWN0IGlz
IHJlYWR5IGZvciB1c2UgCisgICAgICAgIGludG8gYSBzZXBhcmF0ZSBmaW5pc2hBbGxvY2F0aW9u
cygpIG1ldGhvZC4gIFRoaXMgbWV0aG9kIGlzIHN0aWxsIGNhbGxlZCBieSB0aGUgY29uc3RydWN0
b3IsIAorICAgICAgICBzbyB0aGUgcGF0Y2ggZG9lc24ndCByZXNvbHZlIGFueSBwb3RlbnRpYWwg
aXNzdWVzLCBpdCdzIGp1c3QgdG8gc2V0IHVwIHRoZSBjb2RlIGZvciBmdXJ0aGVyIHJlZmFjdG9y
aW5nLgorCisgICAgICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6Ok9iakNSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IGJyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRnZS9vYmpj
L29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpDUnVudGltZU1ldGhvZDo6Y3JlYXRlKToK
KyAgICAgICAgKE9iakNSdW50aW1lTWV0aG9kOjpPYmpDUnVudGltZU1ldGhvZCk6CisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlKToKKworMjAxMS0wOC0x
NSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJl
ZmFjdG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4gc3RhdGljIGNyZWF0ZSBtZXRob2RzIHJh
dGhlciB0aGFuIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjUzNDcKKwogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJl
bi4KIAogICAgICAgICBObyBuZXcgdGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvT2JqQ1J1bnRpbWVPYmplY3QuaAppbmRleCA2NGNjZmY2ZWFhZmNjY2I1NTFjMGQ1ZGE3MGYy
NDYxM2FjYWUyNTYxLi5hODgxM2ZlM2Y3OGU4ZmE1M2UyM2MzYmFhYjk3MGM0MzJkZTBmZmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKQEAg
LTM5LDYgKzM5LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIE9iakNSdW50aW1lT2JqZWN0KiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNz
UmVmUHRyPE9iamNJbnN0YW5jZT4gaW5zdCkKICAgICB7CisgICAgICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBn
bG9iYWwgb2JqZWN0IGZvciAiaSIuCiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gV2Vi
Q29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpDUnVudGltZU9iamVjdD4oZXhlYyk7
CiAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpDUnVudGltZU9iamVjdD4oKmV4
ZWMtPmhlYXAoKSkpIE9iakNSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5zdCwg
c3RydWN0dXJlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9PYmpDUnVudGltZU9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNS
dW50aW1lT2JqZWN0Lm1tCmluZGV4IDU4NDhmZTMwMzdhMWZlNTY1NTBkYzAyMmE1N2QwY2U1NDA2
NWM2ZTQuLmVhODYyNjMyZGVjNGNmZTdhZWRkNjFkZTU4NGJiMmQ1YzBlYjhmYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCkBAIC0zNiw4
ICszNiw2IEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiBjb25zdCBDbGFzc0luZm8gT2JqQ1J1bnRp
bWVPYmplY3Q6OnNfaW5mbyA9IHsgIk9iakNSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6
OnNfaW5mbywgMCwgMCB9OwogCiBPYmpDUnVudGltZU9iamVjdDo6T2JqQ1J1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PE9iamNJbnN0YW5jZT4gaW5zdGFuY2UsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIC8vIEZJ
WE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2Yg
dGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJp
Z2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KICAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGluc3RhbmNlKQogewogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2lu
c3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpp
bmRleCAwNDFmOTIzNzc2YmE1ZDgwMWY1ZDc4ZjM4MjhiZDlkZTRmZGU3NjI3Li5kY2RjN2I2YTY4
YjNiZDY0ODY3MWJlZGU2N2Q1Yjk5YjdkNjFmMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAgLTE3NSw3ICsxNzUsMTAgQEAgY2xhc3MgT2JqQ1J1
bnRpbWVNZXRob2QgOiBwdWJsaWMgUnVudGltZU1ldGhvZCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IE9iakNSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9k
TGlzdCYgbGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpD
UnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIE9iakNSdW50aW1lTWV0aG9kKGV4ZWMsIGds
b2JhbE9iamVjdCwgbmFtZSwgbGlzdCk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBv
YmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2Jq
ZWN0IGZvciAiaSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpDUnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAg
ICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpDUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhl
YXAoKSkpIE9iakNSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJl
LCBuYW1lLCBsaXN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTE4
NiwxMCArMTg5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCiBwcml2YXRlOgotICAgIE9iakNSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGlu
Z3M6Ok1ldGhvZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmpl
Y3QKLSAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0
IGZvciAiaSIuCi0gICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIFdl
YkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2JqQ1J1bnRpbWVNZXRob2Q+KGV4ZWMp
LCBuYW1lLCBsaXN0KQorICAgIE9iakNSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQorICAgICAgICA6IFJ1
bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpCiAg
ICAgewogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBkMDU2NDk0ZWQ4MGFhMWQzOTFmZGUw
YWJkMDllZGE0MjA0MjkxYjU0Li5iNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2
NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0zOCw4ICsz
OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19p
bmZvID0geyAiUnVudGltZUFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgMCB9OwogCiBSdW50
aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQotICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBv
YmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3Qg
Zm9yICJhcnJheSIuCiAgICAgOiBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
KQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaAppbmRleCA0OWUzOTNmODc5Zjc2ZDdhYzNlMGM4NWQzMDczNmE2ZDc1NjY2
ZmRkLi5jYjdiYzYzNTc3NmQ4ZWJjOTEwMzk1MzIwYWVmZGU0MmJjYjkwNmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTM4LDYgKzM4LDggQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIFJ1bnRpbWVBcnJheSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgQmluZGluZ3M6
OkFycmF5KiBhcnJheSkKICAgICB7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmpl
Y3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0
IGZvciAiYXJyYXkiLgogICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6
OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UnVudGltZUFycmF5PihleGVjKTsKICAgICAgICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFJ1bnRpbWVBcnJheT4oKmV4ZWMtPmhlYXAoKSkpIFJ1
bnRpbWVBcnJheShleGVjLCBkb21TdHJ1Y3R1cmUsIGFycmF5KTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103970</attachid>
            <date>2011-08-15 16:01:20 -0700</date>
            <delta_ts>2011-08-15 16:01:20 -0700</delta_ts>
            <desc>Fixing build errors</desc>
            <filename>bug-65347-20110815160127.patch</filename>
            <type>text/plain</type>
            <size>44734</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJl
MzZhMDcyYjNjYjMyMWNhZTdjMTAxYjVmNmVhZjUxYWY4MzMzM2EuLjNiOWU2MmNjMjlkOTZlNDg1
YWUzMDMwMTczZjdkNjcxNWZjODk1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDcyIEBACisyMDExLTA4LTE1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgSlMgb2JqZWN0cyB0byBhbGxvY2F0ZSBpbiBzdGF0
aWMgY3JlYXRlIG1ldGhvZHMgcmF0aGVyIHRoYW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbmV4dCBwYXRjaCBpcyB0aGUg
cmVmYWN0b3JpbmcgdG8gcHV0IGFsbCBhbGxvY2F0aW9ucyB0aGF0IG5lZWQgdG8gYmUgZG9uZSBh
ZnRlciAKKyAgICAgICAgdGhlIG9iamVjdCdzIGluaXRpYWxpemF0aW9uIGxpc3QgaGFzIGV4ZWN1
dGVkIGJ1dCBiZWZvcmUgdGhlIG9iamVjdCBpcyByZWFkeSBmb3IgdXNlIAorICAgICAgICBpbnRv
IGEgc2VwYXJhdGUgZmluaXNoQWxsb2NhdGlvbnMoKSBtZXRob2QuICBUaGlzIG1ldGhvZCBpcyBz
dGlsbCBjYWxsZWQgYnkgdGhlIGNvbnN0cnVjdG9yLCAKKyAgICAgICAgc28gdGhlIHBhdGNoIGRv
ZXNuJ3QgcmVzb2x2ZSBhbnkgcG90ZW50aWFsIGlzc3VlcywgaXQncyBqdXN0IHRvIHNldCB1cCB0
aGUgY29kZSBmb3IgZnVydGhlciByZWZhY3RvcmluZy4KKworICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoR2xvYmFsT2JqZWN0OjpmaW5p
c2hBbGxvY2F0aW9ucyk6CisgICAgICAgIChHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJ
bnN0YW5jZTo6RXJyb3JJbnN0YW5jZSk6CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNl
Lmg6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmZpbmlzaEFsbG9jYXRpb25zKToKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQ
cm90b3R5cGU6OkVycm9yUHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90
eXBlLmg6CisgICAgICAgIChKU0M6OkVycm9yUHJvdG90eXBlOjpmaW5pc2hBbGxvY2F0aW9ucyk6
CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rp
b25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhl
Y3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmZpbmlzaEFsbG9j
YXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlv
bjo6ZmluaXNoQWxsb2NhdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3Bw
OgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6SlNCeXRlQXJyYXkpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmZpbmlzaEFs
bG9jYXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6
ZmluaXNoQWxsb2NhdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZp
bmlzaEFsbG9jYXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6ZmluaXNoQWxsb2NhdGlv
bnMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6Um9wZUJ1
aWxkZXI6OkpTU3RyaW5nKToKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OmZpbmlzaEFsbG9j
YXRpb25zKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAg
ICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQWxsb2NhdGlvbnMpOgorICAg
ICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpO
YXRpdmVFcnJvclByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUpOgorICAgICAgICAoSlND
OjpOYXRpdmVFcnJvclByb3RvdHlwZTo6ZmluaXNoQWxsb2NhdGlvbnMpOgorICAgICAgICAqIHJ1
bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKEpT
Qzo6U3RyaW5nT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0
VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaDoKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0
VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cmlu
Z09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3RvdHlwZSk6CisgICAg
ICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJv
dG90eXBlOjpjcmVhdGUpOgorCiAyMDExLTA4LTE1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJh
Y2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBhY2Nlc3Npbmcgc3RhdGljIHByb3Bl
cnR5IG9uIHNlYWxlZCBvYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZXhwCmluZGV4IGU1NWY2OWQ5ZTNhNGUxOTFkYTY2MGI0NWY4OGNmYjI2ZDViYWRhYTMuLmYwYmJj
YzQwZTI2MzA4MDQ3NWQwOWRhYTZmODRkNDA2NzU5NDFmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTUxLDcgKzE1MSw3IEBAIF9fWk4zSlNDMTJTdHJp
bmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVy
dHlOYW1lQXJyCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlw
dG9yRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0
cmluZ09iamVjdDZzX2luZm9FCi1fX1pOM0pTQzEyU3RyaW5nT2JqZWN0QzJFUE5TXzlFeGVjU3Rh
dGVFUE5TXzlTdHJ1Y3R1cmVFUktOU183VVN0cmluZ0UKK19fWk4zSlNDMTJTdHJpbmdPYmplY3RD
MkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUE5TXzhKU1N0cmluZ0UKIF9fWk4z
SlNDMTNTYW1wbGluZ0ZsYWdzNHN0b3BFdgogX19aTjNKU0MxM1NhbXBsaW5nRmxhZ3M1c3RhcnRF
dgogX19aTjNKU0MxM1NhbXBsaW5nRmxhZ3M3c19mbGFnc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggYWZlYjVkOWQxMTM5NmE0OWFmNGFmZmMxM2MzNDU4ODVjOWIyYTEzMS4uZGUzMjhjYThmMjcx
ZGYyODY5NjQ1Y2I3MDRlZDQ2MWI3ZjgyOGUyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE1
NSwzNiArMTU1LDQyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxs
PEdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSwgYXJndW1lbnRzKTsKICAgICB9CiAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNz
TmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9Ci19OwotQ09NUElMRV9BU1NFUlQoIUlz
SW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxPYmplY3Rf
ZmFsc2UpOwotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwogCi1HbG9i
YWxPYmplY3Q6Okdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKLSAgICA6IEpT
R2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLXsKLSAgICBwdXREaXJlY3RGdW5j
dGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMs
IGZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiZGVidWci
KSwgZnVuY3Rpb25EZWJ1ZykpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUo
KSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJwcmludCIpLCBmdW5jdGlvblByaW50KSk7
Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
Z2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVudGlmaWVyKGds
b2JhbEV4ZWMoKSwgInF1aXQiKSwgZnVuY3Rpb25RdWl0KSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rp
b24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBm
dW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImdjIiksIGZ1
bmN0aW9uR0MpKTsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKGNvbnN0
IFZlY3RvcjxVU3RyaW5nPiYgYXJndW1lbnRzKQorICAgIHsKKyAgICAgICAgcHV0RGlyZWN0RnVu
Y3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlz
LCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImRlYnVn
IiksIGZ1bmN0aW9uRGVidWcpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhl
YygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVj
dHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInByaW50IiksIGZ1bmN0aW9uUHJp
bnQpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9u
OjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJZGVu
dGlmaWVyKGdsb2JhbEV4ZWMoKSwgInF1aXQiKSwgZnVuY3Rpb25RdWl0KSk7CisgICAgICAgIHB1
dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4
ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmllcihnbG9iYWxFeGVj
KCksICJnYyIpLCBmdW5jdGlvbkdDKSk7CiAjaWZuZGVmIE5ERUJVRwotICAgIHB1dERpcmVjdEZ1
bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhp
cywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJyZWxl
YXNlRXhlY3V0YWJsZU1lbW9yeSIpLCBmdW5jdGlvblJlbGVhc2VFeGVjdXRhYmxlTWVtb3J5KSk7
CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmll
cihnbG9iYWxFeGVjKCksICJyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSIpLCBmdW5jdGlvblJlbGVh
c2VFeGVjdXRhYmxlTWVtb3J5KSk7CiAjZW5kaWYKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9i
YWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9u
U3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAidmVyc2lvbiIpLCBmdW5j
dGlvblZlcnNpb24pKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEs
IElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicnVuIiksIGZ1bmN0aW9uUnVuKSk7Ci0gICAgcHV0
RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhl
YygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMo
KSwgImxvYWQiKSwgZnVuY3Rpb25Mb2FkKSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFs
RXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0
cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImNoZWNrU3ludGF4IiksIGZ1
bmN0aW9uQ2hlY2tTeW50YXgpKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCks
IEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJl
KCksIDAsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicmVhZGxpbmUiKSwgZnVuY3Rpb25SZWFk
bGluZSkpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRp
ZmllcihnbG9iYWxFeGVjKCksICJwcmVjaXNlVGltZSIpLCBmdW5jdGlvblByZWNpc2VUaW1lKSk7
CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmll
cihnbG9iYWxFeGVjKCksICJ2ZXJzaW9uIiksIGZ1bmN0aW9uVmVyc2lvbikpOworICAgICAgICBw
dXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0ZShnbG9iYWxF
eGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhl
YygpLCAicnVuIiksIGZ1bmN0aW9uUnVuKSk7CisgICAgICAgIHB1dERpcmVjdEZ1bmN0aW9uKGds
b2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rp
b25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJsb2FkIiksIGZ1bmN0
aW9uTG9hZCkpOworICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDEs
IElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiY2hlY2tTeW50YXgiKSwgZnVuY3Rpb25DaGVja1N5
bnRheCkpOworICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rp
b246OmNyZWF0ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIElk
ZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicmVhZGxpbmUiKSwgZnVuY3Rpb25SZWFkbGluZSkpOwor
ICAgICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIEpTRnVuY3Rpb246OmNyZWF0
ZShnbG9iYWxFeGVjKCksIHRoaXMsIGZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIElkZW50aWZpZXIo
Z2xvYmFsRXhlYygpLCAicHJlY2lzZVRpbWUiKSwgZnVuY3Rpb25QcmVjaXNlVGltZSkpOwogCiAj
aWYgRU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4
ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1
Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJzZXRTYW1wbGluZ0ZsYWdzIiks
IGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncykpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2Jh
bEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25T
dHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJjbGVhclNhbXBsaW5nRmxh
Z3MiKSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpKTsKKyAgICAgICAgcHV0RGlyZWN0RnVu
Y3Rpb24oZ2xvYmFsRXhlYygpLCBKU0Z1bmN0aW9uOjpjcmVhdGUoZ2xvYmFsRXhlYygpLCB0aGlz
LCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInNldFNh
bXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25TZXRTYW1wbGluZ0ZsYWdzKSk7CisgICAgICAgIHB1dERp
cmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbEV4ZWMo
KSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCks
ICJjbGVhclNhbXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpKTsKICNl
bmRpZgogCi0gICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxF
eGVjKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNpemUoKTsgKytp
KQotICAgICAgICBhcnJheS0+cHV0KGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhl
YygpLCBhcmd1bWVudHNbaV0pKTsKLSAgICBwdXREaXJlY3QoZ2xvYmFsRXhlYygpLT5nbG9iYWxE
YXRhKCksIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5KTsKKyAg
ICAgICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxFeGVjKCkp
OworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy5zaXplKCk7ICsraSkK
KyAgICAgICAgICAgIGFycmF5LT5wdXQoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxF
eGVjKCksIGFyZ3VtZW50c1tpXSkpOworICAgICAgICBwdXREaXJlY3QoZ2xvYmFsRXhlYygpLT5n
bG9iYWxEYXRhKCksIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5
KTsKKyAgICB9Cit9OworQ09NUElMRV9BU1NFUlQoIUlzSW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2
YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxPYmplY3RfZmFsc2UpOworQVNTRVJUX0NMQVNTX0ZJ
VFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOworCitHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBWZWN0
b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKKyAgICA6IEpTR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkKK3sKKyAgICBmaW5pc2hBbGxvY2F0aW9ucyhhcmd1bWVudHMpOwogfQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnQoRXhlY1N0YXRlKiBleGVj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5j
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApp
bmRleCAwNDM1MzcyZjEyNjM5YmFiZDY0MTBkY2ZlMDM0ODFmYTkyMjJkOWFhLi5hMWY5MWNkNjk5
ZTM3N2I5M2VjNjhlNDIwZmJkNDJjNjI2ZmZiMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMzAsNyArMzAsNyBAQCBFcnJvcklu
c3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgLCBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkKIHsKICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBn
bG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCAi
IiksIERvbnRFbnVtKTsKKyAgICBmaW5pc2hBbGxvY2F0aW9ucyhnbG9iYWxEYXRhKTsKIH0KIAog
RXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGQ2MWVlOTc1ZWMxMGRm
ZDc4NDc3NWU3M2I1YTE4MjExZjhjMDk0NzguLmIzMjkwODJiNGZlNjM0NGFkM2M4Mzk1N2I3ZjA4
ODhiYjEwMzY4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKQEAgLTUwLDYgKzUwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBleHBs
aWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogICAgICAgICBl
eHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IFVT
dHJpbmcmKTsKIAorICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEs
IGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwganNTdHJpbmcoJmdsb2JhbERhdGEs
ICIiKSwgRG9udEVudW0pOworICAgICAgICB9CisKICAgICAgICAgYm9vbCBtX2FwcGVuZFNvdXJj
ZVRvTWVzc2FnZTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggM2E2OWRkOTBlMjJmNDljZThhZTA2M2IxZmZlOTRi
NjYxOTJmNDE0ZS4uODlhM2Y0MDlkZTQzYmYyOTAwZTMyNjE4MzZiZWE5OTRhMzFmYTEzZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApA
QCAtNTMsOSArNTMsOCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEVycm9yUHJvdG90eXBl
KTsKIEVycm9yUHJvdG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogRXJy
b3JJbnN0YW5jZShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250RW51bSk7Ci0KICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOworICAgIGZpbmlzaEFsbG9jYXRpb25zKGV4ZWMpOwogICAgIHB1dEFu
b255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3Qp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUu
aAppbmRleCA0MDUyODM2MWFiYjIxMmEzYjQ2NjViYTQ0MWYyYTIwNTFhOGUwYTJlLi5kNDhjZDc0
NTIxNjk2OTQ0YWE3MDdhYjA5NjEwN2JjOGJiMzUzMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTQ1LDYgKzQ1LDExIEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBFcnJvclByb3RvdHlwZShFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgICAgICB2b2lkIGZpbmlz
aEFsbG9jYXRpb25zKEV4ZWNTdGF0ZSogZXhlYykKKyAgICAgICAgeworICAgICAgICAgICAgcHV0
RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLm5hbWUsIGpz
Tm9udHJpdmlhbFN0cmluZyhleGVjLCAiRXJyb3IiKSwgRG9udEVudW0pOworICAgICAgICB9CisK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBFcnJvckluc3Rh
bmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDY3N2E4OWJmMzc1NDM4YmU5NDAwMDRjNTJmZWUw
N2QzYThiODBkZTYuLjcyN2Y4YjE2ZDEwZjg4YmMxMDg5ODk5MWI2OWYxODBhNjAyZDY5MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0xNDQs
NyArMTQ0LDcgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWUKIHsKICAgICBtX2ZpcnN0TGluZSA9
IGZpcnN0TGluZTsKICAgICBtX2xhc3RMaW5lID0gbGFzdExpbmU7Ci0gICAgbV9uYW1lVmFsdWUu
c2V0KGdsb2JhbERhdGEsIHRoaXMsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLnVzdHJpbmco
KSkpOworICAgIGZpbmlzaEFsbG9jYXRpb25zKGdsb2JhbERhdGEsIG5hbWUpOwogfQogCiBGdW5j
dGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVz
ZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmlj
dENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsCiB7CiAgICAgbV9maXJzdExpbmUgPSBmaXJzdExpbmU7
CiAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOwotICAgIG1fbmFtZVZhbHVlLnNldChleGVjLT5n
bG9iYWxEYXRhKCksIHRoaXMsIGpzU3RyaW5nKCZleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUudXN0
cmluZygpKSk7CisgICAgZmluaXNoQWxsb2NhdGlvbnMoZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1l
KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5k
ZXggYmFiMzJiMjk4NzVjZGI0YTk1NjEzN2IwNzM3ZDIyOWE4NzFhYTZkOS4uOWU4ZjNiNDQ4YmZl
NTBjOGE4NTZhZDRjODdjYTNiYzZmZWViYTliNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaApAQCAtNTA0LDYgKzUwNCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCisgICAg
cHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgbV9uYW1lVmFsdWUuc2V0KGdsb2JhbERhdGEsIHRoaXMsIGpzU3RyaW5nKCZnbG9iYWxEYXRh
LCBuYW1lLnVzdHJpbmcoKSkpOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
Y29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFt
ZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwogICAgICAgICBGdW5j
dGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3Qg
U291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMq
LCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCBjM2IwN2Y4Mjk3
MDI4ZTk2ZjJmZjUwM2Q5NTE3OGYxY2NmOThmNmFlLi43MGEwNjIwYTNhZmU0YWI5ZDM5ZjNhNDYw
OWFkYmY3YjFiZGIxYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQCBJbnRlcm5hbEZ1bmN0aW9u
OjpJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsbwogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0RGlyZWN0
KCpnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZyhn
bG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBmaW5pc2hBbGxvY2F0aW9ucygqZ2xvYmFs
RGF0YSwgbmFtZSk7CiB9CiAKIGNvbnN0IFVTdHJpbmcmIEludGVybmFsRnVuY3Rpb246Om5hbWUo
RXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDgzMjQzYjNmZGZmNmQ0Y2Y4YmYzNGZjMTc0NWRmNTY1Yjlm
NGY3ZGYuLjEyOTlhM2JmZjFlNzc5NjNiOWI0OWMzMWQ0NWNhZjg5NTAwMmEwZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTU0
LDYgKzU0LDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb24o
SlNHbG9iYWxEYXRhKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlm
aWVyJik7CiAKKyAgICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpz
U3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICAgICAgfQorCiAgICAgcHJp
dmF0ZToKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmlu
ZGV4IGQ5MjRhN2ExYjM4OGNiNWM1MTJiOThkMzMxZDVjNTA0NjdmYTllNDQuLjAwZGQ4Y2ZkNmU5
MmU5MjI4MzEyZjI1MDlkZWUxOThiNDczYzNlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgSlNCeXRlQXJyYXk6
OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5dGVB
cnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBwdXREaXJlY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcihtX3N0b3JhZ2UtPmxlbmd0aCgpKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlKTsK
KyAgICBmaW5pc2hBbGxvY2F0aW9ucyhleGVjKTsKIH0KICAgICAgICAgCiBKU0J5dGVBcnJheSog
SlNCeXRlQXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBCeXRlQXJyYXkqIHN0b3JhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuaAppbmRleCA4NjkxNTY5YjUyZjYxZWY1NzI4MDI3ODZhZTI3OTgxMzg0MDUwM2E0
Li4xM2Q3NDdkZDhlODMwMmI0ZmY3NDY5ZDFmZDY0NWIzZWNjODY0Njg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTEwNCw2ICsxMDQsMTEgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCisgICAg
ICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRlKiBleGVjKQorICAgICAgICB7Cisg
ICAgICAgICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRh
KCkucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcihtX3N0b3JhZ2UtPmxlbmd0aCgpKSwg
UmVhZE9ubHkgfCBEb250RGVsZXRlKTsKKyAgICAgICAgfQorCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgSlNCeXRlQXJyYXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCiAgICAgICAgICAgICA6IEpTTm9u
RmluYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggMTNmMWVhYjUyMWRlZDVhZGFjMWM3MjkwODA2NzM0
YjY0MDJiMGE0Zi4uZDliNDNmYzQzM2EzYTk1MjhkZGFmNDM3MTc4MmYwYWNiMjI5YmIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTYzLDI1
ICs2MywyMyBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKQog
CiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIHRodW5rKQogICAgIDogQmFzZShnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSkKLSAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIHRodW5rKQorICAgICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFp
bihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFp
bigpKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0RGlyZWN0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5hbWUs
IGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdChleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0aCks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKworICAgIGZpbmlzaEFsbG9jYXRp
b25zKGV4ZWMsIGxlbmd0aCwgbmFtZSwgdGh1bmspOwogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorICAg
ICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCks
IHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgCiAgICAgLy8gQ2FuJ3QgZG8gdGhpcyBkdXJpbmcgaW5p
dGlhbGl6YXRpb24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQgZG8gYSBHQyBhbGxvY2F0
aW9uLgotICAgIG1fZXhlY3V0YWJsZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBleGVj
LT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKGZ1bmMpKTsKLSAgICAKLSAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+
bmFtZSwganNTdHJpbmcoZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVu
Z3RoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIGZpbmlzaEFsbG9j
YXRpb25zKGV4ZWMsIGxlbmd0aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVu
Y3Rpb24oZnVuYykpOwogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVD
aGFpbk5vZGUpCkBAIC05NCw2ICs5MiwxMyBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYQogICAg
IHB1dERpcmVjdE9mZnNldChleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9i
YWxPYmplY3QtPmZ1bmN0aW9uTmFtZU9mZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFsdWUoKSk7
CiB9CiAKK2lubGluZSB2b2lkIEpTRnVuY3Rpb246OmZpbmlzaEFsbG9jYXRpb25zKEV4ZWNTdGF0
ZSogZXhlYywgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJh
c2UqIGV4ZWN1dGFibGUpCit7CisgICAgbV9leGVjdXRhYmxlLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIGV4ZWN1dGFibGUpOworICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZyhleGVjLCBu
YW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihsZW5ndGgpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBEb250RW51bSk7Cit9CisKIEpTRnVuY3Rpb246On5KU0Z1bmN0aW9uKCkKIHsKICAg
ICBBU1NFUlQodnB0cigpID09IEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDI5Y2JmZDBmNGY2YWUy
Mjc0ODZkYjAyNTY2YzQ5MjU0ZDc0MjJkYjQuLjI1MzI1MzUxYjJhZDBkNTcxMDIyZDZkOGVlMDNj
ZTUyMWJkNWQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVy
ZUZsYWdzOwogCisgICAgICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRlKiwgaW50
IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqKTsKKwogICAg
IHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5
cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aAppbmRleCA1OWNhZDUwYWMzNGFlOWRjNzBjNDZmMDAxODIwNDM4MDBkOGRlN2U0Li4xZmJmMGE2
OWU3N2I3OTc0MDA4MTFhMmFhZjAxMThmNDdhMTgwYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoSlNHbG9i
YWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9oYXNfb25s
eV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDAp
OwotICAgICAgICAgICAgaW5pdCh0aGlzKTsKKyAgICAgICAgICAgIGZpbmlzaEFsbG9jYXRpb25z
KHRoaXMpOwogICAgICAgICB9CiAKICAgICAgICAgSlNHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkK
QEAgLTE3Myw2ICsxNzMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0g
MSwgSlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7CiAgICAgICAgICAgICBw
dXRUaGlzVG9Bbm9ueW1vdXNWYWx1ZSgwKTsKKyAgICAgICAgICAgIGZpbmlzaEFsbG9jYXRpb25z
KHRoaXNWYWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25z
KEpTT2JqZWN0KiB0aGlzVmFsdWUpCisgICAgICAgIHsKICAgICAgICAgICAgIGluaXQodGhpc1Zh
bHVlKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4IDgwMTJlOWRkMTE1NmE3Njg4
YWQyMGRjMTE1OTlmMmEyZDUyZDhmODIuLmIyYzEzNjc5YmU4ZTY0ZWVmMGU5ZmUzMjRmZGNmZWVj
MWNmZDZiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC00Myw5ICs0Myw3IEBAIGlubGluZSBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOCiAgICAgLCBtX2pzU3RyaW5nc1NpemUocHJvcGVydHlOYW1lQXJyYXlEYXRh
LT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCkpCiAgICAgLCBtX2pzU3RyaW5ncyhhZG9wdEFy
cmF5UHRyKG5ldyBXcml0ZUJhcnJpZXI8VW5rbm93bj5bbV9qc1N0cmluZ3NTaXplXSkpCiB7Ci0g
ICAgUHJvcGVydHlOYW1lQXJyYXlEYXRhOjpQcm9wZXJ0eU5hbWVWZWN0b3ImIHByb3BlcnR5TmFt
ZVZlY3RvciA9IHByb3BlcnR5TmFtZUFycmF5RGF0YS0+cHJvcGVydHlOYW1lVmVjdG9yKCk7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2pzU3RyaW5nc1NpemU7ICsraSkKLSAgICAgICAg
bV9qc1N0cmluZ3NbaV0uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywganNPd25lZFN0cmlu
ZyhleGVjLCBwcm9wZXJ0eU5hbWVWZWN0b3JbaV0udXN0cmluZygpKSk7CisgICAgZmluaXNoQWxs
b2NhdGlvbnMoZXhlYywgcHJvcGVydHlOYW1lQXJyYXlEYXRhKTsKIH0KIAogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKaW5kZXggZDJiNjExZGY2YjMyMGIwOWNhNTNlYThi
Nzg5MDFiNTZlMGJmZWZiNy4uODZlZGM3NDIwY2ExOWNlMTY3ZTA2YWYzMGI4ODBmNzQ3MDc0NGUy
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuaApAQCAtODQsNiArODQsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAorICAgIHByb3Rl
Y3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZUFycmF5RGF0YSogcHJvcGVydHlOYW1lQXJyYXlEYXRhKQorICAgICAgICB7Cisg
ICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheURhdGE6OlByb3BlcnR5TmFtZVZlY3RvciYgcHJv
cGVydHlOYW1lVmVjdG9yID0gcHJvcGVydHlOYW1lQXJyYXlEYXRhLT5wcm9wZXJ0eU5hbWVWZWN0
b3IoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9qc1N0cmluZ3NTaXpl
OyArK2kpCisgICAgICAgICAgICAgICAgbV9qc1N0cmluZ3NbaV0uc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0eU5hbWVWZWN0b3JbaV0udXN0
cmluZygpKSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXlEYXRhKiBwcm9wZXJ0eU5h
bWVBcnJheURhdGEsIHNpemVfdCBudW1DYWNoZWFibGVTbG90KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggMzE3MTE3NTc2MWYzZThiNzY1NzhmZGNhNGQw
ZjRkNTMzYzAzMmVmMi4uYWIzZWRkNTYyYzdjZjQyYWZiNmNiMmMyMmIwMWI3ODUxZTFkMGZiYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0yNjcsMTEgKzI2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBtX2xlbmd0aCgwKQogICAgICAg
ICAgICAgLCBtX2ZpYmVyQ291bnQoc19tYXhJbnRlcm5hbFJvcGVMZW5ndGgpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKLSAgICAgICAgICAgIGFwcGVuZFZhbHVl
SW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYxKTsKLSAgICAgICAg
ICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgs
IHYyKTsKLSAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5n
dGgoZXhlYywgaW5kZXgsIHYzKTsKLSAgICAgICAgICAgIEFTU0VSVChpbmRleCA9PSBzX21heElu
dGVybmFsUm9wZUxlbmd0aCk7CisgICAgICAgICAgICBmaW5pc2hBbGxvY2F0aW9ucyhleGVjLCB2
MSwgdjIsIHYzKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRoaXMgY29uc3RydWN0b3IgY29u
c3RydWN0cyBhIG5ldyBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB1MSAmIHUyLgpAQCAtMjk5LDYg
KzI5NSwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEFTU0VSVChpbmRleCA8PSBz
X21heEludGVybmFsUm9wZUxlbmd0aCk7CiAgICAgICAgIH0KIAorICAgIHByb3RlY3RlZDoKKyAg
ICAgICAgdm9pZCBmaW5pc2hBbGxvY2F0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdjEs
IEpTVmFsdWUgdjIsIEpTVmFsdWUgdjMpCisgICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVk
IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1l
bnRMZW5ndGgoZXhlYywgaW5kZXgsIHYxKTsKKyAgICAgICAgICAgIGFwcGVuZFZhbHVlSW5Db25z
dHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYyKTsKKyAgICAgICAgICAgIGFw
cGVuZFZhbHVlSW5Db25zdHJ1Y3RBbmRJbmNyZW1lbnRMZW5ndGgoZXhlYywgaW5kZXgsIHYzKTsK
KyAgICAgICAgICAgIEFTU0VSVChpbmRleCA9PSBzX21heEludGVybmFsUm9wZUxlbmd0aCk7Cisg
ICAgICAgIH0KKwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTU3RyaW5nKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiB2YWx1ZSkKICAgICAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmNwcAppbmRleCA4NWZmMGE4MmJhMjI0NDBjNWZiMzg3M2JlNGZiZjI2NGFk
ZjJmNmEzLi5mNzZlNDUxNWEzM2YyYzBkNzIwODdkYzVhYzFmZWY5MjljMDIzNTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmNwcApAQCAtMzcsMTMgKzM3LDcgQEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0Kgogewog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKLSAgICBOYXRpdmVFcnJvclByb3RvdHlw
ZSogcHJvdG90eXBlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZShleGVjLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZVN0cnVjdHVyZSwgbmFtZUFuZE1lc3NhZ2UsIHRoaXMpOwotCi0gICAg
cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8gRUNN
QSAxNS4xMS43LjUKLSAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25seSB8
IERvbnRFbnVtKTsKLSAgICBtX2Vycm9yU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IHRoaXMsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IHByb3RvdHlwZSkpOwotICAgIEFTU0VSVChtX2Vycm9yU3RydWN0dXJlKTsKLSAgICBBU1NFUlQo
bV9lcnJvclN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gT2JqZWN0VHlwZSk7CisgICAg
ZmluaXNoQWxsb2NhdGlvbnMoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVTdHJ1Y3R1cmUs
IG5hbWVBbmRNZXNzYWdlKTsKIH0KIAogdm9pZCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjp2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDNlYWJjN2E1
NWNhZmNhN2M5ZjAzZTEyNjgyOGVlYTJjZTFjNTI4NzUuLmQyY2IxMjhhZWJmNDEyYjZkMTRkMDlj
YWU5NDAyZDk1NmQyODMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZp
bmUgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcl9oCiAKICNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9u
LmgiCisjaW5jbHVkZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKQEAgLTQ3LDYgKzQ4LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CiAK
KyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQWxsb2NhdGlvbnMoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHByb3RvdHlw
ZVN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIE5hdGl2ZUVycm9yUHJvdG90eXBlKiBwcm90b3R5cGUgPSBOYXRpdmVFcnJvclBy
b3RvdHlwZTo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlU3RydWN0dXJlLCBu
YW1lQW5kTWVzc2FnZSwgdGhpcyk7CisKKyAgICAgICAgICAgIHB1dERpcmVjdChleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7IC8vIEVDTUEgMTUuMTEuNy41CisgICAgICAg
ICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsK
KyAgICAgICAgICAgIG1fZXJyb3JTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJv
dG90eXBlKSk7CisgICAgICAgICAgICBBU1NFUlQobV9lcnJvclN0cnVjdHVyZSk7CisgICAgICAg
ICAgICBBU1NFUlQobV9lcnJvclN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gT2JqZWN0
VHlwZSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1
cmUqIHByb3RvdHlwZVN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYpOwogICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwg
SW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAKaW5kZXggNjgzMDY2
MDEyN2FmMzJiZTBmYjI4NzhlNDA5ZWNkNDgyZDlkMjgxYi4uODJkOWI4NDNmNzJmZGQxY2MyNWQ5
MmE3Y2MzNjA4YzVjODI3NzBhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcApAQCAtMzMsNiArMzMsMTEgQEAgQVNT
RVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChOYXRpdmVFcnJvclByb3RvdHlwZSk7CiBOYXRpdmVFcnJv
clByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmlu
ZyYgbmFtZUFuZE1lc3NhZ2UsIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yKQog
ICAgIDogRXJyb3JQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Cisg
ICAgZmluaXNoQWxsb2NhdGlvbnMoZXhlYywgbmFtZUFuZE1lc3NhZ2UsIGNvbnN0cnVjdG9yKTsK
K30KKworaW5saW5lIHZvaWQgTmF0aXZlRXJyb3JQcm90b3R5cGU6OmZpbmlzaEFsbG9jYXRpb25z
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UsIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yKQorewogICAgIHB1dERpcmVjdChleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc1N0cmluZyhleGVjLCBuYW1l
QW5kTWVzc2FnZSksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubWVzc2FnZSwganNTdHJpbmcoZXhlYywgbmFtZUFuZE1l
c3NhZ2UpLCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RvciwgRG9udEVudW0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90
b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90
eXBlLmgKaW5kZXggMWJiMjMwOTAzMzU0ZmNhN2MxMGEwNTZmNTQ5NWY2MzY5NTQ3Y2Q1OS4uMDQ0
ZTg1YmY5ODQxNWRkNjg5NmQyMzM4MjU4ZjgyODQzOWUwNDMxYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5oCkBAIC0zNyw2
ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXJyb3JQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBO
YXRpdmVFcnJvclByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbmFtZUFu
ZE1lc3NhZ2UsIGNvbnN0cnVjdG9yKTsKICAgICAgICAgfQorCisgICAgcHJvdGVjdGVkOgorICAg
ICAgICB2b2lkIGZpbmlzaEFsbG9jYXRpb25zKEV4ZWNTdGF0ZSosIGNvbnN0IFVTdHJpbmcmIG5h
bWVBbmRNZXNzYWdlLCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKik7CiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2Jq
ZWN0LmNwcAppbmRleCA2N2RjMjkxYjA5ZWNmN2Q3ZWJhODhhYWYyOTZmYTUzNDhlYzIyY2Y5Li4x
ZDBjN2FiZjk4ZDA4N2MwYjUxN2I1MjAyNDZlMmE4ZWZlYjMwNzY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTI5LDEzICsyOSw2IEBA
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoU3RyaW5nT2JqZWN0KTsKIAogY29uc3QgQ2xhc3NJ
bmZvIFN0cmluZ09iamVjdDo6c19pbmZvID0geyAiU3RyaW5nIiwgJkpTV3JhcHBlck9iamVjdDo6
c19pbmZvLCAwLCAwIH07CiAKLVN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSog
ZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCi17Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKLSAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNFbXB0eVN0cmlu
ZyhleGVjKSk7Ci19Ci0KIFN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU3RyaW5nKiBzdHJpbmcpCiAgICAg
OiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewpAQCAtNDMsMTMgKzM2
LDYgQEAgU3RyaW5nT2JqZWN0OjpTdHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHIKICAgICBzZXRJbnRlcm5hbFZhbHVlKGdsb2Jh
bERhdGEsIHN0cmluZyk7CiB9CiAKLVN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykKLSAg
ICA6IEpTV3JhcHBlck9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKLXsKLSAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBqc1N0cmluZyhleGVjLCBzdHJpbmcpKTsKLX0KLQogYm9vbCBTdHJpbmdP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChpbnRlcm5h
bFZhbHVlKCktPmdldFN0cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA4
MGU1YmVjNTc3Nzc1NTFhYTIxOTc3NDUwNTdhZTE5MDkyOGE3MTZlLi43ZDEzNWMxZTQxMjJmYWU3
ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuaApAQCAtMzIsMTQgKzMyLDE1IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8U3RyaW5nT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nT2JqZWN0KGV4
ZWMsIHN0cnVjdHVyZSk7ICAKKyAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBqc0VtcHR5
U3RyaW5nKGV4ZWMpOworICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0cmlu
Z09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFN0cmluZ09iamVjdChleGVjLT5nbG9iYWxEYXRhKCks
IHN0cnVjdHVyZSwgc3RyaW5nKTsgIAogICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBTdHJpbmdP
YmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBVU3RyaW5nJiBzdHIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxTdHJpbmdPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3QoZXhlYywg
c3RydWN0dXJlLCBzdHIpOyAgCisgICAgICAgICAgICBKU1N0cmluZyogc3RyaW5nID0ganNTdHJp
bmcoZXhlYywgc3RyKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJp
bmdPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUsIHN0cmluZyk7CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIFN0cmluZ09i
amVjdCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKLSAg
ICAgICAgCiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CkBAIC01OSw4ICs2MCw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFN0cmluZ09iamVj
dChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgU3RyaW5nT2JqZWN0KEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSosIGNvbnN0IFVTdHJpbmcmKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTV3JhcHBlck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7
CiAgICAgICAgIFN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBKU1N0cmlu
ZyopOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaApp
bmRleCBkNDIzMGVhOGY0NTMxZDRjZTg4NGYwYmExNTc0ODkwZjYxYTQ0ODEyLi42OTQzNmQ3ZTM2
ZjQ4MTA2MjkwZmI4Y2VmNjZlOWQ2NmQ3OTY3YzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTM0LDEzICszNCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQq
IGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykKICAgICAgICAg
eworICAgICAgICAgICAgSlNTdHJpbmcqIG5ld1N0cmluZyA9IGpzU3RyaW5nKGV4ZWMsIHN0cmlu
Zyk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nT2JqZWN0VGhh
dE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdPYmplY3RUaGF0
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLAotICAgICAgICAgICAgICAgIGNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3Ry
aW5nUHJvdG90eXBlKCkpLCBzdHJpbmcpOworICAgICAgICAgICAgICAgIGNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5n
UHJvdG90eXBlKCkpLCBuZXdTdHJpbmcpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChFeGVjU3RhdGUqIGV4
ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBzdHJpbmcpCi0gICAgICAg
ICAgICA6IFN0cmluZ09iamVjdChleGVjLCBzdHJ1Y3R1cmUsIHN0cmluZykKKyAgICAgICAgU3Ry
aW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoRXhlY1N0YXRlKiBleGVjLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIHN0cmluZykKKyAgICAgICAgICAgIDogU3RyaW5n
T2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBzdHJpbmcpCiAgICAgICAgIHsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAppbmRleCA0Mjg3ZDNhZmViNTQ4OWI2M2Y5MTRkNmVlYTkwMTE2NGQ1N2U4
NDU2Li4wZmM2MDZmNzQ3M2Y4OTk1YTNmNGE4ZGFmZDYzYjAwOTc0ZmNlZDU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTEz
MSw4ICsxMzEsOCBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJTdHJpbmciLCAmU3RyaW5nT2JqZWN0OjpzX2luZm8sIDAsCiAqLwogCiAvLyBFQ01BIDE1LjUu
NAotU3RyaW5nUHJvdG90eXBlOjpTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IFN0
cmluZ09iamVjdChleGVjLCBzdHJ1Y3R1cmUpCitTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3Rv
dHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU1N0cmluZyogbmFtZUFuZE1lc3NhZ2UpCisgICAgOiBTdHJpbmdP
YmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG5hbWVBbmRNZXNzYWdlKQogewog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5kZXggMDNhNjdkOGM1ZWNlMTg0YzY0NWEy
MWE0NWU1M2FlYzUyOTE2ODYyMC4uMjE3NTg1ZmE2MGQ2YjkyNzA0N2VmZTk0OTA1NDI0NDMzYzdm
ZDBmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmgKQEAgLTI5LDE0ICsyOSwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFN0
cmluZ1Byb3RvdHlwZSA6IHB1YmxpYyBTdHJpbmdPYmplY3QgewogICAgIHByaXZhdGU6Ci0gICAg
ICAgIFN0cmluZ1Byb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOworICAgICAgICBTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBKU1N0cmluZyopOwogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVm
IFN0cmluZ09iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBTdHJpbmdQcm90b3R5cGUqIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8U3RyaW5nUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nUHJvdG90eXBl
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIEpTU3RyaW5nKiBu
YW1lQW5kTWVzc2FnZSA9IGpzRW1wdHlTdHJpbmcoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkgU3RyaW5n
UHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lQW5kTWVzc2FnZSk7
CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZTJlZDJlNjhhODNhNjY0YmY5OGVjN2E1NTA1MTcxYTYzOTEwNzBjZi4u
NGYxMWJhODlmN2M3NmEzMTk3ZWIyNjA4MzYyMjlkNjk4ZTZkMTU5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
Myw2ICszLDMwIEBACiAgICAgICAgIFJlZmFjdG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4g
c3RhdGljIGNyZWF0ZSBtZXRob2RzIHJhdGhlciB0aGFuIGNvbnN0cnVjdG9ycwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzNDcKIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAg
ICAgICAgVGhpcyBuZXh0IHBhdGNoIGlzIHRoZSByZWZhY3RvcmluZyB0byBwdXQgYWxsIGFsbG9j
YXRpb25zIHRoYXQgbmVlZCB0byBiZSBkb25lIGFmdGVyIAorICAgICAgICB0aGUgb2JqZWN0J3Mg
aW5pdGlhbGl6YXRpb24gbGlzdCBoYXMgZXhlY3V0ZWQgYnV0IGJlZm9yZSB0aGUgb2JqZWN0IGlz
IHJlYWR5IGZvciB1c2UgCisgICAgICAgIGludG8gYSBzZXBhcmF0ZSBmaW5pc2hBbGxvY2F0aW9u
cygpIG1ldGhvZC4gIFRoaXMgbWV0aG9kIGlzIHN0aWxsIGNhbGxlZCBieSB0aGUgY29uc3RydWN0
b3IsIAorICAgICAgICBzbyB0aGUgcGF0Y2ggZG9lc24ndCByZXNvbHZlIGFueSBwb3RlbnRpYWwg
aXNzdWVzLCBpdCdzIGp1c3QgdG8gc2V0IHVwIHRoZSBjb2RlIGZvciBmdXJ0aGVyIHJlZmFjdG9y
aW5nLgorCisgICAgICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6Ok9iakNSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IGJyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRnZS9vYmpj
L29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpDUnVudGltZU1ldGhvZDo6Y3JlYXRlKToK
KyAgICAgICAgKE9iakNSdW50aW1lTWV0aG9kOjpPYmpDUnVudGltZU1ldGhvZCk6CisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlKToKKworMjAxMS0wOC0x
NSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJl
ZmFjdG9yIEpTIG9iamVjdHMgdG8gYWxsb2NhdGUgaW4gc3RhdGljIGNyZWF0ZSBtZXRob2RzIHJh
dGhlciB0aGFuIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjUzNDcKKwogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJl
bi4KIAogICAgICAgICBObyBuZXcgdGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvT2JqQ1J1bnRpbWVPYmplY3QuaAppbmRleCA2NGNjZmY2ZWFhZmNjY2I1NTFjMGQ1ZGE3MGYy
NDYxM2FjYWUyNTYxLi5hODgxM2ZlM2Y3OGU4ZmE1M2UyM2MzYmFhYjk3MGM0MzJkZTBmZmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKQEAg
LTM5LDYgKzM5LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIE9iakNSdW50aW1lT2JqZWN0KiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNz
UmVmUHRyPE9iamNJbnN0YW5jZT4gaW5zdCkKICAgICB7CisgICAgICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBn
bG9iYWwgb2JqZWN0IGZvciAiaSIuCiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gV2Vi
Q29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpDUnVudGltZU9iamVjdD4oZXhlYyk7
CiAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpDUnVudGltZU9iamVjdD4oKmV4
ZWMtPmhlYXAoKSkpIE9iakNSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5zdCwg
c3RydWN0dXJlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9PYmpDUnVudGltZU9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNS
dW50aW1lT2JqZWN0Lm1tCmluZGV4IDU4NDhmZTMwMzdhMWZlNTY1NTBkYzAyMmE1N2QwY2U1NDA2
NWM2ZTQuLmVhODYyNjMyZGVjNGNmZTdhZWRkNjFkZTU4NGJiMmQ1YzBlYjhmYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCkBAIC0zNiw4
ICszNiw2IEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiBjb25zdCBDbGFzc0luZm8gT2JqQ1J1bnRp
bWVPYmplY3Q6OnNfaW5mbyA9IHsgIk9iakNSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6
OnNfaW5mbywgMCwgMCB9OwogCiBPYmpDUnVudGltZU9iamVjdDo6T2JqQ1J1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PE9iamNJbnN0YW5jZT4gaW5zdGFuY2UsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIC8vIEZJ
WE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2Yg
dGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJp
Z2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KICAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGluc3RhbmNlKQogewogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2lu
c3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpp
bmRleCAwNDFmOTIzNzc2YmE1ZDgwMWY1ZDc4ZjM4MjhiZDlkZTRmZGU3NjI3Li5kY2RjN2I2YTY4
YjNiZDY0ODY3MWJlZGU2N2Q1Yjk5YjdkNjFmMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAgLTE3NSw3ICsxNzUsMTAgQEAgY2xhc3MgT2JqQ1J1
bnRpbWVNZXRob2QgOiBwdWJsaWMgUnVudGltZU1ldGhvZCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IE9iakNSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9k
TGlzdCYgbGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpD
UnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIE9iakNSdW50aW1lTWV0aG9kKGV4ZWMsIGds
b2JhbE9iamVjdCwgbmFtZSwgbGlzdCk7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBv
YmplY3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2Jq
ZWN0IGZvciAiaSIuCisgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpDUnVudGltZU1ldGhvZD4oZXhlYyk7CisgICAg
ICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpDUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhl
YXAoKSkpIE9iakNSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJl
LCBuYW1lLCBsaXN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTE4
NiwxMCArMTg5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCiBwcml2YXRlOgotICAgIE9iakNSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGlu
Z3M6Ok1ldGhvZExpc3QmIGxpc3QpCi0gICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmpl
Y3QKLSAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0
IGZvciAiaSIuCi0gICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIFdl
YkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8T2JqQ1J1bnRpbWVNZXRob2Q+KGV4ZWMp
LCBuYW1lLCBsaXN0KQorICAgIE9iakNSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQorICAgICAgICA6IFJ1
bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpCiAg
ICAgewogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBkMDU2NDk0ZWQ4MGFhMWQzOTFmZGUw
YWJkMDllZGE0MjA0MjkxYjU0Li5iNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2
NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0zOCw4ICsz
OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19p
bmZvID0geyAiUnVudGltZUFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgMCB9OwogCiBSdW50
aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQotICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBv
YmplY3QKLSAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3Qg
Zm9yICJhcnJheSIuCiAgICAgOiBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
KQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaAppbmRleCA0OWUzOTNmODc5Zjc2ZDdhYzNlMGM4NWQzMDczNmE2ZDc1NjY2
ZmRkLi5jYjdiYzYzNTc3NmQ4ZWJjOTEwMzk1MzIwYWVmZGU0MmJjYjkwNmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTM4LDYgKzM4LDggQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIFJ1bnRpbWVBcnJheSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgQmluZGluZ3M6
OkFycmF5KiBhcnJheSkKICAgICB7CisgICAgICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmpl
Y3QKKyAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0
IGZvciAiYXJyYXkiLgogICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6
OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UnVudGltZUFycmF5PihleGVjKTsKICAgICAgICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFJ1bnRpbWVBcnJheT4oKmV4ZWMtPmhlYXAoKSkpIFJ1
bnRpbWVBcnJheShleGVjLCBkb21TdHJ1Y3R1cmUsIGFycmF5KTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>