<?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>232487</bug_id>
          
          <creation_ts>2021-10-29 08:47:59 -0700</creation_ts>
          <short_desc>[LFC][IFC] Introduce InlineItemsBuilder</short_desc>
          <delta_ts>2021-10-29 14:10:23 -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>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>1810091</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-10-29 08:47:59 -0700</bug_when>
    <thetext>this is going to be used for building bidi compatible inline items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810093</commentid>
    <comment_count>1</comment_count>
      <attachid>442822</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-29 08:50:48 -0700</bug_when>
    <thetext>Created attachment 442822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810095</commentid>
    <comment_count>2</comment_count>
      <attachid>442822</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-29 08:54:15 -0700</bug_when>
    <thetext>Comment on attachment 442822
Patch

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

&gt; Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:34
&gt; +InlineItemsBuilder::InlineItemsBuilder(const ContainerBox&amp; formattingContextRoot, InlineFormattingState&amp; formattingState)

Finally!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810104</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-10-29 09:43:42 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #2)
&gt; Comment on attachment 442822 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=442822&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:34
&gt; &gt; +InlineItemsBuilder::InlineItemsBuilder(const ContainerBox&amp; formattingContextRoot, InlineFormattingState&amp; formattingState)
&gt; 
&gt; Finally!
🎆</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810111</commentid>
    <comment_count>4</comment_count>
      <attachid>442826</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-29 09:52:21 -0700</bug_when>
    <thetext>Created attachment 442826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810232</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-29 14:09:18 -0700</bug_when>
    <thetext>Committed r285050 (243693@main): &lt;https://commits.webkit.org/243693@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442826.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810234</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-29 14:10:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/84823069&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442822</attachid>
            <date>2021-10-29 08:50:48 -0700</date>
            <delta_ts>2021-10-29 09:52:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232487-20211029085047.patch</filename>
            <type>text/plain</type>
            <size>17308</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE1ZmQ1NDk0ZGM3YzRi
ZGQ3MzBkYTdlMDFkNTk4OTMzYzIyMTM2OC4uY2ExMGU3MWZlZGZjMTlmODUxMjNmZGI2MWRkODUy
N2FlYTljMTlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTI5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEludHJvZHVj
ZSBJbmxpbmVJdGVtc0J1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMjQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgYnVpbGRlciBpcyBnb2luZyB0byBiZSB1c2VkIGZvciBjb25zdHJ1
Y3RpbmcgYmlkaSBjb21wYXRpYmxlIGlubGluZSBpdGVtcy4KKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb2xsZWN0Q29udGVudElmTmVlZGVkKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpJbmxpbmVJdGVtc0J1aWxkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmJ1aWxkKToK
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1
aWxkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVp
bGRlcjo6cm9vdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1z
QnVpbGRlcjo6Zm9ybWF0dGluZ1N0YXRlIGNvbnN0KToKKwogMjAyMS0xMC0yOCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgWyBNYWMgd2sxIF0gMiBtZWRpYS1j
YXBhYmlsaXRpZXMvd2VicnRjIHRlc3RzIGFyZSBmbGFreSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBlZjI3OTY4MTZkNTUyYzFiYzEzNTcwNDE4YzE1ZTM0MzA3MTY0Mzg2Li42N2U3MzZkYzM0
OWYwZWFiNDBhNWNlN2JiZjVkOWI3MzQzZDYzY2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUxNiw2
ICsxNTE2LDcgQEAgbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0
dGluZ0dlb21ldHJ5LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
Rm9ybWF0dGluZ1F1aXJrcy5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUl0ZW0uY3BwCitsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJ
dGVtc0J1aWxkZXIuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lLmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5j
cHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVy
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDgxOTUyOTdlYTZlNWJhZjkyMjU4N2U2ZTY3NmE4ZDJjMTIzYzhkMjguLjE3MDQz
N2U2MGQ5MWQwZmRhZTNjOGFkZjU4MThjZGEyY2YzNTZhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyNSw2ICs0MjUsNyBA
QAogCQkxMTk5RkE0NjIwOEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyQm94LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTk5RkE0NDIwOEUz
NUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyQm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTFDMzIyN0QyNkQ5NThDRTAwMzI4RjREIC8q
IElubGluZUxpbmVCb3hCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMUMzMjI3QzI2RDk1OENFMDAzMjhGNEQgLyogSW5saW5lTGluZUJveEJ1
aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxMUNCMjc4OTIwM0JBNTcwMDA0QTFEQzkgLyogUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVu
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMUNCMjc4
NzIwM0JBNTcwMDA0QTFEQzkgLyogUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmggKi87IH07
CisJCTExRDAzNjNDMjcyQzRDRkQwMDlFRDcwRCAvKiBJbmxpbmVJdGVtc0J1aWxkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExRDAzNjNCMjcyQzRD
RkQwMDlFRDcwRCAvKiBJbmxpbmVJdGVtc0J1aWxkZXIuaCAqLzsgfTsKIAkJMTFFNTE2MzgyNjFF
MUEwNjAwRTY5RjI1IC8qIFdlYlhSSW5wdXRTcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFFNTE2MzUyNjFFMUEwNTAwRTY5RjI1IC8qIFdlYlhS
SW5wdXRTcGFjZS5oICovOyB9OwogCQkxMUU1MTYzQzI2MUUxQTE1MDBFNjlGMjUgLyogV2ViWFJH
YW1lcGFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
MUU1MTYzQTI2MUUxQTE0MDBFNjlGMjUgLyogV2ViWFJHYW1lcGFkLmggKi87IH07CiAJCTE0MDBE
N0E4MTcxMzZFQTcwMDc3Q0UwNSAvKiBTY3JpcHRXcmFwcGFibGVJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDAwRDdBNzE3MTM2RUE3MDA3
N0NFMDUgLyogU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NTgxLDYgKzY1ODIsOCBAQAogCQkxMUM1RjEz
NDIwMDUyN0Y5MDAwMUFFNjAgLyogUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFDQjI3ODYyMDNCQTU3MDAwNEExREM5IC8qIFJlbmRl
clRyZWVCdWlsZGVyRnVsbFNjcmVlbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVl
QnVpbGRlckZ1bGxTY3JlZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMUNC
Mjc4NzIwM0JBNTcwMDA0QTFEQzkgLyogUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVyRnVsbFNjcmVlbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxMUQwMzYzOTI3MkM0Q0U3MDA5RUQ3MEQgLyogSW5saW5lSXRlbXNC
dWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUl0ZW1zQnVpbGRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExRDAzNjNCMjcyQzRDRkQwMDlFRDcwRCAvKiBJ
bmxpbmVJdGVtc0J1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5s
aW5lSXRlbXNCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExRDE5QzJF
MjMxNTlCQUUwMDhGMjREMyAvKiBUYWJsZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTExRTUxNjM1MjYxRTFBMDUwMEU2OUYyNSAvKiBXZWJYUklucHV0U3BhY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJJbnB1dFNwYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExRTUxNjM3MjYxRTFBMDUwMEU2OUYyNSAvKiBX
ZWJYUklucHV0U3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViWFJJbnB1dFNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDc5
LDYgKzE4NDgyLDggQEAKIAkJCQkxMTVDRkE3QzIwOEI4RTEwMDAxRTY5OTEgLyogSW5saW5lRm9y
bWF0dGluZ1N0YXRlLmggKi8sCiAJCQkJNkY3QjhDRUMyMzYyNkU2NjAwQzlGRjE1IC8qIElubGlu
ZUl0ZW0uY3BwICovLAogCQkJCTZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxpbmVJdGVt
LmggKi8sCisJCQkJMTFEMDM2MzkyNzJDNENFNzAwOUVENzBEIC8qIElubGluZUl0ZW1zQnVpbGRl
ci5jcHAgKi8sCisJCQkJMTFEMDM2M0IyNzJDNENGRDAwOUVENzBEIC8qIElubGluZUl0ZW1zQnVp
bGRlci5oICovLAogCQkJCTZGQUFFNzExMjZBMjgxNEEwMEUwNzUwMiAvKiBJbmxpbmVMZXZlbEJv
eC5oICovLAogCQkJCTZGMENENjkyMjI5RUQzMTkwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmNwcCAq
LywKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5saW5lTGluZS5oICovLApAQCAt
MzMyNjYsNiArMzMyNzEsNyBAQAogCQkJCTExNUNGQTdFMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxp
bmVGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMUZBMUM3MjZGMEYzMEYw
MDNCOEYxNiAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZGRTdD
RkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
MUQwMzYzQzI3MkM0Q0ZEMDA5RUQ3MEQgLyogSW5saW5lSXRlbXNCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogSW5saW5lSXRlcmF0b3JCb3gu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBJbmxpbmVJ
dGVyYXRvckJveExlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTY2NENFMjUyMUQ0
QzkwMDcwODFEQyAvKiBJbmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmlu
ZGV4IDEzMjYwMzM4M2NmNTAxNzA3ODc4MTA5NjYxNGY4YWY5NzczN2E1ZWMuLmU0ZDExN2Y1ZmJm
NDVkM2ZiN2RlNmFlYjMxODY0NzcwZTEzMDE2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJJbmxpbmVEaXNwbGF5Qm94LmgiCiAjaW5jbHVkZSAiSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiSW5s
aW5lSXRlbXNCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW5saW5lTGluZUJveC5oIgogI2luY2x1ZGUg
IklubGluZUxpbmVCb3hCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEl0ZW0uaCIKQEAg
LTUyMiw1MSArNTIzLDggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29sbGVjdENv
bnRlbnRJZk5lZWRlZCgpCiAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0
dGluZ1N0YXRlKCk7CiAgICAgaWYgKCFmb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAvLyBUcmF2ZXJzZSB0aGUgdHJlZSBhbmQgY3Jl
YXRlIGlubGluZSBpdGVtcyBvdXQgb2YgaW5saW5lIGJveGVzIGFuZCBsZWFmIG5vZGVzLiBUaGlz
IGVzc2VudGlhbGx5IHR1cm5zIHRoZSB0cmVlIGlubGluZSBzdHJ1Y3R1cmUgaW50byBhIGZsYXQg
b25lLgotICAgIC8vIDxzcGFuPnRleHQ8c3Bhbj48L3NwYW4+PGltZz48L3NwYW4+IC0+IFtJbmxp
bmVCb3hTdGFydF1bSW5saW5lTGV2ZWxCb3hdW0lubGluZUJveFN0YXJ0XVtJbmxpbmVCb3hFbmRd
W0lubGluZUxldmVsQm94XVtJbmxpbmVCb3hFbmRdCi0gICAgQVNTRVJUKHJvb3QoKS5oYXNJbkZs
b3dPckZsb2F0aW5nQ2hpbGQoKSk7Ci0gICAgTGF5b3V0UXVldWUgbGF5b3V0UXVldWU7Ci0gICAg
bGF5b3V0UXVldWUuYXBwZW5kKHJvb3QoKS5maXJzdENoaWxkKCkpOwotICAgIHdoaWxlICghbGF5
b3V0UXVldWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAg
ICBhdXRvJiBsYXlvdXRCb3ggPSAqbGF5b3V0UXVldWUubGFzdCgpOwotICAgICAgICAgICAgYXV0
byBpc0lubGluZUJveFdpdGhJbmxpbmVDb250ZW50ID0gbGF5b3V0Qm94LmlzSW5saW5lQm94KCkg
JiYgIWxheW91dEJveC5pc0lubGluZVRleHRCb3goKSAmJiAhbGF5b3V0Qm94LmlzTGluZUJyZWFr
Qm94KCkgJiYgIWxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKTsKLSAgICAgICAgICAg
IGlmICghaXNJbmxpbmVCb3hXaXRoSW5saW5lQ29udGVudCkKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHN0YXJ0IG9mIGFuIGlubGluZSBib3ggKGUu
Zy4gPHNwYW4+KS4KLSAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVJdGVtKHsg
bGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hTdGFydCB9KTsKLSAgICAgICAg
ICAgIGF1dG8mIGlubGluZUJveFdpdGhJbmxpbmVDb250ZW50ID0gZG93bmNhc3Q8Q29udGFpbmVy
Qm94PihsYXlvdXRCb3gpOwotICAgICAgICAgICAgaWYgKCFpbmxpbmVCb3hXaXRoSW5saW5lQ29u
dGVudC5oYXNDaGlsZCgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgbGF5
b3V0UXVldWUuYXBwZW5kKGlubGluZUJveFdpdGhJbmxpbmVDb250ZW50LmZpcnN0Q2hpbGQoKSk7
Ci0gICAgICAgIH0KLQotICAgICAgICB3aGlsZSAoIWxheW91dFF1ZXVlLmlzRW1wdHkoKSkgewot
ICAgICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gKmxheW91dFF1ZXVlLnRha2VMYXN0KCk7Ci0g
ICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7Ci0gICAg
ICAgICAgICAgICAgLy8gTGV0J3Mgbm90IGNvbnN0cnVjdCBJbmxpbmVJdGVtcyBmb3Igb3V0LW9m
LWZsb3cgY29udGVudCBhcyB0aGV5IGRvbid0IHBhcnRpY2lwYXRlIGluIHRoZSBpbmxpbmUgbGF5
b3V0LgotICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIgdG8gYmUgYWJsZSB0byBzdGF0aWMgcG9z
aXRpb25pbmcgdGhlbSwgd2UgbmVlZCB0byBjb21wdXRlIHRoZWlyIGFwcHJveGltYXRlIHBvc2l0
aW9ucy4KLSAgICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkT3V0T2ZGbG93Qm94KGxh
eW91dEJveCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGlzPExpbmVCcmVha0JveD4obGF5b3V0
Qm94KSkgewotICAgICAgICAgICAgICAgIGF1dG8mIGxpbmVCcmVha0JveCA9IGRvd25jYXN0PExp
bmVCcmVha0JveD4obGF5b3V0Qm94KTsKLSAgICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUu
YWRkSW5saW5lSXRlbSh7IGxheW91dEJveCwgbGluZUJyZWFrQm94LmlzT3B0aW9uYWwoKSA/IElu
bGluZUl0ZW06OlR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5IDogSW5saW5lSXRlbTo6VHlwZTo6
SGFyZExpbmVCcmVhayB9KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LmlzRmxv
YXRpbmdQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZElu
bGluZUl0ZW0oeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkZsb2F0IH0pOwotICAgICAg
ICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkKLSAgICAg
ICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxheW91dEJveCwgSW5s
aW5lSXRlbTo6VHlwZTo6Qm94IH0pOwotICAgICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94Lmlz
SW5saW5lVGV4dEJveCgpKSB7Ci0gICAgICAgICAgICAgICAgSW5saW5lVGV4dEl0ZW06OmNyZWF0
ZUFuZEFwcGVuZFRleHRJdGVtcyhmb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKSwgZG93bmNh
c3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGxh
eW91dEJveC5pc0lubGluZUJveCgpKQotICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5h
ZGRJbmxpbmVJdGVtKHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hFbmQg
fSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0KLSAgICAgICAgICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IGxheW91dEJveC5uZXh0
U2libGluZygpKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0UXVldWUuYXBwZW5kKG5leHRTaWJs
aW5nKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIH0KKyAgICBhdXRvIGlubGluZUl0ZW1zQnVpbGRlciA9IElubGluZUl0ZW1zQnVpbGRlciB7
IHJvb3QoKSwgZm9ybWF0dGluZ1N0YXRlIH07CisgICAgaW5saW5lSXRlbXNCdWlsZGVyLmJ1aWxk
KCk7CiB9CiAKIElubGluZVJlY3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVHZW9t
ZXRyeUZvckxpbmVDb250ZW50KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYgbGluZUNv
bnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZGZmNGYxM2RkMTQwYTY0OTZkMmFiZDg4NTBiY2M1ZjQxZDVmYjlhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lSXRlbXNCdWlsZGVyLmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklubGluZUl0ZW1zQnVpbGRlci5oIgorCisjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBMYXlvdXQgeworCitJbmxpbmVJdGVtc0J1aWxkZXI6OklubGluZUl0ZW1zQnVp
bGRlcihjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgSW5saW5lRm9y
bWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpCisgICAgOiBtX3Jvb3QoZm9ybWF0dGluZ0Nv
bnRleHRSb290KQorICAgICwgbV9mb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ1N0YXRlKQorewor
fQorCit2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6YnVpbGQoKQoreworICAgIC8vIFRyYXZlcnNl
IHRoZSB0cmVlIGFuZCBjcmVhdGUgaW5saW5lIGl0ZW1zIG91dCBvZiBpbmxpbmUgYm94ZXMgYW5k
IGxlYWYgbm9kZXMuIFRoaXMgZXNzZW50aWFsbHkgdHVybnMgdGhlIHRyZWUgaW5saW5lIHN0cnVj
dHVyZSBpbnRvIGEgZmxhdCBvbmUuCisgICAgLy8gPHNwYW4+dGV4dDxzcGFuPjwvc3Bhbj48aW1n
Pjwvc3Bhbj4gLT4gW0lubGluZUJveFN0YXJ0XVtJbmxpbmVMZXZlbEJveF1bSW5saW5lQm94U3Rh
cnRdW0lubGluZUJveEVuZF1bSW5saW5lTGV2ZWxCb3hdW0lubGluZUJveEVuZF0KKyAgICBBU1NF
UlQocm9vdCgpLmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpKTsKKyAgICBhdXRvJiBmb3JtYXR0
aW5nU3RhdGUgPSB0aGlzLT5mb3JtYXR0aW5nU3RhdGUoKTsKKworICAgIFZlY3Rvcjxjb25zdCBC
b3gqPiBsYXlvdXRRdWV1ZTsKKyAgICBsYXlvdXRRdWV1ZS5hcHBlbmQocm9vdCgpLmZpcnN0Q2hp
bGQoKSk7CisgICAgd2hpbGUgKCFsYXlvdXRRdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgd2hp
bGUgKHRydWUpIHsKKyAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpsYXlvdXRRdWV1ZS5s
YXN0KCk7CisgICAgICAgICAgICBhdXRvIGlzSW5saW5lQm94V2l0aElubGluZUNvbnRlbnQgPSBs
YXlvdXRCb3guaXNJbmxpbmVCb3goKSAmJiAhbGF5b3V0Qm94LmlzSW5saW5lVGV4dEJveCgpICYm
ICFsYXlvdXRCb3guaXNMaW5lQnJlYWtCb3goKSAmJiAhbGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9z
aXRpb25lZCgpOworICAgICAgICAgICAgaWYgKCFpc0lubGluZUJveFdpdGhJbmxpbmVDb250ZW50
KQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgc3Rh
cnQgb2YgYW4gaW5saW5lIGJveCAoZS5nLiA8c3Bhbj4pLgorICAgICAgICAgICAgZm9ybWF0dGlu
Z1N0YXRlLmFkZElubGluZUl0ZW0oeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OklubGlu
ZUJveFN0YXJ0IH0pOworICAgICAgICAgICAgYXV0byYgaW5saW5lQm94V2l0aElubGluZUNvbnRl
bnQgPSBkb3duY2FzdDxDb250YWluZXJCb3g+KGxheW91dEJveCk7CisgICAgICAgICAgICBpZiAo
IWlubGluZUJveFdpdGhJbmxpbmVDb250ZW50Lmhhc0NoaWxkKCkpCisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBsYXlvdXRRdWV1ZS5hcHBlbmQoaW5saW5lQm94V2l0aElubGlu
ZUNvbnRlbnQuZmlyc3RDaGlsZCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICghbGF5
b3V0UXVldWUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqbGF5
b3V0UXVldWUudGFrZUxhc3QoKTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBMZXQncyBub3QgY29uc3RydWN0
IElubGluZUl0ZW1zIGZvciBvdXQtb2YtZmxvdyBjb250ZW50IGFzIHRoZXkgZG9uJ3QgcGFydGlj
aXBhdGUgaW4gdGhlIGlubGluZSBsYXlvdXQuCisgICAgICAgICAgICAgICAgLy8gSG93ZXZlciB0
byBiZSBhYmxlIHRvIHN0YXRpYyBwb3NpdGlvbmluZyB0aGVtLCB3ZSBuZWVkIHRvIGNvbXB1dGUg
dGhlaXIgYXBwcm94aW1hdGUgcG9zaXRpb25zLgorICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdT
dGF0ZS5hZGRPdXRPZkZsb3dCb3gobGF5b3V0Qm94KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
aXM8TGluZUJyZWFrQm94PihsYXlvdXRCb3gpKSB7CisgICAgICAgICAgICAgICAgYXV0byYgbGlu
ZUJyZWFrQm94ID0gZG93bmNhc3Q8TGluZUJyZWFrQm94PihsYXlvdXRCb3gpOworICAgICAgICAg
ICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVJdGVtKHsgbGF5b3V0Qm94LCBsaW5lQnJl
YWtCb3guaXNPcHRpb25hbCgpID8gSW5saW5lSXRlbTo6VHlwZTo6V29yZEJyZWFrT3Bwb3J0dW5p
dHkgOiBJbmxpbmVJdGVtOjpUeXBlOjpIYXJkTGluZUJyZWFrIH0pOworICAgICAgICAgICAgfSBl
bHNlIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgICAg
ICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxheW91dEJveCwgSW5saW5lSXRlbTo6
VHlwZTo6RmxvYXQgfSk7CisgICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNBdG9taWNJ
bmxpbmVMZXZlbEJveCgpKQorICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxp
bmVJdGVtKHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpCb3ggfSk7CisgICAgICAgICAg
ICBlbHNlIGlmIChsYXlvdXRCb3guaXNJbmxpbmVUZXh0Qm94KCkpIHsKKyAgICAgICAgICAgICAg
ICBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKGZvcm1hdHRpbmdTdGF0
ZS5pbmxpbmVJdGVtcygpLCBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihsYXlvdXRCb3gpKTsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LmlzSW5saW5lQm94KCkpCisgICAgICAgICAg
ICAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZElubGluZUl0ZW0oeyBsYXlvdXRCb3gsIElubGluZUl0
ZW06OlR5cGU6OklubGluZUJveEVuZCB9KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKworICAgICAgICAgICAgaWYgKGF1dG8qIG5leHRT
aWJsaW5nID0gbGF5b3V0Qm94Lm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBsYXlv
dXRRdWV1ZS5hcHBlbmQobmV4dFNpYmxpbmcpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCit9Cit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lSXRlbXNCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjliZTE0MTRkMTdi
NGYyNzA0ZWRmN2RhZDRhYjhhYWI2MjM1OTRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVy
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBMYXlvdXQgeworCisjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisj
aW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyQm94LmgiCisKK2NsYXNzIElubGluZUl0ZW1zQnVpbGRl
ciB7CitwdWJsaWM6CisgICAgSW5saW5lSXRlbXNCdWlsZGVyKGNvbnN0IENvbnRhaW5lckJveCYg
Zm9ybWF0dGluZ0NvbnRleHRSb290LCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmKTsKKyAgICB2b2lk
IGJ1aWxkKCk7CisKK3ByaXZhdGU6CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkgY29u
c3QgeyByZXR1cm4gbV9yb290OyB9CisgICAgSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0
aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdTdGF0ZTsgfQorCisgICAgY29u
c3QgQ29udGFpbmVyQm94JiBtX3Jvb3Q7CisgICAgSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBtX2Zv
cm1hdHRpbmdTdGF0ZTsKK307CisKK30KK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442826</attachid>
            <date>2021-10-29 09:52:21 -0700</date>
            <delta_ts>2021-10-29 14:09:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232487-20211029095220.patch</filename>
            <type>text/plain</type>
            <size>17282</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM1MjU2NWJhNDhlZDRi
ZTU3ZTZiOTQzNWFkZmRmNTAyYjEzMWIzYy4uYTMzNTUzN2ZhYWY3ZWU5ZDA0YWQyOTllOTRhNDYz
MWIzMDVmNWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTI5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEludHJvZHVj
ZSBJbmxpbmVJdGVtc0J1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMjQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3Rv
LgorCisgICAgICAgIFRoaXMgYnVpbGRlciBpcyBnb2luZyB0byBiZSB1c2VkIGZvciBjb25zdHJ1
Y3RpbmcgYmlkaSBjb21wYXRpYmxlIGlubGluZSBpdGVtcy4KKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb2xsZWN0Q29udGVudElmTmVlZGVkKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpJbmxpbmVJdGVtc0J1aWxkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmJ1aWxkKToK
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1
aWxkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVp
bGRlcjo6cm9vdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1z
QnVpbGRlcjo6Zm9ybWF0dGluZ1N0YXRlIGNvbnN0KToKKwogMjAyMS0xMC0yOSAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSA6LXdlYmtpdC1hbnkoKSBh
IHN5bm9ueW0gb2YgOmlzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMzJlNjI5OTJjMjg3OTVkYTUwYTU5
N2RlMmNlNTIxMDM1YzllODA3OC4uMjYxODMzZDA1YzU3YWM0MzRiZjViZDgyMWJmMDE2NDZjZTM3
MTQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE1MTgsNiArMTUxOCw3IEBAIGxheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKIGxheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuY3BwCiBsYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCiBs
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcAorbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKIGxheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3guY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNTRkMGE4ZWQwNDRhMmQy
ZGUzNmQ2OGVhYWEzYjI4MDZkOTczMjVmLi42NjE0MjNhODNjZjg3MGRjOTFmZGY1NDljYTEyZDRi
ZDBjYjA3ZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00MjUsNiArNDI1LDcgQEAKIAkJMTE5OUZBNDYyMDhFMzVBMzAwMjM1
OENDIC8qIExheW91dENvbnRhaW5lckJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTE5OUZBNDQyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRh
aW5lckJveC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTExQzMyMjdEMjZEOTU4Q0UwMDMyOEY0RCAvKiBJbmxpbmVMaW5lQm94QnVpbGRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFDMzIyN0MyNkQ5
NThDRTAwMzI4RjREIC8qIElubGluZUxpbmVCb3hCdWlsZGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTFDQjI3ODkyMDNCQTU3MDAwNEExREM5
IC8qIFJlbmRlclRyZWVCdWlsZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFDQjI3ODcyMDNCQTU3MDAwNEExREM5IC8qIFJlbmRl
clRyZWVCdWlsZGVyRnVsbFNjcmVlbi5oICovOyB9OworCQkxMUQwMzYzQzI3MkM0Q0ZEMDA5RUQ3
MEQgLyogSW5saW5lSXRlbXNCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxMUQwMzYzQjI3MkM0Q0ZEMDA5RUQ3MEQgLyogSW5saW5lSXRlbXNC
dWlsZGVyLmggKi87IH07CiAJCTExRTUxNjM4MjYxRTFBMDYwMEU2OUYyNSAvKiBXZWJYUklucHV0
U3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEx
RTUxNjM1MjYxRTFBMDUwMEU2OUYyNSAvKiBXZWJYUklucHV0U3BhY2UuaCAqLzsgfTsKIAkJMTFF
NTE2M0MyNjFFMUExNTAwRTY5RjI1IC8qIFdlYlhSR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFFNTE2M0EyNjFFMUExNDAwRTY5RjI1IC8q
IFdlYlhSR2FtZXBhZC5oICovOyB9OwogCQkxNDAwRDdBODE3MTM2RUE3MDA3N0NFMDUgLyogU2Ny
aXB0V3JhcHBhYmxlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQwMEQ3QTcxNzEzNkVBNzAwNzdDRTA1IC8qIFNjcmlwdFdyYXBwYWJsZUlu
bGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNjU4Niw2ICs2NTg3LDggQEAKIAkJMTFDNUYxMzQyMDA1MjdGOTAwMDFBRTYwIC8qIFJlbmRl
clRyZWVCdWlsZGVyTWF0aE1MLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlclRyZWVCdWlsZGVyTWF0aE1MLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTEx
Q0IyNzg2MjAzQkE1NzAwMDRBMURDOSAvKiBSZW5kZXJUcmVlQnVpbGRlckZ1bGxTY3JlZW4uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFDQjI3ODcyMDNCQTU3MDAwNEExREM5IC8qIFJl
bmRlclRyZWVCdWlsZGVyRnVsbFNjcmVlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQnVp
bGRlckZ1bGxTY3JlZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTFEMDM2Mzky
NzJDNENFNzAwOUVENzBEIC8qIElubGluZUl0ZW1zQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmxpbmVJdGVtc0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxMUQwMzYzQjI3MkM0Q0ZEMDA5RUQ3MEQgLyogSW5saW5lSXRlbXNCdWlsZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZW1zQnVpbGRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMUQxOUMyRTIzMTU5QkFFMDA4RjI0RDMgLyogVGFibGVG
b3JtYXR0aW5nR2VvbWV0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFibGVGb3JtYXR0aW5n
R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMUU1MTYzNTI2MUUx
QTA1MDBFNjlGMjUgLyogV2ViWFJJbnB1dFNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlhSSW5wdXRTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxMUU1MTYzNzI2MUUxQTA1MDBFNjlGMjUgLyogV2ViWFJJbnB1dFNwYWNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSSW5wdXRTcGFjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODQ5OCw2ICsxODUwMSw4IEBACiAJCQkJMTE1Q0ZB
N0MyMDhCOEUxMDAwMUU2OTkxIC8qIElubGluZUZvcm1hdHRpbmdTdGF0ZS5oICovLAogCQkJCTZG
N0I4Q0VDMjM2MjZFNjYwMEM5RkYxNSAvKiBJbmxpbmVJdGVtLmNwcCAqLywKIAkJCQk2RkU3Q0ZB
MDIxNzdFRUYxMDA1QjE1NzMgLyogSW5saW5lSXRlbS5oICovLAorCQkJCTExRDAzNjM5MjcyQzRD
RTcwMDlFRDcwRCAvKiBJbmxpbmVJdGVtc0J1aWxkZXIuY3BwICovLAorCQkJCTExRDAzNjNCMjcy
QzRDRkQwMDlFRDcwRCAvKiBJbmxpbmVJdGVtc0J1aWxkZXIuaCAqLywKIAkJCQk2RkFBRTcxMTI2
QTI4MTRBMDBFMDc1MDIgLyogSW5saW5lTGV2ZWxCb3guaCAqLywKIAkJCQk2RjBDRDY5MjIyOUVE
MzE5MDBDNTk5NEUgLyogSW5saW5lTGluZS5jcHAgKi8sCiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAw
QzU5OTRFIC8qIElubGluZUxpbmUuaCAqLywKQEAgLTMzMzA4LDYgKzMzMzEzLDcgQEAKIAkJCQkx
MTVDRkE3RTIwOEI4RTEwMDAxRTY5OTEgLyogSW5saW5lRm9ybWF0dGluZ1N0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxMTFGQTFDNzI2RjBGMzBGMDAzQjhGMTYgLyogSW5saW5lSW52YWxpZGF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkU3Q0ZBMjIxNzdFRUYyMDA1QjE1NzMgLyogSW5s
aW5lSXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTFEMDM2M0MyNzJDNENGRDAwOUVENzBEIC8q
IElubGluZUl0ZW1zQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBNjY0Q0MyNTIxRDRB
RjAwNzA4MURDIC8qIElubGluZUl0ZXJhdG9yQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEE2
NjRDRjI1MjFENEUyMDA3MDgxREMgLyogSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMgLyogSW5saW5lSXRlcmF0
b3JCb3hNb2Rlcm5QYXRoLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCAxMzI2MDMzODNjZjUwMTcwNzg3ODEw
OTY2MTRmOGFmOTc3MzdhNWVjLi5lNGQxMTdmNWZiZjQ1ZDNmYjdkZTZhZWIzMTg2NDc3MGUxMzAx
NmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSW5saW5lRGlzcGxheUJveC5oIgogI2lu
Y2x1ZGUgIklubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oIgogI2luY2x1ZGUgIklubGluZUZv
cm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIklubGluZUl0ZW1zQnVpbGRlci5oIgogI2luY2x1
ZGUgIklubGluZUxpbmVCb3guaCIKICNpbmNsdWRlICJJbmxpbmVMaW5lQm94QnVpbGRlci5oIgog
I2luY2x1ZGUgIklubGluZVRleHRJdGVtLmgiCkBAIC01MjIsNTEgKzUyMyw4IEBAIHZvaWQgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbGxlY3RDb250ZW50SWZOZWVkZWQoKQogICAgIGF1dG8m
IGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0ZSgpOwogICAgIGlmICghZm9y
bWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgLy8gVHJhdmVyc2UgdGhlIHRyZWUgYW5kIGNyZWF0ZSBpbmxpbmUgaXRlbXMgb3V0IG9mIGlu
bGluZSBib3hlcyBhbmQgbGVhZiBub2Rlcy4gVGhpcyBlc3NlbnRpYWxseSB0dXJucyB0aGUgdHJl
ZSBpbmxpbmUgc3RydWN0dXJlIGludG8gYSBmbGF0IG9uZS4KLSAgICAvLyA8c3Bhbj50ZXh0PHNw
YW4+PC9zcGFuPjxpbWc+PC9zcGFuPiAtPiBbSW5saW5lQm94U3RhcnRdW0lubGluZUxldmVsQm94
XVtJbmxpbmVCb3hTdGFydF1bSW5saW5lQm94RW5kXVtJbmxpbmVMZXZlbEJveF1bSW5saW5lQm94
RW5kXQotICAgIEFTU0VSVChyb290KCkuaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpOwotICAg
IExheW91dFF1ZXVlIGxheW91dFF1ZXVlOwotICAgIGxheW91dFF1ZXVlLmFwcGVuZChyb290KCku
Zmlyc3RDaGlsZCgpKTsKLSAgICB3aGlsZSAoIWxheW91dFF1ZXVlLmlzRW1wdHkoKSkgewotICAg
ICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gKmxheW91
dFF1ZXVlLmxhc3QoKTsKLSAgICAgICAgICAgIGF1dG8gaXNJbmxpbmVCb3hXaXRoSW5saW5lQ29u
dGVudCA9IGxheW91dEJveC5pc0lubGluZUJveCgpICYmICFsYXlvdXRCb3guaXNJbmxpbmVUZXh0
Qm94KCkgJiYgIWxheW91dEJveC5pc0xpbmVCcmVha0JveCgpICYmICFsYXlvdXRCb3guaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCk7Ci0gICAgICAgICAgICBpZiAoIWlzSW5saW5lQm94V2l0aElubGlu
ZUNvbnRlbnQpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAvLyBUaGlzIGlz
IHRoZSBzdGFydCBvZiBhbiBpbmxpbmUgYm94IChlLmcuIDxzcGFuPikuCi0gICAgICAgICAgICBm
b3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxheW91dEJveCwgSW5saW5lSXRlbTo6VHlw
ZTo6SW5saW5lQm94U3RhcnQgfSk7Ci0gICAgICAgICAgICBhdXRvJiBpbmxpbmVCb3hXaXRoSW5s
aW5lQ29udGVudCA9IGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KTsKLSAgICAgICAg
ICAgIGlmICghaW5saW5lQm94V2l0aElubGluZUNvbnRlbnQuaGFzQ2hpbGQoKSkKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGxheW91dFF1ZXVlLmFwcGVuZChpbmxpbmVCb3hX
aXRoSW5saW5lQ29udGVudC5maXJzdENoaWxkKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgd2hp
bGUgKCFsYXlvdXRRdWV1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIGxheW91dEJv
eCA9ICpsYXlvdXRRdWV1ZS50YWtlTGFzdCgpOwotICAgICAgICAgICAgaWYgKGxheW91dEJveC5p
c091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICAgICAgICAgIC8vIExldCdzIG5vdCBj
b25zdHJ1Y3QgSW5saW5lSXRlbXMgZm9yIG91dC1vZi1mbG93IGNvbnRlbnQgYXMgdGhleSBkb24n
dCBwYXJ0aWNpcGF0ZSBpbiB0aGUgaW5saW5lIGxheW91dC4KLSAgICAgICAgICAgICAgICAvLyBI
b3dldmVyIHRvIGJlIGFibGUgdG8gc3RhdGljIHBvc2l0aW9uaW5nIHRoZW0sIHdlIG5lZWQgdG8g
Y29tcHV0ZSB0aGVpciBhcHByb3hpbWF0ZSBwb3NpdGlvbnMuCi0gICAgICAgICAgICAgICAgZm9y
bWF0dGluZ1N0YXRlLmFkZE91dE9mRmxvd0JveChsYXlvdXRCb3gpOwotICAgICAgICAgICAgfSBl
bHNlIGlmIChpczxMaW5lQnJlYWtCb3g+KGxheW91dEJveCkpIHsKLSAgICAgICAgICAgICAgICBh
dXRvJiBsaW5lQnJlYWtCb3ggPSBkb3duY2FzdDxMaW5lQnJlYWtCb3g+KGxheW91dEJveCk7Ci0g
ICAgICAgICAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZElubGluZUl0ZW0oeyBsYXlvdXRCb3gs
IGxpbmVCcmVha0JveC5pc09wdGlvbmFsKCkgPyBJbmxpbmVJdGVtOjpUeXBlOjpXb3JkQnJlYWtP
cHBvcnR1bml0eSA6IElubGluZUl0ZW06OlR5cGU6OkhhcmRMaW5lQnJlYWsgfSk7Ci0gICAgICAg
ICAgICB9IGVsc2UgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQotICAgICAg
ICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVJdGVtKHsgbGF5b3V0Qm94LCBJbmxp
bmVJdGVtOjpUeXBlOjpGbG9hdCB9KTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5p
c0F0b21pY0lubGluZUxldmVsQm94KCkpCi0gICAgICAgICAgICAgICAgZm9ybWF0dGluZ1N0YXRl
LmFkZElubGluZUl0ZW0oeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkJveCB9KTsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0lubGluZVRleHRCb3goKSkgewotICAgICAg
ICAgICAgICAgIElubGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoZm9ybWF0
dGluZ1N0YXRlLmlubGluZUl0ZW1zKCksIGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJv
eCkpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCb3goKSkKLSAg
ICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxheW91dEJveCwg
SW5saW5lSXRlbTo6VHlwZTo6SW5saW5lQm94RW5kIH0pOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCi0gICAgICAgICAgICBpZiAoYXV0
byogbmV4dFNpYmxpbmcgPSBsYXlvdXRCb3gubmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAg
ICAgIGxheW91dFF1ZXVlLmFwcGVuZChuZXh0U2libGluZyk7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgYXV0byBpbmxpbmVJdGVt
c0J1aWxkZXIgPSBJbmxpbmVJdGVtc0J1aWxkZXIgeyByb290KCksIGZvcm1hdHRpbmdTdGF0ZSB9
OworICAgIGlubGluZUl0ZW1zQnVpbGRlci5idWlsZCgpOwogfQogCiBJbmxpbmVSZWN0IElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zdCBM
aW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmIGxpbmVDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUl0ZW1zQnVpbGRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRmZjRmMTNkZDE0MGE2NDk2ZDJh
YmQ4ODUwYmNjNWY0MWQ1ZmI5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKQEAg
LTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJJbmxpbmVJdGVtc0J1aWxkZXIuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworSW5s
aW5lSXRlbXNCdWlsZGVyOjpJbmxpbmVJdGVtc0J1aWxkZXIoY29uc3QgQ29udGFpbmVyQm94JiBm
b3JtYXR0aW5nQ29udGV4dFJvb3QsIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0
YXRlKQorICAgIDogbV9yb290KGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKKyAgICAsIG1fZm9ybWF0
dGluZ1N0YXRlKGZvcm1hdHRpbmdTdGF0ZSkKK3sKK30KKwordm9pZCBJbmxpbmVJdGVtc0J1aWxk
ZXI6OmJ1aWxkKCkKK3sKKyAgICAvLyBUcmF2ZXJzZSB0aGUgdHJlZSBhbmQgY3JlYXRlIGlubGlu
ZSBpdGVtcyBvdXQgb2YgaW5saW5lIGJveGVzIGFuZCBsZWFmIG5vZGVzLiBUaGlzIGVzc2VudGlh
bGx5IHR1cm5zIHRoZSB0cmVlIGlubGluZSBzdHJ1Y3R1cmUgaW50byBhIGZsYXQgb25lLgorICAg
IC8vIDxzcGFuPnRleHQ8c3Bhbj48L3NwYW4+PGltZz48L3NwYW4+IC0+IFtJbmxpbmVCb3hTdGFy
dF1bSW5saW5lTGV2ZWxCb3hdW0lubGluZUJveFN0YXJ0XVtJbmxpbmVCb3hFbmRdW0lubGluZUxl
dmVsQm94XVtJbmxpbmVCb3hFbmRdCisgICAgQVNTRVJUKHJvb3QoKS5oYXNJbkZsb3dPckZsb2F0
aW5nQ2hpbGQoKSk7CisgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGlu
Z1N0YXRlKCk7CisKKyAgICBWZWN0b3I8Y29uc3QgQm94Kj4gbGF5b3V0UXVldWU7CisgICAgbGF5
b3V0UXVldWUuYXBwZW5kKHJvb3QoKS5maXJzdENoaWxkKCkpOworICAgIHdoaWxlICghbGF5b3V0
UXVldWUuaXNFbXB0eSgpKSB7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBh
dXRvJiBsYXlvdXRCb3ggPSAqbGF5b3V0UXVldWUubGFzdCgpOworICAgICAgICAgICAgYXV0byBp
c0lubGluZUJveFdpdGhJbmxpbmVDb250ZW50ID0gbGF5b3V0Qm94LmlzSW5saW5lQm94KCkgJiYg
IWxheW91dEJveC5pc0lubGluZVRleHRCb3goKSAmJiAhbGF5b3V0Qm94LmlzTGluZUJyZWFrQm94
KCkgJiYgIWxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKTsKKyAgICAgICAgICAgIGlm
ICghaXNJbmxpbmVCb3hXaXRoSW5saW5lQ29udGVudCkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHN0YXJ0IG9mIGFuIGlubGluZSBib3ggKGUuZy4g
PHNwYW4+KS4KKyAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVJdGVtKHsgbGF5
b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hTdGFydCB9KTsKKyAgICAgICAgICAg
IGF1dG8mIGlubGluZUJveFdpdGhJbmxpbmVDb250ZW50ID0gZG93bmNhc3Q8Q29udGFpbmVyQm94
PihsYXlvdXRCb3gpOworICAgICAgICAgICAgaWYgKCFpbmxpbmVCb3hXaXRoSW5saW5lQ29udGVu
dC5oYXNDaGlsZCgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgbGF5b3V0
UXVldWUuYXBwZW5kKGlubGluZUJveFdpdGhJbmxpbmVDb250ZW50LmZpcnN0Q2hpbGQoKSk7Cisg
ICAgICAgIH0KKworICAgICAgICB3aGlsZSAoIWxheW91dFF1ZXVlLmlzRW1wdHkoKSkgeworICAg
ICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gKmxheW91dFF1ZXVlLnRha2VMYXN0KCk7CisgICAg
ICAgICAgICBpZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7CisgICAgICAg
ICAgICAgICAgLy8gTGV0J3Mgbm90IGNvbnN0cnVjdCBJbmxpbmVJdGVtcyBmb3Igb3V0LW9mLWZs
b3cgY29udGVudCBhcyB0aGV5IGRvbid0IHBhcnRpY2lwYXRlIGluIHRoZSBpbmxpbmUgbGF5b3V0
LgorICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIgdG8gYmUgYWJsZSB0byBzdGF0aWMgcG9zaXRp
b25pbmcgdGhlbSwgd2UgbmVlZCB0byBjb21wdXRlIHRoZWlyIGFwcHJveGltYXRlIHBvc2l0aW9u
cy4KKyAgICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkT3V0T2ZGbG93Qm94KGxheW91
dEJveCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzPExpbmVCcmVha0JveD4obGF5b3V0Qm94
KSkgeworICAgICAgICAgICAgICAgIGF1dG8mIGxpbmVCcmVha0JveCA9IGRvd25jYXN0PExpbmVC
cmVha0JveD4obGF5b3V0Qm94KTsKKyAgICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRk
SW5saW5lSXRlbSh7IGxheW91dEJveCwgbGluZUJyZWFrQm94LmlzT3B0aW9uYWwoKSA/IElubGlu
ZUl0ZW06OlR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5IDogSW5saW5lSXRlbTo6VHlwZTo6SGFy
ZExpbmVCcmVhayB9KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LmlzRmxvYXRp
bmdQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZElubGlu
ZUl0ZW0oeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkZsb2F0IH0pOworICAgICAgICAg
ICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkKKyAgICAgICAg
ICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxheW91dEJveCwgSW5saW5l
SXRlbTo6VHlwZTo6Qm94IH0pOworICAgICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzSW5s
aW5lVGV4dEJveCgpKSB7CisgICAgICAgICAgICAgICAgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFu
ZEFwcGVuZFRleHRJdGVtcyhmb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKSwgZG93bmNhc3Q8
SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxheW91
dEJveC5pc0lubGluZUJveCgpKQorICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJ
bmxpbmVJdGVtKHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hFbmQgfSk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisKKyAgICAgICAgICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IGxheW91dEJveC5uZXh0U2li
bGluZygpKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0UXVldWUuYXBwZW5kKG5leHRTaWJsaW5n
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KK30KKworfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWls
ZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTc5ZjcwYWFhNjUzOGVhMjM5MDgwMzNmODQ1NGYzYzM4ZDljZTY0
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKQorCisjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiTGF5
b3V0Q29udGFpbmVyQm94LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlv
dXQgeworCitjbGFzcyBJbmxpbmVJdGVtc0J1aWxkZXIgeworcHVibGljOgorICAgIElubGluZUl0
ZW1zQnVpbGRlcihjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgSW5s
aW5lRm9ybWF0dGluZ1N0YXRlJik7CisgICAgdm9pZCBidWlsZCgpOworCitwcml2YXRlOgorICAg
IGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdDsgfQorICAg
IElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9mb3JtYXR0aW5nU3RhdGU7IH0KKworICAgIGNvbnN0IENvbnRhaW5lckJveCYgbV9yb290Owor
ICAgIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgbV9mb3JtYXR0aW5nU3RhdGU7Cit9OworCit9Cit9
CisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>