<?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>92226</bug_id>
          
          <creation_ts>2012-07-25 00:50:11 -0700</creation_ts>
          <short_desc>Initialize QualifiedName&apos;s strings from the read only data segment</short_desc>
          <delta_ts>2012-07-25 18:05:37 -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>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>677751</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-25 00:50:11 -0700</bug_when>
    <thetext>Initialize QualifiedName&apos;s strings from the read only data segment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677763</commentid>
    <comment_count>1</comment_count>
      <attachid>154285</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-25 01:06:16 -0700</bug_when>
    <thetext>Created attachment 154285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677773</commentid>
    <comment_count>2</comment_count>
      <attachid>154285</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-25 01:19:55 -0700</bug_when>
    <thetext>Comment on attachment 154285
Patch

Attachment 154285 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13343162</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677774</commentid>
    <comment_count>3</comment_count>
      <attachid>154285</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-25 01:21:25 -0700</bug_when>
    <thetext>Comment on attachment 154285
Patch

Attachment 154285 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13343163</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677777</commentid>
    <comment_count>4</comment_count>
      <attachid>154285</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-25 01:24:59 -0700</bug_when>
    <thetext>Comment on attachment 154285
Patch

Attachment 154285 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13348151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677778</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-25 01:25:58 -0700</bug_when>
    <thetext>First draft for comments.

I don&apos;t have time now but I plan to make the following changes:
-move the two createQualifiedName() in a separate file in the WebCore namespace
-share them between all XYZNames::init()


Possibly in a separate patch:
To kill the code bloat, modify the code to initialize everything in a loop instead of doing it flat.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677798</commentid>
    <comment_count>6</comment_count>
      <attachid>154285</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 01:51:14 -0700</bug_when>
    <thetext>Comment on attachment 154285
Patch

Attachment 154285 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13347163</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678512</commentid>
    <comment_count>7</comment_count>
      <attachid>154455</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-25 15:04:02 -0700</bug_when>
    <thetext>Created attachment 154455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678635</commentid>
    <comment_count>8</comment_count>
      <attachid>154455</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-07-25 16:59:57 -0700</bug_when>
    <thetext>Comment on attachment 154455
Patch

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

&gt; Source/WTF/wtf/text/AtomicString.cpp:118
&gt; +struct HashTranslatorCharBuffer {

For hash translators we treat HashTranslator as a suffix, so this should be CharBufferHashTranslator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678690</commentid>
    <comment_count>9</comment_count>
      <attachid>154455</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-25 18:05:34 -0700</bug_when>
    <thetext>Comment on attachment 154455
Patch

Clearing flags on attachment: 154455

Committed r123689: &lt;http://trac.webkit.org/changeset/123689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678691</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-25 18:05:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154285</attachid>
            <date>2012-07-25 01:06:16 -0700</date>
            <delta_ts>2012-07-25 15:03:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92226-20120725010606.patch</filename>
            <type>text/plain</type>
            <size>15720</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgzZDA5YzI4ZDlhNzg1ODI3ZjIwZWE4
ZDk3ZTY2YzliNzlkMTFiYmEuLmJmMmE0ZWM4YmQ4M2YzMTU5Yjk4NzNkZTEwNTJiZDE0Yjc1NmI2
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDctMjUgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbGl6ZSBRdWFsaWZpZWROYW1lJ3Mg
c3RyaW5ncyBmcm9tIHRoZSByZWFkIG9ubHkgZGF0YSBzZWdtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjIyNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb25zdHJ1Y3RvcnMgZm9yIFN0cmlu
Z0ltcGwgYW5kIEF0b21pY1N0cmluZyB0byBiZSBhYmxlIHRvIGNyZWF0ZQorICAgICAgICB0aGUg
c3RyaW5ncyBmcm9tIHRoZSBsaXRlcmFsIGluIHJlYWQgb25seSBtZW1vcnkuCisKKyAgICAgICAg
KiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwOgorICAgICAgICAoSGFzaFRyYW5zbGF0b3JDaGFy
QnVmZmVyKToKKyAgICAgICAgKFdURjo6TENoYXJCdWZmZXJGcm9tTGl0ZXJhbERhdGFUcmFuc2xh
dG9yOjpoYXNoKToKKyAgICAgICAgKExDaGFyQnVmZmVyRnJvbUxpdGVyYWxEYXRhVHJhbnNsYXRv
cik6CisgICAgICAgIChXVEY6OkxDaGFyQnVmZmVyRnJvbUxpdGVyYWxEYXRhVHJhbnNsYXRvcjo6
ZXF1YWwpOgorICAgICAgICAoV1RGOjpMQ2hhckJ1ZmZlckZyb21MaXRlcmFsRGF0YVRyYW5zbGF0
b3I6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXVEY6OkF0b21pY1N0cmluZzo6YWRkRnJvbUxpdGVy
YWxEYXRhKToKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuaDoKKyAgICAgICAgKFdU
Rjo6QXRvbWljU3RyaW5nOjpBdG9taWNTdHJpbmcpOgorICAgICAgICAoQXRvbWljU3RyaW5nKToK
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5n
SW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwu
aDoKKyAgICAgICAgKFdURik6CisgICAgICAgIChTdHJpbmdJbXBsKToKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwpOgorCiAyMDEyLTA3LTIzICBSb2IgQnVpcyAg
PHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIE1lcmdlIGNyZWF0ZVRocmVh
ZEludGVybmFsIGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4NjkyMDNjNjkxNDlmNzZh
NDk3ZTY5YTkyYjRjZTJhMmYxOGVhYjUuLjVlNmE1YzcyOTg5Y2ZhMDg1ZGJlODNjZjE0M2E5ZDhl
ODk2ZDRkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wNy0yNSAgQmVuamFt
aW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBJbml0aWFsaXplIFF1
YWxpZmllZE5hbWUncyBzdHJpbmdzIGZyb20gdGhlIHJlYWQgb25seSBkYXRhIHNlZ21lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRoZSBp
bml0aWFsaXphdGlvbiBvZiBzdGF0aWMgUXVhbGlmaWVkTmFtZSB0byBpbml0aWFsaXplIHRoZSBB
dG9taWNTdHJpbmcKKyAgICAgICAgd2l0aCB0aGUgZGF0YSBmcm9tIHRoZSByZWFkIG9ubHkgbWVt
b3J5LgorCisgICAgICAgIE92ZXJhbGwsIEhUTUxOYW1lczo6aW5pdCgpIGdldHMgMTAlIGZhc3Rl
ci4KKworICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWUpOgorICAgICAgICAqIGRvbS9RdWFsaWZpZWRO
YW1lLmg6CisgICAgICAgIChRdWFsaWZpZWROYW1lKToKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2Vs
ZXNzIGNvbnN0cnVjdG9yIHRha2luZyBhIGNoYXIqIGFuZCBnZXQgcmlkIG9mIHRoZSBpbml0KCkg
ZnVuY3Rpb24uCisgICAgICAgIFRoZSBBdG9taWNTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBuYW1l
IHNob3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgY2FsbGVyIG9mIFF1YWxpZmllZE5hbWUuCisK
KyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50UXVhbGlmaWVkTmFt
ZU1ha2VyKToKKyAgICAgICAgKHByaW50U2hvcnRRdWFsaWZpZWROYW1lTWFrZXIpOgorICAgICAg
ICBCZWNhdXNlIHRoZSBpbml0KCkgY29kZSBpcyByZWxhdGl2ZWx5IGxhcmdlIGFuZCBpcyBvbmx5
IGV4ZWN1dGVkIG9uY2UsIGl0IGlzIGltcG9ydGFudCB0bworICAgICAgICBrZWVwIHRoZSBBdG9t
aWNTdHJpbmcgY29uc3RydWN0aW9uIHNlcGFyYXRlLiBUaGUgZnVuY3Rpb24gY3JlYXRlUXVhbGlm
aWVkTmFtZSgpIHdhcyBhZGRlZAorICAgICAgICB0byBpbXByb3ZlIHRoZSBjYWNoZSB1c2UuCisg
ICAgICAgIFRoZSB2YXJpYW50IHByaW50U2hvcnRRdWFsaWZpZWROYW1lTWFrZXIgbGV0IHVzIHJl
ZHVjZSB0aGUgY29kZSBvbmUgbW9yZSBpbnN0cnVjdGlvbiBwZXIKKyAgICAgICAgY2FsbC4KKwor
ICAgICAgICAocHJpbnROYW1lc0NwcEZpbGUpOgorICAgICAgICAocHJpbnREZWZpbml0aW9ucyk6
CisKIDIwMTItMDctMjMgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEEgRm9jdXNTY29wZSBmb3IgYSBkaXN0cmlidXRlZCBub2RlIHNob3VsZCBub3QgYmUgaXRz
IFRyZWVTY29wZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5n
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAppbmRleCA2NmJkNzg1
MWEwMDUyZGM0ZTE5NmMxYmI0MGE1ZDNhODEzOTVlNjBlLi42NDc3YzQ1YjgyZTQ3MGEwOWM2OGJi
MjFmYzMyNDljMDNmYzhiNmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21p
Y1N0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCkBA
IC0xMTQsMTEgKzExNCwxMyBAQCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IEF0b21pY1N0cmluZzo6
YWRkKGNvbnN0IExDaGFyKiBjKQogICAgIHJldHVybiBhZGRUb1N0cmluZ1RhYmxlPGNvbnN0IExD
aGFyKiwgQ1N0cmluZ1RyYW5zbGF0b3I+KGMpOwogfQogCi1zdHJ1Y3QgVUNoYXJCdWZmZXIgewot
ICAgIGNvbnN0IFVDaGFyKiBzOwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KK3N0
cnVjdCBIYXNoVHJhbnNsYXRvckNoYXJCdWZmZXIgeworICAgIGNvbnN0IENoYXJhY3RlclR5cGUq
IHM7CiAgICAgdW5zaWduZWQgbGVuZ3RoOwogfTsKIAordHlwZWRlZiBIYXNoVHJhbnNsYXRvckNo
YXJCdWZmZXI8VUNoYXI+IFVDaGFyQnVmZmVyOwogc3RydWN0IFVDaGFyQnVmZmVyVHJhbnNsYXRv
ciB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVUNoYXJCdWZmZXImIGJ1ZikKICAg
ICB7CkBAIC0yOTUsNiArMjk3LDM1IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gQXRvbWljU3Ry
aW5nOjphZGQoU3RyaW5nSW1wbCogYmFzZVN0cmluZywgdW5zaWduZWQgc3RhcnQsCiAgICAgcmV0
dXJuIGFkZFRvU3RyaW5nVGFibGU8U3Vic3RyaW5nTG9jYXRpb24sIFN1YnN0cmluZ1RyYW5zbGF0
b3I+KGJ1ZmZlcik7CiB9CiAKK3R5cGVkZWYgSGFzaFRyYW5zbGF0b3JDaGFyQnVmZmVyPExDaGFy
PiBMQ2hhckJ1ZmZlcjsKK3N0cnVjdCBMQ2hhckJ1ZmZlckZyb21MaXRlcmFsRGF0YVRyYW5zbGF0
b3IgeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IExDaGFyQnVmZmVyJiBidWYpCisg
ICAgeworICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaChidWYucywgYnVm
Lmxlbmd0aCk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZXF1YWwoU3RyaW5nSW1wbCogY29u
c3QmIHN0ciwgY29uc3QgTENoYXJCdWZmZXImIGJ1ZikKKyAgICB7CisgICAgICAgIHJldHVybiBX
VEY6OmVxdWFsKHN0ciwgYnVmLnMsIGJ1Zi5sZW5ndGgpOworICAgIH0KKworICAgIHN0YXRpYyB2
b2lkIHRyYW5zbGF0ZShTdHJpbmdJbXBsKiYgbG9jYXRpb24sIGNvbnN0IExDaGFyQnVmZmVyJiBi
dWYsIHVuc2lnbmVkIGhhc2gpCisgICAgeworICAgICAgICBsb2NhdGlvbiA9IFN0cmluZ0ltcGw6
OmNyZWF0ZUZyb21MaXRlcmFsKGJ1Zi5zLCBidWYubGVuZ3RoKS5sZWFrUmVmKCk7CisgICAgICAg
IGxvY2F0aW9uLT5zZXRIYXNoKGhhc2gpOworICAgICAgICBsb2NhdGlvbi0+c2V0SXNBdG9taWMo
dHJ1ZSk7CisgICAgfQorfTsKKworUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBBdG9taWNTdHJpbmc6
OmFkZEZyb21MaXRlcmFsRGF0YShjb25zdCBMQ2hhciAqY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoKQoreworICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKKyAgICBBU1NFUlQobGVuZ3RoKTsKKwor
ICAgIExDaGFyQnVmZmVyIGJ1ZmZlciA9IHsgY2hhcmFjdGVycywgbGVuZ3RoIH07CisgICAgcmV0
dXJuIGFkZFRvU3RyaW5nVGFibGU8TENoYXJCdWZmZXIsIExDaGFyQnVmZmVyRnJvbUxpdGVyYWxE
YXRhVHJhbnNsYXRvcj4oYnVmZmVyKTsKK30KKwogUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBBdG9t
aWNTdHJpbmc6OmFkZFNsb3dDYXNlKFN0cmluZ0ltcGwqIHIpCiB7CiAgICAgaWYgKCFyLT5sZW5n
dGgoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oCmluZGV4IDczYTg1NTk5NzdjYWNlMjJi
ZTQxYzlkYzg5ZmY5NzQxMTVkMDllZWUuLjZkNGU5NTdjYWI5NzU4NDM1ZDY3YmUzNTQyOGVhODFh
YmViNDgyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaApAQCAtNTEsNiArNTEsMjAg
QEAgcHVibGljOgogICAgIEFUT01JQ1NUUklOR19DT05WRVJTSU9OIEF0b21pY1N0cmluZyhjb25z
dCBTdHJpbmcmIHMpIDogbV9zdHJpbmcoYWRkKHMuaW1wbCgpKSkgeyB9CiAgICAgQXRvbWljU3Ry
aW5nKFN0cmluZ0ltcGwqIGJhc2VTdHJpbmcsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5n
dGgpIDogbV9zdHJpbmcoYWRkKGJhc2VTdHJpbmcsIHN0YXJ0LCBsZW5ndGgpKSB7IH0KIAorICAg
IGVudW0gQ29uc3RydWN0RnJvbUxpdGVyYWxUYWcgeyBDb25zdHJ1Y3RGcm9tTGl0ZXJhbCB9Owor
ICAgIEF0b21pY1N0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgs
IENvbnN0cnVjdEZyb21MaXRlcmFsVGFnKQorICAgICAgICA6IG1fc3RyaW5nKGFkZEZyb21MaXRl
cmFsRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0
aCkpCisgICAgeworICAgIH0KKyAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGg+CisgICAgQUxX
QVlTX0lOTElORSBBdG9taWNTdHJpbmcoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2xlbmd0aF0s
IENvbnN0cnVjdEZyb21MaXRlcmFsVGFnKQorICAgICAgICA6IG1fc3RyaW5nKGFkZEZyb21MaXRl
cmFsRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0
aCAtIDEpKQorICAgIHsKKyAgICAgICAgQ09NUElMRV9BU1NFUlQobGVuZ3RoLCBBdG9taWNTdHJp
bmdGcm9tTGl0ZXJhbERhdGFOb3ROdWxsKTsKKyAgICAgICAgQ09NUElMRV9BU1NFUlQobGVuZ3Ro
ID4gMSwgQXRvbWljU3RyaW5nRnJvbUxpdGVyYWxEYXRhTm90RW1wdHkpOworICAgICAgICBDT01Q
SUxFX0FTU0VSVCgobGVuZ3RoIC0gMSA8PSAoKHVuc2lnbmVkKH4wKSAtIHNpemVvZihTdHJpbmdJ
bXBsKSkgLyBzaXplb2YoTENoYXIpKSksIEF0b21pY1N0cmluZ0Zyb21MaXRlcmFsRGF0YUNhbm5v
dE92ZXJmbG93KTsKKyAgICB9CisKICNpZiBDT01QSUxFUl9TVVBQT1JUUyhDWFhfUlZBTFVFX1JF
RkVSRU5DRVMpCiAgICAgLy8gV2UgaGF2ZSB0byBkZWNsYXJlIHRoZSBjb3B5IGNvbnN0cnVjdG9y
IGFuZCBjb3B5IGFzc2lnbm1lbnQgb3BlcmF0b3IgYXMgd2VsbCwgb3RoZXJ3aXNlCiAgICAgLy8g
dGhleSdsbCBiZSBpbXBsaWNpdGx5IGRlbGV0ZWQgYnkgYWRkaW5nIHRoZSBtb3ZlIGNvbnN0cnVj
dG9yIGFuZCBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3IuCkBAIC0xNTYsNiArMTcwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICByZXR1cm4gYWRkU2xvd0Nhc2Uo
cik7CiAgICAgfQorICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0cjxTdHJp
bmdJbXBsPiBhZGRGcm9tTGl0ZXJhbERhdGEoY29uc3QgTENoYXIgKmNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPFN0
cmluZ0ltcGw+IGFkZFNsb3dDYXNlKFN0cmluZ0ltcGwqKTsKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIEF0b21pY1N0cmluZyBmcm9tVVRGOEludGVybmFsKGNvbnN0IGNoYXIqLCBjb25z
dCBjaGFyKik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggYzQzNTljMTEz
Mzg5ODRmZWRhMjVmODcwZjM3NmM4N2YwOWFjMDk1OC4uODgzNjlhODUwZGNlNWExMmIwNmRjZDQw
NWViZTg2NTU4NGRkZmU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC04Miw2
ICs4MiwxMiBAQCBTdHJpbmdJbXBsOjp+U3RyaW5nSW1wbCgpCiAgICAgbV9zdWJzdHJpbmdCdWZm
ZXItPmRlcmVmKCk7CiB9CiAKK1Bhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3Jl
YXRlRnJvbUxpdGVyYWwoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkK
K3sKKyAgICBBU1NFUlQoY2hhcmFjdGVyc0FyZUFsbEFTQ0lJPExDaGFyPihjaGFyYWN0ZXJzLCBs
ZW5ndGgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cmluZ0ltcGwoY2hhcmFjdGVycywg
bGVuZ3RoKSk7Cit9CisKIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRl
VW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSkKIHsKICAgICBpZiAo
IWxlbmd0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRleCBkMDA2MGM0NzAyNjQ2YmY4
OGQ4YzhiNWUwNDQ2OWI5ZjIzMjQ2OWU4Li5hZjRjZTdhNTRiYWRmODhhYjY5ODQyZmViN2NmODg2
YzgyOTlhNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtNTgsNiArNTgsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKIHN0cnVjdCBDU3RyaW5nVHJhbnNsYXRvcjsKIHN0cnVjdCBIYXNoQW5k
Q2hhcmFjdGVyc1RyYW5zbGF0b3I7CiBzdHJ1Y3QgSGFzaEFuZFVURjhDaGFyYWN0ZXJzVHJhbnNs
YXRvcjsKK3N0cnVjdCBMQ2hhckJ1ZmZlckZyb21MaXRlcmFsRGF0YVRyYW5zbGF0b3I7CiBzdHJ1
Y3QgU3Vic3RyaW5nVHJhbnNsYXRvcjsKIHN0cnVjdCBVQ2hhckJ1ZmZlclRyYW5zbGF0b3I7CiAK
QEAgLTc1LDYgKzc2LDcgQEAgY2xhc3MgU3RyaW5nSW1wbCB7CiAgICAgZnJpZW5kIHN0cnVjdCBX
VEY6OkNTdHJpbmdUcmFuc2xhdG9yOwogICAgIGZyaWVuZCBzdHJ1Y3QgV1RGOjpIYXNoQW5kQ2hh
cmFjdGVyc1RyYW5zbGF0b3I7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6Okhhc2hBbmRVVEY4Q2hh
cmFjdGVyc1RyYW5zbGF0b3I7CisgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkxDaGFyQnVmZmVyRnJv
bUxpdGVyYWxEYXRhVHJhbnNsYXRvcjsKICAgICBmcmllbmQgc3RydWN0IFdURjo6U3Vic3RyaW5n
VHJhbnNsYXRvcjsKICAgICBmcmllbmQgc3RydWN0IFdURjo6VUNoYXJCdWZmZXJUcmFuc2xhdG9y
OwogICAgIGZyaWVuZCBjbGFzcyBBdG9taWNTdHJpbmdJbXBsOwpAQCAtMjgyLDYgKzI4NCwxNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyaW5nSW1wbChyZXAtPm1f
ZGF0YTE2ICsgb2Zmc2V0LCBsZW5ndGgsIG93bmVyUmVwKSk7CiAgICAgfQogCisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRl
cmFsKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHRlbXBs
YXRlPHVuc2lnbmVkIGxlbmd0aD4KKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVts
ZW5ndGhdKQorICAgIHsKKyAgICAgICAgQ09NUElMRV9BU1NFUlQobGVuZ3RoLCBTdHJpbmdJbXBs
RnJvbUxpdGVyYWxEYXRhTm90TnVsbCk7CisgICAgICAgIENPTVBJTEVfQVNTRVJUKGxlbmd0aCA+
IDEsIFN0cmluZ0ltcGxGcm9tTGl0ZXJhbERhdGFOb3RFbXB0eSk7CisgICAgICAgIENPTVBJTEVf
QVNTRVJUKChsZW5ndGggLSAxIDw9ICgodW5zaWduZWQofjApIC0gc2l6ZW9mKFN0cmluZ0ltcGwp
KSAvIHNpemVvZihMQ2hhcikpKSwgU3RyaW5nSW1wbEZyb21MaXRlcmFsRGF0YUNhbm5vdE92ZXJm
bG93KTsKKworICAgICAgICByZXR1cm4gY3JlYXRlRnJvbUxpdGVyYWwocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGggLSAxKTsKKyAgICB9CisKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gY3JlYXRlVW5p
bml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSk7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6
ZWQodW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBzdGF0aWMgQUxXQVlTX0lOTElORSBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHRyeUNyZWF0
ZVVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoLCBUKiYgb3V0cHV0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1F1YWxpZmllZE5hbWUuY3BwCmluZGV4IGUwODU1MDcwYTdjYjMyNTM0Y2NiZjhhYjhkMDUyNjY3
ZGEzMTlmMTUuLjQzNTE1MzI3NzYzNGE0OTRjMTRkMWI0OTMyNGQ0NjJkODIwOTMwOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgc3RydWN0IFFO
YW1lQ29tcG9uZW50c1RyYW5zbGF0b3IgewogCiBzdGF0aWMgUU5hbWVTZXQqIGdOYW1lQ2FjaGU7
CiAKLXZvaWQgUXVhbGlmaWVkTmFtZTo6aW5pdChjb25zdCBBdG9taWNTdHJpbmcmIHAsIGNvbnN0
IEF0b21pY1N0cmluZyYgbCwgY29uc3QgQXRvbWljU3RyaW5nJiBuKQorUXVhbGlmaWVkTmFtZTo6
UXVhbGlmaWVkTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIHAsIGNvbnN0IEF0b21pY1N0cmluZyYg
bCwgY29uc3QgQXRvbWljU3RyaW5nJiBuKQogewogICAgIGlmICghZ05hbWVDYWNoZSkKICAgICAg
ICAgZ05hbWVDYWNoZSA9IG5ldyBRTmFtZVNldDsKQEAgLTYyLDE2ICs2Miw2IEBAIHZvaWQgUXVh
bGlmaWVkTmFtZTo6aW5pdChjb25zdCBBdG9taWNTdHJpbmcmIHAsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbCwgY29uc3QgQXRvCiAgICAgICAgIG1faW1wbC0+cmVmKCk7CiB9CiAKLVF1YWxpZmllZE5h
bWU6OlF1YWxpZmllZE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBwLCBjb25zdCBBdG9taWNTdHJp
bmcmIGwsIGNvbnN0IEF0b21pY1N0cmluZyYgbikKLXsKLSAgICBpbml0KHAsIGwsIG4pOwotfQot
Ci1RdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcCwgY29u
c3QgY2hhciogbCwgY29uc3QgQXRvbWljU3RyaW5nJiBuKQotewotICAgIGluaXQocCwgQXRvbWlj
U3RyaW5nKGwpLCBuKTsKLX0KLQogUXVhbGlmaWVkTmFtZTo6flF1YWxpZmllZE5hbWUoKQogewog
ICAgIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaAppbmRleCAwZmM2NTE3MjE4
NzcwYzdjN2Y2NzNhMWU4ZmNiMDk5NzI1ODlhZDQ2Li4xNmNlYjBjZjZlNzA2OWI0YjBjNDI4ZDMz
YTVlNjc1MTZhMDBhZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVk
TmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKQEAgLTY5LDcg
KzY5LDYgQEAgcHVibGljOgogICAgIH07CiAKICAgICBRdWFsaWZpZWROYW1lKGNvbnN0IEF0b21p
Y1N0cmluZyYgcHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lc3BhY2VVUkkpOwotICAgIFF1YWxpZmllZE5hbWUoY29uc3QgQXRvbWlj
U3RyaW5nJiBwcmVmaXgsIGNvbnN0IGNoYXIqIGxvY2FsTmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VVUkkpOwogICAgIFF1YWxpZmllZE5hbWUoV1RGOjpIYXNoVGFibGVEZWxldGVk
VmFsdWVUeXBlKSA6IG1faW1wbChoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkgeyB9CiAgICAgYm9v
bCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbCA9PSBoYXNo
VGFibGVEZWxldGVkVmFsdWUoKTsgfQogICAgIH5RdWFsaWZpZWROYW1lKCk7CkBAIC0xMDgsNyAr
MTA3LDYgQEAgcHVibGljOgogICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2lt
cGwpOwogICAgIH0KIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0KGNvbnN0IEF0b21pY1N0cmluZyYg
cHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VVUkkpOwogICAgIHZvaWQgcmVmKCkgY29uc3QgeyBtX2ltcGwtPnJlZigpOyB9
CiAgICAgdm9pZCBkZXJlZigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDZlMGEw
NjFjODZmOTMzNjMxN2Y5MDU1ZGE2NDE3YmUwMTM4YmJjNGEuLjUyYjRkOGY5MWYxYmRiYWE1MTM4
NjU2N2JmYWEzMDhkMjY4NTkzODYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtl
X25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0xMTYs
NyArMTE2LDcgQEAgaWYgKGxlbmd0aCgkZm9udE5hbWVzSW4pKSB7CiAgICAgcHJpbnRDcHBIZWFk
KCRGLCAiQ1NTIiwgJGZhbWlseU5hbWVzRmlsZUJhc2UsICJXVEYiKTsKIAogICAgIHdoaWxlICgg
bXkgKCRuYW1lLCAkaWRlbnRpZmllcikgPSBlYWNoICVwYXJhbWV0ZXJzICkgewotICAgICAgICBw
cmludCBGICJERUZJTkVfR0xPQkFMKEF0b21pY1N0cmluZywgJG5hbWUsIFwiJGlkZW50aWZpZXJc
IilcbiI7CisgICAgICAgIHByaW50IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAkbmFt
ZSlcbiI7CiAgICAgfQogCiAgICAgcHJpbnRJbml0KCRGLCAwKTsKQEAgLTYxMSw2ICs2MTEsMjgg
QEAgc3ViIHByaW50TmFtZXNIZWFkZXJGaWxlCiAgICAgY2xvc2UgRjsKIH0KIAorc3ViIHByaW50
UXVhbGlmaWVkTmFtZU1ha2VyCit7CisgICAgbXkgJEYgPSBAXzsKKyAgICBwcmludCBGICJcbgor
TkVWRVJfSU5MSU5FIHN0YXRpYyB2b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0
QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFtZUxlbmd0aCwgY29uc3QgQXRv
bWljU3RyaW5nKiBuYW1lTmFtZXNwYWNlKQoreworICAgIEF0b21pY1N0cmluZyBhdG9taWNOYW1l
KG5hbWUsIG5hbWVMZW5ndGgsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGFyZ2V0QWRkcmVzcykpIFF1YWxpZmll
ZE5hbWUobnVsbEF0b20sIGF0b21pY05hbWUsICpuYW1lTmFtZXNwYWNlKTsKK31cbiI7Cit9CisK
K3N1YiBwcmludFNob3J0UXVhbGlmaWVkTmFtZU1ha2VyCit7CisgICAgbXkgJEYgPSBAXzsKKyAg
ICBwcmludCBGICJcbgorTkVWRVJfSU5MSU5FIHN0YXRpYyB2b2lkIGNyZWF0ZVF1YWxpZmllZE5h
bWUodm9pZCogdGFyZ2V0QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFtZUxl
bmd0aCkKK3sKKyAgICBBdG9taWNTdHJpbmcgYXRvbWljTmFtZShuYW1lLCBuYW1lTGVuZ3RoLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBuZXcgKHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KHRhcmdldEFkZHJlc3MpKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBhdG9t
aWNOYW1lLCBudWxsQXRvbSk7Cit9XG4iOworfQorCiBzdWIgcHJpbnROYW1lc0NwcEZpbGUKIHsK
ICAgICBteSAkY3BwUGF0aCA9IHNoaWZ0OwpAQCAtNjIyLDEyICs2NDQsMTIgQEAgc3ViIHByaW50
TmFtZXNDcHBGaWxlCiAgICAgCiAgICAgbXkgJGxvd2VyTmFtZXNwYWNlID0gbGMoJHBhcmFtZXRl
cnN7bmFtZXNwYWNlUHJlZml4fSk7CiAKLSAgICBwcmludCBGICJERUZJTkVfR0xPQkFMKEF0b21p
Y1N0cmluZywgJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkksIFwiJHBhcmFtZXRlcnN7bmFt
ZXNwYWNlVVJJfVwiKVxuXG4iOworICAgIHByaW50IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3Ry
aW5nLCAke2xvd2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVSSSlcblxuIjsKIAogICAgIGlmIChrZXlz
ICVhbGxUYWdzKSB7CiAgICAgICAgIHByaW50IEYgIi8vIFRhZ3NcbiI7CiAgICAgICAgIGZvciBt
eSAkbmFtZSAoc29ydCBrZXlzICVhbGxUYWdzKSB7Ci0gICAgICAgICAgICBwcmludCBGICJERUZJ
TkVfR0xPQkFMKFF1YWxpZmllZE5hbWUsICIsICRuYW1lLCAiVGFnLCBudWxsQXRvbSwgXCIkbmFt
ZVwiLCAke2xvd2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVSSSlcbiI7CisgICAgICAgICAgICBwcmlu
dCBGICJERUZJTkVfR0xPQkFMKFF1YWxpZmllZE5hbWUsICIsICRuYW1lLCAiVGFnKVxuIjsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgcHJpbnQgRiAiXG5cbldlYkNvcmU6OlF1YWxpZmll
ZE5hbWUqKiBnZXQkcGFyYW1ldGVyc3tuYW1lc3BhY2V9VGFncyhzaXplX3QqIHNpemUpXG4iOwpA
QCAtNjQ0LDcgKzY2Niw3IEBAIHN1YiBwcmludE5hbWVzQ3BwRmlsZQogICAgIGlmIChrZXlzICVh
bGxBdHRycykgewogICAgICAgICBwcmludCBGICJcbi8vIEF0dHJpYnV0ZXNcbiI7CiAgICAgICAg
IGZvciBteSAkbmFtZSAoc29ydCBrZXlzICVhbGxBdHRycykgewotICAgICAgICAgICAgcHJpbnQg
RiAiREVGSU5FX0dMT0JBTChRdWFsaWZpZWROYW1lLCAiLCAkbmFtZSwgIkF0dHIsIG51bGxBdG9t
LCBcIiRuYW1lXCIsICR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJKVxuIjsKKyAgICAgICAg
ICAgIHByaW50IEYgIkRFRklORV9HTE9CQUwoUXVhbGlmaWVkTmFtZSwgIiwgJG5hbWUsICJBdHRy
KVxuIjsKICAgICAgICAgfQogICAgICAgICBwcmludCBGICJcblxuV2ViQ29yZTo6UXVhbGlmaWVk
TmFtZSoqIGdldCRwYXJhbWV0ZXJze25hbWVzcGFjZX1BdHRycyhzaXplX3QqIHNpemUpXG4iOwog
ICAgICAgICBwcmludCBGICJ7XG4gICAgc3RhdGljIFdlYkNvcmU6OlF1YWxpZmllZE5hbWUqICRw
YXJhbWV0ZXJze25hbWVzcGFjZX1BdHRyW10gPSB7XG4iOwpAQCAtNjU2LDEwICs2NzgsMTMgQEAg
c3ViIHByaW50TmFtZXNDcHBGaWxlCiAgICAgICAgIHByaW50IEYgIiAgICByZXR1cm4gJHBhcmFt
ZXRlcnN7bmFtZXNwYWNlfUF0dHI7XG4iOwogICAgICAgICBwcmludCBGICJ9XG4iOwogICAgIH0K
LQorICAgIHByaW50UXVhbGlmaWVkTmFtZU1ha2VyKCRGKTsKKyAgICBpZiAoJHBhcmFtZXRlcnN7
dGFnc051bGxOYW1lc3BhY2V9IHx8ICRwYXJhbWV0ZXJze2F0dHJzTnVsbE5hbWVzcGFjZX0pIHsK
KyAgICAgICAgcHJpbnRTaG9ydFF1YWxpZmllZE5hbWVNYWtlcigkRik7CisgICAgfQogICAgIHBy
aW50SW5pdCgkRiwgMCk7Ci0gICAgCi0gICAgcHJpbnQoRiAiICAgIEF0b21pY1N0cmluZyAke2xv
d2VyTmFtZXNwYWNlfU5TKFwiJHBhcmFtZXRlcnN7bmFtZXNwYWNlVVJJfVwiKTtcblxuIik7CisK
KyAgICBwcmludChGICIgICAgQXRvbWljU3RyaW5nICR7bG93ZXJOYW1lc3BhY2V9TlMoXCIkcGFy
YW1ldGVyc3tuYW1lc3BhY2VVUkl9XCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpO1xuXG4iKTsKIAogICAgIHByaW50KEYgIiAgICAvLyBOYW1lc3BhY2VcbiIpOwogICAgIHBy
aW50KEYgIiAgICBuZXcgKCh2b2lkKikmJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpIEF0
b21pY1N0cmluZygke2xvd2VyTmFtZXNwYWNlfU5TKTtcblxuIik7CkBAIC03NjksNyArNzk0LDEz
IEBAIHN1YiBwcmludERlZmluaXRpb25zCiAgICAgICAgICAgICAkcmVhbE5hbWUgPSAkbmFtZTsK
ICAgICAgICAgICAgICRyZWFsTmFtZSA9fiBzL18vLS9nOwogICAgICAgICB9Ci0gICAgICAgIHBy
aW50IEYgIiAgICBuZXcgKCh2b2lkKikmJG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfSkgUXVhbGlm
aWVkTmFtZShudWxsQXRvbSwgXCIkcmVhbE5hbWVcIiwgJG5hbWVzcGFjZVVSSSk7XG4iOworCisg
ICAgICAgICMgVG8gZ2VuZXJhdGUgbGVzcyBjb2RlIGluIGluaXQoKSwgdGhlIGNvbW1vbiBjYXNl
IG9mIG51bGxBdG9tIGZvciB0aGUgbmFtZXNwYWNlLCB3ZSBjYWxsIGNyZWF0ZVF1YWxpZmllZE5h
bWUoKSB3aXRob3V0IHBhc3NpbmcgJG5hbWVzcGFjZVVSSS4KKyAgICAgICAgaWYgKCRuYW1lc3Bh
Y2VVUkkgZXEgIm51bGxBdG9tIikgeworICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1
YWxpZmllZE5hbWUoKHZvaWQqKSYkbmFtZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCBcIiRyZWFsTmFt
ZVwiLCAiLCBsZW5ndGggJHJlYWxOYW1lICwiKTtcbiI7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBwcmludCBGICIgICAgY3JlYXRlUXVhbGlmaWVkTmFtZSgodm9pZCopJiRuYW1lIiwi
JHtzaG9ydENhbWVsVHlwZX0sIFwiJHJlYWxOYW1lXCIsICIsIGxlbmd0aCAkcmVhbE5hbWUgLCIs
ICYkbmFtZXNwYWNlVVJJKTtcbiI7CisgICAgICAgIH0KICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154455</attachid>
            <date>2012-07-25 15:04:02 -0700</date>
            <delta_ts>2012-07-25 18:05:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92226-20120725150352.patch</filename>
            <type>text/plain</type>
            <size>15540</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgzZDA5YzI4ZDlhNzg1ODI3ZjIwZWE4
ZDk3ZTY2YzliNzlkMTFiYmEuLmJmMmE0ZWM4YmQ4M2YzMTU5Yjk4NzNkZTEwNTJiZDE0Yjc1NmI2
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDctMjUgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbGl6ZSBRdWFsaWZpZWROYW1lJ3Mg
c3RyaW5ncyBmcm9tIHRoZSByZWFkIG9ubHkgZGF0YSBzZWdtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjIyNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb25zdHJ1Y3RvcnMgZm9yIFN0cmlu
Z0ltcGwgYW5kIEF0b21pY1N0cmluZyB0byBiZSBhYmxlIHRvIGNyZWF0ZQorICAgICAgICB0aGUg
c3RyaW5ncyBmcm9tIHRoZSBsaXRlcmFsIGluIHJlYWQgb25seSBtZW1vcnkuCisKKyAgICAgICAg
KiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwOgorICAgICAgICAoSGFzaFRyYW5zbGF0b3JDaGFy
QnVmZmVyKToKKyAgICAgICAgKFdURjo6TENoYXJCdWZmZXJGcm9tTGl0ZXJhbERhdGFUcmFuc2xh
dG9yOjpoYXNoKToKKyAgICAgICAgKExDaGFyQnVmZmVyRnJvbUxpdGVyYWxEYXRhVHJhbnNsYXRv
cik6CisgICAgICAgIChXVEY6OkxDaGFyQnVmZmVyRnJvbUxpdGVyYWxEYXRhVHJhbnNsYXRvcjo6
ZXF1YWwpOgorICAgICAgICAoV1RGOjpMQ2hhckJ1ZmZlckZyb21MaXRlcmFsRGF0YVRyYW5zbGF0
b3I6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXVEY6OkF0b21pY1N0cmluZzo6YWRkRnJvbUxpdGVy
YWxEYXRhKToKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuaDoKKyAgICAgICAgKFdU
Rjo6QXRvbWljU3RyaW5nOjpBdG9taWNTdHJpbmcpOgorICAgICAgICAoQXRvbWljU3RyaW5nKToK
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5n
SW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwu
aDoKKyAgICAgICAgKFdURik6CisgICAgICAgIChTdHJpbmdJbXBsKToKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwpOgorCiAyMDEyLTA3LTIzICBSb2IgQnVpcyAg
PHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIE1lcmdlIGNyZWF0ZVRocmVh
ZEludGVybmFsIGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4NjkyMDNjNjkxNDlmNzZh
NDk3ZTY5YTkyYjRjZTJhMmYxOGVhYjUuLjczOTVjOGM5ZDk1MDZlODRmNjM4YzdmMzk2Yzg4OWU0
MzFlNmEzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNy0yNSAgQmVuamFt
aW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBJbml0aWFsaXplIFF1
YWxpZmllZE5hbWUncyBzdHJpbmdzIGZyb20gdGhlIHJlYWQgb25seSBkYXRhIHNlZ21lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRoZSBp
bml0aWFsaXphdGlvbiBvZiBzdGF0aWMgUXVhbGlmaWVkTmFtZSB0byBpbml0aWFsaXplIHRoZSBB
dG9taWNTdHJpbmcKKyAgICAgICAgd2l0aCB0aGUgZGF0YSBmcm9tIHRoZSByZWFkIG9ubHkgbWVt
b3J5LgorCisgICAgICAgIE92ZXJhbGwsIEhUTUxOYW1lczo6aW5pdCgpIGdldHMgMTAlIGZhc3Rl
ci4KKworICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWUpOgorICAgICAgICAqIGRvbS9RdWFsaWZpZWRO
YW1lLmg6CisgICAgICAgIChRdWFsaWZpZWROYW1lKToKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2Vs
ZXNzIGNvbnN0cnVjdG9yIHRha2luZyBhIGNoYXIqIGFuZCBnZXQgcmlkIG9mIHRoZSBpbml0KCkg
ZnVuY3Rpb24uCisgICAgICAgIFRoZSBBdG9taWNTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBuYW1l
IHNob3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgY2FsbGVyIG9mIFF1YWxpZmllZE5hbWUuCisK
KyAgICAgICAgQmVjYXVzZSB0aGUgaW5pdCgpIGNvZGUgaXMgcmVsYXRpdmVseSBsYXJnZSBhbmQg
aXMgb25seSBleGVjdXRlZCBvbmNlLCBpdCBpcyBpbXBvcnRhbnQgdG8KKyAgICAgICAga2VlcCB0
aGUgQXRvbWljU3RyaW5nIGNvbnN0cnVjdGlvbiBzZXBhcmF0ZS4gVGhlIGZ1bmN0aW9uIGNyZWF0
ZVF1YWxpZmllZE5hbWUoKSB3YXMgYWRkZWQKKyAgICAgICAgdG8gaW1wcm92ZSB0aGUgY2FjaGUg
dXNlLiBUaGUgc2hvcnQgdmVyc2lvbiBsZXQgdXMgcmVkdWNlIHRoZSBjb2RlIG9uZSBtb3JlIGlu
c3RydWN0aW9uIHBlcgorICAgICAgICBjYWxsLgorCisgICAgICAgICogZG9tL21ha2VfbmFtZXMu
cGw6CisgICAgICAgIChwcmludFF1YWxpZmllZE5hbWVNYWtlcik6CisgICAgICAgIChwcmludFNo
b3J0UXVhbGlmaWVkTmFtZU1ha2VyKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAg
ICAgICAgKHByaW50RGVmaW5pdGlvbnMpOgorCiAyMDEyLTA3LTIzICBIYXlhdG8gSXRvICA8aGF5
YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBIEZvY3VzU2NvcGUgZm9yIGEgZGlzdHJpYnV0
ZWQgbm9kZSBzaG91bGQgbm90IGJlIGl0cyBUcmVlU2NvcGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21p
Y1N0cmluZy5jcHAKaW5kZXggNjZiZDc4NTFhMDA1MmRjNGUxOTZjMWJiNDBhNWQzYTgxMzk1ZTYw
ZS4uNjQ3N2M0NWI4MmU0NzBhMDljNjhiYjIxZmMzMjQ5YzAzZmM4YjZiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQXRvbWljU3RyaW5nLmNwcApAQCAtMTE0LDExICsxMTQsMTMgQEAgUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBBdG9taWNTdHJpbmc6OmFkZChjb25zdCBMQ2hhciogYykKICAgICByZXR1cm4g
YWRkVG9TdHJpbmdUYWJsZTxjb25zdCBMQ2hhciosIENTdHJpbmdUcmFuc2xhdG9yPihjKTsKIH0K
IAotc3RydWN0IFVDaGFyQnVmZmVyIHsKLSAgICBjb25zdCBVQ2hhciogczsKK3RlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+CitzdHJ1Y3QgSGFzaFRyYW5zbGF0b3JDaGFyQnVmZmVyIHsK
KyAgICBjb25zdCBDaGFyYWN0ZXJUeXBlKiBzOwogICAgIHVuc2lnbmVkIGxlbmd0aDsKIH07CiAK
K3R5cGVkZWYgSGFzaFRyYW5zbGF0b3JDaGFyQnVmZmVyPFVDaGFyPiBVQ2hhckJ1ZmZlcjsKIHN0
cnVjdCBVQ2hhckJ1ZmZlclRyYW5zbGF0b3IgewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNv
bnN0IFVDaGFyQnVmZmVyJiBidWYpCiAgICAgewpAQCAtMjk1LDYgKzI5NywzNSBAQCBQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+IEF0b21pY1N0cmluZzo6YWRkKFN0cmluZ0ltcGwqIGJhc2VTdHJpbmcs
IHVuc2lnbmVkIHN0YXJ0LAogICAgIHJldHVybiBhZGRUb1N0cmluZ1RhYmxlPFN1YnN0cmluZ0xv
Y2F0aW9uLCBTdWJzdHJpbmdUcmFuc2xhdG9yPihidWZmZXIpOwogfQogCit0eXBlZGVmIEhhc2hU
cmFuc2xhdG9yQ2hhckJ1ZmZlcjxMQ2hhcj4gTENoYXJCdWZmZXI7CitzdHJ1Y3QgTENoYXJCdWZm
ZXJGcm9tTGl0ZXJhbERhdGFUcmFuc2xhdG9yIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChj
b25zdCBMQ2hhckJ1ZmZlciYgYnVmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0hhc2hl
cjo6Y29tcHV0ZUhhc2goYnVmLnMsIGJ1Zi5sZW5ndGgpOworICAgIH0KKworICAgIHN0YXRpYyBi
b29sIGVxdWFsKFN0cmluZ0ltcGwqIGNvbnN0JiBzdHIsIGNvbnN0IExDaGFyQnVmZmVyJiBidWYp
CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjplcXVhbChzdHIsIGJ1Zi5zLCBidWYubGVuZ3Ro
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGUoU3RyaW5nSW1wbComIGxvY2F0
aW9uLCBjb25zdCBMQ2hhckJ1ZmZlciYgYnVmLCB1bnNpZ25lZCBoYXNoKQorICAgIHsKKyAgICAg
ICAgbG9jYXRpb24gPSBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChidWYucywgYnVmLmxl
bmd0aCkubGVha1JlZigpOworICAgICAgICBsb2NhdGlvbi0+c2V0SGFzaChoYXNoKTsKKyAgICAg
ICAgbG9jYXRpb24tPnNldElzQXRvbWljKHRydWUpOworICAgIH0KK307CisKK1Bhc3NSZWZQdHI8
U3RyaW5nSW1wbD4gQXRvbWljU3RyaW5nOjphZGRGcm9tTGl0ZXJhbERhdGEoY29uc3QgTENoYXIg
KmNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBBU1NFUlQoY2hhcmFjdGVycyk7
CisgICAgQVNTRVJUKGxlbmd0aCk7CisKKyAgICBMQ2hhckJ1ZmZlciBidWZmZXIgPSB7IGNoYXJh
Y3RlcnMsIGxlbmd0aCB9OworICAgIHJldHVybiBhZGRUb1N0cmluZ1RhYmxlPExDaGFyQnVmZmVy
LCBMQ2hhckJ1ZmZlckZyb21MaXRlcmFsRGF0YVRyYW5zbGF0b3I+KGJ1ZmZlcik7Cit9CisKIFBh
c3NSZWZQdHI8U3RyaW5nSW1wbD4gQXRvbWljU3RyaW5nOjphZGRTbG93Q2FzZShTdHJpbmdJbXBs
KiByKQogewogICAgIGlmICghci0+bGVuZ3RoKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0F0b21pY1N0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcu
aAppbmRleCA3M2E4NTU5OTc3Y2FjZTIyYmU0MWM5ZGM4OWZmOTc0MTE1ZDA5ZWVlLi5lNzU4MzBl
ZTUzOGQwMjNkZmQyM2UzNTdlMTY3MjY0MWQ5MzhlMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWlj
U3RyaW5nLmgKQEAgLTUxLDYgKzUxLDE5IEBAIHB1YmxpYzoKICAgICBBVE9NSUNTVFJJTkdfQ09O
VkVSU0lPTiBBdG9taWNTdHJpbmcoY29uc3QgU3RyaW5nJiBzKSA6IG1fc3RyaW5nKGFkZChzLmlt
cGwoKSkpIHsgfQogICAgIEF0b21pY1N0cmluZyhTdHJpbmdJbXBsKiBiYXNlU3RyaW5nLCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoKSA6IG1fc3RyaW5nKGFkZChiYXNlU3RyaW5nLCBz
dGFydCwgbGVuZ3RoKSkgeyB9CiAKKyAgICBlbnVtIENvbnN0cnVjdEZyb21MaXRlcmFsVGFnIHsg
Q29uc3RydWN0RnJvbUxpdGVyYWwgfTsKKyAgICBBdG9taWNTdHJpbmcoY29uc3QgY2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb25zdHJ1Y3RGcm9tTGl0ZXJhbFRhZykKKyAgICAg
ICAgOiBtX3N0cmluZyhhZGRGcm9tTGl0ZXJhbERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGgpKQorICAgIHsKKyAgICB9CisgICAgdGVtcGxhdGU8
dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50PgorICAgIEFMV0FZU19JTkxJTkUgQXRvbWljU3RyaW5n
KGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJzQ291bnRdLCBDb25zdHJ1Y3RGcm9t
TGl0ZXJhbFRhZykKKyAgICAgICAgOiBtX3N0cmluZyhhZGRGcm9tTGl0ZXJhbERhdGEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBjaGFyYWN0ZXJzQ291bnQgLSAx
KSkKKyAgICB7CisgICAgICAgIENPTVBJTEVfQVNTRVJUKGNoYXJhY3RlcnNDb3VudCA+IDEsIEF0
b21pY1N0cmluZ0Zyb21MaXRlcmFsTm90RW1wdHkpOworICAgICAgICBDT01QSUxFX0FTU0VSVCgo
Y2hhcmFjdGVyc0NvdW50IC0gMSA8PSAoKHVuc2lnbmVkKH4wKSAtIHNpemVvZihTdHJpbmdJbXBs
KSkgLyBzaXplb2YoTENoYXIpKSksIEF0b21pY1N0cmluZ0Zyb21MaXRlcmFsQ2Fubm90T3ZlcmZs
b3cpOworICAgIH0KKwogI2lmIENPTVBJTEVSX1NVUFBPUlRTKENYWF9SVkFMVUVfUkVGRVJFTkNF
UykKICAgICAvLyBXZSBoYXZlIHRvIGRlY2xhcmUgdGhlIGNvcHkgY29uc3RydWN0b3IgYW5kIGNv
cHkgYXNzaWdubWVudCBvcGVyYXRvciBhcyB3ZWxsLCBvdGhlcndpc2UKICAgICAvLyB0aGV5J2xs
IGJlIGltcGxpY2l0bHkgZGVsZXRlZCBieSBhZGRpbmcgdGhlIG1vdmUgY29uc3RydWN0b3IgYW5k
IG1vdmUgYXNzaWdubWVudCBvcGVyYXRvci4KQEAgLTE1Niw2ICsxNjksNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgIHJldHVybiBhZGRTbG93Q2FzZShyKTsKICAg
ICB9CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+
IGFkZEZyb21MaXRlcmFsRGF0YShjb25zdCBMQ2hhciAqY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gYWRkU2xvd0Nhc2UoU3RyaW5nSW1wbCopOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgQXRvbWljU3RyaW5nIGZyb21VVEY4SW50ZXJuYWwoY29uc3QgY2hhciosIGNvbnN0IGNoYXIq
KTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCBjNDM1OWMxMTMzODk4NGZl
ZGEyNWY4NzBmMzc2Yzg3ZjA5YWMwOTU4Li44ODM2OWE4NTBkY2U1YTEyYjA2ZGNkNDA1ZWJlODY1
NTg0ZGRmZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKQEAgLTgyLDYgKzgyLDEy
IEBAIFN0cmluZ0ltcGw6On5TdHJpbmdJbXBsKCkKICAgICBtX3N1YnN0cmluZ0J1ZmZlci0+ZGVy
ZWYoKTsKIH0KIAorUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9t
TGl0ZXJhbChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQoreworICAg
IEFTU0VSVChjaGFyYWN0ZXJzQXJlQWxsQVNDSUk8TENoYXI+KGNoYXJhY3RlcnMsIGxlbmd0aCkp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyaW5nSW1wbChjaGFyYWN0ZXJzLCBsZW5ndGgp
KTsKK30KKwogUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRp
YWxpemVkKHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKQogewogICAgIGlmICghbGVuZ3Ro
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGQwMDYwYzQ3MDI2NDZiZjg4ZDhjOGI1
ZTA0NDY5YjlmMjMyNDY5ZTguLjJhZmE0ZTIwYjhjNjFiMWQ0YmZkMmJlMDE2ZTljNzI0NzgzMmFh
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFj
ZSBXVEYgewogc3RydWN0IENTdHJpbmdUcmFuc2xhdG9yOwogc3RydWN0IEhhc2hBbmRDaGFyYWN0
ZXJzVHJhbnNsYXRvcjsKIHN0cnVjdCBIYXNoQW5kVVRGOENoYXJhY3RlcnNUcmFuc2xhdG9yOwor
c3RydWN0IExDaGFyQnVmZmVyRnJvbUxpdGVyYWxEYXRhVHJhbnNsYXRvcjsKIHN0cnVjdCBTdWJz
dHJpbmdUcmFuc2xhdG9yOwogc3RydWN0IFVDaGFyQnVmZmVyVHJhbnNsYXRvcjsKIApAQCAtNzUs
NiArNzYsNyBAQCBjbGFzcyBTdHJpbmdJbXBsIHsKICAgICBmcmllbmQgc3RydWN0IFdURjo6Q1N0
cmluZ1RyYW5zbGF0b3I7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6Okhhc2hBbmRDaGFyYWN0ZXJz
VHJhbnNsYXRvcjsKICAgICBmcmllbmQgc3RydWN0IFdURjo6SGFzaEFuZFVURjhDaGFyYWN0ZXJz
VHJhbnNsYXRvcjsKKyAgICBmcmllbmQgc3RydWN0IFdURjo6TENoYXJCdWZmZXJGcm9tTGl0ZXJh
bERhdGFUcmFuc2xhdG9yOwogICAgIGZyaWVuZCBzdHJ1Y3QgV1RGOjpTdWJzdHJpbmdUcmFuc2xh
dG9yOwogICAgIGZyaWVuZCBzdHJ1Y3QgV1RGOjpVQ2hhckJ1ZmZlclRyYW5zbGF0b3I7CiAgICAg
ZnJpZW5kIGNsYXNzIEF0b21pY1N0cmluZ0ltcGw7CkBAIC0yODIsNiArMjg0LDE2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJpbmdJbXBsKHJlcC0+bV9kYXRhMTYg
KyBvZmZzZXQsIGxlbmd0aCwgb3duZXJSZXApKTsKICAgICB9CiAKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29u
c3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgdGVtcGxhdGU8dW5z
aWduZWQgY2hhcmFjdGVyc0NvdW50PgorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFBhc3NSZWZQ
dHI8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMp
W2NoYXJhY3RlcnNDb3VudF0pCisgICAgeworICAgICAgICBDT01QSUxFX0FTU0VSVChjaGFyYWN0
ZXJzQ291bnQgPiAxLCBTdHJpbmdJbXBsRnJvbUxpdGVyYWxOb3RFbXB0eSk7CisgICAgICAgIENP
TVBJTEVfQVNTRVJUKChjaGFyYWN0ZXJzQ291bnQgLSAxIDw9ICgodW5zaWduZWQofjApIC0gc2l6
ZW9mKFN0cmluZ0ltcGwpKSAvIHNpemVvZihMQ2hhcikpKSwgU3RyaW5nSW1wbEZyb21MaXRlcmFs
Q2Fubm90T3ZlcmZsb3cpOworCisgICAgICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChyZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGNoYXJhY3RlcnNDb3VudCAt
IDEpOworICAgIH0KKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBk
YXRhKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gY3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSk7CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBBTFdBWVNfSU5MSU5FIFBhc3NSZWZQdHI8
U3RyaW5nSW1wbD4gdHJ5Q3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgsIFQqJiBv
dXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5kZXggZTA4NTUwNzBhN2Ni
MzI1MzRjY2JmOGFiOGQwNTI2NjdkYTMxOWYxNS4uNDdjNzA5MWNiOTY5NTVkYWIxM2M3N2YxOWE3
YzA2MDdkYjFmNjQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5h
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApAQCAtNTEs
NyArNTEsNyBAQCBzdHJ1Y3QgUU5hbWVDb21wb25lbnRzVHJhbnNsYXRvciB7CiAKIHN0YXRpYyBR
TmFtZVNldCogZ05hbWVDYWNoZTsKIAotdm9pZCBRdWFsaWZpZWROYW1lOjppbml0KGNvbnN0IEF0
b21pY1N0cmluZyYgcCwgY29uc3QgQXRvbWljU3RyaW5nJiBsLCBjb25zdCBBdG9taWNTdHJpbmcm
IG4pCitRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBsLCBjb25zdCBBdG9taWNTdHJpbmcmIG4pCiB7CiAgICAgaWYg
KCFnTmFtZUNhY2hlKQogICAgICAgICBnTmFtZUNhY2hlID0gbmV3IFFOYW1lU2V0OwpAQCAtNjIs
MTYgKzYyLDYgQEAgdm9pZCBRdWFsaWZpZWROYW1lOjppbml0KGNvbnN0IEF0b21pY1N0cmluZyYg
cCwgY29uc3QgQXRvbWljU3RyaW5nJiBsLCBjb25zdCBBdG8KICAgICAgICAgbV9pbXBsLT5yZWYo
KTsKIH0KIAotUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZShjb25zdCBBdG9taWNTdHJpbmcm
IHAsIGNvbnN0IEF0b21pY1N0cmluZyYgbCwgY29uc3QgQXRvbWljU3RyaW5nJiBuKQotewotICAg
IGluaXQocCwgbCwgbik7Ci19Ci0KLVF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWUoY29uc3Qg
QXRvbWljU3RyaW5nJiBwLCBjb25zdCBjaGFyKiBsLCBjb25zdCBBdG9taWNTdHJpbmcmIG4pCi17
Ci0gICAgaW5pdChwLCBBdG9taWNTdHJpbmcobCksIG4pOwotfQotCiBRdWFsaWZpZWROYW1lOjp+
UXVhbGlmaWVkTmFtZSgpCiB7CiAgICAgZGVyZWYoKTsKQEAgLTEyNCw0ICsxMTQsMTYgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBRdWFsaWZpZWROYW1lOjpsb2NhbE5hbWVVcHBlcigpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faW1wbC0+bV9sb2NhbE5hbWVVcHBlcjsKIH0KIAordm9pZCBjcmVhdGVRdWFs
aWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVk
IG5hbWVMZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZU5hbWVzcGFjZSkKK3sKKyAgICBB
dG9taWNTdHJpbmcgYXRvbWljTmFtZShuYW1lLCBuYW1lTGVuZ3RoLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBuZXcgKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHRh
cmdldEFkZHJlc3MpKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBhdG9taWNOYW1lLCBuYW1lTmFt
ZXNwYWNlKTsKK30KKwordm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJl
c3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIG5hbWVMZW5ndGgpCit7CisgICAgQXRvbWlj
U3RyaW5nIGF0b21pY05hbWUobmFtZSwgbmFtZUxlbmd0aCwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgbmV3IChyZWludGVycHJldF9jYXN0PHZvaWQqPih0YXJnZXRB
ZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgYXRvbWljTmFtZSwgbnVsbEF0b20pOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaAppbmRleCAwZmM2NTE3MjE4NzcwYzdj
N2Y2NzNhMWU4ZmNiMDk5NzI1ODlhZDQ2Li5kZTM4MjcxNzVjMTI4ODcxNDM0OWU0N2NlNmRkNWI2
MGI1MTFkYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKQEAgLTY5LDcgKzY5LDYg
QEAgcHVibGljOgogICAgIH07CiAKICAgICBRdWFsaWZpZWROYW1lKGNvbnN0IEF0b21pY1N0cmlu
ZyYgcHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lc3BhY2VVUkkpOwotICAgIFF1YWxpZmllZE5hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBwcmVmaXgsIGNvbnN0IGNoYXIqIGxvY2FsTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
c3BhY2VVUkkpOwogICAgIFF1YWxpZmllZE5hbWUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVU
eXBlKSA6IG1faW1wbChoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkgeyB9CiAgICAgYm9vbCBpc0hh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbCA9PSBoYXNoVGFibGVE
ZWxldGVkVmFsdWUoKTsgfQogICAgIH5RdWFsaWZpZWROYW1lKCk7CkBAIC0xMDgsNyArMTA3LDYg
QEAgcHVibGljOgogICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2ltcGwpOwog
ICAgIH0KIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0KGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4
LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
c3BhY2VVUkkpOwogICAgIHZvaWQgcmVmKCkgY29uc3QgeyBtX2ltcGwtPnJlZigpOyB9CiAgICAg
dm9pZCBkZXJlZigpOwogCkBAIC0xNDcsNiArMTQ1LDkgQEAgc3RydWN0IFF1YWxpZmllZE5hbWVI
YXNoIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IGZhbHNlOwogfTsKIAordm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFk
ZHJlc3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIG5hbWVMZW5ndGgpOwordm9pZCBjcmVh
dGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVu
c2lnbmVkIG5hbWVMZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZU5hbWVzcGFjZSk7CisK
IH0KIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDZlMGEw
NjFjODZmOTMzNjMxN2Y5MDU1ZGE2NDE3YmUwMTM4YmJjNGEuLmExZjdhMTFiMjNkNWI2ZjgyODBl
YjMzMGJlYmY4ZTE2ZWQ0NDlkMTMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtl
X25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0xMTYs
NyArMTE2LDcgQEAgaWYgKGxlbmd0aCgkZm9udE5hbWVzSW4pKSB7CiAgICAgcHJpbnRDcHBIZWFk
KCRGLCAiQ1NTIiwgJGZhbWlseU5hbWVzRmlsZUJhc2UsICJXVEYiKTsKIAogICAgIHdoaWxlICgg
bXkgKCRuYW1lLCAkaWRlbnRpZmllcikgPSBlYWNoICVwYXJhbWV0ZXJzICkgewotICAgICAgICBw
cmludCBGICJERUZJTkVfR0xPQkFMKEF0b21pY1N0cmluZywgJG5hbWUsIFwiJGlkZW50aWZpZXJc
IilcbiI7CisgICAgICAgIHByaW50IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAkbmFt
ZSlcbiI7CiAgICAgfQogCiAgICAgcHJpbnRJbml0KCRGLCAwKTsKQEAgLTYyMiwxMiArNjIyLDEy
IEBAIHN1YiBwcmludE5hbWVzQ3BwRmlsZQogICAgIAogICAgIG15ICRsb3dlck5hbWVzcGFjZSA9
IGxjKCRwYXJhbWV0ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCi0gICAgcHJpbnQgRiAiREVGSU5F
X0dMT0JBTChBdG9taWNTdHJpbmcsICR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJLCBcIiRw
YXJhbWV0ZXJze25hbWVzcGFjZVVSSX1cIilcblxuIjsKKyAgICBwcmludCBGICJERUZJTkVfR0xP
QkFMKEF0b21pY1N0cmluZywgJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpXG5cbiI7CiAK
ICAgICBpZiAoa2V5cyAlYWxsVGFncykgewogICAgICAgICBwcmludCBGICIvLyBUYWdzXG4iOwog
ICAgICAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlYWxsVGFncykgewotICAgICAgICAgICAg
cHJpbnQgRiAiREVGSU5FX0dMT0JBTChRdWFsaWZpZWROYW1lLCAiLCAkbmFtZSwgIlRhZywgbnVs
bEF0b20sIFwiJG5hbWVcIiwgJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpXG4iOworICAg
ICAgICAgICAgcHJpbnQgRiAiREVGSU5FX0dMT0JBTChRdWFsaWZpZWROYW1lLCAiLCAkbmFtZSwg
IlRhZylcbiI7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHByaW50IEYgIlxuXG5XZWJD
b3JlOjpRdWFsaWZpZWROYW1lKiogZ2V0JHBhcmFtZXRlcnN7bmFtZXNwYWNlfVRhZ3Moc2l6ZV90
KiBzaXplKVxuIjsKQEAgLTY0NCw3ICs2NDQsNyBAQCBzdWIgcHJpbnROYW1lc0NwcEZpbGUKICAg
ICBpZiAoa2V5cyAlYWxsQXR0cnMpIHsKICAgICAgICAgcHJpbnQgRiAiXG4vLyBBdHRyaWJ1dGVz
XG4iOwogICAgICAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlYWxsQXR0cnMpIHsKLSAgICAg
ICAgICAgIHByaW50IEYgIkRFRklORV9HTE9CQUwoUXVhbGlmaWVkTmFtZSwgIiwgJG5hbWUsICJB
dHRyLCBudWxsQXRvbSwgXCIkbmFtZVwiLCAke2xvd2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVSSSlc
biI7CisgICAgICAgICAgICBwcmludCBGICJERUZJTkVfR0xPQkFMKFF1YWxpZmllZE5hbWUsICIs
ICRuYW1lLCAiQXR0cilcbiI7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQgRiAiXG5cbldlYkNv
cmU6OlF1YWxpZmllZE5hbWUqKiBnZXQkcGFyYW1ldGVyc3tuYW1lc3BhY2V9QXR0cnMoc2l6ZV90
KiBzaXplKVxuIjsKICAgICAgICAgcHJpbnQgRiAie1xuICAgIHN0YXRpYyBXZWJDb3JlOjpRdWFs
aWZpZWROYW1lKiAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9QXR0cltdID0ge1xuIjsKQEAgLTY1OCw4
ICs2NTgsOCBAQCBzdWIgcHJpbnROYW1lc0NwcEZpbGUKICAgICB9CiAKICAgICBwcmludEluaXQo
JEYsIDApOwotICAgIAotICAgIHByaW50KEYgIiAgICBBdG9taWNTdHJpbmcgJHtsb3dlck5hbWVz
cGFjZX1OUyhcIiRwYXJhbWV0ZXJze25hbWVzcGFjZVVSSX1cIik7XG5cbiIpOworCisgICAgcHJp
bnQoRiAiICAgIEF0b21pY1N0cmluZyAke2xvd2VyTmFtZXNwYWNlfU5TKFwiJHBhcmFtZXRlcnN7
bmFtZXNwYWNlVVJJfVwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTtcblxu
Iik7CiAKICAgICBwcmludChGICIgICAgLy8gTmFtZXNwYWNlXG4iKTsKICAgICBwcmludChGICIg
ICAgbmV3ICgodm9pZCopJiR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJKSBBdG9taWNTdHJp
bmcoJHtsb3dlck5hbWVzcGFjZX1OUyk7XG5cbiIpOwpAQCAtNzY5LDcgKzc2OSwxMyBAQCBzdWIg
cHJpbnREZWZpbml0aW9ucwogICAgICAgICAgICAgJHJlYWxOYW1lID0gJG5hbWU7CiAgICAgICAg
ICAgICAkcmVhbE5hbWUgPX4gcy9fLy0vZzsKICAgICAgICAgfQotICAgICAgICBwcmludCBGICIg
ICAgbmV3ICgodm9pZCopJiRuYW1lIiwiJHtzaG9ydENhbWVsVHlwZX0pIFF1YWxpZmllZE5hbWUo
bnVsbEF0b20sIFwiJHJlYWxOYW1lXCIsICRuYW1lc3BhY2VVUkkpO1xuIjsKKworICAgICAgICAj
IFRvIGdlbmVyYXRlIGxlc3MgY29kZSBpbiBpbml0KCksIHRoZSBjb21tb24gY2FzZSBvZiBudWxs
QXRvbSBmb3IgdGhlIG5hbWVzcGFjZSwgd2UgY2FsbCBjcmVhdGVRdWFsaWZpZWROYW1lKCkgd2l0
aG91dCBwYXNzaW5nICRuYW1lc3BhY2VVUkkuCisgICAgICAgIGlmICgkbmFtZXNwYWNlVVJJIGVx
ICJudWxsQXRvbSIpIHsKKyAgICAgICAgICAgIHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWRO
YW1lKCh2b2lkKikmJG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfSwgXCIkcmVhbE5hbWVcIiwgIiwg
bGVuZ3RoICRyZWFsTmFtZSAsIik7XG4iOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
cHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmllZE5hbWUoKHZvaWQqKSYkbmFtZSIsIiR7c2hvcnRD
YW1lbFR5cGV9LCBcIiRyZWFsTmFtZVwiLCAiLCBsZW5ndGggJHJlYWxOYW1lICwiLCAkbmFtZXNw
YWNlVVJJKTtcbiI7CisgICAgICAgIH0KICAgICB9CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>