<?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>111029</bug_id>
          
          <creation_ts>2013-02-27 18:42:13 -0800</creation_ts>
          <short_desc>[css exclusions] Dynamically removing shape-inside should cause relayout of child blocks&apos; inline content</short_desc>
          <delta_ts>2013-05-16 11:24:54 -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>CSS</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>108128</dependson>
    
    <dependson>110995</dependson>
          <blocked>89256</blocked>
    
    <blocked>116236</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>843642</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-02-27 18:42:13 -0800</bug_when>
    <thetext>This is the second half of bug 108128, which covers the case of adding a shape-inside dynamically. Removing a shape-inside requires bug 110995 to land, because it will require keeping the ExclusionShapeInsideInfo around for one more layout after the shape inside style has been removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856093</commentid>
    <comment_count>1</comment_count>
      <attachid>193335</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-03-15 10:39:10 -0700</bug_when>
    <thetext>Created attachment 193335
Testcase

Adding test case. Text lays out based on the old shape-inside even after it has been removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861994</commentid>
    <comment_count>2</comment_count>
      <attachid>194659</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-03-22 17:04:41 -0700</bug_when>
    <thetext>Created attachment 194659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861997</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 17:08:23 -0700</bug_when>
    <thetext>Attachment 194659 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/exclusions/shape-inside/shape-inside-dynamic-nested-expected.html&apos;, u&apos;LayoutTests/fast/exclusions/shape-inside/shape-inside-dynamic-nested.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeInsideInfo.h&apos;, u&apos;Source/WebCore/rendering/LayoutState.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderBlockLineLayout.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFlexibleBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderGrid.cpp&apos;]&quot; exit_code: 1
Source/WebCore/ChangeLog:17:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862004</commentid>
    <comment_count>4</comment_count>
      <attachid>194661</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-03-22 17:14:00 -0700</bug_when>
    <thetext>Created attachment 194661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864818</commentid>
    <comment_count>5</comment_count>
      <attachid>194661</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-27 13:31:12 -0700</bug_when>
    <thetext>Comment on attachment 194661
Patch

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

Patch looks fine. I&apos;d just prefer enums instead of boolean arguments, since it makes the call sites clearer.

&gt; Source/WebCore/rendering/RenderBlock.cpp:1421
&gt; +        info = block-&gt;layoutExclusionShapeInsideInfo(true);

Use an enum here. Nobody is going to know what &quot;true&quot; means.

&gt; Source/WebCore/rendering/RenderBlock.h:455
&gt; +    ExclusionShapeInsideInfo* exclusionShapeInsideInfo(bool includeRemoved = false) const

enum.

&gt; Source/WebCore/rendering/RenderBlock.h:467
&gt; +    ExclusionShapeInsideInfo* layoutExclusionShapeInsideInfo(bool includeRemoved = false) const;

enum.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:80
&gt; +ExclusionShapeInsideInfo* RenderBlock::layoutExclusionShapeInsideInfo(bool includeRemoved) const

enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864976</commentid>
    <comment_count>6</comment_count>
      <attachid>195432</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-03-27 16:37:56 -0700</bug_when>
    <thetext>Created attachment 195432
Changing bool to enum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866244</commentid>
    <comment_count>7</comment_count>
      <attachid>195766</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-03-29 11:06:44 -0700</bug_when>
    <thetext>Created attachment 195766
Updating to trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867260</commentid>
    <comment_count>8</comment_count>
      <attachid>195766</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-04-01 11:58:06 -0700</bug_when>
    <thetext>Comment on attachment 195766
Updating to trunk

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869376</commentid>
    <comment_count>9</comment_count>
      <attachid>195766</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-04 14:42:36 -0700</bug_when>
    <thetext>Comment on attachment 195766
Updating to trunk

Setting CQ.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869380</commentid>
    <comment_count>10</comment_count>
      <attachid>195766</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-04 14:50:57 -0700</bug_when>
    <thetext>Comment on attachment 195766
Updating to trunk

Rejecting attachment 195766 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
onShapeInsideInfo.h:105: error: &apos;bool WebCore::ExclusionShapeInsideInfo::needsRemoval()&apos; is protected
../../Source/WebCore/rendering/RenderBlock.cpp:1475: error: within this context
ninja: build stopped: subcommand failed.

Failed to run &quot;[&apos;Tools/Scripts/build-webkit&apos;, &apos;--release&apos;, &apos;--chromium&apos;, &apos;--update-chromium&apos;]&quot; exit_code: 1
nShapeInsideInfo::needsRemoval()&apos; is protected
../../Source/WebCore/rendering/RenderBlock.cpp:1475: error: within this context
ninja: build stopped: subcommand failed.

Full output: http://webkit-commit-queue.appspot.com/results/17473153</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869404</commentid>
    <comment_count>11</comment_count>
      <attachid>196542</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-04 15:37:07 -0700</bug_when>
    <thetext>Created attachment 196542
Updated Patch

Previous patch no longer applied cleanly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869405</commentid>
    <comment_count>12</comment_count>
      <attachid>196543</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-04 15:37:59 -0700</bug_when>
    <thetext>Created attachment 196543
Fixing MIME type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869845</commentid>
    <comment_count>13</comment_count>
      <attachid>196543</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-05 10:28:50 -0700</bug_when>
    <thetext>Comment on attachment 196543
Fixing MIME type

Clearing flags on attachment: 196543

Committed r147758: &lt;http://trac.webkit.org/changeset/147758&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869846</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-05 10:28:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>193335</attachid>
            <date>2013-03-15 10:39:10 -0700</date>
            <delta_ts>2013-03-15 10:39:10 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>remove-shape-test.html</filename>
            <type>text/html</type>
            <size>509</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgouc2hhcGUtaW5zaWRlIHsKICAg
IHdpZHRoOiAyMDBweDsKICAgIGhlaWdodDogMjAwcHg7CiAgICAtd2Via2l0LXNoYXBlLWluc2lk
ZTogcmVjdGFuZ2xlKDI1JSwgMjUlLCA1MCUsIDUwJSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCBi
bHVlOwp9Cjwvc3R5bGU+CjxzY3JpcHQ+CndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAg
IHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zaGFwZS1pbnNpZGUnKTsKICAgIGNv
bnNvbGUubG9nKGVsLm9mZnNldFRvcCk7CiAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLXdlYmtp
dC1zaGFwZS1pbnNpZGUnLCAnb3V0c2lkZS1zaGFwZScpOwp9Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxi
b2R5Pgo8ZGl2IGNsYXNzPSdzaGFwZS1pbnNpZGUnPjxkaXY+VGhpcyB0ZXh0IHNob3VsZCBiZSB1
cCBhZ2FpbnN0IHRoZSBibHVlIG91dGxpbmU8ZGl2PjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194659</attachid>
            <date>2013-03-22 17:04:41 -0700</date>
            <delta_ts>2013-03-22 17:13:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111029-20130322170027.patch</filename>
            <type>text/plain</type>
            <size>21595</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQ1OWEwNjNhM2YyNDll
NjY2Y2QyZDgyNWVlNTg3OTQ3MTQ1YTgwZS4uZWQ4ZjQ5NWVhZDNmNzg0NmRiYjUwOGJhZDZkNmIx
YjZlMjY2YjFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAzLTIyICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNd
IER5bmFtaWNhbGx5IHJlbW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVsYXlvdXQg
b2YgY2hpbGQgYmxvY2tzJyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlc2VydmUgYSByZW1vdmVkIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyBmb3Igb25lIGFkZGl0aW9uYWwgbGF5b3V0IHBhc3MKKyAgICAgICAgc28gdGhh
dCBpdCBjYW4gbm90aWZ5IGRlc2NlbmRhbnQgaW5saW5lIGNvbnRlbnQgdG8gcmVsYXlvdXQuIFRo
aXMgcGF0Y2ggYWRkcworICAgICAgICBhIG5ldyAnbmVlZHNSZW1vdmFsJyBib29sZWFuIHRvIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbywgd2hpY2ggaXMgc2V0IHdoZW4KKyAgICAgICAgYSBzdHls
ZSBjaGFuZ2UgcmVtb3ZlcyBidXQgZG9lcyBub3QgcmVwbGFjZSBhIHNoYXBlLWluc2lkZS4gV2hl
biBkZXRlcm1pbmluZworICAgICAgICB3aGV0aGVyIGEgYmxvY2sgbmVlZHMgdG8gcmVsYXlvdXQg
aW5saW5lIGNoaWxkcmVuLCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9zIHdpdGgKKyAgICAgICAg
dGhlIG5lZWRzUmVtb3ZhbCBib29sZWFuIHNldCBhcmUgaW5jbHVkZWQsIGJ1dCBhdCBvdGhlciB0
aW1lcyAoc3VjaCBhcyBkdXJpbmcKKyAgICAgICAgaW5saW5lIGxheW91dCksIHRoZXkgYXJlIGln
bm9yZWQuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gdGhlIGV4aXN0aW5nIGR5bmFtaWMgc2hh
cGUgdGVzdGZpbGU6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvOjpzZXROZWVkc1JlbW92YWwpOiBHZXQvU2V0IHRoZQorICAgICAgICBuZWVkc1Jl
bW92YWwgYm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
bzo6bmVlZHNSZW1vdmFsKTogRGl0dG8uCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8pOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8pOgorICAgICAgICBJbml0aWFsaXplIHRoZSBuZWVkc1JlbW92YWwg
Ym9vbGVhbi4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTogUHJvcGFnYXRlIHJlbW92ZWQgc2hh
cGUgaW5zaWRlcworICAgICAgICBmb3IgbGF5b3V0IGNvcnJlY3RseS4gWW91IG9ubHkgbmVlZCB0
byB0cmFjayBvbmUgYXQgYSB0aW1lLCBhbmQgYQorICAgICAgICByZW1vdmVkIHNoYXBlIGluc2lk
ZSBzaG91bGQgbm90IHRha2UgcHJlY2VkZW5jZSBvdmVyIGEgc2V0IHNoYXBlLWluc2lkZS4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Up
OgorICAgICAgICBTZXQgdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBuZWVkc1JlbW92YWwg
Ym9vbGVhbiwgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkKKyAgICAgICAgcmVtb3ZpbmcgdGhlIGlu
Zm8uCisgICAgICAgIChXZWJDb3JlOjpleGNsdXNpb25JbmZvUmVxdWlyZXNSZWxheW91dCk6IEFj
Y291bnQgZm9yIHRoZSBuZWVkc1JlbW92YWwKKyAgICAgICAgYm9vbGVhbiBhcyBhbm90aGVyIHdh
eSBvZiByZXF1aXJpbmcgcmVsYXlvdXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dCk6CisgICAgICAgIExv
b2sgdXAgd2hldGhlciBhbiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gaGFzIGJlZW4gcmVtb3Zl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVz
aW9uc0FmdGVyQ2hpbGRMYXlvdXQpOgorICAgICAgICBSZW1vdmUgYW55IEV4Y2x1c2lvblNoYXBl
SW5zaWRlcyBtYXJrZWQgZm9yIHJlbW92YWwgYWZ0ZXIgYSBsYXlvdXQgcGFzcy4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKTog
Q2FsbCB0aGUgbmV3IHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zCisgICAgICAgIEJlZm9yZS9B
ZnRlciBtZXRob2RzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IEZpbHRl
ciB0aGUgcmVzdWx0IGJhc2VkCisgICAgICAgIG9uIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUg
cmVtb3ZlZCBpbmZvcy4KKyAgICAgICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOiBEaXR0by4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOiAKKyAgICAgICAg
U2FtZSBhcyBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2suCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94
OjpsYXlvdXRCbG9jayk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKTogRGl0dG8uCisK
IDIwMTMtMDMtMjIgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5j
b20+CiAKICAgICAgICAgW1F0XSBOZXcgZmFzdC90ZXh0L3dvcmQtc3BhY2Utd2l0aC1rZXJuaW5n
LTMuaHRtbCBmYWlscyBvbiBRdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uaAppbmRleCA3MDAwOWE2NmQwM2Q5NmFiYzJhNTkyOWQ3
ODAxNWYxZTQ3NjBlMDU1Li43ZjhiZGVhYTIyZGQ1MzY5OWU2YmEyODBiNThiMzgyNGQ1NjcxM2Fh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBj
b21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5l
SGVpZ2h0KSBPVkVSUklERQogICAgIHsKKyAgICAgICAgQVNTRVJUKCFuZWVkc1JlbW92YWwoKSk7
CiAgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOwogICAgICAgICByZXR1cm4gRXhjbHVz
aW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29sdmVkU2hhcGVJbnNp
ZGUsICZFeGNsdXNpb25TaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHM+Ojpjb21wdXRlU2VnbWVu
dHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOwogICAgIH0KQEAgLTk3LDE0ICs5OCwxOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc0xheW91dChib29sIHZhbHVlKSB7IG1fbmVlZHNM
YXlvdXQgPSB2YWx1ZTsgfQogICAgIGJvb2wgbmVlZHNMYXlvdXQoKSB7IHJldHVybiBtX25lZWRz
TGF5b3V0OyB9CiAKKyAgICB2b2lkIHNldE5lZWRzUmVtb3ZhbChib29sIHZhbHVlKSB7IG1fbmVl
ZHNSZW1vdmFsID0gdmFsdWU7IH0KKyAgICBib29sIG5lZWRzUmVtb3ZhbCgpIHsgcmV0dXJuIG1f
bmVlZHNSZW1vdmFsOyB9CisKIHByaXZhdGU6CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlcikKICAgICA6IEV4Y2x1c2lvblNoYXBlSW5mbzxS
ZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhjbHVzaW9u
U2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPiAocmVuZGVyZXIpCiAgICAgLCBtX25lZWRzTGF5
b3V0KGZhbHNlKQorICAgICwgbV9uZWVkc1JlbW92YWwoZmFsc2UpCiAgICAgeyB9CiAKICAgICBT
ZWdtZW50UmFuZ2VMaXN0IG1fc2VnbWVudFJhbmdlczsKLSAgICBib29sIG1fbmVlZHNMYXlvdXQ7
CisgICAgYm9vbCBtX25lZWRzTGF5b3V0OjE7CisgICAgYm9vbCBtX25lZWRzUmVtb3ZhbDoxOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggOWM0
MTc2MDdlNjA5YTA2OTVlODU0MGUwZGNlODRiOGJkYTBiM2EwOS4uNzRjMDVkNzk3NmM2ZjBhYmZi
YWNlZjRkOGYzY2U5OWNkZWMzZmZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0
U3RhdGUuY3BwCkBAIC0xMTMsOSArMTEzLDE1IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShM
YXlvdXRTdGF0ZSogcHJldiwgUmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAj
aWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJCbG9j
aygpKSB7CiAgICAgICAgIGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJCbG9jayA9IHRvUmVuZGVy
QmxvY2socmVuZGVyZXIpOwotICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHJl
bmRlckJsb2NrLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKLSAgICAgICAgaWYgKCFtX2V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAmJiBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvICYmIHJlbmRlckJsb2NrLT5hbGxvd3NFeGNsdXNpb25TaGFwZUluc2lkZUluZm9TaGFyaW5n
KCkpCi0gICAgICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9l
eGNsdXNpb25TaGFwZUluc2lkZUluZm87CisgICAgICAgIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvID0gcmVuZGVyQmxvY2stPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0cnVlKTsKKyAgICAg
ICAgaWYgKG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgcmVuZGVyQmxvY2st
PmFsbG93c0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSkgeworICAgICAgICAgICAg
aWYgKCFtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykKKyAgICAgICAgICAgICAgICBtX2V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87
CisgICAgICAgICAgICBlbHNlIGlmIChtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bmVlZHNS
ZW1vdmFsKCkpIHsKKyAgICAgICAgICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9
IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87CisgICAgICAgICAgICAgICAgbV9l
eGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNldE5lZWRzTGF5b3V0KHRydWUpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IDM3YjEwM2UyZGQ3YTEyMmI3NDg5ZDFhNDVhNDM4YjgxMTRm
OTZlOTEuLjhmMTEwYWExN2JlZjU0ZDZmYTY4OTc2ZjI4ZWVlMDZjYzI4OTE4OWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTM5OSwxMSArMTM5OSwxMyBA
QCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0
eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvbgogICAgIGlmIChzaGFwZUluc2lkZSA9PSBvbGRTaGFw
ZUluc2lkZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KiBleGNsdXNpb25TaGFwZUluc2lkZUluZm87CiAgICAgaWYgKHNoYXBlSW5zaWRlKSB7Ci0gICAg
ICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0g
ZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyA9IGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgICAgICBl
eGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhudWxscHRyKTsKKyAgICAgICAgZXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zZXROZWVkc1JlbW92YWwoZmFsc2UpOworICAgIH0gZWxz
ZSBpZiAoKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyh0cnVlKSkpCisgICAgICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2V0TmVl
ZHNSZW1vdmFsKHRydWUpOwogfQogI2VuZGlmCiAKQEAgLTE0MTIsMTYgKzE0MTQsMTYgQEAgc3Rh
dGljIGlubGluZSBib29sIGV4Y2x1c2lvbkluZm9SZXF1aXJlc1JlbGF5b3V0KGNvbnN0IFJlbmRl
ckJsb2NrKiBibG9jaykKICNpZiAhRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIHJldHVybiBm
YWxzZTsKICNlbHNlCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBpbmZvID0gYmxvY2st
PmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byogaW5mbyA9IGJsb2NrLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8odHJ1ZSk7CiAgICAgaWYg
KGluZm8pCi0gICAgICAgIGluZm8tPnNldE5lZWRzTGF5b3V0KGluZm8tPnNoYXBlU2l6ZURpcnR5
KCkpOworICAgICAgICBpbmZvLT5zZXROZWVkc0xheW91dChpbmZvLT5zaGFwZVNpemVEaXJ0eSgp
IHx8IGluZm8tPm5lZWRzUmVtb3ZhbCgpKTsKICAgICBlbHNlCi0gICAgICAgIGluZm8gPSBibG9j
ay0+bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgICAgIGluZm8gPSBibG9j
ay0+bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKHRydWUpOwogICAgIHJldHVybiBpbmZv
ICYmIGluZm8tPm5lZWRzTGF5b3V0KCk7CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJCbG9jazo6
dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShSZW5kZXJGbG93VGhyZWFkKiBm
bG93VGhyZWFkKQorYm9vbCBSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNC
ZWZvcmVDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQogewogI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAoIWZsb3dUaHJlYWQgJiYgIWV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbygpKQpAQCAtMTQ2Myw2ICsxNDY1LDE2IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmNvbXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyQmxv
Y2s6OnVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQWZ0ZXJDaGlsZExheW91dChSZW5kZXJGbG93
VGhyZWFkKiBmbG93VGhyZWFkKQoreworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMt
PmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0cnVlKTsKKyAgICBpZiAoZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvICYmIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bmVlZHNSZW1vdmFsKCkpCisg
ICAgICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhudWxscHRyKTsKKyNlbmRpZgorICAg
IGNvbXB1dGVSZWdpb25SYW5nZUZvckJsb2NrKGZsb3dUaHJlYWQpOworfQorCiB2b2lkIFJlbmRl
ckJsb2NrOjpjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhSZW5kZXJGbG93VGhyZWFkKiBmbG93
VGhyZWFkKQogewogICAgIGlmIChmbG93VGhyZWFkKQpAQCAtMTU0Nyw3ICsxNTU5LDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRV
bml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0g
Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2Vk
SW5SZWdpb25zKGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsK
LSAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFk
KSkKKyAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChm
bG93VGhyZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICAvLyBX
ZSB1c2UgZm91ciB2YWx1ZXMsIG1heFRvcFBvcywgbWF4VG9wTmVnLCBtYXhCb3R0b21Qb3MsIGFu
ZCBtYXhCb3R0b21OZWcsIHRvIHRyYWNrCkBAIC0xNjEwLDcgKzE2MjIsNyBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFn
ZUxvZ2ljYWxIZWlnaAogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRDaGls
ZHJlbiB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93
VGhyZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQo
Zmxvd1RocmVhZCk7CiAKICAgICAvLyBBZGQgb3ZlcmZsb3cgZnJvbSBjaGlsZHJlbiAodW5sZXNz
IHdlJ3JlIG11bHRpLWNvbHVtbiwgc2luY2UgaW4gdGhhdCBjYXNlIGFsbCBvdXIgY2hpbGQgb3Zl
cmZsb3cgaXMgY2xpcHBlZCBhbnl3YXkpLgogICAgIGNvbXB1dGVPdmVyZmxvdyhvbGRDbGllbnRB
ZnRlckVkZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCAwNmVm
MzgzMDQzMDUxMWY2ODVkZTFjYzE0ZTNjZDZiNWIxMGNjN2M1Li5hYzA1MWVmNGM2MTZkMjA5YTg2
OTc3Mjg5YTk1OGMxNDE4MmY2NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaApAQCAtNDUyLDkgKzQ1MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzZXRFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8oRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjcmVhdGVJbmZvKHRo
aXMpKTsKICAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEtPm1fc2hhcGVJbnNpZGVJbmZvLmdldCgp
OwogICAgIH0KLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbygpIGNvbnN0CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25T
aGFwZUluc2lkZUluZm8oYm9vbCBpbmNsdWRlUmVtb3ZlZCA9IGZhbHNlKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEgJiYgbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUlu
Zm8gJiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IodGhpcykgPyBtX3Jh
cmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQoKSA6IDA7CisgICAgICAgIGlmICghbV9yYXJl
RGF0YSB8fCAhbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUluZm8pCisgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFbmFibGVk
Rm9yKHRoaXMpIHx8IGluY2x1ZGVSZW1vdmVkID8gbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUlu
Zm8uZ2V0KCkgOiAwOwogICAgIH0KICAgICB2b2lkIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byhQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gdmFsdWUpCiAgICAgewpAQCAt
NDYyLDcgKzQ2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0
cihuZXcgUmVuZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CiAgICAgICAgIG1fcmFyZURhdGEtPm1f
c2hhcGVJbnNpZGVJbmZvID0gdmFsdWU7CiAgICAgfQotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyogbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3Q7CisgICAgRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKiBsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oYm9vbCBp
bmNsdWRlUmVtb3ZlZCA9IGZhbHNlKSBjb25zdDsKICAgICBib29sIGFsbG93c0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mb1NoYXJpbmcoKSBjb25zdCB7IHJldHVybiAhaXNJbmxpbmUoKSAmJiAhaXNG
bG9hdGluZygpOyB9CiAjZW5kaWYKIApAQCAtNTczLDcgKzU3NSw4IEBAIHByb3RlY3RlZDoKICAg
ICB9CiAjZW5kaWYKIAotICAgIGJvb2wgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2Fs
U2l6ZShSZW5kZXJGbG93VGhyZWFkKik7CisgICAgYm9vbCB1cGRhdGVSZWdpb25zQW5kRXhjbHVz
aW9uc0JlZm9yZUNoaWxkTGF5b3V0KFJlbmRlckZsb3dUaHJlYWQqKTsKKyAgICB2b2lkIHVwZGF0
ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQWZ0ZXJDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFkKik7
CiAgICAgdm9pZCBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhSZW5kZXJGbG93VGhyZWFkKik7
CiAKICAgICB2b2lkIHVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZvcmVMYXlvdXQoYm9vbCBy
ZWxheW91dENoaWxkcmVuLCBSZW5kZXJCb3gqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggZGE1Njk2MjljZTJmNTc0ZjFm
NTA5NmVkNzI0YjAyMTMzMGU0MjRiOS4uMWE4MDUwZmJmOTRlMDA2YTAyNTBkODkyNmJjODZjZmE5
MDEzZjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAKQEAgLTc3LDE0ICs3NywyMCBAQCBzdGF0aWMgTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0Rm9yTGluZShjb25zdCBSZW5kZXJCbG9jayogYmxvY2ssIGJvb2wgaXNGaXJzdExp
bgogfQogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKiBSZW5kZXJCbG9jazo6bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3QK
K0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogUmVuZGVyQmxvY2s6OmxheW91dEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyhib29sIGluY2x1ZGVSZW1vdmVkKSBjb25zdAogewogICAgIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyogc2hhcGVJbnNpZGVJbmZvID0gdmlldygpLT5sYXlvdXRTdGF0ZSgp
LT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICBpZiAoc2hhcGVJbnNpZGVJbmZvICYm
IHNoYXBlSW5zaWRlSW5mby0+bmVlZHNSZW1vdmFsKCkgJiYgIWluY2x1ZGVSZW1vdmVkKQorICAg
ICAgICBzaGFwZUluc2lkZUluZm8gPSAwOworCiAgICAgaWYgKCFzaGFwZUluc2lkZUluZm8gJiYg
Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpKSB7CiAgICAgICAgIExheW91dFVuaXQgb2Zmc2V0
ID0gbG9naWNhbEhlaWdodCgpICsgbG9naWNhbEhlaWdodEZvckxpbmUodGhpcywgZmFsc2UpOwog
ICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHJlZ2lvbkF0QmxvY2tPZmZzZXQob2Zmc2V0
KTsKLSAgICAgICAgcmV0dXJuIHJlZ2lvbiA/IHJlZ2lvbi0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKCkgOiAwOworICAgICAgICBpZiAocmVnaW9uKQorICAgICAgICAgICAgc2hhcGVJbnNpZGVJ
bmZvID0gcmVnaW9uLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAgICAgcmV0dXJu
IHNoYXBlSW5zaWRlSW5mbyAmJiBzaGFwZUluc2lkZUluZm8tPm5lZWRzUmVtb3ZhbCgpICYmICFp
bmNsdWRlUmVtb3ZlZCA/IDAgOiBzaGFwZUluc2lkZUluZm87CiAgICAgfQorCiAgICAgcmV0dXJu
IHNoYXBlSW5zaWRlSW5mbzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA3NmI5MDc4
MTI4ZWVmNDM3NzI4MWQwYzNlNzNjOTczMDVkMDQ0YjE0Li5jYTNmMzc4N2ZhMTJiNmNlY2JlNGQx
M2E2ZDVmMjVjMzNiMjE3YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5
b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVh
ZCA9IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAobG9naWNhbFdpZHRoQ2hh
bmdlZEluUmVnaW9ucyhmbG93VGhyZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRy
dWU7Ci0gICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoZmxvd1Ro
cmVhZCkpCisgICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQmVmb3JlQ2hpbGRMYXlv
dXQoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogCiAgICAg
TGF5b3V0U2l6ZSBwcmV2aW91c1NpemUgPSBzaXplKCk7CkBAIC0yOTYsNyArMjk2LDcgQEAgdm9p
ZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5
b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxv
Y2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxk
TGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAgaWYgKCFpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3Np
dGlvbmVkKCkgJiYgaGVpZ2h0KCkgPT0gMCkgewogICAgICAgICAvLyBXZSBhcmUgYSBibG9jayB3
aXRoIG5vIGJvcmRlciBhbmQgcGFkZGluZyBhbmQgYSBjb21wdXRlZCBoZWlnaHQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDU5MzUzNmRk
YjMzZWNmYzgwN2YyZTNkYjAzMjc5NGI4ZGEzN2IzZGEuLjEwYjRhMDU3YmY4OTM4NTk2NjdiYTgy
OGU4MGU0ZDZjYWMzNGEyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVC
b3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBS
ZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygp
OwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdpb25zKGZsb3dUaHJlYWQpKQogICAg
ICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4
Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAgICBpZiAodXBkYXRlUmVnaW9uc0Fu
ZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhyZWFkKSkKICAgICAgICAgcmVsYXlv
dXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBtX251bWJlck9mSW5GbG93Q2hpbGRyZW5PbkZpcnN0
TGluZSA9IC0xOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6Omxh
eW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIGxheW91
dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAg
Y29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9u
c0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAgcmVwYWlu
dENoaWxkcmVuRHVyaW5nTGF5b3V0SWZNb3ZlZChvbGRDaGlsZFJlY3RzKTsKICAgICAvLyBGSVhN
RTogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sIHNlZW1zIHRvIHJlcGFpbnQg
bW9yZSBvdmVyZmxvdyB0aGFuIGl0IG5lZWRzIHRvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCmluZGV4IDI2ZjRjNWUwNDQ1YmYyMzE2NWFjNDU3NDZiMzRmNjM2ZGQ5YWNm
MDYuLjc0ZjM0OGQwNjI0OWVlZGM0MWQyNmYyZWE4OWM2ZTljMGVjN2VmZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFJl
bmRlckdyaWQ6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkK
ICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdC
bG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdpb25zKGZsb3dUaHJlYWQp
KQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBpZiAodXBkYXRlUmVnaW9u
c0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAgICBpZiAodXBkYXRlUmVn
aW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhyZWFkKSkKICAgICAgICAg
cmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBMYXlvdXRTaXplIHByZXZpb3VzU2l6ZSA9
IHNpemUoKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEJsb2Nr
KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIGxheW91dFBvc2l0aW9u
ZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAgY29tcHV0ZVJl
Z2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1
c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAgY29tcHV0ZU92ZXJmbG93
KG9sZENsaWVudEFmdGVyRWRnZSk7CiAgICAgc3RhdGVQdXNoZXIucG9wKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZk
Y2FmMGQ4YTA2MzcwZGE3NDVhNGVkNTIyOGFlYWZhNzZhYzVlYi4uOWU0ODhmMzRlNGJkYjE2OTE3
ZTJhY2MwOGYyMDk1OTE2ODM5ZDI4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTIy
ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1
c2lvbnNdIER5bmFtaWNhbGx5IHJlbW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVs
YXlvdXQgb2YgY2hpbGQgYmxvY2tzJyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IHJlbW92ZWQgc2hhcGUtaW5z
aWRlcyBjb3JyZWN0bHkgY2F1c2UgcmVsYXlvdXQgaW4gdGhlaXIgYmxvY2tzJworICAgICAgICBp
bmxpbmUgY29udGVudC4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRt
bDoKKwogMjAxMy0wMy0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRp
Z2lhLmNvbT4KIAogICAgICAgICBbUXRdIE5ldyBmYXN0L3RleHQvd29yZC1zcGFjZS13aXRoLWtl
cm5pbmctMy5odG1sIGZhaWxzIG9uIFF0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWwKaW5kZXggMTBlNTZjZWRlMWRiOTQw
MzkwM2NmNjgwOTRmM2YyNmZlZjZkMzk0Yy4uMDcxNmQyMWMxM2RhZjA2ZDQ5NWE1NzE2ZGU3Zjlj
YjZhOWU1ZDg0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5h
bWljLW5lc3RlZC1leHBlY3RlZC5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgIGNvbG9y
OiBncmVlbjsKICAgICB9CiAgICAgLmNvbnRhaW5lci5zaGFwZSB7Ci0gICAgICAgIGJvcmRlci1j
b2xvcjogd2hpdGU7CisgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICB9CiAgICAgLnNoYXBlOjpi
ZWZvcmUgewogICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CkBAIC00NCwxMCArNDQsMTkgQEAK
ICAgICA8cD5TZXR0aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CiAgICAg
PGRpdiBpZD0ncmVzZXQtaW5zaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lk
ZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNldHRp
bmcgb3V0c2lkZS1zaGFwZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlJlbW92aW5n
IHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0ncmVtb3Zl
LWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rp
dj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92aW5nIGEgbmVzdGVkIHNoYXBlLWluc2lkZTwv
cD4KKyAgICA8ZGl2IGlkPSdyZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRh
aW5lciBzaGFwZSBpbnNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+
CisKKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4K
ICAgICA8ZGl2IGlkPSdzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBv
dXRzaWRlJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgogCi0gICAgPHA+
U2V0dGluZyBvdXRzaWRlLXNoYXBlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8cD5TZXR0
aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgogICAgIDxkaXYgaWQ9J3Jl
c2V0LW91dHNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgb3V0c2lkZSc+PGRpdj48
ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92aW5nIHNoYXBl
LW91dHNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3JlbW92ZS1vdXRz
aWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2Pjwv
ZGl2PjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sCmluZGV4IGY2
MWU3OTdlNTZiZGQ1ZWY4MzdiYTAzNzRjMmYzNGQ1NjMwMDRiMTUuLjNlNmY2N2Y5M2I2MTMwOWFh
NmExN2E0NzAxNzFjM2RiNjNlMzBlYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
ZHluYW1pYy1uZXN0ZWQuaHRtbApAQCAtMTYsMTAgKzE2LDE5IEBACiAgICAgICAgIGVsLnNldEF0
dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNoYXBlIGluc2lkZScpOwogICAgICAgICBlbCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1pbnNpZGUtc2hhcGUnKTsKICAgICAgICAg
ZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXIgc2hhcGUgaW5zaWRlJyk7CisKKyAg
ICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlLWluc2lkZS1zaGFwZScp
OworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2NvbnRhaW5lcicpOworICAgICAg
ICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFw
ZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJycpOworCiAgICAgICAgIGVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NldC1vdXRzaWRlLXNoYXBlJyk7CiAgICAgICAg
IGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNoYXBlIG91dHNpZGUnKTsKICAg
ICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtb3V0c2lkZS1zaGFwZScp
OwogICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2NvbnRhaW5lciBzaGFwZSBvdXRz
aWRlJyk7CisKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlLW91
dHNpZGUtc2hhcGUnKTsKKyAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWlu
ZXInKTsKICAgICB9CiA8L3NjcmlwdD4KIDxzdHlsZT4KQEAgLTMzLDcgKzQyLDcgQEAKICAgICAg
ICAgY29sb3I6IGdyZWVuOwogICAgIH0KICAgICAuY29udGFpbmVyLnNoYXBlIHsKLSAgICAgICAg
Ym9yZGVyLWNvbG9yOiB3aGl0ZTsKKyAgICAgICAgYm9yZGVyOiBub25lOwogICAgIH0KICAgICAu
c2hhcGU6OmJlZm9yZSB7CiAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKQEAgLTY3LDEwICs3
NiwxOSBAQAogICAgIDxwPlNldHRpbmcgc2hhcGUtaW5zaWRlIHdpdGggYSBwcmlvciBlbnRyeTwv
cD4KICAgICA8ZGl2IGlkPSdyZXNldC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hh
cGUgaW5zaWRlLWFsdCc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAot
ICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAg
IDxwPlJlbW92aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRp
diBpZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUn
PjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5SZW1vdmlu
ZyBhIG5lc3RlZCBzaGFwZS1pbnNpZGU8L3A+CisgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyIHNo
YXBlIGluc2lkZSc+PGRpdiBpZD0ncmVtb3ZlLW5lc3RlZC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdj
b250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9k
aXY+CisKKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwv
cD4KICAgICA8ZGl2IGlkPSdzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRp
dj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+CiAKLSAgICA8cD5TZXR0aW5nIG91dHNpZGUtc2hhcGUg
d2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlNldHRpbmcgc2hhcGUtb3V0c2lkZSB3aXRo
IGEgcHJpb3IgZW50cnk8L3A+CiAgICAgPGRpdiBpZD0ncmVzZXQtb3V0c2lkZS1zaGFwZScgY2xh
c3M9J2NvbnRhaW5lcicgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlLWFsdCc+PGRpdj54
eHh4eHh4eHh4PC9kaXY+PC9kaXY+CisKKyAgICA8cD5SZW1vdmluZyBzaGFwZS1vdXRzaWRlIHdp
dGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdyZW1vdmUtb3V0c2lkZS1zaGFwZScg
Y2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rp
dj4KIDwvYm9keT4KIDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194661</attachid>
            <date>2013-03-22 17:14:00 -0700</date>
            <delta_ts>2013-03-27 16:37:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111029-20130322170947.patch</filename>
            <type>text/plain</type>
            <size>21592</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQ1OWEwNjNhM2YyNDll
NjY2Y2QyZDgyNWVlNTg3OTQ3MTQ1YTgwZS4uMmE2YzdkN2I0ODRhMjZmMmY4OGMwNDEzOGE3NDYx
ZmMxOGI5YzdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAzLTIyICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNd
IER5bmFtaWNhbGx5IHJlbW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVsYXlvdXQg
b2YgY2hpbGQgYmxvY2tzJyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlc2VydmUgYSByZW1vdmVkIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyBmb3Igb25lIGFkZGl0aW9uYWwgbGF5b3V0IHBhc3MKKyAgICAgICAgc28gdGhh
dCBpdCBjYW4gbm90aWZ5IGRlc2NlbmRhbnQgaW5saW5lIGNvbnRlbnQgdG8gcmVsYXlvdXQuIFRo
aXMgcGF0Y2ggYWRkcworICAgICAgICBhIG5ldyAnbmVlZHNSZW1vdmFsJyBib29sZWFuIHRvIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbywgd2hpY2ggaXMgc2V0IHdoZW4KKyAgICAgICAgYSBzdHls
ZSBjaGFuZ2UgcmVtb3ZlcyBidXQgZG9lcyBub3QgcmVwbGFjZSBhIHNoYXBlLWluc2lkZS4gV2hl
biBkZXRlcm1pbmluZworICAgICAgICB3aGV0aGVyIGEgYmxvY2sgbmVlZHMgdG8gcmVsYXlvdXQg
aW5saW5lIGNoaWxkcmVuLCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9zIHdpdGgKKyAgICAgICAg
dGhlIG5lZWRzUmVtb3ZhbCBib29sZWFuIHNldCBhcmUgaW5jbHVkZWQsIGJ1dCBhdCBvdGhlciB0
aW1lcyAoc3VjaCBhcyBkdXJpbmcKKyAgICAgICAgaW5saW5lIGxheW91dCksIHRoZXkgYXJlIGln
bm9yZWQuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gdGhlIGV4aXN0aW5nIGR5bmFtaWMgc2hh
cGUgdGVzdGZpbGUKKyAgICAgICAgZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjpzZXROZWVkc1JlbW92YWwpOiBHZXQvU2V0IHRoZQorICAgICAgICBuZWVkc1JlbW92
YWwgYm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
bmVlZHNSZW1vdmFsKTogRGl0dG8uCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lkZUluZm8p
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8pOgorICAgICAgICBJbml0aWFsaXplIHRoZSBuZWVkc1JlbW92YWwgYm9v
bGVhbi4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTogUHJvcGFnYXRlIHJlbW92ZWQgc2hhcGUg
aW5zaWRlcworICAgICAgICBmb3IgbGF5b3V0IGNvcnJlY3RseS4gWW91IG9ubHkgbmVlZCB0byB0
cmFjayBvbmUgYXQgYSB0aW1lLCBhbmQgYQorICAgICAgICByZW1vdmVkIHNoYXBlIGluc2lkZSBz
aG91bGQgbm90IHRha2UgcHJlY2VkZW5jZSBvdmVyIGEgc2V0IHNoYXBlLWluc2lkZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOgor
ICAgICAgICBTZXQgdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBuZWVkc1JlbW92YWwgYm9v
bGVhbiwgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkKKyAgICAgICAgcmVtb3ZpbmcgdGhlIGluZm8u
CisgICAgICAgIChXZWJDb3JlOjpleGNsdXNpb25JbmZvUmVxdWlyZXNSZWxheW91dCk6IEFjY291
bnQgZm9yIHRoZSBuZWVkc1JlbW92YWwKKyAgICAgICAgYm9vbGVhbiBhcyBhbm90aGVyIHdheSBv
ZiByZXF1aXJpbmcgcmVsYXlvdXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBk
YXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dCk6CisgICAgICAgIExvb2sg
dXAgd2hldGhlciBhbiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gaGFzIGJlZW4gcmVtb3ZlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9u
c0FmdGVyQ2hpbGRMYXlvdXQpOgorICAgICAgICBSZW1vdmUgYW55IEV4Y2x1c2lvblNoYXBlSW5z
aWRlcyBtYXJrZWQgZm9yIHJlbW92YWwgYWZ0ZXIgYSBsYXlvdXQgcGFzcy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKTogQ2Fs
bCB0aGUgbmV3IHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zCisgICAgICAgIEJlZm9yZS9BZnRl
ciBtZXRob2RzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IEZpbHRlciB0
aGUgcmVzdWx0IGJhc2VkCisgICAgICAgIG9uIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUgcmVt
b3ZlZCBpbmZvcy4KKyAgICAgICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOiAKKyAgICAgICAgU2Ft
ZSBhcyBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2suCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojps
YXlvdXRCbG9jayk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKTogRGl0dG8uCisKIDIw
MTMtMDMtMjIgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+
CiAKICAgICAgICAgW1F0XSBOZXcgZmFzdC90ZXh0L3dvcmQtc3BhY2Utd2l0aC1rZXJuaW5nLTMu
aHRtbCBmYWlscyBvbiBRdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uaAppbmRleCA3MDAwOWE2NmQwM2Q5NmFiYzJhNTkyOWQ3ODAx
NWYxZTQ3NjBlMDU1Li43ZjhiZGVhYTIyZGQ1MzY5OWU2YmEyODBiNThiMzgyNGQ1NjcxM2FhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mby5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjb21w
dXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KSBPVkVSUklERQogICAgIHsKKyAgICAgICAgQVNTRVJUKCFuZWVkc1JlbW92YWwoKSk7CiAg
ICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOwogICAgICAgICByZXR1cm4gRXhjbHVzaW9u
U2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29sdmVkU2hhcGVJbnNpZGUs
ICZFeGNsdXNpb25TaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHM+Ojpjb21wdXRlU2VnbWVudHNG
b3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOwogICAgIH0KQEAgLTk3LDE0ICs5OCwxOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc0xheW91dChib29sIHZhbHVlKSB7IG1fbmVlZHNMYXlv
dXQgPSB2YWx1ZTsgfQogICAgIGJvb2wgbmVlZHNMYXlvdXQoKSB7IHJldHVybiBtX25lZWRzTGF5
b3V0OyB9CiAKKyAgICB2b2lkIHNldE5lZWRzUmVtb3ZhbChib29sIHZhbHVlKSB7IG1fbmVlZHNS
ZW1vdmFsID0gdmFsdWU7IH0KKyAgICBib29sIG5lZWRzUmVtb3ZhbCgpIHsgcmV0dXJuIG1fbmVl
ZHNSZW1vdmFsOyB9CisKIHByaXZhdGU6CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKGNv
bnN0IFJlbmRlckJsb2NrKiByZW5kZXJlcikKICAgICA6IEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5k
ZXJCbG9jaywgJlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hh
cGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPiAocmVuZGVyZXIpCiAgICAgLCBtX25lZWRzTGF5b3V0
KGZhbHNlKQorICAgICwgbV9uZWVkc1JlbW92YWwoZmFsc2UpCiAgICAgeyB9CiAKICAgICBTZWdt
ZW50UmFuZ2VMaXN0IG1fc2VnbWVudFJhbmdlczsKLSAgICBib29sIG1fbmVlZHNMYXlvdXQ7Cisg
ICAgYm9vbCBtX25lZWRzTGF5b3V0OjE7CisgICAgYm9vbCBtX25lZWRzUmVtb3ZhbDoxOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggOWM0MTc2
MDdlNjA5YTA2OTVlODU0MGUwZGNlODRiOGJkYTBiM2EwOS4uNzRjMDVkNzk3NmM2ZjBhYmZiYWNl
ZjRkOGYzY2U5OWNkZWMzZmZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3Rh
dGUuY3BwCkBAIC0xMTMsOSArMTEzLDE1IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlv
dXRTdGF0ZSogcHJldiwgUmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygp
KSB7CiAgICAgICAgIGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJCbG9jayA9IHRvUmVuZGVyQmxv
Y2socmVuZGVyZXIpOwotICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHJlbmRl
ckJsb2NrLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKLSAgICAgICAgaWYgKCFtX2V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyAmJiBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
ICYmIHJlbmRlckJsb2NrLT5hbGxvd3NFeGNsdXNpb25TaGFwZUluc2lkZUluZm9TaGFyaW5nKCkp
Ci0gICAgICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNs
dXNpb25TaGFwZUluc2lkZUluZm87CisgICAgICAgIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
ID0gcmVuZGVyQmxvY2stPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0cnVlKTsKKyAgICAgICAg
aWYgKG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgcmVuZGVyQmxvY2stPmFs
bG93c0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSkgeworICAgICAgICAgICAgaWYg
KCFtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykKKyAgICAgICAgICAgICAgICBtX2V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87Cisg
ICAgICAgICAgICBlbHNlIGlmIChtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bmVlZHNSZW1v
dmFsKCkpIHsKKyAgICAgICAgICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1f
bmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87CisgICAgICAgICAgICAgICAgbV9leGNs
dXNpb25TaGFwZUluc2lkZUluZm8tPnNldE5lZWRzTGF5b3V0KHRydWUpOworICAgICAgICAgICAg
fQorICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCmluZGV4IDM3YjEwM2UyZGQ3YTEyMmI3NDg5ZDFhNDVhNDM4YjgxMTRmOTZl
OTEuLjhmMTEwYWExN2JlZjU0ZDZmYTY4OTc2ZjI4ZWVlMDZjYzI4OTE4OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTM5OSwxMSArMTM5OSwxMyBAQCB2
b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0eWxl
Q2hhbmdlKGNvbnN0IEV4Y2x1c2lvbgogICAgIGlmIChzaGFwZUluc2lkZSA9PSBvbGRTaGFwZUlu
c2lkZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBl
eGNsdXNpb25TaGFwZUluc2lkZUluZm87CiAgICAgaWYgKHNoYXBlSW5zaWRlKSB7Ci0gICAgICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gZW5z
dXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyA9IGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgICAgICBleGNs
dXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7Ci0gICAgfSBlbHNlCi0gICAg
ICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhudWxscHRyKTsKKyAgICAgICAgZXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLT5zZXROZWVkc1JlbW92YWwoZmFsc2UpOworICAgIH0gZWxzZSBp
ZiAoKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyh0cnVlKSkpCisgICAgICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2V0TmVlZHNS
ZW1vdmFsKHRydWUpOwogfQogI2VuZGlmCiAKQEAgLTE0MTIsMTYgKzE0MTQsMTYgQEAgc3RhdGlj
IGlubGluZSBib29sIGV4Y2x1c2lvbkluZm9SZXF1aXJlc1JlbGF5b3V0KGNvbnN0IFJlbmRlckJs
b2NrKiBibG9jaykKICNpZiAhRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIHJldHVybiBmYWxz
ZTsKICNlbHNlCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBpbmZvID0gYmxvY2stPmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyog
aW5mbyA9IGJsb2NrLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8odHJ1ZSk7CiAgICAgaWYgKGlu
Zm8pCi0gICAgICAgIGluZm8tPnNldE5lZWRzTGF5b3V0KGluZm8tPnNoYXBlU2l6ZURpcnR5KCkp
OworICAgICAgICBpbmZvLT5zZXROZWVkc0xheW91dChpbmZvLT5zaGFwZVNpemVEaXJ0eSgpIHx8
IGluZm8tPm5lZWRzUmVtb3ZhbCgpKTsKICAgICBlbHNlCi0gICAgICAgIGluZm8gPSBibG9jay0+
bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgICAgIGluZm8gPSBibG9jay0+
bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKHRydWUpOwogICAgIHJldHVybiBpbmZvICYm
IGluZm8tPm5lZWRzTGF5b3V0KCk7CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJCbG9jazo6dXBk
YXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShSZW5kZXJGbG93VGhyZWFkKiBmbG93
VGhyZWFkKQorYm9vbCBSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZv
cmVDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQogewogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAoIWZsb3dUaHJlYWQgJiYgIWV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbygpKQpAQCAtMTQ2Myw2ICsxNDY1LDE2IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNv
bXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyQmxvY2s6
OnVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQWZ0ZXJDaGlsZExheW91dChSZW5kZXJGbG93VGhy
ZWFkKiBmbG93VGhyZWFkKQoreworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0cnVlKTsKKyAgICBpZiAoZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvICYmIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bmVlZHNSZW1vdmFsKCkpCisgICAg
ICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhudWxscHRyKTsKKyNlbmRpZgorICAgIGNv
bXB1dGVSZWdpb25SYW5nZUZvckJsb2NrKGZsb3dUaHJlYWQpOworfQorCiB2b2lkIFJlbmRlckJs
b2NrOjpjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhy
ZWFkKQogewogICAgIGlmIChmbG93VGhyZWFkKQpAQCAtMTU0Nyw3ICsxNTU5LDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0
IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxv
d1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5S
ZWdpb25zKGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAg
ICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkK
KyAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93
VGhyZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICAvLyBXZSB1
c2UgZm91ciB2YWx1ZXMsIG1heFRvcFBvcywgbWF4VG9wTmVnLCBtYXhCb3R0b21Qb3MsIGFuZCBt
YXhCb3R0b21OZWcsIHRvIHRyYWNrCkBAIC0xNjEwLDcgKzE2MjIsNyBAQCB2b2lkIFJlbmRlckJs
b2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxv
Z2ljYWxIZWlnaAogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRDaGlsZHJl
biB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93VGhy
ZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoZmxv
d1RocmVhZCk7CiAKICAgICAvLyBBZGQgb3ZlcmZsb3cgZnJvbSBjaGlsZHJlbiAodW5sZXNzIHdl
J3JlIG11bHRpLWNvbHVtbiwgc2luY2UgaW4gdGhhdCBjYXNlIGFsbCBvdXIgY2hpbGQgb3ZlcmZs
b3cgaXMgY2xpcHBlZCBhbnl3YXkpLgogICAgIGNvbXB1dGVPdmVyZmxvdyhvbGRDbGllbnRBZnRl
ckVkZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCAwNmVmMzgz
MDQzMDUxMWY2ODVkZTFjYzE0ZTNjZDZiNWIxMGNjN2M1Li5hYzA1MWVmNGM2MTZkMjA5YTg2OTc3
Mjg5YTk1OGMxNDE4MmY2NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aApAQCAtNDUyLDkgKzQ1MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzZXRFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8oRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjcmVhdGVJbmZvKHRoaXMp
KTsKICAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEtPm1fc2hhcGVJbnNpZGVJbmZvLmdldCgpOwog
ICAgIH0KLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbygpIGNvbnN0CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFw
ZUluc2lkZUluZm8oYm9vbCBpbmNsdWRlUmVtb3ZlZCA9IGZhbHNlKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIG1fcmFyZURhdGEgJiYgbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUluZm8g
JiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IodGhpcykgPyBtX3JhcmVE
YXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQoKSA6IDA7CisgICAgICAgIGlmICghbV9yYXJlRGF0
YSB8fCAhbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUluZm8pCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFbmFibGVkRm9y
KHRoaXMpIHx8IGluY2x1ZGVSZW1vdmVkID8gbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUluZm8u
Z2V0KCkgOiAwOwogICAgIH0KICAgICB2b2lkIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhQ
YXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gdmFsdWUpCiAgICAgewpAQCAtNDYy
LDcgKzQ2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0cihu
ZXcgUmVuZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CiAgICAgICAgIG1fcmFyZURhdGEtPm1fc2hh
cGVJbnNpZGVJbmZvID0gdmFsdWU7CiAgICAgfQotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byogbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3Q7CisgICAgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKiBsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oYm9vbCBpbmNs
dWRlUmVtb3ZlZCA9IGZhbHNlKSBjb25zdDsKICAgICBib29sIGFsbG93c0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb1NoYXJpbmcoKSBjb25zdCB7IHJldHVybiAhaXNJbmxpbmUoKSAmJiAhaXNGbG9h
dGluZygpOyB9CiAjZW5kaWYKIApAQCAtNTczLDcgKzU3NSw4IEBAIHByb3RlY3RlZDoKICAgICB9
CiAjZW5kaWYKIAotICAgIGJvb2wgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6
ZShSZW5kZXJGbG93VGhyZWFkKik7CisgICAgYm9vbCB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9u
c0JlZm9yZUNoaWxkTGF5b3V0KFJlbmRlckZsb3dUaHJlYWQqKTsKKyAgICB2b2lkIHVwZGF0ZVJl
Z2lvbnNBbmRFeGNsdXNpb25zQWZ0ZXJDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFkKik7CiAg
ICAgdm9pZCBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhSZW5kZXJGbG93VGhyZWFkKik7CiAK
ICAgICB2b2lkIHVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZvcmVMYXlvdXQoYm9vbCByZWxh
eW91dENoaWxkcmVuLCBSZW5kZXJCb3gqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggZGE1Njk2MjljZTJmNTc0ZjFmNTA5
NmVkNzI0YjAyMTMzMGU0MjRiOS4uMWE4MDUwZmJmOTRlMDA2YTAyNTBkODkyNmJjODZjZmE5MDEz
ZjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKQEAgLTc3LDE0ICs3NywyMCBAQCBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0Rm9yTGluZShjb25zdCBSZW5kZXJCbG9jayogYmxvY2ssIGJvb2wgaXNGaXJzdExpbgog
fQogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KiBSZW5kZXJCbG9jazo6bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3QKK0V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogUmVuZGVyQmxvY2s6OmxheW91dEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyhib29sIGluY2x1ZGVSZW1vdmVkKSBjb25zdAogewogICAgIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyogc2hhcGVJbnNpZGVJbmZvID0gdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5l
eGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICBpZiAoc2hhcGVJbnNpZGVJbmZvICYmIHNo
YXBlSW5zaWRlSW5mby0+bmVlZHNSZW1vdmFsKCkgJiYgIWluY2x1ZGVSZW1vdmVkKQorICAgICAg
ICBzaGFwZUluc2lkZUluZm8gPSAwOworCiAgICAgaWYgKCFzaGFwZUluc2lkZUluZm8gJiYgZmxv
d1RocmVhZENvbnRhaW5pbmdCbG9jaygpKSB7CiAgICAgICAgIExheW91dFVuaXQgb2Zmc2V0ID0g
bG9naWNhbEhlaWdodCgpICsgbG9naWNhbEhlaWdodEZvckxpbmUodGhpcywgZmFsc2UpOwogICAg
ICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHJlZ2lvbkF0QmxvY2tPZmZzZXQob2Zmc2V0KTsK
LSAgICAgICAgcmV0dXJuIHJlZ2lvbiA/IHJlZ2lvbi0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KCkgOiAwOworICAgICAgICBpZiAocmVnaW9uKQorICAgICAgICAgICAgc2hhcGVJbnNpZGVJbmZv
ID0gcmVnaW9uLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAgICAgcmV0dXJuIHNo
YXBlSW5zaWRlSW5mbyAmJiBzaGFwZUluc2lkZUluZm8tPm5lZWRzUmVtb3ZhbCgpICYmICFpbmNs
dWRlUmVtb3ZlZCA/IDAgOiBzaGFwZUluc2lkZUluZm87CiAgICAgfQorCiAgICAgcmV0dXJuIHNo
YXBlSW5zaWRlSW5mbzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA3NmI5MDc4MTI4
ZWVmNDM3NzI4MWQwYzNlNzNjOTczMDVkMDQ0YjE0Li5jYTNmMzc4N2ZhMTJiNmNlY2JlNGQxM2E2
ZDVmMjVjMzNiMjE3YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZv
aWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0
Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9
IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAobG9naWNhbFdpZHRoQ2hhbmdl
ZEluUmVnaW9ucyhmbG93VGhyZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7
Ci0gICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoZmxvd1RocmVh
ZCkpCisgICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQmVmb3JlQ2hpbGRMYXlvdXQo
Zmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogCiAgICAgTGF5
b3V0U2l6ZSBwcmV2aW91c1NpemUgPSBzaXplKCk7CkBAIC0yOTYsNyArMjk2LDcgQEAgdm9pZCBS
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGls
ZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0
Q2hpbGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2so
Zmxvd1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5
b3V0KGZsb3dUaHJlYWQpOwogCiAgICAgaWYgKCFpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlv
bmVkKCkgJiYgaGVpZ2h0KCkgPT0gMCkgewogICAgICAgICAvLyBXZSBhcmUgYSBibG9jayB3aXRo
IG5vIGJvcmRlciBhbmQgcGFkZGluZyBhbmQgYSBjb21wdXRlZCBoZWlnaHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDU5MzUzNmRkYjMz
ZWNmYzgwN2YyZTNkYjAzMjc5NGI4ZGEzN2IzZGEuLjEwYjRhMDU3YmY4OTM4NTk2NjdiYTgyOGU4
MGU0ZDZjYWMzNGEyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6
OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBSZW5k
ZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwog
ICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdpb25zKGZsb3dUaHJlYWQpKQogICAgICAg
ICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1
c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4
Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhyZWFkKSkKICAgICAgICAgcmVsYXlvdXRD
aGlsZHJlbiA9IHRydWU7CiAKICAgICBtX251bWJlck9mSW5GbG93Q2hpbGRyZW5PbkZpcnN0TGlu
ZSA9IC0xOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91
dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIGxheW91dFBv
c2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAgY29t
cHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9uc0Fu
ZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAgcmVwYWludENo
aWxkcmVuRHVyaW5nTGF5b3V0SWZNb3ZlZChvbGRDaGlsZFJlY3RzKTsKICAgICAvLyBGSVhNRTog
Y3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sIHNlZW1zIHRvIHJlcGFpbnQgbW9y
ZSBvdmVyZmxvdyB0aGFuIGl0IG5lZWRzIHRvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwCmluZGV4IDI2ZjRjNWUwNDQ1YmYyMzE2NWFjNDU3NDZiMzRmNjM2ZGQ5YWNmMDYu
Ljc0ZjM0OGQwNjI0OWVlZGM0MWQyNmYyZWE4OWM2ZTljMGVjN2VmZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFJlbmRl
ckdyaWQ6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAg
ICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9j
aygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdpb25zKGZsb3dUaHJlYWQpKQog
ICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBpZiAodXBkYXRlUmVnaW9uc0Fu
ZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAgICBpZiAodXBkYXRlUmVnaW9u
c0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhyZWFkKSkKICAgICAgICAgcmVs
YXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBMYXlvdXRTaXplIHByZXZpb3VzU2l6ZSA9IHNp
emUoKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEJsb2NrKGJv
b2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIGxheW91dFBvc2l0aW9uZWRP
YmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAgY29tcHV0ZVJlZ2lv
blJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lv
bnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAgY29tcHV0ZU92ZXJmbG93KG9s
ZENsaWVudEFmdGVyRWRnZSk7CiAgICAgc3RhdGVQdXNoZXIucG9wKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZkY2Fm
MGQ4YTA2MzcwZGE3NDVhNGVkNTIyOGFlYWZhNzZhYzVlYi4uOWU0ODhmMzRlNGJkYjE2OTE3ZTJh
Y2MwOGYyMDk1OTE2ODM5ZDI4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTIyICBC
ZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lv
bnNdIER5bmFtaWNhbGx5IHJlbW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVsYXlv
dXQgb2YgY2hpbGQgYmxvY2tzJyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IHJlbW92ZWQgc2hhcGUtaW5zaWRl
cyBjb3JyZWN0bHkgY2F1c2UgcmVsYXlvdXQgaW4gdGhlaXIgYmxvY2tzJworICAgICAgICBpbmxp
bmUgY29udGVudC4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbDoK
KwogMjAxMy0wMy0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lh
LmNvbT4KIAogICAgICAgICBbUXRdIE5ldyBmYXN0L3RleHQvd29yZC1zcGFjZS13aXRoLWtlcm5p
bmctMy5odG1sIGZhaWxzIG9uIFF0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWwKaW5kZXggMTBlNTZjZWRlMWRiOTQwMzkw
M2NmNjgwOTRmM2YyNmZlZjZkMzk0Yy4uMDcxNmQyMWMxM2RhZjA2ZDQ5NWE1NzE2ZGU3ZjljYjZh
OWU1ZDg0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWlj
LW5lc3RlZC1leHBlY3RlZC5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgIGNvbG9yOiBn
cmVlbjsKICAgICB9CiAgICAgLmNvbnRhaW5lci5zaGFwZSB7Ci0gICAgICAgIGJvcmRlci1jb2xv
cjogd2hpdGU7CisgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICB9CiAgICAgLnNoYXBlOjpiZWZv
cmUgewogICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CkBAIC00NCwxMCArNDQsMTkgQEAKICAg
ICA8cD5TZXR0aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CiAgICAgPGRp
diBpZD0ncmVzZXQtaW5zaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+
PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNldHRpbmcg
b3V0c2lkZS1zaGFwZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlJlbW92aW5nIHNo
YXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0ncmVtb3ZlLWlu
c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48
L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92aW5nIGEgbmVzdGVkIHNoYXBlLWluc2lkZTwvcD4K
KyAgICA8ZGl2IGlkPSdyZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5l
ciBzaGFwZSBpbnNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisK
KyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4KICAg
ICA8ZGl2IGlkPSdzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRz
aWRlJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgogCi0gICAgPHA+U2V0
dGluZyBvdXRzaWRlLXNoYXBlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8cD5TZXR0aW5n
IHNoYXBlLW91dHNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgogICAgIDxkaXYgaWQ9J3Jlc2V0
LW91dHNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgb3V0c2lkZSc+PGRpdj48ZGl2
Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92aW5nIHNoYXBlLW91
dHNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3JlbW92ZS1vdXRzaWRl
LXNoYXBlJyBjbGFzcz0nY29udGFpbmVyJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2
PjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sCmluZGV4IGY2MWU3
OTdlNTZiZGQ1ZWY4MzdiYTAzNzRjMmYzNGQ1NjMwMDRiMTUuLjNlNmY2N2Y5M2I2MTMwOWFhNmEx
N2E0NzAxNzFjM2RiNjNlMzBlYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHlu
YW1pYy1uZXN0ZWQuaHRtbApAQCAtMTYsMTAgKzE2LDE5IEBACiAgICAgICAgIGVsLnNldEF0dHJp
YnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNoYXBlIGluc2lkZScpOwogICAgICAgICBlbCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1pbnNpZGUtc2hhcGUnKTsKICAgICAgICAgZWwu
c2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXIgc2hhcGUgaW5zaWRlJyk7CisKKyAgICAg
ICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlLWluc2lkZS1zaGFwZScpOwor
ICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2NvbnRhaW5lcicpOworICAgICAgICBl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFwZScp
OworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJycpOworCiAgICAgICAgIGVsID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NldC1vdXRzaWRlLXNoYXBlJyk7CiAgICAgICAgIGVs
LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNoYXBlIG91dHNpZGUnKTsKICAgICAg
ICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtb3V0c2lkZS1zaGFwZScpOwog
ICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2NvbnRhaW5lciBzaGFwZSBvdXRzaWRl
Jyk7CisKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlLW91dHNp
ZGUtc2hhcGUnKTsKKyAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXIn
KTsKICAgICB9CiA8L3NjcmlwdD4KIDxzdHlsZT4KQEAgLTMzLDcgKzQyLDcgQEAKICAgICAgICAg
Y29sb3I6IGdyZWVuOwogICAgIH0KICAgICAuY29udGFpbmVyLnNoYXBlIHsKLSAgICAgICAgYm9y
ZGVyLWNvbG9yOiB3aGl0ZTsKKyAgICAgICAgYm9yZGVyOiBub25lOwogICAgIH0KICAgICAuc2hh
cGU6OmJlZm9yZSB7CiAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKQEAgLTY3LDEwICs3Niwx
OSBAQAogICAgIDxwPlNldHRpbmcgc2hhcGUtaW5zaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4K
ICAgICA8ZGl2IGlkPSdyZXNldC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUg
aW5zaWRlLWFsdCc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAotICAg
IDxwPlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxw
PlJlbW92aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBp
ZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUnPjxk
aXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5SZW1vdmluZyBh
IG5lc3RlZCBzaGFwZS1pbnNpZGU8L3A+CisgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyIHNoYXBl
IGluc2lkZSc+PGRpdiBpZD0ncmVtb3ZlLW5lc3RlZC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdjb250
YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+
CisKKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4K
ICAgICA8ZGl2IGlkPSdzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRpdj54
eHh4eHh4eHh4PC9kaXY+PC9kaXY+CiAKLSAgICA8cD5TZXR0aW5nIG91dHNpZGUtc2hhcGUgd2l0
aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlNldHRpbmcgc2hhcGUtb3V0c2lkZSB3aXRoIGEg
cHJpb3IgZW50cnk8L3A+CiAgICAgPGRpdiBpZD0ncmVzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9
J2NvbnRhaW5lcicgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlLWFsdCc+PGRpdj54eHh4
eHh4eHh4PC9kaXY+PC9kaXY+CisKKyAgICA8cD5SZW1vdmluZyBzaGFwZS1vdXRzaWRlIHdpdGgg
YSBwcmlvciBlbnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdyZW1vdmUtb3V0c2lkZS1zaGFwZScgY2xh
c3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj4K
IDwvYm9keT4KIDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195432</attachid>
            <date>2013-03-27 16:37:56 -0700</date>
            <delta_ts>2013-03-29 11:06:40 -0700</delta_ts>
            <desc>Changing bool to enum</desc>
            <filename>bug-111029-20130327163754.patch</filename>
            <type>text/plain</type>
            <size>21898</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzgyMWFkZmIxZjRkZmRl
ZDVkMTY2NGRhNmIxMzQzNjUwMDE3NmNiZi4uNWFjMGM0ZWM3MmYzMGNhYzdkNDlmM2RlMzQyYzM5
YmY2MGJkZWQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAzLTI3ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNd
IER5bmFtaWNhbGx5IHJlbW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVsYXlvdXQg
b2YgY2hpbGQgYmxvY2tzJyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlc2VydmUgYSByZW1vdmVkIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyBmb3Igb25lIGFkZGl0aW9uYWwgbGF5b3V0IHBhc3MKKyAgICAgICAgc28gdGhh
dCBpdCBjYW4gbm90aWZ5IGRlc2NlbmRhbnQgaW5saW5lIGNvbnRlbnQgdG8gcmVsYXlvdXQuIFRo
aXMgcGF0Y2ggYWRkcworICAgICAgICBhIG5ldyAnbmVlZHNSZW1vdmFsJyBib29sZWFuIHRvIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbywgd2hpY2ggaXMgc2V0IHdoZW4KKyAgICAgICAgYSBzdHls
ZSBjaGFuZ2UgcmVtb3ZlcyBidXQgZG9lcyBub3QgcmVwbGFjZSBhIHNoYXBlLWluc2lkZS4gV2hl
biBkZXRlcm1pbmluZworICAgICAgICB3aGV0aGVyIGEgYmxvY2sgbmVlZHMgdG8gcmVsYXlvdXQg
aW5saW5lIGNoaWxkcmVuLCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9zIHdpdGgKKyAgICAgICAg
dGhlIG5lZWRzUmVtb3ZhbCBib29sZWFuIHNldCBhcmUgaW5jbHVkZWQsIGJ1dCBhdCBvdGhlciB0
aW1lcyAoc3VjaCBhcyBkdXJpbmcKKyAgICAgICAgaW5saW5lIGxheW91dCksIHRoZXkgYXJlIGln
bm9yZWQuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gdGhlIGV4aXN0aW5nIGR5bmFtaWMgc2hh
cGUgdGVzdGZpbGUKKyAgICAgICAgZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjpzZXROZWVkc1JlbW92YWwpOiBHZXQvU2V0IHRoZQorICAgICAgICBuZWVkc1JlbW92
YWwgYm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
bmVlZHNSZW1vdmFsKTogRGl0dG8uCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lkZUluZm8p
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8pOgorICAgICAgICBJbml0aWFsaXplIHRoZSBuZWVkc1JlbW92YWwgYm9v
bGVhbi4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTogUHJvcGFnYXRlIHJlbW92ZWQgc2hhcGUg
aW5zaWRlcworICAgICAgICBmb3IgbGF5b3V0IGNvcnJlY3RseS4gWW91IG9ubHkgbmVlZCB0byB0
cmFjayBvbmUgYXQgYSB0aW1lLCBhbmQgYQorICAgICAgICByZW1vdmVkIHNoYXBlIGluc2lkZSBz
aG91bGQgbm90IHRha2UgcHJlY2VkZW5jZSBvdmVyIGEgc2V0IHNoYXBlLWluc2lkZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOgor
ICAgICAgICBTZXQgdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBuZWVkc1JlbW92YWwgYm9v
bGVhbiwgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkKKyAgICAgICAgcmVtb3ZpbmcgdGhlIGluZm8u
CisgICAgICAgIChXZWJDb3JlOjpleGNsdXNpb25JbmZvUmVxdWlyZXNSZWxheW91dCk6IEFjY291
bnQgZm9yIHRoZSBuZWVkc1JlbW92YWwKKyAgICAgICAgYm9vbGVhbiBhcyBhbm90aGVyIHdheSBv
ZiByZXF1aXJpbmcgcmVsYXlvdXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBk
YXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dCk6CisgICAgICAgIExvb2sg
dXAgd2hldGhlciBhbiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gaGFzIGJlZW4gcmVtb3ZlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9u
c0FmdGVyQ2hpbGRMYXlvdXQpOgorICAgICAgICBSZW1vdmUgYW55IEV4Y2x1c2lvblNoYXBlSW5z
aWRlcyBtYXJrZWQgZm9yIHJlbW92YWwgYWZ0ZXIgYSBsYXlvdXQgcGFzcy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKTogQ2Fs
bCB0aGUgbmV3IHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zCisgICAgICAgIEJlZm9yZS9BZnRl
ciBtZXRob2RzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IEZpbHRlciB0
aGUgcmVzdWx0IGJhc2VkCisgICAgICAgIG9uIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUgcmVt
b3ZlZCBpbmZvcy4KKyAgICAgICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOiAKKyAgICAgICAgU2Ft
ZSBhcyBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2suCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojps
YXlvdXRCbG9jayk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKTogRGl0dG8uCisKIDIw
MTMtMDMtMjYgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBkb2NrLXRvLXJpZ2h0IG9mIHRoZSBXZWIgSW5zcGVjdG9yIGluIHRo
ZSBNYWMgcG9ydC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25T
aGFwZUluc2lkZUluZm8uaAppbmRleCA3MDAwOWE2NmQwM2Q5NmFiYzJhNTkyOWQ3ODAxNWYxZTQ3
NjBlMDU1Li43ZjhiZGVhYTIyZGQ1MzY5OWU2YmEyODBiNThiMzgyNGQ1NjcxM2FhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
CkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlU2Vn
bWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KSBP
VkVSUklERQogICAgIHsKKyAgICAgICAgQVNTRVJUKCFuZWVkc1JlbW92YWwoKSk7CiAgICAgICAg
IG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOwogICAgICAgICByZXR1cm4gRXhjbHVzaW9uU2hhcGVJ
bmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29sdmVkU2hhcGVJbnNpZGUsICZFeGNs
dXNpb25TaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHM+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5l
KGxpbmVUb3AsIGxpbmVIZWlnaHQpOwogICAgIH0KQEAgLTk3LDE0ICs5OCwxOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXROZWVkc0xheW91dChib29sIHZhbHVlKSB7IG1fbmVlZHNMYXlvdXQgPSB2
YWx1ZTsgfQogICAgIGJvb2wgbmVlZHNMYXlvdXQoKSB7IHJldHVybiBtX25lZWRzTGF5b3V0OyB9
CiAKKyAgICB2b2lkIHNldE5lZWRzUmVtb3ZhbChib29sIHZhbHVlKSB7IG1fbmVlZHNSZW1vdmFs
ID0gdmFsdWU7IH0KKyAgICBib29sIG5lZWRzUmVtb3ZhbCgpIHsgcmV0dXJuIG1fbmVlZHNSZW1v
dmFsOyB9CisKIHByaXZhdGU6CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKGNvbnN0IFJl
bmRlckJsb2NrKiByZW5kZXJlcikKICAgICA6IEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9j
aywgJlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hhcGU6Omdl
dEluY2x1ZGVkSW50ZXJ2YWxzPiAocmVuZGVyZXIpCiAgICAgLCBtX25lZWRzTGF5b3V0KGZhbHNl
KQorICAgICwgbV9uZWVkc1JlbW92YWwoZmFsc2UpCiAgICAgeyB9CiAKICAgICBTZWdtZW50UmFu
Z2VMaXN0IG1fc2VnbWVudFJhbmdlczsKLSAgICBib29sIG1fbmVlZHNMYXlvdXQ7CisgICAgYm9v
bCBtX25lZWRzTGF5b3V0OjE7CisgICAgYm9vbCBtX25lZWRzUmVtb3ZhbDoxOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggOWM0MTc2MDdlNjA5
YTA2OTVlODU0MGUwZGNlODRiOGJkYTBiM2EwOS4uNzI1ZWRhOGZjZmQzYjFhOTEzM2Q1YjdmMzVk
NGMwNjY2MmYzN2RjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
CkBAIC0xMTMsOSArMTEzLDE1IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0
ZSogcHJldiwgUmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQogICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpKSB7CiAg
ICAgICAgIGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJCbG9jayA9IHRvUmVuZGVyQmxvY2socmVu
ZGVyZXIpOwotICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHJlbmRlckJsb2Nr
LT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKLSAgICAgICAgaWYgKCFtX2V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyAmJiBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIHJl
bmRlckJsb2NrLT5hbGxvd3NFeGNsdXNpb25TaGFwZUluc2lkZUluZm9TaGFyaW5nKCkpCi0gICAg
ICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25T
aGFwZUluc2lkZUluZm87CisgICAgICAgIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gcmVu
ZGVyQmxvY2stPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhSZW5kZXJCbG9jazo6U2hhcGVQcmVz
ZW50T3JSZW1vdmVkKTsKKyAgICAgICAgaWYgKG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lk
ZUluZm8gJiYgcmVuZGVyQmxvY2stPmFsbG93c0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb1NoYXJp
bmcoKSkgeworICAgICAgICAgICAgaWYgKCFtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykKKyAg
ICAgICAgICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNs
dXNpb25TaGFwZUluc2lkZUluZm87CisgICAgICAgICAgICBlbHNlIGlmIChtX2V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby0+bmVlZHNSZW1vdmFsKCkpIHsKKyAgICAgICAgICAgICAgICBtX2V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87
CisgICAgICAgICAgICAgICAgbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNldE5lZWRzTGF5
b3V0KHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDcwZmMzMTQ1MjhlMGU3
MGEwODZlZmQyMTU1NGIzMzg0MzM2ZWFkNDcuLjY4ZmRhMTU4MjI1YWViYWZmYjJkN2JjYjA4YmIz
Yzg5OTg1ZDVjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApA
QCAtMTQwMiwxMSArMTQwMiwxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvbgogICAgIGlmIChz
aGFwZUluc2lkZSA9PSBvbGRTaGFwZUluc2lkZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm87CiAgICAgaWYg
KHNoYXBlSW5zaWRlKSB7Ci0gICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvID0gZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7Cisg
ICAgICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbygpOwogICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVT
aXplKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhu
dWxscHRyKTsKKyAgICAgICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zZXROZWVkc1JlbW92
YWwoZmFsc2UpOworICAgIH0gZWxzZSBpZiAoKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRo
aXMtPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhTaGFwZVByZXNlbnRPclJlbW92ZWQpKSkKKyAg
ICAgICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zZXROZWVkc1JlbW92YWwodHJ1ZSk7CiB9
CiAjZW5kaWYKIApAQCAtMTQxNSwxNiArMTQxNywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZXhj
bHVzaW9uSW5mb1JlcXVpcmVzUmVsYXlvdXQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogI2lm
ICFFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKLSAgICBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGluZm8gPSBibG9jay0+ZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKCk7CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBpbmZvID0gYmxvY2stPmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhSZW5kZXJCbG9jazo6U2hhcGVQcmVzZW50T3JSZW1vdmVk
KTsKICAgICBpZiAoaW5mbykKLSAgICAgICAgaW5mby0+c2V0TmVlZHNMYXlvdXQoaW5mby0+c2hh
cGVTaXplRGlydHkoKSk7CisgICAgICAgIGluZm8tPnNldE5lZWRzTGF5b3V0KGluZm8tPnNoYXBl
U2l6ZURpcnR5KCkgfHwgaW5mby0+bmVlZHNSZW1vdmFsKCkpOwogICAgIGVsc2UKLSAgICAgICAg
aW5mbyA9IGJsb2NrLT5sYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAgICAg
aW5mbyA9IGJsb2NrLT5sYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2s6
OlNoYXBlUHJlc2VudE9yUmVtb3ZlZCk7CiAgICAgcmV0dXJuIGluZm8gJiYgaW5mby0+bmVlZHNM
YXlvdXQoKTsKICNlbmRpZgogfQogCi1ib29sIFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5k
RXhjbHVzaW9uc0xvZ2ljYWxTaXplKFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCitib29s
IFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNoaWxkTGF5b3V0
KFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCiB7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQogICAgIGlmICghZmxvd1RocmVhZCAmJiAhZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkp
CkBAIC0xNDY2LDYgKzE0NjgsMTYgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lv
blNoYXBlU2l6ZSgpCiB9CiAjZW5kaWYKIAordm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9u
c0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJl
YWQpCit7CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgIEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gdGhpcy0+ZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKFNoYXBlUHJlc2VudE9yUmVtb3ZlZCk7CisgICAgaWYgKGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyAmJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPm5lZWRzUmVtb3ZhbCgpKQor
ICAgICAgICBzZXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8obnVsbHB0cik7CisjZW5kaWYKKyAg
ICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93VGhyZWFkKTsKK30KKwogdm9pZCBSZW5k
ZXJCbG9jazo6Y29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soUmVuZGVyRmxvd1RocmVhZCogZmxv
d1RocmVhZCkKIHsKICAgICBpZiAoZmxvd1RocmVhZCkKQEAgLTE1NTAsNyArMTU2Miw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0
VW5pdCBwYWdlTG9naWNhbEhlaWdoCiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9
IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAobG9naWNhbFdpZHRoQ2hhbmdl
ZEluUmVnaW9ucyhmbG93VGhyZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7
Ci0gICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoZmxvd1RocmVh
ZCkpCisgICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQmVmb3JlQ2hpbGRMYXlvdXQo
Zmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogCiAgICAgLy8g
V2UgdXNlIGZvdXIgdmFsdWVzLCBtYXhUb3BQb3MsIG1heFRvcE5lZywgbWF4Qm90dG9tUG9zLCBh
bmQgbWF4Qm90dG9tTmVnLCB0byB0cmFjawpAQCAtMTYxMyw3ICsxNjI1LDcgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBh
Z2VMb2dpY2FsSGVpZ2gKIAogICAgIGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hp
bGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxv
d1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0
KGZsb3dUaHJlYWQpOwogCiAgICAgLy8gQWRkIG92ZXJmbG93IGZyb20gY2hpbGRyZW4gKHVubGVz
cyB3ZSdyZSBtdWx0aS1jb2x1bW4sIHNpbmNlIGluIHRoYXQgY2FzZSBhbGwgb3VyIGNoaWxkIG92
ZXJmbG93IGlzIGNsaXBwZWQgYW55d2F5KS4KICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50
QWZ0ZXJFZGdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggMDZl
ZjM4MzA0MzA1MTFmNjg1ZGUxY2MxNGUzY2Q2YjViMTBjYzdjNS4uYTNlMTljZGIyZDM0NmEzZTA5
OTFiZDU0MjQ2YWRkOGQwM2RkZTkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgKQEAgLTQ1Miw5ICs0NTIsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgc2V0RXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y3JlYXRlSW5mbyh0
aGlzKSk7CiAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQo
KTsKICAgICB9Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUlu
c2lkZUluZm8oKSBjb25zdAorCisgICAgZW51bSBFeGNsdXNpb25TaGFwZVN0YXR1cyB7IFNoYXBl
UHJlc2VudCwgU2hhcGVQcmVzZW50T3JSZW1vdmVkIH07CisgICAgRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8oRXhjbHVzaW9uU2hhcGVTdGF0dXMgZXhj
bHVzaW9uU2hhcGVTdGF0dXMgPSBTaGFwZVByZXNlbnQpIGNvbnN0CiAgICAgewotICAgICAgICBy
ZXR1cm4gbV9yYXJlRGF0YSAmJiBtX3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mbyAmJiBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxlZEZvcih0aGlzKSA/IG1fcmFyZURhdGEtPm1f
c2hhcGVJbnNpZGVJbmZvLmdldCgpIDogMDsKKyAgICAgICAgaWYgKCFtX3JhcmVEYXRhIHx8ICFt
X3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mbykKKyAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IodGhpcykg
fHwgKGV4Y2x1c2lvblNoYXBlU3RhdHVzID09IFNoYXBlUHJlc2VudE9yUmVtb3ZlZCkgPyBtX3Jh
cmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQoKSA6IDA7CiAgICAgfQogICAgIHZvaWQgc2V0
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvPiB2YWx1ZSkKICAgICB7CkBAIC00NjIsNyArNDY2LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgbV9yYXJlRGF0YSA9IGFkb3B0UHRyKG5ldyBSZW5kZXJCbG9ja1JhcmVEYXRhKHRoaXMpKTsK
ICAgICAgICAgbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUluZm8gPSB2YWx1ZTsKICAgICB9Ci0g
ICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8oKSBjb25zdDsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGxheW91dEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyhFeGNsdXNpb25TaGFwZVN0YXR1cyA9IFNoYXBlUHJlc2VudCkgY29u
c3Q7CiAgICAgYm9vbCBhbGxvd3NFeGNsdXNpb25TaGFwZUluc2lkZUluZm9TaGFyaW5nKCkgY29u
c3QgeyByZXR1cm4gIWlzSW5saW5lKCkgJiYgIWlzRmxvYXRpbmcoKTsgfQogI2VuZGlmCiAKQEAg
LTU3Myw3ICs1NzcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogI2VuZGlmCiAKLSAgICBib29sIHVw
ZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoUmVuZGVyRmxvd1RocmVhZCopOwor
ICAgIGJvb2wgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChSZW5k
ZXJGbG93VGhyZWFkKik7CisgICAgdm9pZCB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVy
Q2hpbGRMYXlvdXQoUmVuZGVyRmxvd1RocmVhZCopOwogICAgIHZvaWQgY29tcHV0ZVJlZ2lvblJh
bmdlRm9yQmxvY2soUmVuZGVyRmxvd1RocmVhZCopOwogCiAgICAgdm9pZCB1cGRhdGVCbG9ja0No
aWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgUmVuZGVyQm94
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCmluZGV4IGRhNTY5NjI5Y2UyZjU3NGYxZjUwOTZlZDcyNGIwMjEzMzBlNDI0YjkuLmU1
ZmE2NWZiYTVhNDViMjQ2MzVlMWYxYzAxOTFiNWUyMjQ1MDNmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC03NywxNCAr
NzcsMjAgQEAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbEhlaWdodEZvckxpbmUoY29uc3QgUmVu
ZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW4KIH0KIAogI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogUmVuZGVyQmxvY2s6OmxheW91dEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0CitFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IFJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oRXhjbHVzaW9uU2hh
cGVTdGF0dXMgZXhjbHVzaW9uU2hhcGVTdGF0dXMpIGNvbnN0CiB7CiAgICAgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSB2aWV3KCktPmxheW91dFN0YXRlKCktPmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIGlmIChzaGFwZUluc2lkZUluZm8gJiYgc2hh
cGVJbnNpZGVJbmZvLT5uZWVkc1JlbW92YWwoKSAmJiBleGNsdXNpb25TaGFwZVN0YXR1cyA9PSBT
aGFwZVByZXNlbnQpCisgICAgICAgIHNoYXBlSW5zaWRlSW5mbyA9IDA7CisKICAgICBpZiAoIXNo
YXBlSW5zaWRlSW5mbyAmJiBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCkpIHsKICAgICAgICAg
TGF5b3V0VW5pdCBvZmZzZXQgPSBsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsSGVpZ2h0Rm9yTGlu
ZSh0aGlzLCBmYWxzZSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gcmVnaW9uQXRC
bG9ja09mZnNldChvZmZzZXQpOwotICAgICAgICByZXR1cm4gcmVnaW9uID8gcmVnaW9uLT5leGNs
dXNpb25TaGFwZUluc2lkZUluZm8oKSA6IDA7CisgICAgICAgIGlmIChyZWdpb24pCisgICAgICAg
ICAgICBzaGFwZUluc2lkZUluZm8gPSByZWdpb24tPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygp
OworICAgICAgICByZXR1cm4gc2hhcGVJbnNpZGVJbmZvICYmIHNoYXBlSW5zaWRlSW5mby0+bmVl
ZHNSZW1vdmFsKCkgJiYgZXhjbHVzaW9uU2hhcGVTdGF0dXMgPT0gU2hhcGVQcmVzZW50ID8gMCA6
IHNoYXBlSW5zaWRlSW5mbzsKICAgICB9CisKICAgICByZXR1cm4gc2hhcGVJbnNpZGVJbmZvOwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDc2YjkwNzgxMjhlZWY0Mzc3MjgxZDBjM2U3
M2M5NzMwNWQwNDRiMTQuLmNhM2YzNzg3ZmExMmI2Y2VjYmU0ZDEzYTZkNWYyNWMzM2IyMTdhZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3guY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0
VW5pdCkKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRh
aW5pbmdCbG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdpb25zKGZsb3dU
aHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBpZiAodXBkYXRl
UmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAgICBpZiAodXBk
YXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhyZWFkKSkKICAg
ICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBMYXlvdXRTaXplIHByZXZpb3Vz
U2l6ZSA9IHNpemUoKTsKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0
KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRDaGlsZHJlbiB8fCBpc1Jv
b3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93VGhyZWFkKTsKKyAg
ICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoZmxvd1RocmVhZCk7
CiAKICAgICBpZiAoIWlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBoZWlnaHQo
KSA9PSAwKSB7CiAgICAgICAgIC8vIFdlIGFyZSBhIGJsb2NrIHdpdGggbm8gYm9yZGVyIGFuZCBw
YWRkaW5nIGFuZCBhIGNvbXB1dGVkIGhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggOGMyMjY4YWUyYzA2MzlmNDg4ODhjMjlkZTkz
NDY1ZTdiOTQ1MDU3NS4uM2ZjOTQzMGM1NWI0Y2EyOGUzMDE3NDRjMjMxNzBlMzNkY2EwYmJhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBA
IC0zMzksNyArMzM5LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9v
bCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGxvZ2ljYWxX
aWR0aENoYW5nZWRJblJlZ2lvbnMoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRy
ZW4gPSB0cnVlOwotICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXpl
KGZsb3dUaHJlYWQpKQorICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNo
aWxkTGF5b3V0KGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsK
IAogICAgIG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmlyc3RMaW5lID0gLTE7CkBAIC0zNjUs
NyArMzY1LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMo
cmVsYXlvdXRDaGlsZHJlbiB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VG
b3JCbG9jayhmbG93VGhyZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVy
Q2hpbGRMYXlvdXQoZmxvd1RocmVhZCk7CiAKICAgICByZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlv
dXRJZk1vdmVkKG9sZENoaWxkUmVjdHMpOwogICAgIC8vIEZJWE1FOiBjc3MzL2ZsZXhib3gvcmVw
YWludC1ydGwtY29sdW1uLmh0bWwgc2VlbXMgdG8gcmVwYWludCBtb3JlIG92ZXJmbG93IHRoYW4g
aXQgbmVlZHMgdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXgg
Nzc2OWVkMTc0NDVlNjhmNDJmMmExMjU4MmFjYzcxZWRlYTAwNzMxNi4uMzgzYmE3MGY0N2ZiNGVl
YzE3M2NmNGNlYTMwNzNiYWFmMjk2NWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0Qmxv
Y2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIFJlbmRlckZsb3dUaHJl
YWQqIGZsb3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGxv
Z2ljYWxXaWR0aENoYW5nZWRJblJlZ2lvbnMoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0
Q2hpbGRyZW4gPSB0cnVlOwotICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2lj
YWxTaXplKGZsb3dUaHJlYWQpKQorICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0Jl
Zm9yZUNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0g
dHJ1ZTsKIAogICAgIExheW91dFNpemUgcHJldmlvdXNTaXplID0gc2l6ZSgpOwpAQCAtMTcxLDcg
KzE3MSw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxk
cmVuLCBMYXlvdXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRD
aGlsZHJlbiB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhm
bG93VGhyZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlv
dXQoZmxvd1RocmVhZCk7CiAKICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdl
KTsKICAgICBzdGF0ZVB1c2hlci5wb3AoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZGYxNTMwM2ZhZDI0YTVmNDYwN2Uz
MDhmMjE1ZTA1NThiMzAyY2I5Li5lYzhjZjdkOWJkMTY3ZGIwYjVlZTRiMzkyYWQxNDlmNDAyM2Ew
MjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDMtMjcgIEJlYXIgVHJhdmlzICA8YmV0
cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtjc3MgZXhjbHVzaW9uc10gRHluYW1pY2FsbHkg
cmVtb3Zpbmcgc2hhcGUtaW5zaWRlIHNob3VsZCBjYXVzZSByZWxheW91dCBvZiBjaGlsZCBibG9j
a3MnIGlubGluZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTEwMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0IHRoYXQgcmVtb3ZlZCBzaGFwZS1pbnNpZGVzIGNvcnJlY3RseSBjYXVz
ZSByZWxheW91dCBpbiB0aGVpciBibG9ja3MnCisgICAgICAgIGlubGluZSBjb250ZW50LgorCisg
ICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1p
Yy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sOgorCiAyMDEzLTAzLTI3ICBa
YW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IEdUSyBnYXJkZW5pbmcuIFJlYmFzZWxpbmluZyBhZnRlciByMTQ2OTkyLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHlu
YW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWwKaW5k
ZXggMTBlNTZjZWRlMWRiOTQwMzkwM2NmNjgwOTRmM2YyNmZlZjZkMzk0Yy4uMDcxNmQyMWMxM2Rh
ZjA2ZDQ5NWE1NzE2ZGU3ZjljYjZhOWU1ZDg0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhw
ZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC1leHBlY3RlZC5odG1sCkBAIC0xNiw3ICsxNiw3
IEBACiAgICAgICAgIGNvbG9yOiBncmVlbjsKICAgICB9CiAgICAgLmNvbnRhaW5lci5zaGFwZSB7
Ci0gICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7CisgICAgICAgIGJvcmRlcjogbm9uZTsKICAg
ICB9CiAgICAgLnNoYXBlOjpiZWZvcmUgewogICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CkBA
IC00NCwxMCArNDQsMTkgQEAKICAgICA8cD5TZXR0aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJp
b3IgZW50cnk8L3A+CiAgICAgPGRpdiBpZD0ncmVzZXQtaW5zaWRlLXNoYXBlJyBjbGFzcz0nY29u
dGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rp
dj4KIAotICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9w
PgorICAgIDxwPlJlbW92aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+Cisg
ICAgPGRpdiBpZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRpdj48
ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92aW5nIGEgbmVz
dGVkIHNoYXBlLWluc2lkZTwvcD4KKyAgICA8ZGl2IGlkPSdyZW1vdmUtbmVzdGVkLWluc2lkZS1z
aGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4
PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBu
byBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9
J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2
PjwvZGl2PgogCi0gICAgPHA+U2V0dGluZyBvdXRzaWRlLXNoYXBlIHdpdGggYSBwcmlvciBlbnRy
eTwvcD4KKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9w
PgogICAgIDxkaXYgaWQ9J3Jlc2V0LW91dHNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hh
cGUgb3V0c2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAg
IDxwPlJlbW92aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxk
aXYgaWQ9J3JlbW92ZS1vdXRzaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyJz48ZGl2PjxkaXY+
eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5l
c3RlZC5odG1sCmluZGV4IGY2MWU3OTdlNTZiZGQ1ZWY4MzdiYTAzNzRjMmYzNGQ1NjMwMDRiMTUu
LjNlNmY2N2Y5M2I2MTMwOWFhNmExN2E0NzAxNzFjM2RiNjNlMzBlYmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFt
aWMtbmVzdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbApAQCAtMTYsMTAgKzE2LDE5IEBA
CiAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNoYXBlIGluc2lk
ZScpOwogICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1pbnNpZGUt
c2hhcGUnKTsKICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXIgc2hh
cGUgaW5zaWRlJyk7CisKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVt
b3ZlLWluc2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2Nv
bnRhaW5lcicpOworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdmUt
bmVzdGVkLWluc2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywg
JycpOworCiAgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NldC1vdXRzaWRl
LXNoYXBlJyk7CiAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNo
YXBlIG91dHNpZGUnKTsKICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVz
ZXQtb3V0c2lkZS1zaGFwZScpOwogICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2Nv
bnRhaW5lciBzaGFwZSBvdXRzaWRlJyk7CisKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVtb3ZlLW91dHNpZGUtc2hhcGUnKTsKKyAgICAgICAgZWwuc2V0QXR0cmlidXRl
KCdjbGFzcycsICdjb250YWluZXInKTsKICAgICB9CiA8L3NjcmlwdD4KIDxzdHlsZT4KQEAgLTMz
LDcgKzQyLDcgQEAKICAgICAgICAgY29sb3I6IGdyZWVuOwogICAgIH0KICAgICAuY29udGFpbmVy
LnNoYXBlIHsKLSAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsKKyAgICAgICAgYm9yZGVyOiBu
b25lOwogICAgIH0KICAgICAuc2hhcGU6OmJlZm9yZSB7CiAgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKQEAgLTY3LDEwICs3NiwxOSBAQAogICAgIDxwPlNldHRpbmcgc2hhcGUtaW5zaWRlIHdp
dGggYSBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdyZXNldC1pbnNpZGUtc2hhcGUnIGNs
YXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rp
dj48L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIG5vIHBy
aW9yIGVudHJ5PC9wPgorICAgIDxwPlJlbW92aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3Ig
ZW50cnk8L3A+CisgICAgPGRpdiBpZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRh
aW5lciBzaGFwZSBpbnNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+
CisKKyAgICA8cD5SZW1vdmluZyBhIG5lc3RlZCBzaGFwZS1pbnNpZGU8L3A+CisgICAgPGRpdiBj
bGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdiBpZD0ncmVtb3ZlLW5lc3RlZC1pbnNp
ZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+PGRpdj54eHh4eHh4
eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUgd2l0
aCBubyBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdzZXQtb3V0c2lkZS1zaGFwZScgY2xh
c3M9J2NvbnRhaW5lcic+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+CiAKLSAgICA8cD5TZXR0
aW5nIG91dHNpZGUtc2hhcGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlNldHRpbmcg
c2hhcGUtb3V0c2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CiAgICAgPGRpdiBpZD0ncmVzZXQt
b3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcicgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBv
dXRzaWRlLWFsdCc+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+CisKKyAgICA8cD5SZW1vdmlu
ZyBzaGFwZS1vdXRzaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdyZW1v
dmUtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJz48ZGl2Pnh4
eHh4eHh4eHg8L2Rpdj48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195766</attachid>
            <date>2013-03-29 11:06:44 -0700</date>
            <delta_ts>2013-04-04 15:37:07 -0700</delta_ts>
            <desc>Updating to trunk</desc>
            <filename>bug-111029-20130329110641.patch</filename>
            <type>text/plain</type>
            <size>21957</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRjNWFjOGNmODcxYzM3
NzdjNWYxNzBmYjE1MjgzNzZhY2NiODkzZS4uZjRlYmQ1Y2ZmN2VhOTNkNjA5ZDA2NWJhZjE4ODQ3
OTU3NmY2YzJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAzLTI5ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNd
IER5bmFtaWNhbGx5IHJlbW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVsYXlvdXQg
b2YgY2hpbGQgYmxvY2tzJyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlc2VydmUgYSByZW1vdmVkIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyBmb3Igb25lIGFkZGl0aW9uYWwgbGF5b3V0IHBhc3MKKyAgICAgICAgc28gdGhh
dCBpdCBjYW4gbm90aWZ5IGRlc2NlbmRhbnQgaW5saW5lIGNvbnRlbnQgdG8gcmVsYXlvdXQuIFRo
aXMgcGF0Y2ggYWRkcworICAgICAgICBhIG5ldyAnbmVlZHNSZW1vdmFsJyBib29sZWFuIHRvIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbywgd2hpY2ggaXMgc2V0IHdoZW4KKyAgICAgICAgYSBzdHls
ZSBjaGFuZ2UgcmVtb3ZlcyBidXQgZG9lcyBub3QgcmVwbGFjZSBhIHNoYXBlLWluc2lkZS4gV2hl
biBkZXRlcm1pbmluZworICAgICAgICB3aGV0aGVyIGEgYmxvY2sgbmVlZHMgdG8gcmVsYXlvdXQg
aW5saW5lIGNoaWxkcmVuLCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9zIHdpdGgKKyAgICAgICAg
dGhlIG5lZWRzUmVtb3ZhbCBib29sZWFuIHNldCBhcmUgaW5jbHVkZWQsIGJ1dCBhdCBvdGhlciB0
aW1lcyAoc3VjaCBhcyBkdXJpbmcKKyAgICAgICAgaW5saW5lIGxheW91dCksIHRoZXkgYXJlIGln
bm9yZWQuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gdGhlIGV4aXN0aW5nIGR5bmFtaWMgc2hh
cGUgdGVzdGZpbGUKKyAgICAgICAgZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjpzZXROZWVkc1JlbW92YWwpOiBHZXQvU2V0IHRoZQorICAgICAgICBuZWVkc1JlbW92
YWwgYm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
bmVlZHNSZW1vdmFsKTogRGl0dG8uCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lkZUluZm8p
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8pOgorICAgICAgICBJbml0aWFsaXplIHRoZSBuZWVkc1JlbW92YWwgYm9v
bGVhbi4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTogUHJvcGFnYXRlIHJlbW92ZWQgc2hhcGUg
aW5zaWRlcworICAgICAgICBmb3IgbGF5b3V0IGNvcnJlY3RseS4gWW91IG9ubHkgbmVlZCB0byB0
cmFjayBvbmUgYXQgYSB0aW1lLCBhbmQgYQorICAgICAgICByZW1vdmVkIHNoYXBlIGluc2lkZSBz
aG91bGQgbm90IHRha2UgcHJlY2VkZW5jZSBvdmVyIGEgc2V0IHNoYXBlLWluc2lkZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOgor
ICAgICAgICBTZXQgdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBuZWVkc1JlbW92YWwgYm9v
bGVhbiwgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkKKyAgICAgICAgcmVtb3ZpbmcgdGhlIGluZm8u
CisgICAgICAgIChXZWJDb3JlOjpleGNsdXNpb25JbmZvUmVxdWlyZXNSZWxheW91dCk6IEFjY291
bnQgZm9yIHRoZSBuZWVkc1JlbW92YWwKKyAgICAgICAgYm9vbGVhbiBhcyBhbm90aGVyIHdheSBv
ZiByZXF1aXJpbmcgcmVsYXlvdXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBk
YXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dCk6CisgICAgICAgIExvb2sg
dXAgd2hldGhlciBhbiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gaGFzIGJlZW4gcmVtb3ZlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9u
c0FmdGVyQ2hpbGRMYXlvdXQpOgorICAgICAgICBSZW1vdmUgYW55IEV4Y2x1c2lvblNoYXBlSW5z
aWRlcyBtYXJrZWQgZm9yIHJlbW92YWwgYWZ0ZXIgYSBsYXlvdXQgcGFzcy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKTogQ2Fs
bCB0aGUgbmV3IHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zCisgICAgICAgIEJlZm9yZS9BZnRl
ciBtZXRob2RzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IEZpbHRlciB0
aGUgcmVzdWx0IGJhc2VkCisgICAgICAgIG9uIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUgcmVt
b3ZlZCBpbmZvcy4KKyAgICAgICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOiAKKyAgICAgICAgU2Ft
ZSBhcyBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2suCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojps
YXlvdXRCbG9jayk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKTogRGl0dG8uCisKIDIw
MTMtMDMtMjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogQ29udGVudCBzaG91bGQgbm90IGJlIGxvc3Qgd2hlbiB1aVNvdXJj
ZUNvZGUncyBmaWxlIHdhcyByZW1vdmVkIGV4dGVybmFsbHkgb24gZmlsZSBzeXN0ZW0uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgK
aW5kZXggNzAwMDlhNjZkMDNkOTZhYmMyYTU5MjlkNzgwMTVmMWU0NzYwZTA1NS4uN2Y4YmRlYWEy
MmRkNTM2OTllNmJhMjgwYjU4YjM4MjRkNTY3MTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaApAQCAtNzAsNiArNzAsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlv
dXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgT1ZFUlJJREUKICAgICB7Cisg
ICAgICAgIEFTU0VSVCghbmVlZHNSZW1vdmFsKCkpOwogICAgICAgICBtX3NlZ21lbnRSYW5nZXMu
Y2xlYXIoKTsKICAgICAgICAgcmV0dXJuIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywg
JlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hhcGU6OmdldElu
Y2x1ZGVkSW50ZXJ2YWxzPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVp
Z2h0KTsKICAgICB9CkBAIC05NywxNCArOTgsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TmVl
ZHNMYXlvdXQoYm9vbCB2YWx1ZSkgeyBtX25lZWRzTGF5b3V0ID0gdmFsdWU7IH0KICAgICBib29s
IG5lZWRzTGF5b3V0KCkgeyByZXR1cm4gbV9uZWVkc0xheW91dDsgfQogCisgICAgdm9pZCBzZXRO
ZWVkc1JlbW92YWwoYm9vbCB2YWx1ZSkgeyBtX25lZWRzUmVtb3ZhbCA9IHZhbHVlOyB9CisgICAg
Ym9vbCBuZWVkc1JlbW92YWwoKSB7IHJldHVybiBtX25lZWRzUmVtb3ZhbDsgfQorCiBwcml2YXRl
OgogICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhjb25zdCBSZW5kZXJCbG9jayogcmVuZGVy
ZXIpCiAgICAgOiBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5kZXJTdHlsZTo6
cmVzb2x2ZWRTaGFwZUluc2lkZSwgJkV4Y2x1c2lvblNoYXBlOjpnZXRJbmNsdWRlZEludGVydmFs
cz4gKHJlbmRlcmVyKQogICAgICwgbV9uZWVkc0xheW91dChmYWxzZSkKKyAgICAsIG1fbmVlZHNS
ZW1vdmFsKGZhbHNlKQogICAgIHsgfQogCiAgICAgU2VnbWVudFJhbmdlTGlzdCBtX3NlZ21lbnRS
YW5nZXM7Ci0gICAgYm9vbCBtX25lZWRzTGF5b3V0OworICAgIGJvb2wgbV9uZWVkc0xheW91dDox
OworICAgIGJvb2wgbV9uZWVkc1JlbW92YWw6MTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDljNDE3NjA3ZTYwOWEwNjk1ZTg1NDBlMGRjZTg0
YjhiZGEwYjNhMDkuLjcyNWVkYThmY2ZkM2IxYTkxMzNkNWI3ZjM1ZDRjMDY2NjJmMzdkYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcApAQCAtMTEzLDkgKzExMywx
NSBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUqIHByZXYsIFJlbmRlckJv
eCogcmVuZGVyZXIsIGNvbnN0IExheW91dFNpegogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
ICAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSkgewogICAgICAgICBjb25zdCBSZW5k
ZXJCbG9jayogcmVuZGVyQmxvY2sgPSB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKTsKLSAgICAgICAg
bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSByZW5kZXJCbG9jay0+ZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKCk7Ci0gICAgICAgIGlmICghbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYg
bV9uZXh0LT5tX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAmJiByZW5kZXJCbG9jay0+YWxsb3dz
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvU2hhcmluZygpKQotICAgICAgICAgICAgbV9leGNsdXNp
b25TaGFwZUluc2lkZUluZm8gPSBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwor
ICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHJlbmRlckJsb2NrLT5leGNsdXNp
b25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2s6OlNoYXBlUHJlc2VudE9yUmVtb3ZlZCk7Cisg
ICAgICAgIGlmIChtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIHJlbmRlckJs
b2NrLT5hbGxvd3NFeGNsdXNpb25TaGFwZUluc2lkZUluZm9TaGFyaW5nKCkpIHsKKyAgICAgICAg
ICAgIGlmICghbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8pCisgICAgICAgICAgICAgICAgbV9l
eGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOworICAgICAgICAgICAgZWxzZSBpZiAobV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8tPm5l
ZWRzUmVtb3ZhbCgpKSB7CisgICAgICAgICAgICAgICAgbV9leGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8gPSBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOworICAgICAgICAgICAgICAg
IG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zZXROZWVkc0xheW91dCh0cnVlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA3MGZjMzE0NTI4ZTBlNzBhMDg2ZWZkMjE1NTRiMzM4
NDMzNmVhZDQ3Li42OGZkYTE1ODIyNWFlYmFmZmIyZDdiY2IwOGJiM2M4OTk4NWQ1YzhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE0MDIsMTEgKzE0MDIs
MTMgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb24KICAgICBpZiAoc2hhcGVJbnNpZGUgPT0gb2xk
U2hhcGVJbnNpZGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwogICAgIGlmIChzaGFwZUluc2lkZSkgewot
ICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byA9IGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgICAgICBleGNsdXNpb25T
aGFwZUluc2lkZUluZm8gPSBlbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKICAgICAg
ICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5kaXJ0eVNoYXBlU2l6ZSgpOwotICAgIH0gZWxz
ZQotICAgICAgICBzZXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8obnVsbHB0cik7CisgICAgICAg
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2V0TmVlZHNSZW1vdmFsKGZhbHNlKTsKKyAgICB9
IGVsc2UgaWYgKChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSB0aGlzLT5leGNsdXNpb25TaGFw
ZUluc2lkZUluZm8oU2hhcGVQcmVzZW50T3JSZW1vdmVkKSkpCisgICAgICAgIGV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby0+c2V0TmVlZHNSZW1vdmFsKHRydWUpOwogfQogI2VuZGlmCiAKQEAgLTE0
MTUsMTYgKzE0MTcsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGV4Y2x1c2lvbkluZm9SZXF1aXJl
c1JlbGF5b3V0KGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKICNpZiAhRU5BQkxFKENTU19FWENM
VVNJT05TKQogICAgIHJldHVybiBmYWxzZTsKICNlbHNlCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKiBpbmZvID0gYmxvY2stPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogaW5mbyA9IGJsb2NrLT5leGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oUmVuZGVyQmxvY2s6OlNoYXBlUHJlc2VudE9yUmVtb3ZlZCk7CiAgICAgaWYgKGluZm8p
Ci0gICAgICAgIGluZm8tPnNldE5lZWRzTGF5b3V0KGluZm8tPnNoYXBlU2l6ZURpcnR5KCkpOwor
ICAgICAgICBpbmZvLT5zZXROZWVkc0xheW91dChpbmZvLT5zaGFwZVNpemVEaXJ0eSgpIHx8IGlu
Zm8tPm5lZWRzUmVtb3ZhbCgpKTsKICAgICBlbHNlCi0gICAgICAgIGluZm8gPSBibG9jay0+bGF5
b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgICAgIGluZm8gPSBibG9jay0+bGF5
b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrOjpTaGFwZVByZXNlbnRPclJl
bW92ZWQpOwogICAgIHJldHVybiBpbmZvICYmIGluZm8tPm5lZWRzTGF5b3V0KCk7CiAjZW5kaWYK
IH0KIAotYm9vbCBSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2Fs
U2l6ZShSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQorYm9vbCBSZW5kZXJCbG9jazo6dXBk
YXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFk
KiBmbG93VGhyZWFkKQogewogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAoIWZs
b3dUaHJlYWQgJiYgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpKQpAQCAtMTQ2Niw2ICsxNDY4
LDE2IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKQogfQog
I2VuZGlmCiAKK3ZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQWZ0
ZXJDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQoreworI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhTaGFwZVBy
ZXNlbnRPclJlbW92ZWQpOworICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgZXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5uZWVkc1JlbW92YWwoKSkKKyAgICAgICAgc2V0RXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKG51bGxwdHIpOworI2VuZGlmCisgICAgY29tcHV0ZVJlZ2lvblJh
bmdlRm9yQmxvY2soZmxvd1RocmVhZCk7Cit9CisKIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVS
ZWdpb25SYW5nZUZvckJsb2NrKFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCiB7CiAgICAg
aWYgKGZsb3dUaHJlYWQpCkBAIC0xNTUwLDcgKzE1NjIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjps
YXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxI
ZWlnaAogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFp
bmluZ0Jsb2NrKCk7CiAgICAgaWYgKGxvZ2ljYWxXaWR0aENoYW5nZWRJblJlZ2lvbnMoZmxvd1Ro
cmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwotICAgIGlmICh1cGRhdGVS
ZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXplKGZsb3dUaHJlYWQpKQorICAgIGlmICh1cGRh
dGVSZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpKQogICAg
ICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKIAogICAgIC8vIFdlIHVzZSBmb3VyIHZhbHVl
cywgbWF4VG9wUG9zLCBtYXhUb3BOZWcsIG1heEJvdHRvbVBvcywgYW5kIG1heEJvdHRvbU5lZywg
dG8gdHJhY2sKQEAgLTE2MTMsNyArMTYyNSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJs
b2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdoCiAK
ICAgICBsYXlvdXRQb3NpdGlvbmVkT2JqZWN0cyhyZWxheW91dENoaWxkcmVuIHx8IGlzUm9vdCgp
KTsKIAotICAgIGNvbXB1dGVSZWdpb25SYW5nZUZvckJsb2NrKGZsb3dUaHJlYWQpOworICAgIHVw
ZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zQWZ0ZXJDaGlsZExheW91dChmbG93VGhyZWFkKTsKIAog
ICAgIC8vIEFkZCBvdmVyZmxvdyBmcm9tIGNoaWxkcmVuICh1bmxlc3Mgd2UncmUgbXVsdGktY29s
dW1uLCBzaW5jZSBpbiB0aGF0IGNhc2UgYWxsIG91ciBjaGlsZCBvdmVyZmxvdyBpcyBjbGlwcGVk
IGFueXdheSkuCiAgICAgY29tcHV0ZU92ZXJmbG93KG9sZENsaWVudEFmdGVyRWRnZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDg3MmUxNWNjNTBhNjUwYTg3MjJm
NmNkODJmMzNhN2YxZTZkZDg5YmMuLjM3ZmI4MTE3MWQ1Nzg1MmQ4Y2NjNjZjMzA1ZjY3N2Y3ODk1
NTQ4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC00NTIsOSAr
NDUyLDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byhFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNyZWF0ZUluZm8odGhpcykpOwogICAgICAgICBy
ZXR1cm4gbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUluZm8uZ2V0KCk7CiAgICAgfQotICAgIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3QK
KworICAgIGVudW0gRXhjbHVzaW9uU2hhcGVTdGF0dXMgeyBTaGFwZVByZXNlbnQsIFNoYXBlUHJl
c2VudE9yUmVtb3ZlZCB9OworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKEV4Y2x1c2lvblNoYXBlU3RhdHVzIGV4Y2x1c2lvblNoYXBlU3RhdHVz
ID0gU2hhcGVQcmVzZW50KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEg
JiYgbV9yYXJlRGF0YS0+bV9zaGFwZUluc2lkZUluZm8gJiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjppc0VuYWJsZWRGb3IodGhpcykgPyBtX3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mby5n
ZXQoKSA6IDA7CisgICAgICAgIGlmICghbV9yYXJlRGF0YSB8fCAhbV9yYXJlRGF0YS0+bV9zaGFw
ZUluc2lkZUluZm8pCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFbmFibGVkRm9yKHRoaXMpIHx8IChleGNsdXNpb25TaGFw
ZVN0YXR1cyA9PSBTaGFwZVByZXNlbnRPclJlbW92ZWQpID8gbV9yYXJlRGF0YS0+bV9zaGFwZUlu
c2lkZUluZm8uZ2V0KCkgOiAwOwogICAgIH0KICAgICB2b2lkIHNldEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyhQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gdmFsdWUpCiAgICAg
ewpAQCAtNDYyLDcgKzQ2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fcmFyZURhdGEgPSBh
ZG9wdFB0cihuZXcgUmVuZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CiAgICAgICAgIG1fcmFyZURh
dGEtPm1fc2hhcGVJbnNpZGVJbmZvID0gdmFsdWU7CiAgICAgfQotICAgIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyogbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3Q7CisgICAg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8o
RXhjbHVzaW9uU2hhcGVTdGF0dXMgPSBTaGFwZVByZXNlbnQpIGNvbnN0OwogICAgIGJvb2wgYWxs
b3dzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvU2hhcmluZygpIGNvbnN0IHsgcmV0dXJuICFpc0lu
bGluZSgpICYmICFpc0Zsb2F0aW5nKCk7IH0KICNlbmRpZgogCkBAIC01NzMsNyArNTc3LDggQEAg
cHJvdGVjdGVkOgogICAgIH0KICNlbmRpZgogCi0gICAgYm9vbCB1cGRhdGVSZWdpb25zQW5kRXhj
bHVzaW9uc0xvZ2ljYWxTaXplKFJlbmRlckZsb3dUaHJlYWQqKTsKKyAgICBib29sIHVwZGF0ZVJl
Z2lvbnNBbmRFeGNsdXNpb25zQmVmb3JlQ2hpbGRMYXlvdXQoUmVuZGVyRmxvd1RocmVhZCopOwor
ICAgIHZvaWQgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KFJlbmRl
ckZsb3dUaHJlYWQqKTsKICAgICB2b2lkIGNvbXB1dGVSZWdpb25SYW5nZUZvckJsb2NrKFJlbmRl
ckZsb3dUaHJlYWQqKTsKIAogICAgIHZvaWQgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9y
ZUxheW91dChib29sIHJlbGF5b3V0Q2hpbGRyZW4sIFJlbmRlckJveCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCAyNDZj
ZmFhMTdiMmUwYzM3ZWU1NzlkNjk2NTM0YTUzYzdiNzllYTJlLi4yMGExZGJkNmQ0YTBlOGEyNjgz
MzlmMDVlMjVmOWM0MTJhYTYyNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtNzcsMTQgKzc3LDIwIEBAIHN0YXRpYyBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHRGb3JMaW5lKGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaywg
Ym9vbCBpc0ZpcnN0TGluCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi1FeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIFJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oKSBjb25zdAorRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBSZW5kZXJCbG9jazo6bGF5
b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKEV4Y2x1c2lvblNoYXBlU3RhdHVzIGV4Y2x1c2lv
blNoYXBlU3RhdHVzKSBjb25zdAogewogICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogc2hh
cGVJbnNpZGVJbmZvID0gdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5leGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oKTsKKyAgICBpZiAoc2hhcGVJbnNpZGVJbmZvICYmIHNoYXBlSW5zaWRlSW5mby0+bmVl
ZHNSZW1vdmFsKCkgJiYgZXhjbHVzaW9uU2hhcGVTdGF0dXMgPT0gU2hhcGVQcmVzZW50KQorICAg
ICAgICBzaGFwZUluc2lkZUluZm8gPSAwOworCiAgICAgaWYgKCFzaGFwZUluc2lkZUluZm8gJiYg
Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpKSB7CiAgICAgICAgIExheW91dFVuaXQgb2Zmc2V0
ID0gbG9naWNhbEhlaWdodCgpICsgbG9naWNhbEhlaWdodEZvckxpbmUodGhpcywgZmFsc2UpOwog
ICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHJlZ2lvbkF0QmxvY2tPZmZzZXQob2Zmc2V0
KTsKLSAgICAgICAgcmV0dXJuIHJlZ2lvbiA/IHJlZ2lvbi0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKCkgOiAwOworICAgICAgICBpZiAocmVnaW9uKQorICAgICAgICAgICAgc2hhcGVJbnNpZGVJ
bmZvID0gcmVnaW9uLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAgICAgcmV0dXJu
IHNoYXBlSW5zaWRlSW5mbyAmJiBzaGFwZUluc2lkZUluZm8tPm5lZWRzUmVtb3ZhbCgpICYmIGV4
Y2x1c2lvblNoYXBlU3RhdHVzID09IFNoYXBlUHJlc2VudCA/IDAgOiBzaGFwZUluc2lkZUluZm87
CiAgICAgfQorCiAgICAgcmV0dXJuIHNoYXBlSW5zaWRlSW5mbzsKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcAppbmRleCA3NmI5MDc4MTI4ZWVmNDM3NzI4MWQwYzNlNzNjOTczMDVkMDQ0YjE0Li5j
YTNmMzc4N2ZhMTJiNmNlY2JlNGQxM2E2ZDVmMjVjMzNiMjE3YWQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojps
YXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgUmVuZGVy
Rmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAg
ICBpZiAobG9naWNhbFdpZHRoQ2hhbmdlZEluUmVnaW9ucyhmbG93VGhyZWFkKSkKICAgICAgICAg
cmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7Ci0gICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNp
b25zTG9naWNhbFNpemUoZmxvd1RocmVhZCkpCisgICAgaWYgKHVwZGF0ZVJlZ2lvbnNBbmRFeGNs
dXNpb25zQmVmb3JlQ2hpbGRMYXlvdXQoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hp
bGRyZW4gPSB0cnVlOwogCiAgICAgTGF5b3V0U2l6ZSBwcmV2aW91c1NpemUgPSBzaXplKCk7CkBA
IC0yOTYsNyArMjk2LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91
dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIGxheW91dFBv
c2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwogCi0gICAgY29t
cHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRlUmVnaW9uc0Fu
ZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAgaWYgKCFpc0Zs
b2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgaGVpZ2h0KCkgPT0gMCkgewogICAgICAg
ICAvLyBXZSBhcmUgYSBibG9jayB3aXRoIG5vIGJvcmRlciBhbmQgcGFkZGluZyBhbmQgYSBjb21w
dXRlZCBoZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guY3BwCmluZGV4IDhjMjI2OGFlMmMwNjM5ZjQ4ODg4YzI5ZGU5MzQ2NWU3Yjk0NTA1NzUuLjNm
Yzk0MzBjNTViNGNhMjhlMzAxNzQ0YzIzMTcwZTMzZGNhMGJiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMzM5LDcgKzMzOSw3IEBA
IHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCkKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1Ro
cmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdp
b25zKGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBp
ZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAg
ICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhy
ZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBtX251bWJlck9m
SW5GbG93Q2hpbGRyZW5PbkZpcnN0TGluZSA9IC0xOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQg
UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5
b3V0VW5pdCkKIAogICAgIGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4g
fHwgaXNSb290KCkpOwogCi0gICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVh
ZCk7CisgICAgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dU
aHJlYWQpOwogCiAgICAgcmVwYWludENoaWxkcmVuRHVyaW5nTGF5b3V0SWZNb3ZlZChvbGRDaGls
ZFJlY3RzKTsKICAgICAvLyBGSVhNRTogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5o
dG1sIHNlZW1zIHRvIHJlcGFpbnQgbW9yZSBvdmVyZmxvdyB0aGFuIGl0IG5lZWRzIHRvLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDNiNjNkNGYwZDUzMTY1OGYx
MzYyZDg3OWUyMTAzZTQ5YmU0OTQ3OTguLmRhOTRhZGY2NTA4NTBlNmY0ZmE3NzllMGI4YWIwYjVh
Mjg2YjI2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE1
Myw3ICsxNTMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0g
Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2Vk
SW5SZWdpb25zKGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsK
LSAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFk
KSkKKyAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChm
bG93VGhyZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBMYXlv
dXRTaXplIHByZXZpb3VzU2l6ZSA9IHNpemUoKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIFJl
bmRlckdyaWQ6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkK
IAogICAgIGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290
KCkpOwogCi0gICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAg
dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwog
CiAgICAgY29tcHV0ZU92ZXJmbG93KG9sZENsaWVudEFmdGVyRWRnZSk7CiAgICAgc3RhdGVQdXNo
ZXIucG9wKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZjc3OTA1ZTAwN2Q3YjQ5MzNlZjk2YzZhOGNmNTE2NTg3ZmNhNDg1
YS4uNDljZGM5MGFjZGVjZDQ5YzczYWViMmQ5OWJlN2E2MGM5NGU4ZDhlOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDEzLTAzLTI5ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4K
KworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNdIER5bmFtaWNhbGx5IHJlbW92aW5nIHNoYXBlLWlu
c2lkZSBzaG91bGQgY2F1c2UgcmVsYXlvdXQgb2YgY2hpbGQgYmxvY2tzJyBpbmxpbmUgY29udGVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0
aGF0IHJlbW92ZWQgc2hhcGUtaW5zaWRlcyBjb3JyZWN0bHkgY2F1c2UgcmVsYXlvdXQgaW4gdGhl
aXIgYmxvY2tzJworICAgICAgICBpbmxpbmUgY29udGVudC4KKworICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtZHluYW1pYy1uZXN0ZWQuaHRtbDoKKwogMjAxMy0wMy0yOSAgWm9sdGFuIEFydmFpICA8emFy
dmFpQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZG5laW5n
LiBVcGRhdGVkIHBuZyBleHBlY3RlZCByZXN1bHRzIGFmdGVyIHIxNDYyMDYuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1k
eW5hbWljLW5lc3RlZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbApp
bmRleCAxMGU1NmNlZGUxZGI5NDAzOTAzY2Y2ODA5NGYzZjI2ZmVmNmQzOTRjLi4wNzE2ZDIxYzEz
ZGFmMDZkNDk1YTU3MTZkZTdmOWNiNmE5ZTVkODRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC1l
eHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWwKQEAgLTE2LDcgKzE2
LDcgQEAKICAgICAgICAgY29sb3I6IGdyZWVuOwogICAgIH0KICAgICAuY29udGFpbmVyLnNoYXBl
IHsKLSAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsKKyAgICAgICAgYm9yZGVyOiBub25lOwog
ICAgIH0KICAgICAuc2hhcGU6OmJlZm9yZSB7CiAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
QEAgLTQ0LDEwICs0NCwxOSBAQAogICAgIDxwPlNldHRpbmcgc2hhcGUtaW5zaWRlIHdpdGggYSBw
cmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdyZXNldC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdj
b250YWluZXIgc2hhcGUgaW5zaWRlJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2Pjwv
ZGl2PgogCi0gICAgPHA+U2V0dGluZyBvdXRzaWRlLXNoYXBlIHdpdGggbm8gcHJpb3IgZW50cnk8
L3A+CisgICAgPHA+UmVtb3Zpbmcgc2hhcGUtaW5zaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4K
KyAgICA8ZGl2IGlkPSdyZW1vdmUtaW5zaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyJz48ZGl2
PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgorCisgICAgPHA+UmVtb3ZpbmcgYSBu
ZXN0ZWQgc2hhcGUtaW5zaWRlPC9wPgorICAgIDxkaXYgaWQ9J3JlbW92ZS1uZXN0ZWQtaW5zaWRl
LXNoYXBlJyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4
eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlNldHRpbmcgc2hhcGUtb3V0c2lkZSB3aXRo
IG5vIHByaW9yIGVudHJ5PC9wPgogICAgIDxkaXYgaWQ9J3NldC1vdXRzaWRlLXNoYXBlJyBjbGFz
cz0nY29udGFpbmVyIHNoYXBlIG91dHNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9k
aXY+PC9kaXY+CiAKLSAgICA8cD5TZXR0aW5nIG91dHNpZGUtc2hhcGUgd2l0aCBhIHByaW9yIGVu
dHJ5PC9wPgorICAgIDxwPlNldHRpbmcgc2hhcGUtb3V0c2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8
L3A+CiAgICAgPGRpdiBpZD0ncmVzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBz
aGFwZSBvdXRzaWRlJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgorCisg
ICAgPHA+UmVtb3Zpbmcgc2hhcGUtb3V0c2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAg
PGRpdiBpZD0ncmVtb3ZlLW91dHNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXInPjxkaXY+PGRp
dj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMt
bmVzdGVkLmh0bWwKaW5kZXggZjYxZTc5N2U1NmJkZDVlZjgzN2JhMDM3NGMyZjM0ZDU2MzAwNGIx
NS4uM2U2ZjY3ZjkzYjYxMzA5YWE2YTE3YTQ3MDE3MWMzZGI2M2UzMGViYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHlu
YW1pYy1uZXN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sCkBAIC0xNiwxMCArMTYsMTkg
QEAKICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXIgc2hhcGUgaW5z
aWRlJyk7CiAgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LWluc2lk
ZS1zaGFwZScpOwogICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2NvbnRhaW5lciBz
aGFwZSBpbnNpZGUnKTsKKworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZW1vdmUtaW5zaWRlLXNoYXBlJyk7CisgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAn
Y29udGFpbmVyJyk7CisgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW92
ZS1uZXN0ZWQtaW5zaWRlLXNoYXBlJyk7CisgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3Mn
LCAnJyk7CisKICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2V0LW91dHNp
ZGUtc2hhcGUnKTsKICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXIg
c2hhcGUgb3V0c2lkZScpOwogICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXNldC1vdXRzaWRlLXNoYXBlJyk7CiAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAn
Y29udGFpbmVyIHNoYXBlIG91dHNpZGUnKTsKKworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZW1vdmUtb3V0c2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1
dGUoJ2NsYXNzJywgJ2NvbnRhaW5lcicpOwogICAgIH0KIDwvc2NyaXB0PgogPHN0eWxlPgpAQCAt
MzMsNyArNDIsNyBAQAogICAgICAgICBjb2xvcjogZ3JlZW47CiAgICAgfQogICAgIC5jb250YWlu
ZXIuc2hhcGUgewotICAgICAgICBib3JkZXItY29sb3I6IHdoaXRlOworICAgICAgICBib3JkZXI6
IG5vbmU7CiAgICAgfQogICAgIC5zaGFwZTo6YmVmb3JlIHsKICAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOwpAQCAtNjcsMTAgKzc2LDE5IEBACiAgICAgPHA+U2V0dGluZyBzaGFwZS1pbnNpZGUg
d2l0aCBhIHByaW9yIGVudHJ5PC9wPgogICAgIDxkaXYgaWQ9J3Jlc2V0LWluc2lkZS1zaGFwZScg
Y2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUtYWx0Jz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwv
ZGl2PjwvZGl2PjwvZGl2PgogCi0gICAgPHA+U2V0dGluZyBvdXRzaWRlLXNoYXBlIHdpdGggbm8g
cHJpb3IgZW50cnk8L3A+CisgICAgPHA+UmVtb3Zpbmcgc2hhcGUtaW5zaWRlIHdpdGggYSBwcmlv
ciBlbnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdyZW1vdmUtaW5zaWRlLXNoYXBlJyBjbGFzcz0nY29u
dGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rp
dj4KKworICAgIDxwPlJlbW92aW5nIGEgbmVzdGVkIHNoYXBlLWluc2lkZTwvcD4KKyAgICA8ZGl2
IGNsYXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlJz48ZGl2IGlkPSdyZW1vdmUtbmVzdGVkLWlu
c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUtYWx0Jz48ZGl2Pnh4eHh4
eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlNldHRpbmcgc2hhcGUtb3V0c2lkZSB3
aXRoIG5vIHByaW9yIGVudHJ5PC9wPgogICAgIDxkaXYgaWQ9J3NldC1vdXRzaWRlLXNoYXBlJyBj
bGFzcz0nY29udGFpbmVyJz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNl
dHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPHA+U2V0dGlu
ZyBzaGFwZS1vdXRzaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdyZXNl
dC1vdXRzaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyJyBjbGFzcz0nY29udGFpbmVyIHNoYXBl
IG91dHNpZGUtYWx0Jz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92
aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3Jl
bW92ZS1vdXRzaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIG91dHNpZGUnPjxkaXY+
eHh4eHh4eHh4eDwvZGl2PjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="217715"
          type_id="1"
          status="+"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="217716"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>196542</attachid>
            <date>2013-04-04 15:37:07 -0700</date>
            <delta_ts>2013-04-04 15:37:59 -0700</delta_ts>
            <desc>Updated Patch</desc>
            <filename>111029.patch</filename>
            <type>application/octet-stream</type>
            <size>21222</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ODllZjkzLi4wNzE5N2U1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDQt
MDQgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtjc3MgZXhj
bHVzaW9uc10gRHluYW1pY2FsbHkgcmVtb3Zpbmcgc2hhcGUtaW5zaWRlIHNob3VsZCBjYXVzZSBy
ZWxheW91dCBvZiBjaGlsZCBibG9ja3MnIGlubGluZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXZpZCBIeWF0dC4KKworICAgICAgICBUZXN0IHRoYXQgcmVtb3ZlZCBzaGFwZS1pbnNp
ZGVzIGNvcnJlY3RseSBjYXVzZSByZWxheW91dCBpbiB0aGVpciBibG9ja3MnCisgICAgICAgIGlu
bGluZSBjb250ZW50LgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1s
OgorCiAyMDEzLTA0LTA0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgRXhjZXB0aW9uIHN0YWNrIHVud2luZGluZyBkb2Vzbid0IGhhbmRsZSBpbmxpbmUgY2FsbGZy
YW1lcyBjb3JyZWN0bHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5h
bWljLW5lc3RlZC1leHBlY3RlZC5odG1sCmluZGV4IDEwZTU2Y2UuLjA3MTZkMjFjMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC1leHBlY3Rl
ZC5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgIGNvbG9yOiBncmVlbjsKICAgICB9CiAg
ICAgLmNvbnRhaW5lci5zaGFwZSB7Ci0gICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7CisgICAg
ICAgIGJvcmRlcjogbm9uZTsKICAgICB9CiAgICAgLnNoYXBlOjpiZWZvcmUgewogICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CkBAIC00NCwxMCArNDQsMTkgQEAKICAgICA8cD5TZXR0aW5nIHNo
YXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CiAgICAgPGRpdiBpZD0ncmVzZXQtaW5z
aWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdj48ZGl2Pnh4eHh4
eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3
aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlJlbW92aW5nIHNoYXBlLWluc2lkZSB3aXRo
IGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScgY2xh
c3M9J2NvbnRhaW5lcic+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKwor
ICAgIDxwPlJlbW92aW5nIGEgbmVzdGVkIHNoYXBlLWluc2lkZTwvcD4KKyAgICA8ZGl2IGlkPSdy
ZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUn
PjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5TZXR0aW5n
IHNoYXBlLW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdzZXQt
b3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJz48ZGl2PjxkaXY+
eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgogCi0gICAgPHA+U2V0dGluZyBvdXRzaWRlLXNo
YXBlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUg
d2l0aCBhIHByaW9yIGVudHJ5PC9wPgogICAgIDxkaXYgaWQ9J3Jlc2V0LW91dHNpZGUtc2hhcGUn
IGNsYXNzPSdjb250YWluZXIgc2hhcGUgb3V0c2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rp
dj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBhIHBy
aW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3JlbW92ZS1vdXRzaWRlLXNoYXBlJyBjbGFzcz0n
Y29udGFpbmVyJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgogPC9ib2R5
PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMt
bmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sCmluZGV4IGY2MWU3OTcuLjNlNmY2N2YgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbApAQCAtMTYs
MTAgKzE2LDE5IEBACiAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVy
IHNoYXBlIGluc2lkZScpOwogICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXNldC1pbnNpZGUtc2hhcGUnKTsKICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdj
b250YWluZXIgc2hhcGUgaW5zaWRlJyk7CisKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVtb3ZlLWluc2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUo
J2NsYXNzJywgJ2NvbnRhaW5lcicpOworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1
dGUoJ2NsYXNzJywgJycpOworCiAgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NldC1vdXRzaWRlLXNoYXBlJyk7CiAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAn
Y29udGFpbmVyIHNoYXBlIG91dHNpZGUnKTsKICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzZXQtb3V0c2lkZS1zaGFwZScpOwogICAgICAgICBlbC5zZXRBdHRyaWJ1dGUo
J2NsYXNzJywgJ2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJyk7CisKKyAgICAgICAgZWwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlLW91dHNpZGUtc2hhcGUnKTsKKyAgICAgICAgZWwu
c2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXInKTsKICAgICB9CiA8L3NjcmlwdD4KIDxz
dHlsZT4KQEAgLTMzLDcgKzQyLDcgQEAKICAgICAgICAgY29sb3I6IGdyZWVuOwogICAgIH0KICAg
ICAuY29udGFpbmVyLnNoYXBlIHsKLSAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsKKyAgICAg
ICAgYm9yZGVyOiBub25lOwogICAgIH0KICAgICAuc2hhcGU6OmJlZm9yZSB7CiAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKQEAgLTY3LDEwICs3NiwxOSBAQAogICAgIDxwPlNldHRpbmcgc2hh
cGUtaW5zaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdyZXNldC1pbnNp
ZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+PGRpdj48ZGl2Pnh4
eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFw
ZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlJlbW92aW5nIHNoYXBlLWluc2lkZSB3
aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScg
Y2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+
PC9kaXY+PC9kaXY+CisKKyAgICA8cD5SZW1vdmluZyBhIG5lc3RlZCBzaGFwZS1pbnNpZGU8L3A+
CisgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdiBpZD0ncmVtb3Zl
LW5lc3RlZC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+
PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5TZXR0aW5nIHNoYXBl
LW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdzZXQtb3V0c2lk
ZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+CiAK
LSAgICA8cD5TZXR0aW5nIG91dHNpZGUtc2hhcGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAg
IDxwPlNldHRpbmcgc2hhcGUtb3V0c2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CiAgICAgPGRp
diBpZD0ncmVzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcicgY2xhc3M9J2NvbnRh
aW5lciBzaGFwZSBvdXRzaWRlLWFsdCc+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+CisKKyAg
ICA8cD5SZW1vdmluZyBzaGFwZS1vdXRzaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8
ZGl2IGlkPSdyZW1vdmUtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRz
aWRlJz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgwODEzNi4uZmE1OTI0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTA0LTA0ICBCZWFyIFRyYXZpcyAgPGJldHJh
dmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNdIER5bmFtaWNhbGx5IHJl
bW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVsYXlvdXQgb2YgY2hpbGQgYmxvY2tz
JyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCisKKyAg
ICAgICAgUHJlc2VydmUgYSByZW1vdmVkIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBmb3Igb25l
IGFkZGl0aW9uYWwgbGF5b3V0IHBhc3MKKyAgICAgICAgc28gdGhhdCBpdCBjYW4gbm90aWZ5IGRl
c2NlbmRhbnQgaW5saW5lIGNvbnRlbnQgdG8gcmVsYXlvdXQuIFRoaXMgcGF0Y2ggYWRkcworICAg
ICAgICBhIG5ldyAnbmVlZHNSZW1vdmFsJyBib29sZWFuIHRvIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbywgd2hpY2ggaXMgc2V0IHdoZW4KKyAgICAgICAgYSBzdHlsZSBjaGFuZ2UgcmVtb3ZlcyBi
dXQgZG9lcyBub3QgcmVwbGFjZSBhIHNoYXBlLWluc2lkZS4gV2hlbiBkZXRlcm1pbmluZworICAg
ICAgICB3aGV0aGVyIGEgYmxvY2sgbmVlZHMgdG8gcmVsYXlvdXQgaW5saW5lIGNoaWxkcmVuLCBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm9zIHdpdGgKKyAgICAgICAgdGhlIG5lZWRzUmVtb3ZhbCBi
b29sZWFuIHNldCBhcmUgaW5jbHVkZWQsIGJ1dCBhdCBvdGhlciB0aW1lcyAoc3VjaCBhcyBkdXJp
bmcKKyAgICAgICAgaW5saW5lIGxheW91dCksIHRoZXkgYXJlIGlnbm9yZWQuCisKKyAgICAgICAg
QWRkZWQgdGVzdHMgdG8gdGhlIGV4aXN0aW5nIGR5bmFtaWMgc2hhcGUgdGVzdGZpbGUKKyAgICAg
ICAgZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0
ZWQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpzZXROZWVkc1Jl
bW92YWwpOiBHZXQvU2V0IHRoZQorICAgICAgICBuZWVkc1JlbW92YWwgYm9vbGVhbi4KKyAgICAg
ICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6bmVlZHNSZW1vdmFsKTogRGl0
dG8uCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOgor
ICAgICAgICBJbml0aWFsaXplIHRoZSBuZWVkc1JlbW92YWwgYm9vbGVhbi4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6
OkxheW91dFN0YXRlKTogUHJvcGFnYXRlIHJlbW92ZWQgc2hhcGUgaW5zaWRlcworICAgICAgICBm
b3IgbGF5b3V0IGNvcnJlY3RseS4gWW91IG9ubHkgbmVlZCB0byB0cmFjayBvbmUgYXQgYSB0aW1l
LCBhbmQgYQorICAgICAgICByZW1vdmVkIHNoYXBlIGluc2lkZSBzaG91bGQgbm90IHRha2UgcHJl
Y2VkZW5jZSBvdmVyIGEgc2V0IHNoYXBlLWluc2lkZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICBTZXQgdGhlIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBuZWVkc1JlbW92YWwgYm9vbGVhbiwgcmF0aGVyIHRoYW4g
aW1tZWRpYXRlbHkKKyAgICAgICAgcmVtb3ZpbmcgdGhlIGluZm8uCisgICAgICAgIChXZWJDb3Jl
OjpleGNsdXNpb25JbmZvUmVxdWlyZXNSZWxheW91dCk6IEFjY291bnQgZm9yIHRoZSBuZWVkc1Jl
bW92YWwKKyAgICAgICAgYm9vbGVhbiBhcyBhbm90aGVyIHdheSBvZiByZXF1aXJpbmcgcmVsYXlv
dXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1
c2lvbnNCZWZvcmVDaGlsZExheW91dCk6CisgICAgICAgIExvb2sgdXAgd2hldGhlciBhbiBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8gaGFzIGJlZW4gcmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQp
OgorICAgICAgICBSZW1vdmUgYW55IEV4Y2x1c2lvblNoYXBlSW5zaWRlcyBtYXJrZWQgZm9yIHJl
bW92YWwgYWZ0ZXIgYSBsYXlvdXQgcGFzcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKTogQ2FsbCB0aGUgbmV3IHVwZGF0ZVJl
Z2lvbnNBbmRFeGNsdXNpb25zCisgICAgICAgIEJlZm9yZS9BZnRlciBtZXRob2RzLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IEZpbHRlciB0aGUgcmVzdWx0IGJhc2VkCisg
ICAgICAgIG9uIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUgcmVtb3ZlZCBpbmZvcy4KKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8pOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOiAKKyAgICAgICAgU2FtZSBhcyBSZW5kZXJCbG9jazo6
bGF5b3V0QmxvY2suCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayk6IERpdHRv
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKTogRGl0dG8uCisKIDIwMTMtMDQtMDQgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxNDc2NjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKaW5kZXggNjlhZDAxZi4uNGFhMWIyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8u
aApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVNl
Z21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkg
T1ZFUlJJREUKICAgICB7CisgICAgICAgIEFTU0VSVCghbmVlZHNSZW1vdmFsKCkpOwogICAgICAg
ICBtX3NlZ21lbnRSYW5nZXMuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuIEV4Y2x1c2lvblNoYXBl
SW5mbzxSZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhj
bHVzaW9uU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKICAgICB9CkBAIC05Nyw2ICs5OCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE5lZWRzTGF5b3V0KGJvb2wgdmFsdWUpIHsgbV9uZWVkc0xheW91dCA9IHZh
bHVlOyB9CiAgICAgYm9vbCBuZWVkc0xheW91dCgpIHsgcmV0dXJuIG1fbmVlZHNMYXlvdXQ7IH0K
IAorICAgIHZvaWQgc2V0TmVlZHNSZW1vdmFsKGJvb2wgdmFsdWUpIHsgbV9uZWVkc1JlbW92YWwg
PSB2YWx1ZTsgfQorICAgIGJvb2wgbmVlZHNSZW1vdmFsKCkgeyByZXR1cm4gbV9uZWVkc1JlbW92
YWw7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNvbXB1dGVkU2hhcGVM
b2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBjb21wdXRlZFNoYXBl
KCktPnNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpOyB9CiAKQEAgLTEwNCwxMCArMTA4
LDEyIEBAIHByaXZhdGU6CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKGNvbnN0IFJlbmRl
ckJsb2NrKiByZW5kZXJlcikKICAgICA6IEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywg
JlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hhcGU6OmdldElu
Y2x1ZGVkSW50ZXJ2YWxzPiAocmVuZGVyZXIpCiAgICAgLCBtX25lZWRzTGF5b3V0KGZhbHNlKQor
ICAgICwgbV9uZWVkc1JlbW92YWwoZmFsc2UpCiAgICAgeyB9CiAKICAgICBTZWdtZW50UmFuZ2VM
aXN0IG1fc2VnbWVudFJhbmdlczsKLSAgICBib29sIG1fbmVlZHNMYXlvdXQ7CisgICAgYm9vbCBt
X25lZWRzTGF5b3V0OjE7CisgICAgYm9vbCBtX25lZWRzUmVtb3ZhbDoxOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggOWM0MTc2MC4uNzI1ZWRh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC0xMTMsOSAr
MTEzLDE1IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVu
ZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQogICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpKSB7CiAgICAgICAgIGNvbnN0
IFJlbmRlckJsb2NrKiByZW5kZXJCbG9jayA9IHRvUmVuZGVyQmxvY2socmVuZGVyZXIpOwotICAg
ICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHJlbmRlckJsb2NrLT5leGNsdXNpb25T
aGFwZUluc2lkZUluZm8oKTsKLSAgICAgICAgaWYgKCFtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byAmJiBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIHJlbmRlckJsb2NrLT5h
bGxvd3NFeGNsdXNpb25TaGFwZUluc2lkZUluZm9TaGFyaW5nKCkpCi0gICAgICAgICAgICBtX2V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUlu
Zm87CisgICAgICAgIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gcmVuZGVyQmxvY2stPmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhSZW5kZXJCbG9jazo6U2hhcGVQcmVzZW50T3JSZW1vdmVk
KTsKKyAgICAgICAgaWYgKG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgcmVu
ZGVyQmxvY2stPmFsbG93c0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSkgeworICAg
ICAgICAgICAgaWYgKCFtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykKKyAgICAgICAgICAgICAg
ICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUlu
c2lkZUluZm87CisgICAgICAgICAgICBlbHNlIGlmIChtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by0+bmVlZHNSZW1vdmFsKCkpIHsKKyAgICAgICAgICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87CisgICAgICAgICAg
ICAgICAgbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNldE5lZWRzTGF5b3V0KHRydWUpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGUzMjA1MzQuLjg3OTAyYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTQwMiwxMSArMTQwMiwxMyBA
QCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0
eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvbgogICAgIGlmIChzaGFwZUluc2lkZSA9PSBvbGRTaGFw
ZUluc2lkZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KiBleGNsdXNpb25TaGFwZUluc2lkZUluZm87CiAgICAgaWYgKHNoYXBlSW5zaWRlKSB7Ci0gICAg
ICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0g
ZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyA9IGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgICAgICBl
eGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhudWxscHRyKTsKKyAgICAgICAgZXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zZXROZWVkc1JlbW92YWwoZmFsc2UpOworICAgIH0gZWxz
ZSBpZiAoKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyhTaGFwZVByZXNlbnRPclJlbW92ZWQpKSkKKyAgICAgICAgZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5zZXROZWVkc1JlbW92YWwodHJ1ZSk7CiB9CiAjZW5kaWYKIApAQCAtMTQxNSwx
NiArMTQxNywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZXhjbHVzaW9uSW5mb1JlcXVpcmVzUmVs
YXlvdXQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogI2lmICFFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8qIGluZm8gPSBibG9jay0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKiBpbmZvID0gYmxvY2stPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byhSZW5kZXJCbG9jazo6U2hhcGVQcmVzZW50T3JSZW1vdmVkKTsKICAgICBpZiAoaW5mbykKLSAg
ICAgICAgaW5mby0+c2V0TmVlZHNMYXlvdXQoaW5mby0+c2hhcGVTaXplRGlydHkoKSk7CisgICAg
ICAgIGluZm8tPnNldE5lZWRzTGF5b3V0KGluZm8tPnNoYXBlU2l6ZURpcnR5KCkgfHwgaW5mby0+
bmVlZHNSZW1vdmFsKCkpOwogICAgIGVsc2UKLSAgICAgICAgaW5mbyA9IGJsb2NrLT5sYXlvdXRF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAgICAgaW5mbyA9IGJsb2NrLT5sYXlvdXRF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2s6OlNoYXBlUHJlc2VudE9yUmVtb3Zl
ZCk7CiAgICAgcmV0dXJuIGluZm8gJiYgaW5mby0+bmVlZHNMYXlvdXQoKTsKICNlbmRpZgogfQog
Ci1ib29sIFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXpl
KFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCitib29sIFJlbmRlckJsb2NrOjp1cGRhdGVS
ZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNoaWxkTGF5b3V0KFJlbmRlckZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQpCiB7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGlmICghZmxvd1Ro
cmVhZCAmJiAhZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkpCkBAIC0xNDY2LDYgKzE0NjgsMTYg
QEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSgpCiB9CiAjZW5k
aWYKIAordm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNo
aWxkTGF5b3V0KFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCit7CisjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQorICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvID0gdGhpcy0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFNoYXBlUHJlc2Vu
dE9yUmVtb3ZlZCk7CisgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAmJiBleGNsdXNp
b25TaGFwZUluc2lkZUluZm8tPm5lZWRzUmVtb3ZhbCgpKQorICAgICAgICBzZXRFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8obnVsbHB0cik7CisjZW5kaWYKKyAgICBjb21wdXRlUmVnaW9uUmFuZ2VG
b3JCbG9jayhmbG93VGhyZWFkKTsKK30KKwogdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZVJlZ2lv
blJhbmdlRm9yQmxvY2soUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKIHsKICAgICBpZiAo
Zmxvd1RocmVhZCkKQEAgLTE1NTAsNyArMTU2Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdo
CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dUaHJlYWRDb250YWluaW5n
QmxvY2soKTsKICAgICBpZiAobG9naWNhbFdpZHRoQ2hhbmdlZEluUmVnaW9ucyhmbG93VGhyZWFk
KSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7Ci0gICAgaWYgKHVwZGF0ZVJlZ2lv
bnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoZmxvd1RocmVhZCkpCisgICAgaWYgKHVwZGF0ZVJl
Z2lvbnNBbmRFeGNsdXNpb25zQmVmb3JlQ2hpbGRMYXlvdXQoZmxvd1RocmVhZCkpCiAgICAgICAg
IHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogCiAgICAgLy8gV2UgdXNlIGZvdXIgdmFsdWVzLCBt
YXhUb3BQb3MsIG1heFRvcE5lZywgbWF4Qm90dG9tUG9zLCBhbmQgbWF4Qm90dG9tTmVnLCB0byB0
cmFjawpAQCAtMTYxOSw3ICsxNjMxLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2so
Ym9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKIAogICAg
IGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwog
Ci0gICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRl
UmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAg
Ly8gQWRkIG92ZXJmbG93IGZyb20gY2hpbGRyZW4gKHVubGVzcyB3ZSdyZSBtdWx0aS1jb2x1bW4s
IHNpbmNlIGluIHRoYXQgY2FzZSBhbGwgb3VyIGNoaWxkIG92ZXJmbG93IGlzIGNsaXBwZWQgYW55
d2F5KS4KICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggMjczMzkzZi4uMjhmNTFiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTQ1Miw5ICs0NTIsMTMgQEAgcHVi
bGljOgogICAgICAgICAgICAgc2V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6Y3JlYXRlSW5mbyh0aGlzKSk7CiAgICAgICAgIHJldHVybiBtX3JhcmVE
YXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQoKTsKICAgICB9Ci0gICAgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdAorCisgICAgZW51bSBF
eGNsdXNpb25TaGFwZVN0YXR1cyB7IFNoYXBlUHJlc2VudCwgU2hhcGVQcmVzZW50T3JSZW1vdmVk
IH07CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8oRXhjbHVzaW9uU2hhcGVTdGF0dXMgZXhjbHVzaW9uU2hhcGVTdGF0dXMgPSBTaGFwZVByZXNl
bnQpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9yYXJlRGF0YSAmJiBtX3JhcmVEYXRh
LT5tX3NoYXBlSW5zaWRlSW5mbyAmJiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxl
ZEZvcih0aGlzKSA/IG1fcmFyZURhdGEtPm1fc2hhcGVJbnNpZGVJbmZvLmdldCgpIDogMDsKKyAg
ICAgICAgaWYgKCFtX3JhcmVEYXRhIHx8ICFtX3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mbykK
KyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjppc0VuYWJsZWRGb3IodGhpcykgfHwgKGV4Y2x1c2lvblNoYXBlU3RhdHVzID09IFNo
YXBlUHJlc2VudE9yUmVtb3ZlZCkgPyBtX3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQo
KSA6IDA7CiAgICAgfQogICAgIHZvaWQgc2V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFBhc3NP
d25QdHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvPiB2YWx1ZSkKICAgICB7CkBAIC00NjIsNyAr
NDY2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9yYXJlRGF0YSA9IGFkb3B0UHRyKG5ldyBS
ZW5kZXJCbG9ja1JhcmVEYXRhKHRoaXMpKTsKICAgICAgICAgbV9yYXJlRGF0YS0+bV9zaGFwZUlu
c2lkZUluZm8gPSB2YWx1ZTsKICAgICB9Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBs
YXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdDsKKyAgICBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8qIGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhFeGNsdXNpb25TaGFw
ZVN0YXR1cyA9IFNoYXBlUHJlc2VudCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvd3NFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9TaGFyaW5nKCkgY29uc3QgeyByZXR1cm4gIWlzSW5saW5lKCkgJiYgIWlz
RmxvYXRpbmcoKTsgfQogI2VuZGlmCiAKQEAgLTU3NCw3ICs1NzgsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgfQogI2VuZGlmCiAKLSAgICBib29sIHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNh
bFNpemUoUmVuZGVyRmxvd1RocmVhZCopOworICAgIGJvb2wgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1
c2lvbnNCZWZvcmVDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFkKik7CisgICAgdm9pZCB1cGRh
dGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoUmVuZGVyRmxvd1RocmVhZCop
OwogICAgIHZvaWQgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soUmVuZGVyRmxvd1RocmVhZCop
OwogCiAgICAgdm9pZCB1cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KGJvb2wg
cmVsYXlvdXRDaGlsZHJlbiwgUmVuZGVyQm94Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGE5MmQ2OTQuLjhkMjNiMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCkBAIC03NywxNCArNzcsMjAgQEAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbEhlaWdo
dEZvckxpbmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW4KIH0KIAog
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogUmVu
ZGVyQmxvY2s6OmxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0CitFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIFJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oRXhjbHVzaW9uU2hhcGVTdGF0dXMgZXhjbHVzaW9uU2hhcGVTdGF0dXMpIGNvbnN0CiB7
CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSB2aWV3KCkt
PmxheW91dFN0YXRlKCktPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIGlmIChzaGFw
ZUluc2lkZUluZm8gJiYgc2hhcGVJbnNpZGVJbmZvLT5uZWVkc1JlbW92YWwoKSAmJiBleGNsdXNp
b25TaGFwZVN0YXR1cyA9PSBTaGFwZVByZXNlbnQpCisgICAgICAgIHNoYXBlSW5zaWRlSW5mbyA9
IDA7CisKICAgICBpZiAoIXNoYXBlSW5zaWRlSW5mbyAmJiBmbG93VGhyZWFkQ29udGFpbmluZ0Js
b2NrKCkpIHsKICAgICAgICAgTGF5b3V0VW5pdCBvZmZzZXQgPSBsb2dpY2FsSGVpZ2h0KCkgKyBs
b2dpY2FsSGVpZ2h0Rm9yTGluZSh0aGlzLCBmYWxzZSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiog
cmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChvZmZzZXQpOwotICAgICAgICByZXR1cm4gcmVn
aW9uID8gcmVnaW9uLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSA6IDA7CisgICAgICAgIGlm
IChyZWdpb24pCisgICAgICAgICAgICBzaGFwZUluc2lkZUluZm8gPSByZWdpb24tPmV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbygpOworICAgICAgICByZXR1cm4gc2hhcGVJbnNpZGVJbmZvICYmIHNo
YXBlSW5zaWRlSW5mby0+bmVlZHNSZW1vdmFsKCkgJiYgZXhjbHVzaW9uU2hhcGVTdGF0dXMgPT0g
U2hhcGVQcmVzZW50ID8gMCA6IHNoYXBlSW5zaWRlSW5mbzsKICAgICB9CisKICAgICByZXR1cm4g
c2hhcGVJbnNpZGVJbmZvOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDc2YjkwNzgu
LmNhM2YzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCkKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1Ro
cmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdp
b25zKGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBp
ZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAg
ICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhy
ZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBMYXlvdXRTaXpl
IHByZXZpb3VzU2l6ZSA9IHNpemUoKTsKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBM
YXlvdXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRDaGlsZHJl
biB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93VGhy
ZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoZmxv
d1RocmVhZCk7CiAKICAgICBpZiAoIWlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSAm
JiBoZWlnaHQoKSA9PSAwKSB7CiAgICAgICAgIC8vIFdlIGFyZSBhIGJsb2NrIHdpdGggbm8gYm9y
ZGVyIGFuZCBwYWRkaW5nIGFuZCBhIGNvbXB1dGVkIGhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggMDMzMzY4Zi4uMTlkM2Y5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBA
IC0zMzksNyArMzM5LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9v
bCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGxvZ2ljYWxX
aWR0aENoYW5nZWRJblJlZ2lvbnMoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRy
ZW4gPSB0cnVlOwotICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXpl
KGZsb3dUaHJlYWQpKQorICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNo
aWxkTGF5b3V0KGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsK
IAogICAgIG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmlyc3RMaW5lID0gLTE7CkBAIC0zNjUs
NyArMzY1LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMo
cmVsYXlvdXRDaGlsZHJlbiB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VG
b3JCbG9jayhmbG93VGhyZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVy
Q2hpbGRMYXlvdXQoZmxvd1RocmVhZCk7CiAKICAgICByZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlv
dXRJZk1vdmVkKG9sZENoaWxkUmVjdHMpOwogICAgIC8vIEZJWE1FOiBjc3MzL2ZsZXhib3gvcmVw
YWludC1ydGwtY29sdW1uLmh0bWwgc2VlbXMgdG8gcmVwYWludCBtb3JlIG92ZXJmbG93IHRoYW4g
aXQgbmVlZHMgdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXgg
YTMyNGQzNC4uYmI0ZjI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCBy
ZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dU
aHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGxvZ2ljYWxXaWR0
aENoYW5nZWRJblJlZ2lvbnMoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4g
PSB0cnVlOwotICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXplKGZs
b3dUaHJlYWQpKQorICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNoaWxk
TGF5b3V0KGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKIAog
ICAgIExheW91dFNpemUgcHJldmlvdXNTaXplID0gc2l6ZSgpOwpAQCAtMTcxLDcgKzE3MSw3IEBA
IHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlv
dXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRDaGlsZHJlbiB8
fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93VGhyZWFk
KTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoZmxvd1Ro
cmVhZCk7CiAKICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdlKTsKICAgICBz
dGF0ZVB1c2hlci5wb3AoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196543</attachid>
            <date>2013-04-04 15:37:59 -0700</date>
            <delta_ts>2013-04-05 10:28:50 -0700</delta_ts>
            <desc>Fixing MIME type</desc>
            <filename>111029.patch</filename>
            <type>text/plain</type>
            <size>21222</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ODllZjkzLi4wNzE5N2U1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDQt
MDQgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtjc3MgZXhj
bHVzaW9uc10gRHluYW1pY2FsbHkgcmVtb3Zpbmcgc2hhcGUtaW5zaWRlIHNob3VsZCBjYXVzZSBy
ZWxheW91dCBvZiBjaGlsZCBibG9ja3MnIGlubGluZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXZpZCBIeWF0dC4KKworICAgICAgICBUZXN0IHRoYXQgcmVtb3ZlZCBzaGFwZS1pbnNp
ZGVzIGNvcnJlY3RseSBjYXVzZSByZWxheW91dCBpbiB0aGVpciBibG9ja3MnCisgICAgICAgIGlu
bGluZSBjb250ZW50LgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1s
OgorCiAyMDEzLTA0LTA0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgRXhjZXB0aW9uIHN0YWNrIHVud2luZGluZyBkb2Vzbid0IGhhbmRsZSBpbmxpbmUgY2FsbGZy
YW1lcyBjb3JyZWN0bHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5h
bWljLW5lc3RlZC1leHBlY3RlZC5odG1sCmluZGV4IDEwZTU2Y2UuLjA3MTZkMjFjMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC1leHBlY3Rl
ZC5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgIGNvbG9yOiBncmVlbjsKICAgICB9CiAg
ICAgLmNvbnRhaW5lci5zaGFwZSB7Ci0gICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7CisgICAg
ICAgIGJvcmRlcjogbm9uZTsKICAgICB9CiAgICAgLnNoYXBlOjpiZWZvcmUgewogICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CkBAIC00NCwxMCArNDQsMTkgQEAKICAgICA8cD5TZXR0aW5nIHNo
YXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CiAgICAgPGRpdiBpZD0ncmVzZXQtaW5z
aWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdj48ZGl2Pnh4eHh4
eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3
aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlJlbW92aW5nIHNoYXBlLWluc2lkZSB3aXRo
IGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScgY2xh
c3M9J2NvbnRhaW5lcic+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKwor
ICAgIDxwPlJlbW92aW5nIGEgbmVzdGVkIHNoYXBlLWluc2lkZTwvcD4KKyAgICA8ZGl2IGlkPSdy
ZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUn
PjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5TZXR0aW5n
IHNoYXBlLW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdzZXQt
b3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJz48ZGl2PjxkaXY+
eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgogCi0gICAgPHA+U2V0dGluZyBvdXRzaWRlLXNo
YXBlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8cD5TZXR0aW5nIHNoYXBlLW91dHNpZGUg
d2l0aCBhIHByaW9yIGVudHJ5PC9wPgogICAgIDxkaXYgaWQ9J3Jlc2V0LW91dHNpZGUtc2hhcGUn
IGNsYXNzPSdjb250YWluZXIgc2hhcGUgb3V0c2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rp
dj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlJlbW92aW5nIHNoYXBlLW91dHNpZGUgd2l0aCBhIHBy
aW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3JlbW92ZS1vdXRzaWRlLXNoYXBlJyBjbGFzcz0n
Y29udGFpbmVyJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgogPC9ib2R5
PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMt
bmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sCmluZGV4IGY2MWU3OTcuLjNlNmY2N2YgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbApAQCAtMTYs
MTAgKzE2LDE5IEBACiAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVy
IHNoYXBlIGluc2lkZScpOwogICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXNldC1pbnNpZGUtc2hhcGUnKTsKICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdj
b250YWluZXIgc2hhcGUgaW5zaWRlJyk7CisKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVtb3ZlLWluc2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUo
J2NsYXNzJywgJ2NvbnRhaW5lcicpOworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZW1vdmUtbmVzdGVkLWluc2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1
dGUoJ2NsYXNzJywgJycpOworCiAgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NldC1vdXRzaWRlLXNoYXBlJyk7CiAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAn
Y29udGFpbmVyIHNoYXBlIG91dHNpZGUnKTsKICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzZXQtb3V0c2lkZS1zaGFwZScpOwogICAgICAgICBlbC5zZXRBdHRyaWJ1dGUo
J2NsYXNzJywgJ2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJyk7CisKKyAgICAgICAgZWwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlLW91dHNpZGUtc2hhcGUnKTsKKyAgICAgICAgZWwu
c2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWluZXInKTsKICAgICB9CiA8L3NjcmlwdD4KIDxz
dHlsZT4KQEAgLTMzLDcgKzQyLDcgQEAKICAgICAgICAgY29sb3I6IGdyZWVuOwogICAgIH0KICAg
ICAuY29udGFpbmVyLnNoYXBlIHsKLSAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsKKyAgICAg
ICAgYm9yZGVyOiBub25lOwogICAgIH0KICAgICAuc2hhcGU6OmJlZm9yZSB7CiAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKQEAgLTY3LDEwICs3NiwxOSBAQAogICAgIDxwPlNldHRpbmcgc2hh
cGUtaW5zaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdyZXNldC1pbnNp
ZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+PGRpdj48ZGl2Pnh4
eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KIAotICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFw
ZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxwPlJlbW92aW5nIHNoYXBlLWluc2lkZSB3
aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0ncmVtb3ZlLWluc2lkZS1zaGFwZScg
Y2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+
PC9kaXY+PC9kaXY+CisKKyAgICA8cD5SZW1vdmluZyBhIG5lc3RlZCBzaGFwZS1pbnNpZGU8L3A+
CisgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdiBpZD0ncmVtb3Zl
LW5lc3RlZC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+
PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5TZXR0aW5nIHNoYXBl
LW91dHNpZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4KICAgICA8ZGl2IGlkPSdzZXQtb3V0c2lk
ZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+CiAK
LSAgICA8cD5TZXR0aW5nIG91dHNpZGUtc2hhcGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAg
IDxwPlNldHRpbmcgc2hhcGUtb3V0c2lkZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CiAgICAgPGRp
diBpZD0ncmVzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcicgY2xhc3M9J2NvbnRh
aW5lciBzaGFwZSBvdXRzaWRlLWFsdCc+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+CisKKyAg
ICA8cD5SZW1vdmluZyBzaGFwZS1vdXRzaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8
ZGl2IGlkPSdyZW1vdmUtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRz
aWRlJz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgwODEzNi4uZmE1OTI0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTA0LTA0ICBCZWFyIFRyYXZpcyAgPGJldHJh
dmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNdIER5bmFtaWNhbGx5IHJl
bW92aW5nIHNoYXBlLWluc2lkZSBzaG91bGQgY2F1c2UgcmVsYXlvdXQgb2YgY2hpbGQgYmxvY2tz
JyBpbmxpbmUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTExMDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCisKKyAg
ICAgICAgUHJlc2VydmUgYSByZW1vdmVkIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBmb3Igb25l
IGFkZGl0aW9uYWwgbGF5b3V0IHBhc3MKKyAgICAgICAgc28gdGhhdCBpdCBjYW4gbm90aWZ5IGRl
c2NlbmRhbnQgaW5saW5lIGNvbnRlbnQgdG8gcmVsYXlvdXQuIFRoaXMgcGF0Y2ggYWRkcworICAg
ICAgICBhIG5ldyAnbmVlZHNSZW1vdmFsJyBib29sZWFuIHRvIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbywgd2hpY2ggaXMgc2V0IHdoZW4KKyAgICAgICAgYSBzdHlsZSBjaGFuZ2UgcmVtb3ZlcyBi
dXQgZG9lcyBub3QgcmVwbGFjZSBhIHNoYXBlLWluc2lkZS4gV2hlbiBkZXRlcm1pbmluZworICAg
ICAgICB3aGV0aGVyIGEgYmxvY2sgbmVlZHMgdG8gcmVsYXlvdXQgaW5saW5lIGNoaWxkcmVuLCBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm9zIHdpdGgKKyAgICAgICAgdGhlIG5lZWRzUmVtb3ZhbCBi
b29sZWFuIHNldCBhcmUgaW5jbHVkZWQsIGJ1dCBhdCBvdGhlciB0aW1lcyAoc3VjaCBhcyBkdXJp
bmcKKyAgICAgICAgaW5saW5lIGxheW91dCksIHRoZXkgYXJlIGlnbm9yZWQuCisKKyAgICAgICAg
QWRkZWQgdGVzdHMgdG8gdGhlIGV4aXN0aW5nIGR5bmFtaWMgc2hhcGUgdGVzdGZpbGUKKyAgICAg
ICAgZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0
ZWQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpzZXROZWVkc1Jl
bW92YWwpOiBHZXQvU2V0IHRoZQorICAgICAgICBuZWVkc1JlbW92YWwgYm9vbGVhbi4KKyAgICAg
ICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6bmVlZHNSZW1vdmFsKTogRGl0
dG8uCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm8pOgor
ICAgICAgICBJbml0aWFsaXplIHRoZSBuZWVkc1JlbW92YWwgYm9vbGVhbi4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6
OkxheW91dFN0YXRlKTogUHJvcGFnYXRlIHJlbW92ZWQgc2hhcGUgaW5zaWRlcworICAgICAgICBm
b3IgbGF5b3V0IGNvcnJlY3RseS4gWW91IG9ubHkgbmVlZCB0byB0cmFjayBvbmUgYXQgYSB0aW1l
LCBhbmQgYQorICAgICAgICByZW1vdmVkIHNoYXBlIGluc2lkZSBzaG91bGQgbm90IHRha2UgcHJl
Y2VkZW5jZSBvdmVyIGEgc2V0IHNoYXBlLWluc2lkZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICBTZXQgdGhlIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBuZWVkc1JlbW92YWwgYm9vbGVhbiwgcmF0aGVyIHRoYW4g
aW1tZWRpYXRlbHkKKyAgICAgICAgcmVtb3ZpbmcgdGhlIGluZm8uCisgICAgICAgIChXZWJDb3Jl
OjpleGNsdXNpb25JbmZvUmVxdWlyZXNSZWxheW91dCk6IEFjY291bnQgZm9yIHRoZSBuZWVkc1Jl
bW92YWwKKyAgICAgICAgYm9vbGVhbiBhcyBhbm90aGVyIHdheSBvZiByZXF1aXJpbmcgcmVsYXlv
dXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1
c2lvbnNCZWZvcmVDaGlsZExheW91dCk6CisgICAgICAgIExvb2sgdXAgd2hldGhlciBhbiBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8gaGFzIGJlZW4gcmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQp
OgorICAgICAgICBSZW1vdmUgYW55IEV4Y2x1c2lvblNoYXBlSW5zaWRlcyBtYXJrZWQgZm9yIHJl
bW92YWwgYWZ0ZXIgYSBsYXlvdXQgcGFzcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKTogQ2FsbCB0aGUgbmV3IHVwZGF0ZVJl
Z2lvbnNBbmRFeGNsdXNpb25zCisgICAgICAgIEJlZm9yZS9BZnRlciBtZXRob2RzLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IEZpbHRlciB0aGUgcmVzdWx0IGJhc2VkCisg
ICAgICAgIG9uIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUgcmVtb3ZlZCBpbmZvcy4KKyAgICAg
ICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8pOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOiAKKyAgICAgICAgU2FtZSBhcyBSZW5kZXJCbG9jazo6
bGF5b3V0QmxvY2suCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayk6IERpdHRv
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKTogRGl0dG8uCisKIDIwMTMtMDQtMDQgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxNDc2NjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKaW5kZXggNjlhZDAxZi4uNGFhMWIyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8u
aApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVNl
Z21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkg
T1ZFUlJJREUKICAgICB7CisgICAgICAgIEFTU0VSVCghbmVlZHNSZW1vdmFsKCkpOwogICAgICAg
ICBtX3NlZ21lbnRSYW5nZXMuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuIEV4Y2x1c2lvblNoYXBl
SW5mbzxSZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhj
bHVzaW9uU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKICAgICB9CkBAIC05Nyw2ICs5OCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE5lZWRzTGF5b3V0KGJvb2wgdmFsdWUpIHsgbV9uZWVkc0xheW91dCA9IHZh
bHVlOyB9CiAgICAgYm9vbCBuZWVkc0xheW91dCgpIHsgcmV0dXJuIG1fbmVlZHNMYXlvdXQ7IH0K
IAorICAgIHZvaWQgc2V0TmVlZHNSZW1vdmFsKGJvb2wgdmFsdWUpIHsgbV9uZWVkc1JlbW92YWwg
PSB2YWx1ZTsgfQorICAgIGJvb2wgbmVlZHNSZW1vdmFsKCkgeyByZXR1cm4gbV9uZWVkc1JlbW92
YWw7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNvbXB1dGVkU2hhcGVM
b2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBjb21wdXRlZFNoYXBl
KCktPnNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpOyB9CiAKQEAgLTEwNCwxMCArMTA4
LDEyIEBAIHByaXZhdGU6CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKGNvbnN0IFJlbmRl
ckJsb2NrKiByZW5kZXJlcikKICAgICA6IEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywg
JlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hhcGU6OmdldElu
Y2x1ZGVkSW50ZXJ2YWxzPiAocmVuZGVyZXIpCiAgICAgLCBtX25lZWRzTGF5b3V0KGZhbHNlKQor
ICAgICwgbV9uZWVkc1JlbW92YWwoZmFsc2UpCiAgICAgeyB9CiAKICAgICBTZWdtZW50UmFuZ2VM
aXN0IG1fc2VnbWVudFJhbmdlczsKLSAgICBib29sIG1fbmVlZHNMYXlvdXQ7CisgICAgYm9vbCBt
X25lZWRzTGF5b3V0OjE7CisgICAgYm9vbCBtX25lZWRzUmVtb3ZhbDoxOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggOWM0MTc2MC4uNzI1ZWRh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC0xMTMsOSAr
MTEzLDE1IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVu
ZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQogICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpKSB7CiAgICAgICAgIGNvbnN0
IFJlbmRlckJsb2NrKiByZW5kZXJCbG9jayA9IHRvUmVuZGVyQmxvY2socmVuZGVyZXIpOwotICAg
ICAgICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHJlbmRlckJsb2NrLT5leGNsdXNpb25T
aGFwZUluc2lkZUluZm8oKTsKLSAgICAgICAgaWYgKCFtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byAmJiBtX25leHQtPm1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIHJlbmRlckJsb2NrLT5h
bGxvd3NFeGNsdXNpb25TaGFwZUluc2lkZUluZm9TaGFyaW5nKCkpCi0gICAgICAgICAgICBtX2V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUlu
Zm87CisgICAgICAgIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gcmVuZGVyQmxvY2stPmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhSZW5kZXJCbG9jazo6U2hhcGVQcmVzZW50T3JSZW1vdmVk
KTsKKyAgICAgICAgaWYgKG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgcmVu
ZGVyQmxvY2stPmFsbG93c0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSkgeworICAg
ICAgICAgICAgaWYgKCFtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykKKyAgICAgICAgICAgICAg
ICBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUlu
c2lkZUluZm87CisgICAgICAgICAgICBlbHNlIGlmIChtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by0+bmVlZHNSZW1vdmFsKCkpIHsKKyAgICAgICAgICAgICAgICBtX2V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyA9IG1fbmV4dC0+bV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87CisgICAgICAgICAg
ICAgICAgbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNldE5lZWRzTGF5b3V0KHRydWUpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGUzMjA1MzQuLjg3OTAyYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTQwMiwxMSArMTQwMiwxMyBA
QCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0
eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvbgogICAgIGlmIChzaGFwZUluc2lkZSA9PSBvbGRTaGFw
ZUluc2lkZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KiBleGNsdXNpb25TaGFwZUluc2lkZUluZm87CiAgICAgaWYgKHNoYXBlSW5zaWRlKSB7Ci0gICAg
ICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0g
ZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyA9IGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgICAgICBl
eGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIHNldEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhudWxscHRyKTsKKyAgICAgICAgZXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zZXROZWVkc1JlbW92YWwoZmFsc2UpOworICAgIH0gZWxz
ZSBpZiAoKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyhTaGFwZVByZXNlbnRPclJlbW92ZWQpKSkKKyAgICAgICAgZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5zZXROZWVkc1JlbW92YWwodHJ1ZSk7CiB9CiAjZW5kaWYKIApAQCAtMTQxNSwx
NiArMTQxNywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZXhjbHVzaW9uSW5mb1JlcXVpcmVzUmVs
YXlvdXQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogI2lmICFFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8qIGluZm8gPSBibG9jay0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKiBpbmZvID0gYmxvY2stPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byhSZW5kZXJCbG9jazo6U2hhcGVQcmVzZW50T3JSZW1vdmVkKTsKICAgICBpZiAoaW5mbykKLSAg
ICAgICAgaW5mby0+c2V0TmVlZHNMYXlvdXQoaW5mby0+c2hhcGVTaXplRGlydHkoKSk7CisgICAg
ICAgIGluZm8tPnNldE5lZWRzTGF5b3V0KGluZm8tPnNoYXBlU2l6ZURpcnR5KCkgfHwgaW5mby0+
bmVlZHNSZW1vdmFsKCkpOwogICAgIGVsc2UKLSAgICAgICAgaW5mbyA9IGJsb2NrLT5sYXlvdXRF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAgICAgaW5mbyA9IGJsb2NrLT5sYXlvdXRF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2s6OlNoYXBlUHJlc2VudE9yUmVtb3Zl
ZCk7CiAgICAgcmV0dXJuIGluZm8gJiYgaW5mby0+bmVlZHNMYXlvdXQoKTsKICNlbmRpZgogfQog
Ci1ib29sIFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXpl
KFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCitib29sIFJlbmRlckJsb2NrOjp1cGRhdGVS
ZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNoaWxkTGF5b3V0KFJlbmRlckZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQpCiB7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGlmICghZmxvd1Ro
cmVhZCAmJiAhZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkpCkBAIC0xNDY2LDYgKzE0NjgsMTYg
QEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSgpCiB9CiAjZW5k
aWYKIAordm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNo
aWxkTGF5b3V0KFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCit7CisjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQorICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvID0gdGhpcy0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFNoYXBlUHJlc2Vu
dE9yUmVtb3ZlZCk7CisgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAmJiBleGNsdXNp
b25TaGFwZUluc2lkZUluZm8tPm5lZWRzUmVtb3ZhbCgpKQorICAgICAgICBzZXRFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8obnVsbHB0cik7CisjZW5kaWYKKyAgICBjb21wdXRlUmVnaW9uUmFuZ2VG
b3JCbG9jayhmbG93VGhyZWFkKTsKK30KKwogdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZVJlZ2lv
blJhbmdlRm9yQmxvY2soUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKIHsKICAgICBpZiAo
Zmxvd1RocmVhZCkKQEAgLTE1NTAsNyArMTU2Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdo
CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dUaHJlYWRDb250YWluaW5n
QmxvY2soKTsKICAgICBpZiAobG9naWNhbFdpZHRoQ2hhbmdlZEluUmVnaW9ucyhmbG93VGhyZWFk
KSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7Ci0gICAgaWYgKHVwZGF0ZVJlZ2lv
bnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoZmxvd1RocmVhZCkpCisgICAgaWYgKHVwZGF0ZVJl
Z2lvbnNBbmRFeGNsdXNpb25zQmVmb3JlQ2hpbGRMYXlvdXQoZmxvd1RocmVhZCkpCiAgICAgICAg
IHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogCiAgICAgLy8gV2UgdXNlIGZvdXIgdmFsdWVzLCBt
YXhUb3BQb3MsIG1heFRvcE5lZywgbWF4Qm90dG9tUG9zLCBhbmQgbWF4Qm90dG9tTmVnLCB0byB0
cmFjawpAQCAtMTYxOSw3ICsxNjMxLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2so
Ym9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKIAogICAg
IGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOwog
Ci0gICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soZmxvd1RocmVhZCk7CisgICAgdXBkYXRl
UmVnaW9uc0FuZEV4Y2x1c2lvbnNBZnRlckNoaWxkTGF5b3V0KGZsb3dUaHJlYWQpOwogCiAgICAg
Ly8gQWRkIG92ZXJmbG93IGZyb20gY2hpbGRyZW4gKHVubGVzcyB3ZSdyZSBtdWx0aS1jb2x1bW4s
IHNpbmNlIGluIHRoYXQgY2FzZSBhbGwgb3VyIGNoaWxkIG92ZXJmbG93IGlzIGNsaXBwZWQgYW55
d2F5KS4KICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggMjczMzkzZi4uMjhmNTFiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTQ1Miw5ICs0NTIsMTMgQEAgcHVi
bGljOgogICAgICAgICAgICAgc2V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6Y3JlYXRlSW5mbyh0aGlzKSk7CiAgICAgICAgIHJldHVybiBtX3JhcmVE
YXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQoKTsKICAgICB9Ci0gICAgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdAorCisgICAgZW51bSBF
eGNsdXNpb25TaGFwZVN0YXR1cyB7IFNoYXBlUHJlc2VudCwgU2hhcGVQcmVzZW50T3JSZW1vdmVk
IH07CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8oRXhjbHVzaW9uU2hhcGVTdGF0dXMgZXhjbHVzaW9uU2hhcGVTdGF0dXMgPSBTaGFwZVByZXNl
bnQpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9yYXJlRGF0YSAmJiBtX3JhcmVEYXRh
LT5tX3NoYXBlSW5zaWRlSW5mbyAmJiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxl
ZEZvcih0aGlzKSA/IG1fcmFyZURhdGEtPm1fc2hhcGVJbnNpZGVJbmZvLmdldCgpIDogMDsKKyAg
ICAgICAgaWYgKCFtX3JhcmVEYXRhIHx8ICFtX3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mbykK
KyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjppc0VuYWJsZWRGb3IodGhpcykgfHwgKGV4Y2x1c2lvblNoYXBlU3RhdHVzID09IFNo
YXBlUHJlc2VudE9yUmVtb3ZlZCkgPyBtX3JhcmVEYXRhLT5tX3NoYXBlSW5zaWRlSW5mby5nZXQo
KSA6IDA7CiAgICAgfQogICAgIHZvaWQgc2V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFBhc3NP
d25QdHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvPiB2YWx1ZSkKICAgICB7CkBAIC00NjIsNyAr
NDY2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9yYXJlRGF0YSA9IGFkb3B0UHRyKG5ldyBS
ZW5kZXJCbG9ja1JhcmVEYXRhKHRoaXMpKTsKICAgICAgICAgbV9yYXJlRGF0YS0+bV9zaGFwZUlu
c2lkZUluZm8gPSB2YWx1ZTsKICAgICB9Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBs
YXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdDsKKyAgICBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8qIGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhFeGNsdXNpb25TaGFw
ZVN0YXR1cyA9IFNoYXBlUHJlc2VudCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvd3NFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9TaGFyaW5nKCkgY29uc3QgeyByZXR1cm4gIWlzSW5saW5lKCkgJiYgIWlz
RmxvYXRpbmcoKTsgfQogI2VuZGlmCiAKQEAgLTU3NCw3ICs1NzgsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgfQogI2VuZGlmCiAKLSAgICBib29sIHVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNh
bFNpemUoUmVuZGVyRmxvd1RocmVhZCopOworICAgIGJvb2wgdXBkYXRlUmVnaW9uc0FuZEV4Y2x1
c2lvbnNCZWZvcmVDaGlsZExheW91dChSZW5kZXJGbG93VGhyZWFkKik7CisgICAgdm9pZCB1cGRh
dGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoUmVuZGVyRmxvd1RocmVhZCop
OwogICAgIHZvaWQgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soUmVuZGVyRmxvd1RocmVhZCop
OwogCiAgICAgdm9pZCB1cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KGJvb2wg
cmVsYXlvdXRDaGlsZHJlbiwgUmVuZGVyQm94Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGE5MmQ2OTQuLjhkMjNiMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCkBAIC03NywxNCArNzcsMjAgQEAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbEhlaWdo
dEZvckxpbmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW4KIH0KIAog
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogUmVu
ZGVyQmxvY2s6OmxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0CitFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIFJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oRXhjbHVzaW9uU2hhcGVTdGF0dXMgZXhjbHVzaW9uU2hhcGVTdGF0dXMpIGNvbnN0CiB7
CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSB2aWV3KCkt
PmxheW91dFN0YXRlKCktPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIGlmIChzaGFw
ZUluc2lkZUluZm8gJiYgc2hhcGVJbnNpZGVJbmZvLT5uZWVkc1JlbW92YWwoKSAmJiBleGNsdXNp
b25TaGFwZVN0YXR1cyA9PSBTaGFwZVByZXNlbnQpCisgICAgICAgIHNoYXBlSW5zaWRlSW5mbyA9
IDA7CisKICAgICBpZiAoIXNoYXBlSW5zaWRlSW5mbyAmJiBmbG93VGhyZWFkQ29udGFpbmluZ0Js
b2NrKCkpIHsKICAgICAgICAgTGF5b3V0VW5pdCBvZmZzZXQgPSBsb2dpY2FsSGVpZ2h0KCkgKyBs
b2dpY2FsSGVpZ2h0Rm9yTGluZSh0aGlzLCBmYWxzZSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiog
cmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChvZmZzZXQpOwotICAgICAgICByZXR1cm4gcmVn
aW9uID8gcmVnaW9uLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSA6IDA7CisgICAgICAgIGlm
IChyZWdpb24pCisgICAgICAgICAgICBzaGFwZUluc2lkZUluZm8gPSByZWdpb24tPmV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbygpOworICAgICAgICByZXR1cm4gc2hhcGVJbnNpZGVJbmZvICYmIHNo
YXBlSW5zaWRlSW5mby0+bmVlZHNSZW1vdmFsKCkgJiYgZXhjbHVzaW9uU2hhcGVTdGF0dXMgPT0g
U2hhcGVQcmVzZW50ID8gMCA6IHNoYXBlSW5zaWRlSW5mbzsKICAgICB9CisKICAgICByZXR1cm4g
c2hhcGVJbnNpZGVJbmZvOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDc2YjkwNzgu
LmNhM2YzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCkKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1Ro
cmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdp
b25zKGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKLSAgICBp
ZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZShmbG93VGhyZWFkKSkKKyAg
ICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNCZWZvcmVDaGlsZExheW91dChmbG93VGhy
ZWFkKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAKICAgICBMYXlvdXRTaXpl
IHByZXZpb3VzU2l6ZSA9IHNpemUoKTsKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBM
YXlvdXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRDaGlsZHJl
biB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93VGhy
ZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoZmxv
d1RocmVhZCk7CiAKICAgICBpZiAoIWlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSAm
JiBoZWlnaHQoKSA9PSAwKSB7CiAgICAgICAgIC8vIFdlIGFyZSBhIGJsb2NrIHdpdGggbm8gYm9y
ZGVyIGFuZCBwYWRkaW5nIGFuZCBhIGNvbXB1dGVkIGhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggMDMzMzY4Zi4uMTlkM2Y5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBA
IC0zMzksNyArMzM5LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9v
bCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGxvZ2ljYWxX
aWR0aENoYW5nZWRJblJlZ2lvbnMoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRy
ZW4gPSB0cnVlOwotICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXpl
KGZsb3dUaHJlYWQpKQorICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNo
aWxkTGF5b3V0KGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsK
IAogICAgIG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmlyc3RMaW5lID0gLTE7CkBAIC0zNjUs
NyArMzY1LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMo
cmVsYXlvdXRDaGlsZHJlbiB8fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VG
b3JCbG9jayhmbG93VGhyZWFkKTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVy
Q2hpbGRMYXlvdXQoZmxvd1RocmVhZCk7CiAKICAgICByZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlv
dXRJZk1vdmVkKG9sZENoaWxkUmVjdHMpOwogICAgIC8vIEZJWE1FOiBjc3MzL2ZsZXhib3gvcmVw
YWludC1ydGwtY29sdW1uLmh0bWwgc2VlbXMgdG8gcmVwYWludCBtb3JlIG92ZXJmbG93IHRoYW4g
aXQgbmVlZHMgdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXgg
YTMyNGQzNC4uYmI0ZjI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCBy
ZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dU
aHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGxvZ2ljYWxXaWR0
aENoYW5nZWRJblJlZ2lvbnMoZmxvd1RocmVhZCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4g
PSB0cnVlOwotICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXplKGZs
b3dUaHJlYWQpKQorICAgIGlmICh1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0JlZm9yZUNoaWxk
TGF5b3V0KGZsb3dUaHJlYWQpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKIAog
ICAgIExheW91dFNpemUgcHJldmlvdXNTaXplID0gc2l6ZSgpOwpAQCAtMTcxLDcgKzE3MSw3IEBA
IHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlv
dXRVbml0KQogCiAgICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHMocmVsYXlvdXRDaGlsZHJlbiB8
fCBpc1Jvb3QoKSk7CiAKLSAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jayhmbG93VGhyZWFk
KTsKKyAgICB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0FmdGVyQ2hpbGRMYXlvdXQoZmxvd1Ro
cmVhZCk7CiAKICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdlKTsKICAgICBz
dGF0ZVB1c2hlci5wb3AoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>