<?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>107914</bug_id>
          
          <creation_ts>2013-01-24 22:05:10 -0800</creation_ts>
          <short_desc>Wrap content filtering code in an object</short_desc>
          <delta_ts>2013-01-30 14:46:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>buildbot</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>816217</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-01-24 22:05:10 -0800</bug_when>
    <thetext>Wrap content filtering code in an object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816256</commentid>
    <comment_count>1</comment_count>
      <attachid>184671</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-01-24 22:42:27 -0800</bug_when>
    <thetext>Created attachment 184671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816952</commentid>
    <comment_count>2</comment_count>
      <attachid>184815</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-01-25 15:24:30 -0800</bug_when>
    <thetext>Created attachment 184815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816981</commentid>
    <comment_count>3</comment_count>
      <attachid>184815</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-25 15:50:11 -0800</bug_when>
    <thetext>Comment on attachment 184815
Patch

Attachment 184815 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16113629</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816999</commentid>
    <comment_count>4</comment_count>
      <attachid>184815</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-25 16:01:28 -0800</bug_when>
    <thetext>Comment on attachment 184815
Patch

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

&gt; Source/WebCore/loader/MainResourceLoader.h:40
&gt; +#include &quot;ContentFilter.h&quot;

Please don&apos;t include it, a forward declaration should suffice (and if it doesn&apos;t, please fix whatever is preventing it from working).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817015</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-01-25 16:12:21 -0800</bug_when>
    <thetext>Committed r140875: &lt;http://trac.webkit.org/changeset/140875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817937</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-28 11:54:27 -0800</bug_when>
    <thetext>It appears that this broke a unit test WebKit2.DownloadDecideDestinationCrash:
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29/builds/4964/steps/run-api-tests/logs/stdio

Blame list: http://trac.webkit.org/log/?verbose=on&amp;rev=140882&amp;stop_rev=140875</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820549</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-01-30 14:18:10 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; It appears that this broke a unit test WebKit2.DownloadDecideDestinationCrash:
&gt; http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29/builds/4964/steps/run-api-tests/logs/stdio
&gt; 
&gt; Blame list: http://trac.webkit.org/log/?verbose=on&amp;rev=140882&amp;stop_rev=140875

This was due to some unrelated WKSI changes that got pulled in by &lt;http://trac.webkit.org/changeset/140876/&gt;. Alexey fixed this in &lt;http://trac.webkit.org/changeset/141285&gt; and the API test is no longer failing on the bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820579</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-30 14:32:06 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; It appears that this broke a unit test WebKit2.DownloadDecideDestinationCrash:
&gt; &gt; http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29/builds/4964/steps/run-api-tests/logs/stdio
&gt; &gt; 
&gt; &gt; Blame list: http://trac.webkit.org/log/?verbose=on&amp;rev=140882&amp;stop_rev=140875
&gt; 
&gt; This was due to some unrelated WKSI changes that got pulled in by &lt;http://trac.webkit.org/changeset/140876/&gt;. Alexey fixed this in &lt;http://trac.webkit.org/changeset/141285&gt; and the API test is no longer failing on the bot.

Thanks a lot for the follow up! Sorry about the wrong blame list :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820617</commentid>
    <comment_count>9</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-01-30 14:46:32 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Thanks a lot for the follow up! Sorry about the wrong blame list :(

That&apos;s okay, and the blame list was right (if not the specific commit) :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184671</attachid>
            <date>2013-01-24 22:42:27 -0800</date>
            <delta_ts>2013-01-25 15:24:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107914-20130124223919.patch</filename>
            <type>text/plain</type>
            <size>26592</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWYxNDJlOGRkNDE2Yzhk
NzI2YWU5NTFhNTc2ZmU0Y2E0ZWJmMTZlNi4uN2NiYTBkZjg2ZGVlMzE5MTk3MWJkYWRjMjQzYWJm
ZmJmYmY2MmIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAxLTI0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBXcmFwIGNvbnRlbnQgZmlsdGVy
aW5nIGNvZGUgaW4gYW4gb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDc5MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb250ZW50IGZpbHRlcmluZyBjb2RlIGN1cnJlbnRseSByZXF1aXJlcyBl
eHBsaWNpdCBhbmQgc29tZXdoYXQgY29tcGxleAorICAgICAgICBsaWZldGltZSBtYW5hZ2VtZW50
IG9mIHRoZSBXZWJGaWx0ZXJFdmFsdWF0b3Igb2JqZWN0IGZvciBjb3JyZWN0CisgICAgICAgIGJl
aGF2aW9yLiBTaW1wbGlmeSB0aGlzIGJ5IHdyYXBwaW5nIFdlYkZpbHRlckV2YWx1YXRvciBpbiBh
biBvYmplY3QgYW5kCisgICAgICAgIGhhdmUgTWFpblJlc291cmNlTG9hZGVyIGltcGxpY2l0bHkg
bWFuYWdlIGl0cyBsaWZldGltZSBieSBob2xkaW5nIGl0IGluCisgICAgICAgIGFuIE93blB0ci4K
KworICAgICAgICBUaGlzIGNoYW5nZSBoYXMgYmVuZWZpdHMgb3RoZXIgdGhhbiB0aGUgc2ltcGxp
ZmllZCBsaWZldGltZSBtYW5hZ2VtZW50LgorICAgICAgICBJdCByZW1vdmVzIGRpcmVjdCBjYWxs
cyBpbnRvIFdlYktpdFN5c3RlbUludGVyZmFjZSBmcm9tIHRoZSBsb2FkZXIsIGFuZAorICAgICAg
ICBpdCBhbGxvd3MgdXMgdG8ga2VlcCBhIHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlIHJlcGxhY2Vt
ZW50IGRhdGEKKyAgICAgICAgcmV0dXJuZWQgZnJvbSB3a0ZpbHRlckFkZERhdGEoKSBhbmQgd2tG
aWx0ZXJEYXRhQ29tcGxldGUoKSByYXRoZXIgdGhhbgorICAgICAgICByZWx5aW5nIG9uIGl0IGJl
aW5nIGF1dG9yZWxlYXNlZC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGVkIHRv
IG1hdGNoIGNoYW5nZXMgaW4gV2ViQ29yZVN5c3RlbUludGVyZmFjZS4KKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAg
KiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKTogUmVtb3ZlZCB1bm5lZWRlZCBpbml0
aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6fk1haW5S
ZXNvdXJjZUxvYWRlcik6IFJlbW92ZWQgYW4gdW5uZWVkZWQgQVNTRVJUKCkuCisgICAgICAgIChX
ZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCk6IFJlbW92ZWQgdW5uZWVkZWQgd2tG
aWx0ZXJSZWxlYXNlKCkuCisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJl
c3BvbnNlUmVjZWl2ZWQpOiBDcmVhdGVkIGEKKyAgICAgICAgQ29udGVudEZpbHRlciBvYmplY3Qg
cmF0aGVyIHRoYW4gY2FsbGluZyB3a0ZpbHRlckNyZWF0ZUluc3RhbmNlKCkuCisgICAgICAgIChX
ZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZCk6IFJld3JvdGUgY29udGVu
dCBmaWx0ZXJpbmcKKyAgICAgICAgbG9naWMgaW4gdGVybXMgb2YgdGhlIHdyYXBwZXIgb2JqZWN0
LiBSZW1vdmVkIGFueSBleHBsaWNpdCBsaWZldGltZQorICAgICAgICBtYW5hZ2VtZW50LgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KTogUmVtb3ZlZCB1bm5lZWRlZCB3a0ZpbHRlclJlbGVhc2UoKS4KKyAgICAgICAgKiBsb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ29udGVudEZpbHRlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Q29udGVudEZpbHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RmlsdGVyOjppc0VuYWJsZWQpOiBSZXR1cm5lZCB0aGUgcmVzdWx0IG9mIHdrRmls
dGVySXNNYW5hZ2VkU2Vzc2lvbigpLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6
YWRkRGF0YSk6IENhbGxlZCB3a0ZpbHRlckFkZERhdGEoKSBhbmQgc3RvcmVkCisgICAgICAgIHRo
ZSByZXN1bHRpbmcgTlNEYXRhIGluIG1fcmVwbGFjZW1lbnREYXRhLgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdEYXRhKTogQ2FsbGVkIHdrRmlsdGVyRGF0
YUNvbXBsZXRlKCkKKyAgICAgICAgYW5kIHN0b3JlZCB0aGUgcmVzdWx0aW5nIE5TRGF0YSBpbiBt
X3JlcGxhY2VtZW50RGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Om5lZWRz
TW9yZURhdGEpOiBSZXR1cm5lZCB0aGUgcmVzdWx0IG9mIHdrRmlsdGVySXNCdWZmZXJpbmcoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmRpZEJsb2NrRGF0YSk6IFJldHVybmVk
IHRoZSByZXN1bHQgb2Ygd2tGaWx0ZXJXYXNCbG9ja2VkKCkuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RmlsdGVyOjpnZXRSZXBsYWNlbWVudERhdGEpOiBSZXR1cm5lZCB0aGUgZGF0YSBzdG9y
ZWQgaW4gbV9yZXBsYWNlbWVudERhdGEuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UuaDogVXBkYXRlZCB0byByZWZsZWN0IGNoYW5nZXMgaW4gV0tTSS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbTogRGl0dG8uCisK
IDIwMTMtMDEtMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDA0MzUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggZTM3NGM2YmM1NmE3MDljMDc3YjI5NWM3MDcxZjMyODY5ZjBhMGNlOC4uZjIyOGJjYTI2
MmY1NDQ5N2YzYTUzODU2ZTVkZjBmNmZiNDk4OWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDEzLTAxLTI0ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXcmFwIGNvbnRlbnQgZmlsdGVyaW5nIGNvZGUgaW4gYW4gb2JqZWN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5MTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKTogVXBkYXRlZCB0byByZWZsZWN0IGNoYW5nZXMgaW4gV0tTSS4KKwogMjAxMy0wMS0yMiAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQREZQbHVn
aW46IEJ1aWxkIFBERlBsdWdpbiBldmVyeXdoZXJlLCBlbmFibGUgYXQgcnVudGltZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDU1ZTMyNWNlNWM3NGZjN2MyYzAxNzFkZWVkMmMyNTEwYTAwODdkZDEuLjcyYmI1Y2Zj
MzVjNGRjYzA1YWRjNjc2YWNmYTRhYzk4ZDBkZjAxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMy0wMS0yNCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgV3JhcCBjb250ZW50IGZpbHRlcmluZyBjb2RlIGluIGFuIG9iamVjdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3OTE0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5
c3RlbUludGVyZmFjZSk6IFVwZGF0ZWQgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIFdLU0kuCisKIDIw
MTMtMDEtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUERGUGx1Z2luOiBCdWlsZCBQREZQbHVnaW4gZXZlcnl3aGVyZSwgZW5hYmxlIGF0IHJ1bnRp
bWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYzM0NmUwMjNkMjNiMDFlMTNmM2Q5NTc0OWM5OGJl
NzRkMjkwMGUxZi4uMjg0MGM5ZjQyZDM3MmEwYzI4ZjM5MmJlYmM0NWU0MGI4OTA5YzU1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTIxNTQsOCArMjE1NCw4IEBAIF93a1JlY29tbWVuZGVkU2Ny
b2xsZXJTdHlsZQogX3drRmlsdGVyQWRkRGF0YQogX3drRmlsdGVyQ3JlYXRlSW5zdGFuY2UKIF93
a0ZpbHRlckRhdGFDb21wbGV0ZQorX3drRmlsdGVySXNCdWZmZXJpbmcKIF93a0ZpbHRlcklzTWFu
YWdlZFNlc3Npb24KLV93a0ZpbHRlclJlbGVhc2UKIF93a0ZpbHRlcldhc0Jsb2NrZWQKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMzcxYzJmZTc4YWU3MjA5MDk5NmYxNzE5NzU3YjYwMjk3OTYyZTVjNC4uZWIzMjBj
OTE4Mzc4N2FkMTQ2NzQ3YzExMTNkYTllMDU3YjUzZTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUwLDYgKzc1MCw4IEBA
CiAJCTI5M0VBRTFGMTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5M0VBRTFF
MTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUyMTEzNTZCMzJF
MDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5M0VBRTIwMTM1NkIzMkUwMDY3QUNGOSAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwICovOyB9OwogCQkyOTQ4OUZDNzEyQzAwRjAz
MDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NDg5RkM1MTJDMDBGMDMwMEQ4M0YwRiAvKiBB
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oICovOyB9OworCQkyOTg4NzEyMjE2QjFGMTk3MDA0MzU5
REUgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjk4ODcxMjExNkIxRjE5NzAwNDM1OURFIC8qIENvbnRlbnRGaWx0ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyOTg4NzEy
NDE2QjFGMUM1MDA0MzU5REUgLyogQ29udGVudEZpbHRlck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5ODg3MTIzMTZCMUYxQzUwMDQzNTlERSAv
KiBDb250ZW50RmlsdGVyTWFjLm1tICovOyB9OwogCQkyOUEzMDlBQzE1NjFDOTlCMDBCQkQ4RTUg
LyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3BwICovOyB9Owog
CQkyOUEzMDlCMDE1NjFDQUM0MDBCQkQ4RTUgLyogVmlzaXRlZExpbmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTMwOUFFMTU2MUNBQzQwMEJC
RDhFNSAvKiBWaXNpdGVkTGlua3MuY3BwICovOyB9OwogCQkyOUEzMDlCMTE1NjFDQUM0MDBCQkQ4
RTUgLyogVmlzaXRlZExpbmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyOUEzMDlBRjE1NjFDQUM0MDBCQkQ4RTUgLyogVmlzaXRlZExpbmtzLmggKi87
IH07CkBAIC04MDIwLDYgKzgwMjIsOCBAQAogCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyog
QVhPYmplY3RDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWE9iamVjdENhY2hlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4NTcwOTIxNUNDNTMyRDAwNjM1NUNEIC8q
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4NTcw
OTMxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTI5ODg3MTIxMTZCMUYxOTcwMDQzNTlERSAvKiBDb250ZW50RmlsdGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMjk4ODcxMjMxNkIxRjFDNTAwNDM1OURFIC8qIENvbnRlbnRGaWx0
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb250ZW50
RmlsdGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUEzMDlBQjE1NjFD
OTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJ1bkxvb3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5
QTMwOUFFMTU2MUNBQzQwMEJCRDhFNSAvKiBWaXNpdGVkTGlua3MuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjlBMzA5QUYxNTYxQ0FDNDAwQkJEOEU1IC8qIFZpc2l0ZWRMaW5rcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMDcwLDcgKzExMDc0LDcgQEAKIAkJOTdCMzhFMjMx
NTFDNDI2NDAwNDYyMkU5IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA7IHBh
dGggPSBNb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3QjM4RTI0MTUxQzQyNjQwMDQ2MjJFOSAvKiBE
T01XaW5kb3dOb3RpZmljYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaDsgcGF0aCA9IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
QjM4RTI1MTUxQzQyNjQwMDQ2MjJFOSAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDsgcGF0aCA9IE1v
ZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTdCOEZGQ0YxNkFFN0Y5MjAwMzgzODhEIC8qIENoYXJhY3Rl
clJlZmVyZW5jZVBhcnNlcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oOyBwYXRoID0gQ2hhcmFjdGVyUmVm
ZXJlbmNlUGFyc2VySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5N0I4
RkZDRjE2QUU3RjkyMDAzODM4OEQgLyogQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFyYWN0ZXJSZWZlcmVuY2VQYXJz
ZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3QkM2OUQ2MTUwNUYw
NzYwMDFCNzRBQyAvKiBBYnN0cmFjdERhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEFic3RyYWN0RGF0YWJhc2UuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJk
YXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTdCQzY5RDcxNTA1RjA3NjAwMUI3NEFDIC8qIEFic3RyYWN0RGF0YWJhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWJzdHJhY3REYXRhYmFzZS5oOyBwYXRoID0gTW9k
dWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3QkM2OUQ4MTUwNUYwNzYwMDFCNzRBQyAvKiBDaGFuZ2VWZXJzaW9uV3JhcHBl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDaGFuZ2VWZXJzaW9u
V3JhcHBlci5jcHA7IHBhdGggPSBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFw
cGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MDMyLDYgKzE2MDM2LDcg
QEAKIAkJCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICov
LAogCQkJCTJEOTA2NjBCMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMuaCAqLywKIAkJ
CQkyRDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLm1tICovLAorCQkJCTI5
ODg3MTIzMTZCMUYxQzUwMDQzNTlERSAvKiBDb250ZW50RmlsdGVyTWFjLm1tICovLAogCQkJCTA2
MDI3Q0IyMEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gKi8sCiAJCQkJ
OTNCNkEwRTkwQjBCQ0E4NDAwRjUwMjdBIC8qIENvbnRleHRNZW51TWFjLm1tICovLAogCQkJCUY1
ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi8sCkBAIC0yMTI4Niw2ICsy
MTI5MSw3IEBACiAJCQkJQzMzMEEyMjExM0VDMTk2QjAwMDBCNDVCIC8qIENvbG9yQ2hvb3Nlci5o
ICovLAogCQkJCUMzN0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQu
aCAqLywKIAkJCQlCQ0M4Q0ZDQTA5ODZDRDI0MDAxNDBCRjIgLyogQ29sb3JEYXRhLmdwZXJmICov
LAorCQkJCTI5ODg3MTIxMTZCMUYxOTcwMDQzNTlERSAvKiBDb250ZW50RmlsdGVyLmggKi8sCiAJ
CQkJNDFEMDE1QzkwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmNwcCAqLywKIAkJCQk0
MUQwMTVDODBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCAqLywKIAkJCQk5M0I2QTBF
NTBCMEJDQTVDMDBGNTAyN0EgLyogQ29udGV4dE1lbnUuaCAqLywKQEAgLTI2MjQ1LDYgKzI2MjUx
LDcgQEAKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Q
b2xlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTg4NzEyMjE2QjFGMTk3MDA0MzU5REUgLyogQ29u
dGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTM5Myw2ICsyOTQwMCw3IEBACiAJCQkJ
RTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMjk4ODcxMjQxNkIxRjFDNTAwNDM1OURFIC8qIENvbnRlbnRG
aWx0ZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5S
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMDBlOGIwOWI2MDFkZDA3Y2VkM2M0ZDhmMWY2ZGY0YjUz
Y2M5ODE4MS4uNzVlYzYwMjUwYmZkNmVmMDBhZmQxZjU5NGQxZjJkZmQwNmE1ZGM1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTYyLDcgKzYy
LDcgQEAKICNlbmRpZgogCiAjaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQotI2luY2x1ZGUgIldl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJDb250ZW50RmlsdGVyLmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzQsMTggKzc0LDEyIEBAIE1haW5SZXNvdXJj
ZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRl
cikKICAgICAsIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3koZmFsc2UpCiAgICAgLCBtX3RpbWVP
Zkxhc3REYXRhUmVjZWl2ZWQoMC4wKQogICAgICwgbV9zdWJzdGl0dXRlRGF0YUxvYWRJZGVudGlm
aWVyKDApCi0jaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQotICAgICwgbV9maWx0ZXIoMCkKLSNl
bmRpZgogewogfQogCiBNYWluUmVzb3VyY2VMb2FkZXI6On5NYWluUmVzb3VyY2VMb2FkZXIoKQog
ewogICAgIGNsZWFyUmVzb3VyY2UoKTsKLSNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAg
QVNTRVJUKCFtX2ZpbHRlcik7Ci0jZW5kaWYKIH0KIAogUGFzc1JlZlB0cjxNYWluUmVzb3VyY2VM
b2FkZXI+IE1haW5SZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVu
dExvYWRlcikKQEAgLTEzNSwxMyArMTI5LDYgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNh
bmNlbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIAogICAgIGNsZWFyUmVzb3VyY2UoKTsK
ICAgICByZWNlaXZlZEVycm9yKHJlc291cmNlRXJyb3IpOwotCi0jaWYgVVNFKENPTlRFTlRfRklM
VEVSSU5HKQotICAgIGlmIChtX2ZpbHRlcikgewotICAgICAgICB3a0ZpbHRlclJlbGVhc2UobV9m
aWx0ZXIpOwotICAgICAgICBtX2ZpbHRlciA9IDA7Ci0gICAgfQotI2VuZGlmCiB9CiAKIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpjbGVhclJlc291cmNlKCkKQEAgLTQ1NCw4ICs0NDEsOCBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UsIGNvbnN0IFJlc291cgogI2VuZGlmCiAKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJ
TkcpCi0gICAgaWYgKHIudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiB3a0ZpbHRlcklzTWFu
YWdlZFNlc3Npb24oKSkKLSAgICAgICAgbV9maWx0ZXIgPSB3a0ZpbHRlckNyZWF0ZUluc3RhbmNl
KHIubnNVUkxSZXNwb25zZSgpKTsKKyAgICBpZiAoci51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIENvbnRlbnRGaWx0ZXI6OmlzRW5hYmxlZCgpKQorICAgICAgICBtX2NvbnRlbnRGaWx0ZXIg
PSBDb250ZW50RmlsdGVyOjpjcmVhdGUocik7CiAjZW5kaWYKIAogICAgIGZyYW1lTG9hZGVyKCkt
PnBvbGljeUNoZWNrZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIGNhbGxDb250
aW51ZUFmdGVyQ29udGVudFBvbGljeSwgdGhpcyk7CkBAIC00ODQsMTcgKzQ3MSwyMCBAQCB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSwgY29uc3QgY2hhciogZGF0YQogI2VuZGlmCiAKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcp
Ci0gICAgaWYgKG1fZmlsdGVyKSB7Ci0gICAgICAgIEFTU0VSVCghd2tGaWx0ZXJXYXNCbG9ja2Vk
KG1fZmlsdGVyKSk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGJsb2NrZWREYXRhID0gd2tGaWx0ZXJB
ZGREYXRhKG1fZmlsdGVyLCBkYXRhLCAmbGVuZ3RoKTsKLSAgICAgICAgLy8gSWYgd2UgZG9uJ3Qg
aGF2ZSBibG9ja2VkRGF0YSwgdGhhdCBtZWFucyB3ZSdyZSBzdGlsbCBhY2N1bXVsYXRpbmcgZGF0
YQotICAgICAgICBpZiAoIWJsb2NrZWREYXRhKSB7Ci0gICAgICAgICAgICAvLyBUcmFuc2l0aW9u
IHRvIGNvbW1pdHRlZCBzdGF0ZS4KKyAgICBib29sIGxvYWRXYXNCbG9ja2VkQmVmb3JlRmluaXNo
aW5nID0gZmFsc2U7CisgICAgaWYgKG1fY29udGVudEZpbHRlciAmJiBtX2NvbnRlbnRGaWx0ZXIt
Pm5lZWRzTW9yZURhdGEoKSkgeworICAgICAgICBtX2NvbnRlbnRGaWx0ZXItPmFkZERhdGEoZGF0
YSwgbGVuZ3RoKTsKKworICAgICAgICBpZiAobV9jb250ZW50RmlsdGVyLT5uZWVkc01vcmVEYXRh
KCkpIHsKKyAgICAgICAgICAgIC8vIFNpbmNlIHRoZSBmaWx0ZXIgc3RpbGwgbmVlZHMgbW9yZSBk
YXRhIHRvIG1ha2UgYSBkZWNpc2lvbiwKKyAgICAgICAgICAgIC8vIHRyYW5zaXRpb24gYmFjayB0
byB0aGUgY29tbWl0dGVkIHN0YXRlIHNvIHRoYXQgd2UgZG9uJ3QgcGFydGlhbGx5CisgICAgICAg
ICAgICAvLyBsb2FkIGNvbnRlbnQgdGhhdCBtaWdodCBsYXRlciBiZSBibG9ja2VkLgogICAgICAg
ICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKDAsIDApOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZGF0YSA9IGJsb2NrZWREYXRhOworICAgICAg
ICBkYXRhID0gbV9jb250ZW50RmlsdGVyLT5nZXRSZXBsYWNlbWVudERhdGEobGVuZ3RoKTsKKyAg
ICAgICAgbG9hZFdhc0Jsb2NrZWRCZWZvcmVGaW5pc2hpbmcgPSBtX2NvbnRlbnRGaWx0ZXItPmRp
ZEJsb2NrRGF0YSgpOwogICAgIH0KICNlbmRpZgogCkBAIC01MTIsMTYgKzUwMiw4IEBAIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
LCBjb25zdCBjaGFyKiBkYXRhCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRh
dGEsIGxlbmd0aCk7CiAKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgaWYgKFdlYkZp
bHRlckV2YWx1YXRvciAqZmlsdGVyID0gbV9maWx0ZXIpIHsKLSAgICAgICAgLy8gSWYgd2UgZ290
IGhlcmUsIGl0IG1lYW5zIHdlIGtub3cgaWYgd2Ugd2VyZSBibG9ja2VkIG9yIG5vdC4gSWYgd2Ug
d2VyZSBibG9ja2VkLCB3ZSdyZQotICAgICAgICAvLyBkb25lIGxvYWRpbmcgdGhlIHBhZ2UgYWx0
b2dldGhlci4gRWl0aGVyIHdheSwgd2UgZG9uJ3QgbmVlZCB0aGUgZmlsdGVyIGFueW1vcmUuCi0K
LSAgICAgICAgLy8gUmVtb3ZlIHRoaXMtPm1fZmlsdGVyIGVhcmx5IHNvIGRpZEZpbmlzaExvYWRp
bmcgZG9lc24ndCBzZWUgaXQuCi0gICAgICAgIG1fZmlsdGVyID0gMDsKLSAgICAgICAgaWYgKHdr
RmlsdGVyV2FzQmxvY2tlZChmaWx0ZXIpKQotICAgICAgICAgICAgY2FuY2VsKCk7Ci0gICAgICAg
IHdrRmlsdGVyUmVsZWFzZShmaWx0ZXIpOwotICAgIH0KKyAgICBpZiAobG9hZFdhc0Jsb2NrZWRC
ZWZvcmVGaW5pc2hpbmcpCisgICAgICAgIGNhbmNlbCgpOwogI2VuZGlmCiB9CiAKQEAgLTU0NCwx
NSArNTI2LDEzIEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRv
dWJsZSBmaW5pc2hUaW1lKQogICAgIH0KIAogI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKLSAg
ICBpZiAobV9maWx0ZXIpIHsKKyAgICBpZiAobV9jb250ZW50RmlsdGVyICYmIG1fY29udGVudEZp
bHRlci0+bmVlZHNNb3JlRGF0YSgpKSB7CisgICAgICAgIG1fY29udGVudEZpbHRlci0+ZmluaXNo
ZWRBZGRpbmdEYXRhKCk7CisKICAgICAgICAgaW50IGxlbmd0aDsKLSAgICAgICAgY29uc3QgY2hh
ciogZGF0YSA9IHdrRmlsdGVyRGF0YUNvbXBsZXRlKG1fZmlsdGVyLCAmbGVuZ3RoKTsKLSAgICAg
ICAgV2ViRmlsdGVyRXZhbHVhdG9yICpmaWx0ZXIgPSBtX2ZpbHRlcjsKLSAgICAgICAgLy8gUmVt
b3ZlIHRoaXMtPm1fZmlsdGVyIGVhcmx5IHNvIGRpZFJlY2VpdmVEYXRhIGRvZXNuJ3Qgc2VlIGl0
LgotICAgICAgICBtX2ZpbHRlciA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEgPSBtX2Nv
bnRlbnRGaWx0ZXItPmdldFJlcGxhY2VtZW50RGF0YShsZW5ndGgpOwogICAgICAgICBpZiAoZGF0
YSkKICAgICAgICAgICAgIGRhdGFSZWNlaXZlZChtX3Jlc291cmNlLmdldCgpLCBkYXRhLCBsZW5n
dGgpOwotICAgICAgICB3a0ZpbHRlclJlbGVhc2UoZmlsdGVyKTsKICAgICB9CiAjZW5kaWYKIApA
QCAtNTc5LDEzICs1NTksNiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bm90aWZ5RmluaXNo
ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0j
aWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIGlmIChtX2ZpbHRlcikgewotICAgICAgICB3
a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwotICAgICAgICBtX2ZpbHRlciA9IDA7Ci0gICAgfQot
I2VuZGlmCi0KICAgICBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IG1fcmVzb3VyY2UtPnJl
c291cmNlRXJyb3IoKTsKICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNo
ZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IocmVxdWVzdCgpLCBlcnJvcikp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCAzYjdkMzI0NTgwNWVhNTNhNDQ1M2NhNmM0MjY1MGJlNDkyZWM2YTZlLi45MTYz
ZjBkYzBiMjRiMDQyMDJmYWNlMjliMmNmNmFhYTE1NDVkNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KIAogI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKLU9CSkNfQ0xBU1Mg
V2ViRmlsdGVyRXZhbHVhdG9yOworI2luY2x1ZGUgIkNvbnRlbnRGaWx0ZXIuaCIKICNlbmRpZgog
CiAjaWYgSEFWRShSVU5MT09QX1RJTUVSKQpAQCAtMTMxLDcgKzEzMSw3IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbG9uZyBtX3N1YnN0aXR1dGVEYXRhTG9hZElkZW50aWZpZXI7CiAKICNpZiBV
U0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgV2ViRmlsdGVyRXZhbHVhdG9yICptX2ZpbHRlcjsK
KyAgICBPd25QdHI8Q29udGVudEZpbHRlcj4gbV9jb250ZW50RmlsdGVyOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZlYjE1
N2VkNjc3MmE5OTJmODk3YWQ1ZWUzZmZlOThmNDQzODVkNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaApAQCAtMCwwICsxLDY2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBDb250ZW50RmlsdGVyX2gKKyNkZWZpbmUgQ29udGVudEZpbHRl
cl9oCisKKyNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCisKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykK
K09CSkNfQ0xBU1MgV2ViRmlsdGVyRXZhbHVhdG9yOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKworY2xhc3MgQ29udGVudEZpbHRlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8Q29udGVudEZpbHRlcj4gY3JlYXRlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWQoKTsKKyAg
ICAKKyAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCk7CisgICAg
dm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKTsKKyAgICBib29sIG5lZWRzTW9yZURhdGEoKSBjb25z
dDsKKyAgICBib29sIGRpZEJsb2NrRGF0YSgpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGdldFJl
cGxhY2VtZW50RGF0YShpbnQmIGxlbmd0aCkgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IENvbnRlbnRGaWx0ZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBSZXRhaW5QdHI8V2ViRmlsdGVyRXZhbHVhdG9yPiBtX3BsYXRm
b3JtQ29udGVudEZpbHRlcjsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBtX3JlcGxhY2VtZW50RGF0
YTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNF
KENPTlRFTlRfRklMVEVSSU5HKQorCisjZW5kaWYgLy8gQ29udGVudEZpbHRlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVhODMzN2RhMmIxMTIzNzA1NTM0OTY5M2NkN2VmNGRmMjEwYWExMGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQpAQCAt
MCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJD
b250ZW50RmlsdGVyLmgiCisKKyNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCisKKyNpbXBvcnQg
IlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPENvbnRlbnRGaWx0ZXI+IENvbnRl
bnRGaWx0ZXI6OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRlbnRGaWx0ZXIocmVzcG9uc2UpKTsKK30KKworQ29u
dGVudEZpbHRlcjo6Q29udGVudEZpbHRlcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKKyAgICA6IG1fcGxhdGZvcm1Db250ZW50RmlsdGVyKEFkb3B0TlMsIHdrRmlsdGVyQ3JlYXRl
SW5zdGFuY2UocmVzcG9uc2UubnNVUkxSZXNwb25zZSgpKSkKK3sKKyAgICBBU1NFUlQobV9wbGF0
Zm9ybUNvbnRlbnRGaWx0ZXIpOworfQorCitib29sIENvbnRlbnRGaWx0ZXI6OmlzRW5hYmxlZCgp
Cit7CisgICAgcmV0dXJuIHdrRmlsdGVySXNNYW5hZ2VkU2Vzc2lvbigpOworfQorCit2b2lkIENv
bnRlbnRGaWx0ZXI6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAg
ICBBU1NFUlQobmVlZHNNb3JlRGF0YSgpKTsKKyAgICBBU1NFUlQoIVttX3JlcGxhY2VtZW50RGF0
YS5nZXQoKSBsZW5ndGhdKTsKKyAgICBtX3JlcGxhY2VtZW50RGF0YSA9IHdrRmlsdGVyQWRkRGF0
YShtX3BsYXRmb3JtQ29udGVudEZpbHRlci5nZXQoKSwgW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9D
b3B5Oih2b2lkKilkYXRhIGxlbmd0aDpsZW5ndGggZnJlZVdoZW5Eb25lOk5PXSk7CisgICAgQVNT
RVJUKG5lZWRzTW9yZURhdGEoKSB8fCBbbV9yZXBsYWNlbWVudERhdGEuZ2V0KCkgbGVuZ3RoXSk7
Cit9CisgICAgCit2b2lkIENvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSgpCit7Cisg
ICAgQVNTRVJUKG5lZWRzTW9yZURhdGEoKSk7CisgICAgQVNTRVJUKCFbbV9yZXBsYWNlbWVudERh
dGEuZ2V0KCkgbGVuZ3RoXSk7CisgICAgbV9yZXBsYWNlbWVudERhdGEgPSB3a0ZpbHRlckRhdGFD
b21wbGV0ZShtX3BsYXRmb3JtQ29udGVudEZpbHRlci5nZXQoKSk7CisgICAgQVNTRVJUKCFuZWVk
c01vcmVEYXRhKCkpOworfQorCitib29sIENvbnRlbnRGaWx0ZXI6Om5lZWRzTW9yZURhdGEoKSBj
b25zdAoreworICAgIHJldHVybiB3a0ZpbHRlcklzQnVmZmVyaW5nKG1fcGxhdGZvcm1Db250ZW50
RmlsdGVyLmdldCgpKTsKK30KKworYm9vbCBDb250ZW50RmlsdGVyOjpkaWRCbG9ja0RhdGEoKSBj
b25zdAoreworICAgIHJldHVybiB3a0ZpbHRlcldhc0Jsb2NrZWQobV9wbGF0Zm9ybUNvbnRlbnRG
aWx0ZXIuZ2V0KCkpOworfQorCitjb25zdCBjaGFyKiBDb250ZW50RmlsdGVyOjpnZXRSZXBsYWNl
bWVudERhdGEoaW50JiBsZW5ndGgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRh
KCkpOworICAgIGxlbmd0aCA9IFttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oW21fcmVwbGFjZW1lbnREYXRhLmdldCgp
IGJ5dGVzXSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShD
T05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IGU4NWUyOGQ3MmU3NmJkYzk3MjhkYmZkMThl
MTdhNzk1NjVjY2VlNDkuLjliNjZmN2Y4MWU1OWY5ODg3MDRkZDA5MjY5ZDBlNzAxMWYyOWQzZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaApAQCAtMzM5LDEwICszMzksMTAgQEAgZXh0ZXJuIHZvaWQgKCp3a0NGVVJMUmVx
dWVzdEFsbG93QWxsUG9zdENhY2hpbmcpKENGVVJMUmVxdWVzdFJlZik7CiAjaWYgVVNFKENPTlRF
TlRfRklMVEVSSU5HKQogZXh0ZXJuIEJPT0wgKCp3a0ZpbHRlcklzTWFuYWdlZFNlc3Npb24pKHZv
aWQpOwogZXh0ZXJuIFdlYkZpbHRlckV2YWx1YXRvciAqKCp3a0ZpbHRlckNyZWF0ZUluc3RhbmNl
KShOU1VSTFJlc3BvbnNlICopOwotZXh0ZXJuIHZvaWQgKCp3a0ZpbHRlclJlbGVhc2UpKFdlYkZp
bHRlckV2YWx1YXRvciAqKTsKIGV4dGVybiBCT09MICgqd2tGaWx0ZXJXYXNCbG9ja2VkKShXZWJG
aWx0ZXJFdmFsdWF0b3IgKik7Ci1leHRlcm4gY29uc3QgY2hhciogKCp3a0ZpbHRlckFkZERhdGEp
KFdlYkZpbHRlckV2YWx1YXRvciAqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQqIGxlbmd0aCk7Ci1l
eHRlcm4gY29uc3QgY2hhciogKCp3a0ZpbHRlckRhdGFDb21wbGV0ZSkoV2ViRmlsdGVyRXZhbHVh
dG9yICosIGludCogbGVuZ3RoKTsKK2V4dGVybiBCT09MICgqd2tGaWx0ZXJJc0J1ZmZlcmluZyko
V2ViRmlsdGVyRXZhbHVhdG9yICopOworZXh0ZXJuIE5TRGF0YSAqKCp3a0ZpbHRlckFkZERhdGEp
KFdlYkZpbHRlckV2YWx1YXRvciAqLCBOU0RhdGEgKik7CitleHRlcm4gTlNEYXRhICooKndrRmls
dGVyRGF0YUNvbXBsZXRlKShXZWJGaWx0ZXJFdmFsdWF0b3IgKik7CiAjZW5kaWYKIAogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbQppbmRleCA2ZDAyMWFmNWJiZGFjZTU5MWNkMmVhZTkwMWViOWE2NmU4N2JhMjFmLi5h
YmY0YjZjMDVkOTUzMTI2MzU2MTRkYWY0YzI1MTU0NmMzZmRhNWUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpAQCAt
MjExLDEwICsyMTEsMTAgQEAgdm9pZCAoKndrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGlu
ZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCiBCT09MICgq
d2tGaWx0ZXJJc01hbmFnZWRTZXNzaW9uKSh2b2lkKTsKIFdlYkZpbHRlckV2YWx1YXRvciAqKCp3
a0ZpbHRlckNyZWF0ZUluc3RhbmNlKShOU1VSTFJlc3BvbnNlICopOwotdm9pZCAoKndrRmlsdGVy
UmVsZWFzZSkoV2ViRmlsdGVyRXZhbHVhdG9yICopOwogQk9PTCAoKndrRmlsdGVyV2FzQmxvY2tl
ZCkoV2ViRmlsdGVyRXZhbHVhdG9yICopOwotY29uc3QgY2hhciogKCp3a0ZpbHRlckFkZERhdGEp
KFdlYkZpbHRlckV2YWx1YXRvciAqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQqIGxlbmd0aCk7Ci1j
b25zdCBjaGFyKiAoKndrRmlsdGVyRGF0YUNvbXBsZXRlKShXZWJGaWx0ZXJFdmFsdWF0b3IgKiwg
aW50KiBsZW5ndGgpOworQk9PTCAoKndrRmlsdGVySXNCdWZmZXJpbmcpKFdlYkZpbHRlckV2YWx1
YXRvciAqKTsKK05TRGF0YSAqKCp3a0ZpbHRlckFkZERhdGEpKFdlYkZpbHRlckV2YWx1YXRvciAq
LCBOU0RhdGEgKik7CitOU0RhdGEgKigqd2tGaWx0ZXJEYXRhQ29tcGxldGUpKFdlYkZpbHRlckV2
YWx1YXRvciAqKTsKICNlbmRpZgogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggODJmYTVlNzZhMWE0
NWUyYzNkY2VmYjNhNWZhZTgwM2QxMGJmOWE1YS4uMWY1ODA3OGNjOTQ3YjgwNTBkMjkwNGI5ZWI2
ZTMwYTlmZDRhNWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMjA4LDggKzIwOCw4IEBAIHZvaWQgSW5p
dFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcp
CiAgICAgSU5JVChGaWx0ZXJJc01hbmFnZWRTZXNzaW9uKTsKICAgICBJTklUKEZpbHRlckNyZWF0
ZUluc3RhbmNlKTsKLSAgICBJTklUKEZpbHRlclJlbGVhc2UpOwogICAgIElOSVQoRmlsdGVyV2Fz
QmxvY2tlZCk7CisgICAgSU5JVChGaWx0ZXJJc0J1ZmZlcmluZyk7CiAgICAgSU5JVChGaWx0ZXJB
ZGREYXRhKTsKICAgICBJTklUKEZpbHRlckRhdGFDb21wbGV0ZSk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3Rl
bUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCBiZmI0ZGQ0MzVhNDQ3NTMwYzMxMDI5OTBk
NDY1YTY0MzgxOGI2NWFiLi4wMjdhY2Q3OWU4N2U3MDBkODU3NjFiYjc1MmQwMjMwYmYyMmIzZDI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0xNzEsOCArMTcxLDgg
QEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogI2lmIFVTRShDT05URU5U
X0ZJTFRFUklORykKICAgICAgICAgSU5JVChGaWx0ZXJJc01hbmFnZWRTZXNzaW9uKTsKICAgICAg
ICAgSU5JVChGaWx0ZXJDcmVhdGVJbnN0YW5jZSk7Ci0gICAgICAgIElOSVQoRmlsdGVyUmVsZWFz
ZSk7CiAgICAgICAgIElOSVQoRmlsdGVyV2FzQmxvY2tlZCk7CisgICAgICAgIElOSVQoRmlsdGVy
SXNCdWZmZXJpbmcpOwogICAgICAgICBJTklUKEZpbHRlckFkZERhdGEpOwogICAgICAgICBJTklU
KEZpbHRlckRhdGFDb21wbGV0ZSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184815</attachid>
            <date>2013-01-25 15:24:30 -0800</date>
            <delta_ts>2013-01-25 16:01:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107914-20130125152122.patch</filename>
            <type>text/plain</type>
            <size>26292</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwODY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY1OTQ5MjgxZmNlOTIy
ZjEwZjM3ZDJlN2NiNDRkYzBhMjJiNjg5NC4uMmM4YmQ3ZWY5NmQwMGFiYjg3MTc4YzQ2OWEzZTVk
MTJiY2E2ZTJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAxLTI1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBXcmFwIGNvbnRlbnQgZmlsdGVy
aW5nIGNvZGUgaW4gYW4gb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDc5MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb250ZW50IGZpbHRlcmluZyBjb2RlIGN1cnJlbnRseSByZXF1aXJlcyBl
eHBsaWNpdCBhbmQgc29tZXdoYXQgY29tcGxleAorICAgICAgICBsaWZldGltZSBtYW5hZ2VtZW50
IG9mIHRoZSBXZWJGaWx0ZXJFdmFsdWF0b3Igb2JqZWN0IGZvciBjb3JyZWN0CisgICAgICAgIGJl
aGF2aW9yLiBTaW1wbGlmeSB0aGlzIGJ5IHdyYXBwaW5nIFdlYkZpbHRlckV2YWx1YXRvciBpbiBh
biBvYmplY3QgYW5kCisgICAgICAgIGhhdmUgTWFpblJlc291cmNlTG9hZGVyIGltcGxpY2l0bHkg
bWFuYWdlIGl0cyBsaWZldGltZSBieSBob2xkaW5nIGl0IGluCisgICAgICAgIGFuIE93blB0ci4K
KworICAgICAgICBUaGlzIGNoYW5nZSBoYXMgYmVuZWZpdHMgb3RoZXIgdGhhbiB0aGUgc2ltcGxp
ZmllZCBsaWZldGltZSBtYW5hZ2VtZW50LgorICAgICAgICBJdCByZW1vdmVzIGRpcmVjdCBjYWxs
cyBpbnRvIFdlYktpdFN5c3RlbUludGVyZmFjZSBmcm9tIHRoZSBsb2FkZXIsIGFuZAorICAgICAg
ICBpdCBhbGxvd3MgdXMgdG8ga2VlcCBhIHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlIHJlcGxhY2Vt
ZW50IGRhdGEKKyAgICAgICAgcmV0dXJuZWQgZnJvbSB3a0ZpbHRlckFkZERhdGEoKSBhbmQgd2tG
aWx0ZXJEYXRhQ29tcGxldGUoKSByYXRoZXIgdGhhbgorICAgICAgICByZWx5aW5nIG9uIGl0IGJl
aW5nIGF1dG9yZWxlYXNlZC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGVkIHRv
IG1hdGNoIGNoYW5nZXMgaW4gV2ViQ29yZVN5c3RlbUludGVyZmFjZS4KKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAg
KiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKTogUmVtb3ZlZCB1bm5lZWRlZCBpbml0
aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6fk1haW5S
ZXNvdXJjZUxvYWRlcik6IFJlbW92ZWQgYW4gdW5uZWVkZWQgQVNTRVJUKCkuCisgICAgICAgIChX
ZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCk6IFJlbW92ZWQgdW5uZWVkZWQgd2tG
aWx0ZXJSZWxlYXNlKCkuCisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJl
c3BvbnNlUmVjZWl2ZWQpOiBDcmVhdGVkIGEKKyAgICAgICAgQ29udGVudEZpbHRlciBvYmplY3Qg
cmF0aGVyIHRoYW4gY2FsbGluZyB3a0ZpbHRlckNyZWF0ZUluc3RhbmNlKCkuCisgICAgICAgIChX
ZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZCk6IFJld3JvdGUgY29udGVu
dCBmaWx0ZXJpbmcKKyAgICAgICAgbG9naWMgaW4gdGVybXMgb2YgdGhlIHdyYXBwZXIgb2JqZWN0
LiBSZW1vdmVkIGFueSBleHBsaWNpdCBsaWZldGltZQorICAgICAgICBtYW5hZ2VtZW50LgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KTogUmVtb3ZlZCB1bm5lZWRlZCB3a0ZpbHRlclJlbGVhc2UoKS4KKyAgICAgICAgKiBsb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ29udGVudEZpbHRlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Q29udGVudEZpbHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RmlsdGVyOjppc0VuYWJsZWQpOiBSZXR1cm5lZCB0aGUgcmVzdWx0IG9mIHdrRmls
dGVySXNNYW5hZ2VkU2Vzc2lvbigpLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6
YWRkRGF0YSk6IENhbGxlZCB3a0ZpbHRlckFkZERhdGEoKSBhbmQgc3RvcmVkCisgICAgICAgIHRo
ZSByZXN1bHRpbmcgTlNEYXRhIGluIG1fcmVwbGFjZW1lbnREYXRhLgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdEYXRhKTogQ2FsbGVkIHdrRmlsdGVyRGF0
YUNvbXBsZXRlKCkKKyAgICAgICAgYW5kIHN0b3JlZCB0aGUgcmVzdWx0aW5nIE5TRGF0YSBpbiBt
X3JlcGxhY2VtZW50RGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Om5lZWRz
TW9yZURhdGEpOiBSZXR1cm5lZCB0aGUgcmVzdWx0IG9mIHdrRmlsdGVySXNCdWZmZXJpbmcoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmRpZEJsb2NrRGF0YSk6IFJldHVybmVk
IHRoZSByZXN1bHQgb2Ygd2tGaWx0ZXJXYXNCbG9ja2VkKCkuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RmlsdGVyOjpnZXRSZXBsYWNlbWVudERhdGEpOiBSZXR1cm5lZCB0aGUgZGF0YSBzdG9y
ZWQgaW4gbV9yZXBsYWNlbWVudERhdGEuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UuaDogVXBkYXRlZCB0byByZWZsZWN0IGNoYW5nZXMgaW4gV0tTSS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbTogRGl0dG8uCisK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRl
cik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6On5NYWluUmVzb3VyY2VM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAg
ICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChNYWluUmVzb3Vy
Y2VMb2FkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnRlbnRGaWx0ZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXI6OkNvbnRlbnRGaWx0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEZpbHRlcjo6aXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0
ZXI6OmFkZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRB
ZGRpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Om5lZWRzTW9yZURh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50RGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbToKKwogMjAxMy0wMS0yNSAgQWxl
eGFuZHJlIEVsaWFzICA8YWVsaWFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDYWxsIEZyYW1l
Vmlldzo6Y29udGVudHNSZXNpemVkKCkgd2hlbiBzZXR0aW5nIGZpeGVkIGxheW91dCBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMmNjMGY0NTI5OTM1OTg1MjMwMTkxOTZhOTc0OTNjZjJmNGQyYTQ1
ZC4uMWE3MGU5MWRkNmVkNTM2MzNkYjQ4N2M0NWNhZWNmNTNhZDBmMjEyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAxLTI1ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBXcmFwIGNvbnRlbnQgZmlsdGVyaW5nIGNvZGUgaW4gYW4gb2Jq
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKTogVXBkYXRlZCB0byByZWZsZWN0IGNoYW5nZXMgaW4gV0tTSS4KKwog
MjAxMy0wMS0yNCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
Yk5hdmlnYXRpb25EYXRhIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYW4gZW1wdHkgdGl0
bGUgYW5kIGEgbWlzc2luZyB0aXRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI5ZGM0NTNjMzRlZmM5ZjEwNmYw
YjVkNTUxMzZkZDIzMGE4ZDE4ZWEuLmVhYmU0ZGUwODJhOWU2ZmQ2NWQ3NWU4NWFkZmYyMWU4OWM4
ZGY0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMS0yNSAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgV3JhcCBjb250ZW50IGZpbHRlcmluZyBj
b2RlIGluIGFuIG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA3OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6IFVwZGF0ZWQgdG8g
cmVmbGVjdCBjaGFuZ2VzIGluIFdLU0kuCisKIDIwMTMtMDEtMjUgIEl2YW4gS3JzdGnEhyAgPGlr
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlcGVuZCBjb21tb24gcGx1Z2luIHNhbmRib3ggcHJv
ZmlsZSB0byBzcGVjaWZpYyBwZXItcGx1Z2luIG9uZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
ODRjYjRmOWE5NGJkNjcwZmE3Y2MwNGE0YWJkMjQ3YjFkMzVmYTNlNS4uMDBlMzliMGMxMGVhOTZk
MzhlMjIzYTY3OWQzOWU4MjdhZjk0OWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIxNTcs
OCArMjE1Nyw4IEBAIF93a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZQogX3drRmlsdGVyQWRkRGF0
YQogX3drRmlsdGVyQ3JlYXRlSW5zdGFuY2UKIF93a0ZpbHRlckRhdGFDb21wbGV0ZQorX3drRmls
dGVySXNCdWZmZXJpbmcKIF93a0ZpbHRlcklzTWFuYWdlZFNlc3Npb24KLV93a0ZpbHRlclJlbGVh
c2UKIF93a0ZpbHRlcldhc0Jsb2NrZWQKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGQzYzBlODE2YzYxNjU1Yzhm
MDE5N2MzZDM0MzkyMDBiMDU0NTMyYS4uZTEyZWRlZTAyOGZmYzJjMzdiNWE4NzI3NDBmMmIyNTkx
ZTJjNDI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNzQ3LDYgKzc0Nyw4IEBACiAJCTI5MTdCNTYyMTQ3MzQ5NkMwMDUyQzlE
MCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOTE3QjU1RjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNj
aGVkdWxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTE3QjU2
MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI5MTdCNTY2MTQ3MzQ5
OTUwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MTdCNTY1MTQ3MzQ5OTUwMDUyQzlEMCAv
KiBMYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcCAqLzsgfTsKKwkJMjkxOUExRTkxNkIzMzc2NjAw
Nzg3MjEzIC8qIENvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI5MTlBMUU4MTZCMzM3NjYwMDc4NzIxMyAvKiBDb250ZW50RmlsdGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjkx
OUExRUIxNkIzMzc4OTAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXJNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTE5QTFFQTE2QjMzNzg5MDA3ODcy
MTMgLyogQ29udGVudEZpbHRlck1hYy5tbSAqLzsgfTsKIAkJMjkzRUFFMUYxMzU2QjJGRTAwNjdB
Q0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkzRUFFMUUxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTI5M0VBRTIxMTM1NkIzMkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjkzRUFFMjAxMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5jcHAgKi87IH07CiAJCTI5NDg5RkM3MTJDMDBGMDMwMEQ4M0YwRiAvKiBBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjk0ODlGQzUxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmgg
Ki87IH07CkBAIC04MDA1LDYgKzgwMDcsOCBAQAogCQkyOTE3QjU1RjE0NzM0OTZDMDA1MkM5RDAg
LyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBMYXllckZsdXNoU2NoZWR1bGVyLmg7IHBhdGggPSBjYS9MYXllckZsdXNoU2NoZWR1bGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MTdCNTYwMTQ3MzQ5NkMwMDUyQzlEMCAv
KiBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaDsgcGF0aCA9IGNhL0xheWVyRmx1c2hT
Y2hlZHVsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxN0I1NjUx
NDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA7IHBh
dGggPSBjYS9tYWMvTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI5MTlBMUU4MTZCMzM3NjYwMDc4NzIxMyAvKiBDb250ZW50RmlsdGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjkxOUExRUExNkIzMzc4OTAwNzg3MjEzIC8qIENvbnRl
bnRGaWx0ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBD
b250ZW50RmlsdGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTNFQUUx
RTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTNFQUUyMDEzNTZCMzJFMDA2N0FDRjkgLyogUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI5NDg5RkM1MTJDMDBGMDMwMEQ4M0YwRiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYwNTcsNiArMTYwNjEs
NyBAQAogCQkJCTY1RjgwNjk3MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0g
Ki8sCiAJCQkJMkQ5MDY2MEIwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5oICovLAog
CQkJCTJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMubW0gKi8sCisJCQkJ
MjkxOUExRUExNkIzMzc4OTAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXJNYWMubW0gKi8sCiAJCQkJ
MDYwMjdDQjIwQjFDQzAzRDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbU1hYy5tbSAqLywKIAkJ
CQk5M0I2QTBFOTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVNYWMubW0gKi8sCiAJCQkJ
RjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLywKQEAgLTIxMzExLDYg
KzIxMzE2LDcgQEAKIAkJCQlDMzMwQTIyMTEzRUMxOTZCMDAwMEI0NUIgLyogQ29sb3JDaG9vc2Vy
LmggKi8sCiAJCQkJQzM3Q0RFQkMxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNsaWVu
dC5oICovLAogCQkJCUJDQzhDRkNBMDk4NkNEMjQwMDE0MEJGMiAvKiBDb2xvckRhdGEuZ3BlcmYg
Ki8sCisJCQkJMjkxOUExRTgxNkIzMzc2NjAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXIuaCAqLywK
IAkJCQk0MUQwMTVDOTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuY3BwICovLAogCQkJ
CTQxRDAxNUM4MEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICovLAogCQkJCTkzQjZB
MEU1MEIwQkNBNUMwMEY1MDI3QSAvKiBDb250ZXh0TWVudS5oICovLApAQCAtMjYyODAsNiArMjYy
ODYsNyBAQAogCQkJCUZCOTEzOTI2MTZBRTRDMkYwMDFGRTY4MiAvKiBDYW52YXNQYXRoTWV0aG9k
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkI5MTM5MkExNkFFNEZDMDAwMUZFNjgyIC8qIEpTRE9N
UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUwNzc1MzQxNkIxQkQ0QzAwNEQ5OTM2IC8qIE1p
Y3JvRGF0YUF0dHJpYnV0ZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjkxOUExRTkx
NkIzMzc2NjAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjk0
MzEsNiArMjk0MzgsNyBAQAogCQkJCUZCOTEzOTI3MTZBRTRDMzQwMDFGRTY4MiAvKiBDYW52YXNQ
YXRoTWV0aG9kcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjkxMzkyQjE2QUU0RkMwMDAxRkU2
ODIgLyogSlNET01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFMDc3NTMxMTZCMUJEMTMw
MDREOTkzNiAvKiBNaWNyb0RhdGFBdHRyaWJ1dGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMjkxOUExRUIxNkIzMzc4OTAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHAKaW5kZXggMDBlOGIwOWI2MDFkZDA3Y2VkM2M0ZDhmMWY2ZGY0YjUzY2M5ODE4MS4uNzVlYzYw
MjUwYmZkNmVmMDBhZmQxZjU5NGQxZjJkZmQwNmE1ZGM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAKICNlbmRpZgog
CiAjaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKKyNpbmNsdWRlICJDb250ZW50RmlsdGVyLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNzQsMTggKzc0LDEyIEBAIE1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJl
c291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikKICAgICAsIG1fd2Fp
dGluZ0ZvckNvbnRlbnRQb2xpY3koZmFsc2UpCiAgICAgLCBtX3RpbWVPZkxhc3REYXRhUmVjZWl2
ZWQoMC4wKQogICAgICwgbV9zdWJzdGl0dXRlRGF0YUxvYWRJZGVudGlmaWVyKDApCi0jaWYgVVNF
KENPTlRFTlRfRklMVEVSSU5HKQotICAgICwgbV9maWx0ZXIoMCkKLSNlbmRpZgogewogfQogCiBN
YWluUmVzb3VyY2VMb2FkZXI6On5NYWluUmVzb3VyY2VMb2FkZXIoKQogewogICAgIGNsZWFyUmVz
b3VyY2UoKTsKLSNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgQVNTRVJUKCFtX2ZpbHRl
cik7Ci0jZW5kaWYKIH0KIAogUGFzc1JlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNv
dXJjZUxvYWRlcjo6Y3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikKQEAgLTEz
NSwxMyArMTI5LDYgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIAogICAgIGNsZWFyUmVzb3VyY2UoKTsKICAgICByZWNlaXZlZEVy
cm9yKHJlc291cmNlRXJyb3IpOwotCi0jaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIGlm
IChtX2ZpbHRlcikgewotICAgICAgICB3a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwotICAgICAg
ICBtX2ZpbHRlciA9IDA7Ci0gICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpjbGVhclJlc291cmNlKCkKQEAgLTQ1NCw4ICs0NDEsOCBAQCB2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0
IFJlc291cgogI2VuZGlmCiAKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgaWYgKHIu
dXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiB3a0ZpbHRlcklzTWFuYWdlZFNlc3Npb24oKSkK
LSAgICAgICAgbV9maWx0ZXIgPSB3a0ZpbHRlckNyZWF0ZUluc3RhbmNlKHIubnNVUkxSZXNwb25z
ZSgpKTsKKyAgICBpZiAoci51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIENvbnRlbnRGaWx0
ZXI6OmlzRW5hYmxlZCgpKQorICAgICAgICBtX2NvbnRlbnRGaWx0ZXIgPSBDb250ZW50RmlsdGVy
OjpjcmVhdGUocik7CiAjZW5kaWYKIAogICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIo
KS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIGNhbGxDb250aW51ZUFmdGVyQ29udGVu
dFBvbGljeSwgdGhpcyk7CkBAIC00ODQsMTcgKzQ3MSwyMCBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgY2hhciog
ZGF0YQogI2VuZGlmCiAKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgaWYgKG1fZmls
dGVyKSB7Ci0gICAgICAgIEFTU0VSVCghd2tGaWx0ZXJXYXNCbG9ja2VkKG1fZmlsdGVyKSk7Ci0g
ICAgICAgIGNvbnN0IGNoYXIqIGJsb2NrZWREYXRhID0gd2tGaWx0ZXJBZGREYXRhKG1fZmlsdGVy
LCBkYXRhLCAmbGVuZ3RoKTsKLSAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBibG9ja2VkRGF0
YSwgdGhhdCBtZWFucyB3ZSdyZSBzdGlsbCBhY2N1bXVsYXRpbmcgZGF0YQotICAgICAgICBpZiAo
IWJsb2NrZWREYXRhKSB7Ci0gICAgICAgICAgICAvLyBUcmFuc2l0aW9uIHRvIGNvbW1pdHRlZCBz
dGF0ZS4KKyAgICBib29sIGxvYWRXYXNCbG9ja2VkQmVmb3JlRmluaXNoaW5nID0gZmFsc2U7Cisg
ICAgaWYgKG1fY29udGVudEZpbHRlciAmJiBtX2NvbnRlbnRGaWx0ZXItPm5lZWRzTW9yZURhdGEo
KSkgeworICAgICAgICBtX2NvbnRlbnRGaWx0ZXItPmFkZERhdGEoZGF0YSwgbGVuZ3RoKTsKKwor
ICAgICAgICBpZiAobV9jb250ZW50RmlsdGVyLT5uZWVkc01vcmVEYXRhKCkpIHsKKyAgICAgICAg
ICAgIC8vIFNpbmNlIHRoZSBmaWx0ZXIgc3RpbGwgbmVlZHMgbW9yZSBkYXRhIHRvIG1ha2UgYSBk
ZWNpc2lvbiwKKyAgICAgICAgICAgIC8vIHRyYW5zaXRpb24gYmFjayB0byB0aGUgY29tbWl0dGVk
IHN0YXRlIHNvIHRoYXQgd2UgZG9uJ3QgcGFydGlhbGx5CisgICAgICAgICAgICAvLyBsb2FkIGNv
bnRlbnQgdGhhdCBtaWdodCBsYXRlciBiZSBibG9ja2VkLgogICAgICAgICAgICAgZG9jdW1lbnRM
b2FkZXIoKS0+cmVjZWl2ZWREYXRhKDAsIDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgZGF0YSA9IGJsb2NrZWREYXRhOworICAgICAgICBkYXRhID0gbV9jb250
ZW50RmlsdGVyLT5nZXRSZXBsYWNlbWVudERhdGEobGVuZ3RoKTsKKyAgICAgICAgbG9hZFdhc0Js
b2NrZWRCZWZvcmVGaW5pc2hpbmcgPSBtX2NvbnRlbnRGaWx0ZXItPmRpZEJsb2NrRGF0YSgpOwog
ICAgIH0KICNlbmRpZgogCkBAIC01MTIsMTYgKzUwMiw4IEBAIHZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBjaGFyKiBk
YXRhCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CiAK
ICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgaWYgKFdlYkZpbHRlckV2YWx1YXRvciAq
ZmlsdGVyID0gbV9maWx0ZXIpIHsKLSAgICAgICAgLy8gSWYgd2UgZ290IGhlcmUsIGl0IG1lYW5z
IHdlIGtub3cgaWYgd2Ugd2VyZSBibG9ja2VkIG9yIG5vdC4gSWYgd2Ugd2VyZSBibG9ja2VkLCB3
ZSdyZQotICAgICAgICAvLyBkb25lIGxvYWRpbmcgdGhlIHBhZ2UgYWx0b2dldGhlci4gRWl0aGVy
IHdheSwgd2UgZG9uJ3QgbmVlZCB0aGUgZmlsdGVyIGFueW1vcmUuCi0KLSAgICAgICAgLy8gUmVt
b3ZlIHRoaXMtPm1fZmlsdGVyIGVhcmx5IHNvIGRpZEZpbmlzaExvYWRpbmcgZG9lc24ndCBzZWUg
aXQuCi0gICAgICAgIG1fZmlsdGVyID0gMDsKLSAgICAgICAgaWYgKHdrRmlsdGVyV2FzQmxvY2tl
ZChmaWx0ZXIpKQotICAgICAgICAgICAgY2FuY2VsKCk7Ci0gICAgICAgIHdrRmlsdGVyUmVsZWFz
ZShmaWx0ZXIpOwotICAgIH0KKyAgICBpZiAobG9hZFdhc0Jsb2NrZWRCZWZvcmVGaW5pc2hpbmcp
CisgICAgICAgIGNhbmNlbCgpOwogI2VuZGlmCiB9CiAKQEAgLTU0NCwxNSArNTI2LDEzIEBAIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1l
KQogICAgIH0KIAogI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKLSAgICBpZiAobV9maWx0ZXIp
IHsKKyAgICBpZiAobV9jb250ZW50RmlsdGVyICYmIG1fY29udGVudEZpbHRlci0+bmVlZHNNb3Jl
RGF0YSgpKSB7CisgICAgICAgIG1fY29udGVudEZpbHRlci0+ZmluaXNoZWRBZGRpbmdEYXRhKCk7
CisKICAgICAgICAgaW50IGxlbmd0aDsKLSAgICAgICAgY29uc3QgY2hhciogZGF0YSA9IHdrRmls
dGVyRGF0YUNvbXBsZXRlKG1fZmlsdGVyLCAmbGVuZ3RoKTsKLSAgICAgICAgV2ViRmlsdGVyRXZh
bHVhdG9yICpmaWx0ZXIgPSBtX2ZpbHRlcjsKLSAgICAgICAgLy8gUmVtb3ZlIHRoaXMtPm1fZmls
dGVyIGVhcmx5IHNvIGRpZFJlY2VpdmVEYXRhIGRvZXNuJ3Qgc2VlIGl0LgotICAgICAgICBtX2Zp
bHRlciA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEgPSBtX2NvbnRlbnRGaWx0ZXItPmdl
dFJlcGxhY2VtZW50RGF0YShsZW5ndGgpOwogICAgICAgICBpZiAoZGF0YSkKICAgICAgICAgICAg
IGRhdGFSZWNlaXZlZChtX3Jlc291cmNlLmdldCgpLCBkYXRhLCBsZW5ndGgpOwotICAgICAgICB3
a0ZpbHRlclJlbGVhc2UoZmlsdGVyKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNTc5LDEzICs1NTks
NiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgVVNFKENPTlRFTlRf
RklMVEVSSU5HKQotICAgIGlmIChtX2ZpbHRlcikgewotICAgICAgICB3a0ZpbHRlclJlbGVhc2Uo
bV9maWx0ZXIpOwotICAgICAgICBtX2ZpbHRlciA9IDA7Ci0gICAgfQotI2VuZGlmCi0KICAgICBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IG1fcmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKTsK
ICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVM
b2FkRmFsbGJhY2tGb3JNYWluRXJyb3IocmVxdWVzdCgpLCBlcnJvcikpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAppbmRleCAzYjdk
MzI0NTgwNWVhNTNhNDQ1M2NhNmM0MjY1MGJlNDkyZWM2YTZlLi45MTYzZjBkYzBiMjRiMDQyMDJm
YWNlMjliMmNmNmFhYTE1NDVkNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNv
dXJjZUxvYWRlci5oCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
IAogI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKLU9CSkNfQ0xBU1MgV2ViRmlsdGVyRXZhbHVh
dG9yOworI2luY2x1ZGUgIkNvbnRlbnRGaWx0ZXIuaCIKICNlbmRpZgogCiAjaWYgSEFWRShSVU5M
T09QX1RJTUVSKQpAQCAtMTMxLDcgKzEzMSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbG9u
ZyBtX3N1YnN0aXR1dGVEYXRhTG9hZElkZW50aWZpZXI7CiAKICNpZiBVU0UoQ09OVEVOVF9GSUxU
RVJJTkcpCi0gICAgV2ViRmlsdGVyRXZhbHVhdG9yICptX2ZpbHRlcjsKKyAgICBPd25QdHI8Q29u
dGVudEZpbHRlcj4gbV9jb250ZW50RmlsdGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Db250ZW50RmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZlYjE1N2VkNjc3MmE5OTJmODk3
YWQ1ZWUzZmZlOThmNDQzODVkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRlbnRGaWx0ZXIuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBDb250ZW50RmlsdGVyX2gKKyNkZWZpbmUgQ29udGVudEZpbHRlcl9oCisKKyNpZiBVU0Uo
Q09OVEVOVF9GSUxURVJJTkcpCisKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xBU1MgV2Vi
RmlsdGVyRXZhbHVhdG9yOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKKworY2xhc3MgQ29udGVudEZpbHRlciB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NPd25QdHI8Q29udGVudEZpbHRlcj4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKKyAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWQoKTsKKyAgICAKKyAgICB2b2lkIGFk
ZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCk7CisgICAgdm9pZCBmaW5pc2hlZEFk
ZGluZ0RhdGEoKTsKKyAgICBib29sIG5lZWRzTW9yZURhdGEoKSBjb25zdDsKKyAgICBib29sIGRp
ZEJsb2NrRGF0YSgpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGdldFJlcGxhY2VtZW50RGF0YShp
bnQmIGxlbmd0aCkgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIGV4cGxpY2l0IENvbnRlbnRG
aWx0ZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIAorI2lmIFBMQVRGT1JNKE1BQykK
KyAgICBSZXRhaW5QdHI8V2ViRmlsdGVyRXZhbHVhdG9yPiBtX3BsYXRmb3JtQ29udGVudEZpbHRl
cjsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBtX3JlcGxhY2VtZW50RGF0YTsKKyNlbmRpZgorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPTlRFTlRfRklMVEVS
SU5HKQorCisjZW5kaWYgLy8gQ29udGVudEZpbHRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhODMzN2RhMmIxMTIz
NzA1NTM0OTY5M2NkN2VmNGRmMjEwYWExMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQpAQCAtMCwwICsxLDg3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDb250ZW50RmlsdGVyLmgi
CisKKyNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCisKKyNpbXBvcnQgIlJlc291cmNlUmVzcG9u
c2UuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzT3duUHRyPENvbnRlbnRGaWx0ZXI+IENvbnRlbnRGaWx0ZXI6OmNyZWF0
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IENvbnRlbnRGaWx0ZXIocmVzcG9uc2UpKTsKK30KKworQ29udGVudEZpbHRlcjo6Q29u
dGVudEZpbHRlcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKKyAgICA6IG1fcGxh
dGZvcm1Db250ZW50RmlsdGVyKEFkb3B0TlMsIHdrRmlsdGVyQ3JlYXRlSW5zdGFuY2UocmVzcG9u
c2UubnNVUkxSZXNwb25zZSgpKSkKK3sKKyAgICBBU1NFUlQobV9wbGF0Zm9ybUNvbnRlbnRGaWx0
ZXIpOworfQorCitib29sIENvbnRlbnRGaWx0ZXI6OmlzRW5hYmxlZCgpCit7CisgICAgcmV0dXJu
IHdrRmlsdGVySXNNYW5hZ2VkU2Vzc2lvbigpOworfQorCit2b2lkIENvbnRlbnRGaWx0ZXI6OmFk
ZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBBU1NFUlQobmVlZHNN
b3JlRGF0YSgpKTsKKyAgICBBU1NFUlQoIVttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhd
KTsKKyAgICBtX3JlcGxhY2VtZW50RGF0YSA9IHdrRmlsdGVyQWRkRGF0YShtX3BsYXRmb3JtQ29u
dGVudEZpbHRlci5nZXQoKSwgW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lkKilkYXRh
IGxlbmd0aDpsZW5ndGggZnJlZVdoZW5Eb25lOk5PXSk7CisgICAgQVNTRVJUKG5lZWRzTW9yZURh
dGEoKSB8fCBbbV9yZXBsYWNlbWVudERhdGEuZ2V0KCkgbGVuZ3RoXSk7Cit9CisgICAgCit2b2lk
IENvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSgpCit7CisgICAgQVNTRVJUKG5lZWRz
TW9yZURhdGEoKSk7CisgICAgQVNTRVJUKCFbbV9yZXBsYWNlbWVudERhdGEuZ2V0KCkgbGVuZ3Ro
XSk7CisgICAgbV9yZXBsYWNlbWVudERhdGEgPSB3a0ZpbHRlckRhdGFDb21wbGV0ZShtX3BsYXRm
b3JtQ29udGVudEZpbHRlci5nZXQoKSk7CisgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOwor
fQorCitib29sIENvbnRlbnRGaWx0ZXI6Om5lZWRzTW9yZURhdGEoKSBjb25zdAoreworICAgIHJl
dHVybiB3a0ZpbHRlcklzQnVmZmVyaW5nKG1fcGxhdGZvcm1Db250ZW50RmlsdGVyLmdldCgpKTsK
K30KKworYm9vbCBDb250ZW50RmlsdGVyOjpkaWRCbG9ja0RhdGEoKSBjb25zdAoreworICAgIHJl
dHVybiB3a0ZpbHRlcldhc0Jsb2NrZWQobV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuZ2V0KCkpOwor
fQorCitjb25zdCBjaGFyKiBDb250ZW50RmlsdGVyOjpnZXRSZXBsYWNlbWVudERhdGEoaW50JiBs
ZW5ndGgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOworICAgIGxlbmd0
aCA9IFttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBjaGFyKj4oW21fcmVwbGFjZW1lbnREYXRhLmdldCgpIGJ5dGVzXSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShDT05URU5UX0ZJTFRFUklO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oCmluZGV4IGU4NWUyOGQ3MmU3NmJkYzk3MjhkYmZkMThlMTdhNzk1NjVjY2VlNDku
LjliNjZmN2Y4MWU1OWY5ODg3MDRkZDA5MjY5ZDBlNzAxMWYyOWQzZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAt
MzM5LDEwICszMzksMTAgQEAgZXh0ZXJuIHZvaWQgKCp3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9z
dENhY2hpbmcpKENGVVJMUmVxdWVzdFJlZik7CiAjaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQog
ZXh0ZXJuIEJPT0wgKCp3a0ZpbHRlcklzTWFuYWdlZFNlc3Npb24pKHZvaWQpOwogZXh0ZXJuIFdl
YkZpbHRlckV2YWx1YXRvciAqKCp3a0ZpbHRlckNyZWF0ZUluc3RhbmNlKShOU1VSTFJlc3BvbnNl
ICopOwotZXh0ZXJuIHZvaWQgKCp3a0ZpbHRlclJlbGVhc2UpKFdlYkZpbHRlckV2YWx1YXRvciAq
KTsKIGV4dGVybiBCT09MICgqd2tGaWx0ZXJXYXNCbG9ja2VkKShXZWJGaWx0ZXJFdmFsdWF0b3Ig
Kik7Ci1leHRlcm4gY29uc3QgY2hhciogKCp3a0ZpbHRlckFkZERhdGEpKFdlYkZpbHRlckV2YWx1
YXRvciAqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQqIGxlbmd0aCk7Ci1leHRlcm4gY29uc3QgY2hh
ciogKCp3a0ZpbHRlckRhdGFDb21wbGV0ZSkoV2ViRmlsdGVyRXZhbHVhdG9yICosIGludCogbGVu
Z3RoKTsKK2V4dGVybiBCT09MICgqd2tGaWx0ZXJJc0J1ZmZlcmluZykoV2ViRmlsdGVyRXZhbHVh
dG9yICopOworZXh0ZXJuIE5TRGF0YSAqKCp3a0ZpbHRlckFkZERhdGEpKFdlYkZpbHRlckV2YWx1
YXRvciAqLCBOU0RhdGEgKik7CitleHRlcm4gTlNEYXRhICooKndrRmlsdGVyRGF0YUNvbXBsZXRl
KShXZWJGaWx0ZXJFdmFsdWF0b3IgKik7CiAjZW5kaWYKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCA2
ZDAyMWFmNWJiZGFjZTU5MWNkMmVhZTkwMWViOWE2NmU4N2JhMjFmLi5hYmY0YjZjMDVkOTUzMTI2
MzU2MTRkYWY0YzI1MTU0NmMzZmRhNWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpAQCAtMjExLDEwICsyMTEsMTAg
QEAgdm9pZCAoKndrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0
UmVmKTsKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCiBCT09MICgqd2tGaWx0ZXJJc01hbmFn
ZWRTZXNzaW9uKSh2b2lkKTsKIFdlYkZpbHRlckV2YWx1YXRvciAqKCp3a0ZpbHRlckNyZWF0ZUlu
c3RhbmNlKShOU1VSTFJlc3BvbnNlICopOwotdm9pZCAoKndrRmlsdGVyUmVsZWFzZSkoV2ViRmls
dGVyRXZhbHVhdG9yICopOwogQk9PTCAoKndrRmlsdGVyV2FzQmxvY2tlZCkoV2ViRmlsdGVyRXZh
bHVhdG9yICopOwotY29uc3QgY2hhciogKCp3a0ZpbHRlckFkZERhdGEpKFdlYkZpbHRlckV2YWx1
YXRvciAqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQqIGxlbmd0aCk7Ci1jb25zdCBjaGFyKiAoKndr
RmlsdGVyRGF0YUNvbXBsZXRlKShXZWJGaWx0ZXJFdmFsdWF0b3IgKiwgaW50KiBsZW5ndGgpOwor
Qk9PTCAoKndrRmlsdGVySXNCdWZmZXJpbmcpKFdlYkZpbHRlckV2YWx1YXRvciAqKTsKK05TRGF0
YSAqKCp3a0ZpbHRlckFkZERhdGEpKFdlYkZpbHRlckV2YWx1YXRvciAqLCBOU0RhdGEgKik7CitO
U0RhdGEgKigqd2tGaWx0ZXJEYXRhQ29tcGxldGUpKFdlYkZpbHRlckV2YWx1YXRvciAqKTsKICNl
bmRpZgogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQ
TEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggODJmYTVlNzZhMWE0NWUyYzNkY2VmYjNhNWZh
ZTgwM2QxMGJmOWE1YS4uMWY1ODA3OGNjOTQ3YjgwNTBkMjkwNGI5ZWI2ZTMwYTlmZDRhNWI2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50
ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQpAQCAtMjA4LDggKzIwOCw4IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1J
bnRlcmZhY2Uodm9pZCkKICNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgSU5JVChGaWx0
ZXJJc01hbmFnZWRTZXNzaW9uKTsKICAgICBJTklUKEZpbHRlckNyZWF0ZUluc3RhbmNlKTsKLSAg
ICBJTklUKEZpbHRlclJlbGVhc2UpOwogICAgIElOSVQoRmlsdGVyV2FzQmxvY2tlZCk7CisgICAg
SU5JVChGaWx0ZXJJc0J1ZmZlcmluZyk7CiAgICAgSU5JVChGaWx0ZXJBZGREYXRhKTsKICAgICBJ
TklUKEZpbHRlckRhdGFDb21wbGV0ZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUlu
dGVyZmFjZS5tbQppbmRleCBiZmI0ZGQ0MzVhNDQ3NTMwYzMxMDI5OTBkNDY1YTY0MzgxOGI2NWFi
Li4wMjdhY2Q3OWU4N2U3MDBkODU3NjFiYjc1MmQwMjMwYmYyMmIzZDI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0xNzEsOCArMTcxLDggQEAgdm9pZCBJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKICAg
ICAgICAgSU5JVChGaWx0ZXJJc01hbmFnZWRTZXNzaW9uKTsKICAgICAgICAgSU5JVChGaWx0ZXJD
cmVhdGVJbnN0YW5jZSk7Ci0gICAgICAgIElOSVQoRmlsdGVyUmVsZWFzZSk7CiAgICAgICAgIElO
SVQoRmlsdGVyV2FzQmxvY2tlZCk7CisgICAgICAgIElOSVQoRmlsdGVySXNCdWZmZXJpbmcpOwog
ICAgICAgICBJTklUKEZpbHRlckFkZERhdGEpOwogICAgICAgICBJTklUKEZpbHRlckRhdGFDb21w
bGV0ZSk7CiAjZW5kaWYK
</data>
<flag name="review"
          id="203675"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="203689"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>