<?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>304849</bug_id>
          
          <creation_ts>2026-01-02 08:50:52 -0800</creation_ts>
          <short_desc>[IFC] Shrink Layout::Line::Run from 128 bytes to 88 bytes</short_desc>
          <delta_ts>2026-01-08 19:25:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>301447</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2168889</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2026-01-02 08:50:52 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168891</commentid>
    <comment_count>1</comment_count>
      <attachid>477886</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-02 08:59:25 -0800</bug_when>
    <thetext>Created attachment 477886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168895</commentid>
    <comment_count>2</comment_count>
      <attachid>477888</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-02 10:00:34 -0800</bug_when>
    <thetext>Created attachment 477888
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477886</attachid>
            <date>2026-01-02 08:59:25 -0800</date>
            <delta_ts>2026-01-02 10:24:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-304849-20260102085924.patch</filename>
            <type>text/plain</type>
            <size>31455</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2ZDZkNDgwZGRkY2Q3ZWQ3MjFkMWE5ZDUwNzYwYjYxZmFlYTgxMmRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBKYW4gMjAyNiAwODo1MTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtJRkNdIFNo
cmluayBMYXlvdXQ6OkxpbmU6OlJ1biBmcm9tIDEyOCBieXRlcyB0byA4OCBieXRlcwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDg0OQoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgotIHJlYXJyYW5nZSBtZW1iZXIgdmFyaWFibGVzCi0gcmV0aXJlIGEgZmV3
IG9wdGlvbmFscwotIG1ha2UgVHJhaWxpbmdXaGl0ZXNwYWNlIHNtYWxsZXIgKHNpemUgYXMgMjRi
aXRzKQoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50QWxpZ25lci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OmNvbXB1dGVkRXhwYW5z
aW9ucyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0
dGluZ1V0aWxzOjppbmxpbmVDb250ZW50RW5kaW5nKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcDoKKFdlYkNvcmU6OkxheW91
dDo6TGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2UpOgooV2ViQ29yZTo6TGF5
b3V0OjpMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSk6CihXZWJDb3JlOjpM
YXlvdXQ6OkxpbmU6OlJ1bjo6UnVuKToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBh
bmQpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmRldGFjaFRyYWlsaW5nV2hpdGVzcGFj
ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNl
KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNDb250ZW50ZnVsIGNvbnN0
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjp0ZXh0Q29udGVudCBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aGFzVHJhaWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjp0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNXaGl0ZXNwYWNlT25seSBjb25zdCk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRhcnlTdGFydCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRhcnlFbmQgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzSW5zaWRlU2hhcGluZ0JvdW5kYXJ5IGNv
bnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjppc1NoYXBpbmdCb3VuZGFyeSBjb25z
dCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aGFzQ29sbGFwc2libGVUcmFpbGluZ1do
aXRlc3BhY2UgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNl
ZFRyYWlsaW5nV2hpdGVzcGFjZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6
c2V0TmVlZHNIeXBoZW4pOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJveEJ1aWxkZXI6OmNvbGxlY3RGYWxsYmFja0ZvbnRzKToKKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJveEJ1aWxkZXI6OmFkanVzdElubGluZUJveEhlaWdodHNGb3JMaW5lQm94Q29udGFpbklmQXBw
bGljYWJsZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0Ojp0b1N0cmluZyk6Ciog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRTb2Z0TGluZUJyZWFrRGlz
cGxheUJveCk6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAgICAgICAg
ICAgIHwgIDIgKy0KIC4uLi9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcCAgICAgICAg
ICB8ICAyICstCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCAg
fCA2NSArKysrKysrKysrLS0tLS0tLS0tCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmggICAgfCA1MSArKysrKysrKy0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGlu
ZUJveEJ1aWxkZXIuY3BwICAgICAgICAgICB8IDEwICstLQogLi4uL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9kaXNwbGF5L0lubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlci5jcHAgICB8IDE0ICsrLS0KIDcgZmlsZXMgY2hhbmdlZCwgNzQgaW5z
ZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
Q29udGVudEFsaWduZXIuY3BwCmluZGV4IDBhNDIxYTQ3NDc3MC4uNTg4NGMyOWJkZjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50QWxpZ25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3BwCkBAIC0yMDksNyAr
MjA5LDcgQEAgc3RhdGljIHZvaWQgY29tcHV0ZWRFeHBhbnNpb25zKGNvbnN0IExpbmU6OlJ1bkxp
c3QmIHJ1bnMsIFdURjo6UmFuZ2U8c2l6ZV90PiBydW4KICAgICAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yLmxlZnQgPSBydW5Jc0FmdGVyRXhwYW5zaW9u
ID8gRXhwYW5zaW9uQmVoYXZpb3I6OkJlaGF2aW9yOjpGb3JiaWQgOiBFeHBhbnNpb25CZWhhdmlv
cjo6QmVoYXZpb3I6OkFsbG93OwogICAgICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yLnJp
Z2h0ID0gRXhwYW5zaW9uQmVoYXZpb3I6OkJlaGF2aW9yOjpBbGxvdzsKLSAgICAgICAgICAgICAg
ICBhdXRvJiB0ZXh0Q29udGVudCA9ICpydW4udGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgICAg
ICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAgICAgICAg
IGF1dG8gbGVuZ3RoID0gdGV4dENvbnRlbnQubGVuZ3RoOwogICAgICAgICAgICAgICAgIGlmIChs
YXN0VGV4dFJ1bkluZGV4Rm9yVHJpbW1pbmcgJiYgcnVuSW5kZXgoKSA9PSAqbGFzdFRleHRSdW5J
bmRleEZvclRyaW1taW5nKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWlsaW5nIGhhbmdp
bmcgd2hpdGVzcGFjZSBzZXF1ZW5jZSBpcyBpZ25vcmVkIHdoZW4gY29tcHV0aW5nIHRoZSBleHBh
bnNpb24gb3Bwb3J0dW5pdGllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nVXRpbHMuY3BwCmluZGV4IDg0ODAyOTAwMjljNC4uNmI1MzQ2MjQyNmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAKQEAgLTYzMCw3ICs2MzAs
NyBAQCBzdGQ6Om9wdGlvbmFsPExpbmVMYXlvdXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc+
IElubGluZUZvcm1hdHRpbmdVdGlsczo6aW5saQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGlmIChydW4uaXNMaW5lQnJlYWsoKSkKICAgICAgICAgICAgIHJldHVybiB7IExpbmVMYXlv
dXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc6OkxpbmVCcmVhayB9OwotICAgICAgICBpZiAo
YXV0byYgdGV4dENvbnRlbnQgPSBydW4udGV4dENvbnRlbnQoKTsgdGV4dENvbnRlbnQgJiYgdGV4
dENvbnRlbnQtPm5lZWRzSHlwaGVuKQorICAgICAgICBpZiAocnVuLmlzVGV4dCgpICYmIHJ1bi50
ZXh0Q29udGVudCgpLm5lZWRzSHlwaGVuKQogICAgICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91
dFJlc3VsdDo6SW5saW5lQ29udGVudEVuZGluZzo6SHlwaGVuIH07CiAgICAgICAgIHJldHVybiB7
IExpbmVMYXlvdXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc6OkdlbmVyaWMgfTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCmluZGV4IDc2ZmJhMWRkMzUyNy4uY2U4M2E5OTkx
YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApAQCAtNjU0LDcgKzY1NCw3IEBAIGJv
b2wgTGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2UoSW5saW5lTGF5b3V0VW5p
dCB0cmltbWVkVHJhaWxpbmdXaGl0CiAgICAgYXV0byByZXN0b3JlID0gWyZdKGF1dG8mIHRyYWls
aW5nUnVuKSB7CiAgICAgICAgIEFTU0VSVCh0cmFpbGluZ1J1bi5pc1RleHQoKSk7CiAgICAgICAg
IGF1dG8mIGxheW91dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KHRyYWlsaW5nUnVuLmxh
eW91dEJveCgpKTsKLSAgICAgICAgaWYgKHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQtPnN0YXJ0
ICsgdHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC0+bGVuZ3RoID09IGxheW91dEJveC5jb250ZW50
KCkubGVuZ3RoKCkpIHsKKyAgICAgICAgaWYgKHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQuc3Rh
cnQgKyB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50Lmxlbmd0aCA9PSBsYXlvdXRCb3guY29udGVu
dCgpLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAvLyBJdCBsb29rcyBsaWtlIHdlIGRpZG4ndCBf
dHJpbV8gdGhpcyB0cmFpbGluZyBydW4gYnV0IHJlbW92ZWQgdGhlIGxhdCBydW4gaW5zdGVhZCAo
aGFwcGVucyB3aXRoIGRlZGljYXRlZCBsYXlvdXQgYm94KS4KICAgICAgICAgICAgIC8vIExldCdz
IHB1dCB0aGF0IGNvbnRlbnQgYmFjayBhcyB0cmFpbGluZyBydW4uCiAgICAgICAgICAgICBpZiAo
YXBwZW5kVHJhaWxpbmdJbmxpbmVJdGVtQXNUcmFpbGluZ1J1bihydW5zLCB0cmltbWVkVHJhaWxp
bmdXaGl0ZXNwYWNlV2lkdGgsIGlubGluZUl0ZW1SYW5nZSwgaW5saW5lSXRlbXMpKQpAQCAtNjY0
LDcgKzY2NCw3IEBAIGJvb2wgTGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2Uo
SW5saW5lTGF5b3V0VW5pdCB0cmltbWVkVHJhaWxpbmdXaGl0CiAgICAgICAgIH0KICAgICAgICAg
dHJhaWxpbmdSdW4ubV9sb2dpY2FsV2lkdGggKz0gdHJpbW1lZFRyYWlsaW5nV2hpdGVzcGFjZVdp
ZHRoOwogICAgICAgICAvLyBUaGlzIG11c3QgYmUgY29sbGFwc2VkIHdoaXRlc3BhY2UuCi0gICAg
ICAgIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQtPmxlbmd0aCArPSAxOworICAgICAgICB0cmFp
bGluZ1J1bi5tX3RleHRDb250ZW50Lmxlbmd0aCArPSAxOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9OwogCkBAIC03NDYsNyArNzQ2LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpUcmlt
bWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAgICAgIEFTU0VSVChydW4uaXNXb3Jk
QnJlYWtPcHBvcnR1bml0eSgpIHx8IHJ1bi5pc0xpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KCkg
fHwgcnVuLmlzSW5saW5lQm94U3RhcnQoKSB8fCBydW4uaXNJbmxpbmVCb3hFbmQoKSB8fCBydW4u
aXNMaW5lQnJlYWsoKSB8fCBydW4uaXNPcGFxdWUoKSk7CiAgICAgICAgIHJ1bi5tb3ZlSG9yaXpv
bnRhbGx5KC10cmltbWVkV2lkdGgpOwogICAgIH0KLSAgICBpZiAoIXRyaW1tYWJsZVJ1bi50ZXh0
Q29udGVudCgpLT5sZW5ndGgpIHsKKyAgICBpZiAoIXRyaW1tYWJsZVJ1bi50ZXh0Q29udGVudCgp
Lmxlbmd0aCkgewogICAgICAgICAvLyBUaGlzIHRyaW1tYWJsZSBydW4gaXMgZnVsbHkgY29sbGFw
c2VkIG5vdyAoZS5nLiA8ZGl2PjxpbWc+ICAgIDxzcGFuPjwvc3Bhbj48L2Rpdj4pLgogICAgICAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGtlZXAgaXQgYXJvdW5kIGFueW1vcmUuCiAgICAgICAgIG1f
cnVucy5yZW1vdmVBdCgqbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4KTsKQEAgLTgwMSw2MiArODAx
LDYzIEBAIHN0ZDo6b3B0aW9uYWw8TGluZTo6UnVuOjpUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU+
IExpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlCiAKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElu
bGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGlu
ZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50KQogICAgIDogbV90eXBlKHRvTGluZVJ1
blR5cGUoaW5saW5lSXRlbSkpCi0gICAgLCBtX2xheW91dEJveCgmaW5saW5lSXRlbS5sYXlvdXRC
b3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxM
ZWZ0KQogICAgICwgbV9sb2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKQogICAgICwgbV9iaWRpTGV2
ZWwoaW5saW5lSXRlbS5iaWRpTGV2ZWwoKSkKICAgICAsIG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50
KHRleHRTcGFjaW5nQWRqdXN0bWVudCkKKyAgICAsIG1fbGF5b3V0Qm94KCZpbmxpbmVJdGVtLmxh
eW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKIHsKIH0KIAogTGluZTo6UnVuOjpSdW4o
Y29uc3QgSW5saW5lSXRlbSYgemVyb1dpZGh0SW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KQogICAgIDogbV90eXBlKHRvTGlu
ZVJ1blR5cGUoemVyb1dpZGh0SW5saW5lSXRlbSkpCi0gICAgLCBtX2xheW91dEJveCgmemVyb1dp
ZGh0SW5saW5lSXRlbS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBt
X2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9iaWRpTGV2ZWwoemVyb1dpZGh0SW5s
aW5lSXRlbS5iaWRpTGV2ZWwoKSkKKyAgICAsIG1fbGF5b3V0Qm94KCZ6ZXJvV2lkaHRJbmxpbmVJ
dGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKIHsKIH0KIAogTGluZTo6UnVu
OjpSdW4oY29uc3QgSW5saW5lSXRlbSYgbGluZVNwYW5uaW5nSW5saW5lQm94SXRlbSwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElu
bGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50KQogICAgIDogbV90eXBlKFR5cGU6
OkxpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KQotICAgICwgbV9sYXlvdXRCb3goJmxpbmVTcGFu
bmluZ0lubGluZUJveEl0ZW0ubGF5b3V0Qm94KCkpCi0gICAgLCBtX3N0eWxlKGxpbmVTcGFubmlu
Z0lubGluZUJveEl0ZW0uc3R5bGUoKSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQp
CiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgpCiAgICAgLCBtX2JpZGlMZXZlbChs
aW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmJpZGlMZXZlbCgpKQogICAgICwgbV90ZXh0U3BhY2lu
Z0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQorICAgICwgbV9sYXlvdXRCb3goJmxp
bmVTcGFubmluZ0lubGluZUJveEl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKGxpbmVT
cGFubmluZ0lubGluZUJveEl0ZW0uc3R5bGUoKSkKIHsKICAgICBBU1NFUlQobGluZVNwYW5uaW5n
SW5saW5lQm94SXRlbS5pc0lubGluZUJveFN0YXJ0KCkpOwogfQogCiBMaW5lOjpSdW46OlJ1bihj
b25zdCBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSYgc29mdExpbmVCcmVha0l0ZW0sIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCkKICAgICA6IG1f
dHlwZShUeXBlOjpTb2Z0TGluZUJyZWFrKQotICAgICwgbV9sYXlvdXRCb3goJnNvZnRMaW5lQnJl
YWtJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fbG9naWNh
bExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2JpZGlMZXZlbChzb2Z0TGluZUJyZWFrSXRlbS5i
aWRpTGV2ZWwoKSkKKyAgICAsIG1fbGF5b3V0Qm94KCZzb2Z0TGluZUJyZWFrSXRlbS5sYXlvdXRC
b3goKSkKKyAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX3RleHRDb250ZW50KHsgc29mdExp
bmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQogewogfQogCiBMaW5lOjpSdW46OlJ1bihjb25z
dCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50LCBzdGQ6Om9wdGlv
bmFsPExpbmU6OlNoYXBpbmdCb3VuZGFyeT4gc2hhcGluZ0JvdW5kYXJ5KQogICAgIDogbV90eXBl
KGlubGluZVRleHRJdGVtLmlzV29yZFNlcGFyYXRvcigpID8gVHlwZTo6V29yZFNlcGFyYXRvciA6
IGlubGluZVRleHRJdGVtLmlzUXVpcmtOb25CcmVha2luZ1NwYWNlKCkgPyBUeXBlOjpOb25CcmVh
a2luZ1NwYWNlIDogVHlwZTo6VGV4dCkKLSAgICAsIG1fbGF5b3V0Qm94KCZpbmxpbmVUZXh0SXRl
bS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCisgICAgLCBtX3NoYXBpbmdCb3Vu
ZGFyeShzaGFwaW5nQm91bmRhcnkudmFsdWVfb3IoU2hhcGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNh
YmxlKSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxX
aWR0aChsb2dpY2FsV2lkdGgpCiAgICAgLCBtX2JpZGlMZXZlbChpbmxpbmVUZXh0SXRlbS5iaWRp
TGV2ZWwoKSkKLSAgICAsIG1fc2hhcGluZ0JvdW5kYXJ5KHNoYXBpbmdCb3VuZGFyeSkKICAgICAs
IG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50KHRleHRTcGFjaW5nQWRqdXN0bWVudCkKKyAgICAsIG1f
bGF5b3V0Qm94KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKKyAgICAsIG1fc3R5bGUoc3R5
bGUpCiB7CiAgICAgYXV0byBsZW5ndGggPSBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsKICAgICBh
dXRvIHdoaXRlc3BhY2VUeXBlID0gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRl
bSk7CisKICAgICBpZiAod2hpdGVzcGFjZVR5cGUpIHsKICAgICAgICAgaWYgKCp3aGl0ZXNwYWNl
VHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCkKICAgICAgICAgICAg
IGxlbmd0aCA9ICAxOwotICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3Bh
Y2VUeXBlLCBsb2dpY2FsV2lkdGgsIGxlbmd0aCB9OworICAgICAgICBtX3RyYWlsaW5nV2hpdGVz
cGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCBsZW5ndGgsIGxvZ2ljYWxXaWR0aCB9OwogICAgIH0K
ICAgICBtX3RleHRDb250ZW50ID0geyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBsZW5ndGggfTsK
IH0KQEAgLTg2Nyw0MiArODY4LDQyIEBAIHZvaWQgTGluZTo6UnVuOjpleHBhbmQoY29uc3QgSW5s
aW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvCiAgICAgQVNT
RVJUKGlzVGV4dCgpICYmIGlubGluZVRleHRJdGVtLmlzVGV4dCgpKTsKICAgICBBU1NFUlQobV9s
YXlvdXRCb3ggPT0gJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKTsKICAgICBBU1NFUlQobV9i
aWRpTGV2ZWwgPT0gaW5saW5lVGV4dEl0ZW0uYmlkaUxldmVsKCkpOwotICAgIEFTU0VSVCghbV9z
aGFwaW5nQm91bmRhcnkgfHwgKm1fc2hhcGluZ0JvdW5kYXJ5ICE9IFNoYXBpbmdCb3VuZGFyeTo6
RW5kKTsKKyAgICBBU1NFUlQobV9zaGFwaW5nQm91bmRhcnkgPT0gU2hhcGluZ0JvdW5kYXJ5OjpO
b3RBcHBsaWNhYmxlIHx8IG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6U3Rh
cnQgfHwgbV9zaGFwaW5nQm91bmRhcnkgPT0gU2hhcGluZ0JvdW5kYXJ5OjpJbnNpZGUpOwogCiAg
ICAgbV9sb2dpY2FsV2lkdGggKz0gbG9naWNhbFdpZHRoOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5
cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGlubGluZVRleHRJdGVtKTsKIAogICAgIGlmICgh
d2hpdGVzcGFjZVR5cGUpIHsKICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07Ci0g
ICAgICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCArPSBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsK
KyAgICAgICAgbV90ZXh0Q29udGVudC5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7
CiAgICAgICAgIG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgPSBpbmxpbmVUZXh0SXRl
bS5zdGFydCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1dG8gd2hpdGVzcGFjZVdp
ZHRoID0gIW1fdHJhaWxpbmdXaGl0ZXNwYWNlID8gbG9naWNhbFdpZHRoIDogbV90cmFpbGluZ1do
aXRlc3BhY2UtPndpZHRoICsgbG9naWNhbFdpZHRoOworICAgIGF1dG8gd2hpdGVzcGFjZVdpZHRo
ID0gIWhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpID8gbG9naWNhbFdpZHRoIDogbV90cmFpbGluZ1do
aXRlc3BhY2Uud2lkdGggKyBsb2dpY2FsV2lkdGg7CiAgICAgYXV0byB0cmFpbGluZ1doaXRlc3Bh
Y2VMZW5ndGggPSAqd2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpD
b2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7IAotICAgIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIHdoaXRlc3BhY2VXaWR0aCwgdHJhaWxpbmdX
aGl0ZXNwYWNlTGVuZ3RoIH07Ci0gICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoICs9IHRyYWlsaW5n
V2hpdGVzcGFjZUxlbmd0aDsKKyAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3Bh
Y2VUeXBlLCB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGgsIHdoaXRlc3BhY2VXaWR0aCB9OworICAg
IG1fdGV4dENvbnRlbnQubGVuZ3RoICs9IHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aDsKIH0KIAog
c3RkOjpvcHRpb25hbDxMaW5lOjpSdW4+IExpbmU6OlJ1bjo6ZGV0YWNoVHJhaWxpbmdXaGl0ZXNw
YWNlKCkKIHsKLSAgICBpZiAoIW1fdHJhaWxpbmdXaGl0ZXNwYWNlIHx8IGlzV2hpdGVzcGFjZU9u
bHkoKSkKKyAgICBpZiAoIWhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIHx8IGlzV2hpdGVzcGFjZU9u
bHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIEFTU0VSVChtX3RyYWlsaW5nV2hpdGVz
cGFjZS0+bGVuZ3RoIDwgbV90ZXh0Q29udGVudC0+bGVuZ3RoKTsKKyAgICBBU1NFUlQobV90cmFp
bGluZ1doaXRlc3BhY2UubGVuZ3RoIDwgbV90ZXh0Q29udGVudC5sZW5ndGgpOwogICAgIGF1dG8g
dHJhaWxpbmdXaGl0ZXNwYWNlUnVuID0gKnRoaXM7CiAKLSAgICBhdXRvIGxlYWRpbmdOb25XaGl0
ZXNwYWNlQ29udGVudExlbmd0aCA9IG1fdGV4dENvbnRlbnQtPmxlbmd0aCAtIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLT5sZW5ndGg7Ci0gICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fdGV4dENvbnRl
bnQgPSB7IG1fdGV4dENvbnRlbnQtPnN0YXJ0ICsgbGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50
TGVuZ3RoLCBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoLCBmYWxzZSB9OworICAgIGF1dG8g
bGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50TGVuZ3RoID0gbV90ZXh0Q29udGVudC5sZW5ndGgg
LSBtX3RyYWlsaW5nV2hpdGVzcGFjZS5sZW5ndGg7CisgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVu
Lm1fdGV4dENvbnRlbnQgPSB7IG1fdGV4dENvbnRlbnQuc3RhcnQgKyBsZWFkaW5nTm9uV2hpdGVz
cGFjZUNvbnRlbnRMZW5ndGgsIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0aCwgZmFsc2UgfTsK
IAotICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxXaWR0aCA9IG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLT53aWR0aDsKLSAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV9sb2dpY2FsTGVm
dCA9IGxvZ2ljYWxSaWdodCgpIC0gbV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRoOworICAgIHRy
YWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNl
LndpZHRoOworICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxMZWZ0ID0gbG9naWNh
bFJpZ2h0KCkgLSBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsKIAogICAgIHRyYWlsaW5nV2hp
dGVzcGFjZVJ1bi5tX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKICAgICB0cmFpbGluZ1doaXRl
c3BhY2VSdW4ubV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFydCA9IHsgfTsKIAogICAgIG1f
bG9naWNhbFdpZHRoIC09IHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5sb2dpY2FsV2lkdGgoKTsKLSAg
ICBtX3RleHRDb250ZW50LT5sZW5ndGggPSBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5n
dGg7CisgICAgbV90ZXh0Q29udGVudC5sZW5ndGggPSBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRl
bnRMZW5ndGg7CiAgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07CiAKICAgICByZXR1cm4g
dHJhaWxpbmdXaGl0ZXNwYWNlUnVuOwpAQCAtOTMxLDI1ICs5MzIsMjUgQEAgSW5saW5lTGF5b3V0
VW5pdCBMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygpCiAKIElubGluZUxh
eW91dFVuaXQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKQogewotICAgIEFT
U0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZSk7CisgICAgQVNTRVJUKGhhc1RyYWlsaW5nV2hpdGVz
cGFjZSgpKTsKICAgICAvLyBBY2NvcmRpbmcgdG8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10
ZXh0LTMvI3doaXRlLXNwYWNlLXByb3BlcnR5IG1hdHJpeAogICAgIC8vIFRyaW1tYWJsZSB3aGl0
ZXNwYWNlIGlzIGFsd2F5cyBjb2xsYXBzaWJsZSBzbyB0aGUgbGVuZ3RoIG9mIHRoZSB0cmFpbGlu
ZyB0cmltbWFibGUgd2hpdGVzcGFjZSBpcyBhbHdheXMgMSAob3Igbm9uLWV4aXN0ZW50KS4KLSAg
ICBBU1NFUlQobV90ZXh0Q29udGVudCAmJiBtX3RleHRDb250ZW50LT5sZW5ndGgpOworICAgIEFT
U0VSVChpc1RleHQoKSAmJiBtX3RleHRDb250ZW50Lmxlbmd0aCk7CiAgICAgY29uc3RleHByIHNp
emVfdCB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGggPSAxOwogCi0gICAgYXV0byB0cmlt
bWVkV2lkdGggPSBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGg7CisgICAgYXV0byB0cmltbWVk
V2lkdGggPSBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsKICAgICBpZiAobV9sYXN0Tm9uV2hp
dGVzcGFjZUNvbnRlbnRTdGFydCAmJiBpbmxpbmVEaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9u
OjpSVEwpIHsKICAgICAgICAgLy8gV2hpbGUgTFRSIGNvbnRlbnQgY291bGQgYWxzbyBzdWZmZXIg
ZnJvbSBzbGlnaHRseSBpbmNvcnJlY3QgY29udGVudCB3aWR0aCBhZnRlciB0cmltbWluZyB0cmFp
bGluZyB3aGl0ZXNwYWNlIChzZWUgVGV4dFV0aWw6OndpZHRoKQogICAgICAgICAvLyBpdCBoYXJk
bHkgcHJvZHVjZXMgdmlzdWFsbHkgb2JzZXJ2YWJsZSByZXN1bHQuCiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIG1heSBzdGlsbCBpbmNvcnJlY3RseSBsZWF2ZSBzb21lIGNvbnRlbnQgb24gdGhlIGxp
bmUgKHZzLiByZS1tZWFzdXJpbmcgYWxzbyBhdCA6OmV4cGFuZCkuCiAgICAgICAgIGF1dG8mIGlu
bGluZVRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PigqbV9sYXlvdXRCb3gpOwogICAg
ICAgICBhdXRvIHN0YXJ0UG9zaXRpb24gPSAqbV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFy
dDsKLSAgICAgICAgYXV0byBlbmRQb3NpdGlvbiA9IG1fdGV4dENvbnRlbnQtPnN0YXJ0ICsgbV90
ZXh0Q29udGVudC0+bGVuZ3RoOworICAgICAgICBhdXRvIGVuZFBvc2l0aW9uID0gbV90ZXh0Q29u
dGVudC5zdGFydCArIG1fdGV4dENvbnRlbnQubGVuZ3RoOwogICAgICAgICBSRUxFQVNFX0FTU0VS
VChzdGFydFBvc2l0aW9uIDwgZW5kUG9zaXRpb24gLSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRM
ZW5ndGgpOwogICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jb250ZW50KClbZW5kUG9zaXRpb24g
LSAxXSA9PSBzcGFjZSkKICAgICAgICAgICAgIHRyaW1tZWRXaWR0aCA9IFRleHRVdGlsOjp0cmFp
bGluZ1doaXRlc3BhY2VXaWR0aChpbmxpbmVUZXh0Qm94LCBtX3N0eWxlLmZvbnRDYXNjYWRlKCks
IHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKICAgICB9Ci0gICAgbV90ZXh0Q29udGVudC0+
bGVuZ3RoIC09IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aDsKKyAgICBtX3RleHRDb250
ZW50Lmxlbmd0aCAtPSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGg7CiAgICAgbV90cmFp
bGluZ1doaXRlc3BhY2UgPSB7IH07CiAgICAgc2hyaW5rSG9yaXpvbnRhbGx5KHRyaW1tZWRXaWR0
aCk7CiAgICAgcmV0dXJuIHRyaW1tZWRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRl
eCAxZWIxMzExMmQwN2IuLmJiMzg5OTUwZjRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApA
QCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgVmVj
dG9yPElubGluZUl0ZW0sIDE+JiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcywgYm9vbCBpc0ZpcnN0
Rm9ybWF0dGVkTGluZSk7CiAKLSAgICBlbnVtIGNsYXNzIFNoYXBpbmdCb3VuZGFyeSA6IHVpbnQ4
X3QgeyBTdGFydCwgSW5zaWRlLCBFbmQgfTsKKyAgICBlbnVtIGNsYXNzIFNoYXBpbmdCb3VuZGFy
eSA6IHVpbnQ4X3QgeyBOb3RBcHBsaWNhYmxlLCBTdGFydCwgSW5zaWRlLCBFbmQgfTsKICAgICB2
b2lkIGFwcGVuZFRleHQoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYs
IElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoLCBzdGQ6Om9wdGlvbmFsPFNoYXBpbmdCb3Vu
ZGFyeT4pOwogICAgIHZvaWQgYXBwZW5kVGV4dEZhc3QoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBj
b25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsgLy8gUmVz
ZXJ2ZWQgZm9yIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIKICAgICB2b2lkIGFwcGVuZEF0b21p
Y0lubGluZUJveChjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVM
YXlvdXRVbml0IG1hcmdpbkJveExvZ2ljYWxXaWR0aCk7CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVi
bGljOgogICAgICAgICBib29sIGlzT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5
cGU6Ok9wYXF1ZTsgfQogICAgICAgICBib29sIGlzQmxvY2soKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVHlwZTo6QmxvY2s7IH0KIAotICAgICAgICBib29sIGlzQ29udGVudGZ1bCgpIGNvbnN0
IHsgcmV0dXJuIChpc1RleHQoKSAmJiB0ZXh0Q29udGVudCgpLT5sZW5ndGgpIHx8IGlzQXRvbWlj
SW5saW5lQm94KCkgfHwgaXNMaW5lQnJlYWsoKSB8fCBpc0xpc3RNYXJrZXIoKSB8fCBpc0Jsb2Nr
KCk7IH0KKyAgICAgICAgYm9vbCBpc0NvbnRlbnRmdWwoKSBjb25zdCB7IHJldHVybiAoaXNUZXh0
KCkgJiYgdGV4dENvbnRlbnQoKS5sZW5ndGgpIHx8IGlzQXRvbWljSW5saW5lQm94KCkgfHwgaXNM
aW5lQnJlYWsoKSB8fCBpc0xpc3RNYXJrZXIoKSB8fCBpc0Jsb2NrKCk7IH0KICAgICAgICAgYm9v
bCBpc0dlbmVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGlzTGlzdE1hcmtlcigpOyB9CiAgICAgICAg
IHN0YXRpYyBib29sIGlzQ29udGVudGZ1bE9ySGFzRGVjb3JhdGlvbihjb25zdCBSdW4mLCBjb25z
dCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCB7IDAgfTsKICAgICAgICAgICAgIGJvb2wgbmVl
ZHNIeXBoZW4geyBmYWxzZSB9OwogICAgICAgICB9OwotICAgICAgICBjb25zdCBzdGQ6Om9wdGlv
bmFsPFRleHQ+JiB0ZXh0Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENvbnRlbnQ7IH0K
KyAgICAgICAgY29uc3QgVGV4dCYgdGV4dENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3RleHRD
b250ZW50OyB9CiAKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25z
dCB7IHJldHVybiBtX2xvZ2ljYWxXaWR0aDsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxv
Z2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsTGVmdDsgfQpAQCAtMTQyLDkgKzE0
Miw5IEBAIHB1YmxpYzoKIAogICAgICAgICBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFu
c2lvbiYgZXhwYW5zaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbnNpb247IH0KIAotICAgICAg
ICBib29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLmhhc192YWx1ZSgpOyB9Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxp
bmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSA/
IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aCA6IDAuZjsgfQotICAgICAgICBib29sIGlzV2hp
dGVzcGFjZU9ubHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBt
X3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoID09IG1fdGV4dENvbnRlbnQtPmxlbmd0aDsgfQor
ICAgICAgICBib29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlLnR5cGUgIT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpOb3RBcHBs
aWNhYmxlOyB9CisgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsgfQorICAgICAg
ICBib29sIGlzV2hpdGVzcGFjZU9ubHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRl
c3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS5sZW5ndGggPT0gbV90ZXh0Q29udGVudC5s
ZW5ndGg7IH0KIAogICAgICAgICBpbmxpbmUgVGV4dERpcmVjdGlvbiBpbmxpbmVEaXJlY3Rpb24o
KSBjb25zdDsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsZXR0ZXJTcGFjaW5nKCkgY29uc3Q7
CkBAIC0xNTMsMTAgKzE1MywxMCBAQCBwdWJsaWM6CiAKICAgICAgICAgVUJpRGlMZXZlbCBiaWRp
TGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2JpZGlMZXZlbDsgfQogCi0gICAgICAgIGJvb2wgaXNT
aGFwaW5nQm91bmRhcnlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkg
JiYgKm1fc2hhcGluZ0JvdW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6U3RhcnQ7IH0K
LSAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeUVuZCgpIGNvbnN0IHsgcmV0dXJuIGlzU2hh
cGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3Vu
ZGFyeTo6RW5kOyB9Ci0gICAgICAgIGJvb2wgaXNJbnNpZGVTaGFwaW5nQm91bmRhcnkoKSBjb25z
dCB7IHJldHVybiBpc1NoYXBpbmdCb3VuZGFyeSgpICYmICptX3NoYXBpbmdCb3VuZGFyeSA9PSBM
aW5lOjpTaGFwaW5nQm91bmRhcnk6Okluc2lkZTsgfQotICAgICAgICBib29sIGlzU2hhcGluZ0Jv
dW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91bmRhcnkuaGFzX3ZhbHVlKCk7IH0K
KyAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9z
aGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpTdGFydDsgfQorICAgICAg
ICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91
bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpFbmQ7IH0KKyAgICAgICAgYm9vbCBpc0lu
c2lkZVNoYXBpbmdCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ID09
IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlOyB9CisgICAgICAgIGJvb2wgaXNTaGFwaW5n
Qm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSAhPSBMaW5lOjpTaGFw
aW5nQm91bmRhcnk6Ok5vdEFwcGxpY2FibGU7IH0KIAogICAgICAgICAvLyBGSVhNRTogTWF5YmUg
YWRkIGNyZWF0ZSBmdW5jdGlvbnMgaW50ZWFkPwogICAgICAgICBSdW4oY29uc3QgSW5saW5lSXRl
bSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCk7CkBA
IC0xODAsMTcgKzE4MCwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgc2V0QmlkaUxldmVsKFVC
aURpTGV2ZWwgYmlkaUxldmVsKSB7IG1fYmlkaUxldmVsID0gYmlkaUxldmVsOyB9CiAKICAgICAg
ICAgc3RydWN0IFRyYWlsaW5nV2hpdGVzcGFjZSB7Ci0gICAgICAgICAgICBlbnVtIGNsYXNzIFR5
cGUgeworICAgICAgICAgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7CisgICAgICAgICAg
ICAgICAgTm90QXBwbGljYWJsZSwKICAgICAgICAgICAgICAgICBOb3RDb2xsYXBzaWJsZSwKICAg
ICAgICAgICAgICAgICBDb2xsYXBzaWJsZSwKICAgICAgICAgICAgICAgICBDb2xsYXBzZWQKICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICBUeXBlIHR5cGUgeyBUeXBlOjpOb3RDb2xsYXBzaWJs
ZSB9OwotICAgICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCB7IDAgfTsKLSAgICAgICAg
ICAgIHNpemVfdCBsZW5ndGggeyAwIH07CisgICAgICAgICAgICBUeXBlIHR5cGUgeyBUeXBlOjpO
b3RBcHBsaWNhYmxlIH07CisgICAgICAgICAgICBzaXplX3QgbGVuZ3RoIDogMjQgeyAwIH07Cisg
ICAgICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoIHsgMC5mIH07CiAgICAgICAgIH07Ci0g
ICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJl
dHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiAobV90cmFpbGluZ1doaXRlc3BhY2UtPnR5cGUg
PT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJsZSB8fCBoYXNDb2xsYXBzZWRU
cmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KLSAgICAgICAgYm9vbCBoYXNDb2xsYXBzZWRUcmFpbGlu
Z1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiBtX3Ry
YWlsaW5nV2hpdGVzcGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxh
cHNlZDsgfQorICAgICAgICBib29sIGhhc0NvbGxhcHNpYmxlVHJhaWxpbmdXaGl0ZXNwYWNlKCkg
Y29uc3QgeyByZXR1cm4gaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgJiYgKG1fdHJhaWxpbmdXaGl0
ZXNwYWNlLnR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJsZSB8fCBo
YXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KKyAgICAgICAgYm9vbCBoYXNDb2xs
YXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRl
c3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS50eXBlID09IFRyYWlsaW5nV2hpdGVzcGFj
ZTo6VHlwZTo6Q29sbGFwc2VkOyB9CiAgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRyYWls
aW5nV2hpdGVzcGFjZTo6VHlwZT4gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShjb25zdCBJbmxpbmVU
ZXh0SXRlbSYpOwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHJlbW92ZVRyYWlsaW5nV2hpdGVz
cGFjZSgpOwogCkBAIC0yMDAsMTggKzIwMSwxOCBAQCBwdWJsaWM6CiAgICAgICAgIElubGluZUxh
eW91dFVuaXQgdHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29uc3Q7CiAgICAgICAgIElubGluZUxh
eW91dFVuaXQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAKKyAgICAgICAgVHJhaWxp
bmdXaGl0ZXNwYWNlIG1fdHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsKICAgICAgICAgVHlwZSBtX3R5
cGUgeyBUeXBlOjpUZXh0IH07Ci0gICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxs
cHRyIH07Ci0gICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOworICAgICAgICBMaW5l
OjpTaGFwaW5nQm91bmRhcnkgbV9zaGFwaW5nQm91bmRhcnkgeyBMaW5lOjpTaGFwaW5nQm91bmRh
cnk6Ok5vdEFwcGxpY2FibGUgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xvZ2ljYWxM
ZWZ0IHsgMCB9OworICAgICAgICBNYXJrYWJsZTxzaXplX3Q+IG1fbGFzdE5vbldoaXRlc3BhY2VD
b250ZW50U3RhcnQgeyB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRo
IHsgMCB9OwotICAgICAgICBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lv
bjsKICAgICAgICAgVUJpRGlMZXZlbCBtX2JpZGlMZXZlbCB7IFVCSURJX0RFRkFVTFRfTFRSIH07
Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJhaWxpbmdXaGl0ZXNwYWNlPiBtX3RyYWlsaW5nV2hp
dGVzcGFjZSB7IH07Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBtX2xhc3ROb25XaGl0
ZXNwYWNlQ29udGVudFN0YXJ0IHsgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxUZXh0PiBtX3Rl
eHRDb250ZW50OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPExpbmU6OlNoYXBpbmdCb3VuZGFyeT4g
bV9zaGFwaW5nQm91bmRhcnk7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV90ZXh0U3BhY2lu
Z0FkanVzdG1lbnQgeyAwIH07CisgICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxs
cHRyIH07CisgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOworICAgICAgICBJbmxp
bmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKKyAgICAgICAgVGV4dCBtX3Rl
eHRDb250ZW50OwogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxSdW4sIDEwPjsK
ICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5zOyB9CkBAIC0z
ODIsOCArMzgzLDggQEAgaW5saW5lIHNpemVfdCBMaW5lOjpIYW5naW5nQ29udGVudDo6bGVuZ3Ro
KCkgY29uc3QKIAogaW5saW5lIHZvaWQgTGluZTo6UnVuOjpzZXROZWVkc0h5cGhlbihJbmxpbmVM
YXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKIHsKLSAgICBBU1NFUlQobV90ZXh0Q29udGVu
dCk7Ci0gICAgbV90ZXh0Q29udGVudC0+bmVlZHNIeXBoZW4gPSB0cnVlOworICAgIEFTU0VSVChp
c1RleHQoKSk7CisgICAgbV90ZXh0Q29udGVudC5uZWVkc0h5cGhlbiA9IHRydWU7CiAgICAgbV9s
b2dpY2FsV2lkdGggKz0gaHlwaGVuTG9naWNhbFdpZHRoOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggODY1NmExMGM0ZGY4Li5iZTg4N2Ri
NmIxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAK
QEAgLTEwMCw3ICsxMDAsNyBAQCBUZXh0VXRpbDo6RmFsbGJhY2tGb250TGlzdCBMaW5lQm94QnVp
bGRlcjo6Y29sbGVjdEZhbGxiYWNrRm9udHMoY29uc3QgSW5saW5lTGV2ZQogICAgICAgICAvLyBT
aW1wbGlmaWVkIHRleHQgbWVhc3VyaW5nIHdvcmtzIHdpdGggcHJpbWFyeSBmb250IG9ubHkuCiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIGF1dG8gdGV4dCA9ICpydW4udGV4dENvbnRl
bnQoKTsKKyAgICBhdXRvJiB0ZXh0ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAgYXV0byBmYWxs
YmFja0ZvbnRzID0gVGV4dFV0aWw6OmZhbGxiYWNrRm9udHNGb3JUZXh0KFN0cmluZ1ZpZXcoaW5s
aW5lVGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCks
IHN0eWxlLCB0ZXh0Lm5lZWRzSHlwaGVuID8gVGV4dFV0aWw6OkluY2x1ZGVIeXBoZW46OlllcyA6
IFRleHRVdGlsOjpJbmNsdWRlSHlwaGVuOjpObyk7CiAgICAgaWYgKGZhbGxiYWNrRm9udHMuaXNF
bXB0eUlnbm9yaW5nTnVsbFJlZmVyZW5jZXMoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTYx
MSw5ICs2MTEsOSBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRz
Rm9yTGluZUJveENvbnRhaW5JZkFwcGxpY2FibGUoTGluZUJveAogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogCiAgICAgICAgICAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4
dEJveD4ocnVuLmxheW91dEJveCgpKTsKLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRlbnQgPSBy
dW4udGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0gcnVuLnRl
eHRDb250ZW50KCk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRM
aW5lKCkgPyB0ZXh0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiB0ZXh0Qm94LnN0eWxlKCk7Ci0gICAg
ICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudERlc2NlbnRGb3JSdW4gPSBUZXh0VXRpbDo6ZW5j
bG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1
YnN0cmluZyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpLCBzdHlsZSwg
dGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGls
OjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpT
aG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1
dG8gZW5jbG9zaW5nQXNjZW50RGVzY2VudEZvclJ1biA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlw
aEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyh0ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRl
eHRDb250ZW50LnN0YXJ0LCB0ZXh0Q29udGVudC5sZW5ndGgpLCBzdHlsZSwgdGV4dEJveC5zaG91
bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1w
bGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKIAogICAgICAgICAgICAgYXV0byYgcGFyZW50
SW5saW5lQm94ID0gbGluZUJveC5wYXJlbnRJbmxpbmVCb3gocnVuKTsKICAgICAgICAgICAgIGF1
dG8gZW5jbG9zaW5nQXNjZW50RGVzY2VudEZvcklubGluZUJveCA9IGlubGluZUJveEJvdW5kc01h
cC5nZXQoJnBhcmVudElubGluZUJveCk7CkBAIC02MzcsOSArNjM3LDkgQEAgdm9pZCBMaW5lQm94
QnVpbGRlcjo6YWRqdXN0SW5saW5lQm94SGVpZ2h0c0ZvckxpbmVCb3hDb250YWluSWZBcHBsaWNh
YmxlKExpbmVCb3gKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgYXV0
byYgdGV4dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KHJ1bi5sYXlvdXRCb3goKSk7Ci0g
ICAgICAgICAgICBhdXRvIHRleHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7CisgICAgICAg
ICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAgICAg
YXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gdGV4dEJveC5maXJzdExpbmVT
dHlsZSgpIDogdGV4dEJveC5zdHlsZSgpOwotICAgICAgICAgICAgYXV0byBhc2NlbnRBbmREZXNj
ZW50ID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KHRl
eHRCb3guY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQtPnN0YXJ0LCB0ZXh0Q29udGVu
dC0+bGVuZ3RoKSwgc3R5bGUsIHRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0Nv
ZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRo
OjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpO
byk7CisgICAgICAgICAgICBhdXRvIGFzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9z
aW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0
cmluZyh0ZXh0Q29udGVudC5zdGFydCwgdGV4dENvbnRlbnQubGVuZ3RoKSwgc3R5bGUsIHRleHRC
b3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hv
dWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxk
VXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7CiAKICAgICAgICAgICAgIGluaXRp
YWxMZXR0ZXJEZXNjZW50ID0gYXNjZW50QW5kRGVzY2VudC5kZXNjZW50OwogICAgICAgICAgICAg
aWYgKGxpbmVCb3guYmFzZWxpbmVUeXBlKCkgIT0gRm9udEJhc2VsaW5lOjpBbHBoYWJldGljKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDUwNTYwYTU4NmJk
Yy4uN2NmZjhkM2JmNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIu
Y3BwCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nQnVpbGRlciB0b1N0cmlu
Zyhjb25zdCBMaW5lOjpSdW5MaXN0JiBydW5zKQogICAgICAgICBpZiAoIXJ1bi5pc1RleHQoKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50
ZXh0Q29udGVudCgpOwotICAgICAgICBsaW5lQ29udGVudEJ1aWxkZXIuYXBwZW5kKFN0cmluZ1Zp
ZXcoZG93bmNhc3Q8SW5saW5lVGV4dEJveD4ocnVuLmxheW91dEJveCgpKS5jb250ZW50KCkpLnN1
YnN0cmluZyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpKTsKKyAgICAg
ICAgbGluZUNvbnRlbnRCdWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KGRvd25jYXN0PElubGluZVRl
eHRCb3g+KHJ1bi5sYXlvdXRCb3goKSkuY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQu
c3RhcnQsIHRleHRDb250ZW50Lmxlbmd0aCkpOwogICAgIH0KICAgICByZXR1cm4gbGluZUNvbnRl
bnRCdWlsZGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDkxNmVlMmViZGNlZS4uZmZi
MGJlOGFiZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGNvbXB1dGVJbmtPdmVyZmxvd0ZvcklubGluZUJveChjb25zdCBJbmxp
bmVMZXZlbEJveCYgaW5saW5lQm8KIAogdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6
OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwgY29uc3QgSW5s
aW5lUmVjdCYgdGV4dFJ1blJlY3QsIElubGluZURpc3BsYXk6OkJveGVzJiBib3hlcykKIHsKLSAg
ICBBU1NFUlQobGluZVJ1bi50ZXh0Q29udGVudCgpICYmIGlzPElubGluZVRleHRCb3g+KGxpbmVS
dW4ubGF5b3V0Qm94KCkpKTsKKyAgICBBU1NFUlQobGluZVJ1bi5pc1RleHQoKSAmJiBpczxJbmxp
bmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CiAKICAgICBhdXRvJiBpbmxpbmVUZXh0
Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRCb3goKSk7CiAgICAg
YXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gaW5saW5lVGV4dEJveC5maXJz
dExpbmVTdHlsZSgpIDogaW5saW5lVGV4dEJveC5zdHlsZSgpOwpAQCAtMjAyLDcgKzIwMiw3IEBA
IHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChj
b25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgICAgICAgICAgICAgLy8gY2FuVXNlU2ltcGxl
Rm9udENvZGVQYXRoIG1hcHMgdG8gQ29kZVBhdGg6OlNpbXBsZSAoYW5kIGNvbnRlbnQgd2l0aCBw
b3RlbnRpYWwgZ2x5cGggb3ZlcmZsb3cgd291bGQgc2F5cyBDb2RlUGF0aDo6U2ltcGxlV2l0aEds
eXBoT3ZlcmZsb3cpLgogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjplbmNs
b3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4
dC0+c3RhcnQsIHRleHQtPmxlbmd0aCksIHN0eWxlLCBpbmxpbmVUZXh0Qm94LnNob3VsZFVzZVNp
bXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUds
eXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBo
T3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOworICAgICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnRB
bmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdW
aWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLCBp
bmxpbmVUZXh0Qm94LnNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4
dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0
aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOwogICAgICAgICAg
ICAgLy8gRklYTUU6IFRha2UgZmFsbGJhY2sgZm9udHMgaW50byBhY2NvdW50LgogICAgICAgICAg
ICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwogICAg
ICAgICAgICAgYXV0byB0b3BPdmVyZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5saW5lRm9ybWF0dGlu
Z1V0aWxzOjpzbmFwVG9JbnQoLWVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQuYXNjZW50LCBpbmxp
bmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRpbmdVdGlsczo6YXNjZW50KGZvbnRNZXRyaWNzLCBG
b250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlubGluZVRleHRCb3gpKTsKQEAgLTIyNyw3ICsyMjcs
NyBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlC
b3goY29uc3QgTGluZTo6UnVuJiBsaW5lUnVuLAogICAgICAgICAgICAgLCBpbmtPdmVyZmxvdwog
ICAgICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAgICAgICAgICAgICAsIGxpbmVS
dW4uZXhwYW5zaW9uKCkKLSAgICAgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsg
dGV4dC0+c3RhcnQsIDEsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCBjb250ZW50
IH0KKyAgICAgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC5zdGFydCwg
MSwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJTdHJpbmcsIGNvbnRlbnQgfQogICAgICAgICAg
ICAgLCBpc0NvbnRlbnRmdWwKICAgICAgICAgICAgICwgaXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJs
b2NrRGlyZWN0aW9uKCkKICAgICAgICAgfSk7CkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6
OlJ1biYgbGluZVJ1biwKICAgICB9CiAKICAgICBhdXRvIGFkanVzdGVkQ29udGVudFRvUmVuZGVy
ID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIHRleHQtPm5lZWRzSHlwaGVuID8gbWFrZVN0cmluZyhT
dHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoKSwg
c3R5bGUuaHlwaGVuU3RyaW5nKCkpIDogU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB0ZXh0Lm5l
ZWRzSHlwaGVuID8gbWFrZVN0cmluZyhTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0
LnN0YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLmh5cGhlblN0cmluZygpKSA6IFN0cmluZygpOwog
ICAgIH07CiAgICAgYXV0byBzaGFwaW5nQm91bmRhcnkgPSBbJl0gewogICAgICAgICBpZiAobGlu
ZVJ1bi5pc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkpCkBAIC0yNTQsNyArMjU0LDcgQEAgdm9pZCBJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExp
bmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgLCBpbmtPdmVyZmxvdwogICAgICAgICAsIGlzRmly
c3RGb3JtYXR0ZWRMaW5lKCkKICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAg
ICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCwg
Y29udGVudCwgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIoKSwgdGV4dC0+bmVlZHNIeXBoZW4sIHNo
YXBpbmdCb3VuZGFyeSgpIH0KKyAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0
ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCwgY29udGVudCwgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIo
KSwgdGV4dC5uZWVkc0h5cGhlbiwgc2hhcGluZ0JvdW5kYXJ5KCkgfQogICAgICAgICAsIGlzQ29u
dGVudGZ1bAogICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlvbigp
CiAgICAgfSk7CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKIAog
dm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFNvZnRMaW5lQnJlYWtEaXNw
bGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwgY29uc3QgSW5saW5lUmVjdCYgc29mdExp
bmVCcmVha1J1blJlY3QsIElubGluZURpc3BsYXk6OkJveGVzJiBib3hlcykKIHsKLSAgICBBU1NF
UlQobGluZVJ1bi50ZXh0Q29udGVudCgpICYmIGlzPElubGluZVRleHRCb3g+KGxpbmVSdW4ubGF5
b3V0Qm94KCkpKTsKKyAgICBBU1NFUlQobGluZVJ1bi5pc1RleHQoKSAmJiBpczxJbmxpbmVUZXh0
Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CiAKICAgICBhdXRvJiBsYXlvdXRCb3ggPSBsaW5l
UnVuLmxheW91dEJveCgpOwogICAgIGF1dG8mIHRleHQgPSBsaW5lUnVuLnRleHRDb250ZW50KCk7
CkBAIC0yNzYsNyArMjc2LDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFw
cGVuZFNvZnRMaW5lQnJlYWtEaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYKICAgICAgICAgLCBz
b2Z0TGluZUJyZWFrUnVuUmVjdAogICAgICAgICAsIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkKICAg
ICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94
OjpUZXh0IHsgdGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCwgZG93bmNhc3Q8SW5saW5lVGV4dEJv
eD4obGF5b3V0Qm94KS5jb250ZW50KCkgfQorICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6
VGV4dCB7IHRleHQuc3RhcnQsIHRleHQubGVuZ3RoLCBkb3duY2FzdDxJbmxpbmVUZXh0Qm94Pihs
YXlvdXRCb3gpLmNvbnRlbnQoKSB9CiAgICAgICAgICwgaXNDb250ZW50ZnVsCiAgICAgICAgICwg
aXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJsb2NrRGlyZWN0aW9uKCkKICAgICB9KTsK
</data>
<flag name="commit-queue"
          id="500026"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477888</attachid>
            <date>2026-01-02 10:00:34 -0800</date>
            <delta_ts>2026-01-07 09:13:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-304849-20260102100033.patch</filename>
            <type>text/plain</type>
            <size>31467</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4ZjBlNTgxOGIxYmJiYTRjNDc0MTgyMWE1MjM2MTIyMDgxYzE5OTYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBKYW4gMjAyNiAwODo1MTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtJRkNdIFNo
cmluayBMYXlvdXQ6OkxpbmU6OlJ1biBmcm9tIDEyOCBieXRlcyB0byA4OCBieXRlcwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDg0OQoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgotIHJlYXJyYW5nZSBtZW1iZXIgdmFyaWFibGVzCi0gcmV0aXJlIGEgZmV3
IG9wdGlvbmFscwotIG1ha2UgVHJhaWxpbmdXaGl0ZXNwYWNlIHNtYWxsZXIgKHNpemUgYXMgMjRi
aXRzKQoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50QWxpZ25lci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OmNvbXB1dGVkRXhwYW5z
aW9ucyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0
dGluZ1V0aWxzOjppbmxpbmVDb250ZW50RW5kaW5nKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcDoKKFdlYkNvcmU6OkxheW91
dDo6TGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2UpOgooV2ViQ29yZTo6TGF5
b3V0OjpMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSk6CihXZWJDb3JlOjpM
YXlvdXQ6OkxpbmU6OlJ1bjo6UnVuKToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBh
bmQpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmRldGFjaFRyYWlsaW5nV2hpdGVzcGFj
ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNl
KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNDb250ZW50ZnVsIGNvbnN0
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjp0ZXh0Q29udGVudCBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aGFzVHJhaWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjp0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNXaGl0ZXNwYWNlT25seSBjb25zdCk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRhcnlTdGFydCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRhcnlFbmQgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzSW5zaWRlU2hhcGluZ0JvdW5kYXJ5IGNv
bnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjppc1NoYXBpbmdCb3VuZGFyeSBjb25z
dCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aGFzQ29sbGFwc2libGVUcmFpbGluZ1do
aXRlc3BhY2UgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNl
ZFRyYWlsaW5nV2hpdGVzcGFjZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6
c2V0TmVlZHNIeXBoZW4pOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJveEJ1aWxkZXI6OmNvbGxlY3RGYWxsYmFja0ZvbnRzKToKKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJveEJ1aWxkZXI6OmFkanVzdElubGluZUJveEhlaWdodHNGb3JMaW5lQm94Q29udGFpbklmQXBw
bGljYWJsZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0Ojp0b1N0cmluZyk6Ciog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRTb2Z0TGluZUJyZWFrRGlz
cGxheUJveCk6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAgICAgICAg
ICAgIHwgIDIgKy0KIC4uLi9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcCAgICAgICAg
ICB8ICAyICstCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCAg
fCA2NSArKysrKysrKysrLS0tLS0tLS0tCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmggICAgfCA1MSArKysrKysrKy0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGlu
ZUJveEJ1aWxkZXIuY3BwICAgICAgICAgICB8IDEwICstLQogLi4uL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9kaXNwbGF5L0lubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlci5jcHAgICB8IDE0ICsrLS0KIDcgZmlsZXMgY2hhbmdlZCwgNzQgaW5z
ZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
Q29udGVudEFsaWduZXIuY3BwCmluZGV4IDBhNDIxYTQ3NDc3MC4uNTg4NGMyOWJkZjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50QWxpZ25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3BwCkBAIC0yMDksNyAr
MjA5LDcgQEAgc3RhdGljIHZvaWQgY29tcHV0ZWRFeHBhbnNpb25zKGNvbnN0IExpbmU6OlJ1bkxp
c3QmIHJ1bnMsIFdURjo6UmFuZ2U8c2l6ZV90PiBydW4KICAgICAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yLmxlZnQgPSBydW5Jc0FmdGVyRXhwYW5zaW9u
ID8gRXhwYW5zaW9uQmVoYXZpb3I6OkJlaGF2aW9yOjpGb3JiaWQgOiBFeHBhbnNpb25CZWhhdmlv
cjo6QmVoYXZpb3I6OkFsbG93OwogICAgICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yLnJp
Z2h0ID0gRXhwYW5zaW9uQmVoYXZpb3I6OkJlaGF2aW9yOjpBbGxvdzsKLSAgICAgICAgICAgICAg
ICBhdXRvJiB0ZXh0Q29udGVudCA9ICpydW4udGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgICAg
ICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAgICAgICAg
IGF1dG8gbGVuZ3RoID0gdGV4dENvbnRlbnQubGVuZ3RoOwogICAgICAgICAgICAgICAgIGlmIChs
YXN0VGV4dFJ1bkluZGV4Rm9yVHJpbW1pbmcgJiYgcnVuSW5kZXgoKSA9PSAqbGFzdFRleHRSdW5J
bmRleEZvclRyaW1taW5nKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWlsaW5nIGhhbmdp
bmcgd2hpdGVzcGFjZSBzZXF1ZW5jZSBpcyBpZ25vcmVkIHdoZW4gY29tcHV0aW5nIHRoZSBleHBh
bnNpb24gb3Bwb3J0dW5pdGllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nVXRpbHMuY3BwCmluZGV4IDg0ODAyOTAwMjljNC4uNmI1MzQ2MjQyNmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAKQEAgLTYzMCw3ICs2MzAs
NyBAQCBzdGQ6Om9wdGlvbmFsPExpbmVMYXlvdXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc+
IElubGluZUZvcm1hdHRpbmdVdGlsczo6aW5saQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGlmIChydW4uaXNMaW5lQnJlYWsoKSkKICAgICAgICAgICAgIHJldHVybiB7IExpbmVMYXlv
dXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc6OkxpbmVCcmVhayB9OwotICAgICAgICBpZiAo
YXV0byYgdGV4dENvbnRlbnQgPSBydW4udGV4dENvbnRlbnQoKTsgdGV4dENvbnRlbnQgJiYgdGV4
dENvbnRlbnQtPm5lZWRzSHlwaGVuKQorICAgICAgICBpZiAocnVuLmlzVGV4dCgpICYmIHJ1bi50
ZXh0Q29udGVudCgpLm5lZWRzSHlwaGVuKQogICAgICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91
dFJlc3VsdDo6SW5saW5lQ29udGVudEVuZGluZzo6SHlwaGVuIH07CiAgICAgICAgIHJldHVybiB7
IExpbmVMYXlvdXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc6OkdlbmVyaWMgfTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCmluZGV4IDc2ZmJhMWRkMzUyNy4uY2U4M2E5OTkx
YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApAQCAtNjU0LDcgKzY1NCw3IEBAIGJv
b2wgTGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2UoSW5saW5lTGF5b3V0VW5p
dCB0cmltbWVkVHJhaWxpbmdXaGl0CiAgICAgYXV0byByZXN0b3JlID0gWyZdKGF1dG8mIHRyYWls
aW5nUnVuKSB7CiAgICAgICAgIEFTU0VSVCh0cmFpbGluZ1J1bi5pc1RleHQoKSk7CiAgICAgICAg
IGF1dG8mIGxheW91dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KHRyYWlsaW5nUnVuLmxh
eW91dEJveCgpKTsKLSAgICAgICAgaWYgKHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQtPnN0YXJ0
ICsgdHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC0+bGVuZ3RoID09IGxheW91dEJveC5jb250ZW50
KCkubGVuZ3RoKCkpIHsKKyAgICAgICAgaWYgKHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQuc3Rh
cnQgKyB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50Lmxlbmd0aCA9PSBsYXlvdXRCb3guY29udGVu
dCgpLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAvLyBJdCBsb29rcyBsaWtlIHdlIGRpZG4ndCBf
dHJpbV8gdGhpcyB0cmFpbGluZyBydW4gYnV0IHJlbW92ZWQgdGhlIGxhdCBydW4gaW5zdGVhZCAo
aGFwcGVucyB3aXRoIGRlZGljYXRlZCBsYXlvdXQgYm94KS4KICAgICAgICAgICAgIC8vIExldCdz
IHB1dCB0aGF0IGNvbnRlbnQgYmFjayBhcyB0cmFpbGluZyBydW4uCiAgICAgICAgICAgICBpZiAo
YXBwZW5kVHJhaWxpbmdJbmxpbmVJdGVtQXNUcmFpbGluZ1J1bihydW5zLCB0cmltbWVkVHJhaWxp
bmdXaGl0ZXNwYWNlV2lkdGgsIGlubGluZUl0ZW1SYW5nZSwgaW5saW5lSXRlbXMpKQpAQCAtNjY0
LDcgKzY2NCw3IEBAIGJvb2wgTGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2Uo
SW5saW5lTGF5b3V0VW5pdCB0cmltbWVkVHJhaWxpbmdXaGl0CiAgICAgICAgIH0KICAgICAgICAg
dHJhaWxpbmdSdW4ubV9sb2dpY2FsV2lkdGggKz0gdHJpbW1lZFRyYWlsaW5nV2hpdGVzcGFjZVdp
ZHRoOwogICAgICAgICAvLyBUaGlzIG11c3QgYmUgY29sbGFwc2VkIHdoaXRlc3BhY2UuCi0gICAg
ICAgIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQtPmxlbmd0aCArPSAxOworICAgICAgICB0cmFp
bGluZ1J1bi5tX3RleHRDb250ZW50Lmxlbmd0aCArPSAxOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9OwogCkBAIC03NDYsNyArNzQ2LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpUcmlt
bWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAgICAgIEFTU0VSVChydW4uaXNXb3Jk
QnJlYWtPcHBvcnR1bml0eSgpIHx8IHJ1bi5pc0xpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KCkg
fHwgcnVuLmlzSW5saW5lQm94U3RhcnQoKSB8fCBydW4uaXNJbmxpbmVCb3hFbmQoKSB8fCBydW4u
aXNMaW5lQnJlYWsoKSB8fCBydW4uaXNPcGFxdWUoKSk7CiAgICAgICAgIHJ1bi5tb3ZlSG9yaXpv
bnRhbGx5KC10cmltbWVkV2lkdGgpOwogICAgIH0KLSAgICBpZiAoIXRyaW1tYWJsZVJ1bi50ZXh0
Q29udGVudCgpLT5sZW5ndGgpIHsKKyAgICBpZiAoIXRyaW1tYWJsZVJ1bi50ZXh0Q29udGVudCgp
Lmxlbmd0aCkgewogICAgICAgICAvLyBUaGlzIHRyaW1tYWJsZSBydW4gaXMgZnVsbHkgY29sbGFw
c2VkIG5vdyAoZS5nLiA8ZGl2PjxpbWc+ICAgIDxzcGFuPjwvc3Bhbj48L2Rpdj4pLgogICAgICAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGtlZXAgaXQgYXJvdW5kIGFueW1vcmUuCiAgICAgICAgIG1f
cnVucy5yZW1vdmVBdCgqbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4KTsKQEAgLTgwMSw2MiArODAx
LDYzIEBAIHN0ZDo6b3B0aW9uYWw8TGluZTo6UnVuOjpUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU+
IExpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlCiAKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElu
bGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGlu
ZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50KQogICAgIDogbV90eXBlKHRvTGluZVJ1
blR5cGUoaW5saW5lSXRlbSkpCi0gICAgLCBtX2xheW91dEJveCgmaW5saW5lSXRlbS5sYXlvdXRC
b3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxM
ZWZ0KQogICAgICwgbV9sb2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKQogICAgICwgbV9iaWRpTGV2
ZWwoaW5saW5lSXRlbS5iaWRpTGV2ZWwoKSkKICAgICAsIG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50
KHRleHRTcGFjaW5nQWRqdXN0bWVudCkKKyAgICAsIG1fbGF5b3V0Qm94KCZpbmxpbmVJdGVtLmxh
eW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKIHsKIH0KIAogTGluZTo6UnVuOjpSdW4o
Y29uc3QgSW5saW5lSXRlbSYgemVyb1dpZGh0SW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KQogICAgIDogbV90eXBlKHRvTGlu
ZVJ1blR5cGUoemVyb1dpZGh0SW5saW5lSXRlbSkpCi0gICAgLCBtX2xheW91dEJveCgmemVyb1dp
ZGh0SW5saW5lSXRlbS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBt
X2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9iaWRpTGV2ZWwoemVyb1dpZGh0SW5s
aW5lSXRlbS5iaWRpTGV2ZWwoKSkKKyAgICAsIG1fbGF5b3V0Qm94KCZ6ZXJvV2lkaHRJbmxpbmVJ
dGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKIHsKIH0KIAogTGluZTo6UnVu
OjpSdW4oY29uc3QgSW5saW5lSXRlbSYgbGluZVNwYW5uaW5nSW5saW5lQm94SXRlbSwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElu
bGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50KQogICAgIDogbV90eXBlKFR5cGU6
OkxpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KQotICAgICwgbV9sYXlvdXRCb3goJmxpbmVTcGFu
bmluZ0lubGluZUJveEl0ZW0ubGF5b3V0Qm94KCkpCi0gICAgLCBtX3N0eWxlKGxpbmVTcGFubmlu
Z0lubGluZUJveEl0ZW0uc3R5bGUoKSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQp
CiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgpCiAgICAgLCBtX2JpZGlMZXZlbChs
aW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmJpZGlMZXZlbCgpKQogICAgICwgbV90ZXh0U3BhY2lu
Z0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQorICAgICwgbV9sYXlvdXRCb3goJmxp
bmVTcGFubmluZ0lubGluZUJveEl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKGxpbmVT
cGFubmluZ0lubGluZUJveEl0ZW0uc3R5bGUoKSkKIHsKICAgICBBU1NFUlQobGluZVNwYW5uaW5n
SW5saW5lQm94SXRlbS5pc0lubGluZUJveFN0YXJ0KCkpOwogfQogCiBMaW5lOjpSdW46OlJ1bihj
b25zdCBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSYgc29mdExpbmVCcmVha0l0ZW0sIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCkKICAgICA6IG1f
dHlwZShUeXBlOjpTb2Z0TGluZUJyZWFrKQotICAgICwgbV9sYXlvdXRCb3goJnNvZnRMaW5lQnJl
YWtJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fbG9naWNh
bExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2JpZGlMZXZlbChzb2Z0TGluZUJyZWFrSXRlbS5i
aWRpTGV2ZWwoKSkKKyAgICAsIG1fbGF5b3V0Qm94KCZzb2Z0TGluZUJyZWFrSXRlbS5sYXlvdXRC
b3goKSkKKyAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX3RleHRDb250ZW50KHsgc29mdExp
bmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQogewogfQogCiBMaW5lOjpSdW46OlJ1bihjb25z
dCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50LCBzdGQ6Om9wdGlv
bmFsPExpbmU6OlNoYXBpbmdCb3VuZGFyeT4gc2hhcGluZ0JvdW5kYXJ5KQogICAgIDogbV90eXBl
KGlubGluZVRleHRJdGVtLmlzV29yZFNlcGFyYXRvcigpID8gVHlwZTo6V29yZFNlcGFyYXRvciA6
IGlubGluZVRleHRJdGVtLmlzUXVpcmtOb25CcmVha2luZ1NwYWNlKCkgPyBUeXBlOjpOb25CcmVh
a2luZ1NwYWNlIDogVHlwZTo6VGV4dCkKLSAgICAsIG1fbGF5b3V0Qm94KCZpbmxpbmVUZXh0SXRl
bS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCisgICAgLCBtX3NoYXBpbmdCb3Vu
ZGFyeShzaGFwaW5nQm91bmRhcnkudmFsdWVfb3IoU2hhcGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNh
YmxlKSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxX
aWR0aChsb2dpY2FsV2lkdGgpCiAgICAgLCBtX2JpZGlMZXZlbChpbmxpbmVUZXh0SXRlbS5iaWRp
TGV2ZWwoKSkKLSAgICAsIG1fc2hhcGluZ0JvdW5kYXJ5KHNoYXBpbmdCb3VuZGFyeSkKICAgICAs
IG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50KHRleHRTcGFjaW5nQWRqdXN0bWVudCkKKyAgICAsIG1f
bGF5b3V0Qm94KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKKyAgICAsIG1fc3R5bGUoc3R5
bGUpCiB7CiAgICAgYXV0byBsZW5ndGggPSBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsKICAgICBh
dXRvIHdoaXRlc3BhY2VUeXBlID0gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRl
bSk7CisKICAgICBpZiAod2hpdGVzcGFjZVR5cGUpIHsKICAgICAgICAgaWYgKCp3aGl0ZXNwYWNl
VHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCkKICAgICAgICAgICAg
IGxlbmd0aCA9ICAxOwotICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3Bh
Y2VUeXBlLCBsb2dpY2FsV2lkdGgsIGxlbmd0aCB9OworICAgICAgICBtX3RyYWlsaW5nV2hpdGVz
cGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCBsZW5ndGgsIGxvZ2ljYWxXaWR0aCB9OwogICAgIH0K
ICAgICBtX3RleHRDb250ZW50ID0geyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBsZW5ndGggfTsK
IH0KQEAgLTg2Nyw0MiArODY4LDQyIEBAIHZvaWQgTGluZTo6UnVuOjpleHBhbmQoY29uc3QgSW5s
aW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvCiAgICAgQVNT
RVJUKGlzVGV4dCgpICYmIGlubGluZVRleHRJdGVtLmlzVGV4dCgpKTsKICAgICBBU1NFUlQobV9s
YXlvdXRCb3ggPT0gJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKTsKICAgICBBU1NFUlQobV9i
aWRpTGV2ZWwgPT0gaW5saW5lVGV4dEl0ZW0uYmlkaUxldmVsKCkpOwotICAgIEFTU0VSVCghbV9z
aGFwaW5nQm91bmRhcnkgfHwgKm1fc2hhcGluZ0JvdW5kYXJ5ICE9IFNoYXBpbmdCb3VuZGFyeTo6
RW5kKTsKKyAgICBBU1NFUlQobV9zaGFwaW5nQm91bmRhcnkgPT0gU2hhcGluZ0JvdW5kYXJ5OjpO
b3RBcHBsaWNhYmxlIHx8IG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6U3Rh
cnQgfHwgbV9zaGFwaW5nQm91bmRhcnkgPT0gU2hhcGluZ0JvdW5kYXJ5OjpJbnNpZGUpOwogCiAg
ICAgbV9sb2dpY2FsV2lkdGggKz0gbG9naWNhbFdpZHRoOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5
cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGlubGluZVRleHRJdGVtKTsKIAogICAgIGlmICgh
d2hpdGVzcGFjZVR5cGUpIHsKICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07Ci0g
ICAgICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCArPSBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsK
KyAgICAgICAgbV90ZXh0Q29udGVudC5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7
CiAgICAgICAgIG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgPSBpbmxpbmVUZXh0SXRl
bS5zdGFydCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1dG8gd2hpdGVzcGFjZVdp
ZHRoID0gIW1fdHJhaWxpbmdXaGl0ZXNwYWNlID8gbG9naWNhbFdpZHRoIDogbV90cmFpbGluZ1do
aXRlc3BhY2UtPndpZHRoICsgbG9naWNhbFdpZHRoOworICAgIGF1dG8gd2hpdGVzcGFjZVdpZHRo
ID0gIWhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpID8gbG9naWNhbFdpZHRoIDogbV90cmFpbGluZ1do
aXRlc3BhY2Uud2lkdGggKyBsb2dpY2FsV2lkdGg7CiAgICAgYXV0byB0cmFpbGluZ1doaXRlc3Bh
Y2VMZW5ndGggPSAqd2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpD
b2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7IAotICAgIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIHdoaXRlc3BhY2VXaWR0aCwgdHJhaWxpbmdX
aGl0ZXNwYWNlTGVuZ3RoIH07Ci0gICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoICs9IHRyYWlsaW5n
V2hpdGVzcGFjZUxlbmd0aDsKKyAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3Bh
Y2VUeXBlLCB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGgsIHdoaXRlc3BhY2VXaWR0aCB9OworICAg
IG1fdGV4dENvbnRlbnQubGVuZ3RoICs9IHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aDsKIH0KIAog
c3RkOjpvcHRpb25hbDxMaW5lOjpSdW4+IExpbmU6OlJ1bjo6ZGV0YWNoVHJhaWxpbmdXaGl0ZXNw
YWNlKCkKIHsKLSAgICBpZiAoIW1fdHJhaWxpbmdXaGl0ZXNwYWNlIHx8IGlzV2hpdGVzcGFjZU9u
bHkoKSkKKyAgICBpZiAoIWhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIHx8IGlzV2hpdGVzcGFjZU9u
bHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIEFTU0VSVChtX3RyYWlsaW5nV2hpdGVz
cGFjZS0+bGVuZ3RoIDwgbV90ZXh0Q29udGVudC0+bGVuZ3RoKTsKKyAgICBBU1NFUlQobV90cmFp
bGluZ1doaXRlc3BhY2UubGVuZ3RoIDwgbV90ZXh0Q29udGVudC5sZW5ndGgpOwogICAgIGF1dG8g
dHJhaWxpbmdXaGl0ZXNwYWNlUnVuID0gKnRoaXM7CiAKLSAgICBhdXRvIGxlYWRpbmdOb25XaGl0
ZXNwYWNlQ29udGVudExlbmd0aCA9IG1fdGV4dENvbnRlbnQtPmxlbmd0aCAtIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLT5sZW5ndGg7Ci0gICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fdGV4dENvbnRl
bnQgPSB7IG1fdGV4dENvbnRlbnQtPnN0YXJ0ICsgbGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50
TGVuZ3RoLCBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoLCBmYWxzZSB9OworICAgIGF1dG8g
bGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50TGVuZ3RoID0gbV90ZXh0Q29udGVudC5sZW5ndGgg
LSBtX3RyYWlsaW5nV2hpdGVzcGFjZS5sZW5ndGg7CisgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVu
Lm1fdGV4dENvbnRlbnQgPSB7IG1fdGV4dENvbnRlbnQuc3RhcnQgKyBsZWFkaW5nTm9uV2hpdGVz
cGFjZUNvbnRlbnRMZW5ndGgsIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0aCwgZmFsc2UgfTsK
IAotICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxXaWR0aCA9IG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLT53aWR0aDsKLSAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV9sb2dpY2FsTGVm
dCA9IGxvZ2ljYWxSaWdodCgpIC0gbV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRoOworICAgIHRy
YWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNl
LndpZHRoOworICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxMZWZ0ID0gbG9naWNh
bFJpZ2h0KCkgLSBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsKIAogICAgIHRyYWlsaW5nV2hp
dGVzcGFjZVJ1bi5tX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKICAgICB0cmFpbGluZ1doaXRl
c3BhY2VSdW4ubV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFydCA9IHsgfTsKIAogICAgIG1f
bG9naWNhbFdpZHRoIC09IHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5sb2dpY2FsV2lkdGgoKTsKLSAg
ICBtX3RleHRDb250ZW50LT5sZW5ndGggPSBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5n
dGg7CisgICAgbV90ZXh0Q29udGVudC5sZW5ndGggPSBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRl
bnRMZW5ndGg7CiAgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07CiAKICAgICByZXR1cm4g
dHJhaWxpbmdXaGl0ZXNwYWNlUnVuOwpAQCAtOTMxLDI1ICs5MzIsMjUgQEAgSW5saW5lTGF5b3V0
VW5pdCBMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygpCiAKIElubGluZUxh
eW91dFVuaXQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKQogewotICAgIEFT
U0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZSk7CisgICAgQVNTRVJUKGhhc1RyYWlsaW5nV2hpdGVz
cGFjZSgpKTsKICAgICAvLyBBY2NvcmRpbmcgdG8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10
ZXh0LTMvI3doaXRlLXNwYWNlLXByb3BlcnR5IG1hdHJpeAogICAgIC8vIFRyaW1tYWJsZSB3aGl0
ZXNwYWNlIGlzIGFsd2F5cyBjb2xsYXBzaWJsZSBzbyB0aGUgbGVuZ3RoIG9mIHRoZSB0cmFpbGlu
ZyB0cmltbWFibGUgd2hpdGVzcGFjZSBpcyBhbHdheXMgMSAob3Igbm9uLWV4aXN0ZW50KS4KLSAg
ICBBU1NFUlQobV90ZXh0Q29udGVudCAmJiBtX3RleHRDb250ZW50LT5sZW5ndGgpOworICAgIEFT
U0VSVChpc1RleHQoKSAmJiBtX3RleHRDb250ZW50Lmxlbmd0aCk7CiAgICAgY29uc3RleHByIHNp
emVfdCB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGggPSAxOwogCi0gICAgYXV0byB0cmlt
bWVkV2lkdGggPSBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGg7CisgICAgYXV0byB0cmltbWVk
V2lkdGggPSBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsKICAgICBpZiAobV9sYXN0Tm9uV2hp
dGVzcGFjZUNvbnRlbnRTdGFydCAmJiBpbmxpbmVEaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9u
OjpSVEwpIHsKICAgICAgICAgLy8gV2hpbGUgTFRSIGNvbnRlbnQgY291bGQgYWxzbyBzdWZmZXIg
ZnJvbSBzbGlnaHRseSBpbmNvcnJlY3QgY29udGVudCB3aWR0aCBhZnRlciB0cmltbWluZyB0cmFp
bGluZyB3aGl0ZXNwYWNlIChzZWUgVGV4dFV0aWw6OndpZHRoKQogICAgICAgICAvLyBpdCBoYXJk
bHkgcHJvZHVjZXMgdmlzdWFsbHkgb2JzZXJ2YWJsZSByZXN1bHQuCiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIG1heSBzdGlsbCBpbmNvcnJlY3RseSBsZWF2ZSBzb21lIGNvbnRlbnQgb24gdGhlIGxp
bmUgKHZzLiByZS1tZWFzdXJpbmcgYWxzbyBhdCA6OmV4cGFuZCkuCiAgICAgICAgIGF1dG8mIGlu
bGluZVRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PigqbV9sYXlvdXRCb3gpOwogICAg
ICAgICBhdXRvIHN0YXJ0UG9zaXRpb24gPSAqbV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFy
dDsKLSAgICAgICAgYXV0byBlbmRQb3NpdGlvbiA9IG1fdGV4dENvbnRlbnQtPnN0YXJ0ICsgbV90
ZXh0Q29udGVudC0+bGVuZ3RoOworICAgICAgICBhdXRvIGVuZFBvc2l0aW9uID0gbV90ZXh0Q29u
dGVudC5zdGFydCArIG1fdGV4dENvbnRlbnQubGVuZ3RoOwogICAgICAgICBSRUxFQVNFX0FTU0VS
VChzdGFydFBvc2l0aW9uIDwgZW5kUG9zaXRpb24gLSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRM
ZW5ndGgpOwogICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jb250ZW50KClbZW5kUG9zaXRpb24g
LSAxXSA9PSBzcGFjZSkKICAgICAgICAgICAgIHRyaW1tZWRXaWR0aCA9IFRleHRVdGlsOjp0cmFp
bGluZ1doaXRlc3BhY2VXaWR0aChpbmxpbmVUZXh0Qm94LCBtX3N0eWxlLmZvbnRDYXNjYWRlKCks
IHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKICAgICB9Ci0gICAgbV90ZXh0Q29udGVudC0+
bGVuZ3RoIC09IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aDsKKyAgICBtX3RleHRDb250
ZW50Lmxlbmd0aCAtPSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGg7CiAgICAgbV90cmFp
bGluZ1doaXRlc3BhY2UgPSB7IH07CiAgICAgc2hyaW5rSG9yaXpvbnRhbGx5KHRyaW1tZWRXaWR0
aCk7CiAgICAgcmV0dXJuIHRyaW1tZWRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRl
eCAxZWIxMzExMmQwN2IuLmJiMzg5OTUwZjRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApA
QCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgVmVj
dG9yPElubGluZUl0ZW0sIDE+JiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcywgYm9vbCBpc0ZpcnN0
Rm9ybWF0dGVkTGluZSk7CiAKLSAgICBlbnVtIGNsYXNzIFNoYXBpbmdCb3VuZGFyeSA6IHVpbnQ4
X3QgeyBTdGFydCwgSW5zaWRlLCBFbmQgfTsKKyAgICBlbnVtIGNsYXNzIFNoYXBpbmdCb3VuZGFy
eSA6IHVpbnQ4X3QgeyBOb3RBcHBsaWNhYmxlLCBTdGFydCwgSW5zaWRlLCBFbmQgfTsKICAgICB2
b2lkIGFwcGVuZFRleHQoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYs
IElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoLCBzdGQ6Om9wdGlvbmFsPFNoYXBpbmdCb3Vu
ZGFyeT4pOwogICAgIHZvaWQgYXBwZW5kVGV4dEZhc3QoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBj
b25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsgLy8gUmVz
ZXJ2ZWQgZm9yIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIKICAgICB2b2lkIGFwcGVuZEF0b21p
Y0lubGluZUJveChjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVM
YXlvdXRVbml0IG1hcmdpbkJveExvZ2ljYWxXaWR0aCk7CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVi
bGljOgogICAgICAgICBib29sIGlzT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5
cGU6Ok9wYXF1ZTsgfQogICAgICAgICBib29sIGlzQmxvY2soKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVHlwZTo6QmxvY2s7IH0KIAotICAgICAgICBib29sIGlzQ29udGVudGZ1bCgpIGNvbnN0
IHsgcmV0dXJuIChpc1RleHQoKSAmJiB0ZXh0Q29udGVudCgpLT5sZW5ndGgpIHx8IGlzQXRvbWlj
SW5saW5lQm94KCkgfHwgaXNMaW5lQnJlYWsoKSB8fCBpc0xpc3RNYXJrZXIoKSB8fCBpc0Jsb2Nr
KCk7IH0KKyAgICAgICAgYm9vbCBpc0NvbnRlbnRmdWwoKSBjb25zdCB7IHJldHVybiAoaXNUZXh0
KCkgJiYgdGV4dENvbnRlbnQoKS5sZW5ndGgpIHx8IGlzQXRvbWljSW5saW5lQm94KCkgfHwgaXNM
aW5lQnJlYWsoKSB8fCBpc0xpc3RNYXJrZXIoKSB8fCBpc0Jsb2NrKCk7IH0KICAgICAgICAgYm9v
bCBpc0dlbmVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGlzTGlzdE1hcmtlcigpOyB9CiAgICAgICAg
IHN0YXRpYyBib29sIGlzQ29udGVudGZ1bE9ySGFzRGVjb3JhdGlvbihjb25zdCBSdW4mLCBjb25z
dCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCB7IDAgfTsKICAgICAgICAgICAgIGJvb2wgbmVl
ZHNIeXBoZW4geyBmYWxzZSB9OwogICAgICAgICB9OwotICAgICAgICBjb25zdCBzdGQ6Om9wdGlv
bmFsPFRleHQ+JiB0ZXh0Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENvbnRlbnQ7IH0K
KyAgICAgICAgY29uc3QgVGV4dCYgdGV4dENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3RleHRD
b250ZW50OyB9CiAKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25z
dCB7IHJldHVybiBtX2xvZ2ljYWxXaWR0aDsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxv
Z2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsTGVmdDsgfQpAQCAtMTQyLDkgKzE0
Miw5IEBAIHB1YmxpYzoKIAogICAgICAgICBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFu
c2lvbiYgZXhwYW5zaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbnNpb247IH0KIAotICAgICAg
ICBib29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLmhhc192YWx1ZSgpOyB9Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxp
bmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSA/
IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aCA6IDAuZjsgfQotICAgICAgICBib29sIGlzV2hp
dGVzcGFjZU9ubHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBt
X3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoID09IG1fdGV4dENvbnRlbnQtPmxlbmd0aDsgfQor
ICAgICAgICBib29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlLnR5cGUgIT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpOb3RBcHBs
aWNhYmxlOyB9CisgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsgfQorICAgICAg
ICBib29sIGlzV2hpdGVzcGFjZU9ubHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRl
c3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS5sZW5ndGggPT0gbV90ZXh0Q29udGVudC5s
ZW5ndGg7IH0KIAogICAgICAgICBpbmxpbmUgVGV4dERpcmVjdGlvbiBpbmxpbmVEaXJlY3Rpb24o
KSBjb25zdDsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsZXR0ZXJTcGFjaW5nKCkgY29uc3Q7
CkBAIC0xNTMsMTAgKzE1MywxMCBAQCBwdWJsaWM6CiAKICAgICAgICAgVUJpRGlMZXZlbCBiaWRp
TGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2JpZGlMZXZlbDsgfQogCi0gICAgICAgIGJvb2wgaXNT
aGFwaW5nQm91bmRhcnlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkg
JiYgKm1fc2hhcGluZ0JvdW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6U3RhcnQ7IH0K
LSAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeUVuZCgpIGNvbnN0IHsgcmV0dXJuIGlzU2hh
cGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3Vu
ZGFyeTo6RW5kOyB9Ci0gICAgICAgIGJvb2wgaXNJbnNpZGVTaGFwaW5nQm91bmRhcnkoKSBjb25z
dCB7IHJldHVybiBpc1NoYXBpbmdCb3VuZGFyeSgpICYmICptX3NoYXBpbmdCb3VuZGFyeSA9PSBM
aW5lOjpTaGFwaW5nQm91bmRhcnk6Okluc2lkZTsgfQotICAgICAgICBib29sIGlzU2hhcGluZ0Jv
dW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91bmRhcnkuaGFzX3ZhbHVlKCk7IH0K
KyAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9z
aGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpTdGFydDsgfQorICAgICAg
ICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91
bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpFbmQ7IH0KKyAgICAgICAgYm9vbCBpc0lu
c2lkZVNoYXBpbmdCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ID09
IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlOyB9CisgICAgICAgIGJvb2wgaXNTaGFwaW5n
Qm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSAhPSBMaW5lOjpTaGFw
aW5nQm91bmRhcnk6Ok5vdEFwcGxpY2FibGU7IH0KIAogICAgICAgICAvLyBGSVhNRTogTWF5YmUg
YWRkIGNyZWF0ZSBmdW5jdGlvbnMgaW50ZWFkPwogICAgICAgICBSdW4oY29uc3QgSW5saW5lSXRl
bSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCk7CkBA
IC0xODAsMTcgKzE4MCwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgc2V0QmlkaUxldmVsKFVC
aURpTGV2ZWwgYmlkaUxldmVsKSB7IG1fYmlkaUxldmVsID0gYmlkaUxldmVsOyB9CiAKICAgICAg
ICAgc3RydWN0IFRyYWlsaW5nV2hpdGVzcGFjZSB7Ci0gICAgICAgICAgICBlbnVtIGNsYXNzIFR5
cGUgeworICAgICAgICAgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7CisgICAgICAgICAg
ICAgICAgTm90QXBwbGljYWJsZSwKICAgICAgICAgICAgICAgICBOb3RDb2xsYXBzaWJsZSwKICAg
ICAgICAgICAgICAgICBDb2xsYXBzaWJsZSwKICAgICAgICAgICAgICAgICBDb2xsYXBzZWQKICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICBUeXBlIHR5cGUgeyBUeXBlOjpOb3RDb2xsYXBzaWJs
ZSB9OwotICAgICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCB7IDAgfTsKLSAgICAgICAg
ICAgIHNpemVfdCBsZW5ndGggeyAwIH07CisgICAgICAgICAgICBUeXBlIHR5cGUgeyBUeXBlOjpO
b3RBcHBsaWNhYmxlIH07CisgICAgICAgICAgICBzaXplX3QgbGVuZ3RoIDogMjQgeyAwIH07Cisg
ICAgICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoIHsgMC5mIH07CiAgICAgICAgIH07Ci0g
ICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJl
dHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiAobV90cmFpbGluZ1doaXRlc3BhY2UtPnR5cGUg
PT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJsZSB8fCBoYXNDb2xsYXBzZWRU
cmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KLSAgICAgICAgYm9vbCBoYXNDb2xsYXBzZWRUcmFpbGlu
Z1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiBtX3Ry
YWlsaW5nV2hpdGVzcGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxh
cHNlZDsgfQorICAgICAgICBib29sIGhhc0NvbGxhcHNpYmxlVHJhaWxpbmdXaGl0ZXNwYWNlKCkg
Y29uc3QgeyByZXR1cm4gaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgJiYgKG1fdHJhaWxpbmdXaGl0
ZXNwYWNlLnR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJsZSB8fCBo
YXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KKyAgICAgICAgYm9vbCBoYXNDb2xs
YXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRl
c3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS50eXBlID09IFRyYWlsaW5nV2hpdGVzcGFj
ZTo6VHlwZTo6Q29sbGFwc2VkOyB9CiAgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRyYWls
aW5nV2hpdGVzcGFjZTo6VHlwZT4gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShjb25zdCBJbmxpbmVU
ZXh0SXRlbSYpOwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHJlbW92ZVRyYWlsaW5nV2hpdGVz
cGFjZSgpOwogCkBAIC0yMDAsMTggKzIwMSwxOCBAQCBwdWJsaWM6CiAgICAgICAgIElubGluZUxh
eW91dFVuaXQgdHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29uc3Q7CiAgICAgICAgIElubGluZUxh
eW91dFVuaXQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAKKyAgICAgICAgVHJhaWxp
bmdXaGl0ZXNwYWNlIG1fdHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsKICAgICAgICAgVHlwZSBtX3R5
cGUgeyBUeXBlOjpUZXh0IH07Ci0gICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxs
cHRyIH07Ci0gICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOworICAgICAgICBMaW5l
OjpTaGFwaW5nQm91bmRhcnkgbV9zaGFwaW5nQm91bmRhcnkgeyBMaW5lOjpTaGFwaW5nQm91bmRh
cnk6Ok5vdEFwcGxpY2FibGUgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xvZ2ljYWxM
ZWZ0IHsgMCB9OworICAgICAgICBNYXJrYWJsZTxzaXplX3Q+IG1fbGFzdE5vbldoaXRlc3BhY2VD
b250ZW50U3RhcnQgeyB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRo
IHsgMCB9OwotICAgICAgICBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lv
bjsKICAgICAgICAgVUJpRGlMZXZlbCBtX2JpZGlMZXZlbCB7IFVCSURJX0RFRkFVTFRfTFRSIH07
Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJhaWxpbmdXaGl0ZXNwYWNlPiBtX3RyYWlsaW5nV2hp
dGVzcGFjZSB7IH07Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBtX2xhc3ROb25XaGl0
ZXNwYWNlQ29udGVudFN0YXJ0IHsgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxUZXh0PiBtX3Rl
eHRDb250ZW50OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPExpbmU6OlNoYXBpbmdCb3VuZGFyeT4g
bV9zaGFwaW5nQm91bmRhcnk7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV90ZXh0U3BhY2lu
Z0FkanVzdG1lbnQgeyAwIH07CisgICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxs
cHRyIH07CisgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOworICAgICAgICBJbmxp
bmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKKyAgICAgICAgVGV4dCBtX3Rl
eHRDb250ZW50OwogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxSdW4sIDEwPjsK
ICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5zOyB9CkBAIC0z
ODIsOCArMzgzLDggQEAgaW5saW5lIHNpemVfdCBMaW5lOjpIYW5naW5nQ29udGVudDo6bGVuZ3Ro
KCkgY29uc3QKIAogaW5saW5lIHZvaWQgTGluZTo6UnVuOjpzZXROZWVkc0h5cGhlbihJbmxpbmVM
YXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKIHsKLSAgICBBU1NFUlQobV90ZXh0Q29udGVu
dCk7Ci0gICAgbV90ZXh0Q29udGVudC0+bmVlZHNIeXBoZW4gPSB0cnVlOworICAgIEFTU0VSVChp
c1RleHQoKSk7CisgICAgbV90ZXh0Q29udGVudC5uZWVkc0h5cGhlbiA9IHRydWU7CiAgICAgbV9s
b2dpY2FsV2lkdGggKz0gaHlwaGVuTG9naWNhbFdpZHRoOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggODY1NmExMGM0ZGY4Li5iZTg4N2Ri
NmIxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAK
QEAgLTEwMCw3ICsxMDAsNyBAQCBUZXh0VXRpbDo6RmFsbGJhY2tGb250TGlzdCBMaW5lQm94QnVp
bGRlcjo6Y29sbGVjdEZhbGxiYWNrRm9udHMoY29uc3QgSW5saW5lTGV2ZQogICAgICAgICAvLyBT
aW1wbGlmaWVkIHRleHQgbWVhc3VyaW5nIHdvcmtzIHdpdGggcHJpbWFyeSBmb250IG9ubHkuCiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIGF1dG8gdGV4dCA9ICpydW4udGV4dENvbnRl
bnQoKTsKKyAgICBhdXRvJiB0ZXh0ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAgYXV0byBmYWxs
YmFja0ZvbnRzID0gVGV4dFV0aWw6OmZhbGxiYWNrRm9udHNGb3JUZXh0KFN0cmluZ1ZpZXcoaW5s
aW5lVGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCks
IHN0eWxlLCB0ZXh0Lm5lZWRzSHlwaGVuID8gVGV4dFV0aWw6OkluY2x1ZGVIeXBoZW46OlllcyA6
IFRleHRVdGlsOjpJbmNsdWRlSHlwaGVuOjpObyk7CiAgICAgaWYgKGZhbGxiYWNrRm9udHMuaXNF
bXB0eUlnbm9yaW5nTnVsbFJlZmVyZW5jZXMoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTYx
MSw5ICs2MTEsOSBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRz
Rm9yTGluZUJveENvbnRhaW5JZkFwcGxpY2FibGUoTGluZUJveAogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogCiAgICAgICAgICAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4
dEJveD4ocnVuLmxheW91dEJveCgpKTsKLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRlbnQgPSBy
dW4udGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0gcnVuLnRl
eHRDb250ZW50KCk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRM
aW5lKCkgPyB0ZXh0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiB0ZXh0Qm94LnN0eWxlKCk7Ci0gICAg
ICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudERlc2NlbnRGb3JSdW4gPSBUZXh0VXRpbDo6ZW5j
bG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1
YnN0cmluZyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpLCBzdHlsZSwg
dGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGls
OjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpT
aG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1
dG8gZW5jbG9zaW5nQXNjZW50RGVzY2VudEZvclJ1biA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlw
aEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyh0ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRl
eHRDb250ZW50LnN0YXJ0LCB0ZXh0Q29udGVudC5sZW5ndGgpLCBzdHlsZSwgdGV4dEJveC5zaG91
bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1w
bGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKIAogICAgICAgICAgICAgYXV0byYgcGFyZW50
SW5saW5lQm94ID0gbGluZUJveC5wYXJlbnRJbmxpbmVCb3gocnVuKTsKICAgICAgICAgICAgIGF1
dG8gZW5jbG9zaW5nQXNjZW50RGVzY2VudEZvcklubGluZUJveCA9IGlubGluZUJveEJvdW5kc01h
cC5nZXQoJnBhcmVudElubGluZUJveCk7CkBAIC02MzcsOSArNjM3LDkgQEAgdm9pZCBMaW5lQm94
QnVpbGRlcjo6YWRqdXN0SW5saW5lQm94SGVpZ2h0c0ZvckxpbmVCb3hDb250YWluSWZBcHBsaWNh
YmxlKExpbmVCb3gKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgYXV0
byYgdGV4dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KHJ1bi5sYXlvdXRCb3goKSk7Ci0g
ICAgICAgICAgICBhdXRvIHRleHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7CisgICAgICAg
ICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAgICAg
YXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gdGV4dEJveC5maXJzdExpbmVT
dHlsZSgpIDogdGV4dEJveC5zdHlsZSgpOwotICAgICAgICAgICAgYXV0byBhc2NlbnRBbmREZXNj
ZW50ID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KHRl
eHRCb3guY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQtPnN0YXJ0LCB0ZXh0Q29udGVu
dC0+bGVuZ3RoKSwgc3R5bGUsIHRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0Nv
ZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRo
OjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpO
byk7CisgICAgICAgICAgICBhdXRvIGFzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9z
aW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0
cmluZyh0ZXh0Q29udGVudC5zdGFydCwgdGV4dENvbnRlbnQubGVuZ3RoKSwgc3R5bGUsIHRleHRC
b3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hv
dWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxk
VXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7CiAKICAgICAgICAgICAgIGluaXRp
YWxMZXR0ZXJEZXNjZW50ID0gYXNjZW50QW5kRGVzY2VudC5kZXNjZW50OwogICAgICAgICAgICAg
aWYgKGxpbmVCb3guYmFzZWxpbmVUeXBlKCkgIT0gRm9udEJhc2VsaW5lOjpBbHBoYWJldGljKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDUwNTYwYTU4NmJk
Yy4uN2NmZjhkM2JmNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIu
Y3BwCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nQnVpbGRlciB0b1N0cmlu
Zyhjb25zdCBMaW5lOjpSdW5MaXN0JiBydW5zKQogICAgICAgICBpZiAoIXJ1bi5pc1RleHQoKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50
ZXh0Q29udGVudCgpOwotICAgICAgICBsaW5lQ29udGVudEJ1aWxkZXIuYXBwZW5kKFN0cmluZ1Zp
ZXcoZG93bmNhc3Q8SW5saW5lVGV4dEJveD4ocnVuLmxheW91dEJveCgpKS5jb250ZW50KCkpLnN1
YnN0cmluZyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpKTsKKyAgICAg
ICAgbGluZUNvbnRlbnRCdWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KGRvd25jYXN0PElubGluZVRl
eHRCb3g+KHJ1bi5sYXlvdXRCb3goKSkuY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQu
c3RhcnQsIHRleHRDb250ZW50Lmxlbmd0aCkpOwogICAgIH0KICAgICByZXR1cm4gbGluZUNvbnRl
bnRCdWlsZGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDkxNmVlMmViZGNlZS4uZmIx
M2MzOTQyMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGNvbXB1dGVJbmtPdmVyZmxvd0ZvcklubGluZUJveChjb25zdCBJbmxp
bmVMZXZlbEJveCYgaW5saW5lQm8KIAogdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6
OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwgY29uc3QgSW5s
aW5lUmVjdCYgdGV4dFJ1blJlY3QsIElubGluZURpc3BsYXk6OkJveGVzJiBib3hlcykKIHsKLSAg
ICBBU1NFUlQobGluZVJ1bi50ZXh0Q29udGVudCgpICYmIGlzPElubGluZVRleHRCb3g+KGxpbmVS
dW4ubGF5b3V0Qm94KCkpKTsKKyAgICBBU1NFUlQobGluZVJ1bi5pc1RleHQoKSAmJiBpczxJbmxp
bmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CiAKICAgICBhdXRvJiBpbmxpbmVUZXh0
Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRCb3goKSk7CiAgICAg
YXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gaW5saW5lVGV4dEJveC5maXJz
dExpbmVTdHlsZSgpIDogaW5saW5lVGV4dEJveC5zdHlsZSgpOwpAQCAtMjAyLDcgKzIwMiw3IEBA
IHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChj
b25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgICAgICAgICAgICAgLy8gY2FuVXNlU2ltcGxl
Rm9udENvZGVQYXRoIG1hcHMgdG8gQ29kZVBhdGg6OlNpbXBsZSAoYW5kIGNvbnRlbnQgd2l0aCBw
b3RlbnRpYWwgZ2x5cGggb3ZlcmZsb3cgd291bGQgc2F5cyBDb2RlUGF0aDo6U2ltcGxlV2l0aEds
eXBoT3ZlcmZsb3cpLgogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjplbmNs
b3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4
dC0+c3RhcnQsIHRleHQtPmxlbmd0aCksIHN0eWxlLCBpbmxpbmVUZXh0Qm94LnNob3VsZFVzZVNp
bXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUds
eXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBo
T3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOworICAgICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnRB
bmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdW
aWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLCBp
bmxpbmVUZXh0Qm94LnNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4
dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0
aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOwogICAgICAgICAg
ICAgLy8gRklYTUU6IFRha2UgZmFsbGJhY2sgZm9udHMgaW50byBhY2NvdW50LgogICAgICAgICAg
ICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwogICAg
ICAgICAgICAgYXV0byB0b3BPdmVyZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5saW5lRm9ybWF0dGlu
Z1V0aWxzOjpzbmFwVG9JbnQoLWVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQuYXNjZW50LCBpbmxp
bmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRpbmdVdGlsczo6YXNjZW50KGZvbnRNZXRyaWNzLCBG
b250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlubGluZVRleHRCb3gpKTsKQEAgLTIyNyw3ICsyMjcs
NyBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlC
b3goY29uc3QgTGluZTo6UnVuJiBsaW5lUnVuLAogICAgICAgICAgICAgLCBpbmtPdmVyZmxvdwog
ICAgICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAgICAgICAgICAgICAsIGxpbmVS
dW4uZXhwYW5zaW9uKCkKLSAgICAgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsg
dGV4dC0+c3RhcnQsIDEsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCBjb250ZW50
IH0KKyAgICAgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC5zdGFydCwg
MSwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJTdHJpbmcsIGNvbnRlbnQgfQogICAgICAgICAg
ICAgLCBpc0NvbnRlbnRmdWwKICAgICAgICAgICAgICwgaXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJs
b2NrRGlyZWN0aW9uKCkKICAgICAgICAgfSk7CkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6
OlJ1biYgbGluZVJ1biwKICAgICB9CiAKICAgICBhdXRvIGFkanVzdGVkQ29udGVudFRvUmVuZGVy
ID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIHRleHQtPm5lZWRzSHlwaGVuID8gbWFrZVN0cmluZyhT
dHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoKSwg
c3R5bGUuaHlwaGVuU3RyaW5nKCkpIDogU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB0ZXh0Lm5l
ZWRzSHlwaGVuID8gbWFrZVN0cmluZyhTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0
LnN0YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLmh5cGhlblN0cmluZygpKSA6IFN0cmluZygpOwog
ICAgIH07CiAgICAgYXV0byBzaGFwaW5nQm91bmRhcnkgPSBbJl0gewogICAgICAgICBpZiAobGlu
ZVJ1bi5pc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkpCkBAIC0yNTQsNyArMjU0LDcgQEAgdm9pZCBJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExp
bmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgLCBpbmtPdmVyZmxvdwogICAgICAgICAsIGlzRmly
c3RGb3JtYXR0ZWRMaW5lKCkKICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAg
ICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCwg
Y29udGVudCwgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIoKSwgdGV4dC0+bmVlZHNIeXBoZW4sIHNo
YXBpbmdCb3VuZGFyeSgpIH0KKyAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0
ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCwgY29udGVudCwgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIo
KSwgdGV4dC5uZWVkc0h5cGhlbiwgc2hhcGluZ0JvdW5kYXJ5KCkgfQogICAgICAgICAsIGlzQ29u
dGVudGZ1bAogICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlvbigp
CiAgICAgfSk7CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKIAog
dm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFNvZnRMaW5lQnJlYWtEaXNw
bGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwgY29uc3QgSW5saW5lUmVjdCYgc29mdExp
bmVCcmVha1J1blJlY3QsIElubGluZURpc3BsYXk6OkJveGVzJiBib3hlcykKIHsKLSAgICBBU1NF
UlQobGluZVJ1bi50ZXh0Q29udGVudCgpICYmIGlzPElubGluZVRleHRCb3g+KGxpbmVSdW4ubGF5
b3V0Qm94KCkpKTsKKyAgICBBU1NFUlQobGluZVJ1bi50ZXh0Q29udGVudCgpLmxlbmd0aCAmJiBp
czxJbmxpbmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CiAKICAgICBhdXRvJiBsYXlv
dXRCb3ggPSBsaW5lUnVuLmxheW91dEJveCgpOwogICAgIGF1dG8mIHRleHQgPSBsaW5lUnVuLnRl
eHRDb250ZW50KCk7CkBAIC0yNzYsNyArMjc2LDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmFwcGVuZFNvZnRMaW5lQnJlYWtEaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYK
ICAgICAgICAgLCBzb2Z0TGluZUJyZWFrUnVuUmVjdAogICAgICAgICAsIGlzRmlyc3RGb3JtYXR0
ZWRMaW5lKCkKICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAgICwgSW5saW5l
RGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCwgZG93bmNhc3Q8
SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KS5jb250ZW50KCkgfQorICAgICAgICAsIElubGluZURp
c3BsYXk6OkJveDo6VGV4dCB7IHRleHQuc3RhcnQsIHRleHQubGVuZ3RoLCBkb3duY2FzdDxJbmxp
bmVUZXh0Qm94PihsYXlvdXRCb3gpLmNvbnRlbnQoKSB9CiAgICAgICAgICwgaXNDb250ZW50ZnVs
CiAgICAgICAgICwgaXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJsb2NrRGlyZWN0aW9uKCkKICAgICB9
KTsK
</data>
<flag name="review"
          id="500045"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>