<?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>187913</bug_id>
          
          <creation_ts>2018-07-23 11:26:57 -0700</creation_ts>
          <short_desc>[LCF][IFC] Add support for hyphenation.</short_desc>
          <delta_ts>2018-07-23 13:31:19 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1444331</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-07-23 11:26:57 -0700</bug_when>
    <thetext>Move simple line layout hyphenation code over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444334</commentid>
    <comment_count>1</comment_count>
      <attachid>345587</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-07-23 11:28:36 -0700</bug_when>
    <thetext>Created attachment 345587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444391</commentid>
    <comment_count>2</comment_count>
      <attachid>345587</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-23 13:30:42 -0700</bug_when>
    <thetext>Comment on attachment 345587
Patch

Clearing flags on attachment: 345587

Committed r234110: &lt;https://trac.webkit.org/changeset/234110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444392</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-23 13:30:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444393</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-23 13:31:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/42512636&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345587</attachid>
            <date>2018-07-23 11:28:36 -0700</date>
            <delta_ts>2018-07-23 13:30:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187913-20180723112835.patch</filename>
            <type>text/plain</type>
            <size>25675</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNjNDIzYTI4MDFhMWZl
NzkzYWFhY2ZhNjRhYzk3ZTYwOWQ5ZWJhYS4uNjA1NjVlMTBlNWFhZGNhZGQ5ZTE1ODViYjcyZDc1
NTBhY2ViZDgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTA3LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xDRl1bSUZDXSBBZGQgc3Vw
cG9ydCBmb3IgaHlwaGVuYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODc5MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlIHRoZSBoeXBoZW5hdGlvbiBsb2dpYyBvdmVyIGZyb20gU2ltcGxl
TGluZUxheW91dDo6VGV4dEZyYWdtZW50SXRlcmF0b3IuCisKKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy90ZXh0bGF5b3V0L1J1bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VGV4dFJ1bjo6aGFzSHlwaGVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGF5b3V0UnVuOjpzZXRIYXNIeXBoZW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlv
dXRSdW46Omhhc0h5cGhlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91
dFJ1bjo6TGF5b3V0UnVuKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGV4dFJ1bjo6Y3Jl
YXRlTm9uV2hpdGVzcGFjZVJ1bldpdGhIeXBoZW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpUZXh0UnVuOjpUZXh0UnVuKToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90
ZXh0bGF5b3V0L1RleHRDb250ZW50UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpUZXh0Q29udGVudFByb3ZpZGVyOjpmaW5kVGV4dEl0ZW1TbG93IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6VGV4dENvbnRlbnRQcm92aWRlcjo6d2lkdGggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0Q29udGVudFByb3ZpZGVyOjpoeXBoZW5Qb3Np
dGlvbkJlZm9yZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4
dGxheW91dC9UZXh0Q29udGVudFByb3ZpZGVyLmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvdGV4dGxheW91dC9zaW1wbGUvU2ltcGxlTGluZUJyZWFrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpTaW1wbGVMaW5lQnJlYWtlcjo6TGluZTo6c2V0VGV4dEFsaWdu
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6U2ltcGxlTGluZUJyZWFrZXI6OkxpbmU6Omp1
c3RpZnlSdW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6U2ltcGxlTGluZUJyZWFrZXI6
OkxpbmU6OmFkanVzdFJ1bnNGb3JUZXh0QWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpTaW1wbGVMaW5lQnJlYWtlcjo6TGluZTo6Y29sbGVjdEV4cGFuc2lvbk9wcG9ydHVuaXRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpTaW1wbGVMaW5lQnJlYWtlcjo6TGluZTo6Y2xv
c2VMYXN0UnVuKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6U2ltcGxlTGluZUJyZWFrZXI6
OkxpbmU6OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlNpbXBsZUxpbmVCcmVh
a2VyOjpMaW5lOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlNpbXBsZUxpbmVC
cmVha2VyOjpTdHlsZTo6U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpTaW1wbGVM
aW5lQnJlYWtlcjo6aGFuZGxlTGluZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlNp
bXBsZUxpbmVCcmVha2VyOjpjcmVhdGVSdW5zRm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlNpbXBsZUxpbmVCcmVha2VyOjpoeXBoZW5Qb3NpdGlvbkJlZm9yZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlNpbXBsZUxpbmVCcmVha2VyOjphZGp1c3RTcGxpdFBv
c2l0aW9uV2l0aEh5cGhlbmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
U2ltcGxlTGluZUJyZWFrZXI6OnNwbGl0IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy90ZXh0bGF5b3V0L3NpbXBsZS9TaW1wbGVMaW5lQnJlYWtlci5oOgorCiAyMDE4
LTA3LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11b
SUZDXSBBZGQgY2VudGVyL3JpZ2h0L2p1c3RpZnkgbGluZSBhbGlnbm1lbnQgc3VwcG9ydC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHRsYXlv
dXQvUnVucy5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dGxh
eW91dC9SdW5zLmgKaW5kZXggNGVhNzQzMzA0MDAxZDRkMGE3MTQ5MDU1YmI3MzRiZGY4OTE4Nzdk
MC4uOWE0YzFmMjQyYmExNTQ3ZDE1YTQyY2E5OWQ3MmZmMTM1MDlmOGVjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9SdW5zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9S
dW5zLmgKQEAgLTQ2LDExICs0NiwxMiBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBzdGF0aWMgVGV4
dFJ1biBjcmVhdGVXaGl0ZXNwYWNlUnVuKENvbnRlbnRQb3NpdGlvbiBzdGFydCwgQ29udGVudFBv
c2l0aW9uIGVuZCwgZmxvYXQgd2lkdGgsIGJvb2wgaXNDb2xsYXBzZWQpOwogICAgIHN0YXRpYyBU
ZXh0UnVuIGNyZWF0ZU5vbldoaXRlc3BhY2VSdW4oQ29udGVudFBvc2l0aW9uIHN0YXJ0LCBDb250
ZW50UG9zaXRpb24gZW5kLCBmbG9hdCB3aWR0aCk7CisgICAgc3RhdGljIFRleHRSdW4gY3JlYXRl
Tm9uV2hpdGVzcGFjZVJ1bldpdGhIeXBoZW4oQ29udGVudFBvc2l0aW9uIHN0YXJ0LCBDb250ZW50
UG9zaXRpb24gZW5kLCBmbG9hdCB3aWR0aCk7CiAgICAgc3RhdGljIFRleHRSdW4gY3JlYXRlU29m
dExpbmVCcmVha1J1bihDb250ZW50UG9zaXRpb24pOwogICAgIHN0YXRpYyBUZXh0UnVuIGNyZWF0
ZUhhcmRMaW5lQnJlYWtSdW4oQ29udGVudFBvc2l0aW9uKTsKIAogICAgIFRleHRSdW4oKSA9IGRl
ZmF1bHQ7Ci0gICAgVGV4dFJ1bihDb250ZW50UG9zaXRpb24gc3RhcnQsIENvbnRlbnRQb3NpdGlv
biBlbmQsIFR5cGUsIGZsb2F0IHdpZHRoID0gMCwgYm9vbCBpc0NvbGxhcHNlZCA9IGZhbHNlKTsK
KyAgICBUZXh0UnVuKENvbnRlbnRQb3NpdGlvbiBzdGFydCwgQ29udGVudFBvc2l0aW9uIGVuZCwg
VHlwZSwgZmxvYXQgd2lkdGggPSAwLCBib29sIGlzQ29sbGFwc2VkID0gZmFsc2UsIGJvb2wgaGFz
SHlwaGVuID0gZmFsc2UpOwogCiAgICAgQ29udGVudFBvc2l0aW9uIHN0YXJ0KCkgY29uc3Q7CiAg
ICAgQ29udGVudFBvc2l0aW9uIGVuZCgpIGNvbnN0OwpAQCAtNjgsNiArNjksNyBAQCBwdWJsaWM6
CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKICAgICB2b2lkIHNl
dElzQ29sbGFwc2VkKGJvb2wgaXNDb2xsYXBzZWQpIHsgbV9pc0NvbGxhcHNlZCA9IGlzQ29sbGFw
c2VkOyB9CisgICAgYm9vbCBoYXNIeXBoZW4oKSBjb25zdCB7IHJldHVybiBtX2hhc0h5cGhlbjsg
fQogICAgIHZvaWQgc2V0V2lkdGgoZmxvYXQgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9CiAK
IHByaXZhdGU6CkBAIC03NiwxMSArNzgsMTIgQEAgcHJpdmF0ZToKICAgICBUeXBlIG1fdHlwZSB7
IFR5cGU6OkludmFsaWQgfTsKICAgICBmbG9hdCBtX3dpZHRoIHsgMCB9OwogICAgIGJvb2wgbV9p
c0NvbGxhcHNlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc0h5cGhlbiB7IGZhbHNlIH07CiB9
OwogCiBzdHJ1Y3QgTGF5b3V0UnVuIHsKIHB1YmxpYzoKLSAgICBMYXlvdXRSdW4oQ29udGVudFBv
c2l0aW9uIHN0YXJ0LCBDb250ZW50UG9zaXRpb24gZW5kLCBmbG9hdCBsZWZ0LCBmbG9hdCByaWdo
dCk7CisgICAgTGF5b3V0UnVuKENvbnRlbnRQb3NpdGlvbiBzdGFydCwgQ29udGVudFBvc2l0aW9u
IGVuZCwgZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGJvb2wgaGFzSHlwaGVuKTsKIAogICAgIENv
bnRlbnRQb3NpdGlvbiBzdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQ7IH0KICAgICBDb250
ZW50UG9zaXRpb24gZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7IH0KQEAgLTk4LDYgKzEwMSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzRW5kT2ZMaW5lKCkgeyBtX2lzRW5kT2ZMaW5lID0g
dHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRFeHBhbnNpb24oRXhwYW5zaW9uQmVoYXZpb3IsIGZsb2F0
IGV4cGFuc2lvbik7CisgICAgdm9pZCBzZXRIYXNIeXBoZW4oKSB7IG1faGFzSHlwaGVuID0gdHJ1
ZTsgfQorICAgIGJvb2wgaGFzSHlwaGVuKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIeXBoZW47IH0K
IAogcHJpdmF0ZToKICAgICBDb250ZW50UG9zaXRpb24gbV9zdGFydCB7IDAgfTsKQEAgLTEwNSw2
ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbGVmdCB7IDAgfTsKICAgICBmbG9hdCBt
X3JpZ2h0IHsgMCB9OwogICAgIGJvb2wgbV9pc0VuZE9mTGluZSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2hhc0h5cGhlbiB7IGZhbHNlIH07CiAgICAgZmxvYXQgbV9leHBhbnNpb24geyAwIH07CiAg
ICAgRXhwYW5zaW9uQmVoYXZpb3IgbV9leHBhbnNpb25CZWhhdmlvciB7IEZvcmJpZExlYWRpbmdF
eHBhbnNpb24gfCBGb3JiaWRUcmFpbGluZ0V4cGFuc2lvbiB9OwogfTsKQEAgLTE0NCwxMSArMTUw
LDEyIEBAIGlubGluZSBDb25zdFZlY3Rvckl0ZXJhdG9yPFQ+JiBDb25zdFZlY3Rvckl0ZXJhdG9y
PFQ+OjpvcGVyYXRvcisrKCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLWlubGluZSBMYXlvdXRS
dW46OkxheW91dFJ1bihDb250ZW50UG9zaXRpb24gc3RhcnQsIENvbnRlbnRQb3NpdGlvbiBlbmQs
IGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0KQoraW5saW5lIExheW91dFJ1bjo6TGF5b3V0UnVuKENv
bnRlbnRQb3NpdGlvbiBzdGFydCwgQ29udGVudFBvc2l0aW9uIGVuZCwgZmxvYXQgbGVmdCwgZmxv
YXQgcmlnaHQsIGJvb2wgaGFzSHlwaGVuKQogICAgIDogbV9zdGFydChzdGFydCkKICAgICAsIG1f
ZW5kKGVuZCkKICAgICAsIG1fbGVmdChsZWZ0KQogICAgICwgbV9yaWdodChyaWdodCkKKyAgICAs
IG1faGFzSHlwaGVuKGhhc0h5cGhlbikKIHsKIH0KIApAQCAtMTY4LDYgKzE3NSwxMSBAQCBpbmxp
bmUgVGV4dFJ1biBUZXh0UnVuOjpjcmVhdGVOb25XaGl0ZXNwYWNlUnVuKENvbnRlbnRQb3NpdGlv
biBzdGFydCwgQ29udGVudFBvcwogICAgIHJldHVybiB7IHN0YXJ0LCBlbmQsIFR5cGU6Ok5vbldo
aXRlc3BhY2UsIHdpZHRoIH07CiB9CiAKK2lubGluZSBUZXh0UnVuIFRleHRSdW46OmNyZWF0ZU5v
bldoaXRlc3BhY2VSdW5XaXRoSHlwaGVuKENvbnRlbnRQb3NpdGlvbiBzdGFydCwgQ29udGVudFBv
c2l0aW9uIGVuZCwgZmxvYXQgd2lkdGgpCit7CisgICAgcmV0dXJuIHsgc3RhcnQsIGVuZCwgVHlw
ZTo6Tm9uV2hpdGVzcGFjZSwgd2lkdGgsIGZhbHNlLCB0cnVlIH07Cit9CisKIGlubGluZSBUZXh0
UnVuIFRleHRSdW46OmNyZWF0ZVNvZnRMaW5lQnJlYWtSdW4oQ29udGVudFBvc2l0aW9uIHBvc2l0
aW9uKQogewogICAgIHJldHVybiB7IHBvc2l0aW9uLCBwb3NpdGlvbiArIDEsIFR5cGU6OlNvZnRM
aW5lQnJlYWsgfTsKQEAgLTE3OCwxMiArMTkwLDEzIEBAIGlubGluZSBUZXh0UnVuIFRleHRSdW46
OmNyZWF0ZUhhcmRMaW5lQnJlYWtSdW4oQ29udGVudFBvc2l0aW9uIHBvc2l0aW9uKQogICAgIHJl
dHVybiB7IHBvc2l0aW9uLCBwb3NpdGlvbiwgVHlwZTo6SGFyZExpbmVCcmVhayB9OwogfQogCi1p
bmxpbmUgVGV4dFJ1bjo6VGV4dFJ1bihDb250ZW50UG9zaXRpb24gc3RhcnQsIENvbnRlbnRQb3Np
dGlvbiBlbmQsIFR5cGUgdHlwZSwgZmxvYXQgd2lkdGgsIGJvb2wgaXNDb2xsYXBzZWQpCitpbmxp
bmUgVGV4dFJ1bjo6VGV4dFJ1bihDb250ZW50UG9zaXRpb24gc3RhcnQsIENvbnRlbnRQb3NpdGlv
biBlbmQsIFR5cGUgdHlwZSwgZmxvYXQgd2lkdGgsIGJvb2wgaXNDb2xsYXBzZWQsIGJvb2wgaGFz
SHlwaGVuKQogICAgIDogbV9zdGFydChzdGFydCkKICAgICAsIG1fZW5kKGVuZCkKICAgICAsIG1f
dHlwZSh0eXBlKQogICAgICwgbV93aWR0aCh3aWR0aCkKICAgICAsIG1faXNDb2xsYXBzZWQoaXND
b2xsYXBzZWQpCisgICAgLCBtX2hhc0h5cGhlbihoYXNIeXBoZW4pCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHRsYXlvdXQvVGV4
dENvbnRlbnRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy90ZXh0bGF5b3V0L1RleHRDb250ZW50UHJvdmlkZXIuY3BwCmluZGV4IGUyMmJiYmNkZWVh
NzI5MDU5NTVlNzkyOWIzMGRkN2M1YTE3N2M0OWMuLmI3YjBlN2Y4ZDkzNDdmMmE5ZGM5ZDFmZjlk
NTA0NzI2ZjM4NWY0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL3RleHRsYXlvdXQvVGV4dENvbnRlbnRQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9UZXh0Q29udGVudFBy
b3ZpZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElO
R19DT05URVhUKQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJIeXBoZW5h
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2ltcGxlVGV4dFJ1
bkdlbmVyYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC03OSwy
NiArODAsMjcgQEAgc3RhdGljIGJvb2wgY29udGFpbnMoQ29udGVudFBvc2l0aW9uIHBvc2l0aW9u
LCBjb25zdCBUZXh0Q29udGVudFByb3ZpZGVyOjpUZXh0SXQKICAgICByZXR1cm4gdGV4dEl0ZW0u
c3RhcnQgPD0gcG9zaXRpb24gJiYgcG9zaXRpb24gPCB0ZXh0SXRlbS5lbmQ7CiB9CiAKLWZsb2F0
IFRleHRDb250ZW50UHJvdmlkZXI6OndpZHRoKENvbnRlbnRQb3NpdGlvbiBmcm9tLCBDb250ZW50
UG9zaXRpb24gdG8sIGZsb2F0IHhQb3NpdGlvbikgY29uc3QKK2NvbnN0IFRleHRDb250ZW50UHJv
dmlkZXI6OlRleHRJdGVtKiBUZXh0Q29udGVudFByb3ZpZGVyOjpmaW5kVGV4dEl0ZW1TbG93KENv
bnRlbnRQb3NpdGlvbiBwb3NpdGlvbikgY29uc3QKIHsKLSAgICBhdXRvIHRleHRJdGVtUG9zaXRp
b25TbG93ID0gWyZdKCkgLT4gdW5zaWduZWQgewotICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIGFu
IGl0ZXJhdG9yIGxpa2UgY2xhc3MsIGNoZWNrIHRoZSBuZXh0IGl0ZW0gZmlyc3QgKGluc3RlYWQg
b2Ygc3RhcnRpbmcgdGhlIHNlYXJjaCBmcm9tIHRoZSBiZWdpbm5pbmcpLgotICAgICAgICBpZiAo
YXV0byogdGV4dEl0ZW0gPSAoKyttX3RleHRDb250ZW50SXRlcmF0b3IpLmN1cnJlbnQoKSkgewot
ICAgICAgICAgICAgaWYgKGNvbnRhaW5zKGZyb20sICp0ZXh0SXRlbSkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRleHRJdGVtLT5zdGFydDsKLSAgICAgICAgfQorICAgIC8vIFNpbmNlIHRoaXMg
aXMgYW4gaXRlcmF0b3IgbGlrZSBjbGFzcywgY2hlY2sgdGhlIG5leHQgaXRlbSBmaXJzdCAoaW5z
dGVhZCBvZiBzdGFydGluZyB0aGUgc2VhcmNoIGZyb20gdGhlIGJlZ2lubmluZykuCisgICAgaWYg
KGF1dG8qIHRleHRJdGVtID0gKCsrbV90ZXh0Q29udGVudEl0ZXJhdG9yKS5jdXJyZW50KCkpIHsK
KyAgICAgICAgaWYgKGNvbnRhaW5zKHBvc2l0aW9uLCAqdGV4dEl0ZW0pKQorICAgICAgICAgICAg
cmV0dXJuIHRleHRJdGVtOworICAgIH0KIAotICAgICAgICBtX3RleHRDb250ZW50SXRlcmF0b3Iu
cmVzZXQoKTsKLSAgICAgICAgd2hpbGUgKGF1dG8qIHRleHRJdGVtID0gbV90ZXh0Q29udGVudEl0
ZXJhdG9yLmN1cnJlbnQoKSkgewotICAgICAgICAgICAgaWYgKGNvbnRhaW5zKGZyb20sICp0ZXh0
SXRlbSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRleHRJdGVtLT5zdGFydDsKLSAgICAgICAg
ICAgICsrbV90ZXh0Q29udGVudEl0ZXJhdG9yOwotICAgICAgICB9CisgICAgbV90ZXh0Q29udGVu
dEl0ZXJhdG9yLnJlc2V0KCk7CisgICAgd2hpbGUgKGF1dG8qIHRleHRJdGVtID0gbV90ZXh0Q29u
dGVudEl0ZXJhdG9yLmN1cnJlbnQoKSkgeworICAgICAgICBpZiAoY29udGFpbnMocG9zaXRpb24s
ICp0ZXh0SXRlbSkpCisgICAgICAgICAgICByZXR1cm4gdGV4dEl0ZW07CisgICAgICAgICsrbV90
ZXh0Q29udGVudEl0ZXJhdG9yOworICAgIH0KIAotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KIAorZmxvYXQgVGV4dENvbnRlbnRQcm92aWRlcjo6d2lk
dGgoQ29udGVudFBvc2l0aW9uIGZyb20sIENvbnRlbnRQb3NpdGlvbiB0bywgZmxvYXQgeFBvc2l0
aW9uKSBjb25zdAorewogICAgIGlmIChmcm9tID49IHRvKSB7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTExMyw3ICsxMTUsNyBAQCBmbG9hdCBU
ZXh0Q29udGVudFByb3ZpZGVyOjp3aWR0aChDb250ZW50UG9zaXRpb24gZnJvbSwgQ29udGVudFBv
c2l0aW9uIHRvLCBmbG9hdAogICAgIGZsb2F0IHdpZHRoID0gMDsKICAgICBhdXRvIGxlbmd0aCA9
IHRvIC0gZnJvbTsKICAgICBhdXRvKiB0ZXh0SXRlbSA9IG1fdGV4dENvbnRlbnRJdGVyYXRvci5j
dXJyZW50KCk7Ci0gICAgYXV0byBzdGFydFBvc2l0aW9uID0gZnJvbSAtICh0ZXh0SXRlbSAmJiBj
b250YWlucyhmcm9tLCAqdGV4dEl0ZW0pID8gdGV4dEl0ZW0tPnN0YXJ0IDogdGV4dEl0ZW1Qb3Np
dGlvblNsb3coKSk7CisgICAgYXV0byBzdGFydFBvc2l0aW9uID0gZnJvbSAtICh0ZXh0SXRlbSAm
JiBjb250YWlucyhmcm9tLCAqdGV4dEl0ZW0pID8gdGV4dEl0ZW0tPnN0YXJ0IDogZmluZFRleHRJ
dGVtU2xvdyhmcm9tKS0+c3RhcnQpOwogCiAgICAgd2hpbGUgKGxlbmd0aCkgewogICAgICAgICB0
ZXh0SXRlbSA9IG1fdGV4dENvbnRlbnRJdGVyYXRvci5jdXJyZW50KCk7CkBAIC0xOTAsNiArMTky
LDMwIEBAIGZsb2F0IFRleHRDb250ZW50UHJvdmlkZXI6OmZpeGVkUGl0Y2hXaWR0aChTdHJpbmcg
dGV4dCwgY29uc3QgVGV4dEl0ZW06OlN0eWxlJiBzCiAgICAgcmV0dXJuIHdpZHRoOwogfQogCitz
dGQ6Om9wdGlvbmFsPENvbnRlbnRQb3NpdGlvbj4gVGV4dENvbnRlbnRQcm92aWRlcjo6aHlwaGVu
UG9zaXRpb25CZWZvcmUoQ29udGVudFBvc2l0aW9uIGZyb20sIENvbnRlbnRQb3NpdGlvbiB0bywg
Q29udGVudFBvc2l0aW9uIGJlZm9yZSkgY29uc3QKK3sKKyAgICBhdXRvIGNvbnRlbnRMZW5ndGgg
PSBsZW5ndGgoKTsKKyAgICBpZiAoYmVmb3JlID49IGNvbnRlbnRMZW5ndGggfHwgYmVmb3JlIDwg
ZnJvbSB8fCBiZWZvcmUgPiB0bykgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBhdXRvKiB0ZXh0SXRlbSA9IG1fdGV4dENv
bnRlbnRJdGVyYXRvci5jdXJyZW50KCk7CisgICAgaWYgKCF0ZXh0SXRlbSB8fCAhY29udGFpbnMo
YmVmb3JlLCAqdGV4dEl0ZW0pKQorICAgICAgICB0ZXh0SXRlbSA9IGZpbmRUZXh0SXRlbVNsb3co
YmVmb3JlKTsKKworICAgIGF1dG8gZnJvbUl0ZW1Qb3NpdGlvbiA9IGZyb20gLSB0ZXh0SXRlbS0+
c3RhcnQ7CisgICAgYXV0byBzdHJpbmdGb3JIeXBoZW5Mb2NhdGlvbiA9IFN0cmluZ1ZpZXcodGV4
dEl0ZW0tPnRleHQpLnN1YnN0cmluZyhmcm9tSXRlbVBvc2l0aW9uLCB0byAtIGZyb20pOworCisg
ICAgLy8gYWRqdXN0ZWRCZWZvcmUgLT4gQ29udGVudFBvc2l0aW9uIC0+IEl0ZW1Qb3NpdGlvbiAt
PiBydW4gcG9zaXRpb24uCisgICAgYXV0byBhZGp1c3RlZEJlZm9yZSA9IGJlZm9yZSAtIGZyb207
CisgICAgYXV0byBoeXBoZW5Mb2NhdGlvbiA9IGxhc3RIeXBoZW5Mb2NhdGlvbihzdHJpbmdGb3JI
eXBoZW5Mb2NhdGlvbiwgYWRqdXN0ZWRCZWZvcmUsIHRleHRJdGVtLT5zdHlsZS5sb2NhbGUpOwor
ICAgIGlmICghaHlwaGVuTG9jYXRpb24pCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1
cm4gZnJvbSArIGh5cGhlbkxvY2F0aW9uOworfQorCiB1bnNpZ25lZCBUZXh0Q29udGVudFByb3Zp
ZGVyOjpsZW5ndGgoKSBjb25zdAogewogICAgIGlmICghbV90ZXh0Q29udGVudC5zaXplKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0bGF5
b3V0L1RleHRDb250ZW50UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL3RleHRsYXlvdXQvVGV4dENvbnRlbnRQcm92aWRlci5oCmluZGV4IGE3MTU0M2Nm
YzdjZWU5MDk1ZjRlZmE0OTlkZTE2OGU2MjZmZmQ5MjMuLmExNmMzY2YyMTYzNGRjMjkzZDUzYzUy
OTQ2NTNkN2RmNzEyOWRmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL3RleHRsYXlvdXQvVGV4dENvbnRlbnRQcm92aWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHRsYXlvdXQvVGV4dENvbnRlbnRQ
cm92aWRlci5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0OwogICAgIGZsb2F0IHdpZHRoKENvbnRlbnRQb3NpdGlvbiBmcm9tLCBDb250ZW50
UG9zaXRpb24gdG8sIGZsb2F0IHhQb3NpdGlvbikgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxD
b250ZW50UG9zaXRpb24+IGh5cGhlblBvc2l0aW9uQmVmb3JlKENvbnRlbnRQb3NpdGlvbiBmcm9t
LCBDb250ZW50UG9zaXRpb24gdG8sIENvbnRlbnRQb3NpdGlvbiBiZWZvcmUpIGNvbnN0OwogCiAg
ICAgY2xhc3MgSXRlcmF0b3IgewogICAgIHB1YmxpYzoKQEAgLTk3LDYgKzk4LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgSXRlcmF0b3I7CiAKKyAgICBjb25zdCBUZXh0
SXRlbSogZmluZFRleHRJdGVtU2xvdyhDb250ZW50UG9zaXRpb24pIGNvbnN0OwogICAgIGZsb2F0
IHRleHRXaWR0aChjb25zdCBUZXh0SXRlbSYsIEl0ZW1Qb3NpdGlvbiBmcm9tLCBJdGVtUG9zaXRp
b24gdG8sIGZsb2F0IHhQb3NpdGlvbikgY29uc3Q7CiAgICAgZmxvYXQgZml4ZWRQaXRjaFdpZHRo
KFN0cmluZywgY29uc3QgVGV4dEl0ZW06OlN0eWxlJiwgSXRlbVBvc2l0aW9uIGZyb20sIEl0ZW1Q
b3NpdGlvbiB0bywgZmxvYXQgeFBvc2l0aW9uKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9zaW1wbGUvU2ltcGxl
TGluZUJyZWFrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
dGV4dGxheW91dC9zaW1wbGUvU2ltcGxlTGluZUJyZWFrZXIuY3BwCmluZGV4IDQ2NmU0YjBiOGNj
MjM1MWQzZTEyZWIyMDc0MmYwMjk1ZjZiYWRmYTQuLmEyYTc0ZTc3NDA2ZjMzZDc0MDk1OWY3NjFk
MWUwYTUxOTU5YjNhYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL3RleHRsYXlvdXQvc2ltcGxlL1NpbXBsZUxpbmVCcmVha2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0bGF5b3V0L3NpbXBsZS9T
aW1wbGVMaW5lQnJlYWtlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoTEFZT1VU
X0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVk
ZSAiSHlwaGVuYXRpb24uaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgpAQCAt
NjYsNyArNjcsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGFkanVzdGVkRW5kUG9zaXRpb24o
Y29uc3QgVGV4dFJ1biYgdGV4dFJ1bikKIHZvaWQgU2ltcGxlTGluZUJyZWFrZXI6OkxpbmU6OnNl
dFRleHRBbGlnbihUZXh0QWxpZ25Nb2RlIHRleHRBbGlnbikKIHsKICAgICBtX3N0eWxlLnRleHRB
bGlnbiA9IHRleHRBbGlnbjsKLSAgICBtX2NvbGxlY3RFeHBhbnNpb25PcHBvcnR1bml0aWVzID0g
dGV4dEFsaWduID09IFRleHRBbGlnbk1vZGU6Okp1c3RpZnk7IAorICAgIG1fY29sbGVjdEV4cGFu
c2lvbk9wcG9ydHVuaXRpZXMgPSB0ZXh0QWxpZ24gPT0gVGV4dEFsaWduTW9kZTo6SnVzdGlmeTsK
IH0KIAogZmxvYXQgU2ltcGxlTGluZUJyZWFrZXI6OkxpbmU6OmFkanVzdGVkTGVmdEZvclRleHRB
bGlnbihUZXh0QWxpZ25Nb2RlIHRleHRBbGlnbikgY29uc3QKQEAgLTExNSw3ICsxMTYsNyBAQCB2
b2lkIFNpbXBsZUxpbmVCcmVha2VyOjpMaW5lOjpqdXN0aWZ5UnVucygpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgYXV0byYgbGF5b3V0UnVuID0gbV9sYXlvdXRSdW5z
LmF0KHJ1bkluZGV4KyspOwotICAgICAgICBhdXRvIGV4cGFuc2lvbkZvclJ1biA9IGV4cGFuc2lv
bkVudHJ5LmNvdW50ICogZXhwYW5zaW9uOyAKKyAgICAgICAgYXV0byBleHBhbnNpb25Gb3JSdW4g
PSBleHBhbnNpb25FbnRyeS5jb3VudCAqIGV4cGFuc2lvbjsKIAogICAgICAgICBsYXlvdXRSdW4u
c2V0RXhwYW5zaW9uKGV4cGFuc2lvbkVudHJ5LmJlaGF2aW9yLCBleHBhbnNpb25Gb3JSdW4pOwog
ICAgICAgICBsYXlvdXRSdW4uc2V0TGVmdChsYXlvdXRSdW4ubGVmdCgpICsgYWNjdW11bGF0ZWRF
eHBhbnNpb24pOwpAQCAtMTM1LDYgKzEzNiw3IEBAIHZvaWQgU2ltcGxlTGluZUJyZWFrZXI6Okxp
bmU6OmFkanVzdFJ1bnNGb3JUZXh0QWxpZ24oYm9vbCBsYXN0TGluZSkKICAgICAgICAganVzdGlm
eVJ1bnMoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGF1dG8gYWRqdXN0ZWRMZWZ0
ID0gYWRqdXN0ZWRMZWZ0Rm9yVGV4dEFsaWduKHRleHRBbGlnbik7CiAgICAgaWYgKGFkanVzdGVk
TGVmdCA9PSBtX2xlZnQpCiAgICAgICAgIHJldHVybjsKQEAgLTE2NCw3ICsxNjYsNyBAQCB2b2lk
IFNpbXBsZUxpbmVCcmVha2VyOjpMaW5lOjpjb2xsZWN0RXhwYW5zaW9uT3Bwb3J0dW5pdGllcyhj
b25zdCBUZXh0UnVuJiB0ZXh0UgogICAgICAgICAvLyBDcmVhdGUgYW4gZW50cnkgZm9yIHRoaXMg
bmV3IGxheW91dCBydW4uCiAgICAgICAgIG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlMaXN0LmFwcGVu
ZCh7IH0pOwogICAgIH0KLSAgICAKKwogICAgIGlmICghdGV4dFJ1bi5sZW5ndGgoKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNzQsNyArMTc2LDcgQEAgdm9pZCBTaW1wbGVMaW5lQnJlYWtlcjo6
TGluZTo6Y29sbGVjdEV4cGFuc2lvbk9wcG9ydHVuaXRpZXMoY29uc3QgVGV4dFJ1biYgdGV4dFIK
ICAgICAgICAgKyttX2V4cGFuc2lvbk9wcG9ydHVuaXR5TGlzdC5sYXN0KCkuY291bnQ7CiAKICAg
ICBpZiAodGV4dFJ1bi5pc05vbldoaXRlc3BhY2UoKSkKLSAgICAgICAgbV9sYXN0Tm9uV2hpdGVz
cGFjZUV4cGFuc2lvbk9wcHBvcnR1bml0eSA9IG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlMaXN0Lmxh
c3QoKTsgCisgICAgICAgIG1fbGFzdE5vbldoaXRlc3BhY2VFeHBhbnNpb25PcHBwb3J0dW5pdHkg
PSBtX2V4cGFuc2lvbk9wcG9ydHVuaXR5TGlzdC5sYXN0KCk7CiB9CiAKIHZvaWQgU2ltcGxlTGlu
ZUJyZWFrZXI6OkxpbmU6OmNsb3NlTGFzdFJ1bigpCkBAIC0xODMsMTIgKzE4NSwxMiBAQCB2b2lk
IFNpbXBsZUxpbmVCcmVha2VyOjpMaW5lOjpjbG9zZUxhc3RSdW4oKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2xheW91dFJ1bnMubGFzdCgpLnNldElzRW5kT2ZMaW5lKCk7Ci0gICAgCisKICAg
ICAvLyBGb3JiaWQgdHJhaWxpbmcgZXhwYW5zaW9uIGZvciB0aGUgbGFzdCBydW4gb24gbGluZS4K
ICAgICBpZiAoIW1fY29sbGVjdEV4cGFuc2lvbk9wcG9ydHVuaXRpZXMgfHwgbV9leHBhbnNpb25P
cHBvcnR1bml0eUxpc3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgYXV0
byYgbGFzdEV4cGFuc2lvbkVudHJ5ID0gbV9leHBhbnNpb25PcHBvcnR1bml0eUxpc3QubGFzdCgp
OyAKKworICAgIGF1dG8mIGxhc3RFeHBhbnNpb25FbnRyeSA9IG1fZXhwYW5zaW9uT3Bwb3J0dW5p
dHlMaXN0Lmxhc3QoKTsKICAgICBhdXRvIGV4cGFuc2lvbkJlaGF2aW9yID0gbGFzdEV4cGFuc2lv
bkVudHJ5LmJlaGF2aW9yOwogICAgIC8vIFJlbW92ZSBhbGxvdyBhbmQgYWRkIGZvcmJpZC4KICAg
ICBleHBhbnNpb25CZWhhdmlvciBePSBBbGxvd1RyYWlsaW5nRXhwYW5zaW9uOwpAQCAtMjE1LDEx
ICsyMTcsMTMgQEAgdm9pZCBTaW1wbGVMaW5lQnJlYWtlcjo6TGluZTo6YXBwZW5kKGNvbnN0IFRl
eHRSdW4mIHRleHRSdW4pCiAKICAgICAvLyBOZXcgbGluZSBuZWVkcyBuZXcgcnVuLgogICAgIGlm
ICh0ZXh0UnVuQ3JlYXRlc05ld0xheW91dFJ1bikKLSAgICAgICAgbV9sYXlvdXRSdW5zLmFwcGVu
ZCh7IHN0YXJ0LCBlbmQsIHByZXZpb3VzTG9naWNhbFJpZ2h0LCBwcmV2aW91c0xvZ2ljYWxSaWdo
dCArIHRleHRSdW4ud2lkdGgoKSB9KTsKKyAgICAgICAgbV9sYXlvdXRSdW5zLmFwcGVuZCh7IHN0
YXJ0LCBlbmQsIHByZXZpb3VzTG9naWNhbFJpZ2h0LCBwcmV2aW91c0xvZ2ljYWxSaWdodCArIHRl
eHRSdW4ud2lkdGgoKSwgdGV4dFJ1bi5oYXNIeXBoZW4oKSB9KTsKICAgICBlbHNlIHsKICAgICAg
ICAgYXV0byYgbGFzdFJ1biA9IG1fbGF5b3V0UnVucy5sYXN0KCk7CiAgICAgICAgIGxhc3RSdW4u
c2V0RW5kKGVuZCk7CiAgICAgICAgIGxhc3RSdW4uc2V0UmlnaHQobGFzdFJ1bi5yaWdodCgpICsg
dGV4dFJ1bi53aWR0aCgpKTsKKyAgICAgICAgaWYgKHRleHRSdW4uaGFzSHlwaGVuKCkpCisgICAg
ICAgICAgICBsYXN0UnVuLnNldEhhc0h5cGhlbigpOwogICAgIH0KIAogICAgIG1fbGFzdFRleHRS
dW4gPSB0ZXh0UnVuOwpAQCAtMjY3LDcgKzI3MSw3IEBAIHZvaWQgU2ltcGxlTGluZUJyZWFrZXI6
OkxpbmU6OmNvbGxhcHNlVHJhaWxpbmdXaGl0ZXNwYWNlKCkKIHZvaWQgU2ltcGxlTGluZUJyZWFr
ZXI6OkxpbmU6OnJlc2V0KCkKIHsKICAgICBtX3J1bnNXaWR0aCA9IDA7Ci0gICAgbV9maXJzdFJ1
bkluZGV4ID0gbV9sYXlvdXRSdW5zLnNpemUoKTsgCisgICAgbV9maXJzdFJ1bkluZGV4ID0gbV9s
YXlvdXRSdW5zLnNpemUoKTsKICAgICBtX2F2YWlsYWJsZVdpZHRoID0gMDsKICAgICBtX3RyYWls
aW5nV2hpdGVzcGFjZVdpZHRoICA9IDA7CiAgICAgbV9leHBhbnNpb25PcHBvcnR1bml0eUxpc3Qu
Y2xlYXIoKTsKQEAgLTI3OCwxNCArMjgyLDIyIEBAIHZvaWQgU2ltcGxlTGluZUJyZWFrZXI6Okxp
bmU6OnJlc2V0KCkKIAogLy8gRklYTUU6IFVzZSB2YXJpYWJsZSBzdHlsZSBiYXNlZCBvbiB0aGUg
Y3VycmVudCB0ZXh0IHJ1bi4KIFNpbXBsZUxpbmVCcmVha2VyOjpTdHlsZTo6U3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKQotICAgIDogd3JhcExpbmVzKHN0eWxlLmF1dG9XcmFwKCkpCisg
ICAgOiBmb250KHN0eWxlLmZvbnRDYXNjYWRlKCkpCisgICAgLCB3cmFwTGluZXMoc3R5bGUuYXV0
b1dyYXAoKSkKICAgICAsIGJyZWFrQW55V29yZE9uT3ZlcmZsb3coc3R5bGUud29yZEJyZWFrKCkg
PT0gV29yZEJyZWFrOjpCcmVha0FsbCAmJiB3cmFwTGluZXMpCiAgICAgLCBicmVha0ZpcnN0V29y
ZE9uT3ZlcmZsb3coYnJlYWtBbnlXb3JkT25PdmVyZmxvdyB8fCAoc3R5bGUuYnJlYWtXb3Jkcygp
ICYmICh3cmFwTGluZXMgfHwgc3R5bGUucHJlc2VydmVOZXdsaW5lKCkpKSkKICAgICAsIGNvbGxh
cHNlV2hpdGVzcGFjZShzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSkKICAgICAsIHByZVdyYXAo
d3JhcExpbmVzICYmICFjb2xsYXBzZVdoaXRlc3BhY2UpCiAgICAgLCBwcmVzZXJ2ZU5ld2xpbmUo
c3R5bGUucHJlc2VydmVOZXdsaW5lKCkpCiAgICAgLCB0ZXh0QWxpZ24oc3R5bGUudGV4dEFsaWdu
KCkpCisgICAgLCBzaG91bGRIeXBoZW5hdGUoc3R5bGUuaHlwaGVucygpID09IEh5cGhlbnM6OkF1
dG8gJiYgY2FuSHlwaGVuYXRlKHN0eWxlLmxvY2FsZSgpKSkKKyAgICAsIGh5cGhlblN0cmluZ1dp
ZHRoKHNob3VsZEh5cGhlbmF0ZSA/IGZvbnQud2lkdGgoV2ViQ29yZTo6VGV4dFJ1bihTdHJpbmco
c3R5bGUuaHlwaGVuU3RyaW5nKCkpKSkgOiAwKQorICAgICwgaHlwaGVuTGltaXRCZWZvcmUoc3R5
bGUuaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgpIDwgMCA/IDIgOiBzdHlsZS5oeXBoZW5hdGlvbkxp
bWl0QmVmb3JlKCkpCisgICAgLCBoeXBoZW5MaW1pdEFmdGVyKHN0eWxlLmh5cGhlbmF0aW9uTGlt
aXRBZnRlcigpIDwgMCA/IDIgOiBzdHlsZS5oeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoKSkKKyAgICAs
IGxvY2FsZShzdHlsZS5sb2NhbGUoKSkKIHsKKyAgICBpZiAoc3R5bGUuaHlwaGVuYXRpb25MaW1p
dExpbmVzKCkgPiAtMSkKKyAgICAgICAgaHlwaGVuTGltaXRMaW5lcyA9IHN0eWxlLmh5cGhlbmF0
aW9uTGltaXRMaW5lcygpOwogfQogCiBTaW1wbGVMaW5lQnJlYWtlcjo6U2ltcGxlTGluZUJyZWFr
ZXIoY29uc3QgVmVjdG9yPFRleHRSdW4+JiB0ZXh0UnVucywgY29uc3QgVGV4dENvbnRlbnRQcm92
aWRlciYgY29udGVudFByb3ZpZGVyLCBMaW5lQ29uc3RyYWludExpc3QmJiBsaW5lQ29uc3RyYWlu
dExpc3QsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKQEAgLTMxNCwxNSArMzI2LDI0IEBAIFZl
Y3RvcjxMYXlvdXRSdW4+IFNpbXBsZUxpbmVCcmVha2VyOjpydW5zKCkKIAogdm9pZCBTaW1wbGVM
aW5lQnJlYWtlcjo6aGFuZGxlTGluZUVuZCgpCiB7Ci0gICAgYXV0byBsaW5lSGFzQ29udGVudCA9
IG1fY3VycmVudExpbmUuaGFzQ29udGVudCgpOyAKKyAgICBhdXRvIGxpbmVIYXNDb250ZW50ID0g
bV9jdXJyZW50TGluZS5oYXNDb250ZW50KCk7CiAgICAgaWYgKGxpbmVIYXNDb250ZW50KSB7CiAg
ICAgICAgIEFTU0VSVChtX2xheW91dFJ1bnMuc2l6ZSgpKTsKICAgICAgICAgKyttX251bWJlck9m
TGluZXM7CiAgICAgICAgIG1fY3VycmVudExpbmUuY2xvc2VMYXN0UnVuKCk7CiAKLSAgICAgICAg
YXV0byBsYXN0TGluZSA9ICFtX3RleHRSdW5MaXN0LmN1cnJlbnQoKTsgCisgICAgICAgIGF1dG8g
bGFzdExpbmUgPSAhbV90ZXh0UnVuTGlzdC5jdXJyZW50KCk7CiAgICAgICAgIG1fY3VycmVudExp
bmUuYWRqdXN0UnVuc0ZvclRleHRBbGlnbihsYXN0TGluZSk7CiAgICAgfQorICAgIC8vIENoZWNr
IGlmIHdlIG5lZWQgdG8gZGlzYWJsZSBoeXBoZW5hdGlvbi4KKyAgICBpZiAobV9zdHlsZS5oeXBo
ZW5MaW1pdExpbmVzKSB7CisgICAgICAgIGlmICghbGluZUhhc0NvbnRlbnQgfHwgKG1fbGF5b3V0
UnVucy5zaXplKCkgJiYgIW1fbGF5b3V0UnVucy5sYXN0KCkuaGFzSHlwaGVuKCkpKQorICAgICAg
ICAgICAgbV9udW1iZXJPZlByZWNlZGluZ0xpbmVzV2l0aEh5cGhlbiA9IDA7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICsrbV9udW1iZXJPZlByZWNlZGluZ0xpbmVzV2l0aEh5cGhlbjsKKyAg
ICAgICAgbV9oeXBoZW5hdGlvbklzRGlzYWJsZWQgPSBtX251bWJlck9mUHJlY2VkaW5nTGluZXNX
aXRoSHlwaGVuID49ICptX3N0eWxlLmh5cGhlbkxpbWl0TGluZXM7CisgICAgfQorCiAgICAgbV9w
cmV2aW91c0xpbmVIYXNOb25Gb3JjZWRDb250ZW50ID0gbGluZUhhc0NvbnRlbnQgJiYgbV9jdXJy
ZW50TGluZS5hdmFpbGFibGVXaWR0aCgpID49IDA7CiAgICAgbV9jdXJyZW50TGluZS5yZXNldCgp
OwogfQpAQCAtMzkxLDYgKzQxMiwxNCBAQCB2b2lkIFNpbXBsZUxpbmVCcmVha2VyOjpjcmVhdGVS
dW5zRm9yTGluZSgpCiAgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQodGV4dFJ1bi0+aXNOb25X
aGl0ZXNwYWNlKCkpOworICAgICAgICAvLyBGaW5kIG91dCBpZiB0aGlzIG5vbi13aGl0ZXNwYWNl
IGZyYWdtZW50IGhhcyBhIGh5cGhlbiB3aGVyZSB3ZSBjYW4gYnJlYWsuCisgICAgICAgIGlmICht
X3N0eWxlLnNob3VsZEh5cGhlbmF0ZSAmJiAhbV9oeXBoZW5hdGlvbklzRGlzYWJsZWQpIHsKKyAg
ICAgICAgICAgIGlmICghc3BsaXRUZXh0UnVuKCp0ZXh0UnVuKSkgeworICAgICAgICAgICAgICAg
ICsrbV90ZXh0UnVuTGlzdDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorCiAgICAgICAgIC8vIE5vbi1icmVha2FibGUgbm9uLXdoaXRlc3BhY2UgZmly
c3QgcnVuLiBBZGQgaXQgdG8gdGhlIGN1cnJlbnQgbGluZS4gLWl0IG92ZXJmbG93cyB0aG91Z2gu
CiAgICAgICAgIGlmICghbV9jdXJyZW50TGluZS5oYXNDb250ZW50KCkpIHsKICAgICAgICAgICAg
IGhhbmRsZU92ZXJmbG93blJ1bigpOwpAQCAtNDk1LDYgKzUyNCw2MyBAQCB2b2lkIFNpbXBsZUxp
bmVCcmVha2VyOjpjb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZSgpCiAgICAgbV9jdXJyZW50TGlu
ZS5jb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZSgpOwogfQogCitzdGQ6Om9wdGlvbmFsPENvbnRl
bnRQb3NpdGlvbj4gU2ltcGxlTGluZUJyZWFrZXI6Omh5cGhlblBvc2l0aW9uQmVmb3JlKGNvbnN0
IFRleHRSdW4mIHRleHRSdW4sIENvbnRlbnRQb3NpdGlvbiBiZWZvcmUpIGNvbnN0Cit7CisgICAg
Ly8gRW5vdWdoIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBzcGxpdCBwb3NpdGlvbj8KKyAgICBpZiAo
YmVmb3JlIDw9IHRleHRSdW4uc3RhcnQoKSArIG1fc3R5bGUuaHlwaGVuTGltaXRCZWZvcmUpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICAvLyBBZGp1c3QgYmVmb3JlIHRvIGFjY29tbW9kYXRl
IHRoZSBsaW1pdC1hZnRlciB2YWx1ZSAodGhpcyBpcyB0aGUgbGFzdCBwb3RlbnRpYWwgaHlwaGVu
IGxvY2F0aW9uKS4KKyAgICBiZWZvcmUgPSBzdGQ6Om1pbihiZWZvcmUsIHRleHRSdW4uZW5kKCkg
LSBtX3N0eWxlLmh5cGhlbkxpbWl0QWZ0ZXIgKyAxKTsKKworICAgIGF1dG8gaHlwaGVuTG9jYXRp
b24gPSBtX2NvbnRlbnRQcm92aWRlci5oeXBoZW5Qb3NpdGlvbkJlZm9yZSh0ZXh0UnVuLnN0YXJ0
KCksIHRleHRSdW4uZW5kKCksIGJlZm9yZSk7CisgICAgaWYgKCFoeXBoZW5Mb2NhdGlvbikKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIEFTU0VSVChoeXBoZW5Mb2NhdGlvbiA+PSB0ZXh0UnVu
LnN0YXJ0KCkgJiYgaHlwaGVuTG9jYXRpb24gPD0gdGV4dFJ1bi5lbmQoKSk7CisgICAgLy8gQ2hl
Y2sgaWYgdGhlcmUgYXJlIGVub3VnaCBjaGFyYWN0ZXJzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGh5
cGhlbi4KKyAgICBpZiAoKmh5cGhlbkxvY2F0aW9uIDwgdGV4dFJ1bi5zdGFydCgpICsgbV9zdHls
ZS5oeXBoZW5MaW1pdEJlZm9yZSB8fCBtX3N0eWxlLmh5cGhlbkxpbWl0QWZ0ZXIgPiAodGV4dFJ1
bi5lbmQoKSAtICpoeXBoZW5Mb2NhdGlvbikpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBy
ZXR1cm4gaHlwaGVuTG9jYXRpb247Cit9CisKK3N0ZDo6b3B0aW9uYWw8Q29udGVudFBvc2l0aW9u
PiBTaW1wbGVMaW5lQnJlYWtlcjo6YWRqdXN0U3BsaXRQb3NpdGlvbldpdGhIeXBoZW5hdGlvbihj
b25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBDb250ZW50UG9zaXRpb24gc3BsaXRQb3NpdGlvbiwgZmxv
YXQgbGVmdFNpZGVXaWR0aCkgY29uc3QKK3sKKyAgICBBU1NFUlQodGV4dFJ1bi5pc05vbldoaXRl
c3BhY2UoKSk7CisKKyAgICAvLyBVc2UgaHlwaGVuPworICAgIGlmICghbV9zdHlsZS5zaG91bGRI
eXBoZW5hdGUgfHwgbV9oeXBoZW5hdGlvbklzRGlzYWJsZWQpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgZW5vdWdoIGNoYXJhY3RlcnMgaW4gdGhlIHJ1
bi4KKyAgICBhdXRvIHJ1bkxlbmd0aCA9IHRleHRSdW4ubGVuZ3RoKCk7CisgICAgaWYgKG1fc3R5
bGUuaHlwaGVuTGltaXRCZWZvcmUgPj0gcnVuTGVuZ3RoIHx8IG1fc3R5bGUuaHlwaGVuTGltaXRB
ZnRlciA+PSBydW5MZW5ndGggfHwgbV9zdHlsZS5oeXBoZW5MaW1pdEJlZm9yZSArIG1fc3R5bGUu
aHlwaGVuTGltaXRBZnRlciA+IHJ1bkxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IC8vIEZJWE1FOiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3Igd2Via2l0Lm9yZy9iLzE2OTYxMy4g
U2VlIG1heFByZWZpeFdpZHRoIGNvbXB1dGF0aW9uIGluIHRyeUh5cGhlbmF0aW5nKCkuCisgICAg
Ly8gSXQgZG9lcyBub3Qgd29yayBwcm9wZXJseSB3aXRoIG5vbi1jb2xsYXBzZWQgbGVhZGluZyB0
YWJzIHdoZW4gZm9udCBpcyBlbmxhcmdlZC4KKyAgICBhdXRvIGFkanVzdGVkQXZhaWxhYmxlV2lk
dGggPSBtX2N1cnJlbnRMaW5lLmF2YWlsYWJsZVdpZHRoKCkgLSBtX3N0eWxlLmh5cGhlblN0cmlu
Z1dpZHRoOworICAgIGlmIChtX2N1cnJlbnRMaW5lLmhhc0NvbnRlbnQoKSkKKyAgICAgICAgYWRq
dXN0ZWRBdmFpbGFibGVXaWR0aCArPSBtX3N0eWxlLmZvbnQuc3BhY2VXaWR0aCgpOworCisgICAg
aWYgKCFlbm91Z2hXaWR0aEZvckh5cGhlbmF0aW9uKGFkanVzdGVkQXZhaWxhYmxlV2lkdGgsIG1f
c3R5bGUuZm9udC5waXhlbFNpemUoKSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICAvLyBG
aW5kIHRoZSBzcGxpdCBwb3NpdGlvbiB3aGVyZSBoeXBoZW4gc3VyZWx5IGZpdHMgKHdlIG1pZ2h0
IGJlIGFibGUgdG8gZml0IHRoZSBoeXBoZW4gYXQgdGhlIHNwbGl0IHBvc2l0aW9uKS4KKyAgICBh
dXRvIGxlZnQgPSB0ZXh0UnVuLnN0YXJ0KCk7CisgICAgYXV0byByaWdodCA9IHNwbGl0UG9zaXRp
b247CisgICAgd2hpbGUgKGxlZnRTaWRlV2lkdGggKyBtX3N0eWxlLmh5cGhlblN0cmluZ1dpZHRo
ID4gbV9jdXJyZW50TGluZS5hdmFpbGFibGVXaWR0aCgpKSB7CisgICAgICAgIGlmICgtLXJpZ2h0
IDw9IGxlZnQpCisgICAgICAgICAgICByZXR1cm4geyB9OyAvLyBObyBzcGFjZSBmb3IgaHlwaGVu
LgorICAgICAgICAvLyBGSVhNRTogZm9yIGNvcnJlY3RuZXNzIChrZXJuaW5nKSB3ZSBzaG91bGQg
aW5zdGVhZCBtZWFzdXJlIHRoZSBsZWZ0IHNpZGUuCisgICAgICAgIGxlZnRTaWRlV2lkdGggLT0g
bV9jb250ZW50UHJvdmlkZXIud2lkdGgocmlnaHQsIHJpZ2h0ICsgMSwgMCk7CisgICAgfQorCisg
ICAgLy8gRmluZCBvdXQgaWYgdGhlcmUncyBhbiBhY3R1YWwgaHlwaGVuIG9wcG9ydGluaXR5IGF0
IHRoaXMgcG9zaXRpb24gKG9yIGJlZm9yZSkuCisgICAgcmV0dXJuIGh5cGhlblBvc2l0aW9uQmVm
b3JlKHRleHRSdW4sIHJpZ2h0ICsgMSk7Cit9CisKIGJvb2wgU2ltcGxlTGluZUJyZWFrZXI6OnNw
bGl0VGV4dFJ1bihjb25zdCBUZXh0UnVuJiB0ZXh0UnVuKQogewogICAgIC8vIFNpbmdsZSBjaGFy
YWN0ZXIgaGFuZGxpbmcuCkBAIC01MzksMTYgKzYyNSwyNCBAQCBUZXh0UnVuU3BsaXRQYWlyIFNp
bXBsZUxpbmVCcmVha2VyOjpzcGxpdChjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBmbG9hdCBsZWZ0
U2lkZQogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gS2VlcCBhdCBsZWFzdCBvbmUgY2hhcmFj
dGVyIG9uIGVtcHR5IGxpbmVzLmYKKyAgICAvLyBLZWVwIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIg
b24gZW1wdHkgbGluZXMuCisgICAgYm9vbCBzcGxpdEhhc0h5cGVuID0gZmFsc2U7CiAgICAgbGVm
dCA9IHRleHRSdW4uc3RhcnQoKTsKICAgICBpZiAobGVmdCA+PSByaWdodCAmJiAhbV9jdXJyZW50
TGluZS5oYXNDb250ZW50KCkpIHsKICAgICAgICAgcmlnaHQgPSBsZWZ0ICsgMTsKLSAgICAgICAg
bGVmdFNpZGVXaWR0aCA9IG1fY29udGVudFByb3ZpZGVyLndpZHRoKHRleHRSdW4uc3RhcnQoKSwg
cmlnaHQsIDApOworICAgICAgICBsZWZ0U2lkZVdpZHRoID0gbV9jb250ZW50UHJvdmlkZXIud2lk
dGgobGVmdCwgcmlnaHQsIDApOworICAgIH0gZWxzZSBpZiAodGV4dFJ1bi5pc05vbldoaXRlc3Bh
Y2UoKSkgeworICAgICAgICBpZiAoYXV0byBoeXBoZW5Qb3NpdGlvbiA9IGFkanVzdFNwbGl0UG9z
aXRpb25XaXRoSHlwaGVuYXRpb24odGV4dFJ1biwgcmlnaHQsIGxlZnRTaWRlV2lkdGgpKSB7Cisg
ICAgICAgICAgICBzcGxpdEhhc0h5cGVuID0gdHJ1ZTsKKyAgICAgICAgICAgIHJpZ2h0ID0gKmh5
cGhlblBvc2l0aW9uOworICAgICAgICAgICAgbGVmdFNpZGVXaWR0aCA9IG1fY29udGVudFByb3Zp
ZGVyLndpZHRoKGxlZnQsIHJpZ2h0LCAwKSArIG1fc3R5bGUuaHlwaGVuU3RyaW5nV2lkdGg7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBhdXRvIHJpZ2h0U2lkZVdpZHRoID0gbV9jb250ZW50UHJv
dmlkZXIud2lkdGgocmlnaHQsIHRleHRSdW4uZW5kKCksIDApOwogICAgIGlmICh0ZXh0UnVuLmlz
Tm9uV2hpdGVzcGFjZSgpKQotICAgICAgICByZXR1cm4geyBUZXh0UnVuOjpjcmVhdGVOb25XaGl0
ZXNwYWNlUnVuKGxlZnQsIHJpZ2h0LCBsZWZ0U2lkZVdpZHRoKSwgVGV4dFJ1bjo6Y3JlYXRlTm9u
V2hpdGVzcGFjZVJ1bihyaWdodCwgdGV4dFJ1bi5lbmQoKSwgcmlnaHRTaWRlV2lkdGgpIH07Cisg
ICAgICAgIHJldHVybiB7IHNwbGl0SGFzSHlwZW4gPyBUZXh0UnVuOjpjcmVhdGVOb25XaGl0ZXNw
YWNlUnVuV2l0aEh5cGhlbihsZWZ0LCByaWdodCwgbGVmdFNpZGVXaWR0aCkgOiBUZXh0UnVuOjpj
cmVhdGVOb25XaGl0ZXNwYWNlUnVuKGxlZnQsIHJpZ2h0LCBsZWZ0U2lkZVdpZHRoKSwKKyAgICAg
ICAgICAgIFRleHRSdW46OmNyZWF0ZU5vbldoaXRlc3BhY2VSdW4ocmlnaHQsIHRleHRSdW4uZW5k
KCksIHJpZ2h0U2lkZVdpZHRoKSB9OwogCiAgICAgLy8gV2UgbmV2ZXIgc3BsaXQgY29sbGFwc2Vk
IHdoaXRlc3BhY2UuCiAgICAgQVNTRVJUKHRleHRSdW4uaXNXaGl0ZXNwYWNlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9z
aW1wbGUvU2ltcGxlTGluZUJyZWFrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL3RleHRsYXlvdXQvc2ltcGxlL1NpbXBsZUxpbmVCcmVha2VyLmgKaW5kZXggNDY0
MzVkYWUzMjExYmZkNjE3YTJjMTdkMjY2YTY2OWI4YjY4Yjc3Zi4uMzFjYTJjOWE0NGQ0MzczNzgz
ZDMwOTQ4ZDJiYzg0NjA0MjM0NWZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9zaW1wbGUvU2ltcGxlTGluZUJyZWFrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0bGF5b3V0L3Np
bXBsZS9TaW1wbGVMaW5lQnJlYWtlci5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgRm9udENhc2NhZGU7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIAogbmFt
ZXNwYWNlIExheW91dCB7CkBAIC02Miw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IFN0
eWxlIHsKICAgICAgICAgZXhwbGljaXQgU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAorICAg
ICAgICBjb25zdCBGb250Q2FzY2FkZSYgZm9udDsKICAgICAgICAgYm9vbCB3cmFwTGluZXMgeyBm
YWxzZSB9OwogICAgICAgICBib29sIGJyZWFrQW55V29yZE9uT3ZlcmZsb3cgeyBmYWxzZSB9Owog
ICAgICAgICBib29sIGJyZWFrRmlyc3RXb3JkT25PdmVyZmxvdyB7IGZhbHNlIH07CkBAIC02OSw2
ICs3MSwxMiBAQCBwcml2YXRlOgogICAgICAgICBib29sIHByZVdyYXAgeyBmYWxzZSB9OwogICAg
ICAgICBib29sIHByZXNlcnZlTmV3bGluZSB7IGZhbHNlIH07CiAgICAgICAgIFRleHRBbGlnbk1v
ZGUgdGV4dEFsaWduIHsgVGV4dEFsaWduTW9kZTo6TGVmdCB9OworICAgICAgICBib29sIHNob3Vs
ZEh5cGhlbmF0ZTsKKyAgICAgICAgZmxvYXQgaHlwaGVuU3RyaW5nV2lkdGg7CisgICAgICAgIEl0
ZW1Qb3NpdGlvbiBoeXBoZW5MaW1pdEJlZm9yZTsKKyAgICAgICAgSXRlbVBvc2l0aW9uIGh5cGhl
bkxpbWl0QWZ0ZXI7CisgICAgICAgIEF0b21pY1N0cmluZyBsb2NhbGU7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8dW5zaWduZWQ+IGh5cGhlbkxpbWl0TGluZXM7CiAgICAgfTsKIAogICAgIGNsYXNz
IFRleHRSdW5MaXN0IHsKQEAgLTExMywxMyArMTIxLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBib29sIGNvbGxhcHNlV2hpdGVzcGFjZSB7IGZhbHNlIH07CiAgICAgICAgICAgICBUZXh0QWxp
Z25Nb2RlIHRleHRBbGlnbiB7IFRleHRBbGlnbk1vZGU6OkxlZnQgfTsKICAgICAgICAgfTsKKwog
ICAgICAgICBmbG9hdCBhZGp1c3RlZExlZnRGb3JUZXh0QWxpZ24oVGV4dEFsaWduTW9kZSkgY29u
c3Q7CiAgICAgICAgIHZvaWQganVzdGlmeVJ1bnMoKTsKICAgICAgICAgdm9pZCBjb2xsZWN0RXhw
YW5zaW9uT3Bwb3J0dW5pdGllcyhjb25zdCBUZXh0UnVuJiwgYm9vbCB0ZXh0UnVuQ3JlYXRlc05l
d0xheW91dFJ1bik7CiAKICAgICAgICAgVmVjdG9yPExheW91dFJ1bj4mIG1fbGF5b3V0UnVuczsK
ICAgICAgICAgU3R5bGUgbV9zdHlsZTsKLSAgICAKKwogICAgICAgICBmbG9hdCBtX3J1bnNXaWR0
aCB7IDAgfTsKICAgICAgICAgZmxvYXQgbV9hdmFpbGFibGVXaWR0aCB7IDAgfTsKICAgICAgICAg
ZmxvYXQgbV9sZWZ0IHsgMCB9OwpAQCAtMTQ2LDYgKzE1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZSgpOwogICAgIGJvb2wgc3BsaXRUZXh0UnVuKGNv
bnN0IFRleHRSdW4mKTsKICAgICBUZXh0UnVuU3BsaXRQYWlyIHNwbGl0KGNvbnN0IFRleHRSdW4m
LCBmbG9hdCBsZWZ0U2lkZU1heGltdW1XaWR0aCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxD
b250ZW50UG9zaXRpb24+IGh5cGhlblBvc2l0aW9uQmVmb3JlKGNvbnN0IFRleHRSdW4mLCBDb250
ZW50UG9zaXRpb24gYmVmb3JlKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbnRlbnRQb3Np
dGlvbj4gYWRqdXN0U3BsaXRQb3NpdGlvbldpdGhIeXBoZW5hdGlvbihjb25zdCBUZXh0UnVuJiwg
Q29udGVudFBvc2l0aW9uIHNwbGl0UG9zaXRpb24sIGZsb2F0IGxlZnRTaWRlV2lkdGgpIGNvbnN0
OwogICAgIExpbmVDb25zdHJhaW50IGxpbmVDb25zdHJhaW50KGZsb2F0IHZlcnRpY2FsUG9zaXRp
b24pOwogICAgIGZsb2F0IHZlcnRpY2FsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX251bWJl
ck9mTGluZXMgKiBtX2xpbmVIZWlnaHQ7IH0KIApAQCAtMTYzLDYgKzE3NCw4IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkxpbmVzIHsgMCB9OwogICAgIGJvb2wgbV9wcmV2aW91
c0xpbmVIYXNOb25Gb3JjZWRDb250ZW50IHsgZmFsc2UgfTsKICAgICBmbG9hdCBtX2xpbmVIZWln
aHQgeyAwIH07CisgICAgYm9vbCBtX2h5cGhlbmF0aW9uSXNEaXNhYmxlZCB7IGZhbHNlIH07Cisg
ICAgdW5zaWduZWQgbV9udW1iZXJPZlByZWNlZGluZ0xpbmVzV2l0aEh5cGhlbiB7IDAgfTsKIH07
CiAKIGlubGluZSBzdGQ6Om9wdGlvbmFsPFRleHRSdW4+IFNpbXBsZUxpbmVCcmVha2VyOjpUZXh0
UnVuTGlzdDo6Y3VycmVudCgpIGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>