<?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>126789</bug_id>
          
          <creation_ts>2014-01-10 16:16:13 -0800</creation_ts>
          <short_desc>[Mac] [Windows] Stop scheduling network requests in WebCore</short_desc>
          <delta_ts>2014-01-11 20:16:45 -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>Page Loading</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>psolanki</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>966663</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-10 16:16:13 -0800</bug_when>
    <thetext>We already have the code to set request priorities, can just pass the job down on CFNetwork.

&lt;rdar://problem/15114727&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966671</commentid>
    <comment_count>1</comment_count>
      <attachid>220903</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-10 16:28:05 -0800</bug_when>
    <thetext>Created attachment 220903
proposed patch

This patch will fail to build, because it needs WebKitSystemInterface changes. Please review anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966693</commentid>
    <comment_count>2</comment_count>
      <attachid>220903</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-10 17:08:18 -0800</bug_when>
    <thetext>Comment on attachment 220903
proposed patch

Attachment 220903 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/4533502531862528</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966709</commentid>
    <comment_count>3</comment_count>
      <attachid>220903</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-10 17:30:59 -0800</bug_when>
    <thetext>Comment on attachment 220903
proposed patch

Attachment 220903 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4673190437584896</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966766</commentid>
    <comment_count>4</comment_count>
      <attachid>220903</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-10 23:57:35 -0800</bug_when>
    <thetext>Comment on attachment 220903
proposed patch

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

&gt; Source/WebCore/platform/network/mac/ResourceHandleMac.mm:178
&gt; +        // Synchronous requests should not be subject to regular connection count limit to avoid deadlocks.

A bit more about these deadlocks would be useful here.

&gt; Source/WebKit2/NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:45
&gt; +    // FIXME: What is the purpose of these assignments? WebKit normally uses upper case &quot;WK&quot; functions directly.
&gt;      wkInitializeMaximumHTTPConnectionCountPerHost = WKInitializeMaximumHTTPConnectionCountPerHost;
&gt; -    wkSetHTTPPipeliningMaximumPriority = WKSetHTTPPipeliningMaximumPriority;
&gt; -    wkSetHTTPPipeliningMinimumFastLanePriority = WKSetHTTPPipeliningMinimumFastLanePriority;
&gt; +    wkSetHTTPRequestMaximumPriority = WKSetHTTPRequestMaximumPriority;
&gt; +    wkSetHTTPRequestMinimumFastLanePriority = WKSetHTTPRequestMinimumFastLanePriority;

I&apos;d just go ahead and remove them rather than add the FIXME.

&gt; Source/WebKit2/UIProcess/API/C/WKContext.cpp:-63
&gt; -extern &quot;C&quot; {
&gt; -// For binary compatibility with Safari 5.1. Should be removed eventually.
&gt; -WK_EXPORT void _WKContextSetAdditionalPluginsDirectory(WKContextRef context, WKStringRef pluginsDirectory);
&gt; -WK_EXPORT void _WKContextRegisterURLSchemeAsEmptyDocument(WKContextRef context, WKStringRef urlScheme);
&gt; -WK_EXPORT void _WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef context, bool alwaysUseComplexTextCodePath);
&gt; -WK_EXPORT void _WKContextSetHTTPPipeliningEnabled(WKContextRef context, bool enabled);

I would save this for a different patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966888</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-11 20:16:45 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r161796&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220903</attachid>
            <date>2014-01-10 16:28:05 -0800</date>
            <delta_ts>2014-01-10 23:57:35 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>NoScheduling.txt</filename>
            <type>text/plain</type>
            <size>33332</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTY5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE0LTAxLTEwICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFtXaW5kb3dzXSBT
dG9wIHNjaGVkdWxpbmcgbmV0d29yayByZXF1ZXN0cyBpbiBXZWJDb3JlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY3ODkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzE1MTE0NzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlJ2xsIGp1c3Qgc2VuZCBhbGwgcmVxdWVzdHMgdG8gQ0ZOZXR3b3JrIG5v
dywgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIHByaW9yaXRpZXMuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjogV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucyBhcmUgY2hhbmdpbmcgdG8g
c3VwcG9ydCBwcmlvcml0aWVzCisgICAgICAgIGZvciBtb3JlIHRoYW4ganVzdCBwaXBlbGluaW5n
LgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oOiBGb3Igc3luY3Jvbm91cyByZXF1ZXN0cywgbWFrZSBpdCBzbyB0
aGF0IHRoZXkKKyAgICAgICAgZG9uJ3QgY291bnQgYWdhaW5zdCBIVFRQIGNvbm5lY3Rpb24gbGlt
aXQsIHRvIGF2b2lkIHRoZSBwb3NzaWJpbGl0eSBvZiBoYW5naW5nIHRoZSBwcm9jZXNzLgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9u
Q291bnRQZXJIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVIVFRQQ29ubmVjdGlv
blNldHRpbmdzT25TdGFydHVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdENGTmV0Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1BsYXRmb3JtUmVxdWVzdFBy
aW9yaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJj
ZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBs
YXRmb3JtUmVxdWVzdCk6CisKIDIwMTQtMDEtMTAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIGRvZXNuJ3QgaGF2ZSA8T3BlbkdML2dsLmg+OyBm
aXggaU9TIGJ1aWxkLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDE2MTY3OSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xODk0
LDEyICsxODk0LDEzIEBAIF93a0dldENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UKIF93a0dldENG
VVJMUmVzcG9uc2VNSU1FVHlwZQogX3drR2V0Q0ZVUkxSZXNwb25zZVVSTAogX3drR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeQotX3drR2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0eQorX3drR2V0SFRU
UFJlcXVlc3RQcmlvcml0eQogX3drR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24KIF93a0dldE5TVVJM
UmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlCiBfd2tHZXRVc2VyVG9CYXNlQ1RNCiBfd2tIVFRQQ29v
a2llcwogX3drSFRUUENvb2tpZXNGb3JVUkwKK193a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmlu
ZwogX3drSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdAogX3drU2V0
QmFzZUNUTQogX3drU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlCkBAIC0xOTA3LDkgKzE5MDgsOSBA
QCBfd2tTZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3RyZWFtCiBfd2tTZXRDT05ORUNU
UHJveHlGb3JTdHJlYW0KIF93a1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3kKIF93a1NldEhUVFBD
b29raWVzRm9yVVJMCi1fd2tTZXRIVFRQUGlwZWxpbmluZ01heGltdW1Qcmlvcml0eQotX3drU2V0
SFRUUFBpcGVsaW5pbmdNaW5pbXVtRmFzdExhbmVQcmlvcml0eQotX3drU2V0SFRUUFBpcGVsaW5p
bmdQcmlvcml0eQorX3drU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHkKK193a1NldEhUVFBS
ZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkKK193a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkK
IF93a1NldE5TVVJMQ29ubmVjdGlvbkRlZmVyc0NhbGxiYWNrcwogX3drU2V0TlNVUkxSZXF1ZXN0
U2hvdWxkQ29udGVudFNuaWZmCiBfd2tTZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJKHJl
dmlzaW9uIDE2MTY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsOSArMTYyLDEwIEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQKICAgICBib29sIGhhZFJlcXVlc3RzID0gaG9z
dC0+aGFzUmVxdWVzdHMoKTsKICAgICBob3N0LT5zY2hlZHVsZShyZXNvdXJjZUxvYWRlciwgcHJp
b3JpdHkpOwogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChSZXNvdXJjZVJlcXVlc3Q6Omh0
dHBQaXBlbGluaW5nRW5hYmxlZCgpICYmICFpc1N1c3BlbmRpbmdQZW5kaW5nUmVxdWVzdHMoKSkg
eworI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykKKyAgICBpZiAoIWlzU3VzcGVu
ZGluZ1BlbmRpbmdSZXF1ZXN0cygpKSB7CiAgICAgICAgIC8vIFNlcnZlIGFsbCByZXF1ZXN0cyBh
dCBvbmNlIHRvIGtlZXAgdGhlIHBpcGVsaW5lIGZ1bGwgYXQgdGhlIG5ldHdvcmsgbGF5ZXIuCisg
ICAgICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgY29kZSBkbyBhbnl0aGluZyB1c2VmdWwsIGdpdmVu
IHRoYXQgd2UgYWxzbyBzZXQgbWF4UmVxdWVzdHNJbkZsaWdodFBlckhvc3QgdG8gZWZmZWN0aXZl
bHkgdW5saW1pdGVkIG9uIHRoZXNlIHBsYXRmb3Jtcz8KICAgICAgICAgc2VydmVQZW5kaW5nUmVx
dWVzdHMoaG9zdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCShyZXZpc2lvbiAxNjE2NzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNTgsOSArNTgsMTAgQEAgdm9pZCAoKndrU2V0TlNVUkxSZXF1ZXN0U2hv
dWxkQ29udGVudFNuaQogaWQgKCp3a0NyZWF0ZU5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlUHJveHkp
KHZvaWQpOwogdW5zaWduZWQgKCp3a0luaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3Vu
dFBlckhvc3QpKHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CiBpbnQgKCp3a0dl
dEhUVFBQaXBlbGluaW5nUHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZik7Ci12b2lkICgqd2tTZXRI
VFRQUGlwZWxpbmluZ01heGltdW1Qcmlvcml0eSkoaW50IHByaW9yaXR5KTsKLXZvaWQgKCp3a1Nl
dEhUVFBQaXBlbGluaW5nUHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50IHByaW9yaXR5KTsK
LXZvaWQgKCp3a1NldEhUVFBQaXBlbGluaW5nTWluaW11bUZhc3RMYW5lUHJpb3JpdHkpKGludCBw
cmlvcml0eSk7Cit2b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSkoaW50IHBy
aW9yaXR5KTsKK3ZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJl
ZiwgaW50IHByaW9yaXR5KTsKK3ZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5l
UHJpb3JpdHkpKGludCBwcmlvcml0eSk7Cit2b2lkICgqd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVs
aW5pbmcpKENGVVJMUmVxdWVzdFJlZik7CiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJl
YW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBw
cm94eVBvcnQpOwogdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVh
bSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcp
Owogdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpKEJPT0wp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5oCShyZXZpc2lvbiAxNjE2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYs
MTAgKzIyNiwxMSBAQCBleHRlcm4gdm9pZCAoKndrU2lnbmFsQ0ZSZWFkU3RyZWFtRW5kKShDCiBl
eHRlcm4gdm9pZCAoKndrU2lnbmFsQ0ZSZWFkU3RyZWFtRXJyb3IpKENGUmVhZFN0cmVhbVJlZiBz
dHJlYW0sIENGU3RyZWFtRXJyb3IgKmVycm9yKTsKIGV4dGVybiB2b2lkICgqd2tTaWduYWxDRlJl
YWRTdHJlYW1IYXNCeXRlcykoQ0ZSZWFkU3RyZWFtUmVmIHN0cmVhbSk7CiBleHRlcm4gdW5zaWdu
ZWQgKCp3a0luaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpKHVuc2ln
bmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7Ci1leHRlcm4gaW50ICgqd2tHZXRIVFRQUGlw
ZWxpbmluZ1ByaW9yaXR5KShDRlVSTFJlcXVlc3RSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1NldEhU
VFBQaXBlbGluaW5nTWF4aW11bVByaW9yaXR5KShpbnQgbWF4aW11bVByaW9yaXR5KTsKLWV4dGVy
biB2b2lkICgqd2tTZXRIVFRQUGlwZWxpbmluZ1ByaW9yaXR5KShDRlVSTFJlcXVlc3RSZWYsIGlu
dCBwcmlvcml0eSk7Ci1leHRlcm4gdm9pZCAoKndrU2V0SFRUUFBpcGVsaW5pbmdNaW5pbXVtRmFz
dExhbmVQcmlvcml0eSkoaW50IHByaW9yaXR5KTsKK2V4dGVybiBpbnQgKCp3a0dldEhUVFBSZXF1
ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZik7CitleHRlcm4gdm9pZCAoKndrU2V0SFRUUFJl
cXVlc3RNYXhpbXVtUHJpb3JpdHkpKGludCBtYXhpbXVtUHJpb3JpdHkpOworZXh0ZXJuIHZvaWQg
KCp3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50IHByaW9yaXR5
KTsKK2V4dGVybiB2b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5
KShpbnQgcHJpb3JpdHkpOworZXh0ZXJuIHZvaWQgKCp3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxp
bmluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKIGV4dGVybiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlG
b3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJl
clJlZiBwcm94eVBvcnQpOwogZXh0ZXJuIHZvaWQgKCp3a1NldENPTk5FQ1RQcm94eUF1dGhvcml6
YXRpb25Gb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZTdHJpbmdSZWYgcHJveHlBdXRob3Jp
emF0aW9uU3RyaW5nKTsKIGV4dGVybiBDRkhUVFBNZXNzYWdlUmVmICgqd2tDb3B5Q09OTkVDVFBy
b3h5UmVzcG9uc2UpKENGUmVhZFN0cmVhbVJlZiwgQ0ZVUkxSZWYgcmVzcG9uc2VVUkwsIENGU3Ry
aW5nUmVmIHByb3h5SG9zdCwgQ0ZOdW1iZXJSZWYgcHJveHlQb3J0KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1t
CShyZXZpc2lvbiAxNjE2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA1LDEwICsxMDUsMTEgQEAg
Q0ZSZWFkU3RyZWFtUmVmICgqd2tDcmVhdGVDdXN0b21DRlJlYWRTdAogdm9pZCAoKndrU2V0TlNV
UkxDb25uZWN0aW9uRGVmZXJzQ2FsbGJhY2tzKShOU1VSTENvbm5lY3Rpb24gKiwgQk9PTCk7CiB2
b2lkICgqd2tTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpKE5TTXV0YWJsZVVSTFJl
cXVlc3QgKiwgQk9PTCk7CiB1bnNpZ25lZCAoKndrSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVj
dGlvbkNvdW50UGVySG9zdCkodW5zaWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKLWlu
dCAoKndrR2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0UmVmKTsKLXZvaWQg
KCp3a1NldEhUVFBQaXBlbGluaW5nTWF4aW11bVByaW9yaXR5KShpbnQgcHJpb3JpdHkpOwotdm9p
ZCAoKndrU2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0UmVmLCBpbnQgcHJp
b3JpdHkpOwotdm9pZCAoKndrU2V0SFRUUFBpcGVsaW5pbmdNaW5pbXVtRmFzdExhbmVQcmlvcml0
eSkoaW50IHByaW9yaXR5KTsKK2ludCAoKndrR2V0SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxS
ZXF1ZXN0UmVmKTsKK3ZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KShpbnQg
cHJpb3JpdHkpOwordm9pZCAoKndrU2V0SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0
UmVmLCBpbnQgcHJpb3JpdHkpOwordm9pZCAoKndrU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExh
bmVQcmlvcml0eSkoaW50IHByaW9yaXR5KTsKK3ZvaWQgKCp3a0hUVFBSZXF1ZXN0RW5hYmxlUGlw
ZWxpbmluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKIHZvaWQgKCp3a1NldENPTk5FQ1RQcm94eUZvclN0
cmVhbSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVm
IHByb3h5UG9ydCk7CiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3Ry
ZWFtKShDRlJlYWRTdHJlYW1SZWYsIENGU3RyaW5nUmVmIHByb3h5QXV0aG9yaXphdGlvblN0cmlu
Zyk7CiBDRkhUVFBNZXNzYWdlUmVmICgqd2tDb3B5Q09OTkVDVFByb3h5UmVzcG9uc2UpKENGUmVh
ZFN0cmVhbVJlZiwgQ0ZVUkxSZWYgcmVzcG9uc2VVUkwsIENGU3RyaW5nUmVmIHByb3h5SG9zdCwg
Q0ZOdW1iZXJSZWYgcHJveHlQb3J0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2MTY3OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjc2LDEwICsyNzYsMTcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0
aGVudGljYXRpb25DbGllbnQoKSBPVkVSUklERSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lk
IGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgIVVTRShDRk5FVFdPUkspCi0gICAgdm9pZCBjcmVhdGVOU1VSTENv
bm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJv
b2wgc2hvdWxkQ29udGVudFNuaWZmKTsKLSNlbGlmIFVTRShDRk5FVFdPUkspCi0gICAgdm9pZCBj
cmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9v
bCBzaG91bGRDb250ZW50U25pZmYsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVzKTsK
KyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCisgICAgZW51bSBjbGFzcyBTY2hl
ZHVsaW5nQmVoYXZpb3IgeworICAgICAgICBBc3luY2hyb25vdXMsCisgICAgICAgIFN5bmNocm9u
b3VzCisgICAgfTsKKworI2lmIFVTRShDRk5FVFdPUkspCisgICAgdm9pZCBjcmVhdGVDRlVSTENv
bm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250
ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFByb3Bl
cnRpZXMpOworI2Vsc2UKKyAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0
ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIFNjaGVkdWxpbmdCZWhhdmlvcik7CisjZW5kaWYKICNlbmRpZgogCiAgICAgZnJpZW5kIGNs
YXNzIFJlc291cmNlSGFuZGxlSW50ZXJuYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHJl
dmlzaW9uIDE2MTY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNSw3ICsxMTUsNyBAQCBS
ZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICBMT0coTmV0d29yaywgIkNGTmV0
IC0gRGVzdHJveWluZyBqb2IgJXAgKCVzKSIsIHRoaXMsIGQtPm1fZmlyc3RSZXF1ZXN0LnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVh
dGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBz
aG91bGRDb250ZW50U25pZmYsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVzKQordm9p
ZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZp
b3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGllcykK
IHsKICAgICBpZiAoKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgp
KSAmJiAhZmlyc3RSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAg
ICAgICAgIC8vIENyZWRlbnRpYWxzIGZvciBmdHAgY2FuIG9ubHkgYmUgcGFzc2VkIGluIFVSTCwg
dGhlIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBkZWxlZ2F0ZSBjYWxsIHdvbid0
IGJlIG1hZGUuCkBAIC0xODUsOCArMTg1LDE3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZUNGVVJMQ29ubmVjdGkKICNlbmRpZgogCiAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBzdHJl
YW1Qcm9wZXJ0aWVzICA9IENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoMCwgMCwgJmtDRlR5cGVE
aWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7
Ci0gICAgaWYgKCFzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkKKworICAgIGlmICghc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UpIHsKKyAgICAgICAgLy8gQXZvaWQgdXNpbmcgZXhpc3Rpbmcg
Y29ubmVjdGlvbnMsIGJlY2F1c2UgdGhleSBtYXkgYmUgYWxyZWFkeSBhdXRoZW50aWNhdGVkLgog
ICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShzdHJlYW1Qcm9wZXJ0aWVzLCBDRlNUUigiX2tD
RlVSTENvbm5lY3Rpb25TZXNzaW9uSUQiKSwgQ0ZTVFIoIldlYktpdFByaXZhdGVTZXNzaW9uIikp
OworICAgIH0KKworICAgIGlmIChzY2hlZHVsaW5nQmVoYXZpb3IgPT0gU2NoZWR1bGluZ0JlaGF2
aW9yOjpTeW5jaHJvbm91cykgeworICAgICAgICAvLyBTeW5jaHJvbm91cyByZXF1ZXN0cyBzaG91
bGQgbm90IGJlIHN1YmplY3QgdG8gcmVndWxhciBjb25uZWN0aW9uIGNvdW50IGxpbWl0IHRvIGF2
b2lkIGRlYWRsb2Nrcy4KKyAgICAgICAgLy8gQ29ubmVjdGlvbnMgYXJlIGdyb3VwZWQgYnkgdGhl
aXIgc29ja2V0IHN0cmVhbSBwcm9wZXJ0aWVzLCB3aXRoIGVhY2ggZ3JvdXAgaGF2aW5nIGEgc2Vw
YXJhdGUgY291bnQuCisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKHN0cmVhbVByb3BlcnRp
ZXMsIENGU1RSKCJfV2ViS2l0U3luY2hyb25vdXNSZXF1ZXN0IiksIGtDRkJvb2xlYW5UcnVlKTsK
KyAgICB9CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MCkKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVm
PiBzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0RGF0YSA9IGQtPm1fY29udGV4dC0+c291cmNlQXBwbGlj
YXRpb25BdWRpdERhdGEoKTsKQEAgLTIwMCwxMSArMjA5LDExIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGkKICAgICAgICAgcHJvcGVydGllc0RpY3Rpb25hcnkgPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsIGNsaWVudFByb3BlcnRpZXMpKTsKICAgICBlbHNlCiAgICAgICAgIHByb3BlcnRpZXNEaWN0
aW9uYXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9u
YXJ5VmFsdWVDYWxsQmFja3MpKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgaXMgZGlmZmVy
ZW50IGZyb20gaU9TIGNvZGUgaW4gUmVzb3VyY2VIYW5kbGVNYWMubW0gaW4gdGhhdCBoZXJlIHdl
IGlnbm9yZSBzdHJlYW0gcHJvcGVydGllcyB0aGF0IHdlcmUgcHJlc2VudCBpbiBjbGllbnQgcHJv
cGVydGllcy4KICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShwcm9wZXJ0aWVzRGljdGlvbmFyeS5n
ZXQoKSwga0NGVVJMQ29ubmVjdGlvblNvY2tldFN0cmVhbVByb3BlcnRpZXMsIHN0cmVhbVByb3Bl
cnRpZXMpOwogICAgIENGUmVsZWFzZShzdHJlYW1Qcm9wZXJ0aWVzKTsKIAotCi0KICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgaWYgKGNsaWVudCgpICYmIGNsaWVudCgpLT51c2VzQXN5bmNDYWxsYmFj
a3MoKSkKICAgICAgICAgZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUgPSBhZG9wdFJlZihuZXcgUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZSh0aGlz
KSk7CkBAIC0yMzQsNyArMjQzLDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogCiAg
ICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBjbGllbnQo
KS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAgICBjcmVhdGVDRlVSTENv
bm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNu
aWZmLCBjbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykuZ2V0KCkpOworICAgIGNy
ZWF0ZUNGVVJMQ29ubmVjdGlvbihzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgZC0+bV9zaG91
bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvcjo6QXN5bmNocm9ub3VzLCBjbGllbnQo
KS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykuZ2V0KCkpOwogCiAgICAgZC0+bV9jb25uZWN0
aW9uRGVsZWdhdGUtPnNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoZC0+bV9jb25uZWN0aW9uLmdl
dCgpKTsKICAgICBDRlVSTENvbm5lY3Rpb25TdGFydChkLT5tX2Nvbm5lY3Rpb24uZ2V0KCkpOwpA
QCAtNDgwLDcgKzQ4OSw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291
cmMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGhhbmRsZS0+Y3JlYXRlQ0ZVUkxDb25u
ZWN0aW9uKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIFJlc291
cmNlSGFuZGxlOjpzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSksIGhhbmRsZS0+
Y2xpZW50KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKGhhbmRsZS5nZXQoKSkuZ2V0KCkpOworICAg
IGhhbmRsZS0+Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlSGFuZGxlOjpzaG91bGRDb250ZW50U25pZmZVUkwo
cmVxdWVzdC51cmwoKSksCisgICAgICAgIFNjaGVkdWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMs
IGhhbmRsZS0+Y2xpZW50KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKGhhbmRsZS5nZXQoKSkuZ2V0
KCkpOwogCiAgICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVXaXRoUnVuTG9vcChoYW5kbGUtPmNv
bm5lY3Rpb24oKSwgQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBzeW5jaHJvbm91c0xvYWRSdW5Mb29w
TW9kZSgpKTsKICAgICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZURvd25sb2FkV2l0aFJ1bkxvb3Ao
aGFuZGxlLT5jb25uZWN0aW9uKCksIENGUnVuTG9vcEdldEN1cnJlbnQoKSwgc3luY2hyb25vdXNM
b2FkUnVuTG9vcE1vZGUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAkocmV2aXNpb24g
MTYxNjc5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJl
cXVlc3RDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCisvLyBGSVhNRTogTWFrZSB0aGlzIGEgTmV0d29ya2luZ0NvbnRleHQg
cHJvcGVydHkuCiAjaWYgUExBVEZPUk0oSU9TKQogYm9vbCBSZXNvdXJjZVJlcXVlc3Q6OnNfaHR0
cFBpcGVsaW5pbmdFbmFibGVkID0gdHJ1ZTsKICNlbHNlCkBAIC0xNTEsNyArMTUyLDEwIEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmUKICAgICBDRlVSTFJlcXVlc3RT
ZXRIVFRQUmVxdWVzdE1ldGhvZChjZlJlcXVlc3QsIGh0dHBNZXRob2QoKS5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpKTsKIAogICAgIGlmIChodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSkKLSAgICAgICAg
d2tTZXRIVFRQUGlwZWxpbmluZ1ByaW9yaXR5KGNmUmVxdWVzdCwgdG9IVFRQUGlwZWxpbmluZ1By
aW9yaXR5KG1fcHJpb3JpdHkpKTsKKyAgICAgICAgd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5p
bmcoY2ZSZXF1ZXN0KTsKKworICAgIHdrU2V0SFRUUFJlcXVlc3RQcmlvcml0eShjZlJlcXVlc3Qs
IHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkobV9wcmlvcml0eSkpOworCiAjaWYgIVBMQVRGT1JN
KFdJTikKICAgICB3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcoY2ZSZXF1ZXN0KTsK
ICNlbmRpZgpAQCAtMjcwLDggKzI3NCw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0
ZVJlc291cmNlUmUKICAgICB9CiAgICAgbV9hbGxvd0Nvb2tpZXMgPSBDRlVSTFJlcXVlc3RTaG91
bGRIYW5kbGVIVFRQQ29va2llcyhtX2NmUmVxdWVzdC5nZXQoKSk7CiAKLSAgICBpZiAoaHR0cFBp
cGVsaW5pbmdFbmFibGVkKCkpCi0gICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFBy
aW9yaXR5KHdrR2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOwor
ICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdrR2V0SFRUUFJlcXVlc3RQ
cmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOwogCiAgICAgbV9odHRwSGVhZGVyRmllbGRzLmNs
ZWFyKCk7CiAgICAgaWYgKENGRGljdGlvbmFyeVJlZiBoZWFkZXJzID0gQ0ZVUkxSZXF1ZXN0Q29w
eUFsbEhUVFBIZWFkZXJGaWVsZHMobV9jZlJlcXVlc3QuZ2V0KCkpKSB7CkBAIC0zOTIsMjggKzM5
NSwyMiBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KFBhCiB1bnNpZ25l
ZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkKIHsKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50ID0gNjsKLQotICAg
IC8vIEFsd2F5cyBzZXQgdGhlIGNvbm5lY3Rpb24gY291bnQgcGVyIGhvc3QsIGV2ZW4gd2hlbiBw
aXBlbGluaW5nLgotICAgIHVuc2lnbmVkIG1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9z
dCA9IHdrSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdChwcmVmZXJy
ZWRDb25uZWN0aW9uQ291bnQpOwotCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVubGltaXRl
ZENvbm5lY3Rpb25Db3VudCA9IDEwMDAwOwogCisgICAgd2tJbml0aWFsaXplTWF4aW11bUhUVFBD
b25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CisKICAgICBC
b29sZWFuIGtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0ID0gZmFsc2U7CiAgICAgQm9vbGVhbiBw
cmVmVmFsdWUgPSBDRlByZWZlcmVuY2VzR2V0QXBwQm9vbGVhblZhbHVlKENGU1RSKCJXZWJLaXRF
bmFibGVIVFRQUGlwZWxpbmluZyIpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbiwg
JmtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0KTsKICAgICBpZiAoa2V5RXhpc3RzQW5kSGFzVmFs
aWRGb3JtYXQpCiAgICAgICAgIFJlc291cmNlUmVxdWVzdDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFi
bGVkKHByZWZWYWx1ZSk7CiAKLSAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmlu
Z0VuYWJsZWQoKSkgewotICAgICAgICB3a1NldEhUVFBQaXBlbGluaW5nTWF4aW11bVByaW9yaXR5
KHRvSFRUUFBpcGVsaW5pbmdQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QpKTsK
KyAgICB3a1NldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KHRvUGxhdGZvcm1SZXF1ZXN0UHJp
b3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0KSk7CiAjaWYgIVBMQVRGT1JNKFdJTikK
LSAgICAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS85Mzc1NjA5PiBJbXBsZW1lbnQgbWlu
aW11bSBmYXN0IGxhbmUgcHJpb3JpdHkgc2V0dGluZyBvbiBXaW5kb3dzCi0gICAgICAgIHdrU2V0
SFRUUFBpcGVsaW5pbmdNaW5pbXVtRmFzdExhbmVQcmlvcml0eSh0b0hUVFBQaXBlbGluaW5nUHJp
b3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlNZWRpdW0pKTsKKyAgICAvLyBGSVhNRTogPHJkYXI6
Ly9wcm9ibGVtLzkzNzU2MDk+IEltcGxlbWVudCBtaW5pbXVtIGZhc3QgbGFuZSBwcmlvcml0eSBz
ZXR0aW5nIG9uIFdpbmRvd3MKKyAgICB3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJp
b3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1
bSkpOwogI2VuZGlmCi0gICAgICAgIC8vIFdoZW4gcGlwZWxpbmluZyBkbyBub3QgcmF0ZS1saW1p
dCByZXF1ZXN0cyBzZW50IGZyb20gV2ViQ29yZSBzaW5jZSBDRk5ldHdvcmsgaGFuZGxlcyB0aGF0
LgotICAgICAgICByZXR1cm4gdW5saW1pdGVkQ29ubmVjdGlvbkNvdW50OwotICAgIH0KIAotICAg
IHJldHVybiBtYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3Q7CisgICAgcmV0dXJuIHVu
bGltaXRlZENvbm5lY3Rpb25Db3VudDsKIH0KICAgICAKICNpZiBQTEFURk9STShJT1MpCkBAIC00
MjYsOCArNDIzLDggQEAgdm9pZCBpbml0aWFsaXplSFRUUENvbm5lY3Rpb25TZXR0aW5nc09uUwog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQgPSA2Owog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBmYXN0TGFuZUNvbm5lY3Rpb25Db3VudCA9IDE7CiAg
ICAgd2tJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJl
ZENvbm5lY3Rpb25Db3VudCk7Ci0gICAgd2tTZXRIVFRQUGlwZWxpbmluZ01heGltdW1Qcmlvcml0
eShSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QpOwotICAgIHdrU2V0SFRUUFBpcGVsaW5pbmdN
aW5pbXVtRmFzdExhbmVQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bSk7CisgICAg
d2tTZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hl
c3QpOworICAgIHdrU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eShSZXNvdXJj
ZUxvYWRQcmlvcml0eU1lZGl1bSk7CiAgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVT
ZXRMaW1pdChrSFRUUE51bUZhc3RMYW5lcywgZmFzdExhbmVDb25uZWN0aW9uQ291bnQpOwogfQog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oCShyZXZpc2lvbiAxNjE2NzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgaW5saW5lIFJlc291cmNlTG9hZFByaW9yaXR5
IHRvUmVzb3VyY2VMbwogICAgIH0KIH0KIAotaW5saW5lIGludCB0b0hUVFBQaXBlbGluaW5nUHJp
b3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitpbmxpbmUgaW50IHRvUGxhdGZv
cm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAg
c3dpdGNoIChwcmlvcml0eSkgewogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2MTY3OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTgsOSArMTE4LDkgQEAgc3RhdGljIGJvb2wgc3luY2hyb25vdXNXaWxsU2Vu
ZFJlcXVlc3RFbgogI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oSU9TKQotdm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK3ZvaWQgUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhh
dmlvciBzY2hlZHVsaW5nQmVoYXZpb3IpCiAjZWxzZQotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0aW9u
UHJvcGVydGllcykKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihp
ZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRD
b250ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGlj
dGlvbmFyeSAqY29ubmVjdGlvblByb3BlcnRpZXMpCiAjZW5kaWYKIHsKICAgICAvLyBDcmVkZW50
aWFscyBmb3IgZnRwIGNhbiBvbmx5IGJlIHBhc3NlZCBpbiBVUkwsIHRoZSBjb25uZWN0aW9uOmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogZGVsZWdhdGUgY2FsbCB3b24ndCBiZSBt
YWRlLgpAQCAtMTYyLDE0ICsxNjIsMjMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aQogICAgIEFTU0VSVChbTlNVUkxDb25uZWN0aW9uIGluc3RhbmNlc1Jlc3BvbmRU
b1NlbGVjdG9yOkBzZWxlY3RvcihfaW5pdFdpdGhSZXF1ZXN0OmRlbGVnYXRlOnVzZXNDYWNoZTpt
YXhDb250ZW50TGVuZ3RoOnN0YXJ0SW1tZWRpYXRlbHk6Y29ubmVjdGlvblByb3BlcnRpZXM6KV0p
OwogCiAjaWYgUExBVEZPUk0oSU9TKQorICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgaXMgZGlmZmVy
ZW50IGZyb20gaU9TIGNvZGUgaW4gUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgaW4gdGhhdCBoZXJl
IHdlIHJlc3BlY3Qgc3RyZWFtIHByb3BlcnRpZXMgdGhhdCB3ZXJlIHByZXNlbnQgaW4gY2xpZW50
IHByb3BlcnRpZXMuCiAgICAgTlNEaWN0aW9uYXJ5ICpzdHJlYW1Qcm9wZXJ0aWVzRnJvbUNsaWVu
dCA9IFtjb25uZWN0aW9uUHJvcGVydGllcyBvYmplY3RGb3JLZXk6QCJrQ0ZVUkxDb25uZWN0aW9u
U29ja2V0U3RyZWFtUHJvcGVydGllcyJdOwogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnN0cmVh
bVByb3BlcnRpZXMgPSBzdHJlYW1Qcm9wZXJ0aWVzRnJvbUNsaWVudCA/IFtbc3RyZWFtUHJvcGVy
dGllc0Zyb21DbGllbnQgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXSA6IFtOU011dGFibGVEaWN0
aW9uYXJ5IGRpY3Rpb25hcnldOwogI2Vsc2UKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpzdHJl
YW1Qcm9wZXJ0aWVzID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAjZW5kaWYK
IAotICAgIGlmICghc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCisgICAgaWYgKCFzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSkgeworICAgICAgICAvLyBBdm9pZCB1c2luZyBleGlzdGluZyBj
b25uZWN0aW9ucywgYmVjYXVzZSB0aGV5IG1heSBiZSBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQuCiAg
ICAgICAgIFtzdHJlYW1Qcm9wZXJ0aWVzIHNldE9iamVjdDpAIldlYktpdFByaXZhdGVTZXNzaW9u
IiBmb3JLZXk6QCJfa0NGVVJMQ29ubmVjdGlvblNlc3Npb25JRCJdOworICAgIH0KKworICAgIGlm
IChzY2hlZHVsaW5nQmVoYXZpb3IgPT0gU2NoZWR1bGluZ0JlaGF2aW9yOjpTeW5jaHJvbm91cykg
eworICAgICAgICAvLyBTeW5jaHJvbm91cyByZXF1ZXN0cyBzaG91bGQgbm90IGJlIHN1YmplY3Qg
dG8gcmVndWxhciBjb25uZWN0aW9uIGNvdW50IGxpbWl0IHRvIGF2b2lkIGRlYWRsb2Nrcy4KKyAg
ICAgICAgLy8gQ29ubmVjdGlvbnMgYXJlIGdyb3VwZWQgYnkgdGhlaXIgc29ja2V0IHN0cmVhbSBw
cm9wZXJ0aWVzLCB3aXRoIGVhY2ggZ3JvdXAgaGF2aW5nIGEgc2VwYXJhdGUgY291bnQuCisgICAg
ICAgIFtzdHJlYW1Qcm9wZXJ0aWVzIHNldE9iamVjdDpAVFJVRSBmb3JLZXk6QCJfV2ViS2l0U3lu
Y2hyb25vdXNSZXF1ZXN0Il07CisgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVm
PiBzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0RGF0YSA9IGQtPm1fY29udGV4dC0+c291cmNlQXBwbGlj
YXRpb25BdWRpdERhdGEoKTsKQEAgLTIxMywxMiArMjIyLDE0IEBAIGJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KCkKICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIFJlc291cmNl
SGFuZGxlOjpkZWxlZ2F0ZSgpLAogICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwK
LSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgZC0+bV9jb250ZXh0LT5sb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRT
bmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwK
KyAgICAgICAgU2NoZWR1bGluZ0JlaGF2aW9yOjpBc3luY2hyb25vdXMpOwogI2Vsc2UKICAgICBj
cmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAg
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRT
bmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwK
KyAgICAgICAgU2NoZWR1bGluZ0JlaGF2aW9yOjpBc3luY2hyb25vdXMsCiAgICAgICAgIChOU0Rp
Y3Rpb25hcnkgKiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykpOwogI2VuZGlm
CiAKQEAgLTM2NiwxMyArMzc3LDE1IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9h
ZFJlc291cmMKICAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFu
ZGxlLT5kZWxlZ2F0ZSgpLAogICAgICAgICBzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNv
bnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CisgICAgICAgIGhhbmRs
ZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCgpLAorICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzKTsK
ICNlbHNlCiAgICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRs
ZS0+ZGVsZWdhdGUoKSwgLy8gQSBzeW5jaHJvbm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8g
YSBkb3dubG9hZCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAg
ICAgICAgIHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsCiAgICAg
ICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShjb250ZXh0LCByZXF1ZXN0LnVy
bCgpKSwKICAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSB8fCAoY29udGV4dCAm
JiBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpLAorICAgICAgICBT
Y2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLAogICAgICAgICAoTlNEaWN0aW9uYXJ5ICop
aGFuZGxlLT5jbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXMoaGFuZGxlLmdldCgpKSk7CiAj
ZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VSZXF1ZXN0TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQkocmV2aXNpb24gMTYxNjc5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDgsOCArMTA4LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRv
VXBkYXRlUmVzb3VyY2VSZQogICAgICAgICBtX2h0dHBNZXRob2QgPSBtZXRob2Q7CiAgICAgbV9h
bGxvd0Nvb2tpZXMgPSBbbV9uc1JlcXVlc3QuZ2V0KCkgSFRUUFNob3VsZEhhbmRsZUNvb2tpZXNd
OwogCi0gICAgaWYgKFJlc291cmNlUmVxdWVzdDo6aHR0cFBpcGVsaW5pbmdFbmFibGVkKCkpCi0g
ICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdrR2V0SFRUUFBpcGVs
aW5pbmdQcmlvcml0eShbbV9uc1JlcXVlc3QuZ2V0KCkgX0NGVVJMUmVxdWVzdF0pKTsKKyAgICBt
X3ByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0UHJpb3Jp
dHkoW21fbnNSZXF1ZXN0LmdldCgpIF9DRlVSTFJlcXVlc3RdKSk7CiAKICAgICBOU0RpY3Rpb25h
cnkgKmhlYWRlcnMgPSBbbV9uc1JlcXVlc3QuZ2V0KCkgYWxsSFRUUEhlYWRlckZpZWxkc107CiAg
ICAgTlNFbnVtZXJhdG9yICplID0gW2hlYWRlcnMga2V5RW51bWVyYXRvcl07CkBAIC0xNjUsNyAr
MTY0LDkgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZQogICAgICAg
ICBuc1JlcXVlc3QgPSBbW05TTXV0YWJsZVVSTFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOnVy
bCgpXTsKIAogICAgIGlmIChSZXNvdXJjZVJlcXVlc3Q6Omh0dHBQaXBlbGluaW5nRW5hYmxlZCgp
KQotICAgICAgICB3a1NldEhUVFBQaXBlbGluaW5nUHJpb3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxS
ZXF1ZXN0XSwgdG9IVFRQUGlwZWxpbmluZ1ByaW9yaXR5KG1fcHJpb3JpdHkpKTsKKyAgICAgICAg
d2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSk7
CisKKyAgICB3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0
XSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShtX3ByaW9yaXR5KSk7CiAKICAgICBbbnNSZXF1
ZXN0IHNldENhY2hlUG9saWN5OihOU1VSTFJlcXVlc3RDYWNoZVBvbGljeSljYWNoZVBvbGljeSgp
XTsKICAgICB3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcoW25zUmVxdWVzdCBfQ0ZV
UkxSZXF1ZXN0XSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjE2OTMpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0w
MS0xMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFj
XSBbV2luZG93c10gU3RvcCBzY2hlZHVsaW5nIG5ldHdvcmsgcmVxdWVzdHMgaW4gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2Nzg5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTExNDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVz
b3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25D
b3VudFBlckhvc3QpOgorICAgICAgICBXZSBubyBsb25nZXIgbmVlZCB0aGUgdHJpY2sgd2l0aCA3
IGNvbm5lY3Rpb25zLCBhcyBzeW5jaHJvbm91cyByZXF1ZXN0cyBhbHdheXMgaGF2ZQorICAgICAg
ICB0aGUgcmlnaHQgb2Ygd2F5LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHA6IFJlbW92ZWQgbG9uZyBvYnNvbGV0ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06IChJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgIFVwZGF0ZWQgZm9yIG5ldyBXS1NJIGZ1bmN0
aW9uIG5hbWVzLgorCiAyMDE0LTAxLTEwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGRlYWQgY29kZQpJbmRleDogU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXJNYWMubW0JKHJldmlzaW9uIDE2MTY3OSkKKysrIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSwzNiArMzksMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFsaXplTWF4
aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkKIHsKKyAgICAvLyBGSVhNRTogV2hhdCBp
cyB0aGUgcHVycG9zZSBvZiB0aGVzZSBhc3NpZ25tZW50cz8gV2ViS2l0IG5vcm1hbGx5IHVzZXMg
dXBwZXIgY2FzZSAiV0siIGZ1bmN0aW9ucyBkaXJlY3RseS4KICAgICB3a0luaXRpYWxpemVNYXhp
bXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QgPSBXS0luaXRpYWxpemVNYXhpbXVtSFRUUENv
bm5lY3Rpb25Db3VudFBlckhvc3Q7Ci0gICAgd2tTZXRIVFRQUGlwZWxpbmluZ01heGltdW1Qcmlv
cml0eSA9IFdLU2V0SFRUUFBpcGVsaW5pbmdNYXhpbXVtUHJpb3JpdHk7Ci0gICAgd2tTZXRIVFRQ
UGlwZWxpbmluZ01pbmltdW1GYXN0TGFuZVByaW9yaXR5ID0gV0tTZXRIVFRQUGlwZWxpbmluZ01p
bmltdW1GYXN0TGFuZVByaW9yaXR5OworICAgIHdrU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3Jp
dHkgPSBXS1NldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5OworICAgIHdrU2V0SFRUUFJlcXVl
c3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eSA9IFdLU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExh
bmVQcmlvcml0eTsKIAotICAgIC8vIE91ciBwcmVmZXJyZWQgY29ubmVjdGlvbi1wZXItaG9zdCBs
aW1pdCBpcyB0aGUgc3RhbmRhcmQgNiwgYnV0IHdlIG5lZWQgdG8gbGV0IENGTmV0d29yayBoYW5k
bGUgYSA3dGgKLSAgICAvLyBpbiBjYXNlIGEgc3luY2hyb25vdXMgWEhScyBpcyBtYWRlIHdoaWxl
IDYgbG9hZHMgYXJlIGFscmVhZHkgb3V0c3RhbmRpbmcuCi0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCA9IDc7CisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCA9IDY7CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHVubGltaXRlZENvbm5lY3Rpb25Db3VudCA9IDEwMDAwOwogCi0gICAgLy8gQWx3YXlzIHNl
dCB0aGUgY29ubmVjdGlvbiBjb3VudCBwZXIgaG9zdCwgZXZlbiB3aGVuIHBpcGVsaW5pbmcuCi0g
ICAgdW5zaWduZWQgbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0ID0gd2tJbml0aWFs
aXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJlZENvbm5lY3Rpb25D
b3VudCk7CisgICAgd2tJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0
KHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CiAKICAgICBCb29sZWFuIGtleUV4aXN0c0FuZEhh
c1ZhbGlkRm9ybWF0ID0gZmFsc2U7CiAgICAgQm9vbGVhbiBwcmVmVmFsdWUgPSBDRlByZWZlcmVu
Y2VzR2V0QXBwQm9vbGVhblZhbHVlKENGU1RSKCJXZWJLaXRFbmFibGVIVFRQUGlwZWxpbmluZyIp
LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbiwgJmtleUV4aXN0c0FuZEhhc1ZhbGlk
Rm9ybWF0KTsKLSAgICAKICAgICBpZiAoa2V5RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQpCiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkKHByZWZWYWx1ZSk7
CiAKLSAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSkgewot
ICAgICAgICB3a1NldEhUVFBQaXBlbGluaW5nTWF4aW11bVByaW9yaXR5KHRvSFRUUFBpcGVsaW5p
bmdQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QpKTsKLSAgICAgICAgd2tTZXRI
VFRQUGlwZWxpbmluZ01pbmltdW1GYXN0TGFuZVByaW9yaXR5KHRvSFRUUFBpcGVsaW5pbmdQcmlv
cml0eShSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bSkpOworICAgIHdrU2V0SFRUUFJlcXVlc3RN
YXhpbXVtUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlv
cml0eUhpZ2hlc3QpKTsKKyAgICB3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3Jp
dHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bSkp
OwogCi0gICAgICAgIC8vIFdoZW4gcGlwZWxpbmluZyBkbyBub3QgcmF0ZS1saW1pdCByZXF1ZXN0
cyBzZW50IGZyb20gV2ViQ29yZSBzaW5jZSBDRk5ldHdvcmsgaGFuZGxlcyB0aGF0LgotICAgICAg
ICBtX21heFJlcXVlc3RzSW5GbGlnaHRQZXJIb3N0ID0gdW5saW1pdGVkQ29ubmVjdGlvbkNvdW50
OwotCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBXZSd2ZSBhc2tlZCBmb3Igb25l
IG1vcmUgY29ubmVjdGlvbiBwZXIgaG9zdCB0aGFuIHdlIGludGVuZCB0byB1c2UgaW4gbW9zdCBj
YXNlcyBzbyBzeW5jaCBYSFJzIGNhbiBieXBhc3MgdGhhdCBsaW1pdC4KLSAgICBtX21heFJlcXVl
c3RzSW5GbGlnaHRQZXJIb3N0ID0gbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0IC0g
MTsKKyAgICBtX21heFJlcXVlc3RzSW5GbGlnaHRQZXJIb3N0ID0gdW5saW1pdGVkQ29ubmVjdGlv
bkNvdW50OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNjE2NzkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTUsMTQgKzU1LDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotZXh0ZXJu
ICJDIiB7Ci0vLyBGb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCBTYWZhcmkgNS4xLiBTaG91
bGQgYmUgcmVtb3ZlZCBldmVudHVhbGx5LgotV0tfRVhQT1JUIHZvaWQgX1dLQ29udGV4dFNldEFk
ZGl0aW9uYWxQbHVnaW5zRGlyZWN0b3J5KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1Jl
ZiBwbHVnaW5zRGlyZWN0b3J5KTsKLVdLX0VYUE9SVCB2b2lkIF9XS0NvbnRleHRSZWdpc3RlclVS
TFNjaGVtZUFzRW1wdHlEb2N1bWVudChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYg
dXJsU2NoZW1lKTsKLVdLX0VYUE9SVCB2b2lkIF9XS0NvbnRleHRTZXRBbHdheXNVc2VzQ29tcGxl
eFRleHRDb2RlUGF0aChXS0NvbnRleHRSZWYgY29udGV4dCwgYm9vbCBhbHdheXNVc2VDb21wbGV4
VGV4dENvZGVQYXRoKTsKLVdLX0VYUE9SVCB2b2lkIF9XS0NvbnRleHRTZXRIVFRQUGlwZWxpbmlu
Z0VuYWJsZWQoV0tDb250ZXh0UmVmIGNvbnRleHQsIGJvb2wgZW5hYmxlZCk7Ci19Ci0KIFdLVHlw
ZUlEIFdLQ29udGV4dEdldFR5cGVJRCgpCiB7CiAgICAgcmV0dXJuIHRvQVBJKFdlYkNvbnRleHQ6
OkFQSVR5cGUpOwpAQCAtNDA5LDI0ICs0MDEsMyBAQCB2b2lkIFdLQ29udGV4dFNldEludmFsaWRN
ZXNzYWdlRnVuY3Rpb24oCiB7CiAgICAgV2ViQ29udGV4dDo6c2V0SW52YWxpZE1lc3NhZ2VDYWxs
YmFjayhpbnZhbGlkTWVzc2FnZUZ1bmN0aW9uKTsKIH0KLQotLy8gRGVwcmVjYXRlZCBmdW5jdGlv
bnMuCi12b2lkIF9XS0NvbnRleHRTZXRBZGRpdGlvbmFsUGx1Z2luc0RpcmVjdG9yeShXS0NvbnRl
eHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgcGx1Z2luc0RpcmVjdG9yeSkKLXsKLSAgICBXS0Nv
bnRleHRTZXRBZGRpdGlvbmFsUGx1Z2luc0RpcmVjdG9yeShjb250ZXh0LCBwbHVnaW5zRGlyZWN0
b3J5KTsKLX0KLQotdm9pZCBfV0tDb250ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1l
bnQoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHVybFNjaGVtZSkKLXsKLSAgICBX
S0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChjb250ZXh0LCB1cmxTY2hl
bWUpOwotfQotCi12b2lkIF9XS0NvbnRleHRTZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0
aChXS0NvbnRleHRSZWYgY29udGV4dCwgYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dENvZGVQYXRo
KQotewotICAgIFdLQ29udGV4dFNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGNvbnRl
eHQsIGFsd2F5c1VzZUNvbXBsZXhUZXh0Q29kZVBhdGgpOwotfQotCi12b2lkIF9XS0NvbnRleHRT
ZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoV0tDb250ZXh0UmVmIGNvbnRleHQsIGJvb2wgZW5hYmxl
ZCkKLXsKLSAgICBXS0NvbnRleHRTZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoY29udGV4dCwgZW5h
YmxlZCk7Ci19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZp
c2lvbiAxNjE2NzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcg
QEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKEdl
dEdseXBoc0ZvckNoYXJhY3RlcnMpOwogI2VuZGlmCiAgICAgICAgIElOSVQoR2V0VmVydGljYWxH
bHlwaHNGb3JDaGFyYWN0ZXJzKTsKLSAgICAgICAgSU5JVChHZXRIVFRQUGlwZWxpbmluZ1ByaW9y
aXR5KTsKKyAgICAgICAgSU5JVChHZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKICAgICAgICAgSU5J
VChHZXRNSU1FVHlwZUZvckV4dGVuc2lvbik7CiAgICAgICAgIElOSVQoR2V0TlNVUkxSZXNwb25z
ZUxhc3RNb2RpZmllZERhdGUpOwogI2lmICFQTEFURk9STShJT1MpCkBAIC04NSw2ICs4NSw3IEBA
IHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChIaXRU
ZXN0TWVkaWFVSVBhcnQpOwogI2VuZGlmCiAgICAgICAgIElOSVQoSW5pdGlhbGl6ZU1heGltdW1I
VFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCk7CisgICAgICAgIElOSVQoSFRUUFJlcXVlc3RFbmFi
bGVQaXBlbGluaW5nKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKE1lYXN1cmVN
ZWRpYVVJUGFydCk7CiAgICAgICAgIElOSVQoUG9wdXBNZW51KTsKQEAgLTExMSw5ICsxMTIsOSBA
QCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICAgICAgSU5JVChTZXREcmFnSW1hZ2UpOwogI2VuZGlmCi0gICAgICAgIElOSVQoU2V0
SFRUUFBpcGVsaW5pbmdNYXhpbXVtUHJpb3JpdHkpOwotICAgICAgICBJTklUKFNldEhUVFBQaXBl
bGluaW5nUHJpb3JpdHkpOwotICAgICAgICBJTklUKFNldEhUVFBQaXBlbGluaW5nTWluaW11bUZh
c3RMYW5lUHJpb3JpdHkpOworICAgICAgICBJTklUKFNldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9y
aXR5KTsKKyAgICAgICAgSU5JVChTZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKKyAgICAgICAgSU5J
VChTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KTsKICAgICAgICAgSU5JVChT
ZXROU1VSTENvbm5lY3Rpb25EZWZlcnNDYWxsYmFja3MpOwogICAgICAgICBJTklUKFNldE5TVVJM
UmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZik7CiAgICAgICAgIElOSVQoU2V0UGF0dGVyblBoYXNl
SW5Vc2VyU3BhY2UpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxNjkzKQorKysg
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTQtMDEtMTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW01hY10gW1dpbmRvd3NdIFN0b3Agc2NoZWR1bGluZyBuZXR3b3JrIHJlcXVlc3RzIGlu
IFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNjc4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTUxMTQ3Mjc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJT
eXN0ZW1JbnRlcmZhY2UubW06IChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6IFVwZGF0ZWQK
KyAgICAgICAgZm9yIG5ldyBXS1NJIGZ1bmN0aW9uIG5hbWVzLgorCiAyMDE0LTAxLTEwICBZb25n
anVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgdW5w
YXJlbnRlZCB0aWxlZCBsYXllcnMgb24gbWVtb3J5IHByZXNzdXJlLgpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5t
bQkocmV2aXNpb24gMTYxNjc5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBAIHZv
aWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklUKEdldEZvbnRJbkxh
bmd1YWdlRm9yUmFuZ2UpOwogICAgIElOSVQoR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKTsK
ICNlbmRpZgotICAgIElOSVQoR2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0eSk7CisgICAgSU5JVChH
ZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKICAgICBJTklUKEdldE1JTUVUeXBlRm9yRXh0ZW5zaW9u
KTsKICAgICBJTklUKEdldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKTsKICNpZiAhUExB
VEZPUk0oSU9TKQpAQCAtMTA1LDkgKzEwNSwxMCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKHZvaWQpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFNldERyYWdJbWFnZSk7
CiAjZW5kaWYKLSAgICBJTklUKFNldEhUVFBQaXBlbGluaW5nTWF4aW11bVByaW9yaXR5KTsKLSAg
ICBJTklUKFNldEhUVFBQaXBlbGluaW5nUHJpb3JpdHkpOwotICAgIElOSVQoU2V0SFRUUFBpcGVs
aW5pbmdNaW5pbXVtRmFzdExhbmVQcmlvcml0eSk7CisgICAgSU5JVChTZXRIVFRQUmVxdWVzdE1h
eGltdW1Qcmlvcml0eSk7CisgICAgSU5JVChTZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKKyAgICBJ
TklUKFNldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkpOworICAgIElOSVQoSFRU
UFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKTsKICAgICBJTklUKFNldE5TVVJMQ29ubmVjdGlvbkRl
ZmVyc0NhbGxiYWNrcyk7CiAgICAgSU5JVChTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50U25p
ZmYpOwogICAgIElOSVQoU2V0UGF0dGVyblBoYXNlSW5Vc2VyU3BhY2UpOwo=
</data>
<flag name="review"
          id="244704"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="244711"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>