<?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>199389</bug_id>
          
          <creation_ts>2019-07-01 16:58:04 -0700</creation_ts>
          <short_desc>[WHLSL] the initializer in VariableDeclaration should be a std::unique_ptr, not Optional&lt;UniqueRef&lt;..&gt;&gt;</short_desc>
          <delta_ts>2019-07-10 18:17: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>WebGPU</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>
          
          <blocked>199695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>rmorisset</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1549393</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-01 16:58:04 -0700</bug_when>
    <thetext>Optional&lt;UniqueRef&lt;..&gt;&gt; is not only semantically weird (UniqueRef is basically a unique_ptr that promises not to be null), but also inefficient, wasting 8 bytes for the boolean in Optional.
It is a pattern that appears throughout the AST. In this patch I start by removing it in a fairly simple spot: the initializer for VariableDeclaration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549396</commentid>
    <comment_count>1</comment_count>
      <attachid>373279</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-01 17:01:45 -0700</bug_when>
    <thetext>Created attachment 373279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549626</commentid>
    <comment_count>2</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-02 10:47:51 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549639</commentid>
    <comment_count>3</comment_count>
      <attachid>373279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 11:13:23 -0700</bug_when>
    <thetext>Comment on attachment 373279
Patch

Clearing flags on attachment: 373279

Committed r247062: &lt;https://trac.webkit.org/changeset/247062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549640</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 11:13:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549641</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-02 11:14:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/52534524&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373279</attachid>
            <date>2019-07-01 17:01:45 -0700</date>
            <delta_ts>2019-07-02 11:13:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch199389</filename>
            <type>text/plain</type>
            <size>31607</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYzJmMzA1ZTc3MDAuLmY1OTk5YzE1MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5
LTA3LTAxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dITFNMXSB0aGUgaW5pdGlhbGl6ZXIgaW4gVmFyaWFibGVEZWNsYXJhdGlvbiBzaG91bGQgYmUg
YSBzdGQ6OnVuaXF1ZV9wdHIsIG5vdCBPcHRpb25hbDxVbmlxdWVSZWY8Li4+PgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5Mzg5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvVW5pcXVlUmVmLmg6
CisgICAgICAgIChXVEY6OlVuaXF1ZVJlZjo6bW92ZVRvVW5pcXVlUHRyKTogQWRkZWQuCisKIDIw
MTktMDctMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHU3RyZWFtZXJdIENhbm5vdCBwbGF5IEJlcnQncyBCeXRlcyByYWRpbyBzdHJlYW0gZnJv
bSBodHRwOi8vcmFkaW8uZG9zLm5sLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVW5pcXVl
UmVmLmggYi9Tb3VyY2UvV1RGL3d0Zi9VbmlxdWVSZWYuaAppbmRleCAyMDM5OTUwZDlkOC4uZDZk
NjM5YWZiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VuaXF1ZVJlZi5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1VuaXF1ZVJlZi5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICBv
cGVyYXRvciBUJigpIHsgQVNTRVJUKG1fcmVmKTsgcmV0dXJuICptX3JlZjsgfQogICAgIG9wZXJh
dG9yIGNvbnN0IFQmKCkgY29uc3QgeyBBU1NFUlQobV9yZWYpOyByZXR1cm4gKm1fcmVmOyB9CiAK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8VD4gbW92ZVRvVW5pcXVlUHRyKCkgeyByZXR1cm4gV1RGTW92
ZShtX3JlZik7IH0KKwogcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcy4uLiBB
cmdzPiBmcmllbmQgVW5pcXVlUmVmPFU+IG1ha2VVbmlxdWVSZWYoQXJncyYmLi4uKTsKICAgICB0
ZW1wbGF0ZTxjbGFzcyBVPiBmcmllbmQgY2xhc3MgVW5pcXVlUmVmOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZi
MzZiNDg3N2I4Li5kZmU5YjgxNGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5
LTA3LTAxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dITFNMXSB0aGUgaW5pdGlhbGl6ZXIgaW4gVmFyaWFibGVEZWNsYXJhdGlvbiBzaG91bGQgYmUg
YSBzdGQ6OnVuaXF1ZV9wdHIsIG5vdCBPcHRpb25hbDxVbmlxdWVSZWY8Li4+PgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5Mzg5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9uYWw8VW5pcXVlUmVm
PC4uPj4gaXMgbm90IG9ubHkgc2VtYW50aWNhbGx5IHdlaXJkIChVbmlxdWVSZWYgaXMgYmFzaWNh
bGx5IGEgdW5pcXVlX3B0ciB0aGF0IHByb21pc2VzIG5vdCB0byBiZSBudWxsKSwgYnV0IGFsc28g
aW5lZmZpY2llbnQsIHdhc3RpbmcgOCBieXRlcyBmb3IgdGhlIGJvb2xlYW4gaW4gT3B0aW9uYWwu
CisgICAgICAgIEl0IGlzIGEgcGF0dGVybiB0aGF0IGFwcGVhcnMgdGhyb3VnaG91dCB0aGUgQVNU
LiBJbiB0aGlzIHBhdGNoIEkgc3RhcnQgYnkgcmVtb3ZpbmcgaXQgaW4gYSBmYWlybHkgc2ltcGxl
IHNwb3Q6IHRoZSBpbml0aWFsaXplciBmb3IgVmFyaWFibGVEZWNsYXJhdGlvbi4KKworICAgICAg
ICBObyB0ZXN0IGJlY2F1c2UgdGhlcmUgaXMgbm8gaW50ZW5kZWQgZnVuY3Rpb25hbCBjaGFuZ2Uu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uOjpSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uOjpWYXJpYWJsZURl
Y2xhcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlZhcmlhYmxlRGVjbGFy
YXRpb246OmluaXRpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlZhcmlh
YmxlRGVjbGFyYXRpb246OnRha2VJbml0aWFsaXplcik6CisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uOjpzZXRJbml0aWFsaXplcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xBdXRvSW5pdGlhbGl6ZVZhcmlhYmxlcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QXV0b0luaXRpYWxpemU6OnZpc2l0KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OnJlc29sdmVXaXRoT3BlcmF0b3JBbmRlckluZGV4ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OnJlc29sdmVXaXRoT3BlcmF0b3JMZW5ndGgpOgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OnJlc29sdmVXaXRoUmVmZXJlbmNlQ29tcGFyYXRvcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OlBhcnNlcjo6cGFyc2VQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OlBh
cnNlcjo6cGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XSExTTC9XSExTTFByZXNlcnZlVmFyaWFibGVMaWZldGltZXMuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJvcGVydHlSZXNvbHZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6d3JhcEFuZGVyQ2FsbEFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OlByb3BlcnR5UmVzb2x2
ZXI6OnZpc2l0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN5bnRoZXNp
emVBcnJheU9wZXJhdG9yTGVuZ3RoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpzeW50
aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hM
U0wvV0hMU0xTeW50aGVzaXplQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpzeW50aGVzaXplQ29uc3RydWN0b3JzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTFN5bnRoZXNpemVFbnVtZXJhdGlvbkZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6c3ludGhlc2l6ZUVudW1lcmF0aW9uRnVuY3Rpb25zKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN5bnRoZXNpemVTdHJ1Y3R1cmVBY2Nlc3NvcnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OnN5bnRoZXNpemVTdHJ1Y3R1cmVBY2Nlc3Nv
cnMpOgorCiAyMDE5LTA3LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIGlPUzogUkVHUkVTU0lPTihhc3luYyBzY3JvbGwpOiBDYXJldCBkb2Vzbid0
IHNjcm9sbCB3aGVuIHNjcm9sbGluZyB0ZXh0YXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVhZE1v
ZGlmeVdyaXRlRXhwcmVzc2lvbi5oCmluZGV4IGVkZTJiNmU0NGQxLi40NWUzY2ZhNzAyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVh
ZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTFJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uaApAQCAtMTE4LDgg
KzExOCw4IEBAIHByaXZhdGU6CiAgICAgUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbihMZXhlcjo6
VG9rZW4mJiBvcmlnaW4sIFVuaXF1ZVJlZjxFeHByZXNzaW9uPiBsZWZ0VmFsdWUpCiAgICAgICAg
IDogRXhwcmVzc2lvbihMZXhlcjo6VG9rZW4ob3JpZ2luKSkKICAgICAgICAgLCBtX2xlZnRWYWx1
ZShXVEZNb3ZlKGxlZnRWYWx1ZSkpCi0gICAgICAgICwgbV9vbGRWYWx1ZShtYWtlVW5pcXVlUmVm
PFZhcmlhYmxlRGVjbGFyYXRpb24+KExleGVyOjpUb2tlbihvcmlnaW4pLCBRdWFsaWZpZXJzKCks
IFdURjo6bnVsbG9wdCwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KSkKLSAg
ICAgICAgLCBtX25ld1ZhbHVlKG1ha2VVbmlxdWVSZWY8VmFyaWFibGVEZWNsYXJhdGlvbj4oV1RG
TW92ZShvcmlnaW4pLCBRdWFsaWZpZXJzKCksIFdURjo6bnVsbG9wdCwgU3RyaW5nKCksIFdURjo6
bnVsbG9wdCwgV1RGOjpudWxsb3B0KSkKKyAgICAgICAgLCBtX29sZFZhbHVlKG1ha2VVbmlxdWVS
ZWY8VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKG9yaWdpbiksIFF1YWxpZmllcnMo
KSwgV1RGOjpudWxsb3B0LCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKSkKKyAgICAg
ICAgLCBtX25ld1ZhbHVlKG1ha2VVbmlxdWVSZWY8VmFyaWFibGVEZWNsYXJhdGlvbj4oV1RGTW92
ZShvcmlnaW4pLCBRdWFsaWZpZXJzKCksIFdURjo6bnVsbG9wdCwgU3RyaW5nKCksIFdURjo6bnVs
bG9wdCwgbnVsbHB0cikpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVmFyaWFibGVEZWNsYXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVmFyaWFibGVEZWNs
YXJhdGlvbi5oCmluZGV4IDM3ZWEzODY0OWNjLi5iZTBhMDU4YTFmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVmFyaWFibGVEZWNsYXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExT
TFZhcmlhYmxlRGVjbGFyYXRpb24uaApAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2UgQVNUIHsK
IGNsYXNzIFZhcmlhYmxlRGVjbGFyYXRpb24gOiBwdWJsaWMgVmFsdWUgewogICAgIHVzaW5nIEJh
c2UgPSBWYWx1ZTsKIHB1YmxpYzoKLSAgICBWYXJpYWJsZURlY2xhcmF0aW9uKExleGVyOjpUb2tl
biYmIG9yaWdpbiwgUXVhbGlmaWVycyYmIHF1YWxpZmllcnMsIE9wdGlvbmFsPFVuaXF1ZVJlZjxV
bm5hbWVkVHlwZT4+JiYgdHlwZSwgU3RyaW5nJiYgbmFtZSwgT3B0aW9uYWw8U2VtYW50aWM+JiYg
c2VtYW50aWMsIE9wdGlvbmFsPFVuaXF1ZVJlZjxFeHByZXNzaW9uPj4mJiBpbml0aWFsaXplcikK
KyAgICBWYXJpYWJsZURlY2xhcmF0aW9uKExleGVyOjpUb2tlbiYmIG9yaWdpbiwgUXVhbGlmaWVy
cyYmIHF1YWxpZmllcnMsIE9wdGlvbmFsPFVuaXF1ZVJlZjxVbm5hbWVkVHlwZT4+JiYgdHlwZSwg
U3RyaW5nJiYgbmFtZSwgT3B0aW9uYWw8U2VtYW50aWM+JiYgc2VtYW50aWMsIHN0ZDo6dW5pcXVl
X3B0cjxFeHByZXNzaW9uPiYmIGluaXRpYWxpemVyKQogICAgICAgICA6IEJhc2UoV1RGTW92ZShv
cmlnaW4pKQogICAgICAgICAsIG1fcXVhbGlmaWVycyhXVEZNb3ZlKHF1YWxpZmllcnMpKQogICAg
ICAgICAsIG1fdHlwZShXVEZNb3ZlKHR5cGUpKQpAQCAtNzUsMTIgKzc1LDEzIEBAIHB1YmxpYzoK
ICAgICBjb25zdCBPcHRpb25hbDxVbmlxdWVSZWY8VW5uYW1lZFR5cGU+PiYgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIFVubmFtZWRUeXBlKiB0eXBlKCkgeyByZXR1cm4gbV90
eXBlID8gJiptX3R5cGUgOiBudWxscHRyOyB9CiAgICAgT3B0aW9uYWw8U2VtYW50aWM+JiBzZW1h
bnRpYygpIHsgcmV0dXJuIG1fc2VtYW50aWM7IH0KLSAgICBFeHByZXNzaW9uKiBpbml0aWFsaXpl
cigpIHsgcmV0dXJuIG1faW5pdGlhbGl6ZXIgPyAmKm1faW5pdGlhbGl6ZXIgOiBudWxscHRyOyB9
CisgICAgRXhwcmVzc2lvbiogaW5pdGlhbGl6ZXIoKSB7IHJldHVybiBtX2luaXRpYWxpemVyLmdl
dCgpOyB9CiAgICAgYm9vbCBpc0Fub255bW91cygpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZS5pc051
bGwoKTsgfQotICAgIE9wdGlvbmFsPFVuaXF1ZVJlZjxFeHByZXNzaW9uPj4gdGFrZUluaXRpYWxp
emVyKCkgeyByZXR1cm4gV1RGTW92ZShtX2luaXRpYWxpemVyKTsgfQotICAgIHZvaWQgc2V0SW5p
dGlhbGl6ZXIoVW5pcXVlUmVmPEV4cHJlc3Npb24+IGV4cHJlc3Npb24pCisgICAgc3RkOjp1bmlx
dWVfcHRyPEV4cHJlc3Npb24+IHRha2VJbml0aWFsaXplcigpIHsgcmV0dXJuIFdURk1vdmUobV9p
bml0aWFsaXplcik7IH0KKyAgICB2b2lkIHNldEluaXRpYWxpemVyKHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPiBleHByZXNzaW9uKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpbml0aWFsaXpl
cigpKTsKKyAgICAgICAgQVNTRVJUKGV4cHJlc3Npb24pOwogICAgICAgICBtX2luaXRpYWxpemVy
ID0gV1RGTW92ZShleHByZXNzaW9uKTsKICAgICB9CiAKQEAgLTg5LDcgKzkwLDcgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25hbDxVbmlxdWVSZWY8VW5uYW1lZFR5cGU+PiBtX3R5cGU7CiAgICAgU3Ry
aW5nIG1fbmFtZTsKICAgICBPcHRpb25hbDxTZW1hbnRpYz4gbV9zZW1hbnRpYzsKLSAgICBPcHRp
b25hbDxVbmlxdWVSZWY8RXhwcmVzc2lvbj4+IG1faW5pdGlhbGl6ZXI7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEV4cHJlc3Npb24+IG1faW5pdGlhbGl6ZXI7CiB9OwogCiB1c2luZyBWYXJpYWJsZURl
Y2xhcmF0aW9ucyA9IFZlY3RvcjxVbmlxdWVSZWY8VmFyaWFibGVEZWNsYXJhdGlvbj4+OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xBdXRvSW5p
dGlhbGl6ZVZhcmlhYmxlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExT
TC9XSExTTEF1dG9Jbml0aWFsaXplVmFyaWFibGVzLmNwcAppbmRleCBlYWI3MWIzZjI2MS4uZDEx
YjkwN2FmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNM
L1dITFNMQXV0b0luaXRpYWxpemVWYXJpYWJsZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQXV0b0luaXRpYWxpemVWYXJpYWJsZXMuY3BwCkBAIC02
OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAjZWxzZQogICAgICAgICBTdHJpbmcgZnVuY3Rpb25OYW1l
ID0gIjx6ZXJvLWluaXQ+Il9zOwogI2VuZGlmCi0gICAgICAgIGF1dG8gY2FsbEV4cHJlc3Npb24g
PSBtYWtlVW5pcXVlUmVmPEFTVDo6Q2FsbEV4cHJlc3Npb24+KHZhcmlhYmxlRGVjbGFyYXRpb24u
b3JpZ2luKCksIFdURk1vdmUoZnVuY3Rpb25OYW1lKSwgVmVjdG9yPFVuaXF1ZVJlZjxBU1Q6OkV4
cHJlc3Npb24+PigpKTsKKyAgICAgICAgYXV0byBjYWxsRXhwcmVzc2lvbiA9IHN0ZDo6bWFrZV91
bmlxdWU8QVNUOjpDYWxsRXhwcmVzc2lvbj4odmFyaWFibGVEZWNsYXJhdGlvbi5vcmlnaW4oKSwg
V1RGTW92ZShmdW5jdGlvbk5hbWUpLCBWZWN0b3I8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4+
KCkpOwogICAgICAgICBjYWxsRXhwcmVzc2lvbi0+c2V0VHlwZSh0eXBlLT5jbG9uZSgpKTsKICAg
ICAgICAgY2FsbEV4cHJlc3Npb24tPnNldFR5cGVBbm5vdGF0aW9uKEFTVDo6UmlnaHRWYWx1ZSgp
KTsKICAgICAgICAgY2FsbEV4cHJlc3Npb24tPnNldE92ZXJsb2FkcyhtX2Nhc3RGdW5jdGlvbnMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hl
Y2tlci5jcHAKaW5kZXggOThjZDJjZWIwNDUuLjIyYmY2MGJjODE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTENoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tlci5jcHAKQEAgLTEy
Miw4ICsxMjIsOCBAQCBzdGF0aWMgQVNUOjpOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uIHJlc29s
dmVXaXRoT3BlcmF0b3JBbmRlckluZGV4ZXIoTGV4ZXI6OlRvawogICAgIGNvbnN0IGJvb2wgaXNP
cGVyYXRvciA9IHRydWU7CiAgICAgYXV0byByZXR1cm5UeXBlID0gbWFrZVVuaXF1ZVJlZjxBU1Q6
OlBvaW50ZXJUeXBlPihMZXhlcjo6VG9rZW4ob3JpZ2luKSwgZmlyc3RBcmd1bWVudC5hZGRyZXNz
U3BhY2UoKSwgZmlyc3RBcmd1bWVudC5lbGVtZW50VHlwZSgpLmNsb25lKCkpOwogICAgIEFTVDo6
VmFyaWFibGVEZWNsYXJhdGlvbnMgcGFyYW1ldGVyczsKLSAgICBwYXJhbWV0ZXJzLmFwcGVuZCht
YWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKG9yaWdp
biksIEFTVDo6UXVhbGlmaWVycygpLCBmaXJzdEFyZ3VtZW50LmNsb25lKCksIFN0cmluZygpLCBX
VEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCkpOwotICAgIHBhcmFtZXRlcnMuYXBwZW5kKG1ha2VV
bmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihMZXhlcjo6VG9rZW4ob3JpZ2luKSwg
QVNUOjpRdWFsaWZpZXJzKCksIFVuaXF1ZVJlZjxBU1Q6OlVubmFtZWRUeXBlPihBU1Q6OlR5cGVS
ZWZlcmVuY2U6OndyYXAoTGV4ZXI6OlRva2VuKG9yaWdpbiksIGludHJpbnNpY3MudWludFR5cGUo
KSkpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQpKTsKKyAgICBwYXJhbWV0
ZXJzLmFwcGVuZChtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6
OlRva2VuKG9yaWdpbiksIEFTVDo6UXVhbGlmaWVycygpLCBmaXJzdEFyZ3VtZW50LmNsb25lKCks
IFN0cmluZygpLCBXVEY6Om51bGxvcHQsIG51bGxwdHIpKTsKKyAgICBwYXJhbWV0ZXJzLmFwcGVu
ZChtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKG9y
aWdpbiksIEFTVDo6UXVhbGlmaWVycygpLCBVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4oQVNU
OjpUeXBlUmVmZXJlbmNlOjp3cmFwKExleGVyOjpUb2tlbihvcmlnaW4pLCBpbnRyaW5zaWNzLnVp
bnRUeXBlKCkpKSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgbnVsbHB0cikpOwogICAgIHJldHVy
biBBU1Q6Ok5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24oQVNUOjpGdW5jdGlvbkRlY2xhcmF0aW9u
KExleGVyOjpUb2tlbihvcmlnaW4pLCBBU1Q6OkF0dHJpYnV0ZUJsb2NrKCksIFdURjo6bnVsbG9w
dCwgV1RGTW92ZShyZXR1cm5UeXBlKSwgU3RyaW5nKCJvcGVyYXRvciZbXSIsIFN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBXVEY6Om51bGxvcHQsIGlz
T3BlcmF0b3IpKTsKIH0KIApAQCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRpYyBBU1Q6Ok5hdGl2ZUZ1
bmN0aW9uRGVjbGFyYXRpb24gcmVzb2x2ZVdpdGhPcGVyYXRvckxlbmd0aChMZXhlcjo6VG9rZW4g
b3JpCiAgICAgY29uc3QgYm9vbCBpc09wZXJhdG9yID0gdHJ1ZTsKICAgICBhdXRvIHJldHVyblR5
cGUgPSBBU1Q6OlR5cGVSZWZlcmVuY2U6OndyYXAoTGV4ZXI6OlRva2VuKG9yaWdpbiksIGludHJp
bnNpY3MudWludFR5cGUoKSk7CiAgICAgQVNUOjpWYXJpYWJsZURlY2xhcmF0aW9ucyBwYXJhbWV0
ZXJzOwotICAgIHBhcmFtZXRlcnMuYXBwZW5kKG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURl
Y2xhcmF0aW9uPihMZXhlcjo6VG9rZW4ob3JpZ2luKSwgQVNUOjpRdWFsaWZpZXJzKCksIGZpcnN0
QXJndW1lbnQuY2xvbmUoKSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KSk7
CisgICAgcGFyYW1ldGVycy5hcHBlbmQobWFrZVVuaXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFy
YXRpb24+KExleGVyOjpUb2tlbihvcmlnaW4pLCBBU1Q6OlF1YWxpZmllcnMoKSwgZmlyc3RBcmd1
bWVudC5jbG9uZSgpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKSk7CiAgICAgcmV0
dXJuIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlvbihBU1Q6OkZ1bmN0aW9uRGVjbGFyYXRp
b24oTGV4ZXI6OlRva2VuKG9yaWdpbiksIEFTVDo6QXR0cmlidXRlQmxvY2soKSwgV1RGOjpudWxs
b3B0LCBXVEZNb3ZlKHJldHVyblR5cGUpLCBTdHJpbmcoIm9wZXJhdG9yLmxlbmd0aCIsIFN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBXVEY6Om51bGxv
cHQsIGlzT3BlcmF0b3IpKTsKIH0KIApAQCAtMTUzLDggKzE1Myw4IEBAIHN0YXRpYyBBU1Q6Ok5h
dGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24gcmVzb2x2ZVdpdGhSZWZlcmVuY2VDb21wYXJhdG9yKExl
eGVyOjpUb2tlCiAgICAgICAgIH0pKTsKICAgICB9KSk7CiAgICAgQVNUOjpWYXJpYWJsZURlY2xh
cmF0aW9ucyBwYXJhbWV0ZXJzOwotICAgIHBhcmFtZXRlcnMuYXBwZW5kKG1ha2VVbmlxdWVSZWY8
QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihMZXhlcjo6VG9rZW4ob3JpZ2luKSwgQVNUOjpRdWFs
aWZpZXJzKCksIGFyZ3VtZW50VHlwZS0+Y2xvbmUoKSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwg
V1RGOjpudWxsb3B0KSk7Ci0gICAgcGFyYW1ldGVycy5hcHBlbmQobWFrZVVuaXF1ZVJlZjxBU1Q6
OlZhcmlhYmxlRGVjbGFyYXRpb24+KExleGVyOjpUb2tlbihvcmlnaW4pLCBBU1Q6OlF1YWxpZmll
cnMoKSwgVW5pcXVlUmVmPEFTVDo6VW5uYW1lZFR5cGU+KFdURk1vdmUoYXJndW1lbnRUeXBlKSks
IFN0cmluZygpLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCkpOworICAgIHBhcmFtZXRlcnMu
YXBwZW5kKG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihMZXhlcjo6VG9r
ZW4ob3JpZ2luKSwgQVNUOjpRdWFsaWZpZXJzKCksIGFyZ3VtZW50VHlwZS0+Y2xvbmUoKSwgU3Ry
aW5nKCksIFdURjo6bnVsbG9wdCwgbnVsbHB0cikpOworICAgIHBhcmFtZXRlcnMuYXBwZW5kKG1h
a2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihMZXhlcjo6VG9rZW4ob3JpZ2lu
KSwgQVNUOjpRdWFsaWZpZXJzKCksIFVuaXF1ZVJlZjxBU1Q6OlVubmFtZWRUeXBlPihXVEZNb3Zl
KGFyZ3VtZW50VHlwZSkpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKSk7CiAgICAg
cmV0dXJuIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlvbihBU1Q6OkZ1bmN0aW9uRGVjbGFy
YXRpb24oTGV4ZXI6OlRva2VuKG9yaWdpbiksIEFTVDo6QXR0cmlidXRlQmxvY2soKSwgV1RGOjpu
dWxsb3B0LCBXVEZNb3ZlKHJldHVyblR5cGUpLCBTdHJpbmcoIm9wZXJhdG9yPT0iLCBTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGOjpudWxsb3B0
LCBpc09wZXJhdG9yKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dITFNML1dITFNMUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUGFyc2VyLmNwcAppbmRleCA0ZmE1YzZlNjVlZS4uNzVhMDg3NGY0M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBh
cnNlci5jcHAKQEAgLTg3Nyw3ICs4NzcsNyBAQCBhdXRvIFBhcnNlcjo6cGFyc2VQYXJhbWV0ZXIo
KSAtPiBFeHBlY3RlZDxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24sIEVycm9yPgogCiAgICAgUEFS
U0Uoc2VtYW50aWMsIFNlbWFudGljKTsKIAotICAgIHJldHVybiBBU1Q6OlZhcmlhYmxlRGVjbGFy
YXRpb24oV1RGTW92ZSgqb3JpZ2luKSwgV1RGTW92ZShxdWFsaWZpZXJzKSwgeyBXVEZNb3ZlKCp0
eXBlKSB9LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKCpzZW1hbnRpYyksIFdURjo6bnVsbG9wdCk7
CisgICAgcmV0dXJuIEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbihXVEZNb3ZlKCpvcmlnaW4pLCBX
VEZNb3ZlKHF1YWxpZmllcnMpLCB7IFdURk1vdmUoKnR5cGUpIH0sIFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoKnNlbWFudGljKSwgbnVsbHB0cik7CiB9CiAKIGF1dG8gUGFyc2VyOjpwYXJzZVBhcmFt
ZXRlcnMoKSAtPiBFeHBlY3RlZDxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb25zLCBFcnJvcj4KQEAg
LTExNTUsMTIgKzExNTUsMTMgQEAgYXV0byBQYXJzZXI6OnBhcnNlVmFyaWFibGVEZWNsYXJhdGlv
bihVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4mJiB0eXBlKSAtPiBFeHAKICAgICBDT05TVU1F
X1RZUEUobmFtZSwgSWRlbnRpZmllcik7CiAgICAgUEFSU0Uoc2VtYW50aWMsIFNlbWFudGljKTsK
IAorICAgIHN0ZDo6dW5pcXVlX3B0cjxBU1Q6OkV4cHJlc3Npb24+IGluaXRpYWxpemVyID0gbnVs
bHB0cjsKICAgICBpZiAodHJ5VHlwZShMZXhlcjo6VG9rZW46OlR5cGU6OkVxdWFsc1NpZ24pKSB7
Ci0gICAgICAgIFBBUlNFKGluaXRpYWxpemVyLCBQb3NzaWJsZVRlcm5hcnlDb25kaXRpb25hbCk7
Ci0gICAgICAgIHJldHVybiBBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24oV1RGTW92ZSgqb3JpZ2lu
KSwgV1RGTW92ZShxdWFsaWZpZXJzKSwgeyBXVEZNb3ZlKHR5cGUpIH0sIG5hbWUtPnN0cmluZ1Zp
ZXcudG9TdHJpbmcoKSwgV1RGTW92ZSgqc2VtYW50aWMpLCBXVEZNb3ZlKCppbml0aWFsaXplcikp
OworICAgICAgICBQQVJTRShpbml0aWFsaXppbmdFeHByZXNzaW9uLCBQb3NzaWJsZVRlcm5hcnlD
b25kaXRpb25hbCk7CisgICAgICAgIGluaXRpYWxpemVyID0gaW5pdGlhbGl6aW5nRXhwcmVzc2lv
bi52YWx1ZSgpLm1vdmVUb1VuaXF1ZVB0cigpOwogICAgIH0KIAotICAgIHJldHVybiBBU1Q6OlZh
cmlhYmxlRGVjbGFyYXRpb24oV1RGTW92ZSgqb3JpZ2luKSwgV1RGTW92ZShxdWFsaWZpZXJzKSwg
eyBXVEZNb3ZlKHR5cGUpIH0sIG5hbWUtPnN0cmluZ1ZpZXcudG9TdHJpbmcoKSwgV1RGTW92ZSgq
c2VtYW50aWMpLCBXVEY6Om51bGxvcHQpOworICAgIHJldHVybiBBU1Q6OlZhcmlhYmxlRGVjbGFy
YXRpb24oV1RGTW92ZSgqb3JpZ2luKSwgV1RGTW92ZShxdWFsaWZpZXJzKSwgeyBXVEZNb3ZlKHR5
cGUpIH0sIG5hbWUtPnN0cmluZ1ZpZXcudG9TdHJpbmcoKSwgV1RGTW92ZSgqc2VtYW50aWMpLCBX
VEZNb3ZlKGluaXRpYWxpemVyKSk7CiB9CiAKIGF1dG8gUGFyc2VyOjpwYXJzZVZhcmlhYmxlRGVj
bGFyYXRpb25zKCkgLT4gRXhwZWN0ZWQ8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVu
dCwgRXJyb3I+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExT
TC9XSExTTFByZXNlcnZlVmFyaWFibGVMaWZldGltZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVzZXJ2ZVZhcmlhYmxlTGlmZXRpbWVzLmNwcAppbmRl
eCBmYzdhNGRmMWI1MC4uZmM3NTRiYmIyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlc2VydmVWYXJpYWJsZUxpZmV0aW1lcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVzZXJ2ZVZhcmlh
YmxlTGlmZXRpbWVzLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9v
bCBpc0VudHJ5UG9pbnQgPSAhIWZ1bmN0aW9uRGVmaW5pdGlvbi5lbnRyeVBvaW50VHlwZSgpOwog
ICAgICAgICBpZiAoaXNFbnRyeVBvaW50KSB7CiAgICAgICAgICAgICBhdXRvIHN0cnVjdFZhcmlh
YmxlRGVjbGFyYXRpb24gPSBtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4o
ZnVuY3Rpb25EZWZpbml0aW9uLm9yaWdpbigpLCBBU1Q6OlF1YWxpZmllcnMoKSwKLSAgICAgICAg
ICAgICAgICBtX3N0cnVjdFR5cGUtPmNsb25lKCksIFN0cmluZygpLCBXVEY6Om51bGxvcHQsIFdU
Rjo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgbV9zdHJ1Y3RUeXBlLT5jbG9uZSgpLCBTdHJp
bmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKTsKIAogICAgICAgICAgICAgYXV0byBzdHJ1Y3RW
YXJpYWJsZVJlZmVyZW5jZSA9IG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZVJlZmVyZW5jZT4o
QVNUOjpWYXJpYWJsZVJlZmVyZW5jZTo6d3JhcChzdHJ1Y3RWYXJpYWJsZURlY2xhcmF0aW9uKSk7
CiAgICAgICAgICAgICBzdHJ1Y3RWYXJpYWJsZVJlZmVyZW5jZS0+c2V0VHlwZShtX3N0cnVjdFR5
cGUtPmNsb25lKCkpOwpAQCAtMTQ0LDEyICsxNDQsMTIgQEAgcHVibGljOgogICAgICAgICAgICAg
c3RydWN0VmFyaWFibGVEZWNsYXJhdGlvbnMuYXBwZW5kKFdURk1vdmUoc3RydWN0VmFyaWFibGVE
ZWNsYXJhdGlvbikpOwogICAgICAgICAgICAgYXV0byBzdHJ1Y3REZWNsYXJhdGlvblN0YXRlbWVu
dCA9IG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudD4oZnVu
Y3Rpb25EZWZpbml0aW9uLm9yaWdpbigpLCBXVEZNb3ZlKHN0cnVjdFZhcmlhYmxlRGVjbGFyYXRp
b25zKSk7CiAKLSAgICAgICAgICAgIGF1dG8gbWFrZVBvaW50ZXJFeHByZXNzaW9uID0gbWFrZVVu
aXF1ZVJlZjxBU1Q6Ok1ha2VQb2ludGVyRXhwcmVzc2lvbj4oZnVuY3Rpb25EZWZpbml0aW9uLm9y
aWdpbigpLCBXVEZNb3ZlKHN0cnVjdFZhcmlhYmxlUmVmZXJlbmNlKSk7CisgICAgICAgICAgICBh
dXRvIG1ha2VQb2ludGVyRXhwcmVzc2lvbiA9IHN0ZDo6bWFrZV91bmlxdWU8QVNUOjpNYWtlUG9p
bnRlckV4cHJlc3Npb24+KGZ1bmN0aW9uRGVmaW5pdGlvbi5vcmlnaW4oKSwgV1RGTW92ZShzdHJ1
Y3RWYXJpYWJsZVJlZmVyZW5jZSkpOwogICAgICAgICAgICAgbWFrZVBvaW50ZXJFeHByZXNzaW9u
LT5zZXRUeXBlKG1fcG9pbnRlclRvU3RydWN0VHlwZS0+Y2xvbmUoKSk7CiAgICAgICAgICAgICBt
YWtlUG9pbnRlckV4cHJlc3Npb24tPnNldFR5cGVBbm5vdGF0aW9uKEFTVDo6UmlnaHRWYWx1ZSgp
KTsKIAogICAgICAgICAgICAgYXV0byBwb2ludGVyRGVjbGFyYXRpb24gPSBtYWtlVW5pcXVlUmVm
PEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oZnVuY3Rpb25EZWZpbml0aW9uLm9yaWdpbigpLCBB
U1Q6OlF1YWxpZmllcnMoKSwKLSAgICAgICAgICAgICAgICBtX3BvaW50ZXJUb1N0cnVjdFR5cGUt
PmNsb25lKCksICJ3cmFwcGVyIl9zLCBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFVuaXF1ZVJlZjxB
U1Q6OkV4cHJlc3Npb24+PihXVEZNb3ZlKG1ha2VQb2ludGVyRXhwcmVzc2lvbikpKTsKKyAgICAg
ICAgICAgICAgICBtX3BvaW50ZXJUb1N0cnVjdFR5cGUtPmNsb25lKCksICJ3cmFwcGVyIl9zLCBX
VEY6Om51bGxvcHQsIFdURk1vdmUobWFrZVBvaW50ZXJFeHByZXNzaW9uKSk7CiAgICAgICAgICAg
ICBtX3N0cnVjdFZhcmlhYmxlID0gJnBvaW50ZXJEZWNsYXJhdGlvbjsKIAogICAgICAgICAgICAg
QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9ucyBwb2ludGVyVmFyaWFibGVEZWNsYXJhdGlvbnM7CkBA
IC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgZnVuY3Rpb25EZWZpbml0aW9u
LmJsb2NrKCkuc3RhdGVtZW50cygpLmluc2VydCgxLCBXVEZNb3ZlKHBvaW50ZXJEZWNsYXJhdGlv
blN0YXRlbWVudCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byBwb2ludGVy
RGVjbGFyYXRpb24gPSBtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oZnVu
Y3Rpb25EZWZpbml0aW9uLm9yaWdpbigpLCBBU1Q6OlF1YWxpZmllcnMoKSwKLSAgICAgICAgICAg
ICAgICBtX3BvaW50ZXJUb1N0cnVjdFR5cGUtPmNsb25lKCksICJ3cmFwcGVyIl9zLCBXVEY6Om51
bGxvcHQsIFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgbV9wb2ludGVyVG9TdHJ1Y3RU
eXBlLT5jbG9uZSgpLCAid3JhcHBlciJfcywgV1RGOjpudWxsb3B0LCBudWxscHRyKTsKICAgICAg
ICAgICAgIG1fc3RydWN0VmFyaWFibGUgPSAmcG9pbnRlckRlY2xhcmF0aW9uOwogICAgICAgICAg
ICAgZnVuY3Rpb25EZWZpbml0aW9uLnBhcmFtZXRlcnMoKS5hcHBlbmQoV1RGTW92ZShwb2ludGVy
RGVjbGFyYXRpb24pKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcm9wZXJ0eVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJvcGVydHlSZXNvbHZlci5jcHAKaW5kZXgg
MDkwMTI2NDgwNWYuLjE3ZmIwOTU0YzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb3BlcnR5UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJvcGVydHlSZXNvbHZlci5jcHAKQEAg
LTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgT3B0aW9uYWw8QW5kZXJDYWxsQXJndW1lbnRSZXN1bHQ+
IHdyYXBBbmRlckNhbGxBcmd1bWVudChVbmlxdWVSZWY8QVNUOjpFeAogICAgIH0KICAgICBpZiAo
dGhyZWFkQW5kZXJGdW5jdGlvbikgewogICAgICAgICBhdXRvIG9yaWdpbiA9IGV4cHJlc3Npb24t
Pm9yaWdpbigpOwotICAgICAgICBhdXRvIHZhcmlhYmxlRGVjbGFyYXRpb24gPSBtYWtlVW5pcXVl
UmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKG9yaWdpbiksIEFTVDo6
UXVhbGlmaWVycygpLCBiYXNlVHlwZS0+Y2xvbmUoKSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwg
V1RGOjpudWxsb3B0KTsKKyAgICAgICAgYXV0byB2YXJpYWJsZURlY2xhcmF0aW9uID0gbWFrZVVu
aXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24+KExleGVyOjpUb2tlbihvcmlnaW4pLCBB
U1Q6OlF1YWxpZmllcnMoKSwgYmFzZVR5cGUtPmNsb25lKCksIFN0cmluZygpLCBXVEY6Om51bGxv
cHQsIG51bGxwdHIpOwogCiAgICAgICAgIGF1dG8gdmFyaWFibGVSZWZlcmVuY2UxID0gbWFrZVVu
aXF1ZVJlZjxBU1Q6OlZhcmlhYmxlUmVmZXJlbmNlPihBU1Q6OlZhcmlhYmxlUmVmZXJlbmNlOjp3
cmFwKHZhcmlhYmxlRGVjbGFyYXRpb24pKTsKICAgICAgICAgdmFyaWFibGVSZWZlcmVuY2UxLT5z
ZXRUeXBlKGJhc2VUeXBlLT5jbG9uZSgpKTsKQEAgLTMxMiwxNCArMzEyLDE0IEBAIHN0YXRpYyBP
cHRpb25hbDxNb2RpZnlSZXN1bHQ+IG1vZGlmeShBU1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lv
biYgcHJvcGVydHlBY2NlCiAgICAgQVNUOjpFeHByZXNzaW9uJiBpbm5lckxlZnRFeHByZXNzaW9u
ID0gbGVmdEV4cHJlc3Npb247CiAKICAgICAvLyBDcmVhdGUgInAiIHZhcmlhYmxlLgotICAgIGF1
dG8gcG9pbnRlclZhcmlhYmxlID0gbWFrZVVuaXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRp
b24+KExleGVyOjpUb2tlbihsZWZ0RXhwcmVzc2lvbi0+b3JpZ2luKCkpLCBBU1Q6OlF1YWxpZmll
cnMoKSwgVW5pcXVlUmVmPEFTVDo6VW5uYW1lZFR5cGU+KG1ha2VVbmlxdWVSZWY8QVNUOjpQb2lu
dGVyVHlwZT4oTGV4ZXI6OlRva2VuKGxlZnRFeHByZXNzaW9uLT5vcmlnaW4oKSksICpsZWZ0RXhw
cmVzc2lvbi0+dHlwZUFubm90YXRpb24oKS5sZWZ0QWRkcmVzc1NwYWNlKCksIGxlZnRFeHByZXNz
aW9uLT5yZXNvbHZlZFR5cGUoKS5jbG9uZSgpKSksIFN0cmluZygpLCBXVEY6Om51bGxvcHQsIFdU
Rjo6bnVsbG9wdCk7CisgICAgYXV0byBwb2ludGVyVmFyaWFibGUgPSBtYWtlVW5pcXVlUmVmPEFT
VDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKGxlZnRFeHByZXNzaW9uLT5vcmln
aW4oKSksIEFTVDo6UXVhbGlmaWVycygpLCBVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4obWFr
ZVVuaXF1ZVJlZjxBU1Q6OlBvaW50ZXJUeXBlPihMZXhlcjo6VG9rZW4obGVmdEV4cHJlc3Npb24t
Pm9yaWdpbigpKSwgKmxlZnRFeHByZXNzaW9uLT50eXBlQW5ub3RhdGlvbigpLmxlZnRBZGRyZXNz
U3BhY2UoKSwgbGVmdEV4cHJlc3Npb24tPnJlc29sdmVkVHlwZSgpLmNsb25lKCkpKSwgU3RyaW5n
KCksIFdURjo6bnVsbG9wdCwgbnVsbHB0cik7CiAKICAgICAvLyBDcmVhdGUgInEiIGFuZCAiciIg
dmFyaWFibGVzLgogICAgIFZlY3RvcjxVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9u
Pj4gaW50ZXJtZWRpYXRlVmFyaWFibGVzOwogICAgIGludGVybWVkaWF0ZVZhcmlhYmxlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KGNoYWluLnNpemUoKSAtIDEpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAxOyBpIDwgY2hhaW4uc2l6ZSgpOyArK2kpIHsKICAgICAgICAgYXV0byYgcHJvcGVydHlBY2Nl
c3NFeHByZXNzaW9uID0gc3RhdGljX2Nhc3Q8QVNUOjpQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24m
PihjaGFpbltpXSk7Ci0gICAgICAgIGludGVybWVkaWF0ZVZhcmlhYmxlcy51bmNoZWNrZWRBcHBl
bmQobWFrZVVuaXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24+KExleGVyOjpUb2tlbihw
cm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24ub3JpZ2luKCkpLCBBU1Q6OlF1YWxpZmllcnMoKSwgcHJv
cGVydHlBY2Nlc3NFeHByZXNzaW9uLnJlc29sdmVkVHlwZSgpLmNsb25lKCksIFN0cmluZygpLCBX
VEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCkpOworICAgICAgICBpbnRlcm1lZGlhdGVWYXJpYWJs
ZXMudW5jaGVja2VkQXBwZW5kKG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9u
PihMZXhlcjo6VG9rZW4ocHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLm9yaWdpbigpKSwgQVNUOjpR
dWFsaWZpZXJzKCksIHByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5yZXNvbHZlZFR5cGUoKS5jbG9u
ZSgpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKSk7CiAgICAgfQogCiAgICAgLy8g
Q29uc2lkZXIgYVtmb28oKV1bYl0gPSBjOwpAQCAtMzUwLDcgKzM1MCw3IEBAIHN0YXRpYyBPcHRp
b25hbDxNb2RpZnlSZXN1bHQ+IG1vZGlmeShBU1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiYg
cHJvcGVydHlBY2NlCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBh
dXRvJiBpbmRleEV4cHJlc3Npb24gPSBkb3duY2FzdDxBU1Q6OkluZGV4RXhwcmVzc2lvbj4ocHJv
cGVydHlBY2Nlc3NFeHByZXNzaW9uKTsKLSAgICAgICAgaW5kZXhWYXJpYWJsZXMudW5jaGVja2Vk
QXBwZW5kKG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihMZXhlcjo6VG9r
ZW4ocHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLm9yaWdpbigpKSwgQVNUOjpRdWFsaWZpZXJzKCks
IGluZGV4RXhwcmVzc2lvbi5pbmRleEV4cHJlc3Npb24oKS5yZXNvbHZlZFR5cGUoKS5jbG9uZSgp
LCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQpKTsKKyAgICAgICAgaW5kZXhW
YXJpYWJsZXMudW5jaGVja2VkQXBwZW5kKG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xh
cmF0aW9uPihMZXhlcjo6VG9rZW4ocHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLm9yaWdpbigpKSwg
QVNUOjpRdWFsaWZpZXJzKCksIGluZGV4RXhwcmVzc2lvbi5pbmRleEV4cHJlc3Npb24oKS5yZXNv
bHZlZFR5cGUoKS5jbG9uZSgpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKSk7CiAg
ICAgfQogCiAgICAgVmVjdG9yPFVuaXF1ZVJlZjxBU1Q6OkV4cHJlc3Npb24+PiBleHByZXNzaW9u
czsKQEAgLTU2Miw3ICs1NjIsNyBAQCB2b2lkIFByb3BlcnR5UmVzb2x2ZXI6OnZpc2l0KEFTVDo6
UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbiYgcmVhZE1vZGlmeVdyaXRlRXhwcgogICAgICAgICBh
dXRvIGJhc2VUeXBlID0gcmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5sZWZ0VmFsdWUoKS5yZXNv
bHZlZFR5cGUoKS5jbG9uZSgpOwogICAgICAgICBhdXRvIHBvaW50ZXJUeXBlID0gbWFrZVVuaXF1
ZVJlZjxBU1Q6OlBvaW50ZXJUeXBlPihMZXhlcjo6VG9rZW4ocmVhZE1vZGlmeVdyaXRlRXhwcmVz
c2lvbi5sZWZ0VmFsdWUoKS5vcmlnaW4oKSksICpyZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmxl
ZnRWYWx1ZSgpLnR5cGVBbm5vdGF0aW9uKCkubGVmdEFkZHJlc3NTcGFjZSgpLCBiYXNlVHlwZS0+
Y2xvbmUoKSk7CiAKLSAgICAgICAgYXV0byBwb2ludGVyVmFyaWFibGUgPSBtYWtlVW5pcXVlUmVm
PEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKHJlYWRNb2RpZnlXcml0ZUV4
cHJlc3Npb24ubGVmdFZhbHVlKCkub3JpZ2luKCkpLCBBU1Q6OlF1YWxpZmllcnMoKSwgVW5pcXVl
UmVmPEFTVDo6VW5uYW1lZFR5cGU+KHBvaW50ZXJUeXBlLT5jbG9uZSgpKSwgU3RyaW5nKCksIFdU
Rjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKKyAgICAgICAgYXV0byBwb2ludGVyVmFyaWFibGUg
PSBtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKHJl
YWRNb2RpZnlXcml0ZUV4cHJlc3Npb24ubGVmdFZhbHVlKCkub3JpZ2luKCkpLCBBU1Q6OlF1YWxp
ZmllcnMoKSwgVW5pcXVlUmVmPEFTVDo6VW5uYW1lZFR5cGU+KHBvaW50ZXJUeXBlLT5jbG9uZSgp
KSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgbnVsbHB0cik7CiAKICAgICAgICAgVmVjdG9yPFVu
aXF1ZVJlZjxBU1Q6OkV4cHJlc3Npb24+PiBleHByZXNzaW9uczsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTeW50aGVzaXplQXJyYXlPcGVy
YXRvckxlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExT
TFN5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmNwcAppbmRleCBiNTg0YjllNDRlOS4uOWFk
N2ZjNTBlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNM
L1dITFNMU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5n
dGguY3BwCkBAIC02NSw3ICs2NSw3IEBAIGJvb2wgc3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5n
dGgoUHJvZ3JhbSYgcHJvZ3JhbSkKICAgICBib29sIGlzT3BlcmF0b3IgPSB0cnVlOwogCiAgICAg
Zm9yIChhdXRvJiBhcnJheVR5cGUgOiBhcnJheVR5cGVzKSB7Ci0gICAgICAgIGF1dG8gdmFyaWFi
bGVEZWNsYXJhdGlvbiA9IG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihM
ZXhlcjo6VG9rZW4oYXJyYXlUeXBlLmdldCgpLm9yaWdpbigpKSwgQVNUOjpRdWFsaWZpZXJzKCks
IGFycmF5VHlwZS5nZXQoKS5jbG9uZSgpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBXVEY6Om51
bGxvcHQpOworICAgICAgICBhdXRvIHZhcmlhYmxlRGVjbGFyYXRpb24gPSBtYWtlVW5pcXVlUmVm
PEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKGFycmF5VHlwZS5nZXQoKS5v
cmlnaW4oKSksIEFTVDo6UXVhbGlmaWVycygpLCBhcnJheVR5cGUuZ2V0KCkuY2xvbmUoKSwgU3Ry
aW5nKCksIFdURjo6bnVsbG9wdCwgbnVsbHB0cik7CiAgICAgICAgIEFTVDo6VmFyaWFibGVEZWNs
YXJhdGlvbnMgcGFyYW1ldGVyczsKICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoV1RGTW92ZSh2
YXJpYWJsZURlY2xhcmF0aW9uKSk7CiAgICAgICAgIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJh
dGlvbiBuYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uKEFTVDo6RnVuY3Rpb25EZWNsYXJhdGlvbihM
ZXhlcjo6VG9rZW4oYXJyYXlUeXBlLmdldCgpLm9yaWdpbigpKSwgQVNUOjpBdHRyaWJ1dGVCbG9j
aygpLCBXVEY6Om51bGxvcHQsIEFTVDo6VHlwZVJlZmVyZW5jZTo6d3JhcChMZXhlcjo6VG9rZW4o
YXJyYXlUeXBlLmdldCgpLm9yaWdpbigpKSwgcHJvZ3JhbS5pbnRyaW5zaWNzKCkudWludFR5cGUo
KSksICJvcGVyYXRvci5sZW5ndGgiX3N0ciwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGOjpudWxs
b3B0LCBpc09wZXJhdG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9XSExTTFN5bnRoZXNpemVDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTeW50aGVzaXplQ29uc3RydWN0b3JzLmNwcApp
bmRleCBjNTIyZWE3N2Q5MC4uMDAzMWY5OWY5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3ludGhlc2l6ZUNvbnN0cnVjdG9ycy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTeW50aGVzaXplQ29u
c3RydWN0b3JzLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wgc3ludGhlc2l6ZUNvbnN0cnVj
dG9ycyhQcm9ncmFtJiBwcm9ncmFtKQogICAgIGZvciAoYXV0byYgdW5uYW1lZFR5cGVLZXkgOiB1
bm5hbWVkVHlwZXMpIHsKICAgICAgICAgYXV0byYgdW5uYW1lZFR5cGUgPSB1bm5hbWVkVHlwZUtl
eS51bm5hbWVkVHlwZSgpOwogCi0gICAgICAgIGF1dG8gdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1h
a2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihMZXhlcjo6VG9rZW4odW5uYW1l
ZFR5cGUub3JpZ2luKCkpLCBBU1Q6OlF1YWxpZmllcnMoKSwgdW5uYW1lZFR5cGUuY2xvbmUoKSwg
U3RyaW5nKCksIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKKyAgICAgICAgYXV0byB2YXJp
YWJsZURlY2xhcmF0aW9uID0gbWFrZVVuaXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24+
KExleGVyOjpUb2tlbih1bm5hbWVkVHlwZS5vcmlnaW4oKSksIEFTVDo6UXVhbGlmaWVycygpLCB1
bm5hbWVkVHlwZS5jbG9uZSgpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKTsKICAg
ICAgICAgQVNUOjpWYXJpYWJsZURlY2xhcmF0aW9ucyBwYXJhbWV0ZXJzOwogICAgICAgICBwYXJh
bWV0ZXJzLmFwcGVuZChXVEZNb3ZlKHZhcmlhYmxlRGVjbGFyYXRpb24pKTsKICAgICAgICAgQVNU
OjpOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uIGNvcHlDb25zdHJ1Y3RvcihBU1Q6OkZ1bmN0aW9u
RGVjbGFyYXRpb24oTGV4ZXI6OlRva2VuKHVubmFtZWRUeXBlLm9yaWdpbigpKSwgQVNUOjpBdHRy
aWJ1dGVCbG9jaygpLCBXVEY6Om51bGxvcHQsIHVubmFtZWRUeXBlLmNsb25lKCksICJvcGVyYXRv
ciBjYXN0Il9zdHIsIFdURk1vdmUocGFyYW1ldGVycyksIFdURjo6bnVsbG9wdCwgaXNPcGVyYXRv
cikpOwpAQCAtMTc0LDcgKzE3NCw3IEBAIGJvb2wgc3ludGhlc2l6ZUNvbnN0cnVjdG9ycyhQcm9n
cmFtJiBwcm9ncmFtKQogICAgICAgICBpZiAoaXM8QVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24+
KHN0YXRpY19jYXN0PEFTVDo6TmFtZWRUeXBlJj4obmFtZWRUeXBlKSkgJiYgZG93bmNhc3Q8QVNU
OjpOYXRpdmVUeXBlRGVjbGFyYXRpb24+KHN0YXRpY19jYXN0PEFTVDo6TmFtZWRUeXBlJj4obmFt
ZWRUeXBlKSkuaXNBdG9taWMoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGF1
dG8gdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xh
cmF0aW9uPihMZXhlcjo6VG9rZW4obmFtZWRUeXBlLmdldCgpLm9yaWdpbigpKSwgQVNUOjpRdWFs
aWZpZXJzKCksIFVuaXF1ZVJlZjxBU1Q6OlVubmFtZWRUeXBlPihBU1Q6OlR5cGVSZWZlcmVuY2U6
OndyYXAoTGV4ZXI6OlRva2VuKG5hbWVkVHlwZS5nZXQoKS5vcmlnaW4oKSksIG5hbWVkVHlwZS5n
ZXQoKSkpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQpOworICAgICAgICBh
dXRvIHZhcmlhYmxlRGVjbGFyYXRpb24gPSBtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNs
YXJhdGlvbj4oTGV4ZXI6OlRva2VuKG5hbWVkVHlwZS5nZXQoKS5vcmlnaW4oKSksIEFTVDo6UXVh
bGlmaWVycygpLCBVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4oQVNUOjpUeXBlUmVmZXJlbmNl
Ojp3cmFwKExleGVyOjpUb2tlbihuYW1lZFR5cGUuZ2V0KCkub3JpZ2luKCkpLCBuYW1lZFR5cGUu
Z2V0KCkpKSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgbnVsbHB0cik7CiAgICAgICAgIEFTVDo6
VmFyaWFibGVEZWNsYXJhdGlvbnMgcGFyYW1ldGVyczsKICAgICAgICAgcGFyYW1ldGVycy5hcHBl
bmQoV1RGTW92ZSh2YXJpYWJsZURlY2xhcmF0aW9uKSk7CiAgICAgICAgIEFTVDo6TmF0aXZlRnVu
Y3Rpb25EZWNsYXJhdGlvbiBjb3B5Q29uc3RydWN0b3IoQVNUOjpGdW5jdGlvbkRlY2xhcmF0aW9u
KExleGVyOjpUb2tlbihuYW1lZFR5cGUuZ2V0KCkub3JpZ2luKCkpLCBBU1Q6OkF0dHJpYnV0ZUJs
b2NrKCksIFdURjo6bnVsbG9wdCwgQVNUOjpUeXBlUmVmZXJlbmNlOjp3cmFwKExleGVyOjpUb2tl
bihuYW1lZFR5cGUuZ2V0KCkub3JpZ2luKCkpLCBuYW1lZFR5cGUuZ2V0KCkpLCAib3BlcmF0b3Ig
Y2FzdCJfc3RyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBXVEY6Om51bGxvcHQsIGlzT3BlcmF0b3Ip
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNM
U3ludGhlc2l6ZUVudW1lcmF0aW9uRnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dITFNML1dITFNMU3ludGhlc2l6ZUVudW1lcmF0aW9uRnVuY3Rpb25zLmNwcApp
bmRleCBkNzRhZjMzYTFmMC4uYWY3NDE2MGRmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3ludGhlc2l6ZUVudW1lcmF0aW9uRnVuY3Rpb25z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN5bnRo
ZXNpemVFbnVtZXJhdGlvbkZ1bmN0aW9ucy5jcHAKQEAgLTQxLDggKzQxLDggQEAgYm9vbCBzeW50
aGVzaXplRW51bWVyYXRpb25GdW5jdGlvbnMoUHJvZ3JhbSYgcHJvZ3JhbSkKICAgICBib29sIGlz
T3BlcmF0b3IgPSB0cnVlOwogICAgIGZvciAoYXV0byYgZW51bWVyYXRpb25EZWZpbml0aW9uIDog
cHJvZ3JhbS5lbnVtZXJhdGlvbkRlZmluaXRpb25zKCkpIHsKICAgICAgICAgewotICAgICAgICAg
ICAgYXV0byB2YXJpYWJsZURlY2xhcmF0aW9uMSA9IG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJs
ZURlY2xhcmF0aW9uPihMZXhlcjo6VG9rZW4oZW51bWVyYXRpb25EZWZpbml0aW9uLT5vcmlnaW4o
KSksIEFTVDo6UXVhbGlmaWVycygpLCBVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4oQVNUOjpU
eXBlUmVmZXJlbmNlOjp3cmFwKExleGVyOjpUb2tlbihlbnVtZXJhdGlvbkRlZmluaXRpb24tPm9y
aWdpbigpKSwgZW51bWVyYXRpb25EZWZpbml0aW9uKSksIFN0cmluZygpLCBXVEY6Om51bGxvcHQs
IFdURjo6bnVsbG9wdCk7Ci0gICAgICAgICAgICBhdXRvIHZhcmlhYmxlRGVjbGFyYXRpb24yID0g
bWFrZVVuaXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24+KExleGVyOjpUb2tlbihlbnVt
ZXJhdGlvbkRlZmluaXRpb24tPm9yaWdpbigpKSwgQVNUOjpRdWFsaWZpZXJzKCksIFVuaXF1ZVJl
ZjxBU1Q6OlVubmFtZWRUeXBlPihBU1Q6OlR5cGVSZWZlcmVuY2U6OndyYXAoTGV4ZXI6OlRva2Vu
KGVudW1lcmF0aW9uRGVmaW5pdGlvbi0+b3JpZ2luKCkpLCBlbnVtZXJhdGlvbkRlZmluaXRpb24p
KSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIGF1
dG8gdmFyaWFibGVEZWNsYXJhdGlvbjEgPSBtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNs
YXJhdGlvbj4oTGV4ZXI6OlRva2VuKGVudW1lcmF0aW9uRGVmaW5pdGlvbi0+b3JpZ2luKCkpLCBB
U1Q6OlF1YWxpZmllcnMoKSwgVW5pcXVlUmVmPEFTVDo6VW5uYW1lZFR5cGU+KEFTVDo6VHlwZVJl
ZmVyZW5jZTo6d3JhcChMZXhlcjo6VG9rZW4oZW51bWVyYXRpb25EZWZpbml0aW9uLT5vcmlnaW4o
KSksIGVudW1lcmF0aW9uRGVmaW5pdGlvbikpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxs
cHRyKTsKKyAgICAgICAgICAgIGF1dG8gdmFyaWFibGVEZWNsYXJhdGlvbjIgPSBtYWtlVW5pcXVl
UmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKGVudW1lcmF0aW9uRGVm
aW5pdGlvbi0+b3JpZ2luKCkpLCBBU1Q6OlF1YWxpZmllcnMoKSwgVW5pcXVlUmVmPEFTVDo6VW5u
YW1lZFR5cGU+KEFTVDo6VHlwZVJlZmVyZW5jZTo6d3JhcChMZXhlcjo6VG9rZW4oZW51bWVyYXRp
b25EZWZpbml0aW9uLT5vcmlnaW4oKSksIGVudW1lcmF0aW9uRGVmaW5pdGlvbikpLCBTdHJpbmco
KSwgV1RGOjpudWxsb3B0LCBudWxscHRyKTsKICAgICAgICAgICAgIEFTVDo6VmFyaWFibGVEZWNs
YXJhdGlvbnMgcGFyYW1ldGVyczsKICAgICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5kKFdURk1v
dmUodmFyaWFibGVEZWNsYXJhdGlvbjEpKTsKICAgICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5k
KFdURk1vdmUodmFyaWFibGVEZWNsYXJhdGlvbjIpKTsKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCBz
eW50aGVzaXplRW51bWVyYXRpb25GdW5jdGlvbnMoUHJvZ3JhbSYgcHJvZ3JhbSkKICAgICAgICAg
fQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIGF1dG8gdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1h
a2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uPihMZXhlcjo6VG9rZW4oZW51bWVy
YXRpb25EZWZpbml0aW9uLT5vcmlnaW4oKSksIEFTVDo6UXVhbGlmaWVycygpLCBVbmlxdWVSZWY8
QVNUOjpVbm5hbWVkVHlwZT4oQVNUOjpUeXBlUmVmZXJlbmNlOjp3cmFwKExleGVyOjpUb2tlbihl
bnVtZXJhdGlvbkRlZmluaXRpb24tPm9yaWdpbigpKSwgZW51bWVyYXRpb25EZWZpbml0aW9uKSks
IFN0cmluZygpLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICBhdXRv
IHZhcmlhYmxlRGVjbGFyYXRpb24gPSBtYWtlVW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJh
dGlvbj4oTGV4ZXI6OlRva2VuKGVudW1lcmF0aW9uRGVmaW5pdGlvbi0+b3JpZ2luKCkpLCBBU1Q6
OlF1YWxpZmllcnMoKSwgVW5pcXVlUmVmPEFTVDo6VW5uYW1lZFR5cGU+KEFTVDo6VHlwZVJlZmVy
ZW5jZTo6d3JhcChMZXhlcjo6VG9rZW4oZW51bWVyYXRpb25EZWZpbml0aW9uLT5vcmlnaW4oKSks
IGVudW1lcmF0aW9uRGVmaW5pdGlvbikpLCBTdHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRy
KTsKICAgICAgICAgICAgIEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbnMgcGFyYW1ldGVyczsKICAg
ICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5kKFdURk1vdmUodmFyaWFibGVEZWNsYXJhdGlvbikp
OwogICAgICAgICAgICAgQVNUOjpOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uIG5hdGl2ZUZ1bmN0
aW9uRGVjbGFyYXRpb24oQVNUOjpGdW5jdGlvbkRlY2xhcmF0aW9uKExleGVyOjpUb2tlbihlbnVt
ZXJhdGlvbkRlZmluaXRpb24tPm9yaWdpbigpKSwgQVNUOjpBdHRyaWJ1dGVCbG9jaygpLCBXVEY6
Om51bGxvcHQsIGVudW1lcmF0aW9uRGVmaW5pdGlvbi0+dHlwZSgpLmNsb25lKCksICJvcGVyYXRv
ci52YWx1ZSJfc3RyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBXVEY6Om51bGxvcHQsIGlzT3BlcmF0
b3IpKTsKQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBzeW50aGVzaXplRW51bWVyYXRpb25GdW5jdGlv
bnMoUHJvZ3JhbSYgcHJvZ3JhbSkKICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGF1dG8gdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURl
Y2xhcmF0aW9uPihMZXhlcjo6VG9rZW4oZW51bWVyYXRpb25EZWZpbml0aW9uLT5vcmlnaW4oKSks
IEFTVDo6UXVhbGlmaWVycygpLCBVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4oQVNUOjpUeXBl
UmVmZXJlbmNlOjp3cmFwKExleGVyOjpUb2tlbihlbnVtZXJhdGlvbkRlZmluaXRpb24tPm9yaWdp
bigpKSwgZW51bWVyYXRpb25EZWZpbml0aW9uKSksIFN0cmluZygpLCBXVEY6Om51bGxvcHQsIFdU
Rjo6bnVsbG9wdCk7CisgICAgICAgICAgICBhdXRvIHZhcmlhYmxlRGVjbGFyYXRpb24gPSBtYWtl
VW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKGVudW1lcmF0
aW9uRGVmaW5pdGlvbi0+b3JpZ2luKCkpLCBBU1Q6OlF1YWxpZmllcnMoKSwgVW5pcXVlUmVmPEFT
VDo6VW5uYW1lZFR5cGU+KEFTVDo6VHlwZVJlZmVyZW5jZTo6d3JhcChMZXhlcjo6VG9rZW4oZW51
bWVyYXRpb25EZWZpbml0aW9uLT5vcmlnaW4oKSksIGVudW1lcmF0aW9uRGVmaW5pdGlvbikpLCBT
dHJpbmcoKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKTsKICAgICAgICAgICAgIEFTVDo6VmFyaWFi
bGVEZWNsYXJhdGlvbnMgcGFyYW1ldGVyczsKICAgICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5k
KFdURk1vdmUodmFyaWFibGVEZWNsYXJhdGlvbikpOwogICAgICAgICAgICAgQVNUOjpOYXRpdmVG
dW5jdGlvbkRlY2xhcmF0aW9uIG5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24oQVNUOjpGdW5jdGlv
bkRlY2xhcmF0aW9uKExleGVyOjpUb2tlbihlbnVtZXJhdGlvbkRlZmluaXRpb24tPm9yaWdpbigp
KSwgQVNUOjpBdHRyaWJ1dGVCbG9jaygpLCBXVEY6Om51bGxvcHQsIGVudW1lcmF0aW9uRGVmaW5p
dGlvbi0+dHlwZSgpLmNsb25lKCksICJvcGVyYXRvciBjYXN0Il9zdHIsIFdURk1vdmUocGFyYW1l
dGVycyksIFdURjo6bnVsbG9wdCwgaXNPcGVyYXRvcikpOwpAQCAtNzAsNyArNzAsNyBAQCBib29s
IHN5bnRoZXNpemVFbnVtZXJhdGlvbkZ1bmN0aW9ucyhQcm9ncmFtJiBwcm9ncmFtKQogICAgICAg
ICB9CiAKICAgICAgICAgewotICAgICAgICAgICAgYXV0byB2YXJpYWJsZURlY2xhcmF0aW9uID0g
bWFrZVVuaXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24+KExleGVyOjpUb2tlbihlbnVt
ZXJhdGlvbkRlZmluaXRpb24tPm9yaWdpbigpKSwgQVNUOjpRdWFsaWZpZXJzKCksIGVudW1lcmF0
aW9uRGVmaW5pdGlvbi0+dHlwZSgpLmNsb25lKCksIFN0cmluZygpLCBXVEY6Om51bGxvcHQsIFdU
Rjo6bnVsbG9wdCk7CisgICAgICAgICAgICBhdXRvIHZhcmlhYmxlRGVjbGFyYXRpb24gPSBtYWtl
VW5pcXVlUmVmPEFTVDo6VmFyaWFibGVEZWNsYXJhdGlvbj4oTGV4ZXI6OlRva2VuKGVudW1lcmF0
aW9uRGVmaW5pdGlvbi0+b3JpZ2luKCkpLCBBU1Q6OlF1YWxpZmllcnMoKSwgZW51bWVyYXRpb25E
ZWZpbml0aW9uLT50eXBlKCkuY2xvbmUoKSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgbnVsbHB0
cik7CiAgICAgICAgICAgICBBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb25zIHBhcmFtZXRlcnM7CiAg
ICAgICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChXVEZNb3ZlKHZhcmlhYmxlRGVjbGFyYXRpb24p
KTsKICAgICAgICAgICAgIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlvbiBuYXRpdmVGdW5j
dGlvbkRlY2xhcmF0aW9uKEFTVDo6RnVuY3Rpb25EZWNsYXJhdGlvbihMZXhlcjo6VG9rZW4oZW51
bWVyYXRpb25EZWZpbml0aW9uLT5vcmlnaW4oKSksIEFTVDo6QXR0cmlidXRlQmxvY2soKSwgV1RG
OjpudWxsb3B0LCBVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4oQVNUOjpUeXBlUmVmZXJlbmNl
Ojp3cmFwKExleGVyOjpUb2tlbihlbnVtZXJhdGlvbkRlZmluaXRpb24tPm9yaWdpbigpKSwgZW51
bWVyYXRpb25EZWZpbml0aW9uKSksICJvcGVyYXRvciBjYXN0Il9zdHIsIFdURk1vdmUocGFyYW1l
dGVycyksIFdURjo6bnVsbG9wdCwgaXNPcGVyYXRvcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTeW50aGVzaXplU3RydWN0dXJlQWNjZXNz
b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3ludGhl
c2l6ZVN0cnVjdHVyZUFjY2Vzc29ycy5jcHAKaW5kZXggM2MwYmMyYjhjMzcuLjI5YTZmZGI1Y2Jm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN5
bnRoZXNpemVTdHJ1Y3R1cmVBY2Nlc3NvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dITFNML1dITFNMU3ludGhlc2l6ZVN0cnVjdHVyZUFjY2Vzc29ycy5jcHAKQEAg
LTQ3LDcgKzQ3LDcgQEAgYm9vbCBzeW50aGVzaXplU3RydWN0dXJlQWNjZXNzb3JzKFByb2dyYW0m
IHByb2dyYW0pCiAgICAgICAgICAgICAvLyBUaGUgYW5kZXI6IG9wZXJhdG9yJi5maWVsZAogICAg
ICAgICAgICAgYXV0byBjcmVhdGVBbmRlciA9IFsmXShBU1Q6OkFkZHJlc3NTcGFjZSBhZGRyZXNz
U3BhY2UpIC0+IEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlvbiB7CiAgICAgICAgICAgICAg
ICAgYXV0byBhcmd1bWVudFR5cGUgPSBtYWtlVW5pcXVlUmVmPEFTVDo6UG9pbnRlclR5cGU+KExl
eGVyOjpUb2tlbihzdHJ1Y3R1cmVFbGVtZW50Lm9yaWdpbigpKSwgYWRkcmVzc1NwYWNlLCBBU1Q6
OlR5cGVSZWZlcmVuY2U6OndyYXAoTGV4ZXI6OlRva2VuKHN0cnVjdHVyZUVsZW1lbnQub3JpZ2lu
KCkpLCBzdHJ1Y3R1cmVEZWZpbml0aW9uKSk7Ci0gICAgICAgICAgICAgICAgYXV0byB2YXJpYWJs
ZURlY2xhcmF0aW9uID0gbWFrZVVuaXF1ZVJlZjxBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb24+KExl
eGVyOjpUb2tlbihzdHJ1Y3R1cmVFbGVtZW50Lm9yaWdpbigpKSwgQVNUOjpRdWFsaWZpZXJzKCks
IFVuaXF1ZVJlZjxBU1Q6OlVubmFtZWRUeXBlPihXVEZNb3ZlKGFyZ3VtZW50VHlwZSkpLCBTdHJp
bmcoKSwgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIGF1dG8g
dmFyaWFibGVEZWNsYXJhdGlvbiA9IG1ha2VVbmlxdWVSZWY8QVNUOjpWYXJpYWJsZURlY2xhcmF0
aW9uPihMZXhlcjo6VG9rZW4oc3RydWN0dXJlRWxlbWVudC5vcmlnaW4oKSksIEFTVDo6UXVhbGlm
aWVycygpLCBVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4oV1RGTW92ZShhcmd1bWVudFR5cGUp
KSwgU3RyaW5nKCksIFdURjo6bnVsbG9wdCwgbnVsbHB0cik7CiAgICAgICAgICAgICAgICAgQVNU
OjpWYXJpYWJsZURlY2xhcmF0aW9ucyBwYXJhbWV0ZXJzOwogICAgICAgICAgICAgICAgIHBhcmFt
ZXRlcnMuYXBwZW5kKFdURk1vdmUodmFyaWFibGVEZWNsYXJhdGlvbikpOwogICAgICAgICAgICAg
ICAgIGF1dG8gcmV0dXJuVHlwZSA9IG1ha2VVbmlxdWVSZWY8QVNUOjpQb2ludGVyVHlwZT4oTGV4
ZXI6OlRva2VuKHN0cnVjdHVyZUVsZW1lbnQub3JpZ2luKCkpLCBhZGRyZXNzU3BhY2UsIHN0cnVj
dHVyZUVsZW1lbnQudHlwZSgpLmNsb25lKCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>