<?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>141171</bug_id>
          
          <creation_ts>2015-02-02 14:26:42 -0800</creation_ts>
          <short_desc>VirtualRegister should really know how to dump itself</short_desc>
          <delta_ts>2015-02-02 15:33:56 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>141174</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1066221</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-02 14:26:42 -0800</bug_when>
    <thetext>Currently it dumps itself as an int, which isn&apos;t very useful.  We then end up with a lot of scattered code for dumping VirtualRegister.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066236</commentid>
    <comment_count>1</comment_count>
      <attachid>245902</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-02 14:40:41 -0800</bug_when>
    <thetext>Created attachment 245902
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066237</commentid>
    <comment_count>2</comment_count>
      <attachid>245902</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-02-02 14:41:35 -0800</bug_when>
    <thetext>Comment on attachment 245902
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066266</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-02 15:33:56 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/179503</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245902</attachid>
            <date>2015-02-02 14:40:41 -0800</date>
            <delta_ts>2015-02-02 14:41:35 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>29525</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5NTAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDE1LTAyLTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VmlydHVhbFJlZ2lzdGVyIHNob3VsZCByZWFsbHkga25vdyBob3cgdG8gZHVtcCBpdHNlbGYKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTE3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgR2l2
ZXMgVmlydHVhbFJlZ2lzdGVyIGEgZHVtcCgpIG1ldGhvZCB0aGF0IHByZXR0eS1wcmludHMgdGhl
IHZpcnR1YWwgcmVnaXN0ZXIuIFRoZSByZXN0IG9mCisgICAgICAgIHRoZSBwYXRjaCBpcyBhbGwg
YWJvdXQgdXNpbmcgdGhpcyBuZXcgcG93ZXIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpjb25zdGFudE5h
bWUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnJlZ2lzdGVyTmFtZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6Om1pc3NpbmdUaGlzT2JqZWN0TWFy
a2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6VmlydHVhbFJlZ2lzdGVyOjpkdW1wKToKKyAgICAgICAgKiBi
eXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6
IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0FyZ3VtZW50UG9zaXRpb24uaDoKKyAgICAgICAg
KEpTQzo6REZHOjpBcmd1bWVudFBvc2l0aW9uOjpkdW1wKToKKyAgICAgICAgKiBkZmcvREZHRmx1
c2hlZEF0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGbHVzaGVkQXQ6OmR1bXApOgorICAgICAg
ICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmR1bXApOgor
ICAgICAgICAqIGRmZy9ERkdQdXRMb2NhbFNpbmtpbmdQaGFzZS5jcHA6CisgICAgICAgICogZGZn
L0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBQ29udmVy
c2lvblBoYXNlOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdWYWxpZGF0ZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6VmFsaWRhdGU6OnJlcG9ydFZhbGlkYXRpb25Db250ZXh0KToKKyAgICAgICAg
KiBkZmcvREZHVmFsdWVTb3VyY2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlZhbHVlU291cmNl
OjpkdW1wKToKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6VmFyaWFibGVFdmVudDo6ZHVtcCk6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFi
bGVFdmVudDo6ZHVtcFNwaWxsSW5mbyk6CisgICAgICAgICogZnRsL0ZUTEV4aXRBcmd1bWVudEZv
ck9wZXJhbmQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRBcmd1bWVudEZvck9wZXJhbmQ6
OmR1bXApOgorICAgICAgICAqIGZ0bC9GVExFeGl0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OkV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dCk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZVNlcXVlbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZXI6OkJ5dGVjb2Rl
U2VxdWVuY2U6OkJ5dGVjb2RlU2VxdWVuY2UpOgorCiAyMDE1LTAyLTAyICBHZW9mZnJleSBHYXJl
biAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIEZhc3RNYWxsb2MgKGJtYWxsb2Mp
IGluc3RlYWQgb2YgQmxvY2tBbGxvY2F0b3IgZm9yIEdDIHBhZ2VzCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNzk0NzgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBA
QCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGJ5dGVjb2RlL1VubGlua2VkSW5zdHJ1
Y3Rpb25TdHJlYW0uY3BwCiAgICAgYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5jcHAKICAgICBieXRl
Y29kZS9WYXJpYWJsZVdhdGNocG9pbnRTZXQuY3BwCisgICAgYnl0ZWNvZGUvVmlydHVhbFJlZ2lz
dGVyLmNwcAogICAgIGJ5dGVjb2RlL1dhdGNocG9pbnQuY3BwCiAKICAgICBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oJKHJldmlzaW9uIDE3OTQ3OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTM1Myw2ICszNTMsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVc
VW5saW5rZWRJbnN0cnVjdGlvblN0cmVhbS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxieXRlY29kZVxWYWx1ZVJlY292ZXJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGJ5dGVjb2RlXFZhcmlhYmxlV2F0Y2hwb2ludFNldC5jcHAiIC8+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxieXRlY29kZVxWaXJ0dWFsUmVnaXN0ZXIuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcV2F0Y2hwb2ludC5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxieXRlY29tcGlsZXJcQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvbXBpbGVyXE5vZGVzQ29kZWdlbi5j
cHAiIC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTc5NDc4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsNyBAQAogCQkwRjFFM0E0
NzE1MzRDQkI5MDAwRjk0NTYgLyogREZHRG91YmxlRm9ybWF0U3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMUUzQTQ0MTUzNENCQUQwMDBGOTQ1
NiAvKiBERkdEb3VibGVGb3JtYXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGMUUzQTY3MTUzQTIxRTIwMDBGOTQ1NiAvKiBERkdTaWxl
bnRSZWdpc3RlclNhdmVQbGFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjFFM0E2NTE1M0EyMURGMDAwRjk0NTYgLyogREZHU2lsZW50UmVnaXN0ZXJT
YXZlUGxhbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMUZFNTFDMTkyMkEzQkMwMDY5ODdDNSAvKiBBYm9ydFJlYXNvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxRkU1MUIxOTIyQTNCQzAwNjk4
N0M1IC8qIEFib3J0UmVhc29uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMEYyMEMyNTkxQTgwMTNBQjAwREEzMjI5IC8qIFZpcnR1YWxSZWdpc3Rl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIw
QzI1ODFBODAxM0FCMDBEQTMyMjkgLyogVmlydHVhbFJlZ2lzdGVyLmNwcCAqLzsgfTsKIAkJMEYy
MUMyN0QxNEJFNzI3QTAwQURDNjRCIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjFDMjc5MTRCRTcyNzMw
MEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYyMUMyN0YxNEJFQUE4MjAwQURDNjRCIC8q
IEJ5dGVjb2RlQ29udmVudGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAvKiBCeXRlY29kZUNvbnZlbnRp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEYyMzVCRDMxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTEV4aXRBcmd1bWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIzNUJCRDE3MTc4RTFDMDA2
OTBDN0YgLyogRlRMRXhpdEFyZ3VtZW50LmNwcCAqLzsgfTsKQEAgLTE3ODIsNiArMTc4Myw3IEBA
CiAJCTBGMUUzQTUwMTUzN0MyQ0IwMDBGOTQ1NiAvKiBERkdTbG93UGF0aEdlbmVyYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTbG93UGF0aEdlbmVyYXRvci5oOyBw
YXRoID0gZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGMUUzQTY1MTUzQTIxREYwMDBGOTQ1NiAvKiBERkdTaWxlbnRSZWdpc3RlclNhdmVQ
bGFuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1NpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4uaDsgcGF0aCA9IGRmZy9ERkdTaWxlbnRSZWdpc3RlclNhdmVQbGFuLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMUZFNTFCMTkyMkEzQkMwMDY5ODdDNSAvKiBBYm9y
dFJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBYm9ydFJlYXNvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjIwQzI1ODFBODAxM0FCMDBEQTMyMjkg
LyogVmlydHVhbFJlZ2lzdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFZpcnR1YWxSZWdpc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MjFDMjc5MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVTcGVjaWFsaXphdGlvbktpbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyMUMyN0UxNEJFQUE4MDAwQURDNjRCIC8qIEJ5
dGVjb2RlQ29udmVudGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0
ZWNvZGVDb252ZW50aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIzNUJC
RDE3MTc4RTFDMDA2OTBDN0YgLyogRlRMRXhpdEFyZ3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEV4aXRBcmd1bWVudC5jcHA7IHBhdGggPSBmdGwvRlRM
RXhpdEFyZ3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMjQsNiAr
NTEyNiw3IEBACiAJCQkJMEZDQTkxMTIxOTVFNjZBMDAwNDI2NDM4IC8qIFZhcmlhYmxlV2F0Y2hw
b2ludFNldC5jcHAgKi8sCiAJCQkJMEY5MTgxQzYxODQxNUNBNTAwNTdCNjY5IC8qIFZhcmlhYmxl
V2F0Y2hwb2ludFNldC5oICovLAogCQkJCUZFNTI0OEY4MTkxNDQyRDkwMEI3RkRFNCAvKiBWYXJp
YWJsZVdhdGNocG9pbnRTZXRJbmxpbmVzLmggKi8sCisJCQkJMEYyMEMyNTgxQTgwMTNBQjAwREEz
MjI5IC8qIFZpcnR1YWxSZWdpc3Rlci5jcHAgKi8sCiAJCQkJMEY0MjZBNDYxNDYwQ0JBQjAwMTMx
RjhGIC8qIFZpcnR1YWxSZWdpc3Rlci5oICovLAogCQkJCTBGOTE5RDIyMTU4NTNDREUwMDRBNEU3
RCAvKiBXYXRjaHBvaW50LmNwcCAqLywKIAkJCQkwRjkxOUQyMzE1ODUzQ0RFMDA0QTRFN0QgLyog
V2F0Y2hwb2ludC5oICovLApAQCAtNzExOCw2ICs3MTIxLDcgQEAKIAkJCQlBN0MwQzRBRDE2ODEw
NjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlE
MTAxNTdGMzMyOTAwNEE0RTdEIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTcyOTlEOUQxN0QxMjgzNzAwNUY1RkY5IC8qIEpTU2V0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGMjBDMjU5MUE4MDEzQUIwMERBMzIyOSAvKiBWaXJ0dWFsUmVnaXN0
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5MERENkYxODJGNDk5NzAwNTg4ODA3IC8qIEpT
U2V0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkE4MzYzODkxOEQ3RDBGRTAwMDBF
QkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQy
ODA4M0ExMDdFQzA3NTAwMTNFN0IyIC8qIEpTU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNp
b24gMTc5NDc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjCiAKIHN0YXRpYyBDU3RyaW5nIGNvbnN0YW50TmFtZShpbnQg
aywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gdG9DU3RyaW5nKHZhbHVlLCAiKEBrIiwg
ayAtIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCAiKSIpOworICAgIHJldHVybiB0b0NTdHJp
bmcodmFsdWUsICIoIiwgVmlydHVhbFJlZ2lzdGVyKGspLCAiKSIpOwogfQogCiBzdGF0aWMgQ1N0
cmluZyBpZE5hbWUoaW50IGlkMCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCkBAIC0xODQsMTkg
KzE4NCwxMCBAQCBzdGF0aWMgQ1N0cmluZyBpZE5hbWUoaW50IGlkMCwgY29uc3QgSWRlCiAKIENT
dHJpbmcgQ29kZUJsb2NrOjpyZWdpc3Rlck5hbWUoaW50IHIpIGNvbnN0CiB7Ci0gICAgaWYgKHIg
PT0gbWlzc2luZ1RoaXNPYmplY3RNYXJrZXIoKSkKLSAgICAgICAgcmV0dXJuICI8bnVsbD4iOwot
CiAgICAgaWYgKGlzQ29uc3RhbnRSZWdpc3RlckluZGV4KHIpKQogICAgICAgICByZXR1cm4gY29u
c3RhbnROYW1lKHIsIGdldENvbnN0YW50KHIpKTsKIAotICAgIGlmIChvcGVyYW5kSXNBcmd1bWVu
dChyKSkgewotICAgICAgICBpZiAoIVZpcnR1YWxSZWdpc3RlcihyKS50b0FyZ3VtZW50KCkpCi0g
ICAgICAgICAgICByZXR1cm4gInRoaXMiOwotICAgICAgICByZXR1cm4gdG9DU3RyaW5nKCJhcmci
LCBWaXJ0dWFsUmVnaXN0ZXIocikudG9Bcmd1bWVudCgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
dG9DU3RyaW5nKCJsb2MiLCBWaXJ0dWFsUmVnaXN0ZXIocikudG9Mb2NhbCgpKTsKKyAgICByZXR1
cm4gdG9DU3RyaW5nKFZpcnR1YWxSZWdpc3RlcihyKSk7CiB9CiAKIHN0YXRpYyBDU3RyaW5nIHJl
Z2V4cFRvU291cmNlU3RyaW5nKFJlZ0V4cCogcmVnRXhwKQpAQCAtMzk0Niw3ICszOTM3LDcgQEAg
c3RydWN0IFZlcmlmeUNhcHR1cmVkRGVmIHsKIAogICAgICAgICBpZiAoY29kZUJsb2NrLT5jYXB0
dXJlQ291bnQoKSAmJiBjb2RlQmxvY2stPnN5bWJvbFRhYmxlKCktPmlzQ2FwdHVyZWQob3BlcmFu
ZCkpIHsKICAgICAgICAgICAgIGNvZGVCbG9jay0+YmVnaW5WYWxpZGF0aW9uRGlkRmFpbCgpOwot
ICAgICAgICAgICAgZGF0YUxvZygiICAgIEF0IGJjIyIsIGJ5dGVjb2RlT2Zmc2V0LCAiIGVuY291
bnRlcmVkIGludmFsaWQgYXNzaWdubWVudCB0byBjYXB0dXJlZCB2YXJpYWJsZSBsb2MiLCB2aXJ0
dWFsUmVnLnRvTG9jYWwoKSwgIi5cbiIpOworICAgICAgICAgICAgZGF0YUxvZygiICAgIEF0IGJj
IyIsIGJ5dGVjb2RlT2Zmc2V0LCAiIGVuY291bnRlcmVkIGludmFsaWQgYXNzaWdubWVudCB0byBj
YXB0dXJlZCB2YXJpYWJsZSAiLCB2aXJ0dWFsUmVnLCAiLlxuIik7CiAgICAgICAgICAgICBjb2Rl
QmxvY2stPmVuZFZhbGlkYXRpb25EaWRGYWlsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJ
KHJldmlzaW9uIDE3OTQ3OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtODUsOCArODUsNiBAQCBjbGFzcyBUeXBlTG9jYXRp
b247CiAKIGlubGluZSBWaXJ0dWFsUmVnaXN0ZXIgdW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVy
KFZpcnR1YWxSZWdpc3RlciBhcmd1bWVudHNSZWdpc3RlcikgeyByZXR1cm4gVmlydHVhbFJlZ2lz
dGVyKGFyZ3VtZW50c1JlZ2lzdGVyLm9mZnNldCgpICsgMSk7IH0KIAotc3RhdGljIEFMV0FZU19J
TkxJTkUgaW50IG1pc3NpbmdUaGlzT2JqZWN0TWFya2VyKCkgeyByZXR1cm4gc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQ+OjptYXgoKTsgfQotCiBlbnVtIFJlb3B0aW1pemF0aW9uTW9kZSB7IERvbnRD
b3VudFJlb3B0aW1pemF0aW9uLCBDb3VudFJlb3B0aW1pemF0aW9uIH07CiAKIGNsYXNzIENvZGVC
bG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5j
b25kaXRpb25hbEZpbmFsaXplciwgcHVibGljIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rl
ci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmly
dHVhbFJlZ2lzdGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK3ZvaWQgVmlydHVhbFJlZ2lzdGVyOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7
CisgICAgaWYgKCFpc1ZhbGlkKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCI8aW52YWxpZD4iKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZiAoaXNIZWFkZXIoKSkgeworICAg
ICAgICBvdXQucHJpbnQoImhlYWQiLCBtX3ZpcnR1YWxSZWdpc3Rlcik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgCisgICAgaWYgKGlzQ29uc3RhbnQoKSkgeworICAgICAgICBvdXQucHJp
bnQoImNvbnN0IiwgdG9Db25zdGFudEluZGV4KCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIAorICAgIGlmIChpc0FyZ3VtZW50KCkpIHsKKyAgICAgICAgaWYgKCF0b0FyZ3VtZW50KCkp
CisgICAgICAgICAgICBvdXQucHJpbnQoInRoaXMiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgb3V0LnByaW50KCJhcmciLCB0b0FyZ3VtZW50KCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIAorICAgIGlmIChpc0xvY2FsKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJsb2MiLCB0
b0xvY2FsKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5oCShyZXZp
c2lvbiAxNzk0NzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJl
Z2lzdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY5LDYgKzY5LDggQEAgcHVibGljOgogCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFZpcnR1YWxSZWdpc3RlciBvdGhlcikgY29uc3QgeyByZXR1cm4g
bV92aXJ0dWFsUmVnaXN0ZXIgPT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0ZXI7IH0KICAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgVmlydHVhbFJlZ2lzdGVyIG90aGVyKSBjb25zdCB7IHJldHVybiBt
X3ZpcnR1YWxSZWdpc3RlciAhPSBvdGhlci5tX3ZpcnR1YWxSZWdpc3RlcjsgfQorICAgIAorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBzdGF0
aWMgY29uc3QgaW50IHNfaW52YWxpZFZpcnR1YWxSZWdpc3RlciA9IDB4M2ZmZmZmZmY7CkBAIC05
NiwxMyArOTgsNCBAQCBpbmxpbmUgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlckZvCiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwogCi1uYW1lc3BhY2UgV1RGIHsKLQotaW5saW5lIHZvaWQgcHJp
bnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OlZpcnR1YWxSZWdpc3RlciB2YWx1ZSkK
LXsKLSAgICBvdXQucHJpbnQodmFsdWUub2Zmc2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
VEYKLQogI2VuZGlmIC8vIFZpcnR1YWxSZWdpc3Rlcl9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0FyZ3VtZW50UG9zaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50UG9zaXRpb24uaAkocmV2aXNpb24gMTc5NDc4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudFBvc2l0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMywxMCArMTIzLDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgaWYgKGkpCiAgICAgICAgICAgICAgICAgb3V0LnByaW50KCIgIik7CiAKLSAgICAgICAgICAg
IGlmIChvcGVyYW5kLmlzQXJndW1lbnQoKSkKLSAgICAgICAgICAgICAgICBvdXQucHJpbnQoImFy
ZyIsIG9wZXJhbmQudG9Bcmd1bWVudCgpLCAiKCIsIFZhcmlhYmxlQWNjZXNzRGF0YUR1bXAoKmdy
YXBoLCB2YXJpYWJsZSksICIpIik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
b3V0LnByaW50KCJyIiwgb3BlcmFuZC50b0xvY2FsKCksICIoIiwgVmFyaWFibGVBY2Nlc3NEYXRh
RHVtcCgqZ3JhcGgsIHZhcmlhYmxlKSwgIikiKTsKKyAgICAgICAgICAgIG91dC5wcmludChvcGVy
YW5kLCAiKCIsIFZhcmlhYmxlQWNjZXNzRGF0YUR1bXAoKmdyYXBoLCB2YXJpYWJsZSksICIpIik7
CiAgICAgICAgIH0KICAgICAgICAgb3V0LnByaW50KCJcbiIpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmx1c2hlZEF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZsdXNoZWRBdC5jcHAJKHJldmlzaW9uIDE3OTQ3OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmx1c2hlZEF0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNyArMzcsNyBAQCB2b2lkIEZsdXNoZWRBdDo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjCiAgICAgaWYgKG1fZm9ybWF0ID09IERlYWRGbHVzaCB8fCBtX2Zvcm1hdCA9PSBDb25m
bGljdGluZ0ZsdXNoKQogICAgICAgICBvdXQucHJpbnQobV9mb3JtYXQpOwogICAgIGVsc2UgaWYg
KG1fdmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSkKLSAgICAgICAgb3V0LnByaW50KCJyIiwgbV92
aXJ0dWFsUmVnaXN0ZXIsICI6IiwgbV9mb3JtYXQpOworICAgICAgICBvdXQucHJpbnQobV92aXJ0
dWFsUmVnaXN0ZXIsICI6IiwgbV9mb3JtYXQpOwogICAgIGVsc2UKICAgICAgICAgb3V0LnByaW50
KG1fZm9ybWF0KTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3Bw
CShyZXZpc2lvbiAxNzk0NzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNzYsMzUgKzI3NiwxOCBAQCB2
b2lkIEdyYXBoOjpkdW1wKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0CiAgICAgICAgIFZhcmlhYmxl
QWNjZXNzRGF0YSogdmFyaWFibGVBY2Nlc3NEYXRhID0gbm9kZS0+dHJ5R2V0VmFyaWFibGVBY2Nl
c3NEYXRhKCk7CiAgICAgICAgIGlmICh2YXJpYWJsZUFjY2Vzc0RhdGEpIHsKICAgICAgICAgICAg
IFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kID0gdmFyaWFibGVBY2Nlc3NEYXRhLT5sb2NhbCgpOwot
ICAgICAgICAgICAgaWYgKG9wZXJhbmQuaXNBcmd1bWVudCgpKQotICAgICAgICAgICAgICAgIG91
dC5wcmludChjb21tYSwgImFyZyIsIG9wZXJhbmQudG9Bcmd1bWVudCgpLCAiKCIsIFZhcmlhYmxl
QWNjZXNzRGF0YUR1bXAoKnRoaXMsIHZhcmlhYmxlQWNjZXNzRGF0YSksICIpIik7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAibG9jIiwgb3BlcmFu
ZC50b0xvY2FsKCksICIoIiwgVmFyaWFibGVBY2Nlc3NEYXRhRHVtcCgqdGhpcywgdmFyaWFibGVB
Y2Nlc3NEYXRhKSwgIikiKTsKLSAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCB2YXJpYWJsZUFjY2Vzc0RhdGEtPmxvY2FsKCksICIoIiwgVmFyaWFibGVBY2Nlc3NEYXRh
RHVtcCgqdGhpcywgdmFyaWFibGVBY2Nlc3NEYXRhKSwgIikiKTsKICAgICAgICAgICAgIG9wZXJh
bmQgPSB2YXJpYWJsZUFjY2Vzc0RhdGEtPm1hY2hpbmVMb2NhbCgpOwotICAgICAgICAgICAgaWYg
KG9wZXJhbmQuaXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG9wZXJhbmQuaXNBcmd1
bWVudCgpKQotICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJtYWNoaW5lOmFy
ZyIsIG9wZXJhbmQudG9Bcmd1bWVudCgpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgIm1hY2hpbmU6bG9jIiwgb3BlcmFuZC50b0xv
Y2FsKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9wZXJhbmQuaXNWYWxpZCgp
KQorICAgICAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgIm1hY2hpbmU6Iiwgb3BlcmFuZCk7
CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKG5vZGUtPmhhc1VubGlua2VkTG9jYWwoKSkgewot
ICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCA9IG5vZGUtPnVubGlua2VkTG9jYWwoKTsK
LSAgICAgICAgaWYgKG9wZXJhbmQuaXNBcmd1bWVudCgpKQotICAgICAgICAgICAgb3V0LnByaW50
KGNvbW1hLCAiYXJnIiwgb3BlcmFuZC50b0FyZ3VtZW50KCkpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBvdXQucHJpbnQoY29tbWEsICJsb2MiLCBvcGVyYW5kLnRvTG9jYWwoKSk7Ci0gICAg
fQorICAgIGlmIChub2RlLT5oYXNVbmxpbmtlZExvY2FsKCkpIAorICAgICAgICBvdXQucHJpbnQo
Y29tbWEsIG5vZGUtPnVubGlua2VkTG9jYWwoKSk7CiAgICAgaWYgKG5vZGUtPmhhc1VubGlua2Vk
TWFjaGluZUxvY2FsKCkpIHsKICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQgPSBub2Rl
LT51bmxpbmtlZE1hY2hpbmVMb2NhbCgpOwotICAgICAgICBpZiAob3BlcmFuZC5pc1ZhbGlkKCkp
IHsKLSAgICAgICAgICAgIGlmIChvcGVyYW5kLmlzQXJndW1lbnQoKSkKLSAgICAgICAgICAgICAg
ICBvdXQucHJpbnQoY29tbWEsICJtYWNoaW5lOmFyZyIsIG9wZXJhbmQudG9Bcmd1bWVudCgpKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJtYWNo
aW5lOmxvYyIsIG9wZXJhbmQudG9Mb2NhbCgpKTsKLSAgICAgICAgfQorICAgICAgICBpZiAob3Bl
cmFuZC5pc1ZhbGlkKCkpCisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJtYWNoaW5lOiIs
IG9wZXJhbmQpOwogICAgIH0KICAgICBpZiAobm9kZS0+aGFzQ29uc3RhbnRCdWZmZXIoKSkgewog
ICAgICAgICBvdXQucHJpbnQoY29tbWEpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQdXRMb2NhbFNpbmtpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQdXRMb2NhbFNpbmtpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDE3OTQ3
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHV0TG9jYWxTaW5raW5nUGhhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNyArMTY4LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKG9wZXJhbmQuaXNIZWFkZXIoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgciIsIG9wZXJhbmQsICIg
aXMgbGl2ZSBhdCAiLCBub2RlLCAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCIgICAgIiwgb3BlcmFuZCwgIiBpcyBsaXZlIGF0ICIsIG5vZGUsICJcbiIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgbGl2ZS5vcGVyYW5kKG9wZXJhbmQpID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgCkBAIC0zMTMsNyArMzEzLDcg
QEAgcHVibGljOgogICAgICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDog
YmxvY2stPnN1Y2Nlc3NvcnMoKSkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gZGVmZXJyZWQuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDb25zaWRlcmlu
ZyByIiwgZGVmZXJyZWQub3BlcmFuZEZvckluZGV4KGkpLCAiIGF0ICIsIHBvaW50ZXJEdW1wKGJs
b2NrKSwgIi0+IiwgcG9pbnRlckR1bXAoc3VjY2Vzc29yKSwgIjogIiwgZGVmZXJyZWRbaV0sICIg
YW5kICIsIGRlZmVycmVkQXRIZWFkW3N1Y2Nlc3Nvcl1baV0sICIgbWVyZ2VzIHRvICIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNvbnNpZGVyaW5nICIsIFZpcnR1YWxS
ZWdpc3RlcihkZWZlcnJlZC5vcGVyYW5kRm9ySW5kZXgoaSkpLCAiIGF0ICIsIHBvaW50ZXJEdW1w
KGJsb2NrKSwgIi0+IiwgcG9pbnRlckR1bXAoc3VjY2Vzc29yKSwgIjogIiwgZGVmZXJyZWRbaV0s
ICIgYW5kICIsIGRlZmVycmVkQXRIZWFkW3N1Y2Nlc3Nvcl1baV0sICIgbWVyZ2VzIHRvICIpOwog
CiAgICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZEF0SGVhZFtzdWNjZXNzb3JdW2ldID0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZEF0SGVhZFtzdWNjZXNzb3JdW2ld
Lm1lcmdlKGRlZmVycmVkW2ldKTsKQEAgLTM5NSw3ICszOTUsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCi0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkFkZGluZyBQaGkgZm9yIHIiLCBvcGVy
YW5kLCAiIGF0ICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwgIlxuIik7CisgICAgICAgICAgICAgICAg
ICAgIGRhdGFMb2coIkFkZGluZyBQaGkgZm9yICIsIG9wZXJhbmQsICIgYXQgIiwgcG9pbnRlckR1
bXAoYmxvY2spLCAiXG4iKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBOb2Rl
KiBwaGlOb2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNIZWFwVG9wLCBQaGksIE5vZGVPcmlnaW4o
KSk7CiAgICAgICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBudWxscHRyLCB2YXJpYWJs
ZURlZmVycmFsLmhhc1ZhcmlhYmxlKCkpOwpAQCAtNDI5LDcgKzQyOSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0KDAsIHBoaURlZi0+dmFsdWUoKSk7CiAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAg
ICAgICAgICAgIGRhdGFMb2coIiAgIE1hcHBpbmcgciIsIG9wZXJhbmQsICIgdG8gIiwgcGhpRGVm
LT52YWx1ZSgpLCAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgTWFwcGlu
ZyAiLCBvcGVyYW5kLCAiIHRvICIsIHBoaURlZi0+dmFsdWUoKSwgIlxuIik7CiAgICAgICAgICAg
ICAgICAgbWFwcGluZy5vcGVyYW5kKG9wZXJhbmQpID0gcGhpRGVmLT52YWx1ZSgpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgCkBAIC00NDUsNyArNDQ1LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCA9IHZhcmlhYmxlLT5sb2NhbCgp
OwogICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZC5vcGVyYW5kKG9wZXJhbmQpID0gVmFyaWFi
bGVEZWZlcnJhbCh2YXJpYWJsZSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgTWFwcGluZyByIiwgb3BlcmFuZCwg
IiB0byAiLCBub2RlLT5jaGlsZDEoKS5ub2RlKCksICIgYXQgIiwgbm9kZSwgIlxuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICBNYXBwaW5nICIsIG9wZXJhbmQsICIgdG8g
Iiwgbm9kZS0+Y2hpbGQxKCkubm9kZSgpLCAiIGF0ICIsIG5vZGUsICJcbiIpOwogICAgICAgICAg
ICAgICAgICAgICBtYXBwaW5nLm9wZXJhbmQob3BlcmFuZCkgPSBub2RlLT5jaGlsZDEoKS5ub2Rl
KCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTQ3
Myw3ICs0NzMsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gR290dGEgaW5zZXJ0IGEgUHV0TG9jYWwuCiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
KCJJbnNlcnRpbmcgYSBQdXRMb2NhbCBmb3IgciIsIG9wZXJhbmQsICIgYXQgIiwgbm9kZSwgIlxu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiSW5zZXJ0aW5nIGEgUHV0
TG9jYWwgZm9yICIsIG9wZXJhbmQsICIgYXQgIiwgbm9kZSwgIlxuIik7CiAKICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vZGUqIGluY29taW5nID0gbWFwcGluZy5vcGVyYW5kKG9wZXJhbmQpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBpbmNvbWlu
Zyk7CkBAIC01MDEsNyArNTAxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBTU0FD
YWxjdWxhdG9yOjpWYXJpYWJsZSogdmFyaWFibGUgPSBwaGlEZWYtPnZhcmlhYmxlKCk7CiAgICAg
ICAgICAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kID0gaW5kZXhUb09wZXJhbmRb
dmFyaWFibGUtPmluZGV4KCldOwogICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNyZWF0aW5nIFVwc2lsb24gZm9yIHIiLCBv
cGVyYW5kLCAiIGF0ICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwgIi0+IiwgcG9pbnRlckR1bXAoc3Vj
Y2Vzc29yQmxvY2spLCAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNy
ZWF0aW5nIFVwc2lsb24gZm9yICIsIG9wZXJhbmQsICIgYXQgIiwgcG9pbnRlckR1bXAoYmxvY2sp
LCAiLT4iLCBwb2ludGVyRHVtcChzdWNjZXNzb3JCbG9jayksICJcbiIpOwogICAgICAgICAgICAg
ICAgICAgICBWYXJpYWJsZURlZmVycmFsIHZhcmlhYmxlRGVmZXJyYWwgPQogICAgICAgICAgICAg
ICAgICAgICAgICAgZGVmZXJyZWRBdEhlYWRbc3VjY2Vzc29yQmxvY2tdLm9wZXJhbmQob3BlcmFu
ZCk7CiAgICAgICAgICAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbnVsbHB0ciwgdmFy
aWFibGVEZWZlcnJhbC5oYXNWYXJpYWJsZSgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE3OTQ3
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBQ29udmVyc2lvblBoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDcgKzIzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICAgICAgICAgIEFTU0VSVCghbm9kZS0+cmVwbGFjZW1lbnQpOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YUxvZygiTWFwcGluZzogciIsIHZhbHVlRm9yT3BlcmFuZC5vcGVyYW5kRm9y
SW5kZXgoaSksICIgLT4gIiwgbm9kZSwgIlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJNYXBwaW5nOiAiLCBWaXJ0dWFsUmVnaXN0ZXIodmFsdWVGb3JPcGVyYW5kLm9wZXJh
bmRGb3JJbmRleChpKSksICIgLT4gIiwgbm9kZSwgIlxuIik7CiAgICAgICAgICAgICAgICAgICAg
IHZhbHVlRm9yT3BlcmFuZFtpXSA9IG5vZGU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQpAQCAtMjg3LDcgKzI4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgIGlmICghdmFyaWFibGUtPmlzQ2FwdHVyZWQoKSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiTWFwcGluZzogciIsIHZhcmlhYmxlLT5sb2NhbCgpLCAiIC0+ICIsIG5vZGUt
PmNoaWxkMSgpLm5vZGUoKSwgIlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YUxvZygiTWFwcGluZzogIiwgdmFyaWFibGUtPmxvY2FsKCksICIgLT4gIiwgbm9kZS0+Y2hpbGQx
KCkubm9kZSgpLCAiXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRm9yT3BlcmFu
ZC5vcGVyYW5kKHZhcmlhYmxlLT5sb2NhbCgpKSA9IG5vZGUtPmNoaWxkMSgpLm5vZGUoKTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM0NSw3
ICszNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0
YSogdmFyaWFibGUgPSBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKCF2YXJpYWJsZS0+aXNDYXB0dXJlZCgpKTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJNYXBwaW5n
OiByIiwgdmFyaWFibGUtPmxvY2FsKCksICIgLT4gIiwgbm9kZSwgIlxuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJNYXBwaW5nOiAiLCB2YXJpYWJsZS0+bG9jYWwoKSwgIiAt
PiAiLCBub2RlLCAiXG4iKTsKICAgICAgICAgICAgICAgICAgICAgdmFsdWVGb3JPcGVyYW5kLm9w
ZXJhbmQodmFyaWFibGUtPmxvY2FsKCkpID0gbm9kZTsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDE3OTQ3OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDIsMjMgKzU0MiwyMyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmVwb3J0VmFsaWRhdGlvbkNvbnRleHQoVmlydHVhbFJlZ2lz
dGVyIGxvY2FsLCBCYXNpY0Jsb2NrKiBibG9jaykKICAgICB7CiAgICAgICAgIGlmICghYmxvY2sp
IHsKLSAgICAgICAgICAgIGRhdGFMb2coInIiLCBsb2NhbCwgIiBpbiBudWxsIEJsb2NrICIpOwor
ICAgICAgICAgICAgZGF0YUxvZyhsb2NhbCwgIiBpbiBudWxsIEJsb2NrICIpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZGF0YUxvZygiciIsIGxvY2FsLCAiIGlu
IEJsb2NrICIsICpibG9jayk7CisgICAgICAgIGRhdGFMb2cobG9jYWwsICIgaW4gQmxvY2sgIiwg
KmJsb2NrKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCByZXBvcnRWYWxpZGF0aW9uQ29udGV4dCgK
ICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIGxvY2FsLCBCYXNpY0Jsb2NrKiBzb3VyY2VCbG9jaywg
QmFzaWNCbG9jayogZGVzdGluYXRpb25CbG9jaykKICAgICB7Ci0gICAgICAgIGRhdGFMb2coInIi
LCBsb2NhbCwgIiBpbiBCbG9jayAiLCAqc291cmNlQmxvY2ssICIgLT4gIiwgKmRlc3RpbmF0aW9u
QmxvY2spOworICAgICAgICBkYXRhTG9nKGxvY2FsLCAiIGluIEJsb2NrICIsICpzb3VyY2VCbG9j
aywgIiAtPiAiLCAqZGVzdGluYXRpb25CbG9jayk7CiAgICAgfQogICAgIAogICAgIHZvaWQgcmVw
b3J0VmFsaWRhdGlvbkNvbnRleHQoCiAgICAgICAgIFZpcnR1YWxSZWdpc3RlciBsb2NhbCwgQmFz
aWNCbG9jayogc291cmNlQmxvY2ssIE5vZGUqIHByZXZOb2RlKQogICAgIHsKLSAgICAgICAgZGF0
YUxvZyhwcmV2Tm9kZSwgIiBmb3IgciIsIGxvY2FsLCAiIGluIEJsb2NrICIsICpzb3VyY2VCbG9j
ayk7CisgICAgICAgIGRhdGFMb2cocHJldk5vZGUsICIgZm9yICIsIGxvY2FsLCAiIGluIEJsb2Nr
ICIsICpzb3VyY2VCbG9jayk7CiAgICAgfQogICAgIAogICAgIHZvaWQgcmVwb3J0VmFsaWRhdGlv
bkNvbnRleHQoTm9kZSogbm9kZSwgQmFzaWNCbG9jayogYmxvY2spCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmNwcAkocmV2aXNpb24gMTc5NDc4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWx1ZVNvdXJjZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDIyICs0MiwyMiBAQCB2b2lkIFZhbHVlU291cmNlOjpkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpCiAgICAgICAgIG91dC5wcmludCgiSXNEZWFkIik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVmFsdWVJbkpTU3RhY2s6Ci0gICAgICAgIG91dC5wcmludCgiSlM6ciIsIHZpcnR1
YWxSZWdpc3RlcigpKTsKKyAgICAgICAgb3V0LnByaW50KCJKUzoiLCB2aXJ0dWFsUmVnaXN0ZXIo
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW50MzJJbkpTU3RhY2s6Ci0gICAgICAgIG91
dC5wcmludCgiSW50MzI6ciIsIHZpcnR1YWxSZWdpc3RlcigpKTsKKyAgICAgICAgb3V0LnByaW50
KCJJbnQzMjoiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SW50NTJJbkpTU3RhY2s6Ci0gICAgICAgIG91dC5wcmludCgiSW50NTI6ciIsIHZpcnR1YWxSZWdp
c3RlcigpKTsKKyAgICAgICAgb3V0LnByaW50KCJJbnQ1MjoiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2VsbEluSlNTdGFjazoKLSAgICAgICAgb3V0LnBy
aW50KCJDZWxsOnIiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CisgICAgICAgIG91dC5wcmludCgiQ2Vs
bDoiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9vbGVh
bkluSlNTdGFjazoKLSAgICAgICAgb3V0LnByaW50KCJCb29sOnIiLCB2aXJ0dWFsUmVnaXN0ZXIo
KSk7CisgICAgICAgIG91dC5wcmludCgiQm9vbDoiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRG91YmxlSW5KU1N0YWNrOgotICAgICAgICBvdXQucHJpbnQo
IkRvdWJsZTpyIiwgdmlydHVhbFJlZ2lzdGVyKCkpOworICAgICAgICBvdXQucHJpbnQoIkRvdWJs
ZToiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXJndW1l
bnRzU291cmNlOgogICAgICAgICBvdXQucHJpbnQoIkFyZ3VtZW50cyIpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnQuY3BwCShyZXZpc2lvbiAx
Nzk0NzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMSArNTYsMTEgQEAgdm9pZCBWYXJpYWJsZUV2ZW50Ojpk
dW1wKFByaW50U3RyZWFtJiBvdQogICAgICAgICBvdXQucHJpbnQoIkRlYXRoKCIsIGlkKCksICIp
Iik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTW92SGludEV2ZW50OgotICAgICAgICBvdXQu
cHJpbnQoIk1vdkhpbnQoIiwgaWQoKSwgIiwgciIsIGJ5dGVjb2RlUmVnaXN0ZXIoKSwgIikiKTsK
KyAgICAgICAgb3V0LnByaW50KCJNb3ZIaW50KCIsIGlkKCksICIsICIsIGJ5dGVjb2RlUmVnaXN0
ZXIoKSwgIikiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTZXRMb2NhbEV2ZW50OgogICAg
ICAgICBvdXQucHJpbnQoCi0gICAgICAgICAgICAiU2V0TG9jYWwobWFjaGluZTpyIiwgbWFjaGlu
ZVJlZ2lzdGVyKCksICIgLT4gYnl0ZWNvZGU6ciIsIGJ5dGVjb2RlUmVnaXN0ZXIoKSwKKyAgICAg
ICAgICAgICJTZXRMb2NhbChtYWNoaW5lOiIsIG1hY2hpbmVSZWdpc3RlcigpLCAiIC0+IGJ5dGVj
b2RlOiIsIGJ5dGVjb2RlUmVnaXN0ZXIoKSwKICAgICAgICAgICAgICIsICIsIGRhdGFGb3JtYXRU
b1N0cmluZyhkYXRhRm9ybWF0KCkpLCAiKSIpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgpAQCAtODUsNyArODUsNyBAQCB2b2lkIFZhcmlhYmxlRXZlbnQ6OmR1bXBGaWxsSW5mbyhjb25z
dCBjCiAKIHZvaWQgVmFyaWFibGVFdmVudDo6ZHVtcFNwaWxsSW5mbyhjb25zdCBjaGFyKiBuYW1l
LCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAgIG91dC5wcmludChuYW1lLCAiKCIsIGlk
KCksICIsIHIiLCBzcGlsbFJlZ2lzdGVyKCksICIsICIsIGRhdGFGb3JtYXRUb1N0cmluZyhkYXRh
Rm9ybWF0KCkpLCAiKSIpOworICAgIG91dC5wcmludChuYW1lLCAiKCIsIGlkKCksICIsICIsIHNw
aWxsUmVnaXN0ZXIoKSwgIiwgIiwgZGF0YUZvcm1hdFRvU3RyaW5nKGRhdGFGb3JtYXQoKSksICIp
Iik7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMRXhpdEFyZ3VtZW50Rm9yT3BlcmFuZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0QXJndW1lbnRGb3JPcGVyYW5kLmNwcAko
cmV2aXNpb24gMTc5NDc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0QXJn
dW1lbnRGb3JPcGVyYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHZvaWQgRXhpdEFyZ3VtZW50Rm9yT3BlcmFu
ZDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAgIG91dC5wcmludChtX2V4aXRB
cmd1bWVudCwgIiBmb3IgciIsIG1fb3BlcmFuZCk7CisgICAgb3V0LnByaW50KG1fZXhpdEFyZ3Vt
ZW50LCAiIGZvciAiLCBtX29wZXJhbmQpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRM
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCShyZXZp
c2lvbiAxNzk0NzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDE2ICs1NywxNiBAQCB2b2lkIEV4aXRWYWx1ZTo6ZHVt
cEluQ29udGV4dChQcmludFN0cmVhCiAgICAgICAgIG91dC5wcmludCgiQ29uc3RhbnQoIiwgaW5D
b250ZXh0KGNvbnN0YW50KCksIGNvbnRleHQpLCAiKSIpOwogICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBFeGl0VmFsdWVJbkpTU3RhY2s6Ci0gICAgICAgIG91dC5wcmludCgiSW5KU1N0YWNrOnIi
LCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CisgICAgICAgIG91dC5wcmludCgiSW5KU1N0YWNrOiIsIHZp
cnR1YWxSZWdpc3RlcigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRXhpdFZhbHVlSW5K
U1N0YWNrQXNJbnQzMjoKLSAgICAgICAgb3V0LnByaW50KCJJbkpTU3RhY2tBc0ludDMyOnIiLCB2
aXJ0dWFsUmVnaXN0ZXIoKSk7CisgICAgICAgIG91dC5wcmludCgiSW5KU1N0YWNrQXNJbnQzMjoi
LCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEV4aXRWYWx1
ZUluSlNTdGFja0FzSW50NTI6Ci0gICAgICAgIG91dC5wcmludCgiSW5KU1N0YWNrQXNJbnQ1Mjpy
IiwgdmlydHVhbFJlZ2lzdGVyKCkpOworICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFja0FzSW50
NTI6IiwgdmlydHVhbFJlZ2lzdGVyKCkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBFeGl0
VmFsdWVJbkpTU3RhY2tBc0RvdWJsZToKLSAgICAgICAgb3V0LnByaW50KCJJbkpTU3RhY2tBc0Rv
dWJsZTpyIiwgdmlydHVhbFJlZ2lzdGVyKCkpOworICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFj
a0FzRG91YmxlOiIsIHZpcnR1YWxSZWdpc3RlcigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgRXhpdFZhbHVlQXJndW1lbnRzT2JqZWN0VGhhdFdhc05vdENyZWF0ZWQ6CiAgICAgICAgIG91
dC5wcmludCgiQXJndW1lbnRzT2JqZWN0VGhhdFdhc05vdENyZWF0ZWQiKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVj
b2RlU2VxdWVuY2UuY3BwCShyZXZpc2lvbiAxNzk0NzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNyArNDQsNyBAQCBCeXRlY29kZVNlcXVlbmNlOjpCeXRlY29kZVNlcXVlbmNlKENvZGVC
CiAgICAgICAgIGlmICghZGVzY3JpcHRpb24ubGVuZ3RoKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgb3V0LnJlc2V0KCk7Ci0gICAgICAgIG91dC5wcmludCgiYXJnIiwgaSwgIiAo
ciIsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGkpLm9mZnNldCgpLCAiKTogIiwgZGVzY3Jp
cHRpb24pOworICAgICAgICBvdXQucHJpbnQoImFyZyIsIGksICI6ICIsIGRlc2NyaXB0aW9uKTsK
ICAgICAgICAgbV9oZWFkZXIuYXBwZW5kKG91dC50b0NTdHJpbmcoKSk7CiAgICAgfQogICAgIAo=
</data>
<flag name="review"
          id="270824"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>