<?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>132772</bug_id>
          
          <creation_ts>2014-05-10 02:30:08 -0700</creation_ts>
          <short_desc>[Win] Enum type with value zero is compatible with void*, potential cause of crashes.</short_desc>
          <delta_ts>2014-05-13 13:57:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>132839</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>jeffrey+webkit</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1008246</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-10 02:30:08 -0700</bug_when>
    <thetext>Using the MSVC compiler, an instance of an enum type with value zero, is compatible with void* (see bug 132683 for a code example).
This has caused crashes on Windows on two occasions (bug 132683, and bug 121001).
This patch tries to prevent these type of crashes by using a type with explicit constructors instead of void*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008248</commentid>
    <comment_count>1</comment_count>
      <attachid>231223</attachid>
    <who name="">peavo</who>
    <bug_when>2014-05-10 02:39:21 -0700</bug_when>
    <thetext>Created attachment 231223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008285</commentid>
    <comment_count>2</comment_count>
      <attachid>231223</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-10 12:58:01 -0700</bug_when>
    <thetext>Comment on attachment 231223
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008288</commentid>
    <comment_count>3</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-10 13:06:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 231223 [details])
&gt; r=me

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008677</commentid>
    <comment_count>4</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-12 11:56:38 -0700</bug_when>
    <thetext>cq+? ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008713</commentid>
    <comment_count>5</comment_count>
      <attachid>231223</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 13:42:53 -0700</bug_when>
    <thetext>Comment on attachment 231223
Patch

Clearing flags on attachment: 231223

Committed r168642: &lt;http://trac.webkit.org/changeset/168642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008714</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 13:42:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008749</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 15:12:22 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 132839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009044</commentid>
    <comment_count>8</comment_count>
      <attachid>231401</attachid>
    <who name="">peavo</who>
    <bug_when>2014-05-13 12:48:41 -0700</bug_when>
    <thetext>Created attachment 231401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009045</commentid>
    <comment_count>9</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-13 12:50:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=231401) [details]
&gt; Patch

Sorry for the inconvenience. Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009050</commentid>
    <comment_count>10</comment_count>
      <attachid>231401</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-13 12:59:20 -0700</bug_when>
    <thetext>Comment on attachment 231401
Patch

Let&apos;s give this another go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009053</commentid>
    <comment_count>11</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-13 13:24:49 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 231401 [details])
&gt; Let&apos;s give this another go.

Thanks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009065</commentid>
    <comment_count>12</comment_count>
      <attachid>231401</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-13 13:57:39 -0700</bug_when>
    <thetext>Comment on attachment 231401
Patch

Clearing flags on attachment: 231401

Committed r168729: &lt;http://trac.webkit.org/changeset/168729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009066</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-13 13:57:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231223</attachid>
            <date>2014-05-10 02:39:21 -0700</date>
            <delta_ts>2014-05-13 12:48:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132772-20140510113843.patch</filename>
            <type>text/plain</type>
            <size>19932</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4NTc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE0LTA1LTEwICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisg
ICAgICAgIFtXaW5dIEVudW0gdHlwZSB3aXRoIHZhbHVlIHplcm8gaXMgY29tcGF0aWJsZSB3aXRo
IHZvaWQqLCBwb3RlbnRpYWwgY2F1c2Ugb2YgY3Jhc2hlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjc3MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzaW5nIHRoZSBNU1ZDIGNvbXBpbGVyLCBhbiBp
bnN0YW5jZSBvZiBhbiBlbnVtIHR5cGUgd2l0aCB2YWx1ZSB6ZXJvLCBpcyBjb21wYXRpYmxlIHdp
dGggdm9pZCogKHNlZSBidWcgMTMyNjgzIGZvciBhIGNvZGUgZXhhbXBsZSkuCisgICAgICAgIFRo
aXMgaGFzIGNhdXNlZCBjcmFzaGVzIG9uIFdpbmRvd3Mgb24gdHdvIG9jY2FzaW9ucyAoYnVnIDEz
MjY4MywgYW5kIGJ1ZyAxMjEwMDEpLgorICAgICAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIHByZXZl
bnQgdGhlc2UgdHlwZSBvZiBjcmFzaGVzIGJ5IHVzaW5nIGEgdHlwZSB3aXRoIGV4cGxpY2l0IGNv
bnN0cnVjdG9ycyBpbnN0ZWFkIG9mIHZvaWQqLgorICAgICAgICBUaGUgdm9pZCogcGFyYW1ldGVy
IGluIHRoZSBsb2FkRG91YmxlIGFuZCBzdG9yZURvdWJsZSBtZXRob2RzIGFyZSByZXBsYWNlZCB3
aXRoIFRydXN0ZWRJbW1QdHIuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmxvYWREb3VibGUpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6c3RvcmVEb3VibGUpOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
OjpzdG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZERvdWJsZSk6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyTUlQUzo6bG9hZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6
c3RvcmVEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclNINDo6bG9hZERvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Ojpz
dG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphYnNEb3VibGUpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bmVnYXRlRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWREb3VibGUpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OnNpbGVudEZpbGwpOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGVDbGFtcERv
dWJsZVRvQnl0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlRG91YmxlKToK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICog
aml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6
cHVyaWZ5TmFOKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRMb2FkRG91YmxlKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRGbG9hdFR5cGVkQXJyYXlHZXRCeVZhbCk6CisgICAg
ICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChKU0M6OmZsb29yVGh1bmtH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpyb3VuZFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6cG93VGh1bmtHZW5lcmF0b3IpOgorCiAyMDE0LTA1LTA5ICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWxsb3cgUmVt
b3RlIEluc3BlY3RvciB0byBlbnRpdGxlbWVudCBjaGVjayBVSVByb2Nlc3MgdGhyb3VnaCBXZWJQ
cm9jZXNzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMTY4NTM3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzMTAsOSArMTMxMCw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubGRyPDY0
PihkZXN0LCBhZGRyZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgfQogICAgIAot
ICAgIHZvaWQgbG9hZERvdWJsZShjb25zdCB2b2lkKiBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB2b2lkIGxvYWREb3VibGUoVHJ1c3RlZEltbVB0ciBhZGRyZXNzLCBGUFJlZ2lzdGVy
SUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmVUb0NhY2hlZFJlZyhUcnVzdGVkSW1tUHRyKGFk
ZHJlc3MpLCBtX2NhY2hlZE1lbW9yeVRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmVUb0NhY2hl
ZFJlZyhhZGRyZXNzLCBtX2NhY2hlZE1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmxkcjw2ND4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6
enIpOwogICAgIH0KIApAQCAtMTM3OCw5ICsxMzc4LDkgQEAgcHVibGljOgogICAgICAgICBtX2Fz
c2VtYmxlci5zdHI8NjQ+KHNyYywgYWRkcmVzcy5iYXNlLCBtZW1vcnlUZW1wUmVnaXN0ZXIpOwog
ICAgIH0KIAotICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9p
ZCogYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIFRydXN0
ZWRJbW1QdHIgYWRkcmVzcykKICAgICB7Ci0gICAgICAgIG1vdmVUb0NhY2hlZFJlZyhUcnVzdGVk
SW1tUHRyKGFkZHJlc3MpLCBtX2NhY2hlZE1lbW9yeVRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1v
dmVUb0NhY2hlZFJlZyhhZGRyZXNzLCBtX2NhY2hlZE1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLnN0cjw2ND4oc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIEFSTTY0UmVn
aXN0ZXJzOjp6cik7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCShyZXZpc2lvbiAxNjg1MzcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExMjEsOSArMTEyMSw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJs
ZXIuYmFzZUluZGV4VHJhbnNmZXJGbG9hdChBUk1Bc3NlbWJsZXI6OkxvYWREb3VibGUsIGRlc3Qs
IGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgc3RhdGljX2Nhc3Q8aW50PihhZGRyZXNzLnNj
YWxlKSwgYWRkcmVzcy5vZmZzZXQpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZERvdWJsZShjb25z
dCB2b2lkKiBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWREb3VibGUo
VHJ1c3RlZEltbVB0ciBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAg
IG1vdmUoVHJ1c3RlZEltbTMyKHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcykpLCBB
Uk1SZWdpc3RlcnM6OlMwKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIocmVpbnRlcnByZXRf
Y2FzdDxBUk1Xb3JkPihhZGRyZXNzLm1fdmFsdWUpKSwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLmRvdWJsZUR0clVwKEFSTUFzc2VtYmxlcjo6TG9hZERvdWJsZSwgZGVz
dCwgQVJNUmVnaXN0ZXJzOjpTMCwgMCk7CiAgICAgfQogCkBAIC0xMTQyLDkgKzExNDIsOSBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmJhc2VJbmRleFRyYW5zZmVyRmxvYXQoQVJNQXNz
ZW1ibGVyOjpTdG9yZURvdWJsZSwgc3JjLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIHN0
YXRpY19jYXN0PGludD4oYWRkcmVzcy5zY2FsZSksIGFkZHJlc3Mub2Zmc2V0KTsKICAgICB9CiAK
LSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJl
c3MpCisgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1tUHRy
IGFkZHJlc3MpCiAgICAgewotICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihyZWludGVycHJldF9j
YXN0PEFSTVdvcmQ+KGFkZHJlc3MpKSwgQVJNUmVnaXN0ZXJzOjpTMCk7CisgICAgICAgIG1vdmUo
VHJ1c3RlZEltbTMyKHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcy5tX3ZhbHVlKSks
IEFSTVJlZ2lzdGVyczo6UzApOwogICAgICAgICBtX2Fzc2VtYmxlci5kYXRhVHJhbnNmZXJGbG9h
dChBUk1Bc3NlbWJsZXI6OlN0b3JlRG91YmxlLCBzcmMsIEFSTVJlZ2lzdGVyczo6UzAsIDApOwog
ICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCSh3b3JraW5nIGNvcHkp
CkBAIC04NzUsOSArODc1LDkgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIudm1v
dihkZXN0LCBzcmMpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZERvdWJsZShjb25zdCB2b2lkKiBh
ZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWREb3VibGUoVHJ1c3RlZElt
bVB0ciBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUo
YWRkcmVzcywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLnZsZHIo
ZGVzdCwgYWRkcmVzc1RlbXBSZWdpc3RlciwgMCk7CiAgICAgfQogCkBAIC05MTEsOSArOTExLDkg
QEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5mc3RzKEFSTVJlZ2lzdGVyczo6YXNTaW5n
bGUoc3JjKSwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQ
UmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZURvdWJs
ZShGUFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1tUHRyIGFkZHJlc3MpCiAgICAgewotICAgICAg
ICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAg
ICAgICBtb3ZlKGFkZHJlc3MsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICBzdG9yZURv
dWJsZShzcmMsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCShy
ZXZpc2lvbiAxNjg1MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjY4LDcgKzIyNjgsNyBAQCBwdWJs
aWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoY29uc3Qgdm9pZCogYWRk
cmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkRG91YmxlKFRydXN0ZWRJbW1Q
dHIgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogI2lmIFdURl9NSVBTX0lTQSgx
KQogICAgICAgICAvKgpAQCAtMjI3Niw3ICsyMjc2LDcgQEAgcHVibGljOgogICAgICAgICAgICAg
bHdjMSAgICAgICAgZGVzdCwgMChhZGRyVGVtcCkKICAgICAgICAgICAgIGx3YzEgICAgICAgIGRl
c3QrMSwgNChhZGRyVGVtcCkKICAgICAgICAgICovCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0
cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoYWRkcmVzcywgYWRk
clRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBS
ZWdpc3RlciwgMCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdpc3RlcklEKGRlc3Qg
KyAxKSwgYWRkclRlbXBSZWdpc3RlciwgNCk7CiAjZWxzZQpAQCAtMjI4NCw3ICsyMjg0LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgbGkgICAgICAgICAgYWRkclRlbXAsIGFkZHJlc3MKICAgICAg
ICAgICAgIGxkYzEgICAgICAgIGRlc3QsIDAoYWRkclRlbXApCiAgICAgICAgICovCi0gICAgICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAg
IG1vdmUoYWRkcmVzcywgYWRkclRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxk
YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgMCk7CiAjZW5kaWYKICAgICB9CkBAIC0yNDA2LDE0
ICsyNDA2LDE0IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAotICAgIHZvaWQgc3RvcmVEb3Vi
bGUoRlBSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB2b2lkIHN0b3Jl
RG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW1QdHIgYWRkcmVzcykKICAgICB7CiAj
aWYgV1RGX01JUFNfSVNBKDEpCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwg
YWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoYWRkcmVzcywgYWRkclRlbXBSZWdpc3Rl
cik7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCAwKTsK
ICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1w
UmVnaXN0ZXIsIDQpOwogI2Vsc2UKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mp
LCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShhZGRyZXNzLCBhZGRyVGVtcFJlZ2lz
dGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIDAp
OwogI2VuZGlmCiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclNINC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaAkocmV2aXNpb24gMTY4NTM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTU1LDEwICsxMTU1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmVsZWFzZVNjcmF0
Y2goc2NyKTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoY29uc3Qgdm9pZCogYWRkcmVz
cywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIg
YWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBSZWdpc3RlcklEIHNj
ciA9IGNsYWltU2NyYXRjaCgpOwotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyks
IHNjcik7CisgICAgICAgIG1vdmUoYWRkcmVzcywgc2NyKTsKICAgICAgICAgbV9hc3NlbWJsZXIu
Zm1vdnNSZWFkcm1pbmMoc2NyLCAoRlBSZWdpc3RlcklEKShkZXN0ICsgMSkpOwogICAgICAgICBt
X2Fzc2VtYmxlci5mbW92c1JlYWRybShzY3IsIGRlc3QpOwogICAgICAgICByZWxlYXNlU2NyYXRj
aChzY3IpOwpAQCAtMTIwNCwxMCArMTIwNCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFk
ZHJlc3MpCisgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1t
UHRyIGFkZHJlc3MpCiAgICAgewogICAgICAgICBSZWdpc3RlcklEIHNjciA9IGNsYWltU2NyYXRj
aCgpOwotICAgICAgICBtX2Fzc2VtYmxlci5sb2FkQ29uc3RhbnQocmVpbnRlcnByZXRfY2FzdDx1
aW50MzJfdD4oY29uc3RfY2FzdDx2b2lkKj4oYWRkcmVzcykpICsgOCwgc2NyKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubG9hZENvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Q+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGFkZHJlc3MubV92YWx1ZSkpICsgOCwgc2NyKTsKICAgICAgICAgbV9hc3Nl
bWJsZXIuZm1vdnNXcml0ZXJuZGVjKHNyYywgc2NyKTsKICAgICAgICAgbV9hc3NlbWJsZXIuZm1v
dnNXcml0ZXJuZGVjKChGUFJlZ2lzdGVySUQpKHNyYyArIDEpLCBzY3IpOwogICAgICAgICByZWxl
YXNlU2NyYXRjaChzY3IpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4Ni5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAkocmV2aXNpb24gMTY4NTM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjMsMTEgKzEyMywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZHNkX21yKGFkZHJlc3MubV9wdHIsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVEb3Vi
bGUoRlBSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB2b2lkIHN0b3Jl
RG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW1QdHIgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAgICAgICBBU1NFUlQoYWRkcmVzcyk7
Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX3JtKHNyYywgYWRkcmVzcyk7CisgICAgICAgIEFT
U0VSVChhZGRyZXNzLm1fdmFsdWUpOworICAgICAgICBtX2Fzc2VtYmxlci5tb3ZzZF9ybShzcmMs
IGFkZHJlc3MubV92YWx1ZSk7CiAgICAgfQogCiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJs
ZShBYnNvbHV0ZUFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDQ4LDcg
KzQ0OCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChzcmMgIT0gZHN0KTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBuZWdhdGl2ZVplcm9Db25zdGFudCA9IC0wLjA7Ci0g
ICAgICAgIGxvYWREb3VibGUoJm5lZ2F0aXZlWmVyb0NvbnN0YW50LCBkc3QpOworICAgICAgICBs
b2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJm5lZ2F0aXZlWmVyb0NvbnN0YW50KSwgZHN0KTsKICAg
ICAgICAgbV9hc3NlbWJsZXIuYW5kbnBkX3JyKHNyYywgZHN0KTsKICAgICB9CiAKQEAgLTQ1Niw3
ICs0NTYsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoc3JjICE9IGRzdCk7CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbmVnYXRpdmVaZXJvQ29uc3RhbnQgPSAtMC4wOwot
ICAgICAgICBsb2FkRG91YmxlKCZuZWdhdGl2ZVplcm9Db25zdGFudCwgZHN0KTsKKyAgICAgICAg
bG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZuZWdhdGl2ZVplcm9Db25zdGFudCksIGRzdCk7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLnhvcnBkX3JyKHNyYywgZHN0KTsKICAgICB9CiAKQEAgLTY4NCwx
MyArNjg0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX3JyKHNy
YywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRG91YmxlKGNvbnN0IHZvaWQqIGFkZHJl
c3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRy
IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICNpZiBDUFUoWDg2KQogICAgICAg
ICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubW92c2RfbXIo
YWRkcmVzcywgZGVzdCk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX21yKGFkZHJlc3MubV92
YWx1ZSwgZGVzdCk7CiAjZWxzZQotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyks
IHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoYWRkcmVzcywgc2NyYXRjaFJlZ2lzdGVy
KTsKICAgICAgICAgbG9hZERvdWJsZShzY3JhdGNoUmVnaXN0ZXIsIGRlc3QpOwogI2VuZGlmCiAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxNjg1MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
MzYsNyArODM2LDcgQEAgRlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlRG91Ygog
ICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkgewogICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoaXNOdW1iZXJDb25zdGFudChlZGdlLm5vZGUoKSkpOwogICAgICAgICAgICAgRlBSUmVn
IGZwciA9IGZwckFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJl
c3NPZkRvdWJsZUNvbnN0YW50KGVkZ2Uubm9kZSgpKSwgZnByKTsKKyAgICAgICAgICAgIG1faml0
LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cihhZGRyZXNzT2ZEb3VibGVDb25zdGFudChlZGdlLm5v
ZGUoKSkpLCBmcHIpOwogICAgICAgICAgICAgbV9mcHJzLnJldGFpbihmcHIsIHZpcnR1YWxSZWdp
c3RlciwgU3BpbGxPcmRlckNvbnN0YW50KTsKICAgICAgICAgICAgIGluZm8uZmlsbERvdWJsZSgq
bV9zdHJlYW0sIGZwcik7CiAgICAgICAgICAgICByZXR1cm4gZnByOwpAQCAtMzEyNiw3ICszMTI2
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAg
ICAgICAgICAgICBKU1ZhbHVlUmVncygpLCB1c2UsIFNwZWNGdWxsUmVhbE51bWJlciwKICAgICAg
ICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVO
b3RFcXVhbE9yVW5vcmRlcmVkLCBvcEZQUiwgb3BGUFIpKTsKICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBtX2ppdC5zdG9yZURvdWJsZShvcEZQUiwgcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oYnVmZmVyICsgb3BlcmFuZElkeCkpOworICAgICAgICAgICAgICAgIG1faml0LnN0b3Jl
RG91YmxlKG9wRlBSLCBUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGJ1ZmZl
ciArIG9wZXJhbmRJZHgpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBjYXNlIEFMTF9JTlQzMl9JTkRFWElOR19UWVBFUzogewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlz
aW9uIDE2ODUzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6c2lsZW50RmlsbChjb25zdCBTaQogICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgIG1faml0LmxvYWREb3VibGUoYWRkcmVz
c09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlKCkpLCBwbGFuLmZwcigpKTsKKyAgICAgICAgbV9q
aXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKGFkZHJlc3NPZkRvdWJsZUNvbnN0YW50KHBsYW4u
bm9kZSgpKSksIHBsYW4uZnByKCkpOwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2Ug
TG9hZDMyVGFnOgpAQCAtMjI1NCwxMiArMjI1NCwxMiBAQCBzdGF0aWMgdm9pZCBjb21waWxlQ2xh
bXBEb3VibGVUb0J5dGUoSklUCiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSB6ZXJvID0gMDsKICAg
ICBzdGF0aWMgY29uc3QgZG91YmxlIGJ5dGVNYXggPSAyNTU7CiAgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSBoYWxmID0gMC41OwotICAgIGppdC5sb2FkRG91YmxlKCZ6ZXJvLCBzY3JhdGNoKTsKKyAg
ICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmemVybyksIHNj
cmF0Y2gpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHRvb1NtYWxsID0gaml0LmJyYW5jaERv
dWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQsIHNv
dXJjZSwgc2NyYXRjaCk7Ci0gICAgaml0LmxvYWREb3VibGUoJmJ5dGVNYXgsIHNjcmF0Y2gpOwor
ICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZieXRlTWF4
KSwgc2NyYXRjaCk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgdG9vQmlnID0gaml0LmJyYW5j
aERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRoYW4sIHNvdXJjZSwgc2NyYXRj
aCk7CiAgICAgCi0gICAgaml0LmxvYWREb3VibGUoJmhhbGYsIHNjcmF0Y2gpOworICAgIGppdC5s
b2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZoYWxmKSwgc2NyYXRjaCk7
CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGp1c3QgdXNlIGEgZmxvYXRpbmcg
cG9pbnQgcm91bmQhCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyMDU0CiAgICAgaml0LmFkZERvdWJsZShzb3VyY2UsIHNjcmF0Y2gpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkocmV2aXNpb24g
MTY4NTM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpw
dXJpZnlOYU4oRlBSUmVnIGYKIHsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3ROYU4gPSBi
cmFuY2hEb3VibGUoRG91YmxlRXF1YWwsIGZwciwgZnByKTsKICAgICBzdGF0aWMgY29uc3QgZG91
YmxlIE5hTiA9IFBOYU47Ci0gICAgbG9hZERvdWJsZSgmTmFOLCBmcHIpOworICAgIGxvYWREb3Vi
bGUoVHJ1c3RlZEltbVB0cigmTmFOKSwgZnByKTsKICAgICBub3ROYU4ubGluayh0aGlzKTsKIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDE2
ODUzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC04MTYsNyArODE2LDcgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0TG9hZERvdWJs
ZShpbnQgaW5kZQogewogICAgIGlmIChtX2NvZGVCbG9jay0+aXNDb25zdGFudFJlZ2lzdGVySW5k
ZXgoaW5kZXgpKSB7CiAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiYgaW5Db25zdGFudFBv
b2wgPSBtX2NvZGVCbG9jay0+Y29uc3RhbnRSZWdpc3RlcihpbmRleCk7Ci0gICAgICAgIGxvYWRE
b3VibGUoJmluQ29uc3RhbnRQb29sLCB2YWx1ZSk7CisgICAgICAgIGxvYWREb3VibGUoVHJ1c3Rl
ZEltbVB0cigmaW5Db25zdGFudFBvb2wpLCB2YWx1ZSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGxv
YWREb3VibGUoYWRkcmVzc0ZvcihpbmRleCksIHZhbHVlKTsKIH0KQEAgLTEwMTYsNyArMTAxNiw3
IEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdExvYWREb3VibGUoaW50IGluZGUKIHsKICAgICBpZiAo
bV9jb2RlQmxvY2stPmlzQ29uc3RhbnRSZWdpc3RlckluZGV4KGluZGV4KSkgewogICAgICAgICBX
cml0ZUJhcnJpZXI8VW5rbm93bj4mIGluQ29uc3RhbnRQb29sID0gbV9jb2RlQmxvY2stPmNvbnN0
YW50UmVnaXN0ZXIoaW5kZXgpOwotICAgICAgICBsb2FkRG91YmxlKCZpbkNvbnN0YW50UG9vbCwg
dmFsdWUpOworICAgICAgICBsb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJmluQ29uc3RhbnRQb29s
KSwgdmFsdWUpOwogICAgIH0gZWxzZQogICAgICAgICBsb2FkRG91YmxlKGFkZHJlc3NGb3IoaW5k
ZXgpLCB2YWx1ZSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNpb24gMTY4NTM3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNDAs
NyArMTI0MCw3IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RmxvYXRUeXBlZEFycmF5R2UKICAg
ICAKICAgICBKdW1wIG5vdE5hTiA9IGJyYW5jaERvdWJsZShEb3VibGVFcXVhbCwgZnBSZWdUMCwg
ZnBSZWdUMCk7CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBOYU4gPSBQTmFOOwotICAgIGxvYWRE
b3VibGUoJk5hTiwgZnBSZWdUMCk7CisgICAgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZOYU4p
LCBmcFJlZ1QwKTsKICAgICBub3ROYU4ubGluayh0aGlzKTsKICAgICAKICNpZiBVU0UoSlNWQUxV
RTY0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Jz
LmNwcAkocmV2aXNpb24gMTY4NTM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVu
a0dlbmVyYXRvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDAsNyArNzQwLDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGZsb29yVGh1bmtHZW5lcmF0bwogICAgIFNwZWNpYWxpemVkVGh1bmtK
SVQ6Okp1bXAgaW50UmVzdWx0OwogICAgIFNwZWNpYWxpemVkVGh1bmtKSVQ6Okp1bXBMaXN0IGRv
dWJsZVJlc3VsdDsKICAgICBpZiAoaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkp
IHsKLSAgICAgICAgaml0LmxvYWREb3VibGUoJnplcm9Db25zdGFudCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6ZnBSZWdUMSk7CisgICAgICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKCZ6ZXJvQ29uc3RhbnQpLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qx
KTsKICAgICAgICAgZG91YmxlUmVzdWx0LmFwcGVuZChqaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNz
ZW1ibGVyOjpEb3VibGVFcXVhbCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lh
bGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSkpOwogICAgICAgICBTcGVjaWFsaXplZFRodW5rSklUOjpK
dW1wTGlzdCBzbG93UGF0aDsKICAgICAgICAgLy8gSGFuZGxlIHRoZSBuZWdhdGl2ZSBkb3VibGVz
IGluIHRoZSBzbG93IHBhdGggZm9yIG5vdy4KQEAgLTc5NiwxMiArNzk2LDEyIEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG8KICAgICBTcGVjaWFsaXplZFRodW5rSklU
OjpKdW1wIGludFJlc3VsdDsKICAgICBTcGVjaWFsaXplZFRodW5rSklUOjpKdW1wTGlzdCBkb3Vi
bGVSZXN1bHQ7CiAgICAgaWYgKGppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpKSB7
Ci0gICAgICAgIGppdC5sb2FkRG91YmxlKCZ6ZXJvQ29uc3RhbnQsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OmZwUmVnVDEpOworICAgICAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cigmemVyb0NvbnN0YW50KSwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7
CiAgICAgICAgIGRvdWJsZVJlc3VsdC5hcHBlbmQoaml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2Vt
Ymxlcjo6RG91YmxlRXF1YWwsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDEpKTsKICAgICAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVDo6SnVt
cExpc3Qgc2xvd1BhdGg7CiAgICAgICAgIC8vIEhhbmRsZSB0aGUgbmVnYXRpdmUgZG91YmxlcyBp
biB0aGUgc2xvdyBwYXRoIGZvciBub3cuCiAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJh
bmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkLCBTcGVj
aWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKSk7
Ci0gICAgICAgIGppdC5sb2FkRG91YmxlKCZoYWxmQ29uc3RhbnQsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OmZwUmVnVDEpOworICAgICAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cigmaGFsZkNvbnN0YW50KSwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7
CiAgICAgICAgIGppdC5hZGREb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7CiAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKSk7CiAgICAgICAgIGludFJlc3VsdCA9IGppdC5q
dW1wKCk7CkBAIC04NjksNyArODY5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5r
R2VuZXJhdG9yKAogICAgIGlmICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQogICAgICAg
ICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYo
dm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSk7CiAKLSAgICBqaXQubG9hZERvdWJsZSgm
b25lQ29uc3RhbnQsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOworICAgIGppdC5sb2Fk
RG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZvbmVDb25zdGFudCksIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwogICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwg
U3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAp
OwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vbkludEV4cG9uZW50OwogICAgIGppdC5sb2Fk
SW50MzJBcmd1bWVudCgxLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgbm9uSW50RXhwb25l
bnQpOwpAQCAtODk3LDcgKzg5Nyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBwb3dUaHVua0dl
bmVyYXRvcigKIAogICAgIGlmIChqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpKSB7CiAg
ICAgICAgIG5vbkludEV4cG9uZW50LmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5sb2FkRG91Ymxl
KCZuZWdhdGl2ZUhhbGZDb25zdGFudCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMyk7Cisg
ICAgICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZuZWdh
dGl2ZUhhbGZDb25zdGFudCksIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDMpOwogICAgICAg
ICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDEsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDIs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUo
aml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5PckVxdWFsLCBT
cGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qx
KSk7CiAgICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKGppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3Nl
bWJsZXI6OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZw
UmVnVDIsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231401</attachid>
            <date>2014-05-13 12:48:41 -0700</date>
            <delta_ts>2014-05-13 13:57:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132772-20140513214801.patch</filename>
            <type>text/plain</type>
            <size>21259</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4Njg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE0LTA1LTEzICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisg
ICAgICAgIFtXaW5dIEVudW0gdHlwZSB3aXRoIHZhbHVlIHplcm8gaXMgY29tcGF0aWJsZSB3aXRo
IHZvaWQqLCBwb3RlbnRpYWwgY2F1c2Ugb2YgY3Jhc2hlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjc3MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzaW5nIHRoZSBNU1ZDIGNvbXBpbGVyLCBhbiBp
bnN0YW5jZSBvZiBhbiBlbnVtIHR5cGUgd2l0aCB2YWx1ZSB6ZXJvLCBpcyBjb21wYXRpYmxlIHdp
dGggdm9pZCogKHNlZSBidWcgMTMyNjgzIGZvciBhIGNvZGUgZXhhbXBsZSkuCisgICAgICAgIFRo
aXMgaGFzIGNhdXNlZCBjcmFzaGVzIG9uIFdpbmRvd3Mgb24gdHdvIG9jY2FzaW9ucyAoYnVnIDEz
MjY4MywgYW5kIGJ1ZyAxMjEwMDEpLgorICAgICAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIHByZXZl
bnQgdGhlc2UgdHlwZSBvZiBjcmFzaGVzIGJ5IHVzaW5nIGEgdHlwZSB3aXRoIGV4cGxpY2l0IGNv
bnN0cnVjdG9ycyBpbnN0ZWFkIG9mIHZvaWQqLgorICAgICAgICBUaGUgdm9pZCogcGFyYW1ldGVy
IGluIHRoZSBsb2FkRG91YmxlIGFuZCBzdG9yZURvdWJsZSBtZXRob2RzIGFyZSByZXBsYWNlZCB3
aXRoIFRydXN0ZWRJbW1QdHIuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmxvYWREb3VibGUpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6c3RvcmVEb3VibGUpOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
OjpzdG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZERvdWJsZSk6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyTUlQUzo6bG9hZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6
c3RvcmVEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclNINDo6bG9hZERvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Ojpz
dG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphYnNEb3VibGUpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bmVnYXRlRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWREb3VibGUpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OnNpbGVudEZpbGwpOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGVDbGFtcERv
dWJsZVRvQnl0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlRG91YmxlKToK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICog
aml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6
cHVyaWZ5TmFOKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRMb2FkRG91YmxlKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRGbG9hdFR5cGVkQXJyYXlHZXRCeVZhbCk6CisgICAg
ICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChKU0M6OmZsb29yVGh1bmtH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpyb3VuZFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6cG93VGh1bmtHZW5lcmF0b3IpOgorCiAyMDE0LTA1LTEyICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTY4NjQyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDE2ODY4OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTU2LDcgKzExNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZERvdWJsZShB
YnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAg
ICBsb2FkRG91YmxlKGFkZHJlc3MubV9wdHIsIGZwVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbG9h
ZERvdWJsZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9wdHIpLCBmcFRlbXBSZWdpc3Rlcik7CiAg
ICAgICAgIGFkZERvdWJsZShmcFRlbXBSZWdpc3RlciwgZGVzdCk7CiAgICAgfQogCkBAIC0xMzEw
LDkgKzEzMTAsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwg
YWRkcmVzcy5iYXNlLCBtZW1vcnlUZW1wUmVnaXN0ZXIpOwogICAgIH0KICAgICAKLSAgICB2b2lk
IGxvYWREb3VibGUoY29uc3Qgdm9pZCogYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAg
dm9pZCBsb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRSZWcoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwg
bV9jYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlVG9DYWNoZWRSZWcoYWRk
cmVzcywgbV9jYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXIpOwogICAgICAgICBtX2Fzc2VtYmxlci5s
ZHI8NjQ+KGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKICAg
ICB9CiAKQEAgLTEzNzgsOSArMTM3OCw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
c3RyPDY0PihzcmMsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKICAgICB9CiAK
LSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJl
c3MpCisgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1tUHRy
IGFkZHJlc3MpCiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRSZWcoVHJ1c3RlZEltbVB0cihh
ZGRyZXNzKSwgbV9jYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlVG9DYWNo
ZWRSZWcoYWRkcmVzcywgbV9jYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXIpOwogICAgICAgICBtX2Fz
c2VtYmxlci5zdHI8NjQ+KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6
enIpOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkocmV2aXNpb24gMTY4Njg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTIxLDkgKzExMjEsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmJhc2VJ
bmRleFRyYW5zZmVyRmxvYXQoQVJNQXNzZW1ibGVyOjpMb2FkRG91YmxlLCBkZXN0LCBhZGRyZXNz
LmJhc2UsIGFkZHJlc3MuaW5kZXgsIHN0YXRpY19jYXN0PGludD4oYWRkcmVzcy5zY2FsZSksIGFk
ZHJlc3Mub2Zmc2V0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoY29uc3Qgdm9pZCog
YWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkRG91YmxlKFRydXN0ZWRJ
bW1QdHIgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlKFRy
dXN0ZWRJbW0zMihyZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3MpKSwgQVJNUmVnaXN0
ZXJzOjpTMCk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKHJlaW50ZXJwcmV0X2Nhc3Q8QVJN
V29yZD4oYWRkcmVzcy5tX3ZhbHVlKSksIEFSTVJlZ2lzdGVyczo6UzApOwogICAgICAgICBtX2Fz
c2VtYmxlci5kb3VibGVEdHJVcChBUk1Bc3NlbWJsZXI6OkxvYWREb3VibGUsIGRlc3QsIEFSTVJl
Z2lzdGVyczo6UzAsIDApOwogICAgIH0KIApAQCAtMTE0Miw5ICsxMTQyLDkgQEAgcHVibGljOgog
ICAgICAgICBtX2Fzc2VtYmxlci5iYXNlSW5kZXhUcmFuc2ZlckZsb2F0KEFSTUFzc2VtYmxlcjo6
U3RvcmVEb3VibGUsIHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBzdGF0aWNfY2Fz
dDxpbnQ+KGFkZHJlc3Muc2NhbGUpLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgfQogCi0gICAgdm9p
ZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAg
IHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgVHJ1c3RlZEltbVB0ciBhZGRyZXNz
KQogICAgIHsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIocmVpbnRlcnByZXRfY2FzdDxBUk1X
b3JkPihhZGRyZXNzKSksIEFSTVJlZ2lzdGVyczo6UzApOworICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW0zMihyZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3MubV92YWx1ZSkpLCBBUk1SZWdp
c3RlcnM6OlMwKTsKICAgICAgICAgbV9hc3NlbWJsZXIuZGF0YVRyYW5zZmVyRmxvYXQoQVJNQXNz
ZW1ibGVyOjpTdG9yZURvdWJsZSwgc3JjLCBBUk1SZWdpc3RlcnM6OlMwLCAwKTsKICAgICB9CiAK
QEAgLTExNzIsNyArMTE3Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkRG91YmxlKEFic29s
dXRlQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGxv
YWREb3VibGUoYWRkcmVzcy5tX3B0ciwgQVJNUmVnaXN0ZXJzOjpTRDApOworICAgICAgICBsb2Fk
RG91YmxlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIEFSTVJlZ2lzdGVyczo6U0QwKTsK
ICAgICAgICAgYWRkRG91YmxlKEFSTVJlZ2lzdGVyczo6U0QwLCBkZXN0KTsKICAgICB9CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oCShyZXZpc2lvbiAxNjg2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtODc1LDkg
Kzg3NSw5IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZGVzdCwgc3Jj
KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoY29uc3Qgdm9pZCogYWRkcmVzcywgRlBS
ZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIgYWRkcmVz
cywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIo
YWRkcmVzcyksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGFkZHJlc3MsIGFk
ZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICBtX2Fzc2VtYmxlci52bGRyKGRlc3QsIGFkZHJl
c3NUZW1wUmVnaXN0ZXIsIDApOwogICAgIH0KIApAQCAtOTExLDkgKzkxMSw5IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9hc3NlbWJsZXIuZnN0cyhBUk1SZWdpc3RlcnM6OmFzU2luZ2xlKHNyYyksIGJh
c2UsIG9mZnNldCk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQg
c3JjLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3Rl
cklEIHNyYywgVHJ1c3RlZEltbVB0ciBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShh
ZGRyZXNzLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKQEAgLTk1MSw3ICs5NTEsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGFkZERvdWJsZShBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewotICAgICAgICBsb2FkRG91YmxlKGFkZHJlc3MubV9wdHIsIGZwVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9w
dHIpLCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLnZhZGQoZGVzdCwgZGVz
dCwgZnBUZW1wUmVnaXN0ZXIpOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCShyZXZpc2lvbiAxNjg2
ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjY4LDcgKzIyNjgsNyBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoY29uc3Qgdm9pZCogYWRkcmVzcywgRlBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIgYWRkcmVzcywg
RlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogI2lmIFdURl9NSVBTX0lTQSgxKQogICAgICAgICAv
KgpAQCAtMjI3Niw3ICsyMjc2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbHdjMSAgICAgICAg
ZGVzdCwgMChhZGRyVGVtcCkKICAgICAgICAgICAgIGx3YzEgICAgICAgIGRlc3QrMSwgNChhZGRy
VGVtcCkKICAgICAgICAgICovCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwg
YWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoYWRkcmVzcywgYWRkclRlbXBSZWdpc3Rl
cik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgMCk7
CiAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRl
bXBSZWdpc3RlciwgNCk7CiAjZWxzZQpAQCAtMjI4NCw3ICsyMjg0LDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgbGkgICAgICAgICAgYWRkclRlbXAsIGFkZHJlc3MKICAgICAgICAgICAgIGxkYzEg
ICAgICAgIGRlc3QsIDAoYWRkclRlbXApCiAgICAgICAgICovCi0gICAgICAgIG1vdmUoVHJ1c3Rl
ZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoYWRkcmVz
cywgYWRkclRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYzEoZGVzdCwgYWRk
clRlbXBSZWdpc3RlciwgMCk7CiAjZW5kaWYKICAgICB9CkBAIC0yNDA2LDE0ICsyNDA2LDE0IEBA
IHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAotICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3Rl
cklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVn
aXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW1QdHIgYWRkcmVzcykKICAgICB7CiAjaWYgV1RGX01JUFNf
SVNBKDEpCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1vdmUoYWRkcmVzcywgYWRkclRlbXBSZWdpc3Rlcik7CiAgICAgICAg
IG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCAwKTsKICAgICAgICAgbV9h
c3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1wUmVnaXN0ZXIsIDQp
OwogI2Vsc2UKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgbW92ZShhZGRyZXNzLCBhZGRyVGVtcFJlZ2lzdGVyKTsKICAgICAg
ICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIDApOwogI2VuZGlmCiAg
ICAgfQpAQCAtMjQ0OSw3ICsyNDQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGREb3VibGUo
QWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAg
ICAgbG9hZERvdWJsZShhZGRyZXNzLm1fcHRyLCBmcFRlbXBSZWdpc3Rlcik7CisgICAgICAgIGxv
YWREb3VibGUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgZnBUZW1wUmVnaXN0ZXIpOwog
ICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3QsIGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJTSDQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyU0g0LmgJKHJldmlzaW9uIDE2ODY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE1
NSwxMCArMTE1NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJlbGVhc2VTY3JhdGNoKHNjcik7CiAg
ICAgfQogCi0gICAgdm9pZCBsb2FkRG91YmxlKGNvbnN0IHZvaWQqIGFkZHJlc3MsIEZQUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRyIGFkZHJlc3MsIEZQ
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgUmVnaXN0ZXJJRCBzY3IgPSBjbGFpbVNj
cmF0Y2goKTsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3IpOworICAg
ICAgICBtb3ZlKGFkZHJlc3MsIHNjcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmZtb3ZzUmVhZHJt
aW5jKHNjciwgKEZQUmVnaXN0ZXJJRCkoZGVzdCArIDEpKTsKICAgICAgICAgbV9hc3NlbWJsZXIu
Zm1vdnNSZWFkcm0oc2NyLCBkZXN0KTsKICAgICAgICAgcmVsZWFzZVNjcmF0Y2goc2NyKTsKQEAg
LTEyMDQsMTAgKzEyMDQsMTAgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9p
ZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAg
IHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgVHJ1c3RlZEltbVB0ciBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgUmVnaXN0ZXJJRCBzY3IgPSBjbGFpbVNjcmF0Y2goKTsKLSAgICAg
ICAgbV9hc3NlbWJsZXIubG9hZENvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Q+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGFkZHJlc3MpKSArIDgsIHNjcik7CisgICAgICAgIG1fYXNzZW1ibGVy
LmxvYWRDb25zdGFudChyZWludGVycHJldF9jYXN0PHVpbnQzMl90Pihjb25zdF9jYXN0PHZvaWQq
PihhZGRyZXNzLm1fdmFsdWUpKSArIDgsIHNjcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmZtb3Zz
V3JpdGVybmRlYyhzcmMsIHNjcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmZtb3ZzV3JpdGVybmRl
YygoRlBSZWdpc3RlcklEKShzcmMgKyAxKSwgc2NyKTsKICAgICAgICAgcmVsZWFzZVNjcmF0Y2go
c2NyKTsKQEAgLTEyMjAsNyArMTIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkRG91Ymxl
KEFic29sdXRlQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAg
ICAgIGxvYWREb3VibGUoYWRkcmVzcy5tX3B0ciwgZnNjcmF0Y2gpOworICAgICAgICBsb2FkRG91
YmxlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIGZzY3JhdGNoKTsKICAgICAgICAgYWRk
RG91YmxlKGZzY3JhdGNoLCBkZXN0KTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgJKHJldmlzaW9uIDE2
ODY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODYuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDExICsxMjMsMTEgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5hZGRzZF9tcihhZGRyZXNzLm1fcHRyLCBkZXN0KTsKICAgICB9CiAKLSAg
ICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3Mp
CisgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1tUHRyIGFk
ZHJlc3MpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAg
QVNTRVJUKGFkZHJlc3MpOwotICAgICAgICBtX2Fzc2VtYmxlci5tb3ZzZF9ybShzcmMsIGFkZHJl
c3MpOworICAgICAgICBBU1NFUlQoYWRkcmVzcy5tX3ZhbHVlKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIubW92c2Rfcm0oc3JjLCBhZGRyZXNzLm1fdmFsdWUpOwogICAgIH0KIAogICAgIHZvaWQgY29u
dmVydEludDMyVG9Eb3VibGUoQWJzb2x1dGVBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3Qp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAxNjg2ODkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0OCw3ICs0NDgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQo
c3JjICE9IGRzdCk7CiAgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbmVnYXRpdmVaZXJvQ29u
c3RhbnQgPSAtMC4wOwotICAgICAgICBsb2FkRG91YmxlKCZuZWdhdGl2ZVplcm9Db25zdGFudCwg
ZHN0KTsKKyAgICAgICAgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZuZWdhdGl2ZVplcm9Db25z
dGFudCksIGRzdCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmFuZG5wZF9ycihzcmMsIGRzdCk7CiAg
ICAgfQogCkBAIC00NTYsNyArNDU2LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJU
KHNyYyAhPSBkc3QpOwogICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIG5lZ2F0aXZlWmVyb0Nv
bnN0YW50ID0gLTAuMDsKLSAgICAgICAgbG9hZERvdWJsZSgmbmVnYXRpdmVaZXJvQ29uc3RhbnQs
IGRzdCk7CisgICAgICAgIGxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigmbmVnYXRpdmVaZXJvQ29u
c3RhbnQpLCBkc3QpOwogICAgICAgICBtX2Fzc2VtYmxlci54b3JwZF9ycihzcmMsIGRzdCk7CiAg
ICAgfQogCkBAIC02ODQsMTMgKzY4NCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3ZzZF9ycihzcmMsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZERvdWJsZShj
b25zdCB2b2lkKiBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWREb3Vi
bGUoVHJ1c3RlZEltbVB0ciBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAjaWYg
Q1BVKFg4NikKICAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIG1fYXNz
ZW1ibGVyLm1vdnNkX21yKGFkZHJlc3MsIGRlc3QpOworICAgICAgICBtX2Fzc2VtYmxlci5tb3Zz
ZF9tcihhZGRyZXNzLm1fdmFsdWUsIGRlc3QpOwogI2Vsc2UKLSAgICAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGFkZHJlc3Ms
IHNjcmF0Y2hSZWdpc3Rlcik7CiAgICAgICAgIGxvYWREb3VibGUoc2NyYXRjaFJlZ2lzdGVyLCBk
ZXN0KTsKICNlbmRpZgogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTY4Njg5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODM2LDcgKzgzNiw3IEBAIEZQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZURvdWIKICAgICAgICAgaWYgKGVkZ2UtPmhhc0NvbnN0YW50KCkpIHsKICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQoZWRnZS5ub2RlKCkpKTsKICAg
ICAgICAgICAgIEZQUlJlZyBmcHIgPSBmcHJBbGxvY2F0ZSgpOwotICAgICAgICAgICAgbV9qaXQu
bG9hZERvdWJsZShhZGRyZXNzT2ZEb3VibGVDb25zdGFudChlZGdlLm5vZGUoKSksIGZwcik7Cisg
ICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoYWRkcmVzc09mRG91Ymxl
Q29uc3RhbnQoZWRnZS5ub2RlKCkpKSwgZnByKTsKICAgICAgICAgICAgIG1fZnBycy5yZXRhaW4o
ZnByLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJDb25zdGFudCk7CiAgICAgICAgICAgICBp
bmZvLmZpbGxEb3VibGUoKm1fc3RyZWFtLCBmcHIpOwogICAgICAgICAgICAgcmV0dXJuIGZwcjsK
QEAgLTMxMjYsNyArMzEyNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgdXNlLCBTcGVjRnVsbFJl
YWxOdW1iZXIsCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fz
c2VtYmxlcjo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwgb3BGUFIsIG9wRlBSKSk7CiAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUob3BGUFIsIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGJ1ZmZlciArIG9wZXJhbmRJZHgpKTsKKyAgICAgICAgICAg
ICAgICBtX2ppdC5zdG9yZURvdWJsZShvcEZQUiwgVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9j
YXN0PGNoYXIqPihidWZmZXIgKyBvcGVyYW5kSWR4KSkpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBBTExfSU5UMzJfSU5ERVhJTkdfVFlQ
RVM6IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCShyZXZpc2lvbiAxNjg2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUzLDcgKzU1Myw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudEZpbGwoY29uc3QgU2kKICAgICAgICAgbV9qaXQu
bW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZyksIHBsYW4uZ3ByKCkpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgotICAgICAgICBtX2ppdC5s
b2FkRG91YmxlKGFkZHJlc3NPZkRvdWJsZUNvbnN0YW50KHBsYW4ubm9kZSgpKSwgcGxhbi5mcHIo
KSk7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cihhZGRyZXNzT2ZEb3Vi
bGVDb25zdGFudChwbGFuLm5vZGUoKSkpLCBwbGFuLmZwcigpKTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICBjYXNlIExvYWQzMlRhZzoKQEAgLTIyNTQsMTIgKzIyNTQsMTIgQEAgc3RhdGlj
IHZvaWQgY29tcGlsZUNsYW1wRG91YmxlVG9CeXRlKEpJVAogICAgIHN0YXRpYyBjb25zdCBkb3Vi
bGUgemVybyA9IDA7CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBieXRlTWF4ID0gMjU1OwogICAg
IHN0YXRpYyBjb25zdCBkb3VibGUgaGFsZiA9IDAuNTsKLSAgICBqaXQubG9hZERvdWJsZSgmemVy
bywgc2NyYXRjaCk7CisgICAgaml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIoJnplcm8pLCBzY3JhdGNoKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCB0b29TbWFs
bCA9IGppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NUaGFuT3JFcXVh
bE9yVW5vcmRlcmVkLCBzb3VyY2UsIHNjcmF0Y2gpOwotICAgIGppdC5sb2FkRG91YmxlKCZieXRl
TWF4LCBzY3JhdGNoKTsKKyAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cigmYnl0ZU1heCksIHNjcmF0Y2gpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHRv
b0JpZyA9IGppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFu
LCBzb3VyY2UsIHNjcmF0Y2gpOwogICAgIAotICAgIGppdC5sb2FkRG91YmxlKCZoYWxmLCBzY3Jh
dGNoKTsKKyAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigm
aGFsZiksIHNjcmF0Y2gpOwogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBqdXN0
IHVzZSBhIGZsb2F0aW5nIHBvaW50IHJvdW5kIQogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MjA1NAogICAgIGppdC5hZGREb3VibGUoc291cmNlLCBzY3Jh
dGNoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5jcHAJKHJldmlzaW9uIDE2ODY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIEFz
c2VtYmx5SGVscGVyczo6cHVyaWZ5TmFOKEZQUlJlZyBmCiB7CiAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgbm90TmFOID0gYnJhbmNoRG91YmxlKERvdWJsZUVxdWFsLCBmcHIsIGZwcik7CiAgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSBOYU4gPSBQTmFOOwotICAgIGxvYWREb3VibGUoJk5hTiwgZnBy
KTsKKyAgICBsb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJk5hTiksIGZwcik7CiAgICAgbm90TmFO
LmxpbmsodGhpcyk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCShyZXZpc2lvbiAxNjg2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtODE2LDcgKzgxNiw3IEBAIGlubGluZSB2b2lkIEpJ
VDo6ZW1pdExvYWREb3VibGUoaW50IGluZGUKIHsKICAgICBpZiAobV9jb2RlQmxvY2stPmlzQ29u
c3RhbnRSZWdpc3RlckluZGV4KGluZGV4KSkgewogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93
bj4mIGluQ29uc3RhbnRQb29sID0gbV9jb2RlQmxvY2stPmNvbnN0YW50UmVnaXN0ZXIoaW5kZXgp
OwotICAgICAgICBsb2FkRG91YmxlKCZpbkNvbnN0YW50UG9vbCwgdmFsdWUpOworICAgICAgICBs
b2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJmluQ29uc3RhbnRQb29sKSwgdmFsdWUpOwogICAgIH0g
ZWxzZQogICAgICAgICBsb2FkRG91YmxlKGFkZHJlc3NGb3IoaW5kZXgpLCB2YWx1ZSk7CiB9CkBA
IC0xMDE2LDcgKzEwMTYsNyBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRMb2FkRG91YmxlKGludCBp
bmRlCiB7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5pc0NvbnN0YW50UmVnaXN0ZXJJbmRleChpbmRl
eCkpIHsKICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+JiBpbkNvbnN0YW50UG9vbCA9IG1f
Y29kZUJsb2NrLT5jb25zdGFudFJlZ2lzdGVyKGluZGV4KTsKLSAgICAgICAgbG9hZERvdWJsZSgm
aW5Db25zdGFudFBvb2wsIHZhbHVlKTsKKyAgICAgICAgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRy
KCZpbkNvbnN0YW50UG9vbCksIHZhbHVlKTsKICAgICB9IGVsc2UKICAgICAgICAgbG9hZERvdWJs
ZShhZGRyZXNzRm9yKGluZGV4KSwgdmFsdWUpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDE2ODY4OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjQwLDcgKzEyNDAsNyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEZsb2F0
VHlwZWRBcnJheUdlCiAgICAgCiAgICAgSnVtcCBub3ROYU4gPSBicmFuY2hEb3VibGUoRG91Ymxl
RXF1YWwsIGZwUmVnVDAsIGZwUmVnVDApOwogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgTmFOID0g
UE5hTjsKLSAgICBsb2FkRG91YmxlKCZOYU4sIGZwUmVnVDApOworICAgIGxvYWREb3VibGUoVHJ1
c3RlZEltbVB0cigmTmFOKSwgZnBSZWdUMCk7CiAgICAgbm90TmFOLmxpbmsodGhpcyk7CiAgICAg
CiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHJldmlzaW9uIDE2ODY4OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQwLDcg
Kzc0MCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9vclRodW5rR2VuZXJhdG8KICAgICBT
cGVjaWFsaXplZFRodW5rSklUOjpKdW1wIGludFJlc3VsdDsKICAgICBTcGVjaWFsaXplZFRodW5r
SklUOjpKdW1wTGlzdCBkb3VibGVSZXN1bHQ7CiAgICAgaWYgKGppdC5zdXBwb3J0c0Zsb2F0aW5n
UG9pbnRUcnVuY2F0ZSgpKSB7Ci0gICAgICAgIGppdC5sb2FkRG91YmxlKCZ6ZXJvQ29uc3RhbnQs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOworICAgICAgICBqaXQubG9hZERvdWJsZShN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmemVyb0NvbnN0YW50KSwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMSk7CiAgICAgICAgIGRvdWJsZVJlc3VsdC5hcHBlbmQoaml0LmJyYW5j
aERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlRXF1YWwsIFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpKTsKICAgICAgICAgU3BlY2lh
bGl6ZWRUaHVua0pJVDo6SnVtcExpc3Qgc2xvd1BhdGg7CiAgICAgICAgIC8vIEhhbmRsZSB0aGUg
bmVnYXRpdmUgZG91YmxlcyBpbiB0aGUgc2xvdyBwYXRoIGZvciBub3cuCkBAIC03OTYsMTIgKzc5
NiwxMiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91bmRUaHVua0dlbmVyYXRvCiAgICAgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6SnVtcCBpbnRSZXN1bHQ7CiAgICAgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6SnVtcExpc3QgZG91YmxlUmVzdWx0OwogICAgIGlmIChqaXQuc3VwcG9ydHNGbG9hdGluZ1Bv
aW50VHJ1bmNhdGUoKSkgewotICAgICAgICBqaXQubG9hZERvdWJsZSgmemVyb0NvbnN0YW50LCBT
cGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKKyAgICAgICAgaml0LmxvYWREb3VibGUoTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJnplcm9Db25zdGFudCksIFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDEpOwogICAgICAgICBkb3VibGVSZXN1bHQuYXBwZW5kKGppdC5icmFuY2hE
b3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUVxdWFsLCBTcGVjaWFsaXplZFRodW5rSklUOjpm
cFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKSk7CiAgICAgICAgIFNwZWNpYWxp
emVkVGh1bmtKSVQ6Okp1bXBMaXN0IHNsb3dQYXRoOwogICAgICAgICAvLyBIYW5kbGUgdGhlIG5l
Z2F0aXZlIGRvdWJsZXMgaW4gdGhlIHNsb3cgcGF0aCBmb3Igbm93LgogICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5P
clVub3JkZXJlZCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6ZnBSZWdUMSkpOwotICAgICAgICBqaXQubG9hZERvdWJsZSgmaGFsZkNvbnN0YW50LCBT
cGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKKyAgICAgICAgaml0LmxvYWREb3VibGUoTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJmhhbGZDb25zdGFudCksIFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDEpOwogICAgICAgICBqaXQuYWRkRG91YmxlKFNwZWNpYWxpemVkVGh1bmtK
SVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwogICAgICAgICBzbG93
UGF0aC5hcHBlbmQoaml0LmJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMihTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QxLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCkpOwogICAgICAgICBp
bnRSZXN1bHQgPSBqaXQuanVtcCgpOwpAQCAtODY5LDcgKzg2OSw3IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBwb3dUaHVua0dlbmVyYXRvcigKICAgICBpZiAoIWppdC5zdXBwb3J0c0Zsb2F0aW5n
UG9pbnQoKSkKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSkpOwogCi0gICAg
aml0LmxvYWREb3VibGUoJm9uZUNvbnN0YW50LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qx
KTsKKyAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmb25l
Q29uc3RhbnQpLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKICAgICBqaXQubG9hZERv
dWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVk
VGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub25JbnRFeHBvbmVu
dDsKICAgICBqaXQubG9hZEludDMyQXJndW1lbnQoMSwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDAsIG5vbkludEV4cG9uZW50KTsKQEAgLTg5Nyw3ICs4OTcsNyBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoCiAKICAgICBpZiAoaml0LnN1cHBvcnRzRmxvYXRpbmdQ
b2ludFNxcnQoKSkgewogICAgICAgICBub25JbnRFeHBvbmVudC5saW5rKCZqaXQpOwotICAgICAg
ICBqaXQubG9hZERvdWJsZSgmbmVnYXRpdmVIYWxmQ29uc3RhbnQsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OmZwUmVnVDMpOworICAgICAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cigmbmVnYXRpdmVIYWxmQ29uc3RhbnQpLCBTcGVjaWFsaXplZFRodW5rSklUOjpm
cFJlZ1QzKTsKICAgICAgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgxLCBTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QyLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgICAgIGpp
dC5hcHBlbmRGYWlsdXJlKGppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxl
c3NUaGFuT3JFcXVhbCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMSkpOwogICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShqaXQuYnJhbmNo
RG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCBTcGVjaWFs
aXplZFRodW5rSklUOjpmcFJlZ1QyLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QzKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>