<?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>197146</bug_id>
          
          <creation_ts>2019-04-21 02:46:05 -0700</creation_ts>
          <short_desc>[WTF] Simplify GCThread and CompilationThread flags by adding them to WTF::Thread</short_desc>
          <delta_ts>2019-05-13 17:03:39 -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>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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1529135</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-21 02:46:05 -0700</bug_when>
    <thetext>[WTF] Simplify GCThread and CompilationThread flags by adding them to WTF::Thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529136</commentid>
    <comment_count>1</comment_count>
      <attachid>367905</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-21 02:48:41 -0700</bug_when>
    <thetext>Created attachment 367905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529137</commentid>
    <comment_count>2</comment_count>
      <attachid>367906</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-21 02:50:27 -0700</bug_when>
    <thetext>Created attachment 367906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535823</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-05-13 15:32:43 -0700</bug_when>
    <thetext>Committed r245258: &lt;https://trac.webkit.org/changeset/245258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535825</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-13 15:33:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/50742041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535876</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-05-13 17:03:39 -0700</bug_when>
    <thetext>Committed r245265: &lt;https://trac.webkit.org/changeset/245265&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367905</attachid>
            <date>2019-04-21 02:48:41 -0700</date>
            <delta_ts>2019-04-21 02:50:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197146-20190421024840.patch</filename>
            <type>text/plain</type>
            <size>31883</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MTFhNzcwZGJlYzZlYjI0NTkyOTEzYzIyMzUwNTQ1NjY2NjlkNmY2Li5mNzJiYzYxNzU4NjIxYTdi
Nzk5NjVlOTE1MThkZjcxMTc1NjZmMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOS0wNC0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtXVEZdIFNpbXBsaWZ5IEdDVGhyZWFkIGFuZCBDb21waWxhdGlvblRocmVh
ZCBmbGFncyBieSBhZGRpbmcgdGhlbSB0byBXVEY6OlRocmVhZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEhlYXA6OlRocmVhZCB0byBIZWFw
OjpIZWFwVGhyZWFkIHRvIHJlbW92ZSBjb25mbGljdCBiZXR3ZWVuIFdURjo6VGhyZWFkLgorCisg
ICAgICAgICogaGVhcC9BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
QWxpZ25lZE1lbW9yeUFsbG9jYXRvcjo6cmVnaXN0ZXJEaXJlY3RvcnkpOgorICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OkhlYXBUaHJlYWQ6OkhlYXBUaHJlYWQp
OgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVuQ3Vy
cmVudFBoYXNlKToKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVuQmVnaW5QaGFzZSk6CisgICAgICAg
IChKU0M6OkhlYXA6OnJlc3VtZVRoZVBlcmlwaGVyeSk6CisgICAgICAgIChKU0M6OkhlYXA6OnJl
cXVlc3RDb2xsZWN0aW9uKToKKyAgICAgICAgKEpTQzo6SGVhcDo6aXNDdXJyZW50VGhyZWFkQnVz
eSk6CisgICAgICAgIChKU0M6OkhlYXA6Om5vdGlmeUlzU2FmZVRvQ29sbGVjdCk6CisgICAgICAg
IChKU0M6OkhlYXA6OlRocmVhZDo6VGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0hl
YXAuaDoKKyAgICAgICAgKiBoZWFwL0hlYXBJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkhlYXA6
OmluY3JlbWVudERlZmVycmFsRGVwdGgpOgorICAgICAgICAoSlNDOjpIZWFwOjpkZWNyZW1lbnRE
ZWZlcnJhbERlcHRoKToKKyAgICAgICAgKEpTQzo6SGVhcDo6ZGVjcmVtZW50RGVmZXJyYWxEZXB0
aEFuZEdDSWZOZWVkZWQpOgorICAgICAgICAqIGhlYXAvTWFya2VkU3BhY2UuY3BwOgorICAgICAg
ICAoSlNDOjpNYXJrZWRTcGFjZTo6cHJlcGFyZUZvckFsbG9jYXRpb24pOgorCiAyMDE5LTA0LTIw
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgc3VwcHJlc3Mgd2FybmluZ3MgaW4gbm9uIERhcndpbiBlbnZpcm9ubWVudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNWMy
OWIyMGRiMDhkMjE3MTBhMGNiMGRjYzczMjFkZDU2OGNkZDVhMy4uZTgwMDI3ZDAyMjYzOWQyMmJm
MWU1ZGE0OTY3ZWJkYzdmYzI5MThhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0wNC0yMSAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtXVEZdIFNpbXBs
aWZ5IEdDVGhyZWFkIGFuZCBDb21waWxhdGlvblRocmVhZCBmbGFncyBieSBhZGRpbmcgdGhlbSB0
byBXVEY6OlRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU2luY2UgR0NUaHJlYWQgYW5kIENvbXBpbGF0aW9uVGhyZWFkIGZsYWdzIGV4aXN0IGlu
IFdURiwgd2UgcHV0IHRoZXNlIGZsYWdzIGludG8gV1RGOjpUaHJlYWQgZGlyZWN0bHkgaW5zdGVh
ZCBvZiBob2xkaW5nIHRoZW0gaW4gVGhyZWFkU3BlY2lmaWM8Pi4KKyAgICAgICAgQW5kIHRoaXMg
cGF0Y2ggcmVtb3ZlcyBkZXBlbmRlbmN5IGZyb20gVGhyZWFkaW5nLmggdG8gVGhyZWFkU3BlY2lm
aWMuaC4gVGhyZWFkU3BlY2lmaWMuaCdzIE9TIHRocmVhZGluZyBwcmltaXRpdmVzIGFyZSBtb3Zl
ZCB0byBUaHJlYWRpbmdQcmltaXRpdmVzLmgsCisgICAgICAgIGFuZCBUaHJlYWRpbmcuaCByZWxp
ZXMgb24gaXQgaW5zdGVhZC4KKworICAgICAgICAqIHd0Zi9Db21waWxhdGlvblRocmVhZC5jcHA6
CisgICAgICAgIChXVEY6OmlzQ29tcGlsYXRpb25UaHJlYWQpOgorICAgICAgICAoV1RGOjppbml0
aWFsaXplQ29tcGlsYXRpb25UaHJlYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6ZXhjaGFu
Z2VJc0NvbXBpbGF0aW9uVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvQ29tcGlsYXRp
b25UaHJlYWQuaDoKKyAgICAgICAgKFdURjo6Q29tcGlsYXRpb25TY29wZTo6Q29tcGlsYXRpb25T
Y29wZSk6CisgICAgICAgIChXVEY6OkNvbXBpbGF0aW9uU2NvcGU6On5Db21waWxhdGlvblNjb3Bl
KToKKyAgICAgICAgKFdURjo6Q29tcGlsYXRpb25TY29wZTo6bGVhdmVFYXJseSk6CisgICAgICAg
ICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZCk6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgorICAgICAgICAoV1RG
Ojppbml0aWFsaXplR0NUaHJlYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6cmVnaXN0ZXJH
Q1RocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Om1heUJlR0NUaHJlYWQpOiBEZWxldGVk
LgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3RmL1RocmVhZFNwZWNp
ZmljLmg6CisgICAgICAgIChXVEY6OmNhbkJlR0NUaHJlYWQ+OjpUaHJlYWRTcGVjaWZpYyk6Cisg
ICAgICAgIChXVEY6OmNhbkJlR0NUaHJlYWQ+OjpzZXQpOgorICAgICAgICAoV1RGOjp0aHJlYWRT
cGVjaWZpY0tleUNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OnRocmVhZFNwZWNpZmlj
S2V5RGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6dGhyZWFkU3BlY2lmaWNTZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjp0aHJlYWRTcGVjaWZpY0dldCk6IERlbGV0ZWQuCisgICAg
ICAgICogd3RmL1RocmVhZGluZy5jcHA6CisgICAgICAgIChXVEY6OlRocmVhZDo6ZXhjaGFuZ2VJ
c0NvbXBpbGF0aW9uVGhyZWFkKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjpyZWdpc3RlckdDVGhy
ZWFkKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjptYXlCZUdDVGhyZWFkKToKKyAgICAgICAgKiB3
dGYvVGhyZWFkaW5nLmg6CisgICAgICAgIChXVEY6OlRocmVhZDo6aXNDb21waWxhdGlvblRocmVh
ZCBjb25zdCk6CisgICAgICAgIChXVEY6OlRocmVhZDo6Z2NUaHJlYWRUeXBlIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6VGhyZWFkOjpqb2luYWJsZVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdURjo6
VGhyZWFkOjpoYXNFeGl0ZWQgY29uc3QpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OlRocmVhZCk6
CisgICAgICAgIChXVEY6OlRocmVhZDo6am9pbmFibGVTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OlRocmVhZDo6aGFzRXhpdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFk
aW5nUHJpbWl0aXZlcy5oOgorICAgICAgICAoV1RGOjp0aHJlYWRTcGVjaWZpY0tleUNyZWF0ZSk6
CisgICAgICAgIChXVEY6OnRocmVhZFNwZWNpZmljS2V5RGVsZXRlKToKKyAgICAgICAgKFdURjo6
dGhyZWFkU3BlY2lmaWNTZXQpOgorICAgICAgICAoV1RGOjp0aHJlYWRTcGVjaWZpY0dldCk6Cisg
ICAgICAgICogd3RmL3dpbi9UaHJlYWRTcGVjaWZpY1dpbi5jcHA6CisgICAgICAgIChXVEY6OmZs
c0tleXMpOgorCiAyMDE5LTA0LTE5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEhhc2hUYWJsZTo6cmVtb3ZlSWYgYWx3YXlzIHNocmlua3MgdGhlIGhhc2ggdGFi
bGUgYnkgaGFsZiBldmVuIGlmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEy
ZDQ1NGY4OTE5M2VkYjdlMWI3ZWYwZWZmYTI2NmMzNDIxMjdlY2UuLjYzNTMwMmU3NWQyZjllNGUx
NWEzNjZlMzRlNjlmMzYxMzg0MDczZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
OS0wNC0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtX
VEZdIFNpbXBsaWZ5IEdDVGhyZWFkIGFuZCBDb21waWxhdGlvblRocmVhZCBmbGFncyBieSBhZGRp
bmcgdGhlbSB0byBXVEY6OlRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb246Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisKIDIwMTktMDQtMjAgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI0MzEzNyk6IFNWR1ZpZXdFbGVtZW50LnZpZXdUYXJnZXQgc2hvdWxkIG5vdCByZXR1cm4gYSBu
ZXcgb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGlnbmVk
TWVtb3J5QWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsaWduZWRN
ZW1vcnlBbGxvY2F0b3IuY3BwCmluZGV4IDlmYjZmMjJlYjBlZWI2MDUwNjViMDE2OWFmODkxYmUx
ZGI1MzE4MDAuLmU3YzkzYzI2MzY3OTc3MGIyZDAxZGYyZGUwYmZlY2ZmODZmMWNjMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsaWduZWRNZW1vcnlBbGxvY2F0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsaWduZWRNZW1vcnlBbGxvY2F0
b3IuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgQWxpZ25lZE1lbW9yeUFsbG9jYXRvcjo6cmVn
aXN0ZXJEaXJlY3RvcnkoQmxvY2tEaXJlY3RvcnkqIGRpcmVjdG9yeSkKICAgICBSRUxFQVNFX0FT
U0VSVCghZGlyZWN0b3J5LT5uZXh0RGlyZWN0b3J5SW5BbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkp
OwogICAgIAogICAgIGlmIChtX2RpcmVjdG9yaWVzLmlzRW1wdHkoKSkgewotICAgICAgICBBU1NF
UlQoIW1heUJlR0NUaHJlYWQoKSB8fCBkaXJlY3RvcnktPmhlYXAoKS0+d29ybGRJc1N0b3BwZWQo
KSk7CisgICAgICAgIEFTU0VSVCghVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkgfHwgZGlyZWN0b3J5
LT5oZWFwKCktPndvcmxkSXNTdG9wcGVkKCkpOwogICAgICAgICBmb3IgKFN1YnNwYWNlKiBzdWJz
cGFjZSA9IG1fc3Vic3BhY2VzLmZpcnN0KCk7IHN1YnNwYWNlOyBzdWJzcGFjZSA9IHN1YnNwYWNl
LT5uZXh0U3Vic3BhY2VJbkFsaWduZWRNZW1vcnlBbGxvY2F0b3IoKSkKICAgICAgICAgICAgIHN1
YnNwYWNlLT5kaWRDcmVhdGVGaXJzdERpcmVjdG9yeShkaXJlY3RvcnkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggNDk1M2FjMjU5MjIzZjMyYTFhMGFkNmU5NjE4
MmZmYmMxNmFhYTUyMi4uY2ZlY2VhNmQyMWJmZGRhYmY5NjNmNDE2Mzc0ZGI5ZGRmZmQwNDZiNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBib29s
IGlzVmFsaWRTaGFyZWRJbnN0YW5jZVRocmVhZFN0YXRlKFZNKiB2bSkKIAogYm9vbCBpc1ZhbGlk
VGhyZWFkU3RhdGUoVk0qIHZtKQogewotICAgIGlmICh2bS0+YXRvbWljU3RyaW5nVGFibGUoKSAh
PSBXVEY6OlRocmVhZDo6Y3VycmVudCgpLmF0b21pY1N0cmluZ1RhYmxlKCkpCisgICAgaWYgKHZt
LT5hdG9taWNTdHJpbmdUYWJsZSgpICE9IFRocmVhZDo6Y3VycmVudCgpLmF0b21pY1N0cmluZ1Rh
YmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICh2bS0+aXNTaGFyZWRJbnN0
YW5jZSgpICYmICFpc1ZhbGlkU2hhcmVkSW5zdGFuY2VUaHJlYWRTdGF0ZSh2bSkpCkBAIC0yMzEs
OSArMjMxLDkgQEAgY2xhc3MgVGltaW5nU2NvcGUgewogCiB9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKIAotY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CitjbGFz
cyBIZWFwOjpIZWFwVGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6Ci0g
ICAgVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEhlYXAmIGhlYXApCisgICAg
SGVhcFRocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBIZWFwJiBoZWFwKQogICAg
ICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGhlYXAubV90aHJlYWRMb2NrLCBoZWFwLm1f
dGhyZWFkQ29uZGl0aW9uLmNvcHlSZWYoKSkKICAgICAgICAgLCBtX2hlYXAoaGVhcCkKICAgICB7
CkBAIC0yNjQsNyArMjY0LDcgQEAgY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRp
Y1RocmVhZCB7CiAgICAgCiAgICAgdm9pZCB0aHJlYWREaWRTdGFydCgpIG92ZXJyaWRlCiAgICAg
ewotICAgICAgICBXVEY6OnJlZ2lzdGVyR0NUaHJlYWQoR0NUaHJlYWRUeXBlOjpNYWluKTsKKyAg
ICAgICAgVGhyZWFkOjpyZWdpc3RlckdDVGhyZWFkKEdDVGhyZWFkVHlwZTo6TWFpbik7CiAgICAg
fQogCiBwcml2YXRlOgpAQCAtMzIzLDcgKzMyMyw3IEBAIEhlYXA6OkhlYXAoVk0qIHZtLCBIZWFw
VHlwZSBoZWFwVHlwZSkKICAgICBtX21heEVkZW5TaXplV2hlbkNyaXRpY2FsID0gbWVtb3J5QWJv
dmVDcml0aWNhbFRocmVzaG9sZCAvIDQ7CiAKICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV90aHJl
YWRMb2NrKTsKLSAgICBtX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWQobG9ja2VyLCAqdGhp
cykpOworICAgIG1fdGhyZWFkID0gYWRvcHRSZWYobmV3IEhlYXBUaHJlYWQobG9ja2VyLCAqdGhp
cykpOwogfQogCiBIZWFwOjp+SGVhcCgpCkBAIC0xMTY5LDcgKzExNjksNyBAQCBhdXRvIEhlYXA6
OnJ1bkN1cnJlbnRQaGFzZShHQ0NvbmR1Y3RvciBjb25uLCBDdXJyZW50VGhyZWFkU3RhdGUqIGN1
cnJlbnRUaHJlYWRTdAogewogICAgIGNoZWNrQ29ubihjb25uKTsKICAgICBtX2N1cnJlbnRUaHJl
YWRTdGF0ZSA9IGN1cnJlbnRUaHJlYWRTdGF0ZTsKLSAgICBtX2N1cnJlbnRUaHJlYWQgPSAmV1RG
OjpUaHJlYWQ6OmN1cnJlbnQoKTsKKyAgICBtX2N1cnJlbnRUaHJlYWQgPSAmVGhyZWFkOjpjdXJy
ZW50KCk7CiAgICAgCiAgICAgaWYgKGNvbm4gPT0gR0NDb25kdWN0b3I6Ok11dGF0b3IpCiAgICAg
ICAgIHNhbml0aXplU3RhY2tGb3JWTSh2bSgpKTsKQEAgLTEyOTgsNyArMTI5OCw3IEBAIE5FVkVS
X0lOTElORSBib29sIEhlYXA6OnJ1bkJlZ2luUGhhc2UoR0NDb25kdWN0b3IgY29ubikKICAgICAg
ICAgICAgICAgICAgICAgc2xvdFZpc2l0b3IgPSBtX2F2YWlsYWJsZVBhcmFsbGVsU2xvdFZpc2l0
b3JzLnRha2VMYXN0KCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFdURjo6cmVnaXN0
ZXJHQ1RocmVhZChHQ1RocmVhZFR5cGU6OkhlbHBlcik7CisgICAgICAgICAgICBUaHJlYWQ6OnJl
Z2lzdGVyR0NUaHJlYWQoR0NUaHJlYWRUeXBlOjpIZWxwZXIpOwogCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgUGFyYWxsZWxNb2RlRW5hYmxlciBwYXJhbGxlbE1vZGVFbmFibGVyKCpz
bG90VmlzaXRvcik7CkBAIC0xNjk1LDcgKzE2OTUsNyBAQCBORVZFUl9JTkxJTkUgdm9pZCBIZWFw
OjpyZXN1bWVUaGVQZXJpcGhlcnkoKQogICAgICAgICAgICAgICAgIHNsb3RWaXNpdG9yc1RvVXBk
YXRlLnRha2VMYXN0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgV1RGOjpU
aHJlYWQ6OnlpZWxkKCk7CisgICAgICAgIFRocmVhZDo6eWllbGQoKTsKICAgICB9CiAgICAgCiAg
ICAgZm9yIChTbG90VmlzaXRvciogc2xvdFZpc2l0b3IgOiBzbG90VmlzaXRvcnNUb1VwZGF0ZSkK
QEAgLTIxMDUsNyArMjEwNSw3IEBAIEhlYXA6OlRpY2tldCBIZWFwOjpyZXF1ZXN0Q29sbGVjdGlv
bihHQ1JlcXVlc3QgcmVxdWVzdCkKICAgICBzdG9wSWZOZWNlc3NhcnkoKTsKICAgICAKICAgICBB
U1NFUlQodm0oKS0+Y3VycmVudFRocmVhZElzSG9sZGluZ0FQSUxvY2soKSk7Ci0gICAgUkVMRUFT
RV9BU1NFUlQodm0oKS0+YXRvbWljU3RyaW5nVGFibGUoKSA9PSBXVEY6OlRocmVhZDo6Y3VycmVu
dCgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKHZtKCktPmF0b21p
Y1N0cmluZ1RhYmxlKCkgPT0gVGhyZWFkOjpjdXJyZW50KCkuYXRvbWljU3RyaW5nVGFibGUoKSk7
CiAgICAgCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fdGhyZWFkTG9jayk7CiAgICAgLy8gV2Ug
bWF5IGJlIGFibGUgdG8gc3RlYWwgdGhlIGNvbm4uIFRoYXQgb25seSB3b3JrcyBpZiB0aGUgY29s
bGVjdG9yIGlzIGRlZmluaXRlbHkgbm90IHJ1bm5pbmcKQEAgLTI1NDgsNyArMjU0OCw3IEBAIHZv
aWQgSGVhcDo6d3JpdGVCYXJyaWVyU2xvd1BhdGgoY29uc3QgSlNDZWxsKiBmcm9tKQogCiBib29s
IEhlYXA6OmlzQ3VycmVudFRocmVhZEJ1c3koKQogewotICAgIHJldHVybiBtYXlCZUdDVGhyZWFk
KCkgfHwgbXV0YXRvclN0YXRlKCkgIT0gTXV0YXRvclN0YXRlOjpSdW5uaW5nOworICAgIHJldHVy
biBUaHJlYWQ6OlRocmVhZDo6bWF5QmVHQ1RocmVhZCgpIHx8IG11dGF0b3JTdGF0ZSgpICE9IE11
dGF0b3JTdGF0ZTo6UnVubmluZzsKIH0KIAogdm9pZCBIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeVZp
c2l0ZWQoc2l6ZV90IHNpemUpCkBAIC0yODYzLDcgKzI4NjMsNyBAQCB2b2lkIEhlYXA6Om5vdGlm
eUlzU2FmZVRvQ29sbGVjdCgpCiAgICAgbV9pc1NhZmVUb0NvbGxlY3QgPSB0cnVlOwogICAgIAog
ICAgIGlmIChPcHRpb25zOjpjb2xsZWN0Q29udGludW91c2x5KCkpIHsKLSAgICAgICAgbV9jb2xs
ZWN0Q29udGludW91c2x5VGhyZWFkID0gV1RGOjpUaHJlYWQ6OmNyZWF0ZSgKKyAgICAgICAgbV9j
b2xsZWN0Q29udGludW91c2x5VGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoCiAgICAgICAgICAgICAi
SlNDIERFQlVHIENvbnRpbnVvdXMgR0MiLAogICAgICAgICAgICAgW3RoaXNdICgpIHsKICAgICAg
ICAgICAgICAgICBNb25vdG9uaWNUaW1lIGluaXRpYWxUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggMzhmNTMyMWFkOWQ3N2MzODViNWVi
MmY5Y2E5NTEyODc5ODMwYTdhNi4uMGQwOTk5OWY2ZTFkOWU2YjA2MDNmOGUxY2ExMzYxMWQwYzU2
YzNjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAtNDI2LDggKzQyNiw4IEBAIGNs
YXNzIEhlYXAgewogICAgIGZyaWVuZCBjbGFzcyBWTTsKICAgICBmcmllbmQgY2xhc3MgV2Vha1Nl
dDsKIAotICAgIGNsYXNzIFRocmVhZDsKLSAgICBmcmllbmQgY2xhc3MgVGhyZWFkOworICAgIGNs
YXNzIEhlYXBUaHJlYWQ7CisgICAgZnJpZW5kIGNsYXNzIEhlYXBUaHJlYWQ7CiAKICAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhTWVtb3J5ID0gMjU2OwogICAgIApAQCAtNzI3LDcgKzcy
Nyw3IEBAIGNsYXNzIEhlYXAgewogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1f
dGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5vdCB3YWl0IG9uIHRoaXMuIEl0
IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1dG9tYXRpY1RocmVhZD4gbV90
aHJlYWQ7CiAKLSAgICBSZWZQdHI8V1RGOjpUaHJlYWQ+IG1fY29sbGVjdENvbnRpbnVvdXNseVRo
cmVhZCB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8VGhyZWFkPiBtX2NvbGxlY3RDb250aW51b3Vz
bHlUaHJlYWQgeyBudWxscHRyIH07CiAgICAgCiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RHQ1N0
YXJ0VGltZTsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdEdDRW5kVGltZTsKQEAgLTczNyw3ICs3
MzcsNyBAQCBjbGFzcyBIZWFwIHsKICAgICB1aW50cHRyX3QgbV9iYXJyaWVyc0V4ZWN1dGVkIHsg
MCB9OwogICAgIAogICAgIEN1cnJlbnRUaHJlYWRTdGF0ZSogbV9jdXJyZW50VGhyZWFkU3RhdGUg
eyBudWxscHRyIH07Ci0gICAgV1RGOjpUaHJlYWQqIG1fY3VycmVudFRocmVhZCB7IG51bGxwdHIg
fTsgLy8gSXQncyBPSyBpZiB0aGlzIGJlY29tZXMgYSBkYW5nbGluZyBwb2ludGVyLgorICAgIFRo
cmVhZCogbV9jdXJyZW50VGhyZWFkIHsgbnVsbHB0ciB9OyAvLyBJdCdzIE9LIGlmIHRoaXMgYmVj
b21lcyBhIGRhbmdsaW5nIHBvaW50ZXIuCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IHVuc2lnbmVkIG1fcHJlY2VudEF2YWlsYWJsZU1lbW9yeUNhY2hlZENhbGxDb3VudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCmluZGV4IDFiOGIxOTJkNWE3MDY0ZDc3
MTgwODE4MThhNDdlNjBkZmRmMzYyZjguLjdlNzViZTQzMzdkYmU2NDJmYzdlYzVlZGIyMTg4YmVk
MzAzMjFjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaApAQCAt
MTczLDE5ICsxNzMsMTkgQEAgaW5saW5lIHZvaWQgSGVhcDo6cmVsZWFzZVNvb24oc3RkOjp1bmlx
dWVfcHRyPEpTQ0dMaWJXcmFwcGVyT2JqZWN0PiYmIG9iamVjdCkKIAogaW5saW5lIHZvaWQgSGVh
cDo6aW5jcmVtZW50RGVmZXJyYWxEZXB0aCgpCiB7Ci0gICAgQVNTRVJUKCFtYXlCZUdDVGhyZWFk
KCkgfHwgbV93b3JsZElzU3RvcHBlZCk7CisgICAgQVNTRVJUKCFUaHJlYWQ6Om1heUJlR0NUaHJl
YWQoKSB8fCBtX3dvcmxkSXNTdG9wcGVkKTsKICAgICBtX2RlZmVycmFsRGVwdGgrKzsKIH0KIAog
aW5saW5lIHZvaWQgSGVhcDo6ZGVjcmVtZW50RGVmZXJyYWxEZXB0aCgpCiB7Ci0gICAgQVNTRVJU
KCFtYXlCZUdDVGhyZWFkKCkgfHwgbV93b3JsZElzU3RvcHBlZCk7CisgICAgQVNTRVJUKCFUaHJl
YWQ6Om1heUJlR0NUaHJlYWQoKSB8fCBtX3dvcmxkSXNTdG9wcGVkKTsKICAgICBtX2RlZmVycmFs
RGVwdGgtLTsKIH0KIAogaW5saW5lIHZvaWQgSGVhcDo6ZGVjcmVtZW50RGVmZXJyYWxEZXB0aEFu
ZEdDSWZOZWVkZWQoKQogewotICAgIEFTU0VSVCghbWF5QmVHQ1RocmVhZCgpIHx8IG1fd29ybGRJ
c1N0b3BwZWQpOworICAgIEFTU0VSVCghVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkgfHwgbV93b3Js
ZElzU3RvcHBlZCk7CiAgICAgbV9kZWZlcnJhbERlcHRoLS07CiAgICAgCiAgICAgaWYgKFVOTElL
RUxZKG1fZGlkRGVmZXJHQ1dvcmspKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
ZWRTcGFjZS5jcHAKaW5kZXggN2ViYWMzNjQxYjQ5N2YzYmJmYTVkYTQwNmEyNWNkZjdmNTFiNmE1
Zi4uY2EwZjEyNjcwOThkM2ExYmFmMWQyYmFkN2IxOWRhMmQ0NWEzM2QwMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcApAQCAtMjU5LDcgKzI1OSw3IEBAIHZv
aWQgTWFya2VkU3BhY2U6OnN3ZWVwTGFyZ2VBbGxvY2F0aW9ucygpCiAKIHZvaWQgTWFya2VkU3Bh
Y2U6OnByZXBhcmVGb3JBbGxvY2F0aW9uKCkKIHsKLSAgICBBU1NFUlQoIW1heUJlR0NUaHJlYWQo
KSB8fCBtX2hlYXAtPndvcmxkSXNTdG9wcGVkKCkpOworICAgIEFTU0VSVCghVGhyZWFkOjptYXlC
ZUdDVGhyZWFkKCkgfHwgbV9oZWFwLT53b3JsZElzU3RvcHBlZCgpKTsKICAgICBmb3IgKFN1YnNw
YWNlKiBzdWJzcGFjZSA6IG1fc3Vic3BhY2VzKQogICAgICAgICBzdWJzcGFjZS0+cHJlcGFyZUZv
ckFsbG9jYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ29tcGlsYXRpb25U
aHJlYWQuY3BwIGIvU291cmNlL1dURi93dGYvQ29tcGlsYXRpb25UaHJlYWQuY3BwCmluZGV4IGRj
NGYxNjEyZTQ1MTlkOGQ5NDhmZWIzYzk0NmYyYjBiY2I3ZGRjMjUuLjE2MmM1MDQ5YjJkODczMmJk
ZGI4MWUyNDAyNGZjNDMxYzU0ZmVlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NvbXBp
bGF0aW9uVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Db21waWxhdGlvblRocmVhZC5j
cHAKQEAgLTI2LDM4ICsyNiwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHd0
Zi9Db21waWxhdGlvblRocmVhZC5oPgogCi0jaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBUaHJlYWRT
cGVjaWZpYzxib29sLCBDYW5CZUdDVGhyZWFkOjpUcnVlPiogc19pc0NvbXBpbGF0aW9uVGhyZWFk
OwotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplQ29tcGlsYXRpb25UaHJlYWRzKCkKLXsKLSAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUNvbXBpbGF0aW9uVGhyZWFkc09uY2VGbGFn
OwotICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVDb21waWxhdGlvblRocmVhZHNPbmNlRmxh
ZywgW117Ci0gICAgICAgIHNfaXNDb21waWxhdGlvblRocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZp
Yzxib29sLCBDYW5CZUdDVGhyZWFkOjpUcnVlPigpOwotICAgIH0pOwotfQotCiBib29sIGlzQ29t
cGlsYXRpb25UaHJlYWQoKQogewotICAgIGlmICghc19pc0NvbXBpbGF0aW9uVGhyZWFkKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFzX2lzQ29tcGlsYXRpb25UaHJlYWQtPmlzU2V0
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gKipzX2lzQ29tcGlsYXRpb25U
aHJlYWQ7Ci19Ci0KLWJvb2wgZXhjaGFuZ2VJc0NvbXBpbGF0aW9uVGhyZWFkKGJvb2wgbmV3VmFs
dWUpCi17Ci0gICAgaW5pdGlhbGl6ZUNvbXBpbGF0aW9uVGhyZWFkcygpOwotICAgIGJvb2wgb2xk
VmFsdWUgPSBpc0NvbXBpbGF0aW9uVGhyZWFkKCk7Ci0gICAgKipzX2lzQ29tcGlsYXRpb25UaHJl
YWQgPSBuZXdWYWx1ZTsKLSAgICByZXR1cm4gb2xkVmFsdWU7CisgICAgcmV0dXJuIFRocmVhZDo6
Y3VycmVudCgpLmlzQ29tcGlsYXRpb25UaHJlYWQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db21waWxhdGlvblRocmVhZC5oIGIvU291cmNl
L1dURi93dGYvQ29tcGlsYXRpb25UaHJlYWQuaAppbmRleCA1ZDVlMTc0YTgwMmZiYmM4NjBkNzc4
YTFiYjEwMjMzNzVlY2RkNWI5Li4wNmU3MTYwYjgwMmRiMjEzMmI4N2YwM2UxM2NlNzdmMzQ2MTIy
NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Db21waWxhdGlvblRocmVhZC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0NvbXBpbGF0aW9uVGhyZWFkLmgKQEAgLTI1LDI1ICsyNSwyNSBAQAog
CiAjcHJhZ21hIG9uY2UKIAotbmFtZXNwYWNlIFdURiB7CisjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogCi1XVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJl
YWQoYm9vbCBuZXdWYWx1ZSk7CituYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQ29tcGlsYXRpb25T
Y29wZSB7CiBwdWJsaWM6CiAgICAgQ29tcGlsYXRpb25TY29wZSgpCi0gICAgICAgIDogbV9vbGRW
YWx1ZShleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJlYWQodHJ1ZSkpCisgICAgICAgIDogbV9vbGRW
YWx1ZShUaHJlYWQ6OmV4Y2hhbmdlSXNDb21waWxhdGlvblRocmVhZCh0cnVlKSkKICAgICB7CiAg
ICAgfQogICAgIAogICAgIH5Db21waWxhdGlvblNjb3BlKCkKICAgICB7Ci0gICAgICAgIGV4Y2hh
bmdlSXNDb21waWxhdGlvblRocmVhZChtX29sZFZhbHVlKTsKKyAgICAgICAgVGhyZWFkOjpleGNo
YW5nZUlzQ29tcGlsYXRpb25UaHJlYWQobV9vbGRWYWx1ZSk7CiAgICAgfQogICAgIAogICAgIHZv
aWQgbGVhdmVFYXJseSgpCiAgICAgewotICAgICAgICBleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJl
YWQobV9vbGRWYWx1ZSk7CisgICAgICAgIFRocmVhZDo6ZXhjaGFuZ2VJc0NvbXBpbGF0aW9uVGhy
ZWFkKG1fb2xkVmFsdWUpOwogICAgIH0KIHByaXZhdGU6CiAgICAgYm9vbCBtX29sZFZhbHVlOwpA
QCAtNTIsNCArNTIsMyBAQCBjbGFzcyBDb21waWxhdGlvblNjb3BlIHsKIH0gLy8gbmFtZXNwYWNl
IFdURgogCiB1c2luZyBXVEY6OkNvbXBpbGF0aW9uU2NvcGU7Ci11c2luZyBXVEY6OmV4Y2hhbmdl
SXNDb21waWxhdGlvblRocmVhZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJl
YWQuY3BwIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKaW5kZXggNzgzMTIwMTUzNjg1
MjM4MTE2MzhlYWU5MzQ2MmExZWUzYjJkNTRmMi4uZmNlN2I0NmE1MmJkYmVjNGE2MGQ1NDEwOWI0
NmEwNjYzZTYwYmQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKQEAgLTU3LDcgKzU3LDYgQEAgdm9p
ZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUtl
eSwgW10gewogICAgICAgICBpbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgICAgIGluaXRpYWxp
emVNYWluVGhyZWFkUGxhdGZvcm0oKTsKLSAgICAgICAgaW5pdGlhbGl6ZUdDVGhyZWFkcygpOwog
ICAgIH0pOwogfQogCkBAIC02OCw3ICs2Nyw2IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCkKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplS2V5LCBb
XSB7CiAgICAgICAgIGluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICAgICAgaW5pdGlhbGl6ZU1h
aW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkUGxhdGZvcm0oKTsKLSAgICAgICAgaW5pdGlhbGl6
ZUdDVGhyZWFkcygpOwogICAgIH0pOwogfQogI2Vsc2UKQEAgLTE1Nyw0NiArMTU1LDE0IEBAIHZv
aWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29sIHBhdXNlZCkKICAgICAgICAgc2No
ZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpOwogfQogCi1zdGF0aWMgVGhyZWFk
U3BlY2lmaWM8T3B0aW9uYWw8R0NUaHJlYWRUeXBlPiwgQ2FuQmVHQ1RocmVhZDo6VHJ1ZT4qIGlz
R0NUaHJlYWQ7Ci0KLXZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpCi17Ci0gICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIGZsYWc7Ci0gICAgc3RkOjpjYWxsX29uY2UoCi0gICAgICAgIGZsYWcsCi0g
ICAgICAgIFtdIHsKLSAgICAgICAgICAgIGlzR0NUaHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8
T3B0aW9uYWw8R0NUaHJlYWRUeXBlPiwgQ2FuQmVHQ1RocmVhZDo6VHJ1ZT4oKTsKLSAgICAgICAg
fSk7Ci19Ci0KLXZvaWQgcmVnaXN0ZXJHQ1RocmVhZChHQ1RocmVhZFR5cGUgdHlwZSkKLXsKLSAg
ICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1
bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1h
aW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0
eXBlOwotfQotCiBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQogewotICAgIGlmIChtYXlC
ZUdDVGhyZWFkKCkpCisgICAgaWYgKFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKIH0KIAotT3B0aW9uYWw8
R0NUaHJlYWRUeXBlPiBtYXlCZUdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpCi0g
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgaWYgKCFpc0dDVGhyZWFkLT5pc1NldCgp
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHJldHVybiAqKmlzR0NUaHJlYWQ7
Ci19Ci0KIHZvaWQgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+
JiYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmgK
aW5kZXggYzhlZjFiNTAzMWQ1NzU3ZDJkODBlMzE3MjBmZTRmMGNiMDliNDBjMi4uNGU0NWM2ODlh
MDIyNTAzZmYxODYyODZhMDUxMzBkNTdiNGJjNjc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaApAQCAtNjgs
MTcgKzY4LDYgQEAgaW5saW5lIGJvb2wgaXNXZWJUaHJlYWQoKSB7IHJldHVybiBpc01haW5UaHJl
YWQoKTsgfQogaW5saW5lIGJvb2wgaXNVSVRocmVhZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgp
OyB9CiAjZW5kaWYgLy8gVVNFKFdFQl9USFJFQUQpCiAKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGluaXRpYWxpemVHQ1RocmVhZHMoKTsKLQotZW51bSBjbGFzcyBHQ1RocmVhZFR5cGUgewotICAg
IE1haW4sCi0gICAgSGVscGVyCi19OwotCi12b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
LCBHQ1RocmVhZFR5cGUpOwotCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZWdpc3RlckdDVGhy
ZWFkKEdDVGhyZWFkVHlwZSk7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgT3B0aW9uYWw8R0NUaHJlYWRU
eXBlPiBtYXlCZUdDVGhyZWFkKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc01haW5UaHJl
YWRPckdDVGhyZWFkKCk7CiAKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUgaW50ZXJuYWwg
dG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCkBAIC05OCw3ICs4Nyw2IEBA
IHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkUGxhdGZvcm0oKTsK
IAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLXVzaW5nIFdURjo6R0NUaHJlYWRUeXBlOwogdXNpbmcg
V1RGOjpjYWxsT25NYWluVGhyZWFkOwogdXNpbmcgV1RGOjpjYWxsT25NYWluVGhyZWFkQW5kV2Fp
dDsKIHVzaW5nIFdURjo6Y2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkOwpAQCAtMTA2
LDcgKzk0LDYgQEAgdXNpbmcgV1RGOjppc01haW5UaHJlYWQ7CiB1c2luZyBXVEY6OmlzTWFpblRo
cmVhZE9yR0NUaHJlYWQ7CiB1c2luZyBXVEY6OmlzVUlUaHJlYWQ7CiB1c2luZyBXVEY6OmlzV2Vi
VGhyZWFkOwotdXNpbmcgV1RGOjptYXlCZUdDVGhyZWFkOwogdXNpbmcgV1RGOjpzZXRNYWluVGhy
ZWFkQ2FsbGJhY2tzUGF1c2VkOwogI2lmIFBMQVRGT1JNKENPQ09BKQogdXNpbmcgV1RGOjpkaXNw
YXRjaEFzeW5jT25NYWluVGhyZWFkV2l0aFdlYlRocmVhZExvY2tJZk5lZWRlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNpZmljLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRTcGVjaWZpYy5oCmluZGV4IGIxZjFmNzExMTc4YTA3MzBkMzY4NDI4NzdhYjhmNGQyOWZiYzJj
NDAuLmM3MGRmNzQwMjJhY2FiMjZjNTI3OGQ0OWUwZmEyNjU3YWUzNmJiNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNpZmljLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkU3BlY2lmaWMuaApAQCAtNDQsMjkgKzQ0LDEwIEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+Ci0KLSNpZiBVU0UoUFRIUkVBRFMpCi0jaW5jbHVkZSA8cHRocmVhZC5oPgotCi0j
aWYgT1MoSFVSRCkKLS8vIFBUSFJFQURfS0VZU19NQVggaXMgbm90IGRlZmluZWQgaW4gYmlvbmlj
IG5vciBpbiBIdXJkLCBzbyBleHBsaWNpdGx5IGRlZmluZSBpdCBoZXJlLgotI2RlZmluZSBQVEhS
RUFEX0tFWVNfTUFYIDEwMjQKLSNlbHNlCi0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jZW5kaWYKLQot
I2VsaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jZW5kaWYKKyNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0jaWYgT1MoV0lORE9XUykg
JiYgQ1BVKFg4NikKLSNkZWZpbmUgVEhSRUFEX1NQRUNJRklDX0NBTEwgX19zdGRjYWxsCi0jZWxz
ZQotI2RlZmluZSBUSFJFQURfU1BFQ0lGSUNfQ0FMTAotI2VuZGlmCi0KIGVudW0gY2xhc3MgQ2Fu
QmVHQ1RocmVhZCB7CiAgICAgRmFsc2UsCiAgICAgVHJ1ZQpAQCAtMTI5LDM0ICsxMTAsNiBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBDYW5CZUdDVGhyZWFkIGNhbkJlR0NUaHJlYWQgPSBDYW5CZUdD
VGhyZWFkOjpGYWxzZT4gY2xhc3MgVAogCiAjaWYgVVNFKFBUSFJFQURTKQogCi10eXBlZGVmIHB0
aHJlYWRfa2V5X3QgVGhyZWFkU3BlY2lmaWNLZXk7Ci0KLXN0YXRpYyBjb25zdCBjb25zdGV4cHIg
VGhyZWFkU3BlY2lmaWNLZXkgSW52YWxpZFRocmVhZFNwZWNpZmljS2V5ID0gUFRIUkVBRF9LRVlT
X01BWDsKLQotaW5saW5lIHZvaWQgdGhyZWFkU3BlY2lmaWNLZXlDcmVhdGUoVGhyZWFkU3BlY2lm
aWNLZXkqIGtleSwgdm9pZCAoKmRlc3RydWN0b3IpKHZvaWQgKikpCi17Ci0gICAgaW50IGVycm9y
ID0gcHRocmVhZF9rZXlfY3JlYXRlKGtleSwgZGVzdHJ1Y3Rvcik7Ci0gICAgaWYgKGVycm9yKQot
ICAgICAgICBDUkFTSCgpOwotfQotCi1pbmxpbmUgdm9pZCB0aHJlYWRTcGVjaWZpY0tleURlbGV0
ZShUaHJlYWRTcGVjaWZpY0tleSBrZXkpCi17Ci0gICAgaW50IGVycm9yID0gcHRocmVhZF9rZXlf
ZGVsZXRlKGtleSk7Ci0gICAgaWYgKGVycm9yKQotICAgICAgICBDUkFTSCgpOwotfQotCi1pbmxp
bmUgdm9pZCB0aHJlYWRTcGVjaWZpY1NldChUaHJlYWRTcGVjaWZpY0tleSBrZXksIHZvaWQqIHZh
bHVlKQotewotICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMoa2V5LCB2YWx1ZSk7Ci19Ci0KLWlubGlu
ZSB2b2lkKiB0aHJlYWRTcGVjaWZpY0dldChUaHJlYWRTcGVjaWZpY0tleSBrZXkpCi17Ci0gICAg
cmV0dXJuIHB0aHJlYWRfZ2V0c3BlY2lmaWMoa2V5KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUg
VCwgQ2FuQmVHQ1RocmVhZCBjYW5CZUdDVGhyZWFkPgogaW5saW5lIFRocmVhZFNwZWNpZmljPFQs
IGNhbkJlR0NUaHJlYWQ+OjpUaHJlYWRTcGVjaWZpYygpCiB7CkBAIC0xODUsMzkgKzEzOCwxMSBA
QCBpbmxpbmUgdm9pZCBUaHJlYWRTcGVjaWZpYzxULCBjYW5CZUdDVGhyZWFkPjo6c2V0SW5UTFMo
RGF0YSogZGF0YSkKIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBGTFMga2V5cyB0aGF0IGNhbiBi
ZSBjcmVhdGVkLiBGb3Igc2ltcGxpZmljYXRpb24sIHdlIGFzc3VtZSB0aGF0OgogLy8gMSkgT25j
ZSB0aGUgaW5zdGFuY2Ugb2YgVGhyZWFkU3BlY2lmaWM8PiBpcyBjcmVhdGVkLCBpdCB3aWxsIG5v
dCBiZSBkZXN0cnVjdGVkIHVudGlsIHRoZSBwcm9ncmFtIGRpZXMuCiAvLyAyKSBXZSBkbyBub3Qg
bmVlZCB0byBob2xkIG1hbnkgaW5zdGFuY2VzIG9mIFRocmVhZFNwZWNpZmljPD4gZGF0YS4gVGhp
cyBmaXhlZCBudW1iZXIgc2hvdWxkIGJlIGZhciBlbm91Z2guCi1jb25zdCBpbnQga01heEZsc0tl
eVNpemUgPSAxMjg7CitzdGF0aWMgY29uc3RleHByIGludCBtYXhGbHNLZXlTaXplID0gMTI4Owog
CiBXVEZfRVhQT1JUX1BSSVZBVEUgbG9uZyYgZmxzS2V5Q291bnQoKTsKIFdURl9FWFBPUlRfUFJJ
VkFURSBEV09SRCogZmxzS2V5cygpOwogCi10eXBlZGVmIERXT1JEIFRocmVhZFNwZWNpZmljS2V5
OwotCi1zdGF0aWMgY29uc3QgY29uc3RleHByIFRocmVhZFNwZWNpZmljS2V5IEludmFsaWRUaHJl
YWRTcGVjaWZpY0tleSA9IEZMU19PVVRfT0ZfSU5ERVhFUzsKLQotaW5saW5lIHZvaWQgdGhyZWFk
U3BlY2lmaWNLZXlDcmVhdGUoVGhyZWFkU3BlY2lmaWNLZXkqIGtleSwgdm9pZCAoVEhSRUFEX1NQ
RUNJRklDX0NBTEwgKmRlc3RydWN0b3IpKHZvaWQgKikpCi17Ci0gICAgRFdPUkQgZmxzS2V5ID0g
RmxzQWxsb2MoZGVzdHJ1Y3Rvcik7Ci0gICAgaWYgKGZsc0tleSA9PSBGTFNfT1VUX09GX0lOREVY
RVMpCi0gICAgICAgIENSQVNIKCk7Ci0KLSAgICAqa2V5ID0gZmxzS2V5OwotfQotCi1pbmxpbmUg
dm9pZCB0aHJlYWRTcGVjaWZpY0tleURlbGV0ZShUaHJlYWRTcGVjaWZpY0tleSBrZXkpCi17Ci0g
ICAgRmxzRnJlZShrZXkpOwotfQotCi1pbmxpbmUgdm9pZCB0aHJlYWRTcGVjaWZpY1NldChUaHJl
YWRTcGVjaWZpY0tleSBrZXksIHZvaWQqIGRhdGEpCi17Ci0gICAgRmxzU2V0VmFsdWUoa2V5LCBk
YXRhKTsKLX0KLQotaW5saW5lIHZvaWQqIHRocmVhZFNwZWNpZmljR2V0KFRocmVhZFNwZWNpZmlj
S2V5IGtleSkKLXsKLSAgICByZXR1cm4gRmxzR2V0VmFsdWUoa2V5KTsKLX0KLQogdGVtcGxhdGU8
dHlwZW5hbWUgVCwgQ2FuQmVHQ1RocmVhZCBjYW5CZUdDVGhyZWFkPgogaW5saW5lIFRocmVhZFNw
ZWNpZmljPFQsIGNhbkJlR0NUaHJlYWQ+OjpUaHJlYWRTcGVjaWZpYygpCiAgICAgOiBtX2luZGV4
KC0xKQpAQCAtMjI3LDcgKzE1Miw3IEBAIGlubGluZSBUaHJlYWRTcGVjaWZpYzxULCBjYW5CZUdD
VGhyZWFkPjo6VGhyZWFkU3BlY2lmaWMoKQogICAgICAgICBDUkFTSCgpOwogCiAgICAgbV9pbmRl
eCA9IEludGVybG9ja2VkSW5jcmVtZW50KCZmbHNLZXlDb3VudCgpKSAtIDE7Ci0gICAgaWYgKG1f
aW5kZXggPj0ga01heEZsc0tleVNpemUpCisgICAgaWYgKG1faW5kZXggPj0gbWF4RmxzS2V5U2l6
ZSkKICAgICAgICAgQ1JBU0goKTsKICAgICBmbHNLZXlzKClbbV9pbmRleF0gPSBmbHNLZXk7CiB9
CkBAIC0yNzQsNyArMTk5LDcgQEAgaW5saW5lIHZvaWQgVEhSRUFEX1NQRUNJRklDX0NBTEwgVGhy
ZWFkU3BlY2lmaWM8VCwgY2FuQmVHQ1RocmVhZD46OmRlc3Ryb3kodm9pZCoKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIENhbkJlR0NUaHJlYWQgY2FuQmVHQ1RocmVhZD4KIGlubGluZSBUKiBUaHJlYWRT
cGVjaWZpYzxULCBjYW5CZUdDVGhyZWFkPjo6c2V0KCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChj
YW5CZUdDVGhyZWFkID09IENhbkJlR0NUaHJlYWQ6OlRydWUgfHwgIW1heUJlR0NUaHJlYWQoKSk7
CisgICAgUkVMRUFTRV9BU1NFUlQoY2FuQmVHQ1RocmVhZCA9PSBDYW5CZUdDVGhyZWFkOjpUcnVl
IHx8ICFUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSk7CiAgICAgQVNTRVJUKCFnZXQoKSk7CiAgICAg
RGF0YSogZGF0YSA9IG5ldyBEYXRhKHRoaXMpOyAvLyBEYXRhIHdpbGwgc2V0IGl0c2VsZiBpbnRv
IFRMUy4KICAgICBBU1NFUlQoZ2V0KCkgPT0gZGF0YS0+c3RvcmFnZVBvaW50ZXIoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmNwcAppbmRleCBiZjExYjAzZWEyYzBkMTIyNTc4YTUxZjQ1MTViOWM5YmEyMDM0YTI2
Li45MDhiYWZlNjNmOWNlNTU2OThmMmJkZTMxNjBkYjUxYTZiZDZlM2MwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Zy5jcHAKQEAgLTI1OSw2ICsyNTksMjQgQEAgdm9pZCBUaHJlYWQ6OnJlbW92ZUZyb21UaHJlYWRH
cm91cChjb25zdCBBYnN0cmFjdExvY2tlciYgdGhyZWFkR3JvdXBMb2NrZXIsIFRocmUKICAgICB9
KTsKIH0KIAorYm9vbCBUaHJlYWQ6OmV4Y2hhbmdlSXNDb21waWxhdGlvblRocmVhZChib29sIG5l
d1ZhbHVlKQoreworICAgIGF1dG8mIHRocmVhZCA9IFRocmVhZDo6Y3VycmVudCgpOworICAgIGJv
b2wgb2xkVmFsdWUgPSB0aHJlYWQubV9pc0NvbXBpbGF0aW9uVGhyZWFkOworICAgIHRocmVhZC5t
X2lzQ29tcGlsYXRpb25UaHJlYWQgPSBuZXdWYWx1ZTsKKyAgICByZXR1cm4gb2xkVmFsdWU7Cit9
CisKK3ZvaWQgVGhyZWFkOjpyZWdpc3RlckdDVGhyZWFkKEdDVGhyZWFkVHlwZSBnY1RocmVhZFR5
cGUpCit7CisgICAgVGhyZWFkOjpjdXJyZW50KCkubV9nY1RocmVhZFR5cGUgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZ2NUaHJlYWRUeXBlKTsKK30KKworYm9vbCBUaHJlYWQ6Om1heUJlR0NUaHJl
YWQoKQoreworICAgIHJldHVybiBUaHJlYWQ6OmN1cnJlbnQoKS5nY1RocmVhZFR5cGUoKSAhPSBH
Q1RocmVhZFR5cGU6Ok5vbmU7Cit9CisKIHZvaWQgVGhyZWFkOjpzZXRDdXJyZW50VGhyZWFkSXNV
c2VySW50ZXJhY3RpdmUoaW50IHJlbGF0aXZlUHJpb3JpdHkpCiB7CiAjaWYgSEFWRShRT1NfQ0xB
U1NFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oIGIvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nLmgKaW5kZXggM2E1NzliM2Q0NzExNWJjY2RmMzQ0Y2VjOGY3M2JlZjNi
YzEwZjFlOC4uODFlYjM4NjhlNThjMDUwZGQyMWIwNmI2YzFkOGU0OTU5ZTg5NzJkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmgKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlIDx3dGYvU3RhY2tCb3VuZHMuaD4K
ICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV29yZExvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmdUYWJsZS5oPgpAQCAtODEsNiArODAsMTIgQEAgV1RGX0VYUE9SVF9QUklW
QVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwg
Y29uc3QgY2gKIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24o
VGhyZWFkSWRlbnRpZmllcik7CiAjZW5kaWYKIAorZW51bSBjbGFzcyBHQ1RocmVhZFR5cGUgOiB1
aW50OF90IHsKKyAgICBOb25lID0gMCwKKyAgICBNYWluLAorICAgIEhlbHBlciwKK307CisKIGNs
YXNzIFRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKIHB1Ymxp
YzoKICAgICBmcmllbmQgY2xhc3MgVGhyZWFkR3JvdXA7CkBAIC0xNTAsNiArMTU1LDEwIEBAIGNs
YXNzIFRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvY2tTcGluTGltaXQ7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHlpZWxkKCk7CiAKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZXhjaGFuZ2VJc0NvbXBpbGF0aW9uVGhyZWFkKGJvb2wg
bmV3VmFsdWUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCByZWdpc3RlckdD
VGhyZWFkKEdDVGhyZWFkVHlwZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29s
IG1heUJlR0NUaHJlYWQoKTsKKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplUGxhdGZv
cm1UaHJlYWRpbmcoKTsKQEAgLTIwMiwxMCArMjExLDEzIEBAIGNsYXNzIFRocmVhZCA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKICAgICBtYWNoX3BvcnRfdCBtYWNoVGhy
ZWFkKCkgeyByZXR1cm4gbV9wbGF0Zm9ybVRocmVhZDsgfQogI2VuZGlmCiAKKyAgICBib29sIGlz
Q29tcGlsYXRpb25UaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ29tcGlsYXRpb25UaHJlYWQ7
IH0KKyAgICBHQ1RocmVhZFR5cGUgZ2NUaHJlYWRUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8R0NUaHJlYWRUeXBlPihtX2djVGhyZWFkVHlwZSk7IH0KKwogICAgIHN0cnVjdCBOZXdU
aHJlYWRDb250ZXh0OwogICAgIHN0YXRpYyB2b2lkIGVudHJ5UG9pbnQoTmV3VGhyZWFkQ29udGV4
dCopOwogcHJvdGVjdGVkOgotICAgIFRocmVhZCgpID0gZGVmYXVsdDsKKyAgICBUaHJlYWQoKTsK
IAogICAgIHZvaWQgaW5pdGlhbGl6ZUluVGhyZWFkKCk7CiAKQEAgLTIzOCwxMSArMjUwLDExIEBA
IGNsYXNzIFRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKICAg
ICAgICAgRGV0YWNoZWQsCiAgICAgfTsKIAotICAgIEpvaW5hYmxlU3RhdGUgam9pbmFibGVTdGF0
ZSgpIHsgcmV0dXJuIG1fam9pbmFibGVTdGF0ZTsgfQorICAgIEpvaW5hYmxlU3RhdGUgam9pbmFi
bGVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fam9pbmFibGVTdGF0ZTsgfQogICAgIHZvaWQgZGlk
QmVjb21lRGV0YWNoZWQoKSB7IG1fam9pbmFibGVTdGF0ZSA9IERldGFjaGVkOyB9CiAgICAgdm9p
ZCBkaWRFeGl0KCk7CiAgICAgdm9pZCBkaWRKb2luKCkgeyBtX2pvaW5hYmxlU3RhdGUgPSBKb2lu
ZWQ7IH0KLSAgICBib29sIGhhc0V4aXRlZCgpIHsgcmV0dXJuIG1fZGlkRXhpdDsgfQorICAgIGJv
b2wgaGFzRXhpdGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaWRFeGl0OyB9CiAKICAgICAvLyBUaGVz
ZSBmdW5jdGlvbnMgYXJlIG9ubHkgY2FsbGVkIGZyb20gVGhyZWFkR3JvdXAuCiAgICAgVGhyZWFk
R3JvdXBBZGRSZXN1bHQgYWRkVG9UaHJlYWRHcm91cChjb25zdCBBYnN0cmFjdExvY2tlciYgdGhy
ZWFkR3JvdXBMb2NrZXIsIFRocmVhZEdyb3VwJik7CkBAIC0yODAsOSArMjkyLDExIEBAIGNsYXNz
IFRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKICAgICBzdGF0
aWMgdm9pZCBUSFJFQURfU1BFQ0lGSUNfQ0FMTCBkZXN0cnVjdFRMUyh2b2lkKiBkYXRhKTsKIAog
ICAgIEpvaW5hYmxlU3RhdGUgbV9qb2luYWJsZVN0YXRlIHsgSm9pbmFibGUgfTsKLSAgICBib29s
IG1faXNTaHV0dGluZ0Rvd24geyBmYWxzZSB9OwotICAgIGJvb2wgbV9kaWRFeGl0IHsgZmFsc2Ug
fTsKLSAgICBib29sIG1faXNEZXN0cm95ZWRPbmNlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNT
aHV0dGluZ0Rvd24gOiAxOworICAgIGJvb2wgbV9kaWRFeGl0IDogMTsKKyAgICBib29sIG1faXNE
ZXN0cm95ZWRPbmNlIDogMTsKKyAgICBib29sIG1faXNDb21waWxhdGlvblRocmVhZDogMTsKKyAg
ICB1bnNpZ25lZCBtX2djVGhyZWFkVHlwZSA6IDI7CiAKICAgICAvLyBMb2NrICYgUGFya2luZ0xv
dCByZWx5IG9uIFRocmVhZFNwZWNpZmljLiBCdXQgVGhyZWFkIG9iamVjdCBjYW4gYmUgZGVzdHJv
eWVkIGV2ZW4gYWZ0ZXIgVGhyZWFkU3BlY2lmaWMgdGhpbmdzIGFyZSBkZXN0cm95ZWQuCiAgICAg
Ly8gVXNlIFdvcmRMb2NrIHNpbmNlIFdvcmRMb2NrIGRvZXMgbm90IGRlcGVuZCBvbiBUaHJlYWRT
cGVjaWZpYyBhbmQgdGhpcyAiVGhyZWFkIi4KQEAgLTMxMSw2ICszMjUsMTUgQEAgY2xhc3MgVGhy
ZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZD4gewogICAgIHZvaWQqIG1f
YXBpRGF0YSB7IG51bGxwdHIgfTsKIH07CiAKK2lubGluZSBUaHJlYWQ6OlRocmVhZCgpCisgICAg
OiBtX2lzU2h1dHRpbmdEb3duKGZhbHNlKQorICAgICwgbV9kaWRFeGl0KGZhbHNlKQorICAgICwg
bV9pc0Rlc3Ryb3llZE9uY2UoZmFsc2UpCisgICAgLCBtX2lzQ29tcGlsYXRpb25UaHJlYWQoZmFs
c2UpCisgICAgLCBtX2djVGhyZWFkVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR0NUaHJlYWRU
eXBlOjpOb25lKSkKK3sKK30KKwogaW5saW5lIFRocmVhZCogVGhyZWFkOjpjdXJyZW50TWF5QmVO
dWxsKCkKIHsKICNpZiAhSEFWRShGQVNUX1RMUykKQEAgLTM0NSw2ICszNjgsNyBAQCBpbmxpbmUg
VGhyZWFkJiBUaHJlYWQ6OmN1cnJlbnQoKQogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdU
Rjo6VGhyZWFkOwordXNpbmcgV1RGOjpHQ1RocmVhZFR5cGU7CiAKICNpZiBPUyhXSU5ET1dTKQog
dXNpbmcgV1RGOjpUaHJlYWRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nUHJpbWl0aXZlcy5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHJpbWl0aXZl
cy5oCmluZGV4IDI2OTMwMDUzNzBjNzM0MzQ0MTg5ZGFkOWU0MTY5OGExMTZjMmM1NzMuLmI0MmI1
MmZhNTBmNzNiYWQ3NTQxZjIwNDllZDIwNTFkMjE1YzcwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdQcmltaXRpdmVzLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQxLDYgKzQyLDE2
IEBACiAKICNpZiBVU0UoUFRIUkVBRFMpCiAjaW5jbHVkZSA8cHRocmVhZC5oPgorI2lmICFkZWZp
bmVkKFBUSFJFQURfS0VZU19NQVgpCisvLyBQVEhSRUFEX0tFWVNfTUFYIGlzIG5vdCBkZWZpbmVk
IGluIGJpb25pYyBub3IgaW4gSHVyZCwgc28gZXhwbGljaXRseSBkZWZpbmUgaXQgaGVyZS4KKyNk
ZWZpbmUgUFRIUkVBRF9LRVlTX01BWCAxMDI0CisjZW5kaWYKKyNlbmRpZgorCisjaWYgT1MoV0lO
RE9XUykgJiYgQ1BVKFg4NikKKyNkZWZpbmUgVEhSRUFEX1NQRUNJRklDX0NBTEwgX19zdGRjYWxs
CisjZWxzZQorI2RlZmluZSBUSFJFQURfU1BFQ0lGSUNfQ0FMTAogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXVEYgewpAQCAtNTEsMTEgKzYyLDEzIEBAIHVzaW5nIFRocmVhZEZ1bmN0aW9uID0gdm9pZCAo
Kikodm9pZCogYXJndW1lbnQpOwogdXNpbmcgUGxhdGZvcm1UaHJlYWRIYW5kbGUgPSBwdGhyZWFk
X3Q7CiB1c2luZyBQbGF0Zm9ybU11dGV4ID0gcHRocmVhZF9tdXRleF90OwogdXNpbmcgUGxhdGZv
cm1Db25kaXRpb24gPSBwdGhyZWFkX2NvbmRfdDsKK3VzaW5nIFRocmVhZFNwZWNpZmljS2V5ID0g
cHRocmVhZF9rZXlfdDsKICNlbGlmIE9TKFdJTkRPV1MpCiB1c2luZyBUaHJlYWRJZGVudGlmaWVy
ID0gdWludDMyX3Q7CiB1c2luZyBQbGF0Zm9ybVRocmVhZEhhbmRsZSA9IEhBTkRMRTsKIHVzaW5n
IFBsYXRmb3JtTXV0ZXggPSBTUldMT0NLOwogdXNpbmcgUGxhdGZvcm1Db25kaXRpb24gPSBDT05E
SVRJT05fVkFSSUFCTEU7Cit1c2luZyBUaHJlYWRTcGVjaWZpY0tleSA9IERXT1JEOwogI2Vsc2UK
ICNlcnJvciAiTm90IHN1cHBvcnRlZCBwbGF0Zm9ybSIKICNlbmRpZgpAQCAtMTA0LDYgKzExNyw2
NCBAQCBjbGFzcyBUaHJlYWRDb25kaXRpb24gewogI2VuZGlmCiB9OwogCisjaWYgVVNFKFBUSFJF
QURTKQorCitzdGF0aWMgY29uc3RleHByIFRocmVhZFNwZWNpZmljS2V5IEludmFsaWRUaHJlYWRT
cGVjaWZpY0tleSA9IFBUSFJFQURfS0VZU19NQVg7CisKK2lubGluZSB2b2lkIHRocmVhZFNwZWNp
ZmljS2V5Q3JlYXRlKFRocmVhZFNwZWNpZmljS2V5KiBrZXksIHZvaWQgKCpkZXN0cnVjdG9yKSh2
b2lkICopKQoreworICAgIGludCBlcnJvciA9IHB0aHJlYWRfa2V5X2NyZWF0ZShrZXksIGRlc3Ry
dWN0b3IpOworICAgIGlmIChlcnJvcikKKyAgICAgICAgQ1JBU0goKTsKK30KKworaW5saW5lIHZv
aWQgdGhyZWFkU3BlY2lmaWNLZXlEZWxldGUoVGhyZWFkU3BlY2lmaWNLZXkga2V5KQoreworICAg
IGludCBlcnJvciA9IHB0aHJlYWRfa2V5X2RlbGV0ZShrZXkpOworICAgIGlmIChlcnJvcikKKyAg
ICAgICAgQ1JBU0goKTsKK30KKworaW5saW5lIHZvaWQgdGhyZWFkU3BlY2lmaWNTZXQoVGhyZWFk
U3BlY2lmaWNLZXkga2V5LCB2b2lkKiB2YWx1ZSkKK3sKKyAgICBwdGhyZWFkX3NldHNwZWNpZmlj
KGtleSwgdmFsdWUpOworfQorCitpbmxpbmUgdm9pZCogdGhyZWFkU3BlY2lmaWNHZXQoVGhyZWFk
U3BlY2lmaWNLZXkga2V5KQoreworICAgIHJldHVybiBwdGhyZWFkX2dldHNwZWNpZmljKGtleSk7
Cit9CisKKyNlbGlmIE9TKFdJTkRPV1MpCisKK3N0YXRpYyBjb25zdGV4cHIgVGhyZWFkU3BlY2lm
aWNLZXkgSW52YWxpZFRocmVhZFNwZWNpZmljS2V5ID0gRkxTX09VVF9PRl9JTkRFWEVTOworCitp
bmxpbmUgdm9pZCB0aHJlYWRTcGVjaWZpY0tleUNyZWF0ZShUaHJlYWRTcGVjaWZpY0tleSoga2V5
LCB2b2lkIChUSFJFQURfU1BFQ0lGSUNfQ0FMTCAqZGVzdHJ1Y3Rvcikodm9pZCAqKSkKK3sKKyAg
ICBEV09SRCBmbHNLZXkgPSBGbHNBbGxvYyhkZXN0cnVjdG9yKTsKKyAgICBpZiAoZmxzS2V5ID09
IEZMU19PVVRfT0ZfSU5ERVhFUykKKyAgICAgICAgQ1JBU0goKTsKKworICAgICprZXkgPSBmbHNL
ZXk7Cit9CisKK2lubGluZSB2b2lkIHRocmVhZFNwZWNpZmljS2V5RGVsZXRlKFRocmVhZFNwZWNp
ZmljS2V5IGtleSkKK3sKKyAgICBGbHNGcmVlKGtleSk7Cit9CisKK2lubGluZSB2b2lkIHRocmVh
ZFNwZWNpZmljU2V0KFRocmVhZFNwZWNpZmljS2V5IGtleSwgdm9pZCogZGF0YSkKK3sKKyAgICBG
bHNTZXRWYWx1ZShrZXksIGRhdGEpOworfQorCitpbmxpbmUgdm9pZCogdGhyZWFkU3BlY2lmaWNH
ZXQoVGhyZWFkU3BlY2lmaWNLZXkga2V5KQoreworICAgIHJldHVybiBGbHNHZXRWYWx1ZShrZXkp
OworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6TXV0ZXg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vVGhyZWFkU3BlY2lmaWNXaW4uY3BwIGIv
U291cmNlL1dURi93dGYvd2luL1RocmVhZFNwZWNpZmljV2luLmNwcAppbmRleCAyYThlZjMyYzBh
ZjNjNjI2Njc4N2ZhMGU4OTQ0OTY1NmQxMTUwMDFmLi5kMTFjZWJmZTMxY2VkNmNiZGVhYjcxMmY2
MjE3MmIyNTdjMjE1NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vVGhyZWFkU3Bl
Y2lmaWNXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9UaHJlYWRTcGVjaWZpY1dpbi5j
cHAKQEAgLTM0LDcgKzM0LDcgQEAgbG9uZyYgZmxzS2V5Q291bnQoKQogCiBEV09SRCogZmxzS2V5
cygpCiB7Ci0gICAgc3RhdGljIERXT1JEIGtleXNba01heEZsc0tleVNpemVdOworICAgIHN0YXRp
YyBEV09SRCBrZXlzW21heEZsc0tleVNpemVdOwogICAgIHJldHVybiBrZXlzOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXgg
NWIzNGVhZjBkNGViYmY5MjdiY2ZkNWM2ZWE4ZDZmYjg3OWE0MDA2Zi4uMGM3YWMxNzRkNjg5NGFl
OWVhZTI1NThiYTJmZmZkNDU0YjhkOTY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtNzcsNyArNzcsNyBAQCBJREJEYXRhYmFz
ZTo6fklEQkRhdGFiYXNlKCkKIAogYm9vbCBJREJEYXRhYmFzZTo6aGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJl
bnQoKSB8fCBtYXlCZUdDVGhyZWFkKCkpOworICAgIEFTU0VSVCgmb3JpZ2luVGhyZWFkKCkgPT0g
JlRocmVhZDo6Y3VycmVudCgpIHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKIAogICAgIGlm
IChtX2Nsb3NlZEluU2VydmVyIHx8IGlzQ29udGV4dFN0b3BwZWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcAppbmRleCBhYTc1NDNhMWEzZDRlNTIzOTQ2OTFhOTQ3ZTFjY2RjNDViZWNhNjliLi43OTYz
NWFhMjI0ZjRkYmFmYWQ5NTAwOTkyZWNmZGI5Nzk0ZjkwOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMjY3LDcgKzI2Nyw3IEBA
IGJvb2wgSURCUmVxdWVzdDo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0
CiAKIGJvb2wgSURCUmVxdWVzdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICBB
U1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSB8fCBtYXlCZUdDVGhy
ZWFkKCkpOworICAgIEFTU0VSVCgmb3JpZ2luVGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgp
IHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKICAgICByZXR1cm4gIW1fY29udGV4dFN0b3Bw
ZWQgJiYgbV9oYXNQZW5kaW5nQWN0aXZpdHk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCBjYjAzOTdjNDhjNjA4
OTYyNmQ4ZjcwYjViNWM4YjUxMDBhZDdmOTY3Li5iMTEyM2U5ZTE3NjVkM2FlMWJkODcxMDU2OTEz
Mzk4OTkzZjlmNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0zMzEsNyArMzMxLDcgQEAgYm9vbCBJREJUcmFuc2Fj
dGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAKIGJvb2wgSURC
VHJhbnNhY3Rpb246Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCZt
X2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkgfHwgbWF5QmVH
Q1RocmVhZCgpKTsKKyAgICBBU1NFUlQoJm1fZGF0YWJhc2UtPm9yaWdpblRocmVhZCgpID09ICZU
aHJlYWQ6OmN1cnJlbnQoKSB8fCBUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSk7CiAgICAgcmV0dXJu
ICFtX2NvbnRleHRTdG9wcGVkICYmIG1fc3RhdGUgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0
YXRlOjpGaW5pc2hlZDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367906</attachid>
            <date>2019-04-21 02:50:27 -0700</date>
            <delta_ts>2019-05-13 12:12:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197146-20190421025026.patch</filename>
            <type>text/plain</type>
            <size>31875</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MTFhNzcwZGJlYzZlYjI0NTkyOTEzYzIyMzUwNTQ1NjY2NjlkNmY2Li5mNzJiYzYxNzU4NjIxYTdi
Nzk5NjVlOTE1MThkZjcxMTc1NjZmMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOS0wNC0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtXVEZdIFNpbXBsaWZ5IEdDVGhyZWFkIGFuZCBDb21waWxhdGlvblRocmVh
ZCBmbGFncyBieSBhZGRpbmcgdGhlbSB0byBXVEY6OlRocmVhZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEhlYXA6OlRocmVhZCB0byBIZWFw
OjpIZWFwVGhyZWFkIHRvIHJlbW92ZSBjb25mbGljdCBiZXR3ZWVuIFdURjo6VGhyZWFkLgorCisg
ICAgICAgICogaGVhcC9BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
QWxpZ25lZE1lbW9yeUFsbG9jYXRvcjo6cmVnaXN0ZXJEaXJlY3RvcnkpOgorICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OkhlYXBUaHJlYWQ6OkhlYXBUaHJlYWQp
OgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVuQ3Vy
cmVudFBoYXNlKToKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVuQmVnaW5QaGFzZSk6CisgICAgICAg
IChKU0M6OkhlYXA6OnJlc3VtZVRoZVBlcmlwaGVyeSk6CisgICAgICAgIChKU0M6OkhlYXA6OnJl
cXVlc3RDb2xsZWN0aW9uKToKKyAgICAgICAgKEpTQzo6SGVhcDo6aXNDdXJyZW50VGhyZWFkQnVz
eSk6CisgICAgICAgIChKU0M6OkhlYXA6Om5vdGlmeUlzU2FmZVRvQ29sbGVjdCk6CisgICAgICAg
IChKU0M6OkhlYXA6OlRocmVhZDo6VGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0hl
YXAuaDoKKyAgICAgICAgKiBoZWFwL0hlYXBJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkhlYXA6
OmluY3JlbWVudERlZmVycmFsRGVwdGgpOgorICAgICAgICAoSlNDOjpIZWFwOjpkZWNyZW1lbnRE
ZWZlcnJhbERlcHRoKToKKyAgICAgICAgKEpTQzo6SGVhcDo6ZGVjcmVtZW50RGVmZXJyYWxEZXB0
aEFuZEdDSWZOZWVkZWQpOgorICAgICAgICAqIGhlYXAvTWFya2VkU3BhY2UuY3BwOgorICAgICAg
ICAoSlNDOjpNYXJrZWRTcGFjZTo6cHJlcGFyZUZvckFsbG9jYXRpb24pOgorCiAyMDE5LTA0LTIw
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgc3VwcHJlc3Mgd2FybmluZ3MgaW4gbm9uIERhcndpbiBlbnZpcm9ubWVudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNWMy
OWIyMGRiMDhkMjE3MTBhMGNiMGRjYzczMjFkZDU2OGNkZDVhMy4uZTgwMDI3ZDAyMjYzOWQyMmJm
MWU1ZGE0OTY3ZWJkYzdmYzI5MThhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0wNC0yMSAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtXVEZdIFNpbXBs
aWZ5IEdDVGhyZWFkIGFuZCBDb21waWxhdGlvblRocmVhZCBmbGFncyBieSBhZGRpbmcgdGhlbSB0
byBXVEY6OlRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU2luY2UgR0NUaHJlYWQgYW5kIENvbXBpbGF0aW9uVGhyZWFkIGZsYWdzIGV4aXN0IGlu
IFdURiwgd2UgcHV0IHRoZXNlIGZsYWdzIGludG8gV1RGOjpUaHJlYWQgZGlyZWN0bHkgaW5zdGVh
ZCBvZiBob2xkaW5nIHRoZW0gaW4gVGhyZWFkU3BlY2lmaWM8Pi4KKyAgICAgICAgQW5kIHRoaXMg
cGF0Y2ggcmVtb3ZlcyBkZXBlbmRlbmN5IGZyb20gVGhyZWFkaW5nLmggdG8gVGhyZWFkU3BlY2lm
aWMuaC4gVGhyZWFkU3BlY2lmaWMuaCdzIE9TIHRocmVhZGluZyBwcmltaXRpdmVzIGFyZSBtb3Zl
ZCB0byBUaHJlYWRpbmdQcmltaXRpdmVzLmgsCisgICAgICAgIGFuZCBUaHJlYWRpbmcuaCByZWxp
ZXMgb24gaXQgaW5zdGVhZC4KKworICAgICAgICAqIHd0Zi9Db21waWxhdGlvblRocmVhZC5jcHA6
CisgICAgICAgIChXVEY6OmlzQ29tcGlsYXRpb25UaHJlYWQpOgorICAgICAgICAoV1RGOjppbml0
aWFsaXplQ29tcGlsYXRpb25UaHJlYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6ZXhjaGFu
Z2VJc0NvbXBpbGF0aW9uVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvQ29tcGlsYXRp
b25UaHJlYWQuaDoKKyAgICAgICAgKFdURjo6Q29tcGlsYXRpb25TY29wZTo6Q29tcGlsYXRpb25T
Y29wZSk6CisgICAgICAgIChXVEY6OkNvbXBpbGF0aW9uU2NvcGU6On5Db21waWxhdGlvblNjb3Bl
KToKKyAgICAgICAgKFdURjo6Q29tcGlsYXRpb25TY29wZTo6bGVhdmVFYXJseSk6CisgICAgICAg
ICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZCk6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgorICAgICAgICAoV1RG
Ojppbml0aWFsaXplR0NUaHJlYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6cmVnaXN0ZXJH
Q1RocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Om1heUJlR0NUaHJlYWQpOiBEZWxldGVk
LgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3RmL1RocmVhZFNwZWNp
ZmljLmg6CisgICAgICAgIChXVEY6OmNhbkJlR0NUaHJlYWQ+OjpUaHJlYWRTcGVjaWZpYyk6Cisg
ICAgICAgIChXVEY6OmNhbkJlR0NUaHJlYWQ+OjpzZXQpOgorICAgICAgICAoV1RGOjp0aHJlYWRT
cGVjaWZpY0tleUNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OnRocmVhZFNwZWNpZmlj
S2V5RGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6dGhyZWFkU3BlY2lmaWNTZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjp0aHJlYWRTcGVjaWZpY0dldCk6IERlbGV0ZWQuCisgICAg
ICAgICogd3RmL1RocmVhZGluZy5jcHA6CisgICAgICAgIChXVEY6OlRocmVhZDo6ZXhjaGFuZ2VJ
c0NvbXBpbGF0aW9uVGhyZWFkKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjpyZWdpc3RlckdDVGhy
ZWFkKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjptYXlCZUdDVGhyZWFkKToKKyAgICAgICAgKiB3
dGYvVGhyZWFkaW5nLmg6CisgICAgICAgIChXVEY6OlRocmVhZDo6aXNDb21waWxhdGlvblRocmVh
ZCBjb25zdCk6CisgICAgICAgIChXVEY6OlRocmVhZDo6Z2NUaHJlYWRUeXBlIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6VGhyZWFkOjpqb2luYWJsZVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdURjo6
VGhyZWFkOjpoYXNFeGl0ZWQgY29uc3QpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OlRocmVhZCk6
CisgICAgICAgIChXVEY6OlRocmVhZDo6am9pbmFibGVTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OlRocmVhZDo6aGFzRXhpdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFk
aW5nUHJpbWl0aXZlcy5oOgorICAgICAgICAoV1RGOjp0aHJlYWRTcGVjaWZpY0tleUNyZWF0ZSk6
CisgICAgICAgIChXVEY6OnRocmVhZFNwZWNpZmljS2V5RGVsZXRlKToKKyAgICAgICAgKFdURjo6
dGhyZWFkU3BlY2lmaWNTZXQpOgorICAgICAgICAoV1RGOjp0aHJlYWRTcGVjaWZpY0dldCk6Cisg
ICAgICAgICogd3RmL3dpbi9UaHJlYWRTcGVjaWZpY1dpbi5jcHA6CisgICAgICAgIChXVEY6OmZs
c0tleXMpOgorCiAyMDE5LTA0LTE5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEhhc2hUYWJsZTo6cmVtb3ZlSWYgYWx3YXlzIHNocmlua3MgdGhlIGhhc2ggdGFi
bGUgYnkgaGFsZiBldmVuIGlmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEy
ZDQ1NGY4OTE5M2VkYjdlMWI3ZWYwZWZmYTI2NmMzNDIxMjdlY2UuLjYzNTMwMmU3NWQyZjllNGUx
NWEzNjZlMzRlNjlmMzYxMzg0MDczZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
OS0wNC0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtX
VEZdIFNpbXBsaWZ5IEdDVGhyZWFkIGFuZCBDb21waWxhdGlvblRocmVhZCBmbGFncyBieSBhZGRp
bmcgdGhlbSB0byBXVEY6OlRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb246Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisKIDIwMTktMDQtMjAgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI0MzEzNyk6IFNWR1ZpZXdFbGVtZW50LnZpZXdUYXJnZXQgc2hvdWxkIG5vdCByZXR1cm4gYSBu
ZXcgb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGlnbmVk
TWVtb3J5QWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsaWduZWRN
ZW1vcnlBbGxvY2F0b3IuY3BwCmluZGV4IDlmYjZmMjJlYjBlZWI2MDUwNjViMDE2OWFmODkxYmUx
ZGI1MzE4MDAuLmU3YzkzYzI2MzY3OTc3MGIyZDAxZGYyZGUwYmZlY2ZmODZmMWNjMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsaWduZWRNZW1vcnlBbGxvY2F0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsaWduZWRNZW1vcnlBbGxvY2F0
b3IuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgQWxpZ25lZE1lbW9yeUFsbG9jYXRvcjo6cmVn
aXN0ZXJEaXJlY3RvcnkoQmxvY2tEaXJlY3RvcnkqIGRpcmVjdG9yeSkKICAgICBSRUxFQVNFX0FT
U0VSVCghZGlyZWN0b3J5LT5uZXh0RGlyZWN0b3J5SW5BbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkp
OwogICAgIAogICAgIGlmIChtX2RpcmVjdG9yaWVzLmlzRW1wdHkoKSkgewotICAgICAgICBBU1NF
UlQoIW1heUJlR0NUaHJlYWQoKSB8fCBkaXJlY3RvcnktPmhlYXAoKS0+d29ybGRJc1N0b3BwZWQo
KSk7CisgICAgICAgIEFTU0VSVCghVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkgfHwgZGlyZWN0b3J5
LT5oZWFwKCktPndvcmxkSXNTdG9wcGVkKCkpOwogICAgICAgICBmb3IgKFN1YnNwYWNlKiBzdWJz
cGFjZSA9IG1fc3Vic3BhY2VzLmZpcnN0KCk7IHN1YnNwYWNlOyBzdWJzcGFjZSA9IHN1YnNwYWNl
LT5uZXh0U3Vic3BhY2VJbkFsaWduZWRNZW1vcnlBbGxvY2F0b3IoKSkKICAgICAgICAgICAgIHN1
YnNwYWNlLT5kaWRDcmVhdGVGaXJzdERpcmVjdG9yeShkaXJlY3RvcnkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggNDk1M2FjMjU5MjIzZjMyYTFhMGFkNmU5NjE4
MmZmYmMxNmFhYTUyMi4uY2EwOWUxMjhjYTU1YzE5OTY2OTk1OTg1MGQ1ZTg5ZjdiNzEyNmQ0MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBib29s
IGlzVmFsaWRTaGFyZWRJbnN0YW5jZVRocmVhZFN0YXRlKFZNKiB2bSkKIAogYm9vbCBpc1ZhbGlk
VGhyZWFkU3RhdGUoVk0qIHZtKQogewotICAgIGlmICh2bS0+YXRvbWljU3RyaW5nVGFibGUoKSAh
PSBXVEY6OlRocmVhZDo6Y3VycmVudCgpLmF0b21pY1N0cmluZ1RhYmxlKCkpCisgICAgaWYgKHZt
LT5hdG9taWNTdHJpbmdUYWJsZSgpICE9IFRocmVhZDo6Y3VycmVudCgpLmF0b21pY1N0cmluZ1Rh
YmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICh2bS0+aXNTaGFyZWRJbnN0
YW5jZSgpICYmICFpc1ZhbGlkU2hhcmVkSW5zdGFuY2VUaHJlYWRTdGF0ZSh2bSkpCkBAIC0yMzEs
OSArMjMxLDkgQEAgY2xhc3MgVGltaW5nU2NvcGUgewogCiB9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKIAotY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CitjbGFz
cyBIZWFwOjpIZWFwVGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6Ci0g
ICAgVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEhlYXAmIGhlYXApCisgICAg
SGVhcFRocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBIZWFwJiBoZWFwKQogICAg
ICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGhlYXAubV90aHJlYWRMb2NrLCBoZWFwLm1f
dGhyZWFkQ29uZGl0aW9uLmNvcHlSZWYoKSkKICAgICAgICAgLCBtX2hlYXAoaGVhcCkKICAgICB7
CkBAIC0yNjQsNyArMjY0LDcgQEAgY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRp
Y1RocmVhZCB7CiAgICAgCiAgICAgdm9pZCB0aHJlYWREaWRTdGFydCgpIG92ZXJyaWRlCiAgICAg
ewotICAgICAgICBXVEY6OnJlZ2lzdGVyR0NUaHJlYWQoR0NUaHJlYWRUeXBlOjpNYWluKTsKKyAg
ICAgICAgVGhyZWFkOjpyZWdpc3RlckdDVGhyZWFkKEdDVGhyZWFkVHlwZTo6TWFpbik7CiAgICAg
fQogCiBwcml2YXRlOgpAQCAtMzIzLDcgKzMyMyw3IEBAIEhlYXA6OkhlYXAoVk0qIHZtLCBIZWFw
VHlwZSBoZWFwVHlwZSkKICAgICBtX21heEVkZW5TaXplV2hlbkNyaXRpY2FsID0gbWVtb3J5QWJv
dmVDcml0aWNhbFRocmVzaG9sZCAvIDQ7CiAKICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV90aHJl
YWRMb2NrKTsKLSAgICBtX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWQobG9ja2VyLCAqdGhp
cykpOworICAgIG1fdGhyZWFkID0gYWRvcHRSZWYobmV3IEhlYXBUaHJlYWQobG9ja2VyLCAqdGhp
cykpOwogfQogCiBIZWFwOjp+SGVhcCgpCkBAIC0xMTY5LDcgKzExNjksNyBAQCBhdXRvIEhlYXA6
OnJ1bkN1cnJlbnRQaGFzZShHQ0NvbmR1Y3RvciBjb25uLCBDdXJyZW50VGhyZWFkU3RhdGUqIGN1
cnJlbnRUaHJlYWRTdAogewogICAgIGNoZWNrQ29ubihjb25uKTsKICAgICBtX2N1cnJlbnRUaHJl
YWRTdGF0ZSA9IGN1cnJlbnRUaHJlYWRTdGF0ZTsKLSAgICBtX2N1cnJlbnRUaHJlYWQgPSAmV1RG
OjpUaHJlYWQ6OmN1cnJlbnQoKTsKKyAgICBtX2N1cnJlbnRUaHJlYWQgPSAmVGhyZWFkOjpjdXJy
ZW50KCk7CiAgICAgCiAgICAgaWYgKGNvbm4gPT0gR0NDb25kdWN0b3I6Ok11dGF0b3IpCiAgICAg
ICAgIHNhbml0aXplU3RhY2tGb3JWTSh2bSgpKTsKQEAgLTEyOTgsNyArMTI5OCw3IEBAIE5FVkVS
X0lOTElORSBib29sIEhlYXA6OnJ1bkJlZ2luUGhhc2UoR0NDb25kdWN0b3IgY29ubikKICAgICAg
ICAgICAgICAgICAgICAgc2xvdFZpc2l0b3IgPSBtX2F2YWlsYWJsZVBhcmFsbGVsU2xvdFZpc2l0
b3JzLnRha2VMYXN0KCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFdURjo6cmVnaXN0
ZXJHQ1RocmVhZChHQ1RocmVhZFR5cGU6OkhlbHBlcik7CisgICAgICAgICAgICBUaHJlYWQ6OnJl
Z2lzdGVyR0NUaHJlYWQoR0NUaHJlYWRUeXBlOjpIZWxwZXIpOwogCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgUGFyYWxsZWxNb2RlRW5hYmxlciBwYXJhbGxlbE1vZGVFbmFibGVyKCpz
bG90VmlzaXRvcik7CkBAIC0xNjk1LDcgKzE2OTUsNyBAQCBORVZFUl9JTkxJTkUgdm9pZCBIZWFw
OjpyZXN1bWVUaGVQZXJpcGhlcnkoKQogICAgICAgICAgICAgICAgIHNsb3RWaXNpdG9yc1RvVXBk
YXRlLnRha2VMYXN0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgV1RGOjpU
aHJlYWQ6OnlpZWxkKCk7CisgICAgICAgIFRocmVhZDo6eWllbGQoKTsKICAgICB9CiAgICAgCiAg
ICAgZm9yIChTbG90VmlzaXRvciogc2xvdFZpc2l0b3IgOiBzbG90VmlzaXRvcnNUb1VwZGF0ZSkK
QEAgLTIxMDUsNyArMjEwNSw3IEBAIEhlYXA6OlRpY2tldCBIZWFwOjpyZXF1ZXN0Q29sbGVjdGlv
bihHQ1JlcXVlc3QgcmVxdWVzdCkKICAgICBzdG9wSWZOZWNlc3NhcnkoKTsKICAgICAKICAgICBB
U1NFUlQodm0oKS0+Y3VycmVudFRocmVhZElzSG9sZGluZ0FQSUxvY2soKSk7Ci0gICAgUkVMRUFT
RV9BU1NFUlQodm0oKS0+YXRvbWljU3RyaW5nVGFibGUoKSA9PSBXVEY6OlRocmVhZDo6Y3VycmVu
dCgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKHZtKCktPmF0b21p
Y1N0cmluZ1RhYmxlKCkgPT0gVGhyZWFkOjpjdXJyZW50KCkuYXRvbWljU3RyaW5nVGFibGUoKSk7
CiAgICAgCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fdGhyZWFkTG9jayk7CiAgICAgLy8gV2Ug
bWF5IGJlIGFibGUgdG8gc3RlYWwgdGhlIGNvbm4uIFRoYXQgb25seSB3b3JrcyBpZiB0aGUgY29s
bGVjdG9yIGlzIGRlZmluaXRlbHkgbm90IHJ1bm5pbmcKQEAgLTI1NDgsNyArMjU0OCw3IEBAIHZv
aWQgSGVhcDo6d3JpdGVCYXJyaWVyU2xvd1BhdGgoY29uc3QgSlNDZWxsKiBmcm9tKQogCiBib29s
IEhlYXA6OmlzQ3VycmVudFRocmVhZEJ1c3koKQogewotICAgIHJldHVybiBtYXlCZUdDVGhyZWFk
KCkgfHwgbXV0YXRvclN0YXRlKCkgIT0gTXV0YXRvclN0YXRlOjpSdW5uaW5nOworICAgIHJldHVy
biBUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSB8fCBtdXRhdG9yU3RhdGUoKSAhPSBNdXRhdG9yU3Rh
dGU6OlJ1bm5pbmc7CiB9CiAKIHZvaWQgSGVhcDo6cmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkKHNp
emVfdCBzaXplKQpAQCAtMjg2Myw3ICsyODYzLDcgQEAgdm9pZCBIZWFwOjpub3RpZnlJc1NhZmVU
b0NvbGxlY3QoKQogICAgIG1faXNTYWZlVG9Db2xsZWN0ID0gdHJ1ZTsKICAgICAKICAgICBpZiAo
T3B0aW9uczo6Y29sbGVjdENvbnRpbnVvdXNseSgpKSB7Ci0gICAgICAgIG1fY29sbGVjdENvbnRp
bnVvdXNseVRocmVhZCA9IFdURjo6VGhyZWFkOjpjcmVhdGUoCisgICAgICAgIG1fY29sbGVjdENv
bnRpbnVvdXNseVRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKAogICAgICAgICAgICAgIkpTQyBERUJV
RyBDb250aW51b3VzIEdDIiwKICAgICAgICAgICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICAg
ICAgTW9ub3RvbmljVGltZSBpbml0aWFsVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4IDM4ZjUzMjFhZDlkNzdjMzg1YjVlYjJmOWNhOTUx
Mjg3OTgzMGE3YTYuLjBkMDk5OTlmNmUxZDllNmIwNjAzZjhlMWNhMTM2MTFkMGM1NmMzY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTQyNiw4ICs0MjYsOCBAQCBjbGFzcyBIZWFw
IHsKICAgICBmcmllbmQgY2xhc3MgVk07CiAgICAgZnJpZW5kIGNsYXNzIFdlYWtTZXQ7CiAKLSAg
ICBjbGFzcyBUaHJlYWQ7Ci0gICAgZnJpZW5kIGNsYXNzIFRocmVhZDsKKyAgICBjbGFzcyBIZWFw
VGhyZWFkOworICAgIGZyaWVuZCBjbGFzcyBIZWFwVGhyZWFkOwogCiAgICAgc3RhdGljIGNvbnN0
IHNpemVfdCBtaW5FeHRyYU1lbW9yeSA9IDI1NjsKICAgICAKQEAgLTcyNyw3ICs3MjcsNyBAQCBj
bGFzcyBIZWFwIHsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3RocmVhZENv
bmRpdGlvbjsgLy8gVGhlIG11dGF0b3IgbXVzdCBub3Qgd2FpdCBvbiB0aGlzLiBJdCB3b3VsZCBj
YXVzZSBhIGRlYWRsb2NrLgogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFkOwog
Ci0gICAgUmVmUHRyPFdURjo6VGhyZWFkPiBtX2NvbGxlY3RDb250aW51b3VzbHlUaHJlYWQgeyBu
dWxscHRyIH07CisgICAgUmVmUHRyPFRocmVhZD4gbV9jb2xsZWN0Q29udGludW91c2x5VGhyZWFk
IHsgbnVsbHB0ciB9OwogICAgIAogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0R0NTdGFydFRpbWU7
CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RHQ0VuZFRpbWU7CkBAIC03MzcsNyArNzM3LDcgQEAg
Y2xhc3MgSGVhcCB7CiAgICAgdWludHB0cl90IG1fYmFycmllcnNFeGVjdXRlZCB7IDAgfTsKICAg
ICAKICAgICBDdXJyZW50VGhyZWFkU3RhdGUqIG1fY3VycmVudFRocmVhZFN0YXRlIHsgbnVsbHB0
ciB9OwotICAgIFdURjo6VGhyZWFkKiBtX2N1cnJlbnRUaHJlYWQgeyBudWxscHRyIH07IC8vIEl0
J3MgT0sgaWYgdGhpcyBiZWNvbWVzIGEgZGFuZ2xpbmcgcG9pbnRlci4KKyAgICBUaHJlYWQqIG1f
Y3VycmVudFRocmVhZCB7IG51bGxwdHIgfTsgLy8gSXQncyBPSyBpZiB0aGlzIGJlY29tZXMgYSBk
YW5nbGluZyBwb2ludGVyLgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB1bnNpZ25l
ZCBtX3ByZWNlbnRBdmFpbGFibGVNZW1vcnlDYWNoZWRDYWxsQ291bnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAppbmRleCAxYjhiMTkyZDVhNzA2NGQ3NzE4MDgxODE4
YTQ3ZTYwZGZkZjM2MmY4Li43ZTc1YmU0MzM3ZGJlNjQyZmM3ZWM1ZWRiMjE4OGJlZDMwMzIxYzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmgKQEAgLTE3MywxOSAr
MTczLDE5IEBAIGlubGluZSB2b2lkIEhlYXA6OnJlbGVhc2VTb29uKHN0ZDo6dW5pcXVlX3B0cjxK
U0NHTGliV3JhcHBlck9iamVjdD4mJiBvYmplY3QpCiAKIGlubGluZSB2b2lkIEhlYXA6OmluY3Jl
bWVudERlZmVycmFsRGVwdGgoKQogewotICAgIEFTU0VSVCghbWF5QmVHQ1RocmVhZCgpIHx8IG1f
d29ybGRJc1N0b3BwZWQpOworICAgIEFTU0VSVCghVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkgfHwg
bV93b3JsZElzU3RvcHBlZCk7CiAgICAgbV9kZWZlcnJhbERlcHRoKys7CiB9CiAKIGlubGluZSB2
b2lkIEhlYXA6OmRlY3JlbWVudERlZmVycmFsRGVwdGgoKQogewotICAgIEFTU0VSVCghbWF5QmVH
Q1RocmVhZCgpIHx8IG1fd29ybGRJc1N0b3BwZWQpOworICAgIEFTU0VSVCghVGhyZWFkOjptYXlC
ZUdDVGhyZWFkKCkgfHwgbV93b3JsZElzU3RvcHBlZCk7CiAgICAgbV9kZWZlcnJhbERlcHRoLS07
CiB9CiAKIGlubGluZSB2b2lkIEhlYXA6OmRlY3JlbWVudERlZmVycmFsRGVwdGhBbmRHQ0lmTmVl
ZGVkKCkKIHsKLSAgICBBU1NFUlQoIW1heUJlR0NUaHJlYWQoKSB8fCBtX3dvcmxkSXNTdG9wcGVk
KTsKKyAgICBBU1NFUlQoIVRocmVhZDo6bWF5QmVHQ1RocmVhZCgpIHx8IG1fd29ybGRJc1N0b3Bw
ZWQpOwogICAgIG1fZGVmZXJyYWxEZXB0aC0tOwogICAgIAogICAgIGlmIChVTkxJS0VMWShtX2Rp
ZERlZmVyR0NXb3JrKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya2VkU3BhY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2Uu
Y3BwCmluZGV4IDdlYmFjMzY0MWI0OTdmM2JiZmE1ZGE0MDZhMjVjZGY3ZjUxYjZhNWYuLmNhMGYx
MjY3MDk4ZDNhMWJhZjFkMmJhZDdiMTlkYTJkNDVhMzNkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIE1hcmtl
ZFNwYWNlOjpzd2VlcExhcmdlQWxsb2NhdGlvbnMoKQogCiB2b2lkIE1hcmtlZFNwYWNlOjpwcmVw
YXJlRm9yQWxsb2NhdGlvbigpCiB7Ci0gICAgQVNTRVJUKCFtYXlCZUdDVGhyZWFkKCkgfHwgbV9o
ZWFwLT53b3JsZElzU3RvcHBlZCgpKTsKKyAgICBBU1NFUlQoIVRocmVhZDo6bWF5QmVHQ1RocmVh
ZCgpIHx8IG1faGVhcC0+d29ybGRJc1N0b3BwZWQoKSk7CiAgICAgZm9yIChTdWJzcGFjZSogc3Vi
c3BhY2UgOiBtX3N1YnNwYWNlcykKICAgICAgICAgc3Vic3BhY2UtPnByZXBhcmVGb3JBbGxvY2F0
aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGF0aW9uVGhyZWFkLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGF0aW9uVGhyZWFkLmNwcAppbmRleCBkYzRmMTYxMmU0
NTE5ZDhkOTQ4ZmViM2M5NDZmMmIwYmNiN2RkYzI1Li4xNjJjNTA0OWIyZDg3MzJiZGRiODFlMjQw
MjRmYzQzMWM1NGZlZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Db21waWxhdGlvblRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQ29tcGlsYXRpb25UaHJlYWQuY3BwCkBAIC0y
NiwzOCArMjYsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGls
YXRpb25UaHJlYWQuaD4KIAotI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgVGhyZWFkU3BlY2lmaWM8
Ym9vbCwgQ2FuQmVHQ1RocmVhZDo6VHJ1ZT4qIHNfaXNDb21waWxhdGlvblRocmVhZDsKLQotc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZUNvbXBpbGF0aW9uVGhyZWFkcygpCi17Ci0gICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIGluaXRpYWxpemVDb21waWxhdGlvblRocmVhZHNPbmNlRmxhZzsKLSAgICBz
dGQ6OmNhbGxfb25jZShpbml0aWFsaXplQ29tcGlsYXRpb25UaHJlYWRzT25jZUZsYWcsIFtdewot
ICAgICAgICBzX2lzQ29tcGlsYXRpb25UaHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9vbCwg
Q2FuQmVHQ1RocmVhZDo6VHJ1ZT4oKTsKLSAgICB9KTsKLX0KLQogYm9vbCBpc0NvbXBpbGF0aW9u
VGhyZWFkKCkKIHsKLSAgICBpZiAoIXNfaXNDb21waWxhdGlvblRocmVhZCkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmICghc19pc0NvbXBpbGF0aW9uVGhyZWFkLT5pc1NldCgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuICoqc19pc0NvbXBpbGF0aW9uVGhyZWFkOwot
fQotCi1ib29sIGV4Y2hhbmdlSXNDb21waWxhdGlvblRocmVhZChib29sIG5ld1ZhbHVlKQotewot
ICAgIGluaXRpYWxpemVDb21waWxhdGlvblRocmVhZHMoKTsKLSAgICBib29sIG9sZFZhbHVlID0g
aXNDb21waWxhdGlvblRocmVhZCgpOwotICAgICoqc19pc0NvbXBpbGF0aW9uVGhyZWFkID0gbmV3
VmFsdWU7Ci0gICAgcmV0dXJuIG9sZFZhbHVlOworICAgIHJldHVybiBUaHJlYWQ6OmN1cnJlbnQo
KS5pc0NvbXBpbGF0aW9uVGhyZWFkKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvQ29tcGlsYXRpb25UaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3Rm
L0NvbXBpbGF0aW9uVGhyZWFkLmgKaW5kZXggNWQ1ZTE3NGE4MDJmYmJjODYwZDc3OGExYmIxMDIz
Mzc1ZWNkZDViOS4uMDZlNzE2MGI4MDJkYjIxMzJiODdmMDNlMTNjZTc3ZjM0NjEyMjYxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29tcGlsYXRpb25UaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Db21waWxhdGlvblRocmVhZC5oCkBAIC0yNSwyNSArMjUsMjUgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLW5hbWVzcGFjZSBXVEYgeworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAot
V1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZXhjaGFuZ2VJc0NvbXBpbGF0aW9uVGhyZWFkKGJvb2wg
bmV3VmFsdWUpOworbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIENvbXBpbGF0aW9uU2NvcGUgewog
cHVibGljOgogICAgIENvbXBpbGF0aW9uU2NvcGUoKQotICAgICAgICA6IG1fb2xkVmFsdWUoZXhj
aGFuZ2VJc0NvbXBpbGF0aW9uVGhyZWFkKHRydWUpKQorICAgICAgICA6IG1fb2xkVmFsdWUoVGhy
ZWFkOjpleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJlYWQodHJ1ZSkpCiAgICAgewogICAgIH0KICAg
ICAKICAgICB+Q29tcGlsYXRpb25TY29wZSgpCiAgICAgewotICAgICAgICBleGNoYW5nZUlzQ29t
cGlsYXRpb25UaHJlYWQobV9vbGRWYWx1ZSk7CisgICAgICAgIFRocmVhZDo6ZXhjaGFuZ2VJc0Nv
bXBpbGF0aW9uVGhyZWFkKG1fb2xkVmFsdWUpOwogICAgIH0KICAgICAKICAgICB2b2lkIGxlYXZl
RWFybHkoKQogICAgIHsKLSAgICAgICAgZXhjaGFuZ2VJc0NvbXBpbGF0aW9uVGhyZWFkKG1fb2xk
VmFsdWUpOworICAgICAgICBUaHJlYWQ6OmV4Y2hhbmdlSXNDb21waWxhdGlvblRocmVhZChtX29s
ZFZhbHVlKTsKICAgICB9CiBwcml2YXRlOgogICAgIGJvb2wgbV9vbGRWYWx1ZTsKQEAgLTUyLDQg
KzUyLDMgQEAgY2xhc3MgQ29tcGlsYXRpb25TY29wZSB7CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAog
dXNpbmcgV1RGOjpDb21waWxhdGlvblNjb3BlOwotdXNpbmcgV1RGOjpleGNoYW5nZUlzQ29tcGls
YXRpb25UaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IDc4MzEyMDE1MzY4NTIzODExNjM4
ZWFlOTM0NjJhMWVlM2IyZDU0ZjIuLmZjZTdiNDZhNTJiZGJlYzRhNjBkNTQxMDliNDZhMDY2M2U2
MGJkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIHZvaWQgaW5pdGlh
bGl6ZU1haW5UaHJlYWQoKQogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVLZXksIFtdIHsK
ICAgICAgICAgaW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgICAgICBpbml0aWFsaXplTWFpblRo
cmVhZFBsYXRmb3JtKCk7Ci0gICAgICAgIGluaXRpYWxpemVHQ1RocmVhZHMoKTsKICAgICB9KTsK
IH0KIApAQCAtNjgsNyArNjcsNiBAQCB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNz
TWFpblRocmVhZCgpCiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUtleSwgW10gewogICAg
ICAgICBpbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgICAgIGluaXRpYWxpemVNYWluVGhyZWFk
VG9Qcm9jZXNzTWFpblRocmVhZFBsYXRmb3JtKCk7Ci0gICAgICAgIGluaXRpYWxpemVHQ1RocmVh
ZHMoKTsKICAgICB9KTsKIH0KICNlbHNlCkBAIC0xNTcsNDYgKzE1NSwxNCBAQCB2b2lkIHNldE1h
aW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpCiAgICAgICAgIHNjaGVkdWxlRGlz
cGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsKIH0KIAotc3RhdGljIFRocmVhZFNwZWNpZmlj
PE9wdGlvbmFsPEdDVGhyZWFkVHlwZT4sIENhbkJlR0NUaHJlYWQ6OlRydWU+KiBpc0dDVGhyZWFk
OwotCi12b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKQotewotICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBmbGFnOwotICAgIHN0ZDo6Y2FsbF9vbmNlKAotICAgICAgICBmbGFnLAotICAgICAgICBb
XSB7Ci0gICAgICAgICAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPE9wdGlvbmFs
PEdDVGhyZWFkVHlwZT4sIENhbkJlR0NUaHJlYWQ6OlRydWU+KCk7Ci0gICAgICAgIH0pOwotfQot
Ci12b2lkIHJlZ2lzdGVyR0NUaHJlYWQoR0NUaHJlYWRUeXBlIHR5cGUpCi17Ci0gICAgaWYgKCFp
c0dDVGhyZWFkKSB7Ci0gICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGlu
IGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAotICAgICAgICAvLyBNYWluVGhyZWFk
LgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgKippc0dDVGhyZWFkID0gdHlwZTsKLX0K
LQogYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKIHsKLSAgICBpZiAobWF5QmVHQ1RocmVh
ZCgpKQorICAgIGlmIChUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7CiB9CiAKLU9wdGlvbmFsPEdDVGhyZWFk
VHlwZT4gbWF5QmVHQ1RocmVhZCgpCi17Ci0gICAgaWYgKCFpc0dDVGhyZWFkKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGlmICghaXNHQ1RocmVhZC0+aXNTZXQoKSkKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1cm4gKippc0dDVGhyZWFkOwotfQotCiB2
b2lkIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0
aW9uKQogewogICAgIGlmIChpc01haW5UaHJlYWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTWFpblRocmVhZC5oIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCmluZGV4IGM4
ZWYxYjUwMzFkNTc1N2QyZDgwZTMxNzIwZmU0ZjBjYjA5YjQwYzIuLjRlNDVjNjg5YTAyMjUwM2Zm
MTg2Mjg2YTA1MTMwZDU3YjRiYzY3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01haW5U
aHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmgKQEAgLTY4LDE3ICs2OCw2
IEBAIGlubGluZSBib29sIGlzV2ViVGhyZWFkKCkgeyByZXR1cm4gaXNNYWluVGhyZWFkKCk7IH0K
IGlubGluZSBib29sIGlzVUlUaHJlYWQoKSB7IHJldHVybiBpc01haW5UaHJlYWQoKTsgfQogI2Vu
ZGlmIC8vIFVTRShXRUJfVEhSRUFEKQogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbml0aWFs
aXplR0NUaHJlYWRzKCk7Ci0KLWVudW0gY2xhc3MgR0NUaHJlYWRUeXBlIHsKLSAgICBNYWluLAot
ICAgIEhlbHBlcgotfTsKLQotdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgR0NUaHJl
YWRUeXBlKTsKLQotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVnaXN0ZXJHQ1RocmVhZChHQ1Ro
cmVhZFR5cGUpOwotV1RGX0VYUE9SVF9QUklWQVRFIE9wdGlvbmFsPEdDVGhyZWFkVHlwZT4gbWF5
QmVHQ1RocmVhZCgpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1Ro
cmVhZCgpOwogCiAvLyBOT1RFOiB0aGVzZSBmdW5jdGlvbnMgYXJlIGludGVybmFsIHRvIHRoZSBj
YWxsT25NYWluVGhyZWFkIGltcGxlbWVudGF0aW9uLgpAQCAtOTgsNyArODcsNiBAQCB2b2lkIGlu
aXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZFBsYXRmb3JtKCk7CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCi11c2luZyBXVEY6OkdDVGhyZWFkVHlwZTsKIHVzaW5nIFdURjo6Y2Fs
bE9uTWFpblRocmVhZDsKIHVzaW5nIFdURjo6Y2FsbE9uTWFpblRocmVhZEFuZFdhaXQ7CiB1c2lu
ZyBXVEY6OmNhbkFjY2Vzc1RocmVhZExvY2FsRGF0YUZvclRocmVhZDsKQEAgLTEwNiw3ICs5NCw2
IEBAIHVzaW5nIFdURjo6aXNNYWluVGhyZWFkOwogdXNpbmcgV1RGOjppc01haW5UaHJlYWRPckdD
VGhyZWFkOwogdXNpbmcgV1RGOjppc1VJVGhyZWFkOwogdXNpbmcgV1RGOjppc1dlYlRocmVhZDsK
LXVzaW5nIFdURjo6bWF5QmVHQ1RocmVhZDsKIHVzaW5nIFdURjo6c2V0TWFpblRocmVhZENhbGxi
YWNrc1BhdXNlZDsKICNpZiBQTEFURk9STShDT0NPQSkKIHVzaW5nIFdURjo6ZGlzcGF0Y2hBc3lu
Y09uTWFpblRocmVhZFdpdGhXZWJUaHJlYWRMb2NrSWZOZWVkZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRTcGVjaWZpYy5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkU3BlY2lm
aWMuaAppbmRleCBiMWYxZjcxMTE3OGEwNzMwZDM2ODQyODc3YWI4ZjRkMjlmYmMyYzQwLi5jNzBk
Zjc0MDIyYWNhYjI2YzUyNzhkNDllMGZhMjY1N2FlMzZiYjVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRTcGVjaWZpYy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNp
ZmljLmgKQEAgLTQ0LDI5ICs0NCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgotCi0jaWYgVVNFKFBUSFJFQURTKQotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLQotI2lmIE9TKEhV
UkQpCi0vLyBQVEhSRUFEX0tFWVNfTUFYIGlzIG5vdCBkZWZpbmVkIGluIGJpb25pYyBub3IgaW4g
SHVyZCwgc28gZXhwbGljaXRseSBkZWZpbmUgaXQgaGVyZS4KLSNkZWZpbmUgUFRIUkVBRF9LRVlT
X01BWCAxMDI0Ci0jZWxzZQotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2VuZGlmCi0KLSNlbGlmIE9T
KFdJTkRPV1MpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2VuZGlmCisjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotI2lmIE9TKFdJTkRPV1MpICYmIENQVShY
ODYpCi0jZGVmaW5lIFRIUkVBRF9TUEVDSUZJQ19DQUxMIF9fc3RkY2FsbAotI2Vsc2UKLSNkZWZp
bmUgVEhSRUFEX1NQRUNJRklDX0NBTEwKLSNlbmRpZgotCiBlbnVtIGNsYXNzIENhbkJlR0NUaHJl
YWQgewogICAgIEZhbHNlLAogICAgIFRydWUKQEAgLTEyOSwzNCArMTEwLDYgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgQ2FuQmVHQ1RocmVhZCBjYW5CZUdDVGhyZWFkID0gQ2FuQmVHQ1RocmVhZDo6
RmFsc2U+IGNsYXNzIFQKIAogI2lmIFVTRShQVEhSRUFEUykKIAotdHlwZWRlZiBwdGhyZWFkX2tl
eV90IFRocmVhZFNwZWNpZmljS2V5OwotCi1zdGF0aWMgY29uc3QgY29uc3RleHByIFRocmVhZFNw
ZWNpZmljS2V5IEludmFsaWRUaHJlYWRTcGVjaWZpY0tleSA9IFBUSFJFQURfS0VZU19NQVg7Ci0K
LWlubGluZSB2b2lkIHRocmVhZFNwZWNpZmljS2V5Q3JlYXRlKFRocmVhZFNwZWNpZmljS2V5KiBr
ZXksIHZvaWQgKCpkZXN0cnVjdG9yKSh2b2lkICopKQotewotICAgIGludCBlcnJvciA9IHB0aHJl
YWRfa2V5X2NyZWF0ZShrZXksIGRlc3RydWN0b3IpOwotICAgIGlmIChlcnJvcikKLSAgICAgICAg
Q1JBU0goKTsKLX0KLQotaW5saW5lIHZvaWQgdGhyZWFkU3BlY2lmaWNLZXlEZWxldGUoVGhyZWFk
U3BlY2lmaWNLZXkga2V5KQotewotICAgIGludCBlcnJvciA9IHB0aHJlYWRfa2V5X2RlbGV0ZShr
ZXkpOwotICAgIGlmIChlcnJvcikKLSAgICAgICAgQ1JBU0goKTsKLX0KLQotaW5saW5lIHZvaWQg
dGhyZWFkU3BlY2lmaWNTZXQoVGhyZWFkU3BlY2lmaWNLZXkga2V5LCB2b2lkKiB2YWx1ZSkKLXsK
LSAgICBwdGhyZWFkX3NldHNwZWNpZmljKGtleSwgdmFsdWUpOwotfQotCi1pbmxpbmUgdm9pZCog
dGhyZWFkU3BlY2lmaWNHZXQoVGhyZWFkU3BlY2lmaWNLZXkga2V5KQotewotICAgIHJldHVybiBw
dGhyZWFkX2dldHNwZWNpZmljKGtleSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQsIENhbkJl
R0NUaHJlYWQgY2FuQmVHQ1RocmVhZD4KIGlubGluZSBUaHJlYWRTcGVjaWZpYzxULCBjYW5CZUdD
VGhyZWFkPjo6VGhyZWFkU3BlY2lmaWMoKQogewpAQCAtMTg1LDM5ICsxMzgsMTEgQEAgaW5saW5l
IHZvaWQgVGhyZWFkU3BlY2lmaWM8VCwgY2FuQmVHQ1RocmVhZD46OnNldEluVExTKERhdGEqIGRh
dGEpCiAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgRkxTIGtleXMgdGhhdCBjYW4gYmUgY3JlYXRl
ZC4gRm9yIHNpbXBsaWZpY2F0aW9uLCB3ZSBhc3N1bWUgdGhhdDoKIC8vIDEpIE9uY2UgdGhlIGlu
c3RhbmNlIG9mIFRocmVhZFNwZWNpZmljPD4gaXMgY3JlYXRlZCwgaXQgd2lsbCBub3QgYmUgZGVz
dHJ1Y3RlZCB1bnRpbCB0aGUgcHJvZ3JhbSBkaWVzLgogLy8gMikgV2UgZG8gbm90IG5lZWQgdG8g
aG9sZCBtYW55IGluc3RhbmNlcyBvZiBUaHJlYWRTcGVjaWZpYzw+IGRhdGEuIFRoaXMgZml4ZWQg
bnVtYmVyIHNob3VsZCBiZSBmYXIgZW5vdWdoLgotY29uc3QgaW50IGtNYXhGbHNLZXlTaXplID0g
MTI4Oworc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4RmxzS2V5U2l6ZSA9IDEyODsKIAogV1RGX0VY
UE9SVF9QUklWQVRFIGxvbmcmIGZsc0tleUNvdW50KCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgRFdP
UkQqIGZsc0tleXMoKTsKIAotdHlwZWRlZiBEV09SRCBUaHJlYWRTcGVjaWZpY0tleTsKLQotc3Rh
dGljIGNvbnN0IGNvbnN0ZXhwciBUaHJlYWRTcGVjaWZpY0tleSBJbnZhbGlkVGhyZWFkU3BlY2lm
aWNLZXkgPSBGTFNfT1VUX09GX0lOREVYRVM7Ci0KLWlubGluZSB2b2lkIHRocmVhZFNwZWNpZmlj
S2V5Q3JlYXRlKFRocmVhZFNwZWNpZmljS2V5KiBrZXksIHZvaWQgKFRIUkVBRF9TUEVDSUZJQ19D
QUxMICpkZXN0cnVjdG9yKSh2b2lkICopKQotewotICAgIERXT1JEIGZsc0tleSA9IEZsc0FsbG9j
KGRlc3RydWN0b3IpOwotICAgIGlmIChmbHNLZXkgPT0gRkxTX09VVF9PRl9JTkRFWEVTKQotICAg
ICAgICBDUkFTSCgpOwotCi0gICAgKmtleSA9IGZsc0tleTsKLX0KLQotaW5saW5lIHZvaWQgdGhy
ZWFkU3BlY2lmaWNLZXlEZWxldGUoVGhyZWFkU3BlY2lmaWNLZXkga2V5KQotewotICAgIEZsc0Zy
ZWUoa2V5KTsKLX0KLQotaW5saW5lIHZvaWQgdGhyZWFkU3BlY2lmaWNTZXQoVGhyZWFkU3BlY2lm
aWNLZXkga2V5LCB2b2lkKiBkYXRhKQotewotICAgIEZsc1NldFZhbHVlKGtleSwgZGF0YSk7Ci19
Ci0KLWlubGluZSB2b2lkKiB0aHJlYWRTcGVjaWZpY0dldChUaHJlYWRTcGVjaWZpY0tleSBrZXkp
Ci17Ci0gICAgcmV0dXJuIEZsc0dldFZhbHVlKGtleSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIENhbkJlR0NUaHJlYWQgY2FuQmVHQ1RocmVhZD4KIGlubGluZSBUaHJlYWRTcGVjaWZpYzxU
LCBjYW5CZUdDVGhyZWFkPjo6VGhyZWFkU3BlY2lmaWMoKQogICAgIDogbV9pbmRleCgtMSkKQEAg
LTIyNyw3ICsxNTIsNyBAQCBpbmxpbmUgVGhyZWFkU3BlY2lmaWM8VCwgY2FuQmVHQ1RocmVhZD46
OlRocmVhZFNwZWNpZmljKCkKICAgICAgICAgQ1JBU0goKTsKIAogICAgIG1faW5kZXggPSBJbnRl
cmxvY2tlZEluY3JlbWVudCgmZmxzS2V5Q291bnQoKSkgLSAxOwotICAgIGlmIChtX2luZGV4ID49
IGtNYXhGbHNLZXlTaXplKQorICAgIGlmIChtX2luZGV4ID49IG1heEZsc0tleVNpemUpCiAgICAg
ICAgIENSQVNIKCk7CiAgICAgZmxzS2V5cygpW21faW5kZXhdID0gZmxzS2V5OwogfQpAQCAtMjc0
LDcgKzE5OSw3IEBAIGlubGluZSB2b2lkIFRIUkVBRF9TUEVDSUZJQ19DQUxMIFRocmVhZFNwZWNp
ZmljPFQsIGNhbkJlR0NUaHJlYWQ+OjpkZXN0cm95KHZvaWQqCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBDYW5CZUdDVGhyZWFkIGNhbkJlR0NUaHJlYWQ+CiBpbmxpbmUgVCogVGhyZWFkU3BlY2lmaWM8
VCwgY2FuQmVHQ1RocmVhZD46OnNldCgpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoY2FuQmVHQ1Ro
cmVhZCA9PSBDYW5CZUdDVGhyZWFkOjpUcnVlIHx8ICFtYXlCZUdDVGhyZWFkKCkpOworICAgIFJF
TEVBU0VfQVNTRVJUKGNhbkJlR0NUaHJlYWQgPT0gQ2FuQmVHQ1RocmVhZDo6VHJ1ZSB8fCAhVGhy
ZWFkOjptYXlCZUdDVGhyZWFkKCkpOwogICAgIEFTU0VSVCghZ2V0KCkpOwogICAgIERhdGEqIGRh
dGEgPSBuZXcgRGF0YSh0aGlzKTsgLy8gRGF0YSB3aWxsIHNldCBpdHNlbGYgaW50byBUTFMuCiAg
ICAgQVNTRVJUKGdldCgpID09IGRhdGEtPnN0b3JhZ2VQb2ludGVyKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5j
cHAKaW5kZXggYmYxMWIwM2VhMmMwZDEyMjU3OGE1MWY0NTE1YjljOWJhMjAzNGEyNi4uOTA4YmFm
ZTYzZjljZTU1Njk4ZjJiZGUzMTYwZGI1MWE2YmQ2ZTNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBA
IC0yNTksNiArMjU5LDI0IEBAIHZvaWQgVGhyZWFkOjpyZW1vdmVGcm9tVGhyZWFkR3JvdXAoY29u
c3QgQWJzdHJhY3RMb2NrZXImIHRocmVhZEdyb3VwTG9ja2VyLCBUaHJlCiAgICAgfSk7CiB9CiAK
K2Jvb2wgVGhyZWFkOjpleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJlYWQoYm9vbCBuZXdWYWx1ZSkK
K3sKKyAgICBhdXRvJiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJlbnQoKTsKKyAgICBib29sIG9sZFZh
bHVlID0gdGhyZWFkLm1faXNDb21waWxhdGlvblRocmVhZDsKKyAgICB0aHJlYWQubV9pc0NvbXBp
bGF0aW9uVGhyZWFkID0gbmV3VmFsdWU7CisgICAgcmV0dXJuIG9sZFZhbHVlOworfQorCit2b2lk
IFRocmVhZDo6cmVnaXN0ZXJHQ1RocmVhZChHQ1RocmVhZFR5cGUgZ2NUaHJlYWRUeXBlKQorewor
ICAgIFRocmVhZDo6Y3VycmVudCgpLm1fZ2NUaHJlYWRUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGdjVGhyZWFkVHlwZSk7Cit9CisKK2Jvb2wgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkKK3sK
KyAgICByZXR1cm4gVGhyZWFkOjpjdXJyZW50KCkuZ2NUaHJlYWRUeXBlKCkgIT0gR0NUaHJlYWRU
eXBlOjpOb25lOworfQorCiB2b2lkIFRocmVhZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckludGVy
YWN0aXZlKGludCByZWxhdGl2ZVByaW9yaXR5KQogewogI2lmIEhBVkUoUU9TX0NMQVNTRVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZy5oCmluZGV4IDNhNTc5YjNkNDcxMTViY2NkZjM0NGNlYzhmNzNiZWYzYmMxMGYxZTgu
LjgxZWIzODY4ZTU4YzA1MGRkMjFiMDZiNmMxZDhlNDk1OWU4OTcyZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5o
CkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSA8d3RmL1N0YWNrQm91bmRzLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0YWNrU3RhdHMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL1dvcmRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nVGFibGUuaD4KQEAgLTgxLDYgKzgwLDEyIEBAIFdURl9FWFBPUlRfUFJJVkFURSBUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIGNvbnN0IGNo
CiBXVEZfRVhQT1JUX1BSSVZBVEUgaW50IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKFRocmVhZElk
ZW50aWZpZXIpOwogI2VuZGlmCiAKK2VudW0gY2xhc3MgR0NUaHJlYWRUeXBlIDogdWludDhfdCB7
CisgICAgTm9uZSA9IDAsCisgICAgTWFpbiwKKyAgICBIZWxwZXIsCit9OworCiBjbGFzcyBUaHJl
YWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CiBwdWJsaWM6CiAgICAg
ZnJpZW5kIGNsYXNzIFRocmVhZEdyb3VwOwpAQCAtMTUwLDYgKzE1NSwxMCBAQCBjbGFzcyBUaHJl
YWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb2NrU3BpbkxpbWl0OwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCB5aWVsZCgpOwogCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBib29sIGV4Y2hhbmdlSXNDb21waWxhdGlvblRocmVhZChib29sIG5ld1ZhbHVl
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcmVnaXN0ZXJHQ1RocmVhZChH
Q1RocmVhZFR5cGUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBtYXlCZUdD
VGhyZWFkKCk7CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0OwogCiAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVBsYXRmb3JtVGhyZWFk
aW5nKCk7CkBAIC0yMDIsMTAgKzIxMSwxMyBAQCBjbGFzcyBUaHJlYWQgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CiAgICAgbWFjaF9wb3J0X3QgbWFjaFRocmVhZCgpIHsg
cmV0dXJuIG1fcGxhdGZvcm1UaHJlYWQ7IH0KICNlbmRpZgogCisgICAgYm9vbCBpc0NvbXBpbGF0
aW9uVGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbXBpbGF0aW9uVGhyZWFkOyB9CisgICAg
R0NUaHJlYWRUeXBlIGdjVGhyZWFkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEdD
VGhyZWFkVHlwZT4obV9nY1RocmVhZFR5cGUpOyB9CisKICAgICBzdHJ1Y3QgTmV3VGhyZWFkQ29u
dGV4dDsKICAgICBzdGF0aWMgdm9pZCBlbnRyeVBvaW50KE5ld1RocmVhZENvbnRleHQqKTsKIHBy
b3RlY3RlZDoKLSAgICBUaHJlYWQoKSA9IGRlZmF1bHQ7CisgICAgVGhyZWFkKCk7CiAKICAgICB2
b2lkIGluaXRpYWxpemVJblRocmVhZCgpOwogCkBAIC0yMzgsMTEgKzI1MCwxMSBAQCBjbGFzcyBU
aHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CiAgICAgICAgIERl
dGFjaGVkLAogICAgIH07CiAKLSAgICBKb2luYWJsZVN0YXRlIGpvaW5hYmxlU3RhdGUoKSB7IHJl
dHVybiBtX2pvaW5hYmxlU3RhdGU7IH0KKyAgICBKb2luYWJsZVN0YXRlIGpvaW5hYmxlU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX2pvaW5hYmxlU3RhdGU7IH0KICAgICB2b2lkIGRpZEJlY29tZURl
dGFjaGVkKCkgeyBtX2pvaW5hYmxlU3RhdGUgPSBEZXRhY2hlZDsgfQogICAgIHZvaWQgZGlkRXhp
dCgpOwogICAgIHZvaWQgZGlkSm9pbigpIHsgbV9qb2luYWJsZVN0YXRlID0gSm9pbmVkOyB9Ci0g
ICAgYm9vbCBoYXNFeGl0ZWQoKSB7IHJldHVybiBtX2RpZEV4aXQ7IH0KKyAgICBib29sIGhhc0V4
aXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRXhpdDsgfQogCiAgICAgLy8gVGhlc2UgZnVuY3Rp
b25zIGFyZSBvbmx5IGNhbGxlZCBmcm9tIFRocmVhZEdyb3VwLgogICAgIFRocmVhZEdyb3VwQWRk
UmVzdWx0IGFkZFRvVGhyZWFkR3JvdXAoY29uc3QgQWJzdHJhY3RMb2NrZXImIHRocmVhZEdyb3Vw
TG9ja2VyLCBUaHJlYWRHcm91cCYpOwpAQCAtMjgwLDkgKzI5MiwxMSBAQCBjbGFzcyBUaHJlYWQg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CiAgICAgc3RhdGljIHZvaWQg
VEhSRUFEX1NQRUNJRklDX0NBTEwgZGVzdHJ1Y3RUTFModm9pZCogZGF0YSk7CiAKICAgICBKb2lu
YWJsZVN0YXRlIG1fam9pbmFibGVTdGF0ZSB7IEpvaW5hYmxlIH07Ci0gICAgYm9vbCBtX2lzU2h1
dHRpbmdEb3duIHsgZmFsc2UgfTsKLSAgICBib29sIG1fZGlkRXhpdCB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2lzRGVzdHJveWVkT25jZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU2h1dHRpbmdE
b3duIDogMTsKKyAgICBib29sIG1fZGlkRXhpdCA6IDE7CisgICAgYm9vbCBtX2lzRGVzdHJveWVk
T25jZSA6IDE7CisgICAgYm9vbCBtX2lzQ29tcGlsYXRpb25UaHJlYWQ6IDE7CisgICAgdW5zaWdu
ZWQgbV9nY1RocmVhZFR5cGUgOiAyOwogCiAgICAgLy8gTG9jayAmIFBhcmtpbmdMb3QgcmVseSBv
biBUaHJlYWRTcGVjaWZpYy4gQnV0IFRocmVhZCBvYmplY3QgY2FuIGJlIGRlc3Ryb3llZCBldmVu
IGFmdGVyIFRocmVhZFNwZWNpZmljIHRoaW5ncyBhcmUgZGVzdHJveWVkLgogICAgIC8vIFVzZSBX
b3JkTG9jayBzaW5jZSBXb3JkTG9jayBkb2VzIG5vdCBkZXBlbmQgb24gVGhyZWFkU3BlY2lmaWMg
YW5kIHRoaXMgIlRocmVhZCIuCkBAIC0zMTEsNiArMzI1LDE1IEBAIGNsYXNzIFRocmVhZCA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKICAgICB2b2lkKiBtX2FwaURhdGEg
eyBudWxscHRyIH07CiB9OwogCitpbmxpbmUgVGhyZWFkOjpUaHJlYWQoKQorICAgIDogbV9pc1No
dXR0aW5nRG93bihmYWxzZSkKKyAgICAsIG1fZGlkRXhpdChmYWxzZSkKKyAgICAsIG1faXNEZXN0
cm95ZWRPbmNlKGZhbHNlKQorICAgICwgbV9pc0NvbXBpbGF0aW9uVGhyZWFkKGZhbHNlKQorICAg
ICwgbV9nY1RocmVhZFR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdDVGhyZWFkVHlwZTo6Tm9u
ZSkpCit7Cit9CisKIGlubGluZSBUaHJlYWQqIFRocmVhZDo6Y3VycmVudE1heUJlTnVsbCgpCiB7
CiAjaWYgIUhBVkUoRkFTVF9UTFMpCkBAIC0zNDUsNiArMzY4LDcgQEAgaW5saW5lIFRocmVhZCYg
VGhyZWFkOjpjdXJyZW50KCkKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlRocmVh
ZDsKK3VzaW5nIFdURjo6R0NUaHJlYWRUeXBlOwogCiAjaWYgT1MoV0lORE9XUykKIHVzaW5nIFdU
Rjo6VGhyZWFkSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1ByaW1pdGl2ZXMuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaAppbmRl
eCAyNjkzMDA1MzcwYzczNDM0NDE4OWRhZDllNDE2OThhMTE2YzJjNTczLi5iNDJiNTJmYTUwZjcz
YmFkNzU0MWYyMDQ5ZWQyMDUxZDIxNWM3MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmdQcmltaXRpdmVzLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHJpbWl0
aXZlcy5oCkBAIC0zMCw2ICszMCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8bGlt
aXRzLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvTG9ja2Vy
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00MSw2ICs0MiwxNiBAQAogCiAj
aWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpZiAhZGVmaW5lZChQVEhS
RUFEX0tFWVNfTUFYKQorLy8gUFRIUkVBRF9LRVlTX01BWCBpcyBub3QgZGVmaW5lZCBpbiBiaW9u
aWMgbm9yIGluIEh1cmQsIHNvIGV4cGxpY2l0bHkgZGVmaW5lIGl0IGhlcmUuCisjZGVmaW5lIFBU
SFJFQURfS0VZU19NQVggMTAyNAorI2VuZGlmCisjZW5kaWYKKworI2lmIE9TKFdJTkRPV1MpICYm
IENQVShYODYpCisjZGVmaW5lIFRIUkVBRF9TUEVDSUZJQ19DQUxMIF9fc3RkY2FsbAorI2Vsc2UK
KyNkZWZpbmUgVEhSRUFEX1NQRUNJRklDX0NBTEwKICNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsK
QEAgLTUxLDExICs2MiwxMyBAQCB1c2luZyBUaHJlYWRGdW5jdGlvbiA9IHZvaWQgKCopKHZvaWQq
IGFyZ3VtZW50KTsKIHVzaW5nIFBsYXRmb3JtVGhyZWFkSGFuZGxlID0gcHRocmVhZF90OwogdXNp
bmcgUGxhdGZvcm1NdXRleCA9IHB0aHJlYWRfbXV0ZXhfdDsKIHVzaW5nIFBsYXRmb3JtQ29uZGl0
aW9uID0gcHRocmVhZF9jb25kX3Q7Cit1c2luZyBUaHJlYWRTcGVjaWZpY0tleSA9IHB0aHJlYWRf
a2V5X3Q7CiAjZWxpZiBPUyhXSU5ET1dTKQogdXNpbmcgVGhyZWFkSWRlbnRpZmllciA9IHVpbnQz
Ml90OwogdXNpbmcgUGxhdGZvcm1UaHJlYWRIYW5kbGUgPSBIQU5ETEU7CiB1c2luZyBQbGF0Zm9y
bU11dGV4ID0gU1JXTE9DSzsKIHVzaW5nIFBsYXRmb3JtQ29uZGl0aW9uID0gQ09ORElUSU9OX1ZB
UklBQkxFOwordXNpbmcgVGhyZWFkU3BlY2lmaWNLZXkgPSBEV09SRDsKICNlbHNlCiAjZXJyb3Ig
Ik5vdCBzdXBwb3J0ZWQgcGxhdGZvcm0iCiAjZW5kaWYKQEAgLTEwNCw2ICsxMTcsNjQgQEAgY2xh
c3MgVGhyZWFkQ29uZGl0aW9uIHsKICNlbmRpZgogfTsKIAorI2lmIFVTRShQVEhSRUFEUykKKwor
c3RhdGljIGNvbnN0ZXhwciBUaHJlYWRTcGVjaWZpY0tleSBJbnZhbGlkVGhyZWFkU3BlY2lmaWNL
ZXkgPSBQVEhSRUFEX0tFWVNfTUFYOworCitpbmxpbmUgdm9pZCB0aHJlYWRTcGVjaWZpY0tleUNy
ZWF0ZShUaHJlYWRTcGVjaWZpY0tleSoga2V5LCB2b2lkICgqZGVzdHJ1Y3Rvcikodm9pZCAqKSkK
K3sKKyAgICBpbnQgZXJyb3IgPSBwdGhyZWFkX2tleV9jcmVhdGUoa2V5LCBkZXN0cnVjdG9yKTsK
KyAgICBpZiAoZXJyb3IpCisgICAgICAgIENSQVNIKCk7Cit9CisKK2lubGluZSB2b2lkIHRocmVh
ZFNwZWNpZmljS2V5RGVsZXRlKFRocmVhZFNwZWNpZmljS2V5IGtleSkKK3sKKyAgICBpbnQgZXJy
b3IgPSBwdGhyZWFkX2tleV9kZWxldGUoa2V5KTsKKyAgICBpZiAoZXJyb3IpCisgICAgICAgIENS
QVNIKCk7Cit9CisKK2lubGluZSB2b2lkIHRocmVhZFNwZWNpZmljU2V0KFRocmVhZFNwZWNpZmlj
S2V5IGtleSwgdm9pZCogdmFsdWUpCit7CisgICAgcHRocmVhZF9zZXRzcGVjaWZpYyhrZXksIHZh
bHVlKTsKK30KKworaW5saW5lIHZvaWQqIHRocmVhZFNwZWNpZmljR2V0KFRocmVhZFNwZWNpZmlj
S2V5IGtleSkKK3sKKyAgICByZXR1cm4gcHRocmVhZF9nZXRzcGVjaWZpYyhrZXkpOworfQorCisj
ZWxpZiBPUyhXSU5ET1dTKQorCitzdGF0aWMgY29uc3RleHByIFRocmVhZFNwZWNpZmljS2V5IElu
dmFsaWRUaHJlYWRTcGVjaWZpY0tleSA9IEZMU19PVVRfT0ZfSU5ERVhFUzsKKworaW5saW5lIHZv
aWQgdGhyZWFkU3BlY2lmaWNLZXlDcmVhdGUoVGhyZWFkU3BlY2lmaWNLZXkqIGtleSwgdm9pZCAo
VEhSRUFEX1NQRUNJRklDX0NBTEwgKmRlc3RydWN0b3IpKHZvaWQgKikpCit7CisgICAgRFdPUkQg
ZmxzS2V5ID0gRmxzQWxsb2MoZGVzdHJ1Y3Rvcik7CisgICAgaWYgKGZsc0tleSA9PSBGTFNfT1VU
X09GX0lOREVYRVMpCisgICAgICAgIENSQVNIKCk7CisKKyAgICAqa2V5ID0gZmxzS2V5OworfQor
CitpbmxpbmUgdm9pZCB0aHJlYWRTcGVjaWZpY0tleURlbGV0ZShUaHJlYWRTcGVjaWZpY0tleSBr
ZXkpCit7CisgICAgRmxzRnJlZShrZXkpOworfQorCitpbmxpbmUgdm9pZCB0aHJlYWRTcGVjaWZp
Y1NldChUaHJlYWRTcGVjaWZpY0tleSBrZXksIHZvaWQqIGRhdGEpCit7CisgICAgRmxzU2V0VmFs
dWUoa2V5LCBkYXRhKTsKK30KKworaW5saW5lIHZvaWQqIHRocmVhZFNwZWNpZmljR2V0KFRocmVh
ZFNwZWNpZmljS2V5IGtleSkKK3sKKyAgICByZXR1cm4gRmxzR2V0VmFsdWUoa2V5KTsKK30KKwor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6Ok11dGV4OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvd2luL1RocmVhZFNwZWNpZmljV2luLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL3dpbi9UaHJlYWRTcGVjaWZpY1dpbi5jcHAKaW5kZXggMmE4ZWYzMmMwYWYzYzYyNjY3
ODdmYTBlODk0NDk2NTZkMTE1MDAxZi4uZDExY2ViZmUzMWNlZDZjYmRlYWI3MTJmNjIxNzJiMjU3
YzIxNTZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL1RocmVhZFNwZWNpZmljV2lu
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vVGhyZWFkU3BlY2lmaWNXaW4uY3BwCkBAIC0z
NCw3ICszNCw3IEBAIGxvbmcmIGZsc0tleUNvdW50KCkKIAogRFdPUkQqIGZsc0tleXMoKQogewot
ICAgIHN0YXRpYyBEV09SRCBrZXlzW2tNYXhGbHNLZXlTaXplXTsKKyAgICBzdGF0aWMgRFdPUkQg
a2V5c1ttYXhGbHNLZXlTaXplXTsKICAgICByZXR1cm4ga2V5czsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDViMzRlYWYw
ZDRlYmJmOTI3YmNmZDVjNmVhOGQ2ZmI4NzlhNDAwNmYuLjBjN2FjMTc0ZDY4OTRhZTllYWUyNTU4
YmEyZmZmZDQ1NGI4ZDk2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgSURCRGF0YWJhc2U6On5JREJE
YXRhYmFzZSgpCiAKIGJvb2wgSURCRGF0YWJhc2U6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKCZvcmlnaW5UaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkgfHwg
bWF5QmVHQ1RocmVhZCgpKTsKKyAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZUaHJlYWQ6
OmN1cnJlbnQoKSB8fCBUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSk7CiAKICAgICBpZiAobV9jbG9z
ZWRJblNlcnZlciB8fCBpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5k
ZXggYWE3NTQzYTFhM2Q0ZTUyMzk0NjkxYTk0N2UxY2NkYzQ1YmVjYTY5Yi4uNzk2MzVhYTIyNGY0
ZGJhZmFkOTUwMDk5MmVjZmRiOTc5NGY5MDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTI2Nyw3ICsyNjcsNyBAQCBib29sIElE
QlJlcXVlc3Q6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogCiBib29s
IElEQlJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCZv
cmlnaW5UaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkgfHwgbWF5QmVHQ1RocmVhZCgpKTsK
KyAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSB8fCBUaHJl
YWQ6Om1heUJlR0NUaHJlYWQoKSk7CiAgICAgcmV0dXJuICFtX2NvbnRleHRTdG9wcGVkICYmIG1f
aGFzUGVuZGluZ0FjdGl2aXR5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggY2IwMzk3YzQ4YzYwODk2MjZkOGY3
MGI1YjVjOGI1MTAwYWQ3Zjk2Ny4uYjExMjNlOWUxNzY1ZDNhZTFiZDg3MTA1NjkxMzM5ODk5M2Y5
ZjUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmNwcApAQCAtMzMxLDcgKzMzMSw3IEBAIGJvb2wgSURCVHJhbnNhY3Rpb246OmNh
blN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogCiBib29sIElEQlRyYW5zYWN0
aW9uOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIEFTU0VSVCgmbV9kYXRhYmFz
ZS0+b3JpZ2luVGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpIHx8IG1heUJlR0NUaHJlYWQo
KSk7CisgICAgQVNTRVJUKCZtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSA9PSAmVGhyZWFkOjpj
dXJyZW50KCkgfHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkpOwogICAgIHJldHVybiAhbV9jb250
ZXh0U3RvcHBlZCAmJiBtX3N0YXRlICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6Rmlu
aXNoZWQ7CiB9CiAK
</data>
<flag name="review"
          id="384235"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>