<?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>189610</bug_id>
          
          <creation_ts>2018-09-13 19:15:28 -0700</creation_ts>
          <short_desc>WebGL 2 conformance: rgb-format-support.html</short_desc>
          <delta_ts>2018-09-14 17:05:32 -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="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>justin_fan</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>noam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1459625</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-09-13 19:15:28 -0700</bug_when>
    <thetext>WebGL 2 conformance: rbg-format-support.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459626</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-09-13 19:16:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/44403343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459634</commentid>
    <comment_count>2</comment_count>
      <attachid>349726</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-09-13 19:29:45 -0700</bug_when>
    <thetext>Created attachment 349726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459636</commentid>
    <comment_count>3</comment_count>
      <attachid>349727</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-09-13 19:33:34 -0700</bug_when>
    <thetext>Created attachment 349727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459809</commentid>
    <comment_count>4</comment_count>
      <attachid>349727</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-09-14 11:18:24 -0700</bug_when>
    <thetext>Comment on attachment 349727
Patch

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

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:380
&gt; +    // On macOS (OpenGL 4.1) we must emulate GL ES 3/OpenGL 4.2 glGetInternalformativ.

This path might not be just macOS, so just say &quot;On desktop OpenGL&quot;

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:396
&gt; +    // FIXME: The way I understand this is that this will return a MINIMUM numSamples for all accepeted internalformats.
&gt; +    // However, the true value of this on supported GL versions is gleaned via a getInternalformativ call that depends on internalformat.

This isn&apos;t really a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459911</commentid>
    <comment_count>5</comment_count>
      <attachid>349813</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-09-14 15:05:19 -0700</bug_when>
    <thetext>Created attachment 349813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459966</commentid>
    <comment_count>6</comment_count>
      <attachid>349813</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-14 17:05:30 -0700</bug_when>
    <thetext>Comment on attachment 349813
Patch

Clearing flags on attachment: 349813

Committed r236025: &lt;https://trac.webkit.org/changeset/236025&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459967</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-14 17:05:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349726</attachid>
            <date>2018-09-13 19:29:45 -0700</date>
            <delta_ts>2018-09-13 19:33:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189610-20180913192945.patch</filename>
            <type>text/plain</type>
            <size>19730</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAyNGY2YjczZjM3MWFi
MzNkYjc4NmM3MTExMWM2YTQ3YTc3NGY0MC4uNzI1OTgyYWNjNzlkMWVlNGNmZjJmMzdmYWQ4NjAz
NzU5ZjFmMDhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA5LTEzICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgMiBjb25mb3Jt
YW5jZTogcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTYxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ0
MDMzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50aW5nIGdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIChlbXVsYXRpbmcgb24gbWFj
T1MpIGFuZCB1cGRhdGluZyAKKyAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZXtNdWx0aXNhbXBs
ZX0gZm9yIFdlYkdMIDIgY29uZm9ybWFuY2UuIAorCisgICAgICAgIFRlc3Q6IHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwgZW5hYmxlZC4K
KworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNSZW5kZXJhYmxlSW50ZXJuYWxmb3JtYXQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyYnVmZmVy
U3RvcmFnZU11bHRpc2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzSW50ZWdlckZvcm1hdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21t
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVybmFs
Zm9ybWF0aXYpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlbmRlcmJ1
ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSk6CisKIDIwMTgtMDktMTEgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zaGFkb3ctZG9tL2Zvcm0tY29udHJvbC1mb3JtLWF0dHJpYnV0ZS5odG1sIGhpdHMgYXNzZXJ0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuY3BwCmluZGV4IDEyZmNmZGFkNDQ1Yzk3NjIzOGNmZDg3YWFkNjkwMDVhYWNkYzM1
MmIuLjZiMWYzNzk3MjhiYWMzNzJiNTRlNTlkZjFlMDY5NmZlZTRjNDEzNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3Bw
CkBAIC0zMTYsOSArMzE2LDEwMCBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZyYW1l
YnVmZmVyVGV4dHVyZUxheWVyKEdDM0RlbnVtLCBHQzNEZW51bSwgV2ViR0xUZQogewogfQogCi1X
ZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtKQorI2lmICFVU0UoT1BFTkdMX0VTKQorc3Rh
dGljIGJvb2wgaXNSZW5kZXJhYmxlSW50ZXJuYWxmb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQpCiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgLy8gT3BlbkdMIEVTIDM6IGludGVybmFs
Zm9ybWF0IG11c3QgYmUgYSBjb2xvci1yZW5kZXJhYmxlLCBkZXB0aC1yZW5kZXJhYmxlLCBvciBz
dGVuY2lsLXJlbmRlcmFibGUgZm9ybWF0LCBhcyBzaG93biBpbiBUYWJsZSAxIGJlbG93LgorICAg
IHN3aXRjaCAoaW50ZXJuYWxmb3JtYXQpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOFVJOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlIxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIxNkk6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UjMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzg6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6Ukc4VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkcxNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNS
R0I4X0FMUEhBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4VUk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQThJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQjEwX0EyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2VUk6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2OgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDI0OgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
RVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NU
RU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfSU5ERVg4OgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisK
K1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RlbnVtIHBu
YW1lKQoreworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVT
KSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGludCBudW1WYWx1
ZXMgPSAwOworI2lmIFVTRShPUEVOR0xfRVMpCisgICAgbV9jb250ZXh0LT5nZXRJbnRlcm5hbGZv
cm1hdGl2KHRhcmdldCwgaW50ZXJuYWxmb3JtYXQsIEdyYXBoaWNzQ29udGV4dDNEOjpOVU1fU0FN
UExFX0NPVU5UUywgMSwgJm51bVZhbHVlcyk7CisKKyAgICBHQzNEaW50IHBhcmFtc1tudW1WYWx1
ZXNdOworICAgIG1fY29udGV4dC0+Z2V0SW50ZXJuYWxmb3JtYXRpdih0YXJnZXQsIGludGVybmFs
Zm9ybWF0LCBwbmFtZSwgbnVtVmFsdWVzLCBwYXJhbXMpOworI2Vsc2UKKyAgICAvLyBPbiBtYWNP
UyAoT3BlbkdMIDQuMSkgd2UgbXVzdCBlbXVsYXRlIEdMIEVTIDMvT3BlbkdMIDQuMiBnbEdldElu
dGVybmFsZm9ybWF0aXYuCisKKyAgICAvLyBHTF9JTlZBTElEX0VOVU0gaXMgZ2VuZXJhdGVkIGlm
IHRhcmdldCBpcyBub3QgR0xfUkVOREVSQlVGRkVSLgorICAgIGlmICh0YXJnZXQgIT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
CisgICAgLy8gR0xfSU5WQUxJRF9FTlVNIGlzIGdlbmVyYXRlZCBpZiBpbnRlcm5hbGZvcm1hdCBp
cyBub3QgY29sb3ItLCBkZXB0aC0sIG9yIHN0ZW5jaWwtcmVuZGVyYWJsZS4KKyAgICBpZiAoIWlz
UmVuZGVyYWJsZUludGVybmFsZm9ybWF0KGludGVybmFsZm9ybWF0KSkgeworICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW50ZXJu
YWxmb3JtYXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBpbnRlcm5hbCBmb3JtYXQiKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgVmVjdG9yPEdDM0RpbnQ+IHNhbXBsZXM7Cisg
ICAgLy8gRklYTUU6IFRoZSB3YXkgSSB1bmRlcnN0YW5kIHRoaXMgaXMgdGhhdCB0aGlzIHdpbGwg
cmV0dXJuIGEgTUlOSU1VTSBudW1TYW1wbGVzIGZvciBhbGwgYWNjZXBldGVkIGludGVybmFsZm9y
bWF0cy4KKyAgICAvLyBIb3dldmVyLCB0aGUgdHJ1ZSB2YWx1ZSBvZiB0aGlzIG9uIHN1cHBvcnRl
ZCBHTCB2ZXJzaW9ucyBpcyBnbGVhbmVkIHZpYSBhIGdldEludGVybmFsZm9ybWF0aXYgY2FsbCB0
aGF0IGRlcGVuZHMgb24gaW50ZXJuYWxmb3JtYXQuCisgICAgaW50IG51bVNhbXBsZXNNYXNrID0g
Z2V0SW50UGFyYW1ldGVyKEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfU0FNUExFUyk7CisKKyAgICB3
aGlsZSAobnVtU2FtcGxlc01hc2sgPiAwKSB7CisgICAgICAgIHNhbXBsZXMuYXBwZW5kKG51bVNh
bXBsZXNNYXNrKTsKKyAgICAgICAgbnVtU2FtcGxlc01hc2sgPSBudW1TYW1wbGVzTWFzayA+PiAx
OworICAgIH0KKworICAgIC8vIFNpbmNlIG11bHRpc2FtcGxpbmcgaXMgbm90IHN1cHBvcnRlZCBm
b3Igc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGludGVybmFsIGZvcm1hdHMsCisgICAgLy8g
dGhlIHZhbHVlIG9mIEdMX05VTV9TQU1QTEVfQ09VTlRTIHdpbGwgYmUgemVybyBmb3Igc3VjaCBm
b3JtYXRzLgorICAgIG51bVZhbHVlcyA9IGlzSW50ZWdlckZvcm1hdChpbnRlcm5hbGZvcm1hdCkg
PyAwIDogc2FtcGxlcy5zaXplKCk7CisgICAgR0MzRGludCBwYXJhbXNbbnVtVmFsdWVzXTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNhbXBsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHBh
cmFtc1tpXSA9IHNhbXBsZXNbaV07CisjZW5kaWYKKworICAgIHJldHVybiBJbnQzMkFycmF5Ojpj
cmVhdGUocGFyYW1zLCBudW1WYWx1ZXMpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgY29uc3QgVmVjdG9yPEdDM0RlbnVt
PiYpCkBAIC0zMzMsOCArNDI0LDczIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVh
ZEJ1ZmZlcihHQzNEZW51bSkKIHsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpy
ZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0sIEdDM0RzaXplaSwgR0MzRGVu
dW0sIEdDM0RzaXplaSwgR0MzRHNpemVpKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpy
ZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkg
c2FtcGxlcywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCkKIHsKKyAgICAvLyBUbyBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggV2Vi
R0wgMSwgYWxzbyBhY2NlcHRzIGludGVybmFsIGZvcm1hdCBERVBUSF9TVEVOQ0lMLAorICAgIC8v
IHdoaWNoIHNob3VsZCBiZSBtYXBwZWQgdG8gREVQVEgyNF9TVEVOQ0lMOCBieSBpbXBsZW1lbnRh
dGlvbnMuCisgICAgaWYgKGludGVybmFsZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBU
SF9TVEVOQ0lMKQorICAgICAgICBpbnRlcm5hbGZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
RVBUSDI0X1NURU5DSUw4OworCisgICAgLy8gRVMgMzogR0xfSU5WQUxJRF9PUEVSQVRJT04gaXMg
Z2VuZXJhdGVkIGlmIGludGVybmFsZm9ybWF0IGlzIGEgc2lnbmVkIG9yIHVuc2lnbmVkIGludGVn
ZXIgZm9ybWF0IGFuZCBzYW1wbGVzIGlzIGdyZWF0ZXIgdGhhbiAwLgorICAgIGlmIChpc0ludGVn
ZXJGb3JtYXQoaW50ZXJuYWxmb3JtYXQpICYmIHNhbXBsZXMgPiAwKSB7CisgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgInJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSIsICJtdWx0aXNhbXBsaW5nIG5vdCBzdXBwb3J0ZWQg
Zm9yIHRoaXMgZm9ybWF0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzd2l0Y2gg
KGludGVybmFsZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ09N
UE9ORU5UMTY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ09NUE9ORU5UMzJG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDI0OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQTMyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2SToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQThVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxMF9BMlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJVSToKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
RzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSMzJVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMTZJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlIxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlI4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlI4SToKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjVfQTE6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9JTkRFWDg6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4OgorICAgICAgICBtX2NvbnRl
eHQtPnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh0YXJnZXQsIHNhbXBsZXMsIGludGVy
bmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5n
LT5zZXRJbnRlcm5hbEZvcm1hdChpbnRlcm5hbGZvcm1hdCk7CisgICAgICAgIG1fcmVuZGVyYnVm
ZmVyQmluZGluZy0+c2V0SXNWYWxpZCh0cnVlKTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5k
aW5nLT5zZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpERVBUSDI0X1NURU5DSUw4OgorICAgICAgICBpZiAoIWlzRGVwdGhTdGVuY2lsU3Vw
cG9ydGVkKCkpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX0VOVU0sICJyZW5kZXJidWZmZXJTdG9yYWdlIiwgImludmFsaWQgaW50ZXJu
YWxmb3JtYXQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Nv
bnRleHQtPnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh0YXJnZXQsIHNhbXBsZXMsIGlu
dGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5k
aW5nLT5zZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRp
bmctPnNldElzVmFsaWQoaXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQoKSk7CisgICAgICAgIG1fcmVu
ZGVyYnVmZmVyQmluZGluZy0+c2V0SW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAicmVuZGVyYnVmZmVyU3RvcmFnZSIsICJpbnZh
bGlkIGludGVybmFsZm9ybWF0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXBwbHlT
dGVuY2lsVGVzdCgpOwogfQogCiBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
VGV4U3RvcmFnZUZ1bmNQYXJhbWV0ZXJzKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVs
cywgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQpAQCAtMTM3MSw2ICsxNTI3LDcgQEAgdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gaW50ZXIKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOFVJOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjVfQTE6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9JTkRFWDg6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4OgogICAgICAgICBtX2NvbnRleHQtPnJlbmRlcmJ1ZmZl
clN0b3JhZ2UodGFyZ2V0LCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CkBAIC0xNDIy
LDY1ICsxNTc5LDY5IEBAIEdDM0RlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRl
cm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdChHQzNEZW51bSBpCiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6UjhfU05PUk06CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2RjoK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNPTVBSRVNTRURfUjExX0VBQzoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1NJR05FRF9SMTFfRUFDOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0Q6OlJFRDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMTZJOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIxNlVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlIzMkk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjMyVUk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SMTFfRUFDOgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU0lHTkVEX1IxMV9FQUM6Ci0gICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6UkVEOworICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6
OlJFRF9JTlRFR0VSOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHODoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkcxNkY6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SRzExX0VBQzoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT01QUkVTU0VEX1NJR05FRF9SRzExX0VBQzoKKyAgICAgICAgcmV0dXJuIEdy
YXBoaWNzQ29udGV4dDNEOjpSRzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhJOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHOFVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHMTZJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMTZVSToKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzMySToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSRzMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SRzExX0VB
QzoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NJR05FRF9SRzExX0VB
QzoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpSRzsKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEOjpSR19JTlRFR0VSOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQjg6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOF9TTk9STToKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1NjU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6U1JHQjg6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTZGOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0I6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SR0I4X0VUQzI6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0I4SToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4VUk6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTZJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQjE2VUk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMzJJOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfUkdCOF9FVEMyOgot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfRVRDMjoKLSAgICAg
ICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I7CisgICAgICAgIHJldHVybiBHcmFwaGlj
c0NvbnRleHQzRDo6UkdCX0lOVEVHRVI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdC
QTQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBODoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOF9T
Tk9STToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxMF9BMjoKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IxMF9BMlVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNSR0I4X0FMUEhBODoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQThJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMzJJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMlVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SR0I4
X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMjoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDOgogICAgICAgICBy
ZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4VUk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkExNlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6UkdCQV9J
TlRFR0VSOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2Ogog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDI0OgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMyRjoKQEAgLTE1MDAsOCArMTY2MSw2
IEBAIEdDM0RlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZy
b21JbnRlcm5hbEZvcm1hdChHQzNEZW51bSBpCiAKIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQogewotICAgIC8vIEZJ
WE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoKSBuZXZlciByZXR1cm5z
IGFueSBvZiB0aGVzZSBlbnVtcy4KLSAgICAvLyBCZWNhdXNlIG9mIHRoYXQsIHRoaXMgZnVuY3Rp
b24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UhCiAgICAgc3dpdGNoIChiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0lOVEVHRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdfSU5URUdFUjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGI1ZjliYjdjY2Y5NjI0NDI4YTljMjdhZTE4
MGU0NTUxMzI2OWNiOGUuLmM5ZWExZGZiZmNlY2JmNjcyYzJlODJiZTM5NDRhOGE3ODAyMDc4OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaApAQCAtOTgxLDYgKzk4MSw5IEBAIHB1YmxpYzoKICAgICBHQzNEYm9vbGVhbiB1
bm1hcEJ1ZmZlcihHQzNEZW51bSB0YXJnZXQpOwogICAgIHZvaWQgY29weUJ1ZmZlclN1YkRhdGEo
R0MzRGVudW0gcmVhZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXJnZXQsIEdDM0RpbnRwdHIgcmVh
ZE9mZnNldCwgR0MzRGludHB0ciB3cml0ZU9mZnNldCwgR0MzRHNpemVpcHRyKTsKIAorICAgIHZv
aWQgZ2V0SW50ZXJuYWxmb3JtYXRpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFs
Zm9ybWF0LCBHQzNEZW51bSBwbmFtZSwgR0MzRHNpemVpIGJ1ZlNpemUsIEdDM0RpbnQqIHBhcmFt
cyk7CisgICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CisKICAgICB2b2lkIHRleFN0b3JhZ2UyRChHQzNE
ZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAgIHZvaWQgdGV4U3RvcmFnZTNE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRHNpemVpIGRlcHRoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXgg
Y2YzNjNiNjJhYmI0NzYyZTMyNjQxMzJlZTJmYWMzZmJmYzZjODViNi4uNmM5YzNmN2YwYzAyNjY0
ZTE1MTEzNWM4YjQ0ZWU4ZDZhOTIyOTlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC01NzAsNiArNTcwLDI2IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVt
IHdyaXRlVGFyCiAgICAgOjpnbENvcHlCdWZmZXJTdWJEYXRhKHJlYWRUYXJnZXQsIHdyaXRlVGFy
Z2V0LCByZWFkT2Zmc2V0LCB3cml0ZU9mZnNldCwgc2l6ZSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpCit7CisjaWYgVVNFKE9QRU5HTF9FUykKKyAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKKyAgICA6OmdsR2V0SW50ZXJuYWxmb3JtYXRpdih0YXJnZXQsIGludGVybmFsZm9ybWF0LCBw
bmFtZSwgYnVmU2l6ZSwgcGFyYW1zKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7
CisgICAgVU5VU0VEX1BBUkFNKGludGVybmFsZm9ybWF0KTsKKyAgICBVTlVTRURfUEFSQU0ocG5h
bWUpOworICAgIFVOVVNFRF9QQVJBTShidWZTaXplKTsKKyAgICBVTlVTRURfUEFSQU0ocGFyYW1z
KTsKKyNlbmRpZgorfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZW5kZXJidWZmZXJTdG9y
YWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKK3sK
KyAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZU11
bHRpc2FtcGxlKHRhcmdldCwgc2FtcGxlcywgaW50ZXJuYWxmb3JtYXQsIHdpZHRoLCBoZWlnaHQp
OworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhTdG9yYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVp
IHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDhlZjhmMzJjOTBhNzgyYjk5NWNjZGU1NDRhNzUxOWQyYWMzMTRjOWEuLjIzM2VkNDhl
ZmVlZmY2YmM2NmExOWRkZWFlNDQyNjljNTlkMjJhOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOC0wOS0xMyAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYkdMIDIgY29uZm9ybWFuY2U6IHJnYi1mb3JtYXQtc3VwcG9ydC5odG1sCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk2MTAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ0NDAzMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVuYWJsZWQgcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwuCisKKyAgICAg
ICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmdi
LWZvcm1hdC1zdXBwb3J0LWV4cGVjdGVkLnR4dDoKKwogMjAxOC0wOS0xMiAgRGVhbiBKYWNrc29u
ICA8ZGlub0Bncm9yZy5vcmc+CiAKICAgICAgICAgSGVhZGVyIHBhcnNpbmcgZm9yIGV4cGVyaW1l
bnRhbCBhbmQgaW50ZXJuYWwgZGVidWcgZmVhdHVyZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgx
MGE4OThjYWM4MGM3YTkwNzU2ZDliMmZmYzcyZDhjZjkwYWZmMWYuLmE2ZmJhOWQ0ZWM0OThlYzBl
ZmEzMWY2Yzg4OTg0OWY2YTZlYjkwYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA3MSw2ICsy
MDcxLDcgQEAgd2ViZ2wvMi4wLjAgWyBTa2lwIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9n
bHNsMyBbIFBhc3MgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMgWyBQ
YXNzIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJidWZmZXJzL2ZyYW1lYnVmZmVy
LXRlc3QuaHRtbCBbIFBhc3MgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9y
Z2ItZm9ybWF0LXN1cHBvcnQuaHRtbCBbIFBhc3MgXQogCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZGlzcGxheS9ydW4taW4vcnVuLWluLWNvbnRhaW5zLXRhYmxlLXJv
dy0wMDEueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdGV4dC1kZWNvci90ZXh0LWVtcGhhc2lzLXN0eWxlLTAwOC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDUyYWYwNmMyMjRlNjhlYThkN2U4NDFjOTEyMjdiMzIzYzJjNTdkODYuLjJhMzVi
ZWVlMGI4ZjBiOTc5YTg2Y2JiOTM3ZTlmMTAyNmFlYjhmMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTI3LDcgKzExMjcsNiBAQCB3ZWJraXQub3Jn
L2IvMTY4OTUzIFsgUmVsZWFzZSBdIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXBvc3Rlci5odG1s
IFsgUGFzcyBGYWlsdQogd2Via2l0Lm9yZy9iLzE0ODQzNSBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZl
bnRzL2Jhc2ljLWJvZHktYXR0cmlidXRlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQu
b3JnL2IvMTQ5OTMwIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWZsb2F0LWxpbmVhci5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi81ODc2NiBmYXN0L2NhbnZhcy93ZWJn
bC9nbC10ZXhpbWFnZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBJbXBvcnRlZCBCbGluayB0
ZXN0cyB3aGljaCBoYXZlIG5vdCBiZWVuIGludmVzdGlnYXRlZC4KIGltcG9ydGVkL2JsaW5rL2Nv
bXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNvbnRyb2xzLWxheWVyLWNyZWF0aW9uLXNxdWFzaGluZy5o
dG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmdiLWZvcm1hdC1zdXBwb3J0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcv
cmdiLWZvcm1hdC1zdXBwb3J0LWV4cGVjdGVkLnR4dAppbmRleCBhMWRjZGUxZTk3NzNlZDM4YTJl
MDk5YmU3NmMyZmQ4MWEwYTI0NWZkLi4xMDRjMWNhMjVjNmU1M2ZkODZhODYxMjk1YmVlYjE3ODZi
NWRjN2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL3JnYi1mb3JtYXQtc3VwcG9ydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9yZ2ItZm9ybWF0LXN1cHBvcnQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAK
IFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9yZW5k
ZXJpbmcvcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwKLVBBU1MKK1sgUEFTUyBdIEFsbCB0ZXN0cyBw
YXNzZWQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349727</attachid>
            <date>2018-09-13 19:33:34 -0700</date>
            <delta_ts>2018-09-14 15:05:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189610-20180913193334.patch</filename>
            <type>text/plain</type>
            <size>19776</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAyNGY2YjczZjM3MWFi
MzNkYjc4NmM3MTExMWM2YTQ3YTc3NGY0MC4uNzI1OTgyYWNjNzlkMWVlNGNmZjJmMzdmYWQ4NjAz
NzU5ZjFmMDhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA5LTEzICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgMiBjb25mb3Jt
YW5jZTogcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTYxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ0
MDMzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50aW5nIGdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIChlbXVsYXRpbmcgb24gbWFj
T1MpIGFuZCB1cGRhdGluZyAKKyAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZXtNdWx0aXNhbXBs
ZX0gZm9yIFdlYkdMIDIgY29uZm9ybWFuY2UuIAorCisgICAgICAgIFRlc3Q6IHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwgZW5hYmxlZC4K
KworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNSZW5kZXJhYmxlSW50ZXJuYWxmb3JtYXQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyYnVmZmVy
U3RvcmFnZU11bHRpc2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzSW50ZWdlckZvcm1hdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21t
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVybmFs
Zm9ybWF0aXYpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlbmRlcmJ1
ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSk6CisKIDIwMTgtMDktMTEgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zaGFkb3ctZG9tL2Zvcm0tY29udHJvbC1mb3JtLWF0dHJpYnV0ZS5odG1sIGhpdHMgYXNzZXJ0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuY3BwCmluZGV4IDEyZmNmZGFkNDQ1Yzk3NjIzOGNmZDg3YWFkNjkwMDVhYWNkYzM1
MmIuLjZiMWYzNzk3MjhiYWMzNzJiNTRlNTlkZjFlMDY5NmZlZTRjNDEzNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3Bw
CkBAIC0zMTYsOSArMzE2LDEwMCBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZyYW1l
YnVmZmVyVGV4dHVyZUxheWVyKEdDM0RlbnVtLCBHQzNEZW51bSwgV2ViR0xUZQogewogfQogCi1X
ZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtKQorI2lmICFVU0UoT1BFTkdMX0VTKQorc3Rh
dGljIGJvb2wgaXNSZW5kZXJhYmxlSW50ZXJuYWxmb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQpCiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgLy8gT3BlbkdMIEVTIDM6IGludGVybmFs
Zm9ybWF0IG11c3QgYmUgYSBjb2xvci1yZW5kZXJhYmxlLCBkZXB0aC1yZW5kZXJhYmxlLCBvciBz
dGVuY2lsLXJlbmRlcmFibGUgZm9ybWF0LCBhcyBzaG93biBpbiBUYWJsZSAxIGJlbG93LgorICAg
IHN3aXRjaCAoaW50ZXJuYWxmb3JtYXQpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOFVJOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlIxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIxNkk6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UjMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzg6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6Ukc4VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkcxNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNS
R0I4X0FMUEhBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4VUk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQThJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQjEwX0EyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2VUk6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2OgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDI0OgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
RVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NU
RU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfSU5ERVg4OgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisK
K1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RlbnVtIHBu
YW1lKQoreworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVT
KSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGludCBudW1WYWx1
ZXMgPSAwOworI2lmIFVTRShPUEVOR0xfRVMpCisgICAgbV9jb250ZXh0LT5nZXRJbnRlcm5hbGZv
cm1hdGl2KHRhcmdldCwgaW50ZXJuYWxmb3JtYXQsIEdyYXBoaWNzQ29udGV4dDNEOjpOVU1fU0FN
UExFX0NPVU5UUywgMSwgJm51bVZhbHVlcyk7CisKKyAgICBHQzNEaW50IHBhcmFtc1tudW1WYWx1
ZXNdOworICAgIG1fY29udGV4dC0+Z2V0SW50ZXJuYWxmb3JtYXRpdih0YXJnZXQsIGludGVybmFs
Zm9ybWF0LCBwbmFtZSwgbnVtVmFsdWVzLCBwYXJhbXMpOworI2Vsc2UKKyAgICAvLyBPbiBtYWNP
UyAoT3BlbkdMIDQuMSkgd2UgbXVzdCBlbXVsYXRlIEdMIEVTIDMvT3BlbkdMIDQuMiBnbEdldElu
dGVybmFsZm9ybWF0aXYuCisKKyAgICAvLyBHTF9JTlZBTElEX0VOVU0gaXMgZ2VuZXJhdGVkIGlm
IHRhcmdldCBpcyBub3QgR0xfUkVOREVSQlVGRkVSLgorICAgIGlmICh0YXJnZXQgIT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
CisgICAgLy8gR0xfSU5WQUxJRF9FTlVNIGlzIGdlbmVyYXRlZCBpZiBpbnRlcm5hbGZvcm1hdCBp
cyBub3QgY29sb3ItLCBkZXB0aC0sIG9yIHN0ZW5jaWwtcmVuZGVyYWJsZS4KKyAgICBpZiAoIWlz
UmVuZGVyYWJsZUludGVybmFsZm9ybWF0KGludGVybmFsZm9ybWF0KSkgeworICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW50ZXJu
YWxmb3JtYXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBpbnRlcm5hbCBmb3JtYXQiKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgVmVjdG9yPEdDM0RpbnQ+IHNhbXBsZXM7Cisg
ICAgLy8gRklYTUU6IFRoZSB3YXkgSSB1bmRlcnN0YW5kIHRoaXMgaXMgdGhhdCB0aGlzIHdpbGwg
cmV0dXJuIGEgTUlOSU1VTSBudW1TYW1wbGVzIGZvciBhbGwgYWNjZXBldGVkIGludGVybmFsZm9y
bWF0cy4KKyAgICAvLyBIb3dldmVyLCB0aGUgdHJ1ZSB2YWx1ZSBvZiB0aGlzIG9uIHN1cHBvcnRl
ZCBHTCB2ZXJzaW9ucyBpcyBnbGVhbmVkIHZpYSBhIGdldEludGVybmFsZm9ybWF0aXYgY2FsbCB0
aGF0IGRlcGVuZHMgb24gaW50ZXJuYWxmb3JtYXQuCisgICAgaW50IG51bVNhbXBsZXNNYXNrID0g
Z2V0SW50UGFyYW1ldGVyKEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfU0FNUExFUyk7CisKKyAgICB3
aGlsZSAobnVtU2FtcGxlc01hc2sgPiAwKSB7CisgICAgICAgIHNhbXBsZXMuYXBwZW5kKG51bVNh
bXBsZXNNYXNrKTsKKyAgICAgICAgbnVtU2FtcGxlc01hc2sgPSBudW1TYW1wbGVzTWFzayA+PiAx
OworICAgIH0KKworICAgIC8vIFNpbmNlIG11bHRpc2FtcGxpbmcgaXMgbm90IHN1cHBvcnRlZCBm
b3Igc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGludGVybmFsIGZvcm1hdHMsCisgICAgLy8g
dGhlIHZhbHVlIG9mIEdMX05VTV9TQU1QTEVfQ09VTlRTIHdpbGwgYmUgemVybyBmb3Igc3VjaCBm
b3JtYXRzLgorICAgIG51bVZhbHVlcyA9IGlzSW50ZWdlckZvcm1hdChpbnRlcm5hbGZvcm1hdCkg
PyAwIDogc2FtcGxlcy5zaXplKCk7CisgICAgR0MzRGludCBwYXJhbXNbbnVtVmFsdWVzXTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNhbXBsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHBh
cmFtc1tpXSA9IHNhbXBsZXNbaV07CisjZW5kaWYKKworICAgIHJldHVybiBJbnQzMkFycmF5Ojpj
cmVhdGUocGFyYW1zLCBudW1WYWx1ZXMpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgY29uc3QgVmVjdG9yPEdDM0RlbnVt
PiYpCkBAIC0zMzMsOCArNDI0LDczIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVh
ZEJ1ZmZlcihHQzNEZW51bSkKIHsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpy
ZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0sIEdDM0RzaXplaSwgR0MzRGVu
dW0sIEdDM0RzaXplaSwgR0MzRHNpemVpKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpy
ZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkg
c2FtcGxlcywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCkKIHsKKyAgICAvLyBUbyBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggV2Vi
R0wgMSwgYWxzbyBhY2NlcHRzIGludGVybmFsIGZvcm1hdCBERVBUSF9TVEVOQ0lMLAorICAgIC8v
IHdoaWNoIHNob3VsZCBiZSBtYXBwZWQgdG8gREVQVEgyNF9TVEVOQ0lMOCBieSBpbXBsZW1lbnRh
dGlvbnMuCisgICAgaWYgKGludGVybmFsZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBU
SF9TVEVOQ0lMKQorICAgICAgICBpbnRlcm5hbGZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
RVBUSDI0X1NURU5DSUw4OworCisgICAgLy8gRVMgMzogR0xfSU5WQUxJRF9PUEVSQVRJT04gaXMg
Z2VuZXJhdGVkIGlmIGludGVybmFsZm9ybWF0IGlzIGEgc2lnbmVkIG9yIHVuc2lnbmVkIGludGVn
ZXIgZm9ybWF0IGFuZCBzYW1wbGVzIGlzIGdyZWF0ZXIgdGhhbiAwLgorICAgIGlmIChpc0ludGVn
ZXJGb3JtYXQoaW50ZXJuYWxmb3JtYXQpICYmIHNhbXBsZXMgPiAwKSB7CisgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgInJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSIsICJtdWx0aXNhbXBsaW5nIG5vdCBzdXBwb3J0ZWQg
Zm9yIHRoaXMgZm9ybWF0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzd2l0Y2gg
KGludGVybmFsZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ09N
UE9ORU5UMTY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ09NUE9ORU5UMzJG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDI0OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQTMyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2SToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQThVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxMF9BMlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJVSToKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
RzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSMzJVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMTZJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlIxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlI4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlI4SToKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjVfQTE6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9JTkRFWDg6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4OgorICAgICAgICBtX2NvbnRl
eHQtPnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh0YXJnZXQsIHNhbXBsZXMsIGludGVy
bmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5n
LT5zZXRJbnRlcm5hbEZvcm1hdChpbnRlcm5hbGZvcm1hdCk7CisgICAgICAgIG1fcmVuZGVyYnVm
ZmVyQmluZGluZy0+c2V0SXNWYWxpZCh0cnVlKTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5k
aW5nLT5zZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpERVBUSDI0X1NURU5DSUw4OgorICAgICAgICBpZiAoIWlzRGVwdGhTdGVuY2lsU3Vw
cG9ydGVkKCkpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX0VOVU0sICJyZW5kZXJidWZmZXJTdG9yYWdlIiwgImludmFsaWQgaW50ZXJu
YWxmb3JtYXQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Nv
bnRleHQtPnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh0YXJnZXQsIHNhbXBsZXMsIGlu
dGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5k
aW5nLT5zZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRp
bmctPnNldElzVmFsaWQoaXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQoKSk7CisgICAgICAgIG1fcmVu
ZGVyYnVmZmVyQmluZGluZy0+c2V0SW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAicmVuZGVyYnVmZmVyU3RvcmFnZSIsICJpbnZh
bGlkIGludGVybmFsZm9ybWF0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXBwbHlT
dGVuY2lsVGVzdCgpOwogfQogCiBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
VGV4U3RvcmFnZUZ1bmNQYXJhbWV0ZXJzKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVs
cywgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQpAQCAtMTM3MSw2ICsxNTI3LDcgQEAgdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gaW50ZXIKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOFVJOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjVfQTE6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9JTkRFWDg6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4OgogICAgICAgICBtX2NvbnRleHQtPnJlbmRlcmJ1ZmZl
clN0b3JhZ2UodGFyZ2V0LCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CkBAIC0xNDIy
LDY1ICsxNTc5LDY5IEBAIEdDM0RlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRl
cm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdChHQzNEZW51bSBpCiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6UjhfU05PUk06CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2RjoK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNPTVBSRVNTRURfUjExX0VBQzoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1NJR05FRF9SMTFfRUFDOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0Q6OlJFRDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMTZJOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIxNlVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlIzMkk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjMyVUk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SMTFfRUFDOgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU0lHTkVEX1IxMV9FQUM6Ci0gICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6UkVEOworICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6
OlJFRF9JTlRFR0VSOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHODoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkcxNkY6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SRzExX0VBQzoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT01QUkVTU0VEX1NJR05FRF9SRzExX0VBQzoKKyAgICAgICAgcmV0dXJuIEdy
YXBoaWNzQ29udGV4dDNEOjpSRzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhJOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHOFVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHMTZJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMTZVSToKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzMySToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSRzMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SRzExX0VB
QzoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NJR05FRF9SRzExX0VB
QzoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpSRzsKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEOjpSR19JTlRFR0VSOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQjg6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOF9TTk9STToKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1NjU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6U1JHQjg6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTZGOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0I6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SR0I4X0VUQzI6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0I4SToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4VUk6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTZJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQjE2VUk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMzJJOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfUkdCOF9FVEMyOgot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfRVRDMjoKLSAgICAg
ICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I7CisgICAgICAgIHJldHVybiBHcmFwaGlj
c0NvbnRleHQzRDo6UkdCX0lOVEVHRVI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdC
QTQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBODoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOF9T
Tk9STToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxMF9BMjoKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IxMF9BMlVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNSR0I4X0FMUEhBODoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQThJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMzJJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMlVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SR0I4
X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMjoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDOgogICAgICAgICBy
ZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4VUk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkExNlVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6UkdCQV9J
TlRFR0VSOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2Ogog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDI0OgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMyRjoKQEAgLTE1MDAsOCArMTY2MSw2
IEBAIEdDM0RlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZy
b21JbnRlcm5hbEZvcm1hdChHQzNEZW51bSBpCiAKIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQogewotICAgIC8vIEZJ
WE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoKSBuZXZlciByZXR1cm5z
IGFueSBvZiB0aGVzZSBlbnVtcy4KLSAgICAvLyBCZWNhdXNlIG9mIHRoYXQsIHRoaXMgZnVuY3Rp
b24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UhCiAgICAgc3dpdGNoIChiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0lOVEVHRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdfSU5URUdFUjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGI1ZjliYjdjY2Y5NjI0NDI4YTljMjdhZTE4
MGU0NTUxMzI2OWNiOGUuLmM5ZWExZGZiZmNlY2JmNjcyYzJlODJiZTM5NDRhOGE3ODAyMDc4OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaApAQCAtOTgxLDYgKzk4MSw5IEBAIHB1YmxpYzoKICAgICBHQzNEYm9vbGVhbiB1
bm1hcEJ1ZmZlcihHQzNEZW51bSB0YXJnZXQpOwogICAgIHZvaWQgY29weUJ1ZmZlclN1YkRhdGEo
R0MzRGVudW0gcmVhZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXJnZXQsIEdDM0RpbnRwdHIgcmVh
ZE9mZnNldCwgR0MzRGludHB0ciB3cml0ZU9mZnNldCwgR0MzRHNpemVpcHRyKTsKIAorICAgIHZv
aWQgZ2V0SW50ZXJuYWxmb3JtYXRpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFs
Zm9ybWF0LCBHQzNEZW51bSBwbmFtZSwgR0MzRHNpemVpIGJ1ZlNpemUsIEdDM0RpbnQqIHBhcmFt
cyk7CisgICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CisKICAgICB2b2lkIHRleFN0b3JhZ2UyRChHQzNE
ZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAgIHZvaWQgdGV4U3RvcmFnZTNE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRHNpemVpIGRlcHRoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXgg
Y2YzNjNiNjJhYmI0NzYyZTMyNjQxMzJlZTJmYWMzZmJmYzZjODViNi4uNmM5YzNmN2YwYzAyNjY0
ZTE1MTEzNWM4YjQ0ZWU4ZDZhOTIyOTlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC01NzAsNiArNTcwLDI2IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVt
IHdyaXRlVGFyCiAgICAgOjpnbENvcHlCdWZmZXJTdWJEYXRhKHJlYWRUYXJnZXQsIHdyaXRlVGFy
Z2V0LCByZWFkT2Zmc2V0LCB3cml0ZU9mZnNldCwgc2l6ZSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpCit7CisjaWYgVVNFKE9QRU5HTF9FUykKKyAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKKyAgICA6OmdsR2V0SW50ZXJuYWxmb3JtYXRpdih0YXJnZXQsIGludGVybmFsZm9ybWF0LCBw
bmFtZSwgYnVmU2l6ZSwgcGFyYW1zKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7
CisgICAgVU5VU0VEX1BBUkFNKGludGVybmFsZm9ybWF0KTsKKyAgICBVTlVTRURfUEFSQU0ocG5h
bWUpOworICAgIFVOVVNFRF9QQVJBTShidWZTaXplKTsKKyAgICBVTlVTRURfUEFSQU0ocGFyYW1z
KTsKKyNlbmRpZgorfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZW5kZXJidWZmZXJTdG9y
YWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKK3sK
KyAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZU11
bHRpc2FtcGxlKHRhcmdldCwgc2FtcGxlcywgaW50ZXJuYWxmb3JtYXQsIHdpZHRoLCBoZWlnaHQp
OworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhTdG9yYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVp
IHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDhlZjhmMzJjOTBhNzgyYjk5NWNjZGU1NDRhNzUxOWQyYWMzMTRjOWEuLjkyMDkzMmI2
OGU5NDU3ZWQ3MWFkNDYwNGY5OGY4OGI1MTQ0N2FlOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOC0wOS0xMyAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYkdMIDIgY29uZm9ybWFuY2U6IHJnYi1mb3JtYXQtc3VwcG9ydC5odG1sCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk2MTAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ0NDAzMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVuYWJsZWQgcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwsIGFuZCB1cGRh
dGVkIGV4cGVjdGF0aW9uIGZvciBnbC10ZXhpbWFnZS5odG1sLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1mb3JtYXQtc3Vw
cG9ydC1leHBlY3RlZC50eHQ6CisKIDIwMTgtMDktMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AZ3Jv
cmcub3JnPgogCiAgICAgICAgIEhlYWRlciBwYXJzaW5nIGZvciBleHBlcmltZW50YWwgYW5kIGlu
dGVybmFsIGRlYnVnIGZlYXR1cmVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MTBhODk4Y2FjODBj
N2E5MDc1NmQ5YjJmZmM3MmQ4Y2Y5MGFmZjFmLi5hNmZiYTlkNGVjNDk4ZWMwZWZhMzFmNmM4ODk4
NDlmNmE2ZWI5MGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNzEsNiArMjA3MSw3IEBAIHdl
YmdsLzIuMC4wIFsgU2tpcCBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvZ2xzbDMgWyBQYXNz
IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi92ZXJ0ZXhfYXJyYXlzIFsgUGFzcyBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyYnVmZmVycy9mcmFtZWJ1ZmZlci10ZXN0Lmh0bWwg
WyBQYXNzIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmdiLWZvcm1hdC1z
dXBwb3J0Lmh0bWwgWyBQYXNzIF0KIAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWRpc3BsYXkvcnVuLWluL3J1bi1pbi1jb250YWlucy10YWJsZS1yb3ctMDAxLnhodCBb
IEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXRleHQtZGVjb3IvdGV4dC1lbXBoYXNpcy1zdHlsZS0wMDguaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1
MmFmMDZjMjI0ZTY4ZWE4ZDdlODQxYzkxMjI3YjMyM2MyYzU3ZDg2Li4yYTM1YmVlZTBiOGYwYjk3
OWE4NmNiYjkzN2U5ZjEwMjZhZWI4ZjBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTEyNyw3ICsxMTI3LDYgQEAgd2Via2l0Lm9yZy9iLzE2ODk1MyBb
IFJlbGVhc2UgXSBjb21wb3NpdGluZy92aWRlby92aWRlby1wb3N0ZXIuaHRtbCBbIFBhc3MgRmFp
bHUKIHdlYmtpdC5vcmcvYi8xNDg0MzUgc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1i
b2R5LWF0dHJpYnV0ZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE0OTkz
MCBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1mbG9hdC1saW5lYXIuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvNTg3NjYgZmFzdC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1h
Z2UuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKICMgSW1wb3J0ZWQgQmxpbmsgdGVzdHMgd2hpY2gg
aGF2ZSBub3QgYmVlbiBpbnZlc3RpZ2F0ZWQuCiBpbXBvcnRlZC9ibGluay9jb21wb3NpdGluZy92
aWRlby92aWRlby1jb250cm9scy1sYXllci1jcmVhdGlvbi1zcXVhc2hpbmcuaHRtbCBbIFBhc3Mg
SW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1mb3JtYXQtc3VwcG9ydC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1mb3JtYXQt
c3VwcG9ydC1leHBlY3RlZC50eHQKaW5kZXggYTFkY2RlMWU5NzczZWQzOGEyZTA5OWJlNzZjMmZk
ODFhMGEyNDVmZC4uMTA0YzFjYTI1YzZlNTNmZDg2YTg2MTI5NWJlZWIxNzg2YjVkYzdiMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9y
Z2ItZm9ybWF0LXN1cHBvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmdiLWZvcm1hdC1zdXBwb3J0LWV4cGVjdGVkLnR4
dApAQCAtMSw1ICsxLDUgQEAKIFRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgogCiBUZXN0OiAuLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1m
b3JtYXQtc3VwcG9ydC5odG1sCi1QQVNTCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349813</attachid>
            <date>2018-09-14 15:05:19 -0700</date>
            <delta_ts>2018-09-14 17:05:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189610-20180914150518.patch</filename>
            <type>text/plain</type>
            <size>19755</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAyNGY2YjczZjM3MWFi
MzNkYjc4NmM3MTExMWM2YTQ3YTc3NGY0MC4uZGQyZmY4YTllZjAwNDJjOWZmMzNhYWJhNTgwNjI0
MTFkMmU4N2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA5LTEzICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgMiBjb25mb3Jt
YW5jZTogcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTYxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ0
MDMzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIElt
cGxlbWVudGluZyBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlciAoZW11bGF0aW5nIG9uIG1hY09T
KSBhbmQgdXBkYXRpbmcgCisgICAgICAgIHJlbmRlcmJ1ZmZlclN0b3JhZ2V7TXVsdGlzYW1wbGV9
IGZvciBXZWJHTCAyIGNvbmZvcm1hbmNlLiAKKworICAgICAgICBUZXN0OiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1mb3JtYXQtc3VwcG9ydC5odG1sIGVuYWJsZWQuCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzUmVuZGVyYWJsZUludGVybmFsZm9ybWF0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZlclN0
b3JhZ2VNdWx0aXNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpyZW5kZXJidWZmZXJTdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc0ludGVnZXJGb3JtYXQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlcm5hbGZv
cm1hdGl2KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZW5kZXJidWZm
ZXJTdG9yYWdlTXVsdGlzYW1wbGUpOgorCiAyMDE4LTA5LTExICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2hhZG93LWRvbS9mb3JtLWNvbnRyb2wtZm9ybS1hdHRyaWJ1dGUuaHRtbCBoaXRzIGFzc2VydGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmNwcAppbmRleCAxMmZjZmRhZDQ0NWM5NzYyMzhjZmQ4N2FhZDY5MDA1YWFjZGMzNTJi
Li4zNTIzNDc3ZWJlNTJhMmZlZmUxZTdjZDI1NWUyNDdmMzQxZjlhMDk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApA
QCAtMzE2LDkgKzMxNiwxMDAgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpmcmFtZWJ1
ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSwgR0MzRGVudW0sIFdlYkdMVGUKIHsKIH0KIAotV2Vi
R0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIo
R0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSkKKyNpZiAhVVNFKE9QRU5HTF9FUykKK3N0YXRp
YyBib29sIGlzUmVuZGVyYWJsZUludGVybmFsZm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9ybWF0
KQogewotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIE9wZW5HTCBFUyAzOiBpbnRlcm5hbGZv
cm1hdCBtdXN0IGJlIGEgY29sb3ItcmVuZGVyYWJsZSwgZGVwdGgtcmVuZGVyYWJsZSwgb3Igc3Rl
bmNpbC1yZW5kZXJhYmxlIGZvcm1hdCwgYXMgc2hvd24gaW4gVGFibGUgMSBiZWxvdy4KKyAgICBz
d2l0Y2ggKGludGVybmFsZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ujg6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMTZJOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHOEk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJVSToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjU2NToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdC
OF9BTFBIQTg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxMF9BMjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOFVJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxMF9BMlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkExNlVJOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkExNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQTMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMzJVSToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQxNjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQyNDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpERVBUSF9DT01QT05FTlQzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQ
VEgyNF9TVEVOQ0lMODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDMyRl9TVEVO
Q0lMODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCitX
ZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFt
ZSkKK3sKKyAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChwbmFtZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFUykg
eworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFt
ZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpbnQgbnVtVmFsdWVz
ID0gMDsKKyNpZiBVU0UoT1BFTkdMX0VTKQorICAgIG1fY29udGV4dC0+Z2V0SW50ZXJuYWxmb3Jt
YXRpdih0YXJnZXQsIGludGVybmFsZm9ybWF0LCBHcmFwaGljc0NvbnRleHQzRDo6TlVNX1NBTVBM
RV9DT1VOVFMsIDEsICZudW1WYWx1ZXMpOworCisgICAgR0MzRGludCBwYXJhbXNbbnVtVmFsdWVz
XTsKKyAgICBtX2NvbnRleHQtPmdldEludGVybmFsZm9ybWF0aXYodGFyZ2V0LCBpbnRlcm5hbGZv
cm1hdCwgcG5hbWUsIG51bVZhbHVlcywgcGFyYW1zKTsKKyNlbHNlCisgICAgLy8gT24gZGVza3Rv
cCBPcGVuR0wgNC4xIG9yIGJlbG93IHdlIG11c3QgZW11bGF0ZSBnbEdldEludGVybmFsZm9ybWF0
aXYuCisKKyAgICAvLyBHTF9JTlZBTElEX0VOVU0gaXMgZ2VuZXJhdGVkIGlmIHRhcmdldCBpcyBu
b3QgR0xfUkVOREVSQlVGRkVSLgorICAgIGlmICh0YXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6
OlJFTkRFUkJVRkZFUikgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIiLCAiaW52YWxp
ZCB0YXJnZXQiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgLy8gR0xf
SU5WQUxJRF9FTlVNIGlzIGdlbmVyYXRlZCBpZiBpbnRlcm5hbGZvcm1hdCBpcyBub3QgY29sb3It
LCBkZXB0aC0sIG9yIHN0ZW5jaWwtcmVuZGVyYWJsZS4KKyAgICBpZiAoIWlzUmVuZGVyYWJsZUlu
dGVybmFsZm9ybWF0KGludGVybmFsZm9ybWF0KSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJh
bWV0ZXIiLCAiaW52YWxpZCBpbnRlcm5hbCBmb3JtYXQiKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgVmVjdG9yPEdDM0RpbnQ+IHNhbXBsZXM7CisgICAgLy8gVGhlIHdh
eSBJIHVuZGVyc3RhbmQgdGhpcyBpcyB0aGF0IHRoaXMgd2lsbCByZXR1cm4gYSBNSU5JTVVNIG51
bVNhbXBsZXMgZm9yIGFsbCBhY2NlcGV0ZWQgaW50ZXJuYWxmb3JtYXRzLgorICAgIC8vIEhvd2V2
ZXIsIHRoZSB0cnVlIHZhbHVlIG9mIHRoaXMgb24gc3VwcG9ydGVkIEdMIHZlcnNpb25zIGlzIGds
ZWFuZWQgdmlhIGEgZ2V0SW50ZXJuYWxmb3JtYXRpdiBjYWxsIHRoYXQgZGVwZW5kcyBvbiBpbnRl
cm5hbGZvcm1hdC4KKyAgICBpbnQgbnVtU2FtcGxlc01hc2sgPSBnZXRJbnRQYXJhbWV0ZXIoR3Jh
cGhpY3NDb250ZXh0M0Q6Ok1BWF9TQU1QTEVTKTsKKworICAgIHdoaWxlIChudW1TYW1wbGVzTWFz
ayA+IDApIHsKKyAgICAgICAgc2FtcGxlcy5hcHBlbmQobnVtU2FtcGxlc01hc2spOworICAgICAg
ICBudW1TYW1wbGVzTWFzayA9IG51bVNhbXBsZXNNYXNrID4+IDE7CisgICAgfQorCisgICAgLy8g
U2luY2UgbXVsdGlzYW1wbGluZyBpcyBub3Qgc3VwcG9ydGVkIGZvciBzaWduZWQgYW5kIHVuc2ln
bmVkIGludGVnZXIgaW50ZXJuYWwgZm9ybWF0cywKKyAgICAvLyB0aGUgdmFsdWUgb2YgR0xfTlVN
X1NBTVBMRV9DT1VOVFMgd2lsbCBiZSB6ZXJvIGZvciBzdWNoIGZvcm1hdHMuCisgICAgbnVtVmFs
dWVzID0gaXNJbnRlZ2VyRm9ybWF0KGludGVybmFsZm9ybWF0KSA/IDAgOiBzYW1wbGVzLnNpemUo
KTsKKyAgICBHQzNEaW50IHBhcmFtc1tudW1WYWx1ZXNdOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc2FtcGxlcy5zaXplKCk7ICsraSkKKyAgICAgICAgcGFyYW1zW2ldID0gc2FtcGxlc1tp
XTsKKyNlbmRpZgorCisgICAgcmV0dXJuIEludDMyQXJyYXk6OmNyZWF0ZShwYXJhbXMsIG51bVZh
bHVlcyk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW52YWxpZGF0ZUZyYW1l
YnVmZmVyKEdDM0RlbnVtLCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JikKQEAgLTMzMyw4ICs0MjQs
NzMgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZWFkQnVmZmVyKEdDM0RlbnVtKQog
ewogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2VN
dWx0aXNhbXBsZShHQzNEZW51bSwgR0MzRHNpemVpLCBHQzNEZW51bSwgR0MzRHNpemVpLCBHQzNE
c2l6ZWkpCit2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2VN
dWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogeworICAg
IC8vIFRvIGJlIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBXZWJHTCAxLCBhbHNvIGFjY2VwdHMg
aW50ZXJuYWwgZm9ybWF0IERFUFRIX1NURU5DSUwsCisgICAgLy8gd2hpY2ggc2hvdWxkIGJlIG1h
cHBlZCB0byBERVBUSDI0X1NURU5DSUw4IGJ5IGltcGxlbWVudGF0aW9ucy4KKyAgICBpZiAoaW50
ZXJuYWxmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUwpCisgICAgICAg
IGludGVybmFsZm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMjRfU1RFTkNJTDg7CisK
KyAgICAvLyBFUyAzOiBHTF9JTlZBTElEX09QRVJBVElPTiBpcyBnZW5lcmF0ZWQgaWYgaW50ZXJu
YWxmb3JtYXQgaXMgYSBzaWduZWQgb3IgdW5zaWduZWQgaW50ZWdlciBmb3JtYXQgYW5kIHNhbXBs
ZXMgaXMgZ3JlYXRlciB0aGFuIDAuCisgICAgaWYgKGlzSW50ZWdlckZvcm1hdChpbnRlcm5hbGZv
cm1hdCkgJiYgc2FtcGxlcyA+IDApIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAicmVuZGVyYnVmZmVyU3RvcmFnZU11bHRp
c2FtcGxlIiwgIm11bHRpc2FtcGxpbmcgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBmb3JtYXQiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN3aXRjaCAoaW50ZXJuYWxmb3JtYXQpIHsK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQxNjoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQzMkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6REVQVEhfQ09NUE9ORU5UMjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQTMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMzJVSToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjEwX0EyOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjEwX0EyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMTZVSToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSRzg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMlVJOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIxNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ujg6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlI4VUk6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0I1NjU6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpTUkdCOF9BTFBIQTg6CisgICAgICAgIG1fY29udGV4dC0+cmVuZGVyYnVmZmVyU3Rv
cmFnZU11bHRpc2FtcGxlKHRhcmdldCwgc2FtcGxlcywgaW50ZXJuYWxmb3JtYXQsIHdpZHRoLCBo
ZWlnaHQpOworICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPnNldEludGVybmFsRm9ybWF0
KGludGVybmFsZm9ybWF0KTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5zZXRJc1Zh
bGlkKHRydWUpOworICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPnNldFNpemUod2lkdGgs
IGhlaWdodCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRF
UFRIMzJGX1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMjRfU1RF
TkNJTDg6CisgICAgICAgIGlmICghaXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQoKSkgeworICAgICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
InJlbmRlcmJ1ZmZlclN0b3JhZ2UiLCAiaW52YWxpZCBpbnRlcm5hbGZvcm1hdCIpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29udGV4dC0+cmVuZGVyYnVmZmVy
U3RvcmFnZU11bHRpc2FtcGxlKHRhcmdldCwgc2FtcGxlcywgaW50ZXJuYWxmb3JtYXQsIHdpZHRo
LCBoZWlnaHQpOworICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPnNldFNpemUod2lkdGgs
IGhlaWdodCk7CisgICAgICAgIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+c2V0SXNWYWxpZChpc0Rl
cHRoU3RlbmNpbFN1cHBvcnRlZCgpKTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5z
ZXRJbnRlcm5hbEZvcm1hdChpbnRlcm5hbGZvcm1hdCk7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJyZW5kZXJidWZmZXJTdG9yYWdlIiwgImludmFsaWQgaW50ZXJuYWxmb3JtYXQi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhcHBseVN0ZW5jaWxUZXN0KCk7CiB9CiAK
IGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVUZXhTdG9yYWdlRnVuY1BhcmFt
ZXRlcnMoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5h
bEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBjb25zdCBjaGFyKiBm
dW5jdGlvbk5hbWUpCkBAIC0xMzcxLDYgKzE1MjcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRl
cgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlI4VUk6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkdCNV9BMToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1NjU6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCODoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEVOQ0lMX0lOREVYODoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOF9B
TFBIQTg6CiAgICAgICAgIG1fY29udGV4dC0+cmVuZGVyYnVmZmVyU3RvcmFnZSh0YXJnZXQsIGlu
dGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKQEAgLTE0MjIsNjUgKzE1NzksNjkgQEAgR0Mz
RGVudW0gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVy
bmFsRm9ybWF0KEdDM0RlbnVtIGkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9S
TToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMTZGOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9S
MTFfRUFDOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU0lHTkVEX1Ix
MV9FQUM6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6UkVEOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlI4SToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOFVJ
OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIxNkk6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UjE2VUk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjMySToKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDT01QUkVTU0VEX1IxMV9FQUM6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJF
U1NFRF9TSUdORURfUjExX0VBQzoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpS
RUQ7CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0lOVEVHRVI7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHOF9TTk9STToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2RjoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSRzMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1JHMTFfRUFDOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNT
RURfU0lHTkVEX1JHMTFfRUFDOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlJH
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHOEk6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4VUk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNlVJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHMzJJOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1JHMTFfRUFDOgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU0lHTkVEX1JHMTFfRUFDOgotICAgICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0M0Q6OlJHOworICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6
OlJHX0lOVEVHRVI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCODoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4X1NOT1JNOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQjU2NToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCODoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1JHQjhfRVRDMjoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X0VUQzI6CisgICAgICAgIHJldHVybiBHcmFwaGljc0Nv
bnRleHQzRDo6UkdCOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhJOgogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxNkk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTZVSToKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0IzMkk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCMzJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9SR0I4X0VUQzI6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyOgotICAgICAgICByZXR1cm4gR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQjsKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JfSU5U
RUdFUjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I1X0ExOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4
OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE4X1NOT1JNOgogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJHQjEwX0EyOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjEwX0EyVUk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4OgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkExNkY6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyRjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkExNlVJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhB
MV9FVEMyOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfUFVO
Q0hUSFJPVUdIX0FMUEhBMV9FVEMyOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBS
RVNTRURfUkdCQThfRVRDMl9FQUM6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJF
U1NFRF9TUkdCOF9BTFBIQThfRVRDMl9FQUM6CiAgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQThVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkExNkk6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMzJVSToKKyAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBX0lOVEVHRVI7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ09NUE9ORU5UMTY6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfQ09NUE9ORU5UMjQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
REVQVEhfQ09NUE9ORU5UMzJGOgpAQCAtMTUwMCw4ICsxNjYxLDYgQEAgR0MzRGVudW0gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdD
M0RlbnVtIGkKIAogYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc0ludGVnZXJGb3JtYXQo
R0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7Ci0gICAgLy8gRklYTUU6IGJhc2VJbnRlcm5hbEZv
cm1hdEZyb21JbnRlcm5hbEZvcm1hdCgpIG5ldmVyIHJldHVybnMgYW55IG9mIHRoZXNlIGVudW1z
LgotICAgIC8vIEJlY2F1c2Ugb2YgdGhhdCwgdGhpcyBmdW5jdGlvbiBlcnJvbmVvdXNseSBhbHdh
eXMgcmV0dXJucyBmYWxzZSEKICAgICBzd2l0Y2ggKGJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRl
cm5hbEZvcm1hdChpbnRlcm5hbGZvcm1hdCkpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSRURfSU5URUdFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR19JTlRFR0VSOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmgKaW5kZXggYjVmOWJiN2NjZjk2MjQ0MjhhOWMyN2FlMTgwZTQ1NTEzMjY5Y2I4ZS4uYzll
YTFkZmJmY2VjYmY2NzJjMmU4MmJlMzk0NGE4YTc4MDIwNzg5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC05ODEs
NiArOTgxLDkgQEAgcHVibGljOgogICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVt
IHRhcmdldCk7CiAgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0
LCBHQzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRy
IHdyaXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpOwogCisgICAgdm9pZCBnZXRJbnRlcm5hbGZvcm1h
dGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RlbnVtIHBu
YW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKTsKKyAgICB2b2lkIHJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBzYW1w
bGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KTsKKwogICAgIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNp
emVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRo
LCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCBjZjM2M2I2MmFiYjQ3NjJlMzI2
NDEzMmVlMmZhYzNmYmZjNmM4NWI2Li42YzljM2Y3ZjBjMDI2NjRlMTUxMTM1YzhiNDRlZThkNmE5
MjI5OWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKQEAgLTU3MCw2ICs1NzAsMjYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weUJ1ZmZl
clN1YkRhdGEoR0MzRGVudW0gcmVhZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXIKICAgICA6Omds
Q29weUJ1ZmZlclN1YkRhdGEocmVhZFRhcmdldCwgd3JpdGVUYXJnZXQsIHJlYWRPZmZzZXQsIHdy
aXRlT2Zmc2V0LCBzaXplKTsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW50ZXJu
YWxmb3JtYXRpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNE
ZW51bSBwbmFtZSwgR0MzRHNpemVpIGJ1ZlNpemUsIEdDM0RpbnQqIHBhcmFtcykKK3sKKyNpZiBV
U0UoT1BFTkdMX0VTKQorICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIDo6Z2xHZXRJbnRl
cm5hbGZvcm1hdGl2KHRhcmdldCwgaW50ZXJuYWxmb3JtYXQsIHBuYW1lLCBidWZTaXplLCBwYXJh
bXMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsKKyAgICBVTlVTRURfUEFSQU0o
aW50ZXJuYWxmb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTShwbmFtZSk7CisgICAgVU5VU0VEX1BB
UkFNKGJ1ZlNpemUpOworICAgIFVOVVNFRF9QQVJBTShwYXJhbXMpOworI2VuZGlmCit9CisKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNE
ZW51bSB0YXJnZXQsIEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQoreworICAgIG1ha2VDb250ZXh0Q3Vy
cmVudCgpOworICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUodGFyZ2V0LCBz
YW1wbGVzLCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Cit9CisKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnRleFN0b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZl
bHMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBo
ZWlnaHQpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGVmOGYzMmM5MGE3
ODJiOTk1Y2NkZTU0NGE3NTE5ZDJhYzMxNGM5YS4uZmU3ODVjZDVhMTk1NmE1MzE3Yjc3Y2ExZDVj
NGFlMDYwMTMyYjEyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTA5LTEzICBKdXN0aW4g
RmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgMiBjb25mb3JtYW5j
ZTogcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4OTYxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ0MDMz
NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEVuYWJs
ZWQgcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwsIGFuZCB1cGRhdGVkIGV4cGVjdGF0aW9uIGZvciBn
bC10ZXhpbWFnZS5odG1sLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1mb3JtYXQtc3VwcG9ydC1leHBlY3RlZC50eHQ6CisK
IDIwMTgtMDktMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AZ3Jvcmcub3JnPgogCiAgICAgICAgIEhl
YWRlciBwYXJzaW5nIGZvciBleHBlcmltZW50YWwgYW5kIGludGVybmFsIGRlYnVnIGZlYXR1cmVz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MTBhODk4Y2FjODBjN2E5MDc1NmQ5YjJmZmM3MmQ4Y2Y5
MGFmZjFmLi5hNmZiYTlkNGVjNDk4ZWMwZWZhMzFmNmM4ODk4NDlmNmE2ZWI5MGIxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTIwNzEsNiArMjA3MSw3IEBAIHdlYmdsLzIuMC4wIFsgU2tpcCBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvZ2xzbDMgWyBQYXNzIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi92ZXJ0ZXhfYXJyYXlzIFsgUGFzcyBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
cmVuZGVyYnVmZmVycy9mcmFtZWJ1ZmZlci10ZXN0Lmh0bWwgWyBQYXNzIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmdiLWZvcm1hdC1zdXBwb3J0Lmh0bWwgWyBQYXNzIF0K
IAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWRpc3BsYXkvcnVuLWlu
L3J1bi1pbi1jb250YWlucy10YWJsZS1yb3ctMDAxLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQtZGVjb3IvdGV4dC1l
bXBoYXNpcy1zdHlsZS0wMDguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1MmFmMDZjMjI0ZTY4ZWE4ZDdlODQx
YzkxMjI3YjMyM2MyYzU3ZDg2Li4yYTM1YmVlZTBiOGYwYjk3OWE4NmNiYjkzN2U5ZjEwMjZhZWI4
ZjBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEy
Nyw3ICsxMTI3LDYgQEAgd2Via2l0Lm9yZy9iLzE2ODk1MyBbIFJlbGVhc2UgXSBjb21wb3NpdGlu
Zy92aWRlby92aWRlby1wb3N0ZXIuaHRtbCBbIFBhc3MgRmFpbHUKIHdlYmtpdC5vcmcvYi8xNDg0
MzUgc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE0OTkzMCBmYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtdGV4dHVyZS1mbG9hdC1saW5lYXIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvNTg3NjYgZmFzdC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1hZ2UuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCiAKICMgSW1wb3J0ZWQgQmxpbmsgdGVzdHMgd2hpY2ggaGF2ZSBub3QgYmVlbiBpbnZlc3Rp
Z2F0ZWQuCiBpbXBvcnRlZC9ibGluay9jb21wb3NpdGluZy92aWRlby92aWRlby1jb250cm9scy1s
YXllci1jcmVhdGlvbi1zcXVhc2hpbmcuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L3JnYi1mb3JtYXQtc3VwcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1mb3JtYXQtc3VwcG9ydC1leHBlY3RlZC50eHQK
aW5kZXggYTFkY2RlMWU5NzczZWQzOGEyZTA5OWJlNzZjMmZkODFhMGEyNDVmZC4uMTA0YzFjYTI1
YzZlNTNmZDg2YTg2MTI5NWJlZWIxNzg2YjVkYzdiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9yZ2ItZm9ybWF0LXN1cHBvcnQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5k
ZXJpbmcvcmdiLWZvcm1hdC1zdXBwb3J0LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIFRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgogCiBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3JnYi1mb3JtYXQtc3VwcG9ydC5odG1sCi1Q
QVNTCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>