<?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>45054</bug_id>
          
          <creation_ts>2010-09-01 13:16:18 -0700</creation_ts>
          <short_desc>Share more code between HTMLObjectElement and HTMLEmbedElement</short_desc>
          <delta_ts>2010-09-02 04:29:36 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45049</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>272965</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-01 13:16:18 -0700</bug_when>
    <thetext>Share more code between HTMLObjectElement and HTMLEmbedElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272972</commentid>
    <comment_count>1</comment_count>
      <attachid>66254</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-01 13:25:57 -0700</bug_when>
    <thetext>Created attachment 66254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272979</commentid>
    <comment_count>2</comment_count>
      <attachid>66254</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-09-01 13:39:13 -0700</bug_when>
    <thetext>Comment on attachment 66254
Patch

This looks great!

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

&gt; WebCore/html/HTMLObjectElement.h:64
&gt; +    
Extra whitespace here.

&gt; WebCore/html/HTMLPlugInElement.cpp:70
&gt; +    
And here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273161</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-01 19:14:21 -0700</bug_when>
    <thetext>Whitespace has been cleaned up some in later patches.  Gonna see if this cq&apos;s clean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273199</commentid>
    <comment_count>4</comment_count>
      <attachid>66254</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-01 21:30:21 -0700</bug_when>
    <thetext>Comment on attachment 66254
Patch

Rejecting patch 66254 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--wait-for-httpd&apos;, &apos;--ignore-tests&apos;, &apos;compositing,media&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 20898 test cases.
svg/custom/getsvgdocument.html -&gt; failed

Exiting early after 1 failures. 18060 tests run.
370.48s total testing time

18059 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
26 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/3926037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273236</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-01 23:31:41 -0700</bug_when>
    <thetext>Fixing.  Will repost for landing shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273258</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 01:37:36 -0700</bug_when>
    <thetext>I&apos;m going to land this in smaller pieces.  I can&apos;t seem to find the regression in the moving code, but I&apos;ll make sure all the pieces I land land w/o regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273266</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 02:10:40 -0700</bug_when>
    <thetext>Landing this in two pieces.  First part landed as r66650.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273289</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 03:06:32 -0700</bug_when>
    <thetext>Piece 2 as r66653</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273297</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 03:22:26 -0700</bug_when>
    <thetext>Actually it&apos;s going to be 3 pieces.  I&apos;ve reduced the diff causing the failure, now just trying to figure out what part of it is wrong. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273313</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 03:58:45 -0700</bug_when>
    <thetext>I guess it&apos;s going to be 4 pieces.  #3 was r66657.  I&apos;m down to only like 50 lines left.  Still haven&apos;t found the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273326</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 04:25:07 -0700</bug_when>
    <thetext>Turns out the insanity that is:

void HTMLPlugInImageElement::recalcStyle(StyleChange ch)
{
    // FIXME: Why is this necessary?  Manual re-attach is almost always wrong.
    if (!useFallbackContent() &amp;&amp; needsWidgetUpdate() &amp;&amp; renderer() &amp;&amp; !isImageType()) {
        detach();
        attach();
    }
    HTMLPlugInElement::recalcStyle(ch);
}

needed to be moved from &lt;object&gt; down to the base class too.  Who knows why.  This code is black magic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273328</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 04:29:36 -0700</bug_when>
    <thetext>Committed r66659: &lt;http://trac.webkit.org/changeset/66659&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66254</attachid>
            <date>2010-09-01 13:25:57 -0700</date>
            <delta_ts>2010-09-01 21:30:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45054-20100901132556.patch</filename>
            <type>text/plain</type>
            <size>30394</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTY2NTczMjdkNjBkYjMxOWIwYzZhNTA0YWNkYTRiMWM3MWE4YWIyMC4uYmJmOGZmNjNjMTcxMDVk
MjdlNWJiYTk4Y2I2MDMzMTI3YjUxMTE3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0wMSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2hhcmUgbW9yZSBjb2RlIGJldHdlZW4gSFRNTE9iamVjdEVs
ZW1lbnQgYW5kIEhUTUxFbWJlZEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MDU0CisKKyAgICAgICAgVGhpcyBwdXNoZXMgbW9yZSBvZiBI
VE1MT2JqZWN0RWxlbWVudCBjb2RlIGRvd24gaW50bworICAgICAgICBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50IHNvIHRoYXQgaXQgY2FuIGJlIHNoYXJlZCB3aXRoCisgICAgICAgIEhUTUxFbWJlZEVs
ZW1lbnQuCisKKyAgICAgICAgVGhlIG1vc3Qgbm90YWJsZSBjaGFuZ2VzIGFyZToKKyAgICAgICAg
IC0gSFRNTEVtYmVkRWxlbWVudCBub3cgImRlbGF5cyIgdXBkYXRpbmcgdGhlIHdpZGdldCB1bnRp
bAorICAgICAgICAgICBhbGwgb2YgaXRzIGNoaWxkcmVuIGFyZSBwYXJzZWQgKHRoaXMgbWF0Y2hl
cyBIVE1MT2JqZWN0RWxlbWVudCkuCisgICAgICAgICAgIEhvd2V2ZXIsIHNpbmNlIEhUTUxFbWJl
ZEVsZW1lbnQgY2FuJ3QgaGF2ZSBjaGlsZHJlbiwgdGhpcyBpcyBhY3R1YWxseQorICAgICAgICAg
ICBubyBkZWxheS4KKyAgICAgICAgIC0gdXNlRmFsbGJhY2tDb250ZW50IGlzIG5vdyB2aXJ0dWFs
LCBhbGxvd2luZyBIVE1MRW1iZWRFbGVtZW50IGFuZAorICAgICAgICAgICBIVE1MT2JqZWN0RWxl
bWVudCB0byBzaGFyZSB0aGUgc2FtZSBjb2RlIHBhdGhzLCBhbmQgdGhlIDxlbWJlZD4KKyAgICAg
ICAgICAgY2FzZSB0byBqdXN0IGFsd2F5cyByZXR1cm4gZmFsc2UgZm9yIHVzZUZhbGxiYWNrQ29u
dGVudCgpLgorCisgICAgICAgIEkgYWxzbyBtb3ZlZCBhIGxpdHRsZSBjb2RlIGZyb20gSFRNTFBs
dWdpbkVsZW1lbnQgdG8gSFRNTFBsdWdJbkltYWdlRWxlbWVudAorICAgICAgICBzaW5jZSBIVE1M
QXBwbGV0RWxlbWVudCBkb2VzIG5vdCBuZWVkIHRvIHNoYXJlIHRoaXMgc2FtZSB3aWRnZXQgdXBk
YXRlIGxvZ2ljLgorICAgICAgICBUaGlzIGlzIGEgc21hbGwgY29ycmVjdGlvbiBmcm9tIHRoZSBw
cmV2aW91cyBjaGFuZ2UuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UsIHRodXMgbm8g
dGVzdHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6SFRNTEVtYmVkRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTEVt
YmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OkhUTUxPYmplY3RFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJlY2FsY1N0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlckZhbGxiYWNrQ29u
dGVudCk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnVzZUZhbGxiYWNrQ29udGVudCk6CisgICAgICAgICog
aHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJlbmRlckVt
YmVkZGVkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpk
ZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRl
V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmZpbmlz
aFBhcnNpbmdDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50Ojp1cGRhdGVXaWRnZXRDYWxsYmFjayk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpu
ZWVkc1dpZGdldFVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpzZXROZWVkc1dpZGdldFVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpjYW5MYXp5QXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OnVzZUZhbGxiYWNrQ29udGVudCk6CisgICAgICAgICogaHRtbC9IVE1M
VGFnTmFtZXMuaW46CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKyAgICAgICAgKiBsb2FkZXIvU3Vi
ZnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlV2lkZ2V0Rm9yT2JqZWN0RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjp1cGRhdGVXaWRnZXRGb3JFbWJlZEVsZW1lbnQpOgorCiAyMDEwLTA4
LTMxICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVt
ZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCBlNzg4OWI4
ZjM0ODQwYzliNjI3OTZiMTg1OTY4YmYzOWUxYmNkYzkzLi5iZDg5MTYwZTBhYTRkNTU2NWUyMGE2
MzI2ZDdkMDc5ZmVlMTdlMTlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC00Miwx
NiArNDIsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCi1pbmxpbmUgSFRNTEVtYmVkRWxlbWVudDo6SFRNTEVtYmVkRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9uZWVkV2lkZ2V0VXBk
YXRlKGZhbHNlKQoraW5saW5lIEhUTUxFbWJlZEVsZW1lbnQ6OkhUTUxFbWJlZEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0
ZWRCeVBhcnNlcikKKyAgICA6IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQsIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShlbWJlZFRhZykp
OwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbWJlZEVsZW1lbnQ+IEhUTUxFbWJlZEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPEhUTUxFbWJlZEVsZW1lbnQ+IEhUTUxFbWJlZEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEVtYmVkRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEVtYmVkRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgUmVuZGVyV2lkZ2V0KiBmaW5kV2lkZ2V0UmVuZGVyZXIoY29uc3QgTm9kZSogbikgCkBA
IC0xNTIsNDQgKzE1MSw2IEBAIGJvb2wgSFRNTEVtYmVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZChSZW5kZXJTdHlsZSogc3R5bGUpCiAgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBIVE1MRW1iZWRFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKLXsKLSAg
ICBpZiAoaXNJbWFnZVR5cGUoKSkgewotICAgICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcg
KGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKLSAgICAgICAgaW1hZ2UtPnNldEltYWdlUmVzb3Vy
Y2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOwotICAgICAgICByZXR1cm4gaW1hZ2U7
Ci0gICAgfQotICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJFbWJlZGRlZE9iamVjdCh0aGlz
KTsKLX0KLQotdm9pZCBIVE1MRW1iZWRFbGVtZW50OjphdHRhY2goKQotewotICAgIG1fbmVlZFdp
ZGdldFVwZGF0ZSA9IHRydWU7Ci0KLSAgICBib29sIGlzSW1hZ2UgPSBpc0ltYWdlVHlwZSgpOwot
Ci0gICAgaWYgKCFpc0ltYWdlKQotICAgICAgICBxdWV1ZVBvc3RBdHRhY2hDYWxsYmFjaygmSFRN
TFBsdWdJbkVsZW1lbnQ6OnVwZGF0ZVdpZGdldENhbGxiYWNrLCB0aGlzKTsKLQotICAgIEhUTUxQ
bHVnSW5FbGVtZW50OjphdHRhY2goKTsKLQotICAgIGlmIChpc0ltYWdlICYmIHJlbmRlcmVyKCkp
IHsKLSAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVyKQotICAgICAgICAgICAgbV9pbWFnZUxvYWRl
ciA9IGFkb3B0UHRyKG5ldyBIVE1MSW1hZ2VMb2FkZXIodGhpcykpOwotICAgICAgICBtX2ltYWdl
TG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudCgpOwotCi0gICAgICAgIGlmIChyZW5kZXJlcigpKQot
ICAgICAgICAgICAgdG9SZW5kZXJJbWFnZShyZW5kZXJlcigpKS0+aW1hZ2VSZXNvdXJjZSgpLT5z
ZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKTsKLSAgICB9Ci19Ci0KLXZvaWQg
SFRNTEVtYmVkRWxlbWVudDo6dXBkYXRlV2lkZ2V0KCkKLXsKLSAgICBkb2N1bWVudCgpLT51cGRh
dGVTdHlsZUlmTmVlZGVkKCk7Ci0gICAgaWYgKG1fbmVlZFdpZGdldFVwZGF0ZSAmJiByZW5kZXJF
bWJlZGRlZE9iamVjdCgpICYmICFpc0ltYWdlVHlwZSgpKQotICAgICAgICByZW5kZXJFbWJlZGRl
ZE9iamVjdCgpLT51cGRhdGVXaWRnZXQodHJ1ZSk7Ci19Ci0KIHZvaWQgSFRNTEVtYmVkRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogewogICAgIGlmIChkb2N1bWVudCgpLT5pc0hUTUxE
b2N1bWVudCgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggNWY0ZGY2NzUyNGVkOTFmN2Qw
NWUxM2IyOTBjNTA2ZDdiODg4YjVkMC4uZTI3YjcxNzI2MDI5MWUzZTJjZWQxNzI3NzZkZTY2OTFi
NWYyN2NjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBAIC0yOSwyMCArMjksMTUgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MRW1iZWRFbGVtZW50IDogcHVibGljIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxF
bWJlZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQot
ICAgIHZvaWQgc2V0TmVlZFdpZGdldFVwZGF0ZShib29sIG5lZWRXaWRnZXRVcGRhdGUpIHsgbV9u
ZWVkV2lkZ2V0VXBkYXRlID0gbmVlZFdpZGdldFVwZGF0ZTsgfQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhUTUxFbWJlZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTEVtYmVkRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MRW1iZWRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2Vy
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7Ci0gICAgdmlydHVhbCBib29sIGNhbkxhenlBdHRhY2goKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7
Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwg
UmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2VydmVEZWNscyA9IGZhbHNl
KTsKQEAgLTUwLDEzICs0NSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0
cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgaW1hZ2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlV2lkZ2V0KCk7Ci0KICAgICB2aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0
Rm9ySlNCaW5kaW5ncygpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNl
QXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYpIGNvbnN0OwotCi0gICAgYm9vbCBtX25l
ZWRXaWRnZXRVcGRhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRl
eCAwNGMwMGE5ZWQ2YzJhOGM1M2U0YjhiNTc2NGFhMDM5NGNhYWJiNzc2Li40OWUwNWVkNGZjNzcz
OTFhMDBjN2ZjZDllMmIyYWNlMmZkYjllMjQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5j
cHAKQEAgLTQ2LDkgKzQ2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAogaW5saW5lIEhUTUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wg
Y3JlYXRlZEJ5UGFyc2VyKSAKLSAgICA6IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpCisgICAgOiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
LCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgLCBtX2RvY05hbWVkSXRlbSh0cnVlKQotICAgICwgbV9u
ZWVkV2lkZ2V0VXBkYXRlKCFjcmVhdGVkQnlQYXJzZXIpCiAgICAgLCBtX3VzZUZhbGxiYWNrQ29u
dGVudChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShvYmplY3RUYWcpKTsKQEAgLTY3
LDMwICs2NiwyOSBAQCBSZW5kZXJXaWRnZXQqIEhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJXaWRn
ZXRGb3JKU0JpbmRpbmdzKCkgY29uc3QKIAogdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewotICAgIFN0cmluZyB2YWwgPSBhdHRy
LT52YWx1ZSgpOwotICAgIHNpemVfdCBwb3M7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSB0eXBl
QXR0cikgewotICAgICAgICBtX3NlcnZpY2VUeXBlID0gdmFsLmxvd2VyKCk7Ci0gICAgICAgIHBv
cyA9IG1fc2VydmljZVR5cGUuZmluZCgiOyIpOworICAgICAgICBtX3NlcnZpY2VUeXBlID0gYXR0
ci0+dmFsdWUoKS5sb3dlcigpOworICAgICAgICBzaXplX3QgcG9zID0gbV9zZXJ2aWNlVHlwZS5m
aW5kKCI7Iik7CiAgICAgICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCi0gICAgICAgICAgbV9zZXJ2
aWNlVHlwZSA9IG1fc2VydmljZVR5cGUubGVmdChwb3MpOworICAgICAgICAgICAgbV9zZXJ2aWNl
VHlwZSA9IG1fc2VydmljZVR5cGUubGVmdChwb3MpOwogICAgICAgICBpZiAocmVuZGVyZXIoKSkK
LSAgICAgICAgICBtX25lZWRXaWRnZXRVcGRhdGUgPSB0cnVlOworICAgICAgICAgICAgc2V0TmVl
ZHNXaWRnZXRVcGRhdGUodHJ1ZSk7CiAgICAgICAgIGlmICghaXNJbWFnZVR5cGUoKSAmJiBtX2lt
YWdlTG9hZGVyKQotICAgICAgICAgIG1faW1hZ2VMb2FkZXIuY2xlYXIoKTsKKyAgICAgICAgICAg
IG1faW1hZ2VMb2FkZXIuY2xlYXIoKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBk
YXRhQXR0cikgewotICAgICAgICBtX3VybCA9IGRlcHJlY2F0ZWRQYXJzZVVSTCh2YWwpOwotICAg
ICAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgICBtX25lZWRXaWRnZXRVcGRhdGUgPSB0cnVl
OwotICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiBpc0ltYWdlVHlwZSgpKSB7Ci0gICAgICAgICAg
aWYgKCFtX2ltYWdlTG9hZGVyKQotICAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyID0gYWRvcHRQ
dHIobmV3IEhUTUxJbWFnZUxvYWRlcih0aGlzKSk7Ci0gICAgICAgICAgbV9pbWFnZUxvYWRlci0+
dXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoKTsKKyAgICAgICAgbV91cmwg
PSBkZXByZWNhdGVkUGFyc2VVUkwoYXR0ci0+dmFsdWUoKSk7CisgICAgICAgIGlmIChyZW5kZXJl
cigpKSB7CisgICAgICAgICAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKKyAgICAgICAg
ICAgIGlmIChpc0ltYWdlVHlwZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFtX2ltYWdlTG9h
ZGVyKQorICAgICAgICAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyID0gYWRvcHRQdHIobmV3IEhU
TUxJbWFnZUxvYWRlcih0aGlzKSk7CisgICAgICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBk
YXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoKTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGNsYXNzaWRBdHRyKSB7Ci0g
ICAgICAgIG1fY2xhc3NJZCA9IHZhbDsKKyAgICAgICAgbV9jbGFzc0lkID0gYXR0ci0+dmFsdWUo
KTsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgICAgbV9uZWVkV2lkZ2V0VXBkYXRl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNldE5lZWRzV2lkZ2V0VXBkYXRlKHRydWUpOwogICAgIH0g
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ubG9hZEF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmxvYWRFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZl
bnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9u
YmVmb3JlbG9hZEF0dHIpCkBAIC0xMTIsNzggKzExMCwyMyBAQCB2b2lkIEhUTUxPYmplY3RFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAgICAgIH0KICAg
ICAgICAgbV9pZCA9IG5ld0lkOwogICAgICAgICAvLyBhbHNvIGNhbGwgc3VwZXJjbGFzcwotICAg
ICAgICBIVE1MUGx1Z0luRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CisgICAg
ICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwog
ICAgIH0gZWxzZQotICAgICAgICBIVE1MUGx1Z0luRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cik7CisgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKGF0dHIpOwogfQogCiBib29sIEhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBzaG91
bGQgbm90IGJlIG5lZWRlZCwgZGV0YWNoZWQgZG9jdW1lbnRzIG5ldmVyIHJlbmRlciEKICAgICBG
cmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIC8vIFRlbXBvcmFyeSBXb3JrYXJvdW5kIGZv
ciBHZWFycyBwbHVnaW4gLSBzZWUgYnVnIDI0MjE1IGZvciBkZXRhaWxzIGFuZCBidWcgMjQzNDYg
dG8gdHJhY2sgcmVtb3ZhbC4KICAgICAvLyBHZWFycyBleHBlY3RzIHRoZSBwbHVnaW4gdG8gYmUg
aW5zdGFudGlhdGVkIGV2ZW4gaWYgZGlzcGxheTpub25lIGlzIHNldAogICAgIC8vIGZvciB0aGUg
b2JqZWN0IGVsZW1lbnQuCiAgICAgYm9vbCBpc0dlYXJzUGx1Z2luID0gZXF1YWxJZ25vcmluZ0Nh
c2UoZ2V0QXR0cmlidXRlKHR5cGVBdHRyKSwgImFwcGxpY2F0aW9uL3gtZ29vZ2xlZ2VhcnMiKTsK
LSAgICByZXR1cm4gaXNHZWFyc1BsdWdpbiB8fCBIVE1MUGx1Z0luRWxlbWVudDo6cmVuZGVyZXJJ
c05lZWRlZChzdHlsZSk7Ci19Ci0KLVJlbmRlck9iamVjdCogSFRNTE9iamVjdEVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKQotewot
ICAgIC8vIEZhbGxiYWNrIGNvbnRlbnQgYnJlYWtzIHRoZSBET00tPlJlbmRlcmVyIGNsYXNzIHJl
bGF0aW9uc2hpcCBvZiB0aGlzCi0gICAgLy8gY2xhc3MgYW5kIGFsbCBzdXBlcmNsYXNzZXMgYmVj
YXVzZSBjcmVhdGVPYmplY3Qgd29uJ3QgbmVjZXNzYXJpbHkKLSAgICAvLyByZXR1cm4gYSBSZW5k
ZXJFbWJlZGRlZE9iamVjdCwgUmVuZGVyUGFydCBvciBldmVuIFJlbmRlcldpZGdldC4KLSAgICBp
ZiAobV91c2VGYWxsYmFja0NvbnRlbnQpCi0gICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNy
ZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7Ci0gICAgaWYgKGlzSW1hZ2VUeXBlKCkpIHsKLSAgICAg
ICAgUmVuZGVySW1hZ2UqIGltYWdlID0gbmV3IChhcmVuYSkgUmVuZGVySW1hZ2UodGhpcyk7Ci0g
ICAgICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0
ZSgpKTsKLSAgICAgICAgcmV0dXJuIGltYWdlOwotICAgIH0KLSAgICByZXR1cm4gbmV3IChhcmVu
YSkgUmVuZGVyRW1iZWRkZWRPYmplY3QodGhpcyk7Ci19Ci0KLXZvaWQgSFRNTE9iamVjdEVsZW1l
bnQ6OmF0dGFjaCgpCi17Ci0gICAgYm9vbCBpc0ltYWdlID0gaXNJbWFnZVR5cGUoKTsKLQotICAg
IGlmICghaXNJbWFnZSkKLSAgICAgICAgcXVldWVQb3N0QXR0YWNoQ2FsbGJhY2soJkhUTUxQbHVn
SW5FbGVtZW50Ojp1cGRhdGVXaWRnZXRDYWxsYmFjaywgdGhpcyk7Ci0KLSAgICBIVE1MUGx1Z0lu
RWxlbWVudDo6YXR0YWNoKCk7Ci0KLSAgICBpZiAoaXNJbWFnZSAmJiByZW5kZXJlcigpICYmICFt
X3VzZUZhbGxiYWNrQ29udGVudCkgewotICAgICAgICBpZiAoIW1faW1hZ2VMb2FkZXIpCi0gICAg
ICAgICAgICBtX2ltYWdlTG9hZGVyID0gYWRvcHRQdHIobmV3IEhUTUxJbWFnZUxvYWRlcih0aGlz
KSk7Ci0gICAgICAgIG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgfQot
fQotCi12b2lkIEhUTUxPYmplY3RFbGVtZW50Ojp1cGRhdGVXaWRnZXQoKQotewotICAgIGRvY3Vt
ZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLSAgICBpZiAobV9uZWVkV2lkZ2V0VXBkYXRl
ICYmIHJlbmRlckVtYmVkZGVkT2JqZWN0KCkgJiYgIW1fdXNlRmFsbGJhY2tDb250ZW50ICYmICFp
c0ltYWdlVHlwZSgpKQotICAgICAgICByZW5kZXJFbWJlZGRlZE9iamVjdCgpLT51cGRhdGVXaWRn
ZXQodHJ1ZSk7Ci19Ci0KLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpCi17Ci0gICAgSFRNTFBsdWdJbkVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigp
OwotICAgIGlmICghbV91c2VGYWxsYmFja0NvbnRlbnQpIHsKLSAgICAgICAgbV9uZWVkV2lkZ2V0
VXBkYXRlID0gdHJ1ZTsKLSAgICAgICAgaWYgKGluRG9jdW1lbnQoKSkKLSAgICAgICAgICAgIHNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICB9Ci19Ci0KLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6
OmRldGFjaCgpCi17Ci0gICAgaWYgKGF0dGFjaGVkKCkgJiYgcmVuZGVyZXIoKSAmJiAhbV91c2VG
YWxsYmFja0NvbnRlbnQpCi0gICAgICAgIC8vIFVwZGF0ZSB0aGUgd2lkZ2V0IHRoZSBuZXh0IHRp
bWUgd2UgYXR0YWNoIChkZXRhY2hpbmcgZGVzdHJveXMgdGhlIHBsdWdpbikuCi0gICAgICAgIG1f
bmVlZFdpZGdldFVwZGF0ZSA9IHRydWU7Ci0gICAgSFRNTFBsdWdJbkVsZW1lbnQ6OmRldGFjaCgp
OworICAgIHJldHVybiBpc0dlYXJzUGx1Z2luIHx8IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCiB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjppbnNl
cnRlZEludG9Eb2N1bWVudCgpCkBAIC0xOTQsNyArMTM3LDcgQEAgdm9pZCBIVE1MT2JqZWN0RWxl
bWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogICAgICAgICBkb2N1bWVudC0+YWRkRXh0cmFO
YW1lZEl0ZW0obV9pZCk7CiAgICAgfQogCi0gICAgSFRNTFBsdWdJbkVsZW1lbnQ6Omluc2VydGVk
SW50b0RvY3VtZW50KCk7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRv
RG9jdW1lbnQoKTsKIH0KIAogdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1
bWVudCgpCkBAIC0yMDUsMjYgKzE0OCwyNyBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpyZW1v
dmVkRnJvbURvY3VtZW50KCkKICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZUV4dHJhTmFtZWRJdGVt
KG1faWQpOwogICAgIH0KIAotICAgIEhUTUxQbHVnSW5FbGVtZW50OjpyZW1vdmVkRnJvbURvY3Vt
ZW50KCk7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgp
OwogfQogCiB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBj
aCkKIHsKLSAgICBpZiAoIW1fdXNlRmFsbGJhY2tDb250ZW50ICYmIG1fbmVlZFdpZGdldFVwZGF0
ZSAmJiByZW5kZXJlcigpICYmICFpc0ltYWdlVHlwZSgpKSB7CisgICAgLy8gRklYTUU6IFdoeSBp
cyB0aGlzIG5lY2Vzc2FyeT8gIE1hbnVhbCByZS1hdHRhY2ggaXMgYWxtb3N0IGFsd2F5cyB3cm9u
Zy4KKyAgICBpZiAoIXVzZUZhbGxiYWNrQ29udGVudCgpICYmIG5lZWRzV2lkZ2V0VXBkYXRlKCkg
JiYgcmVuZGVyZXIoKSAmJiAhaXNJbWFnZVR5cGUoKSkgewogICAgICAgICBkZXRhY2goKTsKICAg
ICAgICAgYXR0YWNoKCk7CiAgICAgfQotICAgIEhUTUxQbHVnSW5FbGVtZW50OjpyZWNhbGNTdHls
ZShjaCk7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVjYWxjU3R5bGUoY2gpOwogfQog
CiB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQ
YXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENv
dW50RGVsdGEpCiB7CiAgICAgdXBkYXRlRG9jTmFtZWRJdGVtKCk7Ci0gICAgaWYgKGluRG9jdW1l
bnQoKSAmJiAhbV91c2VGYWxsYmFja0NvbnRlbnQpIHsKLSAgICAgICAgbV9uZWVkV2lkZ2V0VXBk
YXRlID0gdHJ1ZTsKKyAgICBpZiAoaW5Eb2N1bWVudCgpICYmICF1c2VGYWxsYmFja0NvbnRlbnQo
KSkgeworICAgICAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKICAgICAgICAgc2V0TmVl
ZHNTdHlsZVJlY2FsYygpOwogICAgIH0KLSAgICBIVE1MUGx1Z0luRWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRD
b3VudERlbHRhKTsKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQo
Y2hhbmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVs
dGEpOwogfQogCiBib29sIEhUTUxPYmplY3RFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1
dGUgKmF0dHIpIGNvbnN0CkBAIC0yNTcsMTAgKzIwMSw3IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1l
bnQ6OnJlbmRlckZhbGxiYWNrQ29udGVudCgpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBN
YXJrIG91cnNlbHZlcyBhcyB1c2luZyB0aGUgZmFsbGJhY2sgY29udGVudC4KICAgICBtX3VzZUZh
bGxiYWNrQ29udGVudCA9IHRydWU7Ci0KLSAgICAvLyBOb3cgZG8gYSBkZXRhY2ggYW5kIHJlYXR0
YWNoLiAgICAKICAgICAvLyBGSVhNRTogU3R5bGUgZ2V0cyByZWNhbGN1bGF0ZWQgd2hpY2ggaXMg
c3Vib3B0aW1hbC4KICAgICBkZXRhY2goKTsKICAgICBhdHRhY2goKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmgKaW5kZXggZTg3NDY2NGI5OWVmOGFlMzUwNmRmNDU4N2NhY2I0OWZmMzQ3MmY2Yi4u
ZTY4YWZlOTc0ODQxYWRlYjRkNTk4NmNmZjdhYjFkOWQxNGVhYTQ5OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmgKQEAgLTMxLDggKzMxLDYgQEAgY2xhc3MgSFRNTE9iamVjdEVsZW1lbnQgOiBw
dWJsaWMgSFRNTFBsdWdJbkltYWdlRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICB2b2lkIHNldE5lZWRXaWRnZXRV
cGRhdGUoYm9vbCBuZWVkV2lkZ2V0VXBkYXRlKSB7IG1fbmVlZFdpZGdldFVwZGF0ZSA9IG5lZWRX
aWRnZXRVcGRhdGU7IH0KLQogICAgIHZvaWQgcmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiAKICAg
ICBib29sIGlzRG9jTmFtZWRJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9kb2NOYW1lZEl0ZW07IH0K
QEAgLTQxLDE5ICszOSwxNCBAQCBwdWJsaWM6CiAKICAgICBib29sIGNvbnRhaW5zSmF2YUFwcGxl
dCgpIGNvbnN0OwogCi0gICAgYm9vbCB1c2VGYWxsYmFja0NvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX3VzZUZhbGxiYWNrQ29udGVudDsgfQorICAgIHZpcnR1YWwgYm9vbCB1c2VGYWxsYmFja0Nv
bnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3VzZUZhbGxiYWNrQ29udGVudDsgfQogCiBwcml2YXRl
OgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCos
IGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuTGF6eUF0dGFjaCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKLSAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwotICAg
IHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICAKQEAgLTYzLDE4ICs1Niwx
NSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUq
KSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGltYWdlU291cmNlQXR0
cmlidXRlTmFtZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdpZGdldCgpOwot
CiAgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBj
b25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlz
dEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKIAogICAgIHZvaWQgdXBkYXRlRG9jTmFtZWRJdGVtKCk7
Ci0KKyAgICAKICAgICBBdG9taWNTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9jbGFzc0lkOwog
ICAgIGJvb2wgbV9kb2NOYW1lZEl0ZW0gOiAxOwotICAgIGJvb2wgbV9uZWVkV2lkZ2V0VXBkYXRl
IDogMTsKICAgICBib29sIG1fdXNlRmFsbGJhY2tDb250ZW50IDogMTsKIH07CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDVmZmI3NmQ1MjU3NDE4YjA4YjEwYjc3NGFjMzZlYTk2
ZGIyMDkxNWQuLjQ4NGJkNzJkY2QwNjU0MTJkMTVlZTBlMjY5MmU2NTAzNzA3OWUxYzQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtNjcsNyArNjcsNyBAQCBIVE1MUGx1Z0luRWxl
bWVudDo6fkhUTUxQbHVnSW5FbGVtZW50KCkKICAgICB9CiAjZW5kaWYKIH0KLQorICAgIAogdm9p
ZCBIVE1MUGx1Z0luRWxlbWVudDo6ZGV0YWNoKCkKIHsKICAgICBtX2luc3RhbmNlLmNsZWFyKCk7
CkBAIC04MSwxNSArODEsNiBAQCB2b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpkZXRhY2goKQogICAg
IEhUTUxGcmFtZU93bmVyRWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAKLVJlbmRlckVtYmVkZGVkT2Jq
ZWN0KiBIVE1MUGx1Z0luRWxlbWVudDo6cmVuZGVyRW1iZWRkZWRPYmplY3QoKSBjb25zdAotewot
ICAgIC8vIEhUTUxPYmplY3RFbGVtZW50IGFuZCBIVE1MRW1iZWRFbGVtZW50IG1heSByZXR1cm4g
YXJiaXRyYXJ5IHJlbmRlcmVycwotICAgIC8vIHdoZW4gdXNpbmcgZmFsbGJhY2sgY29udGVudC4K
LSAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCktPmlzRW1iZWRkZWRPYmplY3QoKSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRvUmVuZGVyRW1iZWRkZWRPYmplY3QocmVu
ZGVyZXIoKSk7Ci19Ci0KIFBhc3NTY3JpcHRJbnN0YW5jZSBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0
SW5zdGFuY2UoKSBjb25zdAogewogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1l
KCk7CkBAIC0xODYsOSArMTc3LDQgQEAgTlBPYmplY3QqIEhUTUxQbHVnSW5FbGVtZW50OjpnZXRO
UE9iamVjdCgpCiAKICNlbmRpZiAvKiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkgKi8KIAot
dm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2soTm9kZSogbikKLXsK
LSAgICBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luRWxlbWVudCo+KG4pLT51cGRhdGVXaWRnZXQoKTsK
LX0KLQogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCAyOWZjZGIwMDA3NGY4NTAxZTk3
YWUxNDAwZGNhZDk2OGJkMTczZWNkLi41OWRkNzJhZGYwNDc5NGM3MjkxYzBlYmI5NTc1ZTdmYThi
OTg4NTY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtMzYsNiArMzYsNyBAQCBjbGFz
cyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKIGNsYXNzIFJlbmRlcldpZGdldDsKIGNsYXNzIFdpZGdl
dDsKIAorLy8gQmFzZSBjbGFzcyBmb3IgPGFwcGxldD4gYXMgd2VsbCBhcyA8b2JqZWN0PiBhbmQg
PGVtYmVkPiAodGhyb3VnaCBIVE1MUGx1Z2luSW1hZ2VFbGVtZW50KQogY2xhc3MgSFRNTFBsdWdJ
bkVsZW1lbnQgOiBwdWJsaWMgSFRNTEZyYW1lT3duZXJFbGVtZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5IVE1MUGx1Z0luRWxlbWVudCgpOwpAQCAtNTEsMTUgKzUyLDExIEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQ2FwdHVyaW5nTW91c2VFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzQ2Fw
dHVyaW5nTW91c2VFdmVudHM7IH0KICAgICB2b2lkIHNldElzQ2FwdHVyaW5nTW91c2VFdmVudHMo
Ym9vbCBjYXB0dXJpbmcpIHsgbV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzID0gY2FwdHVyaW5nOyB9
CiAKLSAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogcmVuZGVyRW1iZWRkZWRPYmplY3QoKSBjb25z
dDsKLQogcHJvdGVjdGVkOgogICAgIEhUTUxQbHVnSW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAK
LSAgICBzdGF0aWMgdm9pZCB1cGRhdGVXaWRnZXRDYWxsYmFjayhOb2RlKik7Ci0KICAgICB2aXJ0
dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgTWFwcGVk
QXR0cmlidXRlRW50cnkmIHJlc3VsdCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCkBAIC02OCw4ICs2NSw2IEBAIHByaXZhdGU6CiAK
ICAgICB2aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNv
bnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQoKSB7IH0KLQogcHJvdGVj
dGVkOgogICAgIEF0b21pY1N0cmluZyBtX25hbWU7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcAppbmRleCBlMjg5OGEyYmNhZjRmZmQ1OTdkNTg0ZmM4YTQ1Y2RkNWM0MDA0
N2M0Li40MTFiZjkyMDgwZGIyMjdkNzgzM2FlZGJmMjQ5NGRkYzE2Zjk3MDFmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yNiwxNCArMjYsMzAgQEAKICNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgog
I2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKKyNp
bmNsdWRlICJSZW5kZXJJbWFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
SFRNTFBsdWdJbkltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogSFRNTFBsdWdJbkVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgLy8gbV9uZWVkc1dpZGdldFVwZGF0ZSghY3Jl
YXRlZEJ5UGFyc2VyKSBhbGxvd3MgSFRNTE9iamVjdEVsZW1lbnQgdG8gZGVsYXkKKyAgICAvLyB3
aWRnZXQgdXBkYXRlcyB1bnRpbCBhZnRlciBhbGwgY2hpbGRyZW4gYXJlIHBhcnNlZC4gIEZvciBI
VE1MRW1iZWRFbGVtZW50CisgICAgLy8gdGhpcyBkZWxheSBpcyB1bm5lY2Vzc2FyeSwgYnV0IGl0
IGlzIHNpbXBsZXIgdG8gbWFrZSBib3RoIGNsYXNzZXMgc2hhcmUKKyAgICAvLyB0aGUgc2FtZSBj
b2RlcGF0aCBpbiB0aGlzIGNsYXNzLgorICAgICwgbV9uZWVkc1dpZGdldFVwZGF0ZSghY3JlYXRl
ZEJ5UGFyc2VyKQogewogfQogCitSZW5kZXJFbWJlZGRlZE9iamVjdCogSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6cmVuZGVyRW1iZWRkZWRPYmplY3QoKSBjb25zdAoreworICAgIC8vIEhUTUxPYmpl
Y3RFbGVtZW50IGFuZCBIVE1MRW1iZWRFbGVtZW50IG1heSByZXR1cm4gYXJiaXRyYXJ5IHJlbmRl
cmVycworICAgIC8vIHdoZW4gdXNpbmcgZmFsbGJhY2sgY29udGVudC4KKyAgICBpZiAoIXJlbmRl
cmVyKCkgfHwgIXJlbmRlcmVyKCktPmlzRW1iZWRkZWRPYmplY3QoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIHRvUmVuZGVyRW1iZWRkZWRPYmplY3QocmVuZGVyZXIoKSk7Cit9CisK
IGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6aXNJbWFnZVR5cGUoKQogewogICAgIGlmICht
X3NlcnZpY2VUeXBlLmlzRW1wdHkoKSAmJiBwcm90b2NvbElzKG1fdXJsLCAiZGF0YSIpKQpAQCAt
NDcsNiArNjMsNjUgQEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojppc0ltYWdlVHlwZSgp
CiAgICAgcmV0dXJuIEltYWdlOjpzdXBwb3J0c1R5cGUobV9zZXJ2aWNlVHlwZSk7CiB9CiAKK1Jl
bmRlck9iamVjdCogSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgLy8gRmFsbGJhY2sgY29u
dGVudCBicmVha3MgdGhlIERPTS0+UmVuZGVyZXIgY2xhc3MgcmVsYXRpb25zaGlwIG9mIHRoaXMK
KyAgICAvLyBjbGFzcyBhbmQgYWxsIHN1cGVyY2xhc3NlcyBiZWNhdXNlIGNyZWF0ZU9iamVjdCB3
b24ndCBuZWNlc3NhcmlseQorICAgIC8vIHJldHVybiBhIFJlbmRlckVtYmVkZGVkT2JqZWN0LCBS
ZW5kZXJQYXJ0IG9yIGV2ZW4gUmVuZGVyV2lkZ2V0LgorICAgIGlmICh1c2VGYWxsYmFja0NvbnRl
bnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KHRoaXMsIHN0
eWxlKTsKKyAgICBpZiAoaXNJbWFnZVR5cGUoKSkgeworICAgICAgICBSZW5kZXJJbWFnZSogaW1h
Z2UgPSBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKKyAgICAgICAgaW1hZ2UtPnNldElt
YWdlUmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOworICAgICAgICByZXR1
cm4gaW1hZ2U7CisgICAgfQorICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJFbWJlZGRlZE9i
amVjdCh0aGlzKTsKK30KKwordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjphdHRhY2goKQor
eworICAgIGJvb2wgaXNJbWFnZSA9IGlzSW1hZ2VUeXBlKCk7CisgICAgaWYgKCFpc0ltYWdlKQor
ICAgICAgICBxdWV1ZVBvc3RBdHRhY2hDYWxsYmFjaygmSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
dXBkYXRlV2lkZ2V0Q2FsbGJhY2ssIHRoaXMpOworICAgIAorICAgIEhUTUxGcmFtZU93bmVyRWxl
bWVudDo6YXR0YWNoKCk7CisgICAgCisgICAgaWYgKGlzSW1hZ2UgJiYgcmVuZGVyZXIoKSAmJiAh
dXNlRmFsbGJhY2tDb250ZW50KCkpIHsKKyAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVyKQorICAg
ICAgICAgICAgbV9pbWFnZUxvYWRlciA9IGFkb3B0UHRyKG5ldyBIVE1MSW1hZ2VMb2FkZXIodGhp
cykpOworICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgIH0K
K30KKwordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkZXRhY2goKQoreworICAgIEFTU0VS
VChhdHRhY2hlZCgpKTsKKyAgICBBU1NFUlQocmVuZGVyZXIoKSk7CisgICAgaWYgKCF1c2VGYWxs
YmFja0NvbnRlbnQoKSkgeworICAgICAgICAvLyBVcGRhdGUgdGhlIHdpZGdldCB0aGUgbmV4dCB0
aW1lIHdlIGF0dGFjaCAoZGV0YWNoaW5nIGRlc3Ryb3lzIHRoZSBwbHVnaW4pLgorICAgICAgICBz
ZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKKyAgICB9CisgICAgSFRNTFBsdWdJbkVsZW1lbnQ6
OmRldGFjaCgpOworfQorCit2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVdpZGdl
dCgpCit7CisgICAgZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIGlmIChu
ZWVkc1dpZGdldFVwZGF0ZSgpICYmIHJlbmRlckVtYmVkZGVkT2JqZWN0KCkgJiYgIXVzZUZhbGxi
YWNrQ29udGVudCgpICYmICFpc0ltYWdlVHlwZSgpKQorICAgICAgICByZW5kZXJFbWJlZGRlZE9i
amVjdCgpLT51cGRhdGVXaWRnZXQodHJ1ZSk7Cit9CisKK3ZvaWQgSFRNTFBsdWdJbkltYWdlRWxl
bWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKK3sKKyAgICBIVE1MUGx1Z0luRWxlbWVudDo6
ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CisgICAgaWYgKHVzZUZhbGxiYWNrQ29udGVudCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKKyAgICBp
ZiAoaW5Eb2N1bWVudCgpKQorICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKIHZv
aWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d2lsbE1vdmVUb05ld093bmVyRG9jdW1lbnQoKQog
ewogICAgIGlmIChtX2ltYWdlTG9hZGVyKQpAQCAtNTQsNCArMTI5LDkgQEAgdm9pZCBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50Ojp3aWxsTW92ZVRvTmV3T3duZXJEb2N1bWVudCgpCiAgICAgSFRNTFBs
dWdJbkVsZW1lbnQ6OndpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7CiB9CiAKK3ZvaWQgSFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2soTm9kZSogbikKK3sKKyAg
ICBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4obiktPnVwZGF0ZVdpZGdldCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaAppbmRleCA2ZjhkMzA1YWEyMzk2OWJmYTIwNjVmNThmMWFjMTg2ZmFkNjE4Mzg3Li5i
ODA3N2UyOWFiNzQyMDQ2MmI4MGVmOGI1MWI3YmE3NGFiNDU5NDhkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTI4LDEzICsyOCwxOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEhUTUxJbWFnZUxvYWRlcjsKIAorLy8gQmFzZSBjbGFzcyBmb3IgSFRNTE9i
amVjdEVsZW1lbnQgYW5kIEhUTUxFbWJlZEVsZW1lbnQKIGNsYXNzIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQgOiBwdWJsaWMgSFRNTFBsdWdJbkVsZW1lbnQgewogcHVibGljOgogICAgIGNvbnN0IFN0
cmluZyYgc2VydmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VUeXBlOyB9CiAgICAg
Y29uc3QgU3RyaW5nJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogCisgICAgYm9vbCBu
ZWVkc1dpZGdldFVwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNXaWRnZXRVcGRhdGU7IH0K
KyAgICB2b2lkIHNldE5lZWRzV2lkZ2V0VXBkYXRlKGJvb2wgbmVlZHNXaWRnZXRVcGRhdGUpIHsg
bV9uZWVkc1dpZGdldFVwZGF0ZSA9IG5lZWRzV2lkZ2V0VXBkYXRlOyB9CisKKyAgICBSZW5kZXJF
bWJlZGRlZE9iamVjdCogcmVuZGVyRW1iZWRkZWRPYmplY3QoKSBjb25zdDsKKyAgICAKIHByb3Rl
Y3RlZDoKLSAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Kik7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAog
ICAgIGJvb2wgaXNJbWFnZVR5cGUoKTsKIApAQCAtNDIsOCArNDgsMjEgQEAgcHJvdGVjdGVkOgog
ICAgIFN0cmluZyBtX3NlcnZpY2VUeXBlOwogICAgIFN0cmluZyBtX3VybDsKIAorICAgIHN0YXRp
YyB2b2lkIHVwZGF0ZVdpZGdldENhbGxiYWNrKE5vZGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOworICAgIAogcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIGJvb2wgY2FuTGF6eUF0dGFjaCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
KTsKKworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsgICAgCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7CisKKyAgICB2b2lkIHVw
ZGF0ZVdpZGdldCgpOworICAgIHZpcnR1YWwgYm9vbCB1c2VGYWxsYmFja0NvbnRlbnQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgYm9vbCBtX25lZWRzV2lkZ2V0VXBkYXRlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxU
YWdOYW1lcy5pbiBiL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggZjg0NGZhODU0
NTU3ODNhNzc5MzlhNDJjOGQ1Y2QwOGM1MzUwZjdkMi4uMjA5NjM2ZDAzZjQ5NjFjZjFlNzg5ZWQ0
YjRhZWZiYjg1YjYyNTcyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5p
bgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC00Myw3ICs0Myw3IEBAIGRp
dgogZGwgaW50ZXJmYWNlTmFtZT1IVE1MRExpc3RFbGVtZW50CiBkdCBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50CiBlbSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1lbWJlZAorZW1iZWQgY29u
c3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlcgogZmllbGRzZXQgaW50ZXJmYWNlTmFtZT1IVE1M
RmllbGRTZXRFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIGZpZ2NhcHRpb24g
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogZmlndXJlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA5NzlmZmM0NGJkZjEyZGUwZTgwN2I5
MWY2OTllYTU1ZWYzMjhlNzYwLi5jZWFmYjg4ZjY0MGZhZTkyZDk1MmZiYzVjNmI0NGFjZTE3Y2Vh
ZDRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysrIGIv
V2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zOCw5ICszOCw4IEBACiAjaW5j
bHVkZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50QmFz
ZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIk1JTUVU
eXBlUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgpA
QCAtODksNyArODgsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJhbWUoSFRNTEZy
YW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cgogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KEhUTUxQbHVnSW5FbGVt
ZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcm
IGZyYW1lTmFtZSwKK2Jvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJ
bkltYWdlRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRv
bWljU3RyaW5nJiBmcmFtZU5hbWUsCiAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZh
bHVlcykKIHsKICAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiBtaW1lVHlwZS5pc0VtcHR5KCkpCkBA
IC0xMjQsNyArMTIzLDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdE9iamVjdChIVE1M
UGx1Z0luRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5oYXNUYWdOYW1lKG9i
amVjdFRhZykgfHwgb3duZXJFbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSk7Ci0gICAgICAg
IEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBsdWdJ
bkVsZW1lbnQqPihvd25lckVsZW1lbnQpOworICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
KiBwbHVnaW5FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KG93
bmVyRWxlbWVudCk7CiAKICAgICAgICAgcmV0dXJuIGxvYWRQbHVnaW4ocGx1Z2luRWxlbWVudCwg
Y29tcGxldGVkVVJMLCBtaW1lVHlwZSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMsIHVzZUZhbGxi
YWNrKTsKICAgICB9CkBAIC0zMjgsNyArMzI3LDcgQEAgRG9jdW1lbnQqIFN1YmZyYW1lTG9hZGVy
Ojpkb2N1bWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCk7CiB9CiAK
LWJvb2wgU3ViZnJhbWVMb2FkZXI6OmxvYWRQbHVnaW4oSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdp
bkVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwKK2Jvb2wg
U3ViZnJhbWVMb2FkZXI6OmxvYWRQbHVnaW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2lu
RWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLAogICAgIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFy
YW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJhY2spCiB7CiAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qq
IHJlbmRlcmVyID0gcGx1Z2luRWxlbWVudC0+cmVuZGVyRW1iZWRkZWRPYmplY3QoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5oCmluZGV4IDhlZDQ1NmNhOTY4ZTM3Yzk1ZDQyOWIzNmRlZWIyMTRmMDRk
ZGU5MWEuLjZjM2JhZjg5ODEwYjdkOWQ2NzJjMmU3Njg4OTIwZTQxNWJlZTMxMWUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEZy
YW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSFRNTEFwcGxldEVsZW1lbnQ7CiBjbGFzcyBIVE1MRnJh
bWVPd25lckVsZW1lbnQ7Ci1jbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgS1VSTDsKICNpZiBFTkFCTEUo
UExVR0lOX1BST1hZX0ZPUl9WSURFTykKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgY2xlYXIoKTsKIAogICAgIGJvb2wgcmVxdWVzdEZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVu
dCosIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFtZSwgYm9v
bCBsb2NrSGlzdG9yeSA9IHRydWUsIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IHRydWUpOyAg
ICAKLSAgICBib29sIHJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsCisgICAgYm9vbCByZXF1ZXN0
T2JqZWN0KEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgc2VydmljZVR5
cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGFyYW1WYWx1ZXMpOwogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCkBA
IC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRnJhbWUqIGxvYWRPclJlZGly
ZWN0U3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IEF0
b21pY1N0cmluZyYgZnJhbWVOYW1lLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9y
d2FyZExpc3QpOwogICAgIEZyYW1lKiBsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50
KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByZWZlcnJl
cik7Ci0gICAgYm9vbCBsb2FkUGx1Z2luKEhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsCisgICAgYm9vbCBsb2FkUGx1Z2luKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwKICAgICAg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VGYWxsYmFjayk7CiAKICAgICBib29sIHNob3VsZFVzZVBs
dWdpbihjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBoYXNGYWxsYmFj
aywgYm9vbCYgdXNlRmFsbGJhY2spOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwCmluZGV4IDc0YzZlOTFjYWQxYTJiYzYxNzMwNjVjNjg3YmU3ZTczYzRhNjUzYTMu
LmIxYjI1M2ExODY0ZWNjMDNjNmE3NDZkNDA0ZTQ1YzM5MTI5MGE5NTAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTI1NSw3ICsyNTUsNyBAQCBzdGF0
aWMgdm9pZCBwYXJhbWV0ZXJzRnJvbU9iamVjdChIVE1MT2JqZWN0RWxlbWVudCogb2JqZWN0RWxl
bWVudCwgVmVjdG9yPFN0cmluZwogLy8gRklYTUU6IFRoaXMgYmVsb25ncyBvbiBIVE1MT2JqZWN0
RWxlbWVudCwgSFRNTFBsdWdpbkVsZW1lbnQgb3IgSFRNTEZyYW1lT3duZXJFbGVtZW50Lgogc3Rh
dGljIHZvaWQgdXBkYXRlV2lkZ2V0Rm9yT2JqZWN0RWxlbWVudChIVE1MT2JqZWN0RWxlbWVudCog
b2JqZWN0RWxlbWVudCwgYm9vbCBvbmx5Q3JlYXRlTm9uTmV0c2NhcGVQbHVnaW5zKQogewotICAg
IG9iamVjdEVsZW1lbnQtPnNldE5lZWRXaWRnZXRVcGRhdGUoZmFsc2UpOworICAgIG9iamVjdEVs
ZW1lbnQtPnNldE5lZWRzV2lkZ2V0VXBkYXRlKGZhbHNlKTsKICAgICBpZiAoIW9iamVjdEVsZW1l
bnQtPmlzRmluaXNoZWRQYXJzaW5nQ2hpbGRyZW4oKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0z
MTEsNyArMzExLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlV2lkZ2V0Rm9yRW1iZWRFbGVtZW50KEhU
TUxFbWJlZEVsZW1lbnQqIGVtYmVkRWxlbWVudCwgYm9vbCBvbmwKICAgICBTdHJpbmcgdXJsID0g
ZW1iZWRFbGVtZW50LT51cmwoKTsKICAgICBTdHJpbmcgc2VydmljZVR5cGUgPSBlbWJlZEVsZW1l
bnQtPnNlcnZpY2VUeXBlKCk7CiAKLSAgICBlbWJlZEVsZW1lbnQtPnNldE5lZWRXaWRnZXRVcGRh
dGUoZmFsc2UpOworICAgIGVtYmVkRWxlbWVudC0+c2V0TmVlZHNXaWRnZXRVcGRhdGUoZmFsc2Up
OwogCiAgICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgc2VydmljZVR5cGUuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47Cg==
</data>
<flag name="review"
          id="55210"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="55297"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>