<?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>195201</bug_id>
          
          <creation_ts>2019-02-28 21:56:03 -0800</creation_ts>
          <short_desc>Move EditingRange &lt;-&gt; Range methods to EditingRange instead of WebPage</short_desc>
          <delta_ts>2019-03-02 16:07:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511288</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-02-28 21:56:03 -0800</bug_when>
    <thetext>Move EditingRange &lt;-&gt; Range methods to EditingRange instead of WebPage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511289</commentid>
    <comment_count>1</comment_count>
      <attachid>363296</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-02-28 21:56:22 -0800</bug_when>
    <thetext>Created attachment 363296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511293</commentid>
    <comment_count>2</comment_count>
      <attachid>363297</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-02-28 22:39:39 -0800</bug_when>
    <thetext>Created attachment 363297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511872</commentid>
    <comment_count>3</comment_count>
      <attachid>363297</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-02 16:02:39 -0800</bug_when>
    <thetext>Comment on attachment 363297
Patch

Clearing flags on attachment: 363297

Committed r242320: &lt;https://trac.webkit.org/changeset/242320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511873</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-02 16:02:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511874</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-02 16:07:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/48538918&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363296</attachid>
            <date>2019-02-28 21:56:22 -0800</date>
            <delta_ts>2019-02-28 22:39:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195201-20190228215621.patch</filename>
            <type>text/plain</type>
            <size>19211</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxOGU2YTkwNTE0Njk5Njcx
MGRiNGVkZTk5OWU4N2JiYjczNzM2M2EuLmQyYWU2MWUwOWZkODJhNDYzYThiOWM4NzFhOTM2ZTlm
NDY5ZDAxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDItMjggIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBFZGl0aW5nUmFu
Z2UgPC0+IFJhbmdlIG1ldGhvZHMgdG8gRWRpdGluZ1JhbmdlIGluc3RlYWQgb2YgV2ViUGFnZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MjAxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
RWRpdGluZ1JhbmdlLmg6CisgICAgICAgICogU2hhcmVkL0VkaXRpbmdSYW5nZS5jcHA6CisgICAg
ICAgIEFsc28sIG1vZGVybml6ZSB0aGUgY29kZXJzLgorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjppbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRNYXJrZWRS
YW5nZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0U2VsZWN0ZWRSYW5nZUFz
eW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludEFz
eW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFu
Z2VBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldENvbXBvc2l0aW9uQXN5bmMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyYW5nZUZyb21FZGl0aW5nUmFuZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VB
c3luYyk6CisKIDIwMTktMDItMjggIERhdmlkIFF1ZXNhZGEgIDxkYXZpZF9xdWVzYWRhQGFwcGxl
LmNvbT4KIAogICAgICAgICBFeHBvc2UgQVBJTmF2aWdhdGlvbkFjdGlvbi5zaG91bGRQZXJmb3Jt
RG93bmxvYWQoKSBvbiBXS05hdmlnYXRpb25BY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VkaXRpbmdSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0aW5n
UmFuZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViMjQyM2Q3ZTMwNjhmZmI4ZmU2NjBhZTQwMTE4Njk3YmQ5
ODU5YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0aW5nUmFu
Z2UuY3BwCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVTZWxlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1RleHRJdGVyYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVVuaXRzLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IEVkaXRpbmdSYW5nZTo6
dG9SYW5nZShXZWJDb3JlOjpGcmFtZSYgZnJhbWUsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmFuZ2Us
IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pCit7Cisg
ICAgQVNTRVJUKHJhbmdlLmxvY2F0aW9uICE9IG5vdEZvdW5kKTsKKworICAgIC8vIFNhbml0aXpl
IHRoZSBpbnB1dCwgYmVjYXVzZSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVu
Z3RoIHRha2VzIHNpZ25lZCBpbnRlZ2Vycy4KKyAgICBpZiAocmFuZ2UubG9jYXRpb24gPiBJTlRf
TUFYKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpbnQgbGVuZ3RoOworICAgIGlmIChyYW5nZS5s
ZW5ndGggPD0gSU5UX01BWCAmJiByYW5nZS5sb2NhdGlvbiArIHJhbmdlLmxlbmd0aCA8PSBJTlRf
TUFYKQorICAgICAgICBsZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQ+KHJhbmdlLmxlbmd0aCk7Cisg
ICAgZWxzZQorICAgICAgICBsZW5ndGggPSBJTlRfTUFYIC0gcmFuZ2UubG9jYXRpb247CisKKyAg
ICBpZiAoZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID09IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVU
bzo6RWRpdGFibGVSb290KSB7CisgICAgICAgIC8vIE91ciBjcml0aWNhbCBhc3N1bXB0aW9uIGlz
IHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgY2FsbGVkIGJ5IGlucHV0IG1ldGhvZHMgdGhhdAorICAg
ICAgICAvLyBjb25jZW50cmF0ZSBvbiBhIGdpdmVuIGFyZWEgY29udGFpbmluZyB0aGUgc2VsZWN0
aW9uLgorICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSBvZiB0ZXh0IGZpZWxk
cyBhbmQgdGV4dGFyZWFzLiBUaGUgRE9NIGZvciB0aG9zZSBpcyBub3QKKyAgICAgICAgLy8gZGly
ZWN0bHkgaW4gdGhlIGRvY3VtZW50IERPTSwgc28gc2VyaWFsaXphdGlvbiBpcyBwcm9ibGVtYXRp
Yy4gT3VyIHNvbHV0aW9uIGlzCisgICAgICAgIC8vIHRvIHVzZSB0aGUgcm9vdCBlZGl0YWJsZSBl
bGVtZW50IG9mIHRoZSBzZWxlY3Rpb24gc3RhcnQgYXMgdGhlIHBvc2l0aW9uYWwgYmFzZS4KKyAg
ICAgICAgLy8gVGhhdCBmaXRzIHdpdGggQXBwS2l0J3MgaWRlYSBvZiBhbiBpbnB1dCBjb250ZXh0
LgorICAgICAgICByZXR1cm4gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0
aChmcmFtZS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQo
KSwgc3RhdGljX2Nhc3Q8aW50PihyYW5nZS5sb2NhdGlvbiksIGxlbmd0aCk7CisgICAgfQorCisg
ICAgQVNTRVJUKGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9PSBFZGl0aW5nUmFuZ2VJc1JlbGF0
aXZlVG86OlBhcmFncmFwaCk7CisKKyAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24gPSBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICBSZWZQdHI8UmFuZ2U+IHNl
bGVjdGVkUmFuZ2UgPSBzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKKyAgICBpZiAoIXNl
bGVjdGVkUmFuZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPFJhbmdlPiBwYXJh
Z3JhcGhSYW5nZSA9IG1ha2VSYW5nZShzdGFydE9mUGFyYWdyYXBoKHNlbGVjdGlvbi52aXNpYmxl
U3RhcnQoKSksIHNlbGVjdGlvbi52aXNpYmxlRW5kKCkpOworICAgIGlmICghcGFyYWdyYXBoUmFu
Z2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUgPSBw
YXJhZ3JhcGhSYW5nZS5nZXQoKS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKS5yb290Tm9k
ZSgpOworICAgIGludCBwYXJhZ3JhcGhTdGFydEluZGV4ID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUxl
bmd0aChSYW5nZTo6Y3JlYXRlKHJvb3ROb2RlLmRvY3VtZW50KCksICZyb290Tm9kZSwgMCwgJnBh
cmFncmFwaFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBwYXJhZ3JhcGhSYW5nZS0+c3RhcnRPZmZz
ZXQoKSkucHRyKCkpOworICAgIHJldHVybiBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9u
QW5kTGVuZ3RoKCZyb290Tm9kZSwgcGFyYWdyYXBoU3RhcnRJbmRleCArIHN0YXRpY19jYXN0PGlu
dD4ocmFuZ2UubG9jYXRpb24pLCBsZW5ndGgpOworfQorCitFZGl0aW5nUmFuZ2UgRWRpdGluZ1Jh
bmdlOjpmcm9tUmFuZ2UoV2ViQ29yZTo6RnJhbWUmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSYW5n
ZSogcmFuZ2UsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZl
VG8pCit7CisgICAgQVNTRVJUKGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9PSBFZGl0aW5nUmFu
Z2VJc1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CisKKyAgICBzaXplX3QgbG9jYXRpb247Cisg
ICAgc2l6ZV90IGxlbmd0aDsKKyAgICBpZiAoIXJhbmdlIHx8ICFUZXh0SXRlcmF0b3I6OmdldExv
Y2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlKGZyYW1lLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVs
ZW1lbnRPckRvY3VtZW50RWxlbWVudCgpLCByYW5nZSwgbG9jYXRpb24sIGxlbmd0aCkpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICBFZGl0aW5nUmFuZ2UgZWRpdGluZ1JhbmdlKGxvY2F0aW9u
LCBsZW5ndGgpOworICAgIGlmICghZWRpdGluZ1JhbmdlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIHJldHVybiBlZGl0aW5nUmFuZ2U7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCituYW1lc3BhY2UgSVBDIHsKKwordm9pZCBBcmd1bWVudENvZGVyPFdlYktpdDo6
RWRpdGluZ1JhbmdlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYktpdDo6RWRp
dGluZ1JhbmdlJiBlZGl0aW5nUmFuZ2UpCit7CisgICAgZW5jb2RlciA8PCBlZGl0aW5nUmFuZ2Uu
bG9jYXRpb247CisgICAgZW5jb2RlciA8PCBlZGl0aW5nUmFuZ2UubGVuZ3RoOworfQorCitPcHRp
b25hbDxXZWJLaXQ6OkVkaXRpbmdSYW5nZT4gQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkVkaXRpbmdS
YW5nZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFdlYktpdDo6RWRpdGluZ1Jh
bmdlIGVkaXRpbmdSYW5nZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZWRpdGluZ1Jhbmdl
LmxvY2F0aW9uKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGVkaXRpbmdSYW5nZS5sZW5ndGgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgcmV0dXJuIGVkaXRpbmdSYW5nZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBD
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0aW5nUmFuZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VkaXRpbmdSYW5nZS5oCmluZGV4IDQ4NTQxNWM2YzJmMThhZDJjZDQ5
NDVhNGE0OTJmOWMzYzFhZTE3ZmYuLjFmNTZhZWZmMjkyODk2M2YxM2JiMjRhMDgxNmYyN2Y4OGUx
MjQyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRpbmdSYW5nZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRpbmdSYW5nZS5oCkBAIC0yMywxMCArMjMsMTUg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEVk
aXRpbmdSYW5nZV9oCi0jZGVmaW5lIEVkaXRpbmdSYW5nZV9oCisjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFJhbmdlOworfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIApAQCAtNTEsNiArNTYsOSBAQCBzdHJ1Y3QgRWRpdGluZ1JhbmdlIHsKICAg
ICAvLyAobm90Rm91bmQsIDApIGlzIG5vdGFibHkgdmFsaWQuCiAgICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3QgeyByZXR1cm4gbG9jYXRpb24gKyBsZW5ndGggPj0gbG9jYXRpb247IH0KIAorICAgIHN0
YXRpYyBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IHRvUmFuZ2UoV2ViQ29yZTo6RnJhbWUmLCBjb25z
dCBFZGl0aW5nUmFuZ2UmLCBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8gPSBFZGl0aW5nUmFuZ2VJ
c1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CisgICAgc3RhdGljIEVkaXRpbmdSYW5nZSBmcm9t
UmFuZ2UoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpSYW5nZSosIEVkaXRpbmdSYW5n
ZUlzUmVsYXRpdmVUbyA9IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290KTsK
KwogI2lmIGRlZmluZWQoX19PQkpDX18pCiAgICAgRWRpdGluZ1JhbmdlKE5TUmFuZ2UgcmFuZ2Up
CiAgICAgewpAQCAtNzgsNyArODYsOCBAQCBzdHJ1Y3QgRWRpdGluZ1JhbmdlIHsKIH0KIAogbmFt
ZXNwYWNlIElQQyB7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYktpdDo6RWRp
dGluZ1JhbmdlPiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViS2l0OjpFZGl0aW5nUmFuZ2U+IHsg
fTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpFZGl0aW5nUmFuZ2U+
IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYktpdDo6RWRpdGlu
Z1JhbmdlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYktpdDo6RWRpdGluZ1JhbmdlPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKIH0KLQotI2VuZGlmIC8vIEVkaXRpbmdSYW5nZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dAppbmRleCA1OWNlZjgzYTUyMzllZWEwY2ExOTdmNjhjYjM3MjA2N2I5NzllMDI5Li43NDA3Y2My
MTkwM2UyNjRiODg0OGM4NWE1ODk1MDg0NGQzZGRhYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEwNiw2
ICsxMDYsNyBAQCBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQv
QmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uY3BwIEBuby11bmlmeQog
U2hhcmVkL0NhY2hlTW9kZWwuY3BwCiBTaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAK
K1NoYXJlZC9FZGl0aW5nUmFuZ2UuY3BwCiBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwCiBTaGFyZWQv
Rm9udEluZm8uY3BwCiBTaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI0N2JhOTFkZWU0MTExZWFk
M2Y3NmI4YmMxMGI5MDU5ZDEwYTUzZTIuLmJiZTA5NjI0MGUwZmJhZTUxYWU0N2QxNTJkZDQ2ZWYz
NWQ5NDA0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjcyMyw2ICsyNzIzLDcgQEAKIAkJMkQ4Nzg2MjIxQkRCNThGRjAwRDAyQUJC
IC8qIEFQSVVzZXJTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSVVzZXJTdHlsZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODk0
OUVFMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4
OTQ5RUYxODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ5Q0Q1RUUy
MUZBNzVFRTAwMjlBQ0ZBIC8qIEVkaXRpbmdSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFZGl0aW5nUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRDlFQTMwQzFBOTZDQjU5MDAyRDI4MDcgLyogV0tQYWdlSW5qZWN0ZWRCdW5kbGVD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlSW5qZWN0ZWRC
dW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RUEzMEUxQTk2
Q0JGRjAwMkQyODA3IC8qIFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RUEzMTAxQTk2RDlFQjAwMkQyODA3IC8qIFdl
YlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTAyNiw2ICs1MDI3LDcgQEAKIAkJCQk5OUY2NDJEMjFGQUJFMzc4
MDA5NjIxRTkgLyogQ29vcmRpbmF0ZVN5c3RlbS5oICovLAogCQkJCUM1MTczODgwMTJERjhGNEYw
MEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovLAogCQkJCTBGQjY1OTIyMTIwOEI0
REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUluZm8uaCAqLywKKwkJCQkyRDlDRDVFRTIxRkE3NUVF
MDAyOUFDRkEgLyogRWRpdGluZ1JhbmdlLmNwcCAqLywKIAkJCQlFMTA1RkU1MzE4RDdCOURFMDA4
RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8sCiAJCQkJOENGRUNFOTMxNDkwRjE0MDAwMkFBQTMy
IC8qIEVkaXRvclN0YXRlLmNwcCAqLywKIAkJCQkxQUE0MUFCNDEyQzAyRUM0MDAyQkU2N0IgLyog
RWRpdG9yU3RhdGUuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggYjRjNTg1YzY3NTJlMDYzZmZjZTY1ZDMxYzhmYjU1OGU5MTY0ZTM1Zi4u
MDdhNGMxYzQwYjQ5YzQ0ZDcxNjI2NDUwOTRjYjExNGExYzU3YzVhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUwNDQsNyArNTA0NCw3IEBA
IHZvaWQgV2ViUGFnZTo6aW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
RWRpdGluZ1JhbmdlJiByZXBsYWNlbWVuCiAKICAgICBib29sIHJlcGxhY2VzVGV4dCA9IGZhbHNl
OwogICAgIGlmIChyZXBsYWNlbWVudEVkaXRpbmdSYW5nZS5sb2NhdGlvbiAhPSBub3RGb3VuZCkg
ewotICAgICAgICBpZiAoYXV0byByZXBsYWNlbWVudFJhbmdlID0gcmFuZ2VGcm9tRWRpdGluZ1Jh
bmdlKGZyYW1lLCByZXBsYWNlbWVudEVkaXRpbmdSYW5nZSwgc3RhdGljX2Nhc3Q8RWRpdGluZ1Jh
bmdlSXNSZWxhdGl2ZVRvPihlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pKSkgeworICAgICAgICBp
ZiAoYXV0byByZXBsYWNlbWVudFJhbmdlID0gRWRpdGluZ1JhbmdlOjp0b1JhbmdlKGZyYW1lLCBy
ZXBsYWNlbWVudEVkaXRpbmdSYW5nZSwgc3RhdGljX2Nhc3Q8RWRpdGluZ1JhbmdlSXNSZWxhdGl2
ZVRvPihlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pKSkgewogICAgICAgICAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gaXNTZWxlY3RpbmdUZXh0V2hpbGVJbnNlcnRpbmdBc3luY2hyb25vdXNseShtX2lz
U2VsZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5nQXN5bmNocm9ub3VzbHksIHN1cHByZXNzU2VsZWN0
aW9uVXBkYXRlKTsKICAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihW
aXNpYmxlU2VsZWN0aW9uKCpyZXBsYWNlbWVudFJhbmdlLCBTRUxfREVGQVVMVF9BRkZJTklUWSkp
OwogICAgICAgICAgICAgcmVwbGFjZXNUZXh0ID0gcmVwbGFjZW1lbnRFZGl0aW5nUmFuZ2UubGVu
Z3RoOwpAQCAtNTA2NSw0OSArNTA2NSwyNSBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydFRleHRBc3lu
Yyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbgogdm9p
ZCBXZWJQYWdlOjpnZXRNYXJrZWRSYW5nZUFzeW5jKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsK
ICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1h
aW5GcmFtZSgpOwotCi0gICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGZyYW1lLmVkaXRvcigpLmNv
bXBvc2l0aW9uUmFuZ2UoKTsKLSAgICBzaXplX3QgbG9jYXRpb247Ci0gICAgc2l6ZV90IGxlbmd0
aDsKLSAgICBpZiAoIXJhbmdlIHx8ICFUZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVuZ3Ro
RnJvbVJhbmdlKGZyYW1lLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50
RWxlbWVudCgpLCByYW5nZS5nZXQoKSwgbG9jYXRpb24sIGxlbmd0aCkpIHsKLSAgICAgICAgbG9j
YXRpb24gPSBub3RGb3VuZDsKLSAgICAgICAgbGVuZ3RoID0gMDsKLSAgICB9Ci0KLSAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVkaXRpbmdSYW5nZUNhbGxiYWNrKEVkaXRpbmdSYW5n
ZShsb2NhdGlvbiwgbGVuZ3RoKSwgY2FsbGJhY2tJRCkpOworICAgIGF1dG8gZWRpdGluZ1Jhbmdl
ID0gRWRpdGluZ1JhbmdlOjpmcm9tUmFuZ2UoZnJhbWUsIGZyYW1lLmVkaXRvcigpLmNvbXBvc2l0
aW9uUmFuZ2UoKS5nZXQoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFZGl0
aW5nUmFuZ2VDYWxsYmFjayhlZGl0aW5nUmFuZ2UsIGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpnZXRTZWxlY3RlZFJhbmdlQXN5bmMoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewog
ICAgIEZyYW1lJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFp
bkZyYW1lKCk7Ci0KLSAgICBzaXplX3QgbG9jYXRpb247Ci0gICAgc2l6ZV90IGxlbmd0aDsKLSAg
ICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFu
Z2UoKTsKLSAgICBpZiAoIXJhbmdlIHx8ICFUZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVu
Z3RoRnJvbVJhbmdlKGZyYW1lLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3Vt
ZW50RWxlbWVudCgpLCByYW5nZS5nZXQoKSwgbG9jYXRpb24sIGxlbmd0aCkpIHsKLSAgICAgICAg
bG9jYXRpb24gPSBub3RGb3VuZDsKLSAgICAgICAgbGVuZ3RoID0gMDsKLSAgICB9Ci0KLSAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVkaXRpbmdSYW5nZUNhbGxiYWNrKEVkaXRpbmdS
YW5nZShsb2NhdGlvbiwgbGVuZ3RoKSwgY2FsbGJhY2tJRCkpOworICAgIGF1dG8gZWRpdGluZ1Jh
bmdlID0gRWRpdGluZ1JhbmdlOjpmcm9tUmFuZ2UoZnJhbWUsIGZyYW1lLnNlbGVjdGlvbigpLnRv
Tm9ybWFsaXplZFJhbmdlKCkuZ2V0KCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RWRpdGluZ1JhbmdlQ2FsbGJhY2soZWRpdGluZ1JhbmdlLCBjYWxsYmFja0lEKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZTo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludEFzeW5jKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBwb2ludCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewotICAgIHVpbnQ2NF90
IGluZGV4ID0gbm90Rm91bmQ7Ci0KICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IG1fcGFnZS0+
bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQocG9pbnQpOwog
ICAgIEZyYW1lKiBmcmFtZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSA/IHJlc3VsdC5p
bm5lck5vZGVGcmFtZSgpIDogJm1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFp
bkZyYW1lKCk7CiAgICAgCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGZyYW1lLT5yYW5nZUZv
clBvaW50KHJlc3VsdC5yb3VuZGVkUG9pbnRJbklubmVyTm9kZUZyYW1lKCkpOwotICAgIGlmIChy
YW5nZSkgewotICAgICAgICBzaXplX3QgbG9jYXRpb247Ci0gICAgICAgIHNpemVfdCBsZW5ndGg7
Ci0gICAgICAgIGlmIChUZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdl
KGZyYW1lLT5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQo
KSwgcmFuZ2UuZ2V0KCksIGxvY2F0aW9uLCBsZW5ndGgpKQotICAgICAgICAgICAgaW5kZXggPSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4obG9jYXRpb24pOwotICAgIH0KLQotICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6VW5zaWduZWRDYWxsYmFjayhpbmRleCwgY2FsbGJhY2tJRCkpOwor
ICAgIGF1dG8gZWRpdGluZ1JhbmdlID0gRWRpdGluZ1JhbmdlOjpmcm9tUmFuZ2UoKmZyYW1lLCBy
YW5nZS5nZXQoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbnNpZ25lZENh
bGxiYWNrKHN0YXRpY19jYXN0PHVpbnQ2NF90PihlZGl0aW5nUmFuZ2UubG9jYXRpb24pLCBjYWxs
YmFja0lEKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VB
c3luYyhjb25zdCBFZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZSwgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQpAQCAtNTExNSw3ICs1MDkxLDcgQEAgdm9pZCBXZWJQYWdlOjpmaXJzdFJlY3RGb3JDaGFy
YWN0ZXJSYW5nZUFzeW5jKGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1JhbmdlLAogICAgIEZy
YW1lJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1l
KCk7CiAgICAgSW50UmVjdCByZXN1bHQoSW50UG9pbnQoMCwgMCksIEludFNpemUoMCwgMCkpOwog
ICAgIAotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2UoZnJh
bWUsIGVkaXRpbmdSYW5nZSk7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IEVkaXRpbmdSYW5n
ZTo6dG9SYW5nZShmcmFtZSwgZWRpdGluZ1JhbmdlKTsKICAgICBpZiAoIXJhbmdlKSB7CiAgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVjdEZvckNoYXJhY3RlclJhbmdlQ2Fs
bGJhY2socmVzdWx0LCBFZGl0aW5nUmFuZ2Uobm90Rm91bmQsIDApLCBjYWxsYmFja0lEKSk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTUxMzQsNyArNTExMCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0Q29t
cG9zaXRpb25Bc3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxDb21wb3NpdGlv
blVuCiAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzQ29udGVudEVkaXRh
YmxlKCkpIHsKICAgICAgICAgUmVmUHRyPFJhbmdlPiByZXBsYWNlbWVudFJhbmdlOwogICAgICAg
ICBpZiAocmVwbGFjZW1lbnRFZGl0aW5nUmFuZ2UubG9jYXRpb24gIT0gbm90Rm91bmQpIHsKLSAg
ICAgICAgICAgIHJlcGxhY2VtZW50UmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2UoZnJhbWUs
IHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlKTsKKyAgICAgICAgICAgIHJlcGxhY2VtZW50UmFuZ2Ug
PSBFZGl0aW5nUmFuZ2U6OnRvUmFuZ2UoZnJhbWUsIHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlKTsK
ICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudFJhbmdlKQogICAgICAgICAgICAgICAgIGZyYW1l
LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKCpyZXBsYWNlbWVudFJh
bmdlLCBTRUxfREVGQVVMVF9BRkZJTklUWSkpOwogICAgICAgICB9CkBAIC02MTIxLDQ1ICs2MDk3
LDYgQEAgdm9pZCBXZWJQYWdlOjpnZXRTYW1wbGluZ1Byb2ZpbGVyT3V0cHV0KENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKICNlbmRpZgogfQogCi1SZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IFdlYlBhZ2U6
OnJhbmdlRnJvbUVkaXRpbmdSYW5nZShXZWJDb3JlOjpGcmFtZSYgZnJhbWUsIGNvbnN0IEVkaXRp
bmdSYW5nZSYgcmFuZ2UsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1Jl
bGF0aXZlVG8pCi17Ci0gICAgQVNTRVJUKHJhbmdlLmxvY2F0aW9uICE9IG5vdEZvdW5kKTsKLQot
ICAgIC8vIFNhbml0aXplIHRoZSBpbnB1dCwgYmVjYXVzZSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJv
bUxvY2F0aW9uQW5kTGVuZ3RoIHRha2VzIHNpZ25lZCBpbnRlZ2Vycy4KLSAgICBpZiAocmFuZ2Uu
bG9jYXRpb24gPiBJTlRfTUFYKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpbnQgbGVuZ3RoOwot
ICAgIGlmIChyYW5nZS5sZW5ndGggPD0gSU5UX01BWCAmJiByYW5nZS5sb2NhdGlvbiArIHJhbmdl
Lmxlbmd0aCA8PSBJTlRfTUFYKQotICAgICAgICBsZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQ+KHJh
bmdlLmxlbmd0aCk7Ci0gICAgZWxzZQotICAgICAgICBsZW5ndGggPSBJTlRfTUFYIC0gcmFuZ2Uu
bG9jYXRpb247Ci0KLSAgICBpZiAoZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID09IEVkaXRpbmdS
YW5nZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290KSB7Ci0gICAgICAgIC8vIE91ciBjcml0aWNh
bCBhc3N1bXB0aW9uIGlzIHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgY2FsbGVkIGJ5IGlucHV0IG1l
dGhvZHMgdGhhdAotICAgICAgICAvLyBjb25jZW50cmF0ZSBvbiBhIGdpdmVuIGFyZWEgY29udGFp
bmluZyB0aGUgc2VsZWN0aW9uLgotICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVz
ZSBvZiB0ZXh0IGZpZWxkcyBhbmQgdGV4dGFyZWFzLiBUaGUgRE9NIGZvciB0aG9zZSBpcyBub3QK
LSAgICAgICAgLy8gZGlyZWN0bHkgaW4gdGhlIGRvY3VtZW50IERPTSwgc28gc2VyaWFsaXphdGlv
biBpcyBwcm9ibGVtYXRpYy4gT3VyIHNvbHV0aW9uIGlzCi0gICAgICAgIC8vIHRvIHVzZSB0aGUg
cm9vdCBlZGl0YWJsZSBlbGVtZW50IG9mIHRoZSBzZWxlY3Rpb24gc3RhcnQgYXMgdGhlIHBvc2l0
aW9uYWwgYmFzZS4KLSAgICAgICAgLy8gVGhhdCBmaXRzIHdpdGggQXBwS2l0J3MgaWRlYSBvZiBh
biBpbnB1dCBjb250ZXh0LgotICAgICAgICByZXR1cm4gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21M
b2NhdGlvbkFuZExlbmd0aChmcmFtZS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50T3JE
b2N1bWVudEVsZW1lbnQoKSwgc3RhdGljX2Nhc3Q8aW50PihyYW5nZS5sb2NhdGlvbiksIGxlbmd0
aCk7Ci0gICAgfQotCi0gICAgQVNTRVJUKGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9PSBFZGl0
aW5nUmFuZ2VJc1JlbGF0aXZlVG86OlBhcmFncmFwaCk7Ci0KLSAgICBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24gPSBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKLSAgICBS
ZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2Uo
KTsKLSAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgUmVm
UHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSA9IG1ha2VSYW5nZShzdGFydE9mUGFyYWdyYXBoKHNl
bGVjdGlvbi52aXNpYmxlU3RhcnQoKSksIHNlbGVjdGlvbi52aXNpYmxlRW5kKCkpOwotICAgIGlm
ICghcGFyYWdyYXBoUmFuZ2UpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQ29udGFpbmVyTm9k
ZSYgcm9vdE5vZGUgPSBwYXJhZ3JhcGhSYW5nZS5nZXQoKS0+c3RhcnRDb250YWluZXIoKS50cmVl
U2NvcGUoKS5yb290Tm9kZSgpOwotICAgIGludCBwYXJhZ3JhcGhTdGFydEluZGV4ID0gVGV4dEl0
ZXJhdG9yOjpyYW5nZUxlbmd0aChSYW5nZTo6Y3JlYXRlKHJvb3ROb2RlLmRvY3VtZW50KCksICZy
b290Tm9kZSwgMCwgJnBhcmFncmFwaFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBwYXJhZ3JhcGhS
YW5nZS0+c3RhcnRPZmZzZXQoKSkucHRyKCkpOwotICAgIHJldHVybiBUZXh0SXRlcmF0b3I6OnJh
bmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKCZyb290Tm9kZSwgcGFyYWdyYXBoU3RhcnRJbmRleCAr
IHN0YXRpY19jYXN0PGludD4ocmFuZ2UubG9jYXRpb24pLCBsZW5ndGgpOwotfQotICAgIAogdm9p
ZCBXZWJQYWdlOjpkaWRDaGFuZ2VTY3JvbGxPZmZzZXRGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7
CiAgICAgaWYgKCFmcmFtZS0+aXNNYWluRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggYjMyY2ExNTI5YzQzYzFh
MjZkZjRhZGFmYTlmMTczMzJjMDU4NzY0My4uODRiNzRjMTNhMWY4NGVmMDdhZjExMzM5NDc5ZGRl
MWE1OTQ3MmU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0KQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc2Vy
dERpY3RhdGVkVGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1Jhbmdl
JiByZQogICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKGZyYW1lKTsKIAogICAgIGlmIChyZXBsYWNl
bWVudEVkaXRpbmdSYW5nZS5sb2NhdGlvbiAhPSBub3RGb3VuZCkgewotICAgICAgICBSZWZQdHI8
UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2UoZnJhbWUsIHJl
cGxhY2VtZW50RWRpdGluZ1JhbmdlKTsKKyAgICAgICAgUmVmUHRyPFJhbmdlPiByZXBsYWNlbWVu
dFJhbmdlID0gRWRpdGluZ1JhbmdlOjp0b1JhbmdlKGZyYW1lLCByZXBsYWNlbWVudEVkaXRpbmdS
YW5nZSk7CiAgICAgICAgIGlmIChyZXBsYWNlbWVudFJhbmdlKQogICAgICAgICAgICAgZnJhbWUu
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oKnJlcGxhY2VtZW50UmFu
Z2UsIFNFTF9ERUZBVUxUX0FGRklOSVRZKSk7CiAgICAgfQpAQCAtMzUwLDcgKzM1MCw3IEBAIHZv
aWQgV2ViUGFnZTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNoYXJhY3RlclJhbmdlQXN5bmMoY29u
c3QgRWRpdGluZ1JhbmdlJiBlZGl0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQ
dHI8UmFuZ2U+IHJhbmdlID0gcmFuZ2VGcm9tRWRpdGluZ1JhbmdlKGZyYW1lLCBlZGl0aW5nUmFu
Z2UpOworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBFZGl0aW5nUmFuZ2U6OnRvUmFuZ2UoZnJh
bWUsIGVkaXRpbmdSYW5nZSk7CiAgICAgaWYgKCFyYW5nZSkgewogICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkF0dHJpYnV0ZWRTdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUNhbGxi
YWNrKHJlc3VsdCwgRWRpdGluZ1JhbmdlKCksIGNhbGxiYWNrSUQpKTsKICAgICAgICAgcmV0dXJu
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363297</attachid>
            <date>2019-02-28 22:39:39 -0800</date>
            <delta_ts>2019-03-02 16:02:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195201-20190228223938.patch</filename>
            <type>text/plain</type>
            <size>19310</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxOGU2YTkwNTE0Njk5Njcx
MGRiNGVkZTk5OWU4N2JiYjczNzM2M2EuLmQyYWU2MWUwOWZkODJhNDYzYThiOWM4NzFhOTM2ZTlm
NDY5ZDAxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDItMjggIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBFZGl0aW5nUmFu
Z2UgPC0+IFJhbmdlIG1ldGhvZHMgdG8gRWRpdGluZ1JhbmdlIGluc3RlYWQgb2YgV2ViUGFnZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MjAxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
RWRpdGluZ1JhbmdlLmg6CisgICAgICAgICogU2hhcmVkL0VkaXRpbmdSYW5nZS5jcHA6CisgICAg
ICAgIEFsc28sIG1vZGVybml6ZSB0aGUgY29kZXJzLgorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjppbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRNYXJrZWRS
YW5nZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0U2VsZWN0ZWRSYW5nZUFz
eW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludEFz
eW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFu
Z2VBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldENvbXBvc2l0aW9uQXN5bmMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyYW5nZUZyb21FZGl0aW5nUmFuZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VB
c3luYyk6CisKIDIwMTktMDItMjggIERhdmlkIFF1ZXNhZGEgIDxkYXZpZF9xdWVzYWRhQGFwcGxl
LmNvbT4KIAogICAgICAgICBFeHBvc2UgQVBJTmF2aWdhdGlvbkFjdGlvbi5zaG91bGRQZXJmb3Jt
RG93bmxvYWQoKSBvbiBXS05hdmlnYXRpb25BY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VkaXRpbmdSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0aW5n
UmFuZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmMWMwM2FhYTU5ZGU4NGNlODNhNDk4MzUwMWQ0ZWNlOTJk
YzJlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0aW5nUmFu
Z2UuY3BwCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVTZWxlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1RleHRJdGVyYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVVuaXRzLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IEVkaXRpbmdSYW5nZTo6
dG9SYW5nZShXZWJDb3JlOjpGcmFtZSYgZnJhbWUsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmFuZ2Us
IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pCit7Cisg
ICAgQVNTRVJUKHJhbmdlLmxvY2F0aW9uICE9IG5vdEZvdW5kKTsKKworICAgIC8vIFNhbml0aXpl
IHRoZSBpbnB1dCwgYmVjYXVzZSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVu
Z3RoIHRha2VzIHNpZ25lZCBpbnRlZ2Vycy4KKyAgICBpZiAocmFuZ2UubG9jYXRpb24gPiBJTlRf
TUFYKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpbnQgbGVuZ3RoOworICAgIGlmIChy
YW5nZS5sZW5ndGggPD0gSU5UX01BWCAmJiByYW5nZS5sb2NhdGlvbiArIHJhbmdlLmxlbmd0aCA8
PSBJTlRfTUFYKQorICAgICAgICBsZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQ+KHJhbmdlLmxlbmd0
aCk7CisgICAgZWxzZQorICAgICAgICBsZW5ndGggPSBJTlRfTUFYIC0gcmFuZ2UubG9jYXRpb247
CisKKyAgICBpZiAoZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID09IEVkaXRpbmdSYW5nZUlzUmVs
YXRpdmVUbzo6RWRpdGFibGVSb290KSB7CisgICAgICAgIC8vIE91ciBjcml0aWNhbCBhc3N1bXB0
aW9uIGlzIHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgY2FsbGVkIGJ5IGlucHV0IG1ldGhvZHMgdGhh
dAorICAgICAgICAvLyBjb25jZW50cmF0ZSBvbiBhIGdpdmVuIGFyZWEgY29udGFpbmluZyB0aGUg
c2VsZWN0aW9uLgorICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSBvZiB0ZXh0
IGZpZWxkcyBhbmQgdGV4dGFyZWFzLiBUaGUgRE9NIGZvciB0aG9zZSBpcyBub3QKKyAgICAgICAg
Ly8gZGlyZWN0bHkgaW4gdGhlIGRvY3VtZW50IERPTSwgc28gc2VyaWFsaXphdGlvbiBpcyBwcm9i
bGVtYXRpYy4gT3VyIHNvbHV0aW9uIGlzCisgICAgICAgIC8vIHRvIHVzZSB0aGUgcm9vdCBlZGl0
YWJsZSBlbGVtZW50IG9mIHRoZSBzZWxlY3Rpb24gc3RhcnQgYXMgdGhlIHBvc2l0aW9uYWwgYmFz
ZS4KKyAgICAgICAgLy8gVGhhdCBmaXRzIHdpdGggQXBwS2l0J3MgaWRlYSBvZiBhbiBpbnB1dCBj
b250ZXh0LgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21M
b2NhdGlvbkFuZExlbmd0aChmcmFtZS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50T3JE
b2N1bWVudEVsZW1lbnQoKSwgc3RhdGljX2Nhc3Q8aW50PihyYW5nZS5sb2NhdGlvbiksIGxlbmd0
aCk7CisgICAgfQorCisgICAgQVNTRVJUKGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9PSBFZGl0
aW5nUmFuZ2VJc1JlbGF0aXZlVG86OlBhcmFncmFwaCk7CisKKyAgICBjb25zdCBXZWJDb3JlOjpW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24gPSBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBzZWxlY3Rpb24u
dG9Ob3JtYWxpemVkUmFuZ2UoKTsKKyAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBwYXJhZ3JhcGhSYW5n
ZSA9IG1ha2VSYW5nZShzdGFydE9mUGFyYWdyYXBoKHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSks
IHNlbGVjdGlvbi52aXNpYmxlRW5kKCkpOworICAgIGlmICghcGFyYWdyYXBoUmFuZ2UpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgV2ViQ29yZTo6Q29udGFpbmVyTm9kZSYgcm9vdE5v
ZGUgPSBwYXJhZ3JhcGhSYW5nZS5nZXQoKS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKS5y
b290Tm9kZSgpOworICAgIGludCBwYXJhZ3JhcGhTdGFydEluZGV4ID0gV2ViQ29yZTo6VGV4dEl0
ZXJhdG9yOjpyYW5nZUxlbmd0aChXZWJDb3JlOjpSYW5nZTo6Y3JlYXRlKHJvb3ROb2RlLmRvY3Vt
ZW50KCksICZyb290Tm9kZSwgMCwgJnBhcmFncmFwaFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBw
YXJhZ3JhcGhSYW5nZS0+c3RhcnRPZmZzZXQoKSkucHRyKCkpOworICAgIHJldHVybiBXZWJDb3Jl
OjpUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKCZyb290Tm9kZSwgcGFy
YWdyYXBoU3RhcnRJbmRleCArIHN0YXRpY19jYXN0PGludD4ocmFuZ2UubG9jYXRpb24pLCBsZW5n
dGgpOworfQorCitFZGl0aW5nUmFuZ2UgRWRpdGluZ1JhbmdlOjpmcm9tUmFuZ2UoV2ViQ29yZTo6
RnJhbWUmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSYW5nZSogcmFuZ2UsIEVkaXRpbmdSYW5nZUlz
UmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pCit7CisgICAgQVNTRVJUKGVkaXRp
bmdSYW5nZUlzUmVsYXRpdmVUbyA9PSBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxl
Um9vdCk7CisKKyAgICBzaXplX3QgbG9jYXRpb247CisgICAgc2l6ZV90IGxlbmd0aDsKKyAgICBp
ZiAoIXJhbmdlIHx8ICFXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVuZ3Ro
RnJvbVJhbmdlKGZyYW1lLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50
RWxlbWVudCgpLCByYW5nZSwgbG9jYXRpb24sIGxlbmd0aCkpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICBFZGl0aW5nUmFuZ2UgZWRpdGluZ1JhbmdlKGxvY2F0aW9uLCBsZW5ndGgpOworICAg
IGlmICghZWRpdGluZ1JhbmdlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IHJldHVybiBlZGl0aW5nUmFuZ2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1l
c3BhY2UgSVBDIHsKKwordm9pZCBBcmd1bWVudENvZGVyPFdlYktpdDo6RWRpdGluZ1JhbmdlPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYktpdDo6RWRpdGluZ1JhbmdlJiBlZGl0
aW5nUmFuZ2UpCit7CisgICAgZW5jb2RlciA8PCBlZGl0aW5nUmFuZ2UubG9jYXRpb247CisgICAg
ZW5jb2RlciA8PCBlZGl0aW5nUmFuZ2UubGVuZ3RoOworfQorCitPcHRpb25hbDxXZWJLaXQ6OkVk
aXRpbmdSYW5nZT4gQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkVkaXRpbmdSYW5nZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFdlYktpdDo6RWRpdGluZ1JhbmdlIGVkaXRpbmdSYW5n
ZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZWRpdGluZ1JhbmdlLmxvY2F0aW9uKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGVkaXRp
bmdSYW5nZS5sZW5ndGgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0
dXJuIGVkaXRpbmdSYW5nZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0aW5nUmFuZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VkaXRpbmdSYW5nZS5oCmluZGV4IDQ4NTQxNWM2YzJmMThhZDJjZDQ5NDVhNGE0OTJmOWMzYzFh
ZTE3ZmYuLjFmNTZhZWZmMjkyODk2M2YxM2JiMjRhMDgxNmYyN2Y4OGUxMjQyNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRpbmdSYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VkaXRpbmdSYW5nZS5oCkBAIC0yMywxMCArMjMsMTUgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEVkaXRpbmdSYW5nZV9oCi0j
ZGVmaW5lIEVkaXRpbmdSYW5nZV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBGcmFtZTsKK2NsYXNzIFJhbmdlOworfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtNTEsNiArNTYsOSBAQCBzdHJ1Y3QgRWRpdGluZ1JhbmdlIHsKICAgICAvLyAobm90Rm91bmQs
IDApIGlzIG5vdGFibHkgdmFsaWQuCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4g
bG9jYXRpb24gKyBsZW5ndGggPj0gbG9jYXRpb247IH0KIAorICAgIHN0YXRpYyBSZWZQdHI8V2Vi
Q29yZTo6UmFuZ2U+IHRvUmFuZ2UoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBFZGl0aW5nUmFuZ2Um
LCBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8gPSBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkVk
aXRhYmxlUm9vdCk7CisgICAgc3RhdGljIEVkaXRpbmdSYW5nZSBmcm9tUmFuZ2UoV2ViQ29yZTo6
RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpSYW5nZSosIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9
IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290KTsKKwogI2lmIGRlZmluZWQo
X19PQkpDX18pCiAgICAgRWRpdGluZ1JhbmdlKE5TUmFuZ2UgcmFuZ2UpCiAgICAgewpAQCAtNzgs
NyArODYsOCBAQCBzdHJ1Y3QgRWRpdGluZ1JhbmdlIHsKIH0KIAogbmFtZXNwYWNlIElQQyB7Ci10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYktpdDo6RWRpdGluZ1JhbmdlPiA6IFNp
bXBsZUFyZ3VtZW50Q29kZXI8V2ViS2l0OjpFZGl0aW5nUmFuZ2U+IHsgfTsKK3RlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpFZGl0aW5nUmFuZ2U+IHsKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYktpdDo6RWRpdGluZ1JhbmdlJik7CisgICAg
c3RhdGljIE9wdGlvbmFsPFdlYktpdDo6RWRpdGluZ1JhbmdlPiBkZWNvZGUoRGVjb2RlciYpOwor
fTsKIH0KLQotI2VuZGlmIC8vIEVkaXRpbmdSYW5nZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA1OWNlZjgz
YTUyMzllZWEwY2ExOTdmNjhjYjM3MjA2N2I5NzllMDI5Li43NDA3Y2MyMTkwM2UyNjRiODg0OGM4
NWE1ODk1MDg0NGQzZGRhYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEwNiw2ICsxMDYsNyBAQCBTaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uY3BwIEBuby11bmlmeQogU2hhcmVkL0NhY2hlTW9k
ZWwuY3BwCiBTaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKK1NoYXJlZC9FZGl0aW5n
UmFuZ2UuY3BwCiBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwCiBTaGFyZWQvRm9udEluZm8uY3BwCiBT
aGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI0N2JhOTFkZWU0MTExZWFkM2Y3NmI4YmMxMGI5MDU5
ZDEwYTUzZTIuLmJiZTA5NjI0MGUwZmJhZTUxYWU0N2QxNTJkZDQ2ZWYzNWQ5NDA0NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjcy
Myw2ICsyNzIzLDcgQEAKIAkJMkQ4Nzg2MjIxQkRCNThGRjAwRDAyQUJCIC8qIEFQSVVzZXJTdHls
ZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVVzZXJTdHlsZVNo
ZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODk0OUVFMTgyMDQ0RjYwMEU4
OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNr
aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4OTQ5RUYxODIwNDRGNjAw
RTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ5Q0Q1RUUyMUZBNzVFRTAwMjlBQ0ZB
IC8qIEVkaXRpbmdSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFZGl0aW5nUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlFQTMw
QzFBOTZDQjU5MDAyRDI4MDcgLyogV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RUEzMEUxQTk2Q0JGRjAwMkQyODA3IC8q
IFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkQ5RUEzMTAxQTk2RDlFQjAwMkQyODA3IC8qIFdlYlBhZ2VJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQ
YWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTAyNiw2ICs1MDI3LDcgQEAKIAkJCQk5OUY2NDJEMjFGQUJFMzc4MDA5NjIxRTkgLyogQ29v
cmRpbmF0ZVN5c3RlbS5oICovLAogCQkJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFn
Q29udHJvbGxlckFjdGlvbi5oICovLAogCQkJCTBGQjY1OTIyMTIwOEI0REIwMDQ0ODE2QyAvKiBE
cmF3aW5nQXJlYUluZm8uaCAqLywKKwkJCQkyRDlDRDVFRTIxRkE3NUVFMDAyOUFDRkEgLyogRWRp
dGluZ1JhbmdlLmNwcCAqLywKIAkJCQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGlu
Z1JhbmdlLmggKi8sCiAJCQkJOENGRUNFOTMxNDkwRjE0MDAwMkFBQTMyIC8qIEVkaXRvclN0YXRl
LmNwcCAqLywKIAkJCQkxQUE0MUFCNDEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9yU3RhdGUuaCAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
YjRjNTg1YzY3NTJlMDYzZmZjZTY1ZDMxYzhmYjU1OGU5MTY0ZTM1Zi4uMDdhNGMxYzQwYjQ5YzQ0
ZDcxNjI2NDUwOTRjYjExNGExYzU3YzVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUwNDQsNyArNTA0NCw3IEBAIHZvaWQgV2ViUGFnZTo6
aW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiBy
ZXBsYWNlbWVuCiAKICAgICBib29sIHJlcGxhY2VzVGV4dCA9IGZhbHNlOwogICAgIGlmIChyZXBs
YWNlbWVudEVkaXRpbmdSYW5nZS5sb2NhdGlvbiAhPSBub3RGb3VuZCkgewotICAgICAgICBpZiAo
YXV0byByZXBsYWNlbWVudFJhbmdlID0gcmFuZ2VGcm9tRWRpdGluZ1JhbmdlKGZyYW1lLCByZXBs
YWNlbWVudEVkaXRpbmdSYW5nZSwgc3RhdGljX2Nhc3Q8RWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRv
PihlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pKSkgeworICAgICAgICBpZiAoYXV0byByZXBsYWNl
bWVudFJhbmdlID0gRWRpdGluZ1JhbmdlOjp0b1JhbmdlKGZyYW1lLCByZXBsYWNlbWVudEVkaXRp
bmdSYW5nZSwgc3RhdGljX2Nhc3Q8RWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvPihlZGl0aW5nUmFu
Z2VJc1JlbGF0aXZlVG8pKSkgewogICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNTZWxl
Y3RpbmdUZXh0V2hpbGVJbnNlcnRpbmdBc3luY2hyb25vdXNseShtX2lzU2VsZWN0aW5nVGV4dFdo
aWxlSW5zZXJ0aW5nQXN5bmNocm9ub3VzbHksIHN1cHByZXNzU2VsZWN0aW9uVXBkYXRlKTsKICAg
ICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KCpyZXBsYWNlbWVudFJhbmdlLCBTRUxfREVGQVVMVF9BRkZJTklUWSkpOwogICAgICAgICAgICAg
cmVwbGFjZXNUZXh0ID0gcmVwbGFjZW1lbnRFZGl0aW5nUmFuZ2UubGVuZ3RoOwpAQCAtNTA2NSw0
OSArNTA2NSwyNSBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbgogdm9pZCBXZWJQYWdlOjpnZXRN
YXJrZWRSYW5nZUFzeW5jKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBGcmFtZSYgZnJh
bWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotCi0g
ICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGZyYW1lLmVkaXRvcigpLmNvbXBvc2l0aW9uUmFuZ2Uo
KTsKLSAgICBzaXplX3QgbG9jYXRpb247Ci0gICAgc2l6ZV90IGxlbmd0aDsKLSAgICBpZiAoIXJh
bmdlIHx8ICFUZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlKGZyYW1l
LnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpLCByYW5n
ZS5nZXQoKSwgbG9jYXRpb24sIGxlbmd0aCkpIHsKLSAgICAgICAgbG9jYXRpb24gPSBub3RGb3Vu
ZDsKLSAgICAgICAgbGVuZ3RoID0gMDsKLSAgICB9Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkVkaXRpbmdSYW5nZUNhbGxiYWNrKEVkaXRpbmdSYW5nZShsb2NhdGlvbiwgbGVu
Z3RoKSwgY2FsbGJhY2tJRCkpOworICAgIGF1dG8gZWRpdGluZ1JhbmdlID0gRWRpdGluZ1Jhbmdl
Ojpmcm9tUmFuZ2UoZnJhbWUsIGZyYW1lLmVkaXRvcigpLmNvbXBvc2l0aW9uUmFuZ2UoKS5nZXQo
KSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFZGl0aW5nUmFuZ2VDYWxsYmFj
ayhlZGl0aW5nUmFuZ2UsIGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpnZXRTZWxl
Y3RlZFJhbmdlQXN5bmMoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIEZyYW1lJiBmcmFt
ZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0KLSAg
ICBzaXplX3QgbG9jYXRpb247Ci0gICAgc2l6ZV90IGxlbmd0aDsKLSAgICBSZWZQdHI8UmFuZ2U+
IHJhbmdlID0gZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsKLSAgICBpZiAo
IXJhbmdlIHx8ICFUZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlKGZy
YW1lLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpLCBy
YW5nZS5nZXQoKSwgbG9jYXRpb24sIGxlbmd0aCkpIHsKLSAgICAgICAgbG9jYXRpb24gPSBub3RG
b3VuZDsKLSAgICAgICAgbGVuZ3RoID0gMDsKLSAgICB9Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkVkaXRpbmdSYW5nZUNhbGxiYWNrKEVkaXRpbmdSYW5nZShsb2NhdGlvbiwg
bGVuZ3RoKSwgY2FsbGJhY2tJRCkpOworICAgIGF1dG8gZWRpdGluZ1JhbmdlID0gRWRpdGluZ1Jh
bmdlOjpmcm9tUmFuZ2UoZnJhbWUsIGZyYW1lLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdl
KCkuZ2V0KCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RWRpdGluZ1Jhbmdl
Q2FsbGJhY2soZWRpdGluZ1JhbmdlLCBjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
Y2hhcmFjdGVySW5kZXhGb3JQb2ludEFzeW5jKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2lu
dCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewotICAgIHVpbnQ2NF90IGluZGV4ID0gbm90Rm91
bmQ7Ci0KICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQocG9pbnQpOwogICAgIEZyYW1lKiBmcmFt
ZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSA/IHJlc3VsdC5pbm5lck5vZGVGcmFtZSgp
IDogJm1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAg
CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGZyYW1lLT5yYW5nZUZvclBvaW50KHJlc3VsdC5y
b3VuZGVkUG9pbnRJbklubmVyTm9kZUZyYW1lKCkpOwotICAgIGlmIChyYW5nZSkgewotICAgICAg
ICBzaXplX3QgbG9jYXRpb247Ci0gICAgICAgIHNpemVfdCBsZW5ndGg7Ci0gICAgICAgIGlmIChU
ZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlKGZyYW1lLT5zZWxlY3Rp
b24oKS5yb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSwgcmFuZ2UuZ2V0KCks
IGxvY2F0aW9uLCBsZW5ndGgpKQotICAgICAgICAgICAgaW5kZXggPSBzdGF0aWNfY2FzdDx1aW50
NjRfdD4obG9jYXRpb24pOwotICAgIH0KLQotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6VW5zaWduZWRDYWxsYmFjayhpbmRleCwgY2FsbGJhY2tJRCkpOworICAgIGF1dG8gZWRpdGlu
Z1JhbmdlID0gRWRpdGluZ1JhbmdlOjpmcm9tUmFuZ2UoKmZyYW1lLCByYW5nZS5nZXQoKSk7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbnNpZ25lZENhbGxiYWNrKHN0YXRpY19j
YXN0PHVpbnQ2NF90PihlZGl0aW5nUmFuZ2UubG9jYXRpb24pLCBjYWxsYmFja0lEKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZTo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhjb25zdCBFZGl0
aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAtNTExNSw3
ICs1MDkxLDcgQEAgdm9pZCBXZWJQYWdlOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUFzeW5j
KGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1JhbmdlLAogICAgIEZyYW1lJiBmcmFtZSA9IG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgSW50UmVj
dCByZXN1bHQoSW50UG9pbnQoMCwgMCksIEludFNpemUoMCwgMCkpOwogICAgIAotICAgIFJlZlB0
cjxSYW5nZT4gcmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2UoZnJhbWUsIGVkaXRpbmdSYW5n
ZSk7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IEVkaXRpbmdSYW5nZTo6dG9SYW5nZShmcmFt
ZSwgZWRpdGluZ1JhbmdlKTsKICAgICBpZiAoIXJhbmdlKSB7CiAgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJhY2socmVzdWx0LCBF
ZGl0aW5nUmFuZ2Uobm90Rm91bmQsIDApLCBjYWxsYmFja0lEKSk7CiAgICAgICAgIHJldHVybjsK
QEAgLTUxMzQsNyArNTExMCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0Q29tcG9zaXRpb25Bc3luYyhj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxDb21wb3NpdGlvblVuCiAgICAgaWYgKGZy
YW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzQ29udGVudEVkaXRhYmxlKCkpIHsKICAgICAg
ICAgUmVmUHRyPFJhbmdlPiByZXBsYWNlbWVudFJhbmdlOwogICAgICAgICBpZiAocmVwbGFjZW1l
bnRFZGl0aW5nUmFuZ2UubG9jYXRpb24gIT0gbm90Rm91bmQpIHsKLSAgICAgICAgICAgIHJlcGxh
Y2VtZW50UmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2UoZnJhbWUsIHJlcGxhY2VtZW50RWRp
dGluZ1JhbmdlKTsKKyAgICAgICAgICAgIHJlcGxhY2VtZW50UmFuZ2UgPSBFZGl0aW5nUmFuZ2U6
OnRvUmFuZ2UoZnJhbWUsIHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlKTsKICAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudFJhbmdlKQogICAgICAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKCpyZXBsYWNlbWVudFJhbmdlLCBTRUxfREVGQVVM
VF9BRkZJTklUWSkpOwogICAgICAgICB9CkBAIC02MTIxLDQ1ICs2MDk3LDYgQEAgdm9pZCBXZWJQ
YWdlOjpnZXRTYW1wbGluZ1Byb2ZpbGVyT3V0cHV0KENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNl
bmRpZgogfQogCi1SZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IFdlYlBhZ2U6OnJhbmdlRnJvbUVkaXRp
bmdSYW5nZShXZWJDb3JlOjpGcmFtZSYgZnJhbWUsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmFuZ2Us
IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pCi17Ci0g
ICAgQVNTRVJUKHJhbmdlLmxvY2F0aW9uICE9IG5vdEZvdW5kKTsKLQotICAgIC8vIFNhbml0aXpl
IHRoZSBpbnB1dCwgYmVjYXVzZSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVu
Z3RoIHRha2VzIHNpZ25lZCBpbnRlZ2Vycy4KLSAgICBpZiAocmFuZ2UubG9jYXRpb24gPiBJTlRf
TUFYKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpbnQgbGVuZ3RoOwotICAgIGlmIChyYW5nZS5s
ZW5ndGggPD0gSU5UX01BWCAmJiByYW5nZS5sb2NhdGlvbiArIHJhbmdlLmxlbmd0aCA8PSBJTlRf
TUFYKQotICAgICAgICBsZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQ+KHJhbmdlLmxlbmd0aCk7Ci0g
ICAgZWxzZQotICAgICAgICBsZW5ndGggPSBJTlRfTUFYIC0gcmFuZ2UubG9jYXRpb247Ci0KLSAg
ICBpZiAoZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID09IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVU
bzo6RWRpdGFibGVSb290KSB7Ci0gICAgICAgIC8vIE91ciBjcml0aWNhbCBhc3N1bXB0aW9uIGlz
IHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgY2FsbGVkIGJ5IGlucHV0IG1ldGhvZHMgdGhhdAotICAg
ICAgICAvLyBjb25jZW50cmF0ZSBvbiBhIGdpdmVuIGFyZWEgY29udGFpbmluZyB0aGUgc2VsZWN0
aW9uLgotICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSBvZiB0ZXh0IGZpZWxk
cyBhbmQgdGV4dGFyZWFzLiBUaGUgRE9NIGZvciB0aG9zZSBpcyBub3QKLSAgICAgICAgLy8gZGly
ZWN0bHkgaW4gdGhlIGRvY3VtZW50IERPTSwgc28gc2VyaWFsaXphdGlvbiBpcyBwcm9ibGVtYXRp
Yy4gT3VyIHNvbHV0aW9uIGlzCi0gICAgICAgIC8vIHRvIHVzZSB0aGUgcm9vdCBlZGl0YWJsZSBl
bGVtZW50IG9mIHRoZSBzZWxlY3Rpb24gc3RhcnQgYXMgdGhlIHBvc2l0aW9uYWwgYmFzZS4KLSAg
ICAgICAgLy8gVGhhdCBmaXRzIHdpdGggQXBwS2l0J3MgaWRlYSBvZiBhbiBpbnB1dCBjb250ZXh0
LgotICAgICAgICByZXR1cm4gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0
aChmcmFtZS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQo
KSwgc3RhdGljX2Nhc3Q8aW50PihyYW5nZS5sb2NhdGlvbiksIGxlbmd0aCk7Ci0gICAgfQotCi0g
ICAgQVNTRVJUKGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9PSBFZGl0aW5nUmFuZ2VJc1JlbGF0
aXZlVG86OlBhcmFncmFwaCk7Ci0KLSAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24gPSBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKLSAgICBSZWZQdHI8UmFuZ2U+IHNl
bGVjdGVkUmFuZ2UgPSBzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKLSAgICBpZiAoIXNl
bGVjdGVkUmFuZ2UpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgUmVmUHRyPFJhbmdlPiBwYXJh
Z3JhcGhSYW5nZSA9IG1ha2VSYW5nZShzdGFydE9mUGFyYWdyYXBoKHNlbGVjdGlvbi52aXNpYmxl
U3RhcnQoKSksIHNlbGVjdGlvbi52aXNpYmxlRW5kKCkpOwotICAgIGlmICghcGFyYWdyYXBoUmFu
Z2UpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUgPSBw
YXJhZ3JhcGhSYW5nZS5nZXQoKS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKS5yb290Tm9k
ZSgpOwotICAgIGludCBwYXJhZ3JhcGhTdGFydEluZGV4ID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUxl
bmd0aChSYW5nZTo6Y3JlYXRlKHJvb3ROb2RlLmRvY3VtZW50KCksICZyb290Tm9kZSwgMCwgJnBh
cmFncmFwaFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBwYXJhZ3JhcGhSYW5nZS0+c3RhcnRPZmZz
ZXQoKSkucHRyKCkpOwotICAgIHJldHVybiBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9u
QW5kTGVuZ3RoKCZyb290Tm9kZSwgcGFyYWdyYXBoU3RhcnRJbmRleCArIHN0YXRpY19jYXN0PGlu
dD4ocmFuZ2UubG9jYXRpb24pLCBsZW5ndGgpOwotfQotICAgIAogdm9pZCBXZWJQYWdlOjpkaWRD
aGFuZ2VTY3JvbGxPZmZzZXRGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKCFmcmFt
ZS0+aXNNYWluRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggYjMyY2ExNTI5YzQzYzFhMjZkZjRhZGFmYTlmMTcz
MzJjMDU4NzY0My4uODRiNzRjMTNhMWY4NGVmMDdhZjExMzM5NDc5ZGRlMWE1OTQ3MmU1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydERpY3RhdGVkVGV4dEFz
eW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZQogICAgIFJlZjxG
cmFtZT4gcHJvdGVjdG9yKGZyYW1lKTsKIAogICAgIGlmIChyZXBsYWNlbWVudEVkaXRpbmdSYW5n
ZS5sb2NhdGlvbiAhPSBub3RGb3VuZCkgewotICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlcGxhY2Vt
ZW50UmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2UoZnJhbWUsIHJlcGxhY2VtZW50RWRpdGlu
Z1JhbmdlKTsKKyAgICAgICAgUmVmUHRyPFJhbmdlPiByZXBsYWNlbWVudFJhbmdlID0gRWRpdGlu
Z1JhbmdlOjp0b1JhbmdlKGZyYW1lLCByZXBsYWNlbWVudEVkaXRpbmdSYW5nZSk7CiAgICAgICAg
IGlmIChyZXBsYWNlbWVudFJhbmdlKQogICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oKnJlcGxhY2VtZW50UmFuZ2UsIFNFTF9ERUZBVUxU
X0FGRklOSVRZKSk7CiAgICAgfQpAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQgV2ViUGFnZTo6YXR0
cmlidXRlZFN1YnN0cmluZ0ZvckNoYXJhY3RlclJhbmdlQXN5bmMoY29uc3QgRWRpdGluZ1Jhbmdl
JiBlZGl0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdl
ID0gcmFuZ2VGcm9tRWRpdGluZ1JhbmdlKGZyYW1lLCBlZGl0aW5nUmFuZ2UpOworICAgIFJlZlB0
cjxSYW5nZT4gcmFuZ2UgPSBFZGl0aW5nUmFuZ2U6OnRvUmFuZ2UoZnJhbWUsIGVkaXRpbmdSYW5n
ZSk7CiAgICAgaWYgKCFyYW5nZSkgewogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkF0dHJpYnV0ZWRTdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrKHJlc3VsdCwgRWRp
dGluZ1JhbmdlKCksIGNhbGxiYWNrSUQpKTsKICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>